summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/binary-writer.cc20
-rw-r--r--src/expr-visitor.cc26
-rw-r--r--src/ir.cc54
-rw-r--r--src/ir.h13
-rw-r--r--src/prebuilt/wast-lexer-gen.cc3961
-rw-r--r--src/prebuilt/wast-parser-gen.cc2374
-rw-r--r--src/prebuilt/wast-parser-gen.hh101
-rw-r--r--src/prebuilt/wast-parser-gen.output5548
-rw-r--r--src/tools/wast2wasm.cc20
-rw-r--r--src/validator.cc25
-rw-r--r--src/wast-lexer.cc5
-rw-r--r--src/wast-parser-lexer-shared.h3
-rw-r--r--src/wast-parser.h8
-rw-r--r--src/wast-parser.y97
14 files changed, 6723 insertions, 5532 deletions
diff --git a/src/binary-writer.cc b/src/binary-writer.cc
index 00947afa..2e907b42 100644
--- a/src/binary-writer.cc
+++ b/src/binary-writer.cc
@@ -444,6 +444,14 @@ void BinaryWriter::WriteExpr(const Module* module,
write_u32_leb128(&stream_, 0, "call_indirect reserved");
break;
}
+ case ExprType::Catch:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("Catch: Don't know how to write\n");
+ break;
+ case ExprType::CatchAll:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("CatchAll: Don't know how to write\n");
+ break;
case ExprType::Compare:
write_opcode(&stream_, expr->compare.opcode);
break;
@@ -522,6 +530,10 @@ void BinaryWriter::WriteExpr(const Module* module,
case ExprType::Nop:
write_opcode(&stream_, Opcode::Nop);
break;
+ case ExprType::Rethrow:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("Rethrow: Don't know how to write\n");
+ break;
case ExprType::Return:
write_opcode(&stream_, Opcode::Return);
break;
@@ -554,6 +566,14 @@ void BinaryWriter::WriteExpr(const Module* module,
write_u32_leb128(&stream_, index, "local index");
break;
}
+ case ExprType::Throw:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("Throw: Don't know how to write\n");
+ break;
+ case ExprType::TryBlock:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("TryBlock: Don't know how to write\n");
+ break;
case ExprType::Unary:
write_opcode(&stream_, expr->unary.opcode);
break;
diff --git a/src/expr-visitor.cc b/src/expr-visitor.cc
index 0300cb5e..961e91f9 100644
--- a/src/expr-visitor.cc
+++ b/src/expr-visitor.cc
@@ -60,6 +60,16 @@ Result ExprVisitor::VisitExpr(Expr* expr) {
CHECK_RESULT(delegate_->OnCallIndirectExpr(expr));
break;
+ case ExprType::Catch:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("Catch: don't know how to visit\n");
+ return Result::Error;
+
+ case ExprType::CatchAll:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("CatchAll: don't know how to visit\n");
+ return Result::Error;
+
case ExprType::Compare:
CHECK_RESULT(delegate_->OnCompareExpr(expr));
break;
@@ -114,6 +124,11 @@ Result ExprVisitor::VisitExpr(Expr* expr) {
CHECK_RESULT(delegate_->OnNopExpr(expr));
break;
+ case ExprType::Rethrow:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("Rethrow: don't know how to visit\n");
+ return Result::Error;
+
case ExprType::Return:
CHECK_RESULT(delegate_->OnReturnExpr(expr));
break;
@@ -138,6 +153,17 @@ Result ExprVisitor::VisitExpr(Expr* expr) {
CHECK_RESULT(delegate_->OnTeeLocalExpr(expr));
break;
+ case ExprType::Throw:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("Throw: don't know how to visit\n");
+ return Result::Error;
+
+ case ExprType::TryBlock:
+ // TODO(karlschimpf): Define
+ WABT_FATAL("TryBlock: don't know how to visit\n");
+ return Result::Error;
+ break;
+
case ExprType::Unary:
CHECK_RESULT(delegate_->OnUnaryExpr(expr));
break;
diff --git a/src/ir.cc b/src/ir.cc
index ef4ee00f..47156db4 100644
--- a/src/ir.cc
+++ b/src/ir.cc
@@ -262,6 +262,11 @@ Expr::~Expr() {
case ExprType::CallIndirect:
destroy_var(&call_indirect.var);
break;
+ case ExprType::Catch:
+ case ExprType::CatchAll:
+ destroy_var(&catch_.var);
+ destroy_expr_list(catch_.first);
+ break;
case ExprType::GetGlobal:
destroy_var(&get_global.var);
break;
@@ -275,6 +280,9 @@ Expr::~Expr() {
case ExprType::Loop:
delete loop;
break;
+ case ExprType::Rethrow:
+ destroy_var(&rethrow_.var);
+ break;
case ExprType::SetGlobal:
destroy_var(&set_global.var);
break;
@@ -284,7 +292,13 @@ Expr::~Expr() {
case ExprType::TeeLocal:
destroy_var(&tee_local.var);
break;
-
+ case ExprType::Throw:
+ destroy_var(&throw_.var);
+ break;
+ case ExprType::TryBlock:
+ delete try_block.block;
+ destroy_expr_list(try_block.first_catch);
+ break;
case ExprType::Binary:
case ExprType::Compare:
case ExprType::Const:
@@ -354,6 +368,22 @@ Expr* Expr::CreateCallIndirect(Var var) {
}
// static
+Expr* Expr::CreateCatch(Var var, Expr* first) {
+ Expr* expr = new Expr(ExprType::Catch);
+ expr->catch_.var = var;
+ expr->catch_.first = first;
+ return expr;
+}
+
+// static
+Expr* Expr::CreateCatchAll(Var var, Expr* first) {
+ Expr* expr = new Expr(ExprType::CatchAll);
+ expr->catch_.var = var;
+ expr->catch_.first = first;
+ return expr;
+}
+
+// static
Expr* Expr::CreateCompare(Opcode opcode) {
Expr* expr = new Expr(ExprType::Compare);
expr->compare.opcode = opcode;
@@ -433,6 +463,13 @@ Expr* Expr::CreateNop() {
}
// static
+Expr* Expr::CreateRethrow(Var var) {
+ Expr* expr = new Expr(ExprType::Rethrow);
+ expr->rethrow_.var = var;
+ return expr;
+}
+
+// static
Expr* Expr::CreateReturn() {
return new Expr(ExprType::Return);
}
@@ -473,6 +510,21 @@ Expr* Expr::CreateTeeLocal(Var var) {
}
// static
+Expr* Expr::CreateThrow(Var var) {
+ Expr* expr = new Expr(ExprType::Throw);
+ expr->throw_.var = var;
+ return expr;
+}
+
+// static
+Expr* Expr::CreateTry(Block* block, Expr* first_catch) {
+ Expr* expr = new Expr(ExprType::TryBlock);
+ expr->try_block.block = block;
+ expr->try_block.first_catch = first_catch;
+ return expr;
+}
+
+// static
Expr* Expr::CreateUnary(Opcode opcode) {
Expr* expr = new Expr(ExprType::Unary);
expr->unary.opcode = opcode;
diff --git a/src/ir.h b/src/ir.h
index 442e5d9d..232dd657 100644
--- a/src/ir.h
+++ b/src/ir.h
@@ -85,6 +85,8 @@ enum class ExprType {
BrTable,
Call,
CallIndirect,
+ Catch,
+ CatchAll,
Compare,
Const,
Convert,
@@ -97,12 +99,15 @@ enum class ExprType {
Load,
Loop,
Nop,
+ Rethrow,
Return,
Select,
SetGlobal,
SetLocal,
Store,
TeeLocal,
+ Throw,
+ TryBlock,
Unary,
Unreachable,
};
@@ -135,6 +140,8 @@ struct Expr {
static Expr* CreateBrTable(VarVector* targets, Var default_target);
static Expr* CreateCall(Var);
static Expr* CreateCallIndirect(Var);
+ static Expr* CreateCatch(Var v, Expr* first);
+ static Expr* CreateCatchAll(Var v, Expr* first);
static Expr* CreateCompare(Opcode);
static Expr* CreateConst(const Const&);
static Expr* CreateConvert(Opcode);
@@ -147,12 +154,15 @@ struct Expr {
static Expr* CreateLoad(Opcode, Address align, uint64_t offset);
static Expr* CreateLoop(Block*);
static Expr* CreateNop();
+ static Expr* CreateRethrow(Var);
static Expr* CreateReturn();
static Expr* CreateSelect();
static Expr* CreateSetGlobal(Var);
static Expr* CreateSetLocal(Var);
static Expr* CreateStore(Opcode, Address align, uint64_t offset);
static Expr* CreateTeeLocal(Var);
+ static Expr* CreateThrow(Var);
+ static Expr* CreateTry(Block* block, Expr* first_catch);
static Expr* CreateUnary(Opcode);
static Expr* CreateUnreachable();
@@ -162,6 +172,9 @@ struct Expr {
union {
struct { Opcode opcode; } binary, compare, convert, unary;
struct Block *block, *loop;
+ struct { Block* block; Expr* first_catch; } try_block;
+ struct { Var var; Expr* first; } catch_;
+ struct { Var var; } throw_, rethrow_;
struct { Var var; } br, br_if;
struct { VarVector* targets; Var default_target; } br_table;
struct { Var var; } call, call_indirect;
diff --git a/src/prebuilt/wast-lexer-gen.cc b/src/prebuilt/wast-lexer-gen.cc
index 8f249385..f759f75a 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 474 "src/wast-lexer.cc"
+#line 479 "src/wast-lexer.cc"
{ continue; }
#line 453 "src/prebuilt/wast-lexer-gen.cc"
yy36:
++cursor_;
-#line 473 "src/wast-lexer.cc"
+#line 478 "src/wast-lexer.cc"
{ NEWLINE; continue; }
#line 458 "src/prebuilt/wast-lexer-gen.cc"
yy38:
@@ -466,7 +466,7 @@ yy39:
yy40:
++cursor_;
yy41:
-#line 475 "src/wast-lexer.cc"
+#line 480 "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 469 "src/wast-lexer.cc"
+#line 474 "src/wast-lexer.cc"
{ COMMENT_NESTING++; continue; }
#line 507 "src/prebuilt/wast-lexer-gen.cc"
yy50:
++cursor_;
-#line 470 "src/wast-lexer.cc"
+#line 475 "src/wast-lexer.cc"
{ if (--COMMENT_NESTING == 0)
BEGIN(YYCOND_INIT);
continue; }
@@ -581,7 +581,7 @@ YYCOND_LINE_COMMENT:
}
}
yy57:
-#line 467 "src/wast-lexer.cc"
+#line 472 "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 466 "src/wast-lexer.cc"
+#line 471 "src/wast-lexer.cc"
{ NEWLINE; continue; }
#line 612 "src/prebuilt/wast-lexer-gen.cc"
yy62:
++cursor_;
yy63:
-#line 482 "src/wast-lexer.cc"
+#line 487 "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 481 "src/wast-lexer.cc"
+#line 486 "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 477 "src/wast-lexer.cc"
+#line 482 "src/wast-lexer.cc"
{ continue; }
#line 851 "src/prebuilt/wast-lexer-gen.cc"
yy84:
++cursor_;
-#line 476 "src/wast-lexer.cc"
+#line 481 "src/wast-lexer.cc"
{ NEWLINE; continue; }
#line 856 "src/prebuilt/wast-lexer-gen.cc"
yy86:
@@ -862,7 +862,7 @@ yy87:
goto yy86;
}
yy88:
-#line 478 "src/wast-lexer.cc"
+#line 483 "src/wast-lexer.cc"
{ ERROR("unexpected token \"%.*s\"",
static_cast<int>(yyleng), yytext);
continue; }
@@ -1096,29 +1096,24 @@ yy116:
goto yy87;
yy117:
yych = *++cursor_;
- if (yych <= 'e') {
- if (yych == 'a') goto yy193;
- if (yych <= 'd') goto yy87;
- goto yy194;
- } else {
- if (yych <= 'h') {
- if (yych <= 'g') goto yy87;
- goto yy195;
- } else {
- if (yych == 'y') goto yy196;
- goto yy87;
- }
+ switch (yych) {
+ case 'a': goto yy193;
+ case 'e': goto yy194;
+ case 'h': goto yy195;
+ case 'r': goto yy196;
+ case 'y': goto yy197;
+ default: goto yy87;
}
yy118:
yych = *++cursor_;
- if (yych == 'n') goto yy197;
+ if (yych == 'n') goto yy198;
goto yy87;
yy119:
++cursor_;
yy120:
-#line 482 "src/wast-lexer.cc"
+#line 487 "src/wast-lexer.cc"
{ MAYBE_MALFORMED_UTF8(""); }
-#line 1122 "src/prebuilt/wast-lexer-gen.cc"
+#line 1117 "src/prebuilt/wast-lexer-gen.cc"
yy121:
yych = *++cursor_;
if (yych <= 0x7F) goto yy120;
@@ -1128,31 +1123,31 @@ yy122:
yyaccept = 1;
yych = *(marker_ = ++cursor_);
if (yych <= 0x9F) goto yy120;
- if (yych <= 0xBF) goto yy198;
+ if (yych <= 0xBF) goto yy199;
goto yy120;
yy123:
yyaccept = 1;
yych = *(marker_ = ++cursor_);
if (yych <= 0x7F) goto yy120;
- if (yych <= 0xBF) goto yy198;
+ if (yych <= 0xBF) goto yy199;
goto yy120;
yy124:
yyaccept = 1;
yych = *(marker_ = ++cursor_);
if (yych <= 0x8F) goto yy120;
- if (yych <= 0xBF) goto yy199;
+ if (yych <= 0xBF) goto yy200;
goto yy120;
yy125:
yyaccept = 1;
yych = *(marker_ = ++cursor_);
if (yych <= 0x7F) goto yy120;
- if (yych <= 0xBF) goto yy199;
+ if (yych <= 0xBF) goto yy200;
goto yy120;
yy126:
yyaccept = 1;
yych = *(marker_ = ++cursor_);
if (yych <= 0x7F) goto yy120;
- if (yych <= 0x8F) goto yy199;
+ if (yych <= 0x8F) goto yy200;
goto yy120;
yy127:
++cursor_;
@@ -1190,7 +1185,7 @@ yy130:
++cursor_;
#line 241 "src/wast-lexer.cc"
{ TEXT; RETURN(TEXT); }
-#line 1194 "src/prebuilt/wast-lexer-gen.cc"
+#line 1189 "src/prebuilt/wast-lexer-gen.cc"
yy132:
++cursor_;
if (limit_ <= cursor_) FILL(1);
@@ -1203,10 +1198,10 @@ yy132:
} else {
if (yych <= '9') {
if (yych <= '/') goto yy129;
- goto yy200;
+ goto yy201;
} else {
if (yych <= '@') goto yy129;
- if (yych <= 'F') goto yy200;
+ if (yych <= 'F') goto yy201;
goto yy129;
}
}
@@ -1216,7 +1211,7 @@ yy132:
if (yych <= '\\') goto yy127;
goto yy129;
} else {
- if (yych <= 'f') goto yy200;
+ if (yych <= 'f') goto yy201;
if (yych <= 'm') goto yy129;
goto yy127;
}
@@ -1285,15 +1280,15 @@ yy140:
if (yych <= ';') goto yy141;
if (yych <= '}') goto yy86;
yy141:
-#line 463 "src/wast-lexer.cc"
+#line 468 "src/wast-lexer.cc"
{ TEXT; RETURN(VAR); }
-#line 1291 "src/prebuilt/wast-lexer-gen.cc"
+#line 1286 "src/prebuilt/wast-lexer-gen.cc"
yy142:
++cursor_;
BEGIN(YYCOND_BLOCK_COMMENT);
-#line 468 "src/wast-lexer.cc"
+#line 473 "src/wast-lexer.cc"
{ COMMENT_NESTING = 1; continue; }
-#line 1297 "src/prebuilt/wast-lexer-gen.cc"
+#line 1292 "src/prebuilt/wast-lexer-gen.cc"
yy144:
++cursor_;
if ((yych = *cursor_) <= '9') {
@@ -1322,7 +1317,7 @@ yy144:
if (yych <= 'e') goto yy153;
goto yy86;
} else {
- if (yych <= 'x') goto yy201;
+ if (yych <= 'x') goto yy202;
if (yych <= '~') goto yy86;
}
}
@@ -1330,7 +1325,7 @@ yy144:
yy145:
#line 236 "src/wast-lexer.cc"
{ LITERAL(Int); RETURN(INT); }
-#line 1334 "src/prebuilt/wast-lexer-gen.cc"
+#line 1329 "src/prebuilt/wast-lexer-gen.cc"
yy146:
++cursor_;
if ((limit_ - cursor_) < 3) FILL(3);
@@ -1363,7 +1358,7 @@ yy146:
}
yy148:
yych = *++cursor_;
- if (yych == 'n') goto yy202;
+ if (yych == 'n') goto yy203;
goto yy87;
yy149:
yych = *++cursor_;
@@ -1395,45 +1390,45 @@ yy150:
yy152:
#line 237 "src/wast-lexer.cc"
{ LITERAL(Float); RETURN(FLOAT); }
-#line 1399 "src/prebuilt/wast-lexer-gen.cc"
+#line 1394 "src/prebuilt/wast-lexer-gen.cc"
yy153:
yych = *++cursor_;
if (yych <= ',') {
- if (yych == '+') goto yy203;
+ if (yych == '+') goto yy204;
goto yy87;
} else {
- if (yych <= '-') goto yy203;
+ if (yych <= '-') goto yy204;
if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy204;
+ if (yych <= '9') goto yy205;
goto yy87;
}
yy154:
yych = *++cursor_;
if (yybm[0+yych] & 128) {
- goto yy206;
+ goto yy207;
}
goto yy87;
yy155:
++cursor_;
BEGIN(YYCOND_LINE_COMMENT);
-#line 465 "src/wast-lexer.cc"
+#line 470 "src/wast-lexer.cc"
{ continue; }
-#line 1422 "src/prebuilt/wast-lexer-gen.cc"
+#line 1417 "src/prebuilt/wast-lexer-gen.cc"
yy157:
yych = *++cursor_;
- if (yych == 'i') goto yy208;
+ if (yych == 'i') goto yy209;
goto yy87;
yy158:
yych = *++cursor_;
- if (yych == 'y') goto yy209;
+ if (yych == 'y') goto yy210;
goto yy87;
yy159:
yych = *++cursor_;
- if (yych == 's') goto yy210;
+ if (yych == 's') goto yy211;
goto yy87;
yy160:
yych = *++cursor_;
- if (yych == 'o') goto yy211;
+ if (yych == 'o') goto yy212;
goto yy87;
yy161:
++cursor_;
@@ -1448,74 +1443,75 @@ yy161:
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy212;
+ if (yych <= '_') goto yy213;
if (yych <= '~') goto yy86;
}
}
yy162:
#line 266 "src/wast-lexer.cc"
{ RETURN(BR); }
-#line 1459 "src/prebuilt/wast-lexer-gen.cc"
+#line 1454 "src/prebuilt/wast-lexer-gen.cc"
yy163:
yych = *++cursor_;
- if (yych == 'l') goto yy213;
+ if (yych == 'l') goto yy214;
+ if (yych == 't') goto yy215;
goto yy87;
yy164:
yych = *++cursor_;
- if (yych == 'r') goto yy214;
+ if (yych == 'r') goto yy216;
goto yy87;
yy165:
yych = *++cursor_;
- if (yych == 't') goto yy215;
+ if (yych == 't') goto yy217;
goto yy87;
yy166:
yych = *++cursor_;
- if (yych == 'o') goto yy216;
+ if (yych == 'o') goto yy218;
goto yy87;
yy167:
yych = *++cursor_;
- if (yych == 'e') goto yy217;
- if (yych == 's') goto yy218;
+ if (yych == 'e') goto yy219;
+ if (yych == 's') goto yy220;
goto yy87;
yy168:
yych = *++cursor_;
- if (yych == 'd') goto yy219;
+ if (yych == 'd') goto yy221;
goto yy87;
yy169:
yych = *++cursor_;
- if (yych == 'p') goto yy221;
+ if (yych == 'p') goto yy223;
goto yy87;
yy170:
yych = *++cursor_;
- if (yych == '2') goto yy222;
+ if (yych == '2') goto yy224;
goto yy87;
yy171:
yych = *++cursor_;
- if (yych == '4') goto yy224;
+ if (yych == '4') goto yy226;
goto yy87;
yy172:
yych = *++cursor_;
- if (yych == 'n') goto yy226;
+ if (yych == 'n') goto yy228;
goto yy87;
yy173:
yych = *++cursor_;
- if (yych == 't') goto yy227;
+ if (yych == 't') goto yy229;
goto yy87;
yy174:
yych = *++cursor_;
- if (yych == 'o') goto yy229;
+ if (yych == 'o') goto yy231;
goto yy87;
yy175:
yych = *++cursor_;
- if (yych == 'o') goto yy230;
+ if (yych == 'o') goto yy232;
goto yy87;
yy176:
yych = *++cursor_;
- if (yych == '2') goto yy231;
+ if (yych == '2') goto yy233;
goto yy87;
yy177:
yych = *++cursor_;
- if (yych == '4') goto yy233;
+ if (yych == '4') goto yy235;
goto yy87;
yy178:
++cursor_;
@@ -1524,99 +1520,104 @@ yy178:
}
#line 262 "src/wast-lexer.cc"
{ RETURN(IF); }
-#line 1528 "src/prebuilt/wast-lexer-gen.cc"
+#line 1524 "src/prebuilt/wast-lexer-gen.cc"
yy180:
yych = *++cursor_;
- if (yych == 'p') goto yy235;
+ if (yych == 'p') goto yy237;
goto yy87;
yy181:
yych = *++cursor_;
- if (yych == 'f') goto yy236;
- if (yych == 'v') goto yy238;
+ if (yych == 'f') goto yy238;
+ if (yych == 'v') goto yy240;
goto yy87;
yy182:
yych = *++cursor_;
- if (yych == 'c') goto yy239;
- if (yych == 'o') goto yy240;
+ if (yych == 'c') goto yy241;
+ if (yych == 'o') goto yy242;
goto yy87;
yy183:
yych = *++cursor_;
- if (yych == 'm') goto yy241;
+ if (yych == 'm') goto yy243;
goto yy87;
yy184:
yych = *++cursor_;
- if (yych == 'd') goto yy242;
+ if (yych == 'd') goto yy244;
goto yy87;
yy185:
yych = *++cursor_;
- if (yych == 't') goto yy243;
+ if (yych == 't') goto yy245;
goto yy87;
yy186:
yych = *++cursor_;
- if (yych == 'n') goto yy245;
+ if (yych == 'n') goto yy247;
goto yy87;
yy187:
yych = *++cursor_;
- if (yych == 'p') goto yy247;
+ if (yych == 'p') goto yy249;
goto yy87;
yy188:
yych = *++cursor_;
- if (yych == 'f') goto yy249;
+ if (yych == 'f') goto yy251;
goto yy87;
yy189:
yych = *++cursor_;
- if (yych == 'r') goto yy250;
+ if (yych == 'r') goto yy252;
goto yy87;
yy190:
yych = *++cursor_;
if (yych <= 'r') {
- if (yych == 'g') goto yy251;
+ if (yych == 'g') goto yy253;
goto yy87;
} else {
- if (yych <= 's') goto yy252;
- if (yych <= 't') goto yy253;
+ if (yych <= 's') goto yy254;
+ if (yych <= 't') goto yy255;
goto yy87;
}
yy191:
yych = *++cursor_;
- if (yych == 'l') goto yy254;
- if (yych == 't') goto yy255;
+ if (yych == 'l') goto yy256;
+ if (yych == 't') goto yy257;
goto yy87;
yy192:
yych = *++cursor_;
- if (yych == 'a') goto yy256;
+ if (yych == 'a') goto yy258;
goto yy87;
yy193:
yych = *++cursor_;
- if (yych == 'b') goto yy257;
+ if (yych == 'b') goto yy259;
goto yy87;
yy194:
yych = *++cursor_;
- if (yych == 'e') goto yy258;
+ if (yych == 'e') goto yy260;
goto yy87;
yy195:
yych = *++cursor_;
- if (yych == 'e') goto yy259;
+ if (yych == 'e') goto yy261;
+ if (yych == 'r') goto yy262;
goto yy87;
yy196:
yych = *++cursor_;
- if (yych == 'p') goto yy260;
+ if (yych == 'y') goto yy263;
goto yy87;
yy197:
yych = *++cursor_;
- if (yych == 'r') goto yy261;
+ if (yych == 'p') goto yy265;
goto yy87;
yy198:
yych = *++cursor_;
+ if (yych == 'r') goto yy266;
+ goto yy87;
+yy199:
+ yych = *++cursor_;
if (yych <= 0x7F) goto yy129;
if (yych <= 0xBF) goto yy79;
goto yy129;
-yy199:
+yy200:
yych = *++cursor_;
if (yych <= 0x7F) goto yy129;
- if (yych <= 0xBF) goto yy198;
+ if (yych <= 0xBF) goto yy199;
goto yy129;
-yy200:
+yy201:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
@@ -1630,27 +1631,27 @@ yy200:
if (yych <= 'f') goto yy127;
goto yy129;
}
-yy201:
+yy202:
yych = *++cursor_;
if (yych <= '@') {
if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy262;
+ if (yych <= '9') goto yy267;
goto yy87;
} else {
- if (yych <= 'F') goto yy262;
+ if (yych <= 'F') goto yy267;
if (yych <= '`') goto yy87;
- if (yych <= 'f') goto yy262;
+ if (yych <= 'f') goto yy267;
goto yy87;
}
-yy202:
+yy203:
yych = *++cursor_;
- if (yych == 'f') goto yy236;
+ if (yych == 'f') goto yy238;
goto yy87;
-yy203:
+yy204:
yych = *++cursor_;
if (yych <= '/') goto yy87;
if (yych >= ':') goto yy87;
-yy204:
+yy205:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
@@ -1666,7 +1667,7 @@ yy204:
} else {
if (yych <= ':') {
if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy204;
+ if (yych <= '9') goto yy205;
goto yy86;
} else {
if (yych <= ';') goto yy152;
@@ -1674,12 +1675,12 @@ yy204:
goto yy152;
}
}
-yy206:
+yy207:
++cursor_;
if ((limit_ - cursor_) < 3) FILL(3);
yych = *cursor_;
if (yybm[0+yych] & 128) {
- goto yy206;
+ goto yy207;
}
if (yych <= '-') {
if (yych <= '"') {
@@ -1692,316 +1693,333 @@ yy206:
}
} else {
if (yych <= ';') {
- if (yych <= '.') goto yy264;
+ if (yych <= '.') goto yy269;
if (yych <= ':') goto yy86;
goto yy98;
} else {
- if (yych == 'p') goto yy266;
+ if (yych == 'p') goto yy271;
if (yych <= '~') goto yy86;
goto yy98;
}
}
-yy208:
- yych = *++cursor_;
- if (yych == 'g') goto yy267;
- goto yy87;
yy209:
yych = *++cursor_;
- if (yych == 'f') goto yy268;
+ if (yych == 'g') goto yy272;
goto yy87;
yy210:
yych = *++cursor_;
- if (yych == 'e') goto yy269;
+ if (yych == 'f') goto yy273;
goto yy87;
yy211:
yych = *++cursor_;
- if (yych == 'c') goto yy270;
+ if (yych == 'e') goto yy274;
goto yy87;
yy212:
yych = *++cursor_;
- if (yych == 'i') goto yy271;
- if (yych == 't') goto yy272;
+ if (yych == 'c') goto yy275;
goto yy87;
yy213:
yych = *++cursor_;
- if (yych == 'l') goto yy273;
+ if (yych == 'i') goto yy276;
+ if (yych == 't') goto yy277;
goto yy87;
yy214:
yych = *++cursor_;
- if (yych == 'r') goto yy275;
+ if (yych == 'l') goto yy278;
goto yy87;
yy215:
yych = *++cursor_;
- if (yych == 'a') goto yy276;
+ if (yych == 'c') goto yy280;
goto yy87;
yy216:
yych = *++cursor_;
- if (yych == 'p') goto yy278;
+ if (yych == 'r') goto yy281;
goto yy87;
yy217:
yych = *++cursor_;
- if (yych == 'm') goto yy280;
+ if (yych == 'a') goto yy282;
goto yy87;
yy218:
yych = *++cursor_;
- if (yych == 'e') goto yy282;
+ if (yych == 'p') goto yy284;
goto yy87;
yy219:
+ yych = *++cursor_;
+ if (yych == 'm') goto yy286;
+ goto yy87;
+yy220:
+ yych = *++cursor_;
+ if (yych == 'e') goto yy288;
+ goto yy87;
+yy221:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 272 "src/wast-lexer.cc"
{ RETURN(END); }
-#line 1757 "src/prebuilt/wast-lexer-gen.cc"
-yy221:
+#line 1762 "src/prebuilt/wast-lexer-gen.cc"
+yy223:
yych = *++cursor_;
- if (yych == 'o') goto yy284;
+ if (yych == 'o') goto yy290;
goto yy87;
-yy222:
+yy224:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy223;
+ if (yych <= '"') goto yy225;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
- if (yych == '.') goto yy285;
+ if (yych == '.') goto yy291;
goto yy86;
} else {
- if (yych <= ';') goto yy223;
+ if (yych <= ';') goto yy225;
if (yych <= '~') goto yy86;
}
}
-yy223:
+yy225:
#line 256 "src/wast-lexer.cc"
{ TYPE(F32); RETURN(VALUE_TYPE); }
-#line 1783 "src/prebuilt/wast-lexer-gen.cc"
-yy224:
+#line 1788 "src/prebuilt/wast-lexer-gen.cc"
+yy226:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy225;
+ if (yych <= '"') goto yy227;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
- if (yych == '.') goto yy286;
+ if (yych == '.') goto yy292;
goto yy86;
} else {
- if (yych <= ';') goto yy225;
+ if (yych <= ';') goto yy227;
if (yych <= '~') goto yy86;
}
}
-yy225:
+yy227:
#line 257 "src/wast-lexer.cc"
{ TYPE(F64); RETURN(VALUE_TYPE); }
-#line 1805 "src/prebuilt/wast-lexer-gen.cc"
-yy226:
+#line 1810 "src/prebuilt/wast-lexer-gen.cc"
+yy228:
yych = *++cursor_;
- if (yych == 'c') goto yy287;
+ if (yych == 'c') goto yy293;
goto yy87;
-yy227:
+yy229:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy228;
+ if (yych <= '"') goto yy230;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy289;
+ if (yych <= '_') goto yy295;
if (yych <= '~') goto yy86;
}
}
-yy228:
+yy230:
#line 452 "src/wast-lexer.cc"
{ RETURN(GET); }
-#line 1830 "src/prebuilt/wast-lexer-gen.cc"
-yy229:
+#line 1835 "src/prebuilt/wast-lexer-gen.cc"
+yy231:
yych = *++cursor_;
- if (yych == 'b') goto yy290;
+ if (yych == 'b') goto yy296;
goto yy87;
-yy230:
+yy232:
yych = *++cursor_;
- if (yych == 'w') goto yy291;
+ if (yych == 'w') goto yy297;
goto yy87;
-yy231:
+yy233:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy232;
+ if (yych <= '"') goto yy234;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
- if (yych == '.') goto yy292;
+ if (yych == '.') goto yy298;
goto yy86;
} else {
- if (yych <= ';') goto yy232;
+ if (yych <= ';') goto yy234;
if (yych <= '~') goto yy86;
}
}
-yy232:
+yy234:
#line 254 "src/wast-lexer.cc"
{ TYPE(I32); RETURN(VALUE_TYPE); }
-#line 1860 "src/prebuilt/wast-lexer-gen.cc"
-yy233:
+#line 1865 "src/prebuilt/wast-lexer-gen.cc"
+yy235:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy234;
+ if (yych <= '"') goto yy236;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
- if (yych == '.') goto yy293;
+ if (yych == '.') goto yy299;
goto yy86;
} else {
- if (yych <= ';') goto yy234;
+ if (yych <= ';') goto yy236;
if (yych <= '~') goto yy86;
}
}
-yy234:
+yy236:
#line 255 "src/wast-lexer.cc"
{ TYPE(I64); RETURN(VALUE_TYPE); }
-#line 1882 "src/prebuilt/wast-lexer-gen.cc"
-yy235:
+#line 1887 "src/prebuilt/wast-lexer-gen.cc"
+yy237:
yych = *++cursor_;
- if (yych == 'o') goto yy294;
+ if (yych == 'o') goto yy300;
goto yy87;
-yy236:
+yy238:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 239 "src/wast-lexer.cc"
{ LITERAL(Infinity); RETURN(FLOAT); }
-#line 1894 "src/prebuilt/wast-lexer-gen.cc"
-yy238:
- yych = *++cursor_;
- if (yych == 'o') goto yy295;
- goto yy87;
-yy239:
- yych = *++cursor_;
- if (yych == 'a') goto yy296;
- goto yy87;
+#line 1899 "src/prebuilt/wast-lexer-gen.cc"
yy240:
yych = *++cursor_;
- if (yych == 'p') goto yy297;
+ if (yych == 'o') goto yy301;
goto yy87;
yy241:
yych = *++cursor_;
- if (yych == 'o') goto yy299;
+ if (yych == 'a') goto yy302;
goto yy87;
yy242:
yych = *++cursor_;
- if (yych == 'u') goto yy300;
+ if (yych == 'p') goto yy303;
goto yy87;
yy243:
+ yych = *++cursor_;
+ if (yych == 'o') goto yy305;
+ goto yy87;
+yy244:
+ yych = *++cursor_;
+ if (yych == 'u') goto yy306;
+ goto yy87;
+yy245:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 259 "src/wast-lexer.cc"
{ RETURN(MUT); }
-#line 1922 "src/prebuilt/wast-lexer-gen.cc"
-yy245:
+#line 1927 "src/prebuilt/wast-lexer-gen.cc"
+yy247:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy246;
+ if (yych <= '"') goto yy248;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
if (yych <= '9') goto yy86;
- goto yy301;
+ goto yy307;
} else {
- if (yych <= ';') goto yy246;
+ if (yych <= ';') goto yy248;
if (yych <= '~') goto yy86;
}
}
-yy246:
+yy248:
#line 240 "src/wast-lexer.cc"
{ LITERAL(Nan); RETURN(FLOAT); }
-#line 1944 "src/prebuilt/wast-lexer-gen.cc"
-yy247:
+#line 1949 "src/prebuilt/wast-lexer-gen.cc"
+yy249:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 260 "src/wast-lexer.cc"
{ RETURN(NOP); }
-#line 1952 "src/prebuilt/wast-lexer-gen.cc"
-yy249:
- yych = *++cursor_;
- if (yych == 's') goto yy302;
- goto yy87;
-yy250:
- yych = *++cursor_;
- if (yych == 'a') goto yy303;
- goto yy87;
+#line 1957 "src/prebuilt/wast-lexer-gen.cc"
yy251:
yych = *++cursor_;
- if (yych == 'i') goto yy304;
+ if (yych == 's') goto yy308;
goto yy87;
yy252:
yych = *++cursor_;
- if (yych == 'u') goto yy305;
+ if (yych == 'a') goto yy309;
goto yy87;
yy253:
yych = *++cursor_;
- if (yych == 'u') goto yy306;
+ if (yych == 'i') goto yy310;
goto yy87;
yy254:
yych = *++cursor_;
- if (yych == 'e') goto yy307;
+ if (yych == 'u') goto yy311;
goto yy87;
yy255:
yych = *++cursor_;
- if (yych == '_') goto yy308;
+ if (yych == 'h') goto yy312;
+ if (yych == 'u') goto yy313;
goto yy87;
yy256:
yych = *++cursor_;
- if (yych == 'r') goto yy309;
+ if (yych == 'e') goto yy314;
goto yy87;
yy257:
yych = *++cursor_;
- if (yych == 'l') goto yy310;
+ if (yych == '_') goto yy315;
goto yy87;
yy258:
yych = *++cursor_;
- if (yych == '_') goto yy311;
+ if (yych == 'r') goto yy316;
goto yy87;
yy259:
yych = *++cursor_;
- if (yych == 'n') goto yy312;
+ if (yych == 'l') goto yy317;
goto yy87;
yy260:
yych = *++cursor_;
- if (yych == 'e') goto yy314;
+ if (yych == '_') goto yy318;
goto yy87;
yy261:
yych = *++cursor_;
- if (yych == 'e') goto yy316;
+ if (yych == 'n') goto yy319;
goto yy87;
yy262:
+ yych = *++cursor_;
+ if (yych == 'o') goto yy321;
+ goto yy87;
+yy263:
+ ++cursor_;
+ if (yybm[0+(yych = *cursor_)] & 8) {
+ goto yy86;
+ }
+#line 463 "src/wast-lexer.cc"
+ { RETURN(TRY); }
+#line 2014 "src/prebuilt/wast-lexer-gen.cc"
+yy265:
+ yych = *++cursor_;
+ if (yych == 'e') goto yy322;
+ goto yy87;
+yy266:
+ yych = *++cursor_;
+ if (yych == 'e') goto yy324;
+ goto yy87;
+yy267:
++cursor_;
if ((limit_ - cursor_) < 3) FILL(3);
yych = *cursor_;
@@ -2015,9 +2033,9 @@ yy262:
if (yych <= ')') goto yy145;
goto yy86;
} else {
- if (yych <= '.') goto yy264;
+ if (yych <= '.') goto yy269;
if (yych <= '/') goto yy86;
- goto yy262;
+ goto yy267;
}
}
} else {
@@ -2027,21 +2045,21 @@ yy262:
goto yy145;
} else {
if (yych <= '@') goto yy86;
- if (yych <= 'F') goto yy262;
+ if (yych <= 'F') goto yy267;
goto yy86;
}
} else {
if (yych <= 'o') {
- if (yych <= 'f') goto yy262;
+ if (yych <= 'f') goto yy267;
goto yy86;
} else {
- if (yych <= 'p') goto yy266;
+ if (yych <= 'p') goto yy271;
if (yych <= '~') goto yy86;
goto yy145;
}
}
}
-yy264:
+yy269:
++cursor_;
if ((limit_ - cursor_) < 3) FILL(3);
yych = *cursor_;
@@ -2053,315 +2071,327 @@ yy264:
} else {
if (yych <= ')') goto yy88;
if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy264;
+ if (yych <= '9') goto yy269;
goto yy86;
}
} else {
if (yych <= '`') {
if (yych <= ';') goto yy88;
if (yych <= '@') goto yy86;
- if (yych <= 'F') goto yy264;
+ if (yych <= 'F') goto yy269;
goto yy86;
} else {
if (yych <= 'o') {
- if (yych <= 'f') goto yy264;
+ if (yych <= 'f') goto yy269;
goto yy86;
} else {
- if (yych <= 'p') goto yy266;
+ if (yych <= 'p') goto yy271;
if (yych <= '~') goto yy86;
goto yy88;
}
}
}
-yy266:
+yy271:
yych = *++cursor_;
if (yych <= ',') {
- if (yych == '+') goto yy317;
+ if (yych == '+') goto yy325;
goto yy87;
} else {
- if (yych <= '-') goto yy317;
+ if (yych <= '-') goto yy325;
if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy318;
+ if (yych <= '9') goto yy326;
goto yy87;
}
-yy267:
+yy272:
yych = *++cursor_;
- if (yych == 'n') goto yy321;
+ if (yych == 'n') goto yy329;
goto yy87;
-yy268:
+yy273:
yych = *++cursor_;
- if (yych == 'u') goto yy322;
+ if (yych == 'u') goto yy330;
goto yy87;
-yy269:
+yy274:
yych = *++cursor_;
- if (yych == 'r') goto yy323;
+ if (yych == 'r') goto yy331;
goto yy87;
-yy270:
+yy275:
yych = *++cursor_;
- if (yych == 'k') goto yy324;
+ if (yych == 'k') goto yy332;
goto yy87;
-yy271:
+yy276:
yych = *++cursor_;
- if (yych == 'f') goto yy326;
+ if (yych == 'f') goto yy334;
goto yy87;
-yy272:
+yy277:
yych = *++cursor_;
- if (yych == 'a') goto yy328;
+ if (yych == 'a') goto yy336;
goto yy87;
-yy273:
+yy278:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy274;
+ if (yych <= '"') goto yy279;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy329;
+ if (yych <= '_') goto yy337;
if (yych <= '~') goto yy86;
}
}
-yy274:
+yy279:
#line 269 "src/wast-lexer.cc"
{ RETURN(CALL); }
-#line 2132 "src/prebuilt/wast-lexer-gen.cc"
-yy275:
+#line 2150 "src/prebuilt/wast-lexer-gen.cc"
+yy280:
yych = *++cursor_;
- if (yych == 'e') goto yy330;
+ if (yych == 'h') goto yy338;
goto yy87;
-yy276:
+yy281:
+ yych = *++cursor_;
+ if (yych == 'e') goto yy340;
+ goto yy87;
+yy282:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 446 "src/wast-lexer.cc"
{ RETURN(DATA); }
-#line 2144 "src/prebuilt/wast-lexer-gen.cc"
-yy278:
+#line 2166 "src/prebuilt/wast-lexer-gen.cc"
+yy284:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 271 "src/wast-lexer.cc"
{ RETURN(DROP); }
-#line 2152 "src/prebuilt/wast-lexer-gen.cc"
-yy280:
+#line 2174 "src/prebuilt/wast-lexer-gen.cc"
+yy286:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 445 "src/wast-lexer.cc"
{ RETURN(ELEM); }
-#line 2160 "src/prebuilt/wast-lexer-gen.cc"
-yy282:
+#line 2182 "src/prebuilt/wast-lexer-gen.cc"
+yy288:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 264 "src/wast-lexer.cc"
{ RETURN(ELSE); }
-#line 2168 "src/prebuilt/wast-lexer-gen.cc"
-yy284:
+#line 2190 "src/prebuilt/wast-lexer-gen.cc"
+yy290:
yych = *++cursor_;
- if (yych == 'r') goto yy331;
+ if (yych == 'r') goto yy341;
goto yy87;
-yy285:
+yy291:
yych = *++cursor_;
switch (yych) {
- case 'a': goto yy332;
- case 'c': goto yy333;
- case 'd': goto yy334;
- case 'e': goto yy335;
- case 'f': goto yy336;
- case 'g': goto yy337;
- case 'l': goto yy338;
- case 'm': goto yy339;
- case 'n': goto yy340;
- case 'r': goto yy341;
- case 's': goto yy342;
- case 't': goto yy343;
+ case 'a': goto yy342;
+ case 'c': goto yy343;
+ case 'd': goto yy344;
+ case 'e': goto yy345;
+ case 'f': goto yy346;
+ case 'g': goto yy347;
+ case 'l': goto yy348;
+ case 'm': goto yy349;
+ case 'n': goto yy350;
+ case 'r': goto yy351;
+ case 's': goto yy352;
+ case 't': goto yy353;
default: goto yy87;
}
-yy286:
+yy292:
yych = *++cursor_;
switch (yych) {
- case 'a': goto yy344;
- case 'c': goto yy345;
- case 'd': goto yy346;
- case 'e': goto yy347;
- case 'f': goto yy348;
- case 'g': goto yy349;
- case 'l': goto yy350;
- case 'm': goto yy351;
- case 'n': goto yy352;
- case 'p': goto yy353;
- case 'r': goto yy354;
- case 's': goto yy355;
- case 't': goto yy356;
+ case 'a': goto yy354;
+ case 'c': goto yy355;
+ case 'd': goto yy356;
+ case 'e': goto yy357;
+ case 'f': goto yy358;
+ case 'g': goto yy359;
+ case 'l': goto yy360;
+ case 'm': goto yy361;
+ case 'n': goto yy362;
+ case 'p': goto yy363;
+ case 'r': goto yy364;
+ case 's': goto yy365;
+ case 't': goto yy366;
default: goto yy87;
}
-yy287:
+yy293:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 436 "src/wast-lexer.cc"
{ RETURN(FUNC); }
-#line 2215 "src/prebuilt/wast-lexer-gen.cc"
-yy289:
+#line 2237 "src/prebuilt/wast-lexer-gen.cc"
+yy295:
yych = *++cursor_;
- if (yych == 'g') goto yy357;
- if (yych == 'l') goto yy358;
+ if (yych == 'g') goto yy367;
+ if (yych == 'l') goto yy368;
goto yy87;
-yy290:
+yy296:
yych = *++cursor_;
- if (yych == 'a') goto yy359;
+ if (yych == 'a') goto yy369;
goto yy87;
-yy291:
+yy297:
yych = *++cursor_;
- if (yych == '_') goto yy360;
+ if (yych == '_') goto yy370;
goto yy87;
-yy292:
+yy298:
yych = *++cursor_;
switch (yych) {
- case 'a': goto yy361;
- case 'c': goto yy362;
- case 'd': goto yy363;
- case 'e': goto yy364;
- case 'g': goto yy365;
- case 'l': goto yy366;
- case 'm': goto yy367;
- case 'n': goto yy368;
- case 'o': goto yy369;
- case 'p': goto yy370;
- case 'r': goto yy371;
- case 's': goto yy372;
- case 't': goto yy373;
- case 'w': goto yy374;
- case 'x': goto yy375;
+ case 'a': goto yy371;
+ case 'c': goto yy372;
+ case 'd': goto yy373;
+ case 'e': goto yy374;
+ case 'g': goto yy375;
+ case 'l': goto yy376;
+ case 'm': goto yy377;
+ case 'n': goto yy378;
+ case 'o': goto yy379;
+ case 'p': goto yy380;
+ case 'r': goto yy381;
+ case 's': goto yy382;
+ case 't': goto yy383;
+ case 'w': goto yy384;
+ case 'x': goto yy385;
default: goto yy87;
}
-yy293:
+yy299:
yych = *++cursor_;
switch (yych) {
- case 'a': goto yy376;
- case 'c': goto yy377;
- case 'd': goto yy378;
- case 'e': goto yy379;
- case 'g': goto yy380;
- case 'l': goto yy381;
- case 'm': goto yy382;
- case 'n': goto yy383;
- case 'o': goto yy384;
- case 'p': goto yy385;
- case 'r': goto yy386;
- case 's': goto yy387;
- case 't': goto yy388;
- case 'x': goto yy389;
+ case 'a': goto yy386;
+ case 'c': goto yy387;
+ case 'd': goto yy388;
+ case 'e': goto yy389;
+ case 'g': goto yy390;
+ case 'l': goto yy391;
+ case 'm': goto yy392;
+ case 'n': goto yy393;
+ case 'o': goto yy394;
+ case 'p': goto yy395;
+ case 'r': goto yy396;
+ case 's': goto yy397;
+ case 't': goto yy398;
+ case 'x': goto yy399;
default: goto yy87;
}
-yy294:
+yy300:
yych = *++cursor_;
- if (yych == 'r') goto yy390;
+ if (yych == 'r') goto yy400;
goto yy87;
-yy295:
+yy301:
yych = *++cursor_;
- if (yych == 'k') goto yy391;
+ if (yych == 'k') goto yy401;
goto yy87;
-yy296:
+yy302:
yych = *++cursor_;
- if (yych == 'l') goto yy392;
+ if (yych == 'l') goto yy402;
goto yy87;
-yy297:
+yy303:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 265 "src/wast-lexer.cc"
{ RETURN(LOOP); }
-#line 2287 "src/prebuilt/wast-lexer-gen.cc"
-yy299:
+#line 2309 "src/prebuilt/wast-lexer-gen.cc"
+yy305:
yych = *++cursor_;
- if (yych == 'r') goto yy394;
+ if (yych == 'r') goto yy404;
goto yy87;
-yy300:
+yy306:
yych = *++cursor_;
- if (yych == 'l') goto yy395;
+ if (yych == 'l') goto yy405;
goto yy87;
-yy301:
+yy307:
yych = *++cursor_;
- if (yych == '0') goto yy396;
+ if (yych == '0') goto yy406;
goto yy87;
-yy302:
+yy308:
yych = *++cursor_;
- if (yych == 'e') goto yy397;
+ if (yych == 'e') goto yy407;
goto yy87;
-yy303:
+yy309:
yych = *++cursor_;
- if (yych == 'm') goto yy398;
+ if (yych == 'm') goto yy408;
goto yy87;
-yy304:
+yy310:
yych = *++cursor_;
- if (yych == 's') goto yy400;
+ if (yych == 's') goto yy410;
goto yy87;
-yy305:
+yy311:
yych = *++cursor_;
- if (yych == 'l') goto yy401;
+ if (yych == 'l') goto yy411;
goto yy87;
-yy306:
+yy312:
yych = *++cursor_;
- if (yych == 'r') goto yy402;
+ if (yych == 'r') goto yy412;
goto yy87;
-yy307:
+yy313:
yych = *++cursor_;
- if (yych == 'c') goto yy403;
+ if (yych == 'r') goto yy413;
goto yy87;
-yy308:
+yy314:
yych = *++cursor_;
- if (yych == 'g') goto yy404;
- if (yych == 'l') goto yy405;
+ if (yych == 'c') goto yy414;
goto yy87;
-yy309:
+yy315:
yych = *++cursor_;
- if (yych == 't') goto yy406;
+ if (yych == 'g') goto yy415;
+ if (yych == 'l') goto yy416;
goto yy87;
-yy310:
+yy316:
yych = *++cursor_;
- if (yych == 'e') goto yy408;
+ if (yych == 't') goto yy417;
goto yy87;
-yy311:
+yy317:
yych = *++cursor_;
- if (yych == 'l') goto yy410;
+ if (yych == 'e') goto yy419;
goto yy87;
-yy312:
+yy318:
+ yych = *++cursor_;
+ if (yych == 'l') goto yy421;
+ goto yy87;
+yy319:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 263 "src/wast-lexer.cc"
{ RETURN(THEN); }
-#line 2348 "src/prebuilt/wast-lexer-gen.cc"
-yy314:
+#line 2374 "src/prebuilt/wast-lexer-gen.cc"
+yy321:
+ yych = *++cursor_;
+ if (yych == 'w') goto yy422;
+ goto yy87;
+yy322:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 435 "src/wast-lexer.cc"
{ RETURN(TYPE); }
-#line 2356 "src/prebuilt/wast-lexer-gen.cc"
-yy316:
+#line 2386 "src/prebuilt/wast-lexer-gen.cc"
+yy324:
yych = *++cursor_;
- if (yych == 'a') goto yy411;
+ if (yych == 'a') goto yy424;
goto yy87;
-yy317:
+yy325:
yych = *++cursor_;
if (yych <= '/') goto yy87;
if (yych >= ':') goto yy87;
-yy318:
+yy326:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
@@ -2369,593 +2399,630 @@ yy318:
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy320;
+ if (yych <= '"') goto yy328;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy318;
+ if (yych <= '9') goto yy326;
goto yy86;
} else {
- if (yych <= ';') goto yy320;
+ if (yych <= ';') goto yy328;
if (yych <= '~') goto yy86;
}
}
-yy320:
+yy328:
#line 238 "src/wast-lexer.cc"
{ LITERAL(Hexfloat); RETURN(FLOAT); }
-#line 2389 "src/prebuilt/wast-lexer-gen.cc"
-yy321:
+#line 2419 "src/prebuilt/wast-lexer-gen.cc"
+yy329:
yych = *++cursor_;
- if (yych == '=') goto yy412;
+ if (yych == '=') goto yy425;
goto yy87;
-yy322:
+yy330:
yych = *++cursor_;
- if (yych == 'n') goto yy413;
+ if (yych == 'n') goto yy426;
goto yy87;
-yy323:
+yy331:
yych = *++cursor_;
- if (yych == 't') goto yy414;
+ if (yych == 't') goto yy427;
goto yy87;
-yy324:
+yy332:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 261 "src/wast-lexer.cc"
{ RETURN(BLOCK); }
-#line 2409 "src/prebuilt/wast-lexer-gen.cc"
-yy326:
+#line 2439 "src/prebuilt/wast-lexer-gen.cc"
+yy334:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 267 "src/wast-lexer.cc"
{ RETURN(BR_IF); }
-#line 2417 "src/prebuilt/wast-lexer-gen.cc"
-yy328:
+#line 2447 "src/prebuilt/wast-lexer-gen.cc"
+yy336:
yych = *++cursor_;
- if (yych == 'b') goto yy415;
+ if (yych == 'b') goto yy428;
goto yy87;
-yy329:
+yy337:
yych = *++cursor_;
- if (yych == 'i') goto yy416;
+ if (yych == 'i') goto yy429;
goto yy87;
-yy330:
+yy338:
+ ++cursor_;
+ if ((yych = *cursor_) <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy86;
+ } else {
+ if (yych <= '"') goto yy339;
+ if (yych <= '\'') goto yy86;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych != ';') goto yy86;
+ } else {
+ if (yych <= '_') goto yy430;
+ if (yych <= '~') goto yy86;
+ }
+ }
+yy339:
+#line 464 "src/wast-lexer.cc"
+ { RETURN(CATCH); }
+#line 2476 "src/prebuilt/wast-lexer-gen.cc"
+yy340:
yych = *++cursor_;
- if (yych == 'n') goto yy417;
+ if (yych == 'n') goto yy431;
goto yy87;
-yy331:
+yy341:
yych = *++cursor_;
- if (yych == 't') goto yy418;
+ if (yych == 't') goto yy432;
goto yy87;
-yy332:
+yy342:
yych = *++cursor_;
- if (yych == 'b') goto yy420;
- if (yych == 'd') goto yy421;
+ if (yych == 'b') goto yy434;
+ if (yych == 'd') goto yy435;
goto yy87;
-yy333:
+yy343:
yych = *++cursor_;
- if (yych == 'e') goto yy422;
- if (yych == 'o') goto yy423;
+ if (yych == 'e') goto yy436;
+ if (yych == 'o') goto yy437;
goto yy87;
-yy334:
+yy344:
yych = *++cursor_;
- if (yych == 'e') goto yy424;
- if (yych == 'i') goto yy425;
+ if (yych == 'e') goto yy438;
+ if (yych == 'i') goto yy439;
goto yy87;
-yy335:
+yy345:
yych = *++cursor_;
- if (yych == 'q') goto yy426;
+ if (yych == 'q') goto yy440;
goto yy87;
-yy336:
+yy346:
yych = *++cursor_;
- if (yych == 'l') goto yy428;
+ if (yych == 'l') goto yy442;
goto yy87;
-yy337:
+yy347:
yych = *++cursor_;
- if (yych == 'e') goto yy429;
- if (yych == 't') goto yy431;
+ if (yych == 'e') goto yy443;
+ if (yych == 't') goto yy445;
goto yy87;
-yy338:
+yy348:
yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'e') goto yy433;
+ if (yych == 'e') goto yy447;
goto yy87;
} else {
- if (yych <= 'o') goto yy435;
- if (yych == 't') goto yy436;
+ if (yych <= 'o') goto yy449;
+ if (yych == 't') goto yy450;
goto yy87;
}
-yy339:
+yy349:
yych = *++cursor_;
if (yych <= 'h') {
- if (yych == 'a') goto yy438;
+ if (yych == 'a') goto yy452;
goto yy87;
} else {
- if (yych <= 'i') goto yy439;
- if (yych == 'u') goto yy440;
+ if (yych <= 'i') goto yy453;
+ if (yych == 'u') goto yy454;
goto yy87;
}
-yy340:
+yy350:
yych = *++cursor_;
- if (yych == 'e') goto yy441;
+ if (yych == 'e') goto yy455;
goto yy87;
-yy341:
+yy351:
yych = *++cursor_;
- if (yych == 'e') goto yy443;
+ if (yych == 'e') goto yy457;
goto yy87;
-yy342:
+yy352:
yych = *++cursor_;
if (yych <= 's') {
- if (yych == 'q') goto yy444;
+ if (yych == 'q') goto yy458;
goto yy87;
} else {
- if (yych <= 't') goto yy445;
- if (yych <= 'u') goto yy446;
+ if (yych <= 't') goto yy459;
+ if (yych <= 'u') goto yy460;
goto yy87;
}
-yy343:
+yy353:
yych = *++cursor_;
- if (yych == 'r') goto yy447;
+ if (yych == 'r') goto yy461;
goto yy87;
-yy344:
+yy354:
yych = *++cursor_;
- if (yych == 'b') goto yy448;
- if (yych == 'd') goto yy449;
+ if (yych == 'b') goto yy462;
+ if (yych == 'd') goto yy463;
goto yy87;
-yy345:
+yy355:
yych = *++cursor_;
- if (yych == 'e') goto yy450;
- if (yych == 'o') goto yy451;
+ if (yych == 'e') goto yy464;
+ if (yych == 'o') goto yy465;
goto yy87;
-yy346:
+yy356:
yych = *++cursor_;
- if (yych == 'i') goto yy452;
+ if (yych == 'i') goto yy466;
goto yy87;
-yy347:
+yy357:
yych = *++cursor_;
- if (yych == 'q') goto yy453;
+ if (yych == 'q') goto yy467;
goto yy87;
-yy348:
+yy358:
yych = *++cursor_;
- if (yych == 'l') goto yy455;
+ if (yych == 'l') goto yy469;
goto yy87;
-yy349:
+yy359:
yych = *++cursor_;
- if (yych == 'e') goto yy456;
- if (yych == 't') goto yy458;
+ if (yych == 'e') goto yy470;
+ if (yych == 't') goto yy472;
goto yy87;
-yy350:
+yy360:
yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'e') goto yy460;
+ if (yych == 'e') goto yy474;
goto yy87;
} else {
- if (yych <= 'o') goto yy462;
- if (yych == 't') goto yy463;
+ if (yych <= 'o') goto yy476;
+ if (yych == 't') goto yy477;
goto yy87;
}
-yy351:
+yy361:
yych = *++cursor_;
if (yych <= 'h') {
- if (yych == 'a') goto yy465;
+ if (yych == 'a') goto yy479;
goto yy87;
} else {
- if (yych <= 'i') goto yy466;
- if (yych == 'u') goto yy467;
+ if (yych <= 'i') goto yy480;
+ if (yych == 'u') goto yy481;
goto yy87;
}
-yy352:
+yy362:
yych = *++cursor_;
- if (yych == 'e') goto yy468;
+ if (yych == 'e') goto yy482;
goto yy87;
-yy353:
+yy363:
yych = *++cursor_;
- if (yych == 'r') goto yy470;
+ if (yych == 'r') goto yy484;
goto yy87;
-yy354:
+yy364:
yych = *++cursor_;
- if (yych == 'e') goto yy471;
+ if (yych == 'e') goto yy485;
goto yy87;
-yy355:
+yy365:
yych = *++cursor_;
if (yych <= 's') {
- if (yych == 'q') goto yy472;
+ if (yych == 'q') goto yy486;
goto yy87;
} else {
- if (yych <= 't') goto yy473;
- if (yych <= 'u') goto yy474;
+ if (yych <= 't') goto yy487;
+ if (yych <= 'u') goto yy488;
goto yy87;
}
-yy356:
+yy366:
yych = *++cursor_;
- if (yych == 'r') goto yy475;
+ if (yych == 'r') goto yy489;
goto yy87;
-yy357:
+yy367:
yych = *++cursor_;
- if (yych == 'l') goto yy476;
+ if (yych == 'l') goto yy490;
goto yy87;
-yy358:
+yy368:
yych = *++cursor_;
- if (yych == 'o') goto yy477;
+ if (yych == 'o') goto yy491;
goto yy87;
-yy359:
+yy369:
yych = *++cursor_;
- if (yych == 'l') goto yy478;
+ if (yych == 'l') goto yy492;
goto yy87;
-yy360:
+yy370:
yych = *++cursor_;
- if (yych == 'm') goto yy480;
+ if (yych == 'm') goto yy494;
goto yy87;
-yy361:
+yy371:
yych = *++cursor_;
- if (yych == 'd') goto yy481;
- if (yych == 'n') goto yy482;
+ if (yych == 'd') goto yy495;
+ if (yych == 'n') goto yy496;
goto yy87;
-yy362:
+yy372:
yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'l') goto yy483;
+ if (yych == 'l') goto yy497;
goto yy87;
} else {
- if (yych <= 'o') goto yy484;
- if (yych == 't') goto yy485;
+ if (yych <= 'o') goto yy498;
+ if (yych == 't') goto yy499;
goto yy87;
}
-yy363:
+yy373:
yych = *++cursor_;
- if (yych == 'i') goto yy486;
+ if (yych == 'i') goto yy500;
goto yy87;
-yy364:
+yy374:
yych = *++cursor_;
- if (yych == 'q') goto yy487;
+ if (yych == 'q') goto yy501;
goto yy87;
-yy365:
+yy375:
yych = *++cursor_;
- if (yych == 'e') goto yy489;
- if (yych == 't') goto yy490;
+ if (yych == 'e') goto yy503;
+ if (yych == 't') goto yy504;
goto yy87;
-yy366:
+yy376:
yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'e') goto yy491;
+ if (yych == 'e') goto yy505;
goto yy87;
} else {
- if (yych <= 'o') goto yy492;
- if (yych == 't') goto yy493;
+ if (yych <= 'o') goto yy506;
+ if (yych == 't') goto yy507;
goto yy87;
}
-yy367:
+yy377:
yych = *++cursor_;
- if (yych == 'u') goto yy494;
+ if (yych == 'u') goto yy508;
goto yy87;
-yy368:
+yy378:
yych = *++cursor_;
- if (yych == 'e') goto yy495;
+ if (yych == 'e') goto yy509;
goto yy87;
-yy369:
+yy379:
yych = *++cursor_;
- if (yych == 'r') goto yy497;
+ if (yych == 'r') goto yy511;
goto yy87;
-yy370:
+yy380:
yych = *++cursor_;
- if (yych == 'o') goto yy499;
+ if (yych == 'o') goto yy513;
goto yy87;
-yy371:
+yy381:
yych = *++cursor_;
- if (yych == 'e') goto yy500;
- if (yych == 'o') goto yy501;
+ if (yych == 'e') goto yy514;
+ if (yych == 'o') goto yy515;
goto yy87;
-yy372:
+yy382:
yych = *++cursor_;
if (yych <= 's') {
- if (yych == 'h') goto yy502;
+ if (yych == 'h') goto yy516;
goto yy87;
} else {
- if (yych <= 't') goto yy503;
- if (yych <= 'u') goto yy504;
+ if (yych <= 't') goto yy517;
+ if (yych <= 'u') goto yy518;
goto yy87;
}
-yy373:
+yy383:
yych = *++cursor_;
- if (yych == 'r') goto yy505;
+ if (yych == 'r') goto yy519;
goto yy87;
-yy374:
+yy384:
yych = *++cursor_;
- if (yych == 'r') goto yy506;
+ if (yych == 'r') goto yy520;
goto yy87;
-yy375:
+yy385:
yych = *++cursor_;
- if (yych == 'o') goto yy507;
+ if (yych == 'o') goto yy521;
goto yy87;
-yy376:
+yy386:
yych = *++cursor_;
- if (yych == 'd') goto yy508;
- if (yych == 'n') goto yy509;
+ if (yych == 'd') goto yy522;
+ if (yych == 'n') goto yy523;
goto yy87;
-yy377:
+yy387:
yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'l') goto yy510;
+ if (yych == 'l') goto yy524;
goto yy87;
} else {
- if (yych <= 'o') goto yy511;
- if (yych == 't') goto yy512;
+ if (yych <= 'o') goto yy525;
+ if (yych == 't') goto yy526;
goto yy87;
}
-yy378:
+yy388:
yych = *++cursor_;
- if (yych == 'i') goto yy513;
+ if (yych == 'i') goto yy527;
goto yy87;
-yy379:
+yy389:
yych = *++cursor_;
- if (yych == 'q') goto yy514;
- if (yych == 'x') goto yy516;
+ if (yych == 'q') goto yy528;
+ if (yych == 'x') goto yy530;
goto yy87;
-yy380:
+yy390:
yych = *++cursor_;
- if (yych == 'e') goto yy517;
- if (yych == 't') goto yy518;
+ if (yych == 'e') goto yy531;
+ if (yych == 't') goto yy532;
goto yy87;
-yy381:
+yy391:
yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'e') goto yy519;
+ if (yych == 'e') goto yy533;
goto yy87;
} else {
- if (yych <= 'o') goto yy520;
- if (yych == 't') goto yy521;
+ if (yych <= 'o') goto yy534;
+ if (yych == 't') goto yy535;
goto yy87;
}
-yy382:
+yy392:
yych = *++cursor_;
- if (yych == 'u') goto yy522;
+ if (yych == 'u') goto yy536;
goto yy87;
-yy383:
+yy393:
yych = *++cursor_;
- if (yych == 'e') goto yy523;
+ if (yych == 'e') goto yy537;
goto yy87;
-yy384:
+yy394:
yych = *++cursor_;
- if (yych == 'r') goto yy525;
+ if (yych == 'r') goto yy539;
goto yy87;
-yy385:
+yy395:
yych = *++cursor_;
- if (yych == 'o') goto yy527;
+ if (yych == 'o') goto yy541;
goto yy87;
-yy386:
+yy396:
yych = *++cursor_;
- if (yych == 'e') goto yy528;
- if (yych == 'o') goto yy529;
+ if (yych == 'e') goto yy542;
+ if (yych == 'o') goto yy543;
goto yy87;
-yy387:
+yy397:
yych = *++cursor_;
if (yych <= 's') {
- if (yych == 'h') goto yy530;
+ if (yych == 'h') goto yy544;
goto yy87;
} else {
- if (yych <= 't') goto yy531;
- if (yych <= 'u') goto yy532;
+ if (yych <= 't') goto yy545;
+ if (yych <= 'u') goto yy546;
goto yy87;
}
-yy388:
+yy398:
yych = *++cursor_;
- if (yych == 'r') goto yy533;
+ if (yych == 'r') goto yy547;
goto yy87;
-yy389:
+yy399:
yych = *++cursor_;
- if (yych == 'o') goto yy534;
+ if (yych == 'o') goto yy548;
goto yy87;
-yy390:
+yy400:
yych = *++cursor_;
- if (yych == 't') goto yy535;
+ if (yych == 't') goto yy549;
goto yy87;
-yy391:
+yy401:
yych = *++cursor_;
- if (yych == 'e') goto yy537;
+ if (yych == 'e') goto yy551;
goto yy87;
-yy392:
+yy402:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 439 "src/wast-lexer.cc"
{ RETURN(LOCAL); }
-#line 2767 "src/prebuilt/wast-lexer-gen.cc"
-yy394:
+#line 2818 "src/prebuilt/wast-lexer-gen.cc"
+yy404:
yych = *++cursor_;
- if (yych == 'y') goto yy539;
+ if (yych == 'y') goto yy553;
goto yy87;
-yy395:
+yy405:
yych = *++cursor_;
- if (yych == 'e') goto yy541;
+ if (yych == 'e') goto yy555;
goto yy87;
-yy396:
+yy406:
yych = *++cursor_;
- if (yych == 'x') goto yy543;
+ if (yych == 'x') goto yy557;
goto yy87;
-yy397:
+yy407:
yych = *++cursor_;
- if (yych == 't') goto yy544;
+ if (yych == 't') goto yy558;
goto yy87;
-yy398:
+yy408:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 437 "src/wast-lexer.cc"
{ RETURN(PARAM); }
-#line 2791 "src/prebuilt/wast-lexer-gen.cc"
-yy400:
+#line 2842 "src/prebuilt/wast-lexer-gen.cc"
+yy410:
yych = *++cursor_;
- if (yych == 't') goto yy546;
+ if (yych == 't') goto yy560;
goto yy87;
-yy401:
+yy411:
yych = *++cursor_;
- if (yych == 't') goto yy547;
+ if (yych == 't') goto yy561;
goto yy87;
-yy402:
+yy412:
yych = *++cursor_;
- if (yych == 'n') goto yy549;
+ if (yych == 'o') goto yy563;
goto yy87;
-yy403:
+yy413:
yych = *++cursor_;
- if (yych == 't') goto yy551;
+ if (yych == 'n') goto yy564;
goto yy87;
-yy404:
+yy414:
yych = *++cursor_;
- if (yych == 'l') goto yy553;
+ if (yych == 't') goto yy566;
goto yy87;
-yy405:
+yy415:
yych = *++cursor_;
- if (yych == 'o') goto yy554;
+ if (yych == 'l') goto yy568;
goto yy87;
-yy406:
+yy416:
+ yych = *++cursor_;
+ if (yych == 'o') goto yy569;
+ goto yy87;
+yy417:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 444 "src/wast-lexer.cc"
{ RETURN(START); }
-#line 2823 "src/prebuilt/wast-lexer-gen.cc"
-yy408:
+#line 2878 "src/prebuilt/wast-lexer-gen.cc"
+yy419:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 442 "src/wast-lexer.cc"
{ RETURN(TABLE); }
-#line 2831 "src/prebuilt/wast-lexer-gen.cc"
-yy410:
+#line 2886 "src/prebuilt/wast-lexer-gen.cc"
+yy421:
yych = *++cursor_;
- if (yych == 'o') goto yy555;
+ if (yych == 'o') goto yy570;
goto yy87;
-yy411:
+yy422:
+ ++cursor_;
+ if (yybm[0+(yych = *cursor_)] & 8) {
+ goto yy86;
+ }
+#line 466 "src/wast-lexer.cc"
+ { RETURN(THROW); }
+#line 2898 "src/prebuilt/wast-lexer-gen.cc"
+yy424:
yych = *++cursor_;
- if (yych == 'c') goto yy556;
+ if (yych == 'c') goto yy571;
goto yy87;
-yy412:
+yy425:
yych = *++cursor_;
if (yych <= '/') goto yy87;
- if (yych <= '0') goto yy557;
- if (yych <= '9') goto yy559;
+ if (yych <= '0') goto yy572;
+ if (yych <= '9') goto yy574;
goto yy87;
-yy413:
+yy426:
yych = *++cursor_;
- if (yych == 'c') goto yy561;
+ if (yych == 'c') goto yy576;
goto yy87;
-yy414:
+yy427:
yych = *++cursor_;
- if (yych == '_') goto yy563;
+ if (yych == '_') goto yy578;
goto yy87;
-yy415:
+yy428:
yych = *++cursor_;
- if (yych == 'l') goto yy564;
+ if (yych == 'l') goto yy579;
goto yy87;
-yy416:
+yy429:
yych = *++cursor_;
- if (yych == 'n') goto yy565;
+ if (yych == 'n') goto yy580;
goto yy87;
-yy417:
+yy430:
yych = *++cursor_;
- if (yych == 't') goto yy566;
+ if (yych == 'a') goto yy581;
goto yy87;
-yy418:
+yy431:
+ yych = *++cursor_;
+ if (yych == 't') goto yy582;
+ goto yy87;
+yy432:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 449 "src/wast-lexer.cc"
{ RETURN(EXPORT); }
-#line 2873 "src/prebuilt/wast-lexer-gen.cc"
-yy420:
+#line 2940 "src/prebuilt/wast-lexer-gen.cc"
+yy434:
yych = *++cursor_;
- if (yych == 's') goto yy567;
+ if (yych == 's') goto yy583;
goto yy87;
-yy421:
+yy435:
yych = *++cursor_;
- if (yych == 'd') goto yy569;
+ if (yych == 'd') goto yy585;
goto yy87;
-yy422:
+yy436:
yych = *++cursor_;
- if (yych == 'i') goto yy571;
+ if (yych == 'i') goto yy587;
goto yy87;
-yy423:
+yy437:
yych = *++cursor_;
- if (yych == 'n') goto yy572;
- if (yych == 'p') goto yy573;
+ if (yych == 'n') goto yy588;
+ if (yych == 'p') goto yy589;
goto yy87;
-yy424:
+yy438:
yych = *++cursor_;
- if (yych == 'm') goto yy574;
+ if (yych == 'm') goto yy590;
goto yy87;
-yy425:
+yy439:
yych = *++cursor_;
- if (yych == 'v') goto yy575;
+ if (yych == 'v') goto yy591;
goto yy87;
-yy426:
+yy440:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 394 "src/wast-lexer.cc"
{ OPCODE(F32Eq); RETURN(COMPARE); }
-#line 2906 "src/prebuilt/wast-lexer-gen.cc"
-yy428:
+#line 2973 "src/prebuilt/wast-lexer-gen.cc"
+yy442:
yych = *++cursor_;
- if (yych == 'o') goto yy577;
+ if (yych == 'o') goto yy593;
goto yy87;
-yy429:
+yy443:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 404 "src/wast-lexer.cc"
{ OPCODE(F32Ge); RETURN(COMPARE); }
-#line 2918 "src/prebuilt/wast-lexer-gen.cc"
-yy431:
+#line 2985 "src/prebuilt/wast-lexer-gen.cc"
+yy445:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 402 "src/wast-lexer.cc"
{ OPCODE(F32Gt); RETURN(COMPARE); }
-#line 2926 "src/prebuilt/wast-lexer-gen.cc"
-yy433:
+#line 2993 "src/prebuilt/wast-lexer-gen.cc"
+yy447:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 400 "src/wast-lexer.cc"
{ OPCODE(F32Le); RETURN(COMPARE); }
-#line 2934 "src/prebuilt/wast-lexer-gen.cc"
-yy435:
+#line 3001 "src/prebuilt/wast-lexer-gen.cc"
+yy449:
yych = *++cursor_;
- if (yych == 'a') goto yy578;
+ if (yych == 'a') goto yy594;
goto yy87;
-yy436:
+yy450:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 398 "src/wast-lexer.cc"
{ OPCODE(F32Lt); RETURN(COMPARE); }
-#line 2946 "src/prebuilt/wast-lexer-gen.cc"
-yy438:
+#line 3013 "src/prebuilt/wast-lexer-gen.cc"
+yy452:
yych = *++cursor_;
- if (yych == 'x') goto yy579;
+ if (yych == 'x') goto yy595;
goto yy87;
-yy439:
+yy453:
yych = *++cursor_;
- if (yych == 'n') goto yy581;
+ if (yych == 'n') goto yy597;
goto yy87;
-yy440:
+yy454:
yych = *++cursor_;
- if (yych == 'l') goto yy583;
+ if (yych == 'l') goto yy599;
goto yy87;
-yy441:
+yy455:
++cursor_;
if ((yych = *cursor_) <= ':') {
if (yych <= '"') {
@@ -2966,120 +3033,120 @@ yy441:
}
} else {
if (yych <= 'a') {
- if (yych <= ';') goto yy442;
+ if (yych <= ';') goto yy456;
if (yych <= '`') goto yy86;
- goto yy585;
+ goto yy601;
} else {
- if (yych == 'g') goto yy586;
+ if (yych == 'g') goto yy602;
if (yych <= '~') goto yy86;
}
}
-yy442:
+yy456:
#line 396 "src/wast-lexer.cc"
{ OPCODE(F32Ne); RETURN(COMPARE); }
-#line 2981 "src/prebuilt/wast-lexer-gen.cc"
-yy443:
+#line 3048 "src/prebuilt/wast-lexer-gen.cc"
+yy457:
yych = *++cursor_;
- if (yych == 'i') goto yy588;
+ if (yych == 'i') goto yy604;
goto yy87;
-yy444:
+yy458:
yych = *++cursor_;
- if (yych == 'r') goto yy589;
+ if (yych == 'r') goto yy605;
goto yy87;
-yy445:
+yy459:
yych = *++cursor_;
- if (yych == 'o') goto yy590;
+ if (yych == 'o') goto yy606;
goto yy87;
-yy446:
+yy460:
yych = *++cursor_;
- if (yych == 'b') goto yy591;
+ if (yych == 'b') goto yy607;
goto yy87;
-yy447:
+yy461:
yych = *++cursor_;
- if (yych == 'u') goto yy593;
+ if (yych == 'u') goto yy609;
goto yy87;
-yy448:
+yy462:
yych = *++cursor_;
- if (yych == 's') goto yy594;
+ if (yych == 's') goto yy610;
goto yy87;
-yy449:
+yy463:
yych = *++cursor_;
- if (yych == 'd') goto yy596;
+ if (yych == 'd') goto yy612;
goto yy87;
-yy450:
+yy464:
yych = *++cursor_;
- if (yych == 'i') goto yy598;
+ if (yych == 'i') goto yy614;
goto yy87;
-yy451:
+yy465:
yych = *++cursor_;
- if (yych == 'n') goto yy599;
- if (yych == 'p') goto yy600;
+ if (yych == 'n') goto yy615;
+ if (yych == 'p') goto yy616;
goto yy87;
-yy452:
+yy466:
yych = *++cursor_;
- if (yych == 'v') goto yy601;
+ if (yych == 'v') goto yy617;
goto yy87;
-yy453:
+yy467:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 395 "src/wast-lexer.cc"
{ OPCODE(F64Eq); RETURN(COMPARE); }
-#line 3030 "src/prebuilt/wast-lexer-gen.cc"
-yy455:
+#line 3097 "src/prebuilt/wast-lexer-gen.cc"
+yy469:
yych = *++cursor_;
- if (yych == 'o') goto yy603;
+ if (yych == 'o') goto yy619;
goto yy87;
-yy456:
+yy470:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 405 "src/wast-lexer.cc"
{ OPCODE(F64Ge); RETURN(COMPARE); }
-#line 3042 "src/prebuilt/wast-lexer-gen.cc"
-yy458:
+#line 3109 "src/prebuilt/wast-lexer-gen.cc"
+yy472:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 403 "src/wast-lexer.cc"
{ OPCODE(F64Gt); RETURN(COMPARE); }
-#line 3050 "src/prebuilt/wast-lexer-gen.cc"
-yy460:
+#line 3117 "src/prebuilt/wast-lexer-gen.cc"
+yy474:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 401 "src/wast-lexer.cc"
{ OPCODE(F64Le); RETURN(COMPARE); }
-#line 3058 "src/prebuilt/wast-lexer-gen.cc"
-yy462:
+#line 3125 "src/prebuilt/wast-lexer-gen.cc"
+yy476:
yych = *++cursor_;
- if (yych == 'a') goto yy604;
+ if (yych == 'a') goto yy620;
goto yy87;
-yy463:
+yy477:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 399 "src/wast-lexer.cc"
{ OPCODE(F64Lt); RETURN(COMPARE); }
-#line 3070 "src/prebuilt/wast-lexer-gen.cc"
-yy465:
+#line 3137 "src/prebuilt/wast-lexer-gen.cc"
+yy479:
yych = *++cursor_;
- if (yych == 'x') goto yy605;
+ if (yych == 'x') goto yy621;
goto yy87;
-yy466:
+yy480:
yych = *++cursor_;
- if (yych == 'n') goto yy607;
+ if (yych == 'n') goto yy623;
goto yy87;
-yy467:
+yy481:
yych = *++cursor_;
- if (yych == 'l') goto yy609;
+ if (yych == 'l') goto yy625;
goto yy87;
-yy468:
+yy482:
++cursor_;
if ((yych = *cursor_) <= ':') {
if (yych <= '"') {
@@ -3090,418 +3157,422 @@ yy468:
}
} else {
if (yych <= 'a') {
- if (yych <= ';') goto yy469;
+ if (yych <= ';') goto yy483;
if (yych <= '`') goto yy86;
- goto yy611;
+ goto yy627;
} else {
- if (yych == 'g') goto yy612;
+ if (yych == 'g') goto yy628;
if (yych <= '~') goto yy86;
}
}
-yy469:
+yy483:
#line 397 "src/wast-lexer.cc"
{ OPCODE(F64Ne); RETURN(COMPARE); }
-#line 3105 "src/prebuilt/wast-lexer-gen.cc"
-yy470:
+#line 3172 "src/prebuilt/wast-lexer-gen.cc"
+yy484:
yych = *++cursor_;
- if (yych == 'o') goto yy614;
+ if (yych == 'o') goto yy630;
goto yy87;
-yy471:
+yy485:
yych = *++cursor_;
- if (yych == 'i') goto yy615;
+ if (yych == 'i') goto yy631;
goto yy87;
-yy472:
+yy486:
yych = *++cursor_;
- if (yych == 'r') goto yy616;
+ if (yych == 'r') goto yy632;
goto yy87;
-yy473:
+yy487:
yych = *++cursor_;
- if (yych == 'o') goto yy617;
+ if (yych == 'o') goto yy633;
goto yy87;
-yy474:
+yy488:
yych = *++cursor_;
- if (yych == 'b') goto yy618;
+ if (yych == 'b') goto yy634;
goto yy87;
-yy475:
+yy489:
yych = *++cursor_;
- if (yych == 'u') goto yy620;
+ if (yych == 'u') goto yy636;
goto yy87;
-yy476:
+yy490:
yych = *++cursor_;
- if (yych == 'o') goto yy621;
+ if (yych == 'o') goto yy637;
goto yy87;
-yy477:
+yy491:
yych = *++cursor_;
- if (yych == 'c') goto yy622;
+ if (yych == 'c') goto yy638;
goto yy87;
-yy478:
+yy492:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 440 "src/wast-lexer.cc"
{ RETURN(GLOBAL); }
-#line 3145 "src/prebuilt/wast-lexer-gen.cc"
-yy480:
+#line 3212 "src/prebuilt/wast-lexer-gen.cc"
+yy494:
yych = *++cursor_;
- if (yych == 'e') goto yy623;
+ if (yych == 'e') goto yy639;
goto yy87;
-yy481:
+yy495:
yych = *++cursor_;
- if (yych == 'd') goto yy624;
+ if (yych == 'd') goto yy640;
goto yy87;
-yy482:
+yy496:
yych = *++cursor_;
- if (yych == 'd') goto yy626;
+ if (yych == 'd') goto yy642;
goto yy87;
-yy483:
+yy497:
yych = *++cursor_;
- if (yych == 'z') goto yy628;
+ if (yych == 'z') goto yy644;
goto yy87;
-yy484:
+yy498:
yych = *++cursor_;
- if (yych == 'n') goto yy630;
+ if (yych == 'n') goto yy646;
goto yy87;
-yy485:
+yy499:
yych = *++cursor_;
- if (yych == 'z') goto yy631;
+ if (yych == 'z') goto yy647;
goto yy87;
-yy486:
+yy500:
yych = *++cursor_;
- if (yych == 'v') goto yy633;
+ if (yych == 'v') goto yy649;
goto yy87;
-yy487:
+yy501:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy488;
+ if (yych <= '"') goto yy502;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= 'y') {
if (yych != ';') goto yy86;
} else {
- if (yych <= 'z') goto yy634;
+ if (yych <= 'z') goto yy650;
if (yych <= '~') goto yy86;
}
}
-yy488:
+yy502:
#line 374 "src/wast-lexer.cc"
{ OPCODE(I32Eq); RETURN(COMPARE); }
-#line 3194 "src/prebuilt/wast-lexer-gen.cc"
-yy489:
+#line 3261 "src/prebuilt/wast-lexer-gen.cc"
+yy503:
yych = *++cursor_;
- if (yych == '_') goto yy636;
+ if (yych == '_') goto yy652;
goto yy87;
-yy490:
+yy504:
yych = *++cursor_;
- if (yych == '_') goto yy637;
+ if (yych == '_') goto yy653;
goto yy87;
-yy491:
+yy505:
yych = *++cursor_;
- if (yych == '_') goto yy638;
+ if (yych == '_') goto yy654;
goto yy87;
-yy492:
+yy506:
yych = *++cursor_;
- if (yych == 'a') goto yy639;
+ if (yych == 'a') goto yy655;
goto yy87;
-yy493:
+yy507:
yych = *++cursor_;
- if (yych == '_') goto yy640;
+ if (yych == '_') goto yy656;
goto yy87;
-yy494:
+yy508:
yych = *++cursor_;
- if (yych == 'l') goto yy641;
+ if (yych == 'l') goto yy657;
goto yy87;
-yy495:
+yy509:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 376 "src/wast-lexer.cc"
{ OPCODE(I32Ne); RETURN(COMPARE); }
-#line 3226 "src/prebuilt/wast-lexer-gen.cc"
-yy497:
+#line 3293 "src/prebuilt/wast-lexer-gen.cc"
+yy511:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 346 "src/wast-lexer.cc"
{ OPCODE(I32Or); RETURN(BINARY); }
-#line 3234 "src/prebuilt/wast-lexer-gen.cc"
-yy499:
+#line 3301 "src/prebuilt/wast-lexer-gen.cc"
+yy513:
yych = *++cursor_;
- if (yych == 'p') goto yy643;
+ if (yych == 'p') goto yy659;
goto yy87;
-yy500:
+yy514:
yych = *++cursor_;
- if (yych == 'i') goto yy644;
- if (yych == 'm') goto yy645;
+ if (yych == 'i') goto yy660;
+ if (yych == 'm') goto yy661;
goto yy87;
-yy501:
+yy515:
yych = *++cursor_;
- if (yych == 't') goto yy646;
+ if (yych == 't') goto yy662;
goto yy87;
-yy502:
+yy516:
yych = *++cursor_;
- if (yych == 'l') goto yy647;
- if (yych == 'r') goto yy649;
+ if (yych == 'l') goto yy663;
+ if (yych == 'r') goto yy665;
goto yy87;
-yy503:
+yy517:
yych = *++cursor_;
- if (yych == 'o') goto yy650;
+ if (yych == 'o') goto yy666;
goto yy87;
-yy504:
+yy518:
yych = *++cursor_;
- if (yych == 'b') goto yy651;
+ if (yych == 'b') goto yy667;
goto yy87;
-yy505:
+yy519:
yych = *++cursor_;
- if (yych == 'u') goto yy653;
+ if (yych == 'u') goto yy669;
goto yy87;
-yy506:
+yy520:
yych = *++cursor_;
- if (yych == 'a') goto yy654;
+ if (yych == 'a') goto yy670;
goto yy87;
-yy507:
+yy521:
yych = *++cursor_;
- if (yych == 'r') goto yy655;
+ if (yych == 'r') goto yy671;
goto yy87;
-yy508:
+yy522:
yych = *++cursor_;
- if (yych == 'd') goto yy657;
+ if (yych == 'd') goto yy673;
goto yy87;
-yy509:
+yy523:
yych = *++cursor_;
- if (yych == 'd') goto yy659;
+ if (yych == 'd') goto yy675;
goto yy87;
-yy510:
+yy524:
yych = *++cursor_;
- if (yych == 'z') goto yy661;
+ if (yych == 'z') goto yy677;
goto yy87;
-yy511:
+yy525:
yych = *++cursor_;
- if (yych == 'n') goto yy663;
+ if (yych == 'n') goto yy679;
goto yy87;
-yy512:
+yy526:
yych = *++cursor_;
- if (yych == 'z') goto yy664;
+ if (yych == 'z') goto yy680;
goto yy87;
-yy513:
+yy527:
yych = *++cursor_;
- if (yych == 'v') goto yy666;
+ if (yych == 'v') goto yy682;
goto yy87;
-yy514:
+yy528:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy515;
+ if (yych <= '"') goto yy529;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= 'y') {
if (yych != ';') goto yy86;
} else {
- if (yych <= 'z') goto yy667;
+ if (yych <= 'z') goto yy683;
if (yych <= '~') goto yy86;
}
}
-yy515:
+yy529:
#line 375 "src/wast-lexer.cc"
{ OPCODE(I64Eq); RETURN(COMPARE); }
-#line 3317 "src/prebuilt/wast-lexer-gen.cc"
-yy516:
+#line 3384 "src/prebuilt/wast-lexer-gen.cc"
+yy530:
yych = *++cursor_;
- if (yych == 't') goto yy669;
+ if (yych == 't') goto yy685;
goto yy87;
-yy517:
+yy531:
yych = *++cursor_;
- if (yych == '_') goto yy670;
+ if (yych == '_') goto yy686;
goto yy87;
-yy518:
+yy532:
yych = *++cursor_;
- if (yych == '_') goto yy671;
+ if (yych == '_') goto yy687;
goto yy87;
-yy519:
+yy533:
yych = *++cursor_;
- if (yych == '_') goto yy672;
+ if (yych == '_') goto yy688;
goto yy87;
-yy520:
+yy534:
yych = *++cursor_;
- if (yych == 'a') goto yy673;
+ if (yych == 'a') goto yy689;
goto yy87;
-yy521:
+yy535:
yych = *++cursor_;
- if (yych == '_') goto yy674;
+ if (yych == '_') goto yy690;
goto yy87;
-yy522:
+yy536:
yych = *++cursor_;
- if (yych == 'l') goto yy675;
+ if (yych == 'l') goto yy691;
goto yy87;
-yy523:
+yy537:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 377 "src/wast-lexer.cc"
{ OPCODE(I64Ne); RETURN(COMPARE); }
-#line 3353 "src/prebuilt/wast-lexer-gen.cc"
-yy525:
+#line 3420 "src/prebuilt/wast-lexer-gen.cc"
+yy539:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 347 "src/wast-lexer.cc"
{ OPCODE(I64Or); RETURN(BINARY); }
-#line 3361 "src/prebuilt/wast-lexer-gen.cc"
-yy527:
+#line 3428 "src/prebuilt/wast-lexer-gen.cc"
+yy541:
yych = *++cursor_;
- if (yych == 'p') goto yy677;
+ if (yych == 'p') goto yy693;
goto yy87;
-yy528:
+yy542:
yych = *++cursor_;
- if (yych == 'i') goto yy678;
- if (yych == 'm') goto yy679;
+ if (yych == 'i') goto yy694;
+ if (yych == 'm') goto yy695;
goto yy87;
-yy529:
+yy543:
yych = *++cursor_;
- if (yych == 't') goto yy680;
+ if (yych == 't') goto yy696;
goto yy87;
-yy530:
+yy544:
yych = *++cursor_;
- if (yych == 'l') goto yy681;
- if (yych == 'r') goto yy683;
+ if (yych == 'l') goto yy697;
+ if (yych == 'r') goto yy699;
goto yy87;
-yy531:
+yy545:
yych = *++cursor_;
- if (yych == 'o') goto yy684;
+ if (yych == 'o') goto yy700;
goto yy87;
-yy532:
+yy546:
yych = *++cursor_;
- if (yych == 'b') goto yy685;
+ if (yych == 'b') goto yy701;
goto yy87;
-yy533:
+yy547:
yych = *++cursor_;
- if (yych == 'u') goto yy687;
+ if (yych == 'u') goto yy703;
goto yy87;
-yy534:
+yy548:
yych = *++cursor_;
- if (yych == 'r') goto yy688;
+ if (yych == 'r') goto yy704;
goto yy87;
-yy535:
+yy549:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 448 "src/wast-lexer.cc"
{ RETURN(IMPORT); }
-#line 3403 "src/prebuilt/wast-lexer-gen.cc"
-yy537:
+#line 3470 "src/prebuilt/wast-lexer-gen.cc"
+yy551:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 451 "src/wast-lexer.cc"
{ RETURN(INVOKE); }
-#line 3411 "src/prebuilt/wast-lexer-gen.cc"
-yy539:
+#line 3478 "src/prebuilt/wast-lexer-gen.cc"
+yy553:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 443 "src/wast-lexer.cc"
{ RETURN(MEMORY); }
-#line 3419 "src/prebuilt/wast-lexer-gen.cc"
-yy541:
+#line 3486 "src/prebuilt/wast-lexer-gen.cc"
+yy555:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 441 "src/wast-lexer.cc"
{ RETURN(MODULE); }
-#line 3427 "src/prebuilt/wast-lexer-gen.cc"
-yy543:
+#line 3494 "src/prebuilt/wast-lexer-gen.cc"
+yy557:
yych = *++cursor_;
if (yych <= '@') {
if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy690;
+ if (yych <= '9') goto yy706;
goto yy87;
} else {
- if (yych <= 'F') goto yy690;
+ if (yych <= 'F') goto yy706;
if (yych <= '`') goto yy87;
- if (yych <= 'f') goto yy690;
+ if (yych <= 'f') goto yy706;
goto yy87;
}
-yy544:
+yy558:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy545;
+ if (yych <= '"') goto yy559;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '<') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '=') goto yy692;
+ if (yych <= '=') goto yy708;
if (yych <= '~') goto yy86;
}
}
-yy545:
+yy559:
#line 447 "src/wast-lexer.cc"
{ RETURN(OFFSET); }
-#line 3460 "src/prebuilt/wast-lexer-gen.cc"
-yy546:
+#line 3527 "src/prebuilt/wast-lexer-gen.cc"
+yy560:
yych = *++cursor_;
- if (yych == 'e') goto yy693;
+ if (yych == 'e') goto yy709;
goto yy87;
-yy547:
+yy561:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 438 "src/wast-lexer.cc"
{ RETURN(RESULT); }
-#line 3472 "src/prebuilt/wast-lexer-gen.cc"
-yy549:
+#line 3539 "src/prebuilt/wast-lexer-gen.cc"
+yy563:
+ yych = *++cursor_;
+ if (yych == 'w') goto yy710;
+ goto yy87;
+yy564:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 273 "src/wast-lexer.cc"
{ RETURN(RETURN); }
-#line 3480 "src/prebuilt/wast-lexer-gen.cc"
-yy551:
+#line 3551 "src/prebuilt/wast-lexer-gen.cc"
+yy566:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 431 "src/wast-lexer.cc"
{ RETURN(SELECT); }
-#line 3488 "src/prebuilt/wast-lexer-gen.cc"
-yy553:
+#line 3559 "src/prebuilt/wast-lexer-gen.cc"
+yy568:
yych = *++cursor_;
- if (yych == 'o') goto yy694;
+ if (yych == 'o') goto yy712;
goto yy87;
-yy554:
+yy569:
yych = *++cursor_;
- if (yych == 'c') goto yy695;
+ if (yych == 'c') goto yy713;
goto yy87;
-yy555:
+yy570:
yych = *++cursor_;
- if (yych == 'c') goto yy696;
+ if (yych == 'c') goto yy714;
goto yy87;
-yy556:
+yy571:
yych = *++cursor_;
- if (yych == 'h') goto yy697;
+ if (yych == 'h') goto yy715;
goto yy87;
-yy557:
+yy572:
++cursor_;
if ((yych = *cursor_) <= '/') {
if (yych <= '"') {
@@ -3512,870 +3583,886 @@ yy557:
}
} else {
if (yych <= ';') {
- if (yych <= '9') goto yy559;
+ if (yych <= '9') goto yy574;
if (yych <= ':') goto yy86;
} else {
- if (yych == 'x') goto yy698;
+ if (yych == 'x') goto yy716;
if (yych <= '~') goto yy86;
}
}
-yy558:
+yy573:
#line 303 "src/wast-lexer.cc"
{ TEXT_AT(6); RETURN(ALIGN_EQ_NAT); }
-#line 3526 "src/prebuilt/wast-lexer-gen.cc"
-yy559:
+#line 3597 "src/prebuilt/wast-lexer-gen.cc"
+yy574:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
if (yych <= ')') {
if (yych <= '!') {
- if (yych <= ' ') goto yy558;
+ if (yych <= ' ') goto yy573;
goto yy86;
} else {
- if (yych <= '"') goto yy558;
+ if (yych <= '"') goto yy573;
if (yych <= '\'') goto yy86;
- goto yy558;
+ goto yy573;
}
} else {
if (yych <= ':') {
if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy559;
+ if (yych <= '9') goto yy574;
goto yy86;
} else {
- if (yych <= ';') goto yy558;
+ if (yych <= ';') goto yy573;
if (yych <= '~') goto yy86;
- goto yy558;
+ goto yy573;
}
}
-yy561:
+yy576:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 258 "src/wast-lexer.cc"
{ RETURN(ANYFUNC); }
-#line 3558 "src/prebuilt/wast-lexer-gen.cc"
-yy563:
+#line 3629 "src/prebuilt/wast-lexer-gen.cc"
+yy578:
yych = *++cursor_;
switch (yych) {
- case 'e': goto yy699;
- case 'i': goto yy700;
- case 'm': goto yy701;
- case 'r': goto yy702;
- case 't': goto yy703;
- case 'u': goto yy704;
+ case 'e': goto yy717;
+ case 'i': goto yy718;
+ case 'm': goto yy719;
+ case 'r': goto yy720;
+ case 't': goto yy721;
+ case 'u': goto yy722;
default: goto yy87;
}
-yy564:
+yy579:
yych = *++cursor_;
- if (yych == 'e') goto yy705;
+ if (yych == 'e') goto yy723;
goto yy87;
-yy565:
+yy580:
yych = *++cursor_;
- if (yych == 'd') goto yy707;
+ if (yych == 'd') goto yy725;
goto yy87;
-yy566:
+yy581:
yych = *++cursor_;
- if (yych == '_') goto yy708;
+ if (yych == 'l') goto yy726;
goto yy87;
-yy567:
+yy582:
+ yych = *++cursor_;
+ if (yych == '_') goto yy727;
+ goto yy87;
+yy583:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 318 "src/wast-lexer.cc"
{ OPCODE(F32Abs); RETURN(UNARY); }
-#line 3589 "src/prebuilt/wast-lexer-gen.cc"
-yy569:
+#line 3664 "src/prebuilt/wast-lexer-gen.cc"
+yy585:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 360 "src/wast-lexer.cc"
{ OPCODE(F32Add); RETURN(BINARY); }
-#line 3597 "src/prebuilt/wast-lexer-gen.cc"
-yy571:
+#line 3672 "src/prebuilt/wast-lexer-gen.cc"
+yy587:
yych = *++cursor_;
- if (yych == 'l') goto yy709;
+ if (yych == 'l') goto yy728;
goto yy87;
-yy572:
+yy588:
yych = *++cursor_;
- if (yych == 's') goto yy711;
- if (yych == 'v') goto yy712;
+ if (yych == 's') goto yy730;
+ if (yych == 'v') goto yy731;
goto yy87;
-yy573:
+yy589:
yych = *++cursor_;
- if (yych == 'y') goto yy713;
+ if (yych == 'y') goto yy732;
goto yy87;
-yy574:
+yy590:
yych = *++cursor_;
- if (yych == 'o') goto yy714;
+ if (yych == 'o') goto yy733;
goto yy87;
-yy575:
+yy591:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 366 "src/wast-lexer.cc"
{ OPCODE(F32Div); RETURN(BINARY); }
-#line 3622 "src/prebuilt/wast-lexer-gen.cc"
-yy577:
+#line 3697 "src/prebuilt/wast-lexer-gen.cc"
+yy593:
yych = *++cursor_;
- if (yych == 'o') goto yy715;
+ if (yych == 'o') goto yy734;
goto yy87;
-yy578:
+yy594:
yych = *++cursor_;
- if (yych == 'd') goto yy716;
+ if (yych == 'd') goto yy735;
goto yy87;
-yy579:
+yy595:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 370 "src/wast-lexer.cc"
{ OPCODE(F32Max); RETURN(BINARY); }
-#line 3638 "src/prebuilt/wast-lexer-gen.cc"
-yy581:
+#line 3713 "src/prebuilt/wast-lexer-gen.cc"
+yy597:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 368 "src/wast-lexer.cc"
{ OPCODE(F32Min); RETURN(BINARY); }
-#line 3646 "src/prebuilt/wast-lexer-gen.cc"
-yy583:
+#line 3721 "src/prebuilt/wast-lexer-gen.cc"
+yy599:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 364 "src/wast-lexer.cc"
{ OPCODE(F32Mul); RETURN(BINARY); }
-#line 3654 "src/prebuilt/wast-lexer-gen.cc"
-yy585:
+#line 3729 "src/prebuilt/wast-lexer-gen.cc"
+yy601:
yych = *++cursor_;
- if (yych == 'r') goto yy718;
+ if (yych == 'r') goto yy737;
goto yy87;
-yy586:
+yy602:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 316 "src/wast-lexer.cc"
{ OPCODE(F32Neg); RETURN(UNARY); }
-#line 3666 "src/prebuilt/wast-lexer-gen.cc"
-yy588:
+#line 3741 "src/prebuilt/wast-lexer-gen.cc"
+yy604:
yych = *++cursor_;
- if (yych == 'n') goto yy719;
+ if (yych == 'n') goto yy738;
goto yy87;
-yy589:
+yy605:
yych = *++cursor_;
- if (yych == 't') goto yy720;
+ if (yych == 't') goto yy739;
goto yy87;
-yy590:
+yy606:
yych = *++cursor_;
- if (yych == 'r') goto yy722;
+ if (yych == 'r') goto yy741;
goto yy87;
-yy591:
+yy607:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 362 "src/wast-lexer.cc"
{ OPCODE(F32Sub); RETURN(BINARY); }
-#line 3686 "src/prebuilt/wast-lexer-gen.cc"
-yy593:
+#line 3761 "src/prebuilt/wast-lexer-gen.cc"
+yy609:
yych = *++cursor_;
- if (yych == 'n') goto yy723;
+ if (yych == 'n') goto yy742;
goto yy87;
-yy594:
+yy610:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 319 "src/wast-lexer.cc"
{ OPCODE(F64Abs); RETURN(UNARY); }
-#line 3698 "src/prebuilt/wast-lexer-gen.cc"
-yy596:
+#line 3773 "src/prebuilt/wast-lexer-gen.cc"
+yy612:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 361 "src/wast-lexer.cc"
{ OPCODE(F64Add); RETURN(BINARY); }
-#line 3706 "src/prebuilt/wast-lexer-gen.cc"
-yy598:
+#line 3781 "src/prebuilt/wast-lexer-gen.cc"
+yy614:
yych = *++cursor_;
- if (yych == 'l') goto yy724;
+ if (yych == 'l') goto yy743;
goto yy87;
-yy599:
+yy615:
yych = *++cursor_;
- if (yych == 's') goto yy726;
- if (yych == 'v') goto yy727;
+ if (yych == 's') goto yy745;
+ if (yych == 'v') goto yy746;
goto yy87;
-yy600:
+yy616:
yych = *++cursor_;
- if (yych == 'y') goto yy728;
+ if (yych == 'y') goto yy747;
goto yy87;
-yy601:
+yy617:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 367 "src/wast-lexer.cc"
{ OPCODE(F64Div); RETURN(BINARY); }
-#line 3727 "src/prebuilt/wast-lexer-gen.cc"
-yy603:
+#line 3802 "src/prebuilt/wast-lexer-gen.cc"
+yy619:
yych = *++cursor_;
- if (yych == 'o') goto yy729;
+ if (yych == 'o') goto yy748;
goto yy87;
-yy604:
+yy620:
yych = *++cursor_;
- if (yych == 'd') goto yy730;
+ if (yych == 'd') goto yy749;
goto yy87;
-yy605:
+yy621:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 371 "src/wast-lexer.cc"
{ OPCODE(F64Max); RETURN(BINARY); }
-#line 3743 "src/prebuilt/wast-lexer-gen.cc"
-yy607:
+#line 3818 "src/prebuilt/wast-lexer-gen.cc"
+yy623:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 369 "src/wast-lexer.cc"
{ OPCODE(F64Min); RETURN(BINARY); }
-#line 3751 "src/prebuilt/wast-lexer-gen.cc"
-yy609:
+#line 3826 "src/prebuilt/wast-lexer-gen.cc"
+yy625:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 365 "src/wast-lexer.cc"
{ OPCODE(F64Mul); RETURN(BINARY); }
-#line 3759 "src/prebuilt/wast-lexer-gen.cc"
-yy611:
+#line 3834 "src/prebuilt/wast-lexer-gen.cc"
+yy627:
yych = *++cursor_;
- if (yych == 'r') goto yy732;
+ if (yych == 'r') goto yy751;
goto yy87;
-yy612:
+yy628:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 317 "src/wast-lexer.cc"
{ OPCODE(F64Neg); RETURN(UNARY); }
-#line 3771 "src/prebuilt/wast-lexer-gen.cc"
-yy614:
+#line 3846 "src/prebuilt/wast-lexer-gen.cc"
+yy630:
yych = *++cursor_;
- if (yych == 'm') goto yy733;
+ if (yych == 'm') goto yy752;
goto yy87;
-yy615:
+yy631:
yych = *++cursor_;
- if (yych == 'n') goto yy734;
+ if (yych == 'n') goto yy753;
goto yy87;
-yy616:
+yy632:
yych = *++cursor_;
- if (yych == 't') goto yy735;
+ if (yych == 't') goto yy754;
goto yy87;
-yy617:
+yy633:
yych = *++cursor_;
- if (yych == 'r') goto yy737;
+ if (yych == 'r') goto yy756;
goto yy87;
-yy618:
+yy634:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 363 "src/wast-lexer.cc"
{ OPCODE(F64Sub); RETURN(BINARY); }
-#line 3795 "src/prebuilt/wast-lexer-gen.cc"
-yy620:
+#line 3870 "src/prebuilt/wast-lexer-gen.cc"
+yy636:
yych = *++cursor_;
- if (yych == 'n') goto yy738;
+ if (yych == 'n') goto yy757;
goto yy87;
-yy621:
+yy637:
yych = *++cursor_;
- if (yych == 'b') goto yy739;
+ if (yych == 'b') goto yy758;
goto yy87;
-yy622:
+yy638:
yych = *++cursor_;
- if (yych == 'a') goto yy740;
+ if (yych == 'a') goto yy759;
goto yy87;
-yy623:
+yy639:
yych = *++cursor_;
- if (yych == 'm') goto yy741;
+ if (yych == 'm') goto yy760;
goto yy87;
-yy624:
+yy640:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 330 "src/wast-lexer.cc"
{ OPCODE(I32Add); RETURN(BINARY); }
-#line 3819 "src/prebuilt/wast-lexer-gen.cc"
-yy626:
+#line 3894 "src/prebuilt/wast-lexer-gen.cc"
+yy642:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 344 "src/wast-lexer.cc"
{ OPCODE(I32And); RETURN(BINARY); }
-#line 3827 "src/prebuilt/wast-lexer-gen.cc"
-yy628:
+#line 3902 "src/prebuilt/wast-lexer-gen.cc"
+yy644:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 310 "src/wast-lexer.cc"
{ OPCODE(I32Clz); RETURN(UNARY); }
-#line 3835 "src/prebuilt/wast-lexer-gen.cc"
-yy630:
+#line 3910 "src/prebuilt/wast-lexer-gen.cc"
+yy646:
yych = *++cursor_;
- if (yych == 's') goto yy742;
+ if (yych == 's') goto yy761;
goto yy87;
-yy631:
+yy647:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 312 "src/wast-lexer.cc"
{ OPCODE(I32Ctz); RETURN(UNARY); }
-#line 3847 "src/prebuilt/wast-lexer-gen.cc"
-yy633:
+#line 3922 "src/prebuilt/wast-lexer-gen.cc"
+yy649:
yych = *++cursor_;
- if (yych == '_') goto yy743;
+ if (yych == '_') goto yy762;
goto yy87;
-yy634:
+yy650:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 308 "src/wast-lexer.cc"
{ OPCODE(I32Eqz); RETURN(CONVERT); }
-#line 3859 "src/prebuilt/wast-lexer-gen.cc"
-yy636:
+#line 3934 "src/prebuilt/wast-lexer-gen.cc"
+yy652:
yych = *++cursor_;
- if (yych == 's') goto yy744;
- if (yych == 'u') goto yy746;
+ if (yych == 's') goto yy763;
+ if (yych == 'u') goto yy765;
goto yy87;
-yy637:
+yy653:
yych = *++cursor_;
- if (yych == 's') goto yy748;
- if (yych == 'u') goto yy750;
+ if (yych == 's') goto yy767;
+ if (yych == 'u') goto yy769;
goto yy87;
-yy638:
+yy654:
yych = *++cursor_;
- if (yych == 's') goto yy752;
- if (yych == 'u') goto yy754;
+ if (yych == 's') goto yy771;
+ if (yych == 'u') goto yy773;
goto yy87;
-yy639:
+yy655:
yych = *++cursor_;
- if (yych == 'd') goto yy756;
+ if (yych == 'd') goto yy775;
goto yy87;
-yy640:
+yy656:
yych = *++cursor_;
- if (yych == 's') goto yy758;
- if (yych == 'u') goto yy760;
+ if (yych == 's') goto yy777;
+ if (yych == 'u') goto yy779;
goto yy87;
-yy641:
+yy657:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 334 "src/wast-lexer.cc"
{ OPCODE(I32Mul); RETURN(BINARY); }
-#line 3891 "src/prebuilt/wast-lexer-gen.cc"
-yy643:
+#line 3966 "src/prebuilt/wast-lexer-gen.cc"
+yy659:
yych = *++cursor_;
- if (yych == 'c') goto yy762;
+ if (yych == 'c') goto yy781;
goto yy87;
-yy644:
+yy660:
yych = *++cursor_;
- if (yych == 'n') goto yy763;
+ if (yych == 'n') goto yy782;
goto yy87;
-yy645:
+yy661:
yych = *++cursor_;
- if (yych == '_') goto yy764;
+ if (yych == '_') goto yy783;
goto yy87;
-yy646:
+yy662:
yych = *++cursor_;
- if (yych == 'l') goto yy765;
- if (yych == 'r') goto yy767;
+ if (yych == 'l') goto yy784;
+ if (yych == 'r') goto yy786;
goto yy87;
-yy647:
+yy663:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 350 "src/wast-lexer.cc"
{ OPCODE(I32Shl); RETURN(BINARY); }
-#line 3916 "src/prebuilt/wast-lexer-gen.cc"
-yy649:
+#line 3991 "src/prebuilt/wast-lexer-gen.cc"
+yy665:
yych = *++cursor_;
- if (yych == '_') goto yy769;
+ if (yych == '_') goto yy788;
goto yy87;
-yy650:
+yy666:
yych = *++cursor_;
- if (yych == 'r') goto yy770;
+ if (yych == 'r') goto yy789;
goto yy87;
-yy651:
+yy667:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 332 "src/wast-lexer.cc"
{ OPCODE(I32Sub); RETURN(BINARY); }
-#line 3932 "src/prebuilt/wast-lexer-gen.cc"
-yy653:
+#line 4007 "src/prebuilt/wast-lexer-gen.cc"
+yy669:
yych = *++cursor_;
- if (yych == 'n') goto yy771;
+ if (yych == 'n') goto yy790;
goto yy87;
-yy654:
+yy670:
yych = *++cursor_;
- if (yych == 'p') goto yy772;
+ if (yych == 'p') goto yy791;
goto yy87;
-yy655:
+yy671:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 348 "src/wast-lexer.cc"
{ OPCODE(I32Xor); RETURN(BINARY); }
-#line 3948 "src/prebuilt/wast-lexer-gen.cc"
-yy657:
+#line 4023 "src/prebuilt/wast-lexer-gen.cc"
+yy673:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 331 "src/wast-lexer.cc"
{ OPCODE(I64Add); RETURN(BINARY); }
-#line 3956 "src/prebuilt/wast-lexer-gen.cc"
-yy659:
+#line 4031 "src/prebuilt/wast-lexer-gen.cc"
+yy675:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 345 "src/wast-lexer.cc"
{ OPCODE(I64And); RETURN(BINARY); }
-#line 3964 "src/prebuilt/wast-lexer-gen.cc"
-yy661:
+#line 4039 "src/prebuilt/wast-lexer-gen.cc"
+yy677:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 311 "src/wast-lexer.cc"
{ OPCODE(I64Clz); RETURN(UNARY); }
-#line 3972 "src/prebuilt/wast-lexer-gen.cc"
-yy663:
+#line 4047 "src/prebuilt/wast-lexer-gen.cc"
+yy679:
yych = *++cursor_;
- if (yych == 's') goto yy773;
+ if (yych == 's') goto yy792;
goto yy87;
-yy664:
+yy680:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 313 "src/wast-lexer.cc"
{ OPCODE(I64Ctz); RETURN(UNARY); }
-#line 3984 "src/prebuilt/wast-lexer-gen.cc"
-yy666:
+#line 4059 "src/prebuilt/wast-lexer-gen.cc"
+yy682:
yych = *++cursor_;
- if (yych == '_') goto yy774;
+ if (yych == '_') goto yy793;
goto yy87;
-yy667:
+yy683:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 309 "src/wast-lexer.cc"
{ OPCODE(I64Eqz); RETURN(CONVERT); }
-#line 3996 "src/prebuilt/wast-lexer-gen.cc"
-yy669:
+#line 4071 "src/prebuilt/wast-lexer-gen.cc"
+yy685:
yych = *++cursor_;
- if (yych == 'e') goto yy775;
+ if (yych == 'e') goto yy794;
goto yy87;
-yy670:
+yy686:
yych = *++cursor_;
- if (yych == 's') goto yy776;
- if (yych == 'u') goto yy778;
+ if (yych == 's') goto yy795;
+ if (yych == 'u') goto yy797;
goto yy87;
-yy671:
+yy687:
yych = *++cursor_;
- if (yych == 's') goto yy780;
- if (yych == 'u') goto yy782;
+ if (yych == 's') goto yy799;
+ if (yych == 'u') goto yy801;
goto yy87;
-yy672:
+yy688:
yych = *++cursor_;
- if (yych == 's') goto yy784;
- if (yych == 'u') goto yy786;
+ if (yych == 's') goto yy803;
+ if (yych == 'u') goto yy805;
goto yy87;
-yy673:
+yy689:
yych = *++cursor_;
- if (yych == 'd') goto yy788;
+ if (yych == 'd') goto yy807;
goto yy87;
-yy674:
+yy690:
yych = *++cursor_;
- if (yych == 's') goto yy790;
- if (yych == 'u') goto yy792;
+ if (yych == 's') goto yy809;
+ if (yych == 'u') goto yy811;
goto yy87;
-yy675:
+yy691:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 335 "src/wast-lexer.cc"
{ OPCODE(I64Mul); RETURN(BINARY); }
-#line 4032 "src/prebuilt/wast-lexer-gen.cc"
-yy677:
+#line 4107 "src/prebuilt/wast-lexer-gen.cc"
+yy693:
yych = *++cursor_;
- if (yych == 'c') goto yy794;
+ if (yych == 'c') goto yy813;
goto yy87;
-yy678:
+yy694:
yych = *++cursor_;
- if (yych == 'n') goto yy795;
+ if (yych == 'n') goto yy814;
goto yy87;
-yy679:
+yy695:
yych = *++cursor_;
- if (yych == '_') goto yy796;
+ if (yych == '_') goto yy815;
goto yy87;
-yy680:
+yy696:
yych = *++cursor_;
- if (yych == 'l') goto yy797;
- if (yych == 'r') goto yy799;
+ if (yych == 'l') goto yy816;
+ if (yych == 'r') goto yy818;
goto yy87;
-yy681:
+yy697:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 351 "src/wast-lexer.cc"
{ OPCODE(I64Shl); RETURN(BINARY); }
-#line 4057 "src/prebuilt/wast-lexer-gen.cc"
-yy683:
+#line 4132 "src/prebuilt/wast-lexer-gen.cc"
+yy699:
yych = *++cursor_;
- if (yych == '_') goto yy801;
+ if (yych == '_') goto yy820;
goto yy87;
-yy684:
+yy700:
yych = *++cursor_;
- if (yych == 'r') goto yy802;
+ if (yych == 'r') goto yy821;
goto yy87;
-yy685:
+yy701:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 333 "src/wast-lexer.cc"
{ OPCODE(I64Sub); RETURN(BINARY); }
-#line 4073 "src/prebuilt/wast-lexer-gen.cc"
-yy687:
+#line 4148 "src/prebuilt/wast-lexer-gen.cc"
+yy703:
yych = *++cursor_;
- if (yych == 'n') goto yy803;
+ if (yych == 'n') goto yy822;
goto yy87;
-yy688:
+yy704:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 349 "src/wast-lexer.cc"
{ OPCODE(I64Xor); RETURN(BINARY); }
-#line 4085 "src/prebuilt/wast-lexer-gen.cc"
-yy690:
+#line 4160 "src/prebuilt/wast-lexer-gen.cc"
+yy706:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
if (yych <= '9') {
if (yych <= '"') {
if (yych == '!') goto yy86;
- goto yy246;
+ goto yy248;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy246;
+ if (yych <= ')') goto yy248;
if (yych <= '/') goto yy86;
- goto yy690;
+ goto yy706;
}
} else {
if (yych <= 'F') {
- if (yych == ';') goto yy246;
+ if (yych == ';') goto yy248;
if (yych <= '@') goto yy86;
- goto yy690;
+ goto yy706;
} else {
if (yych <= '`') goto yy86;
- if (yych <= 'f') goto yy690;
+ if (yych <= 'f') goto yy706;
if (yych <= '~') goto yy86;
- goto yy246;
+ goto yy248;
}
}
-yy692:
+yy708:
yych = *++cursor_;
if (yych <= '/') goto yy87;
- if (yych <= '0') goto yy804;
- if (yych <= '9') goto yy806;
+ if (yych <= '0') goto yy823;
+ if (yych <= '9') goto yy825;
goto yy87;
-yy693:
+yy709:
yych = *++cursor_;
- if (yych == 'r') goto yy808;
+ if (yych == 'r') goto yy827;
goto yy87;
-yy694:
+yy710:
+ ++cursor_;
+ if (yybm[0+(yych = *cursor_)] & 8) {
+ goto yy86;
+ }
+#line 467 "src/wast-lexer.cc"
+ { RETURN(RETHROW); }
+#line 4204 "src/prebuilt/wast-lexer-gen.cc"
+yy712:
yych = *++cursor_;
- if (yych == 'b') goto yy810;
+ if (yych == 'b') goto yy829;
goto yy87;
-yy695:
+yy713:
yych = *++cursor_;
- if (yych == 'a') goto yy811;
+ if (yych == 'a') goto yy830;
goto yy87;
-yy696:
+yy714:
yych = *++cursor_;
- if (yych == 'a') goto yy812;
+ if (yych == 'a') goto yy831;
goto yy87;
-yy697:
+yy715:
yych = *++cursor_;
- if (yych == 'a') goto yy813;
+ if (yych == 'a') goto yy832;
goto yy87;
-yy698:
+yy716:
yych = *++cursor_;
if (yych <= '@') {
if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy814;
+ if (yych <= '9') goto yy833;
goto yy87;
} else {
- if (yych <= 'F') goto yy814;
+ if (yych <= 'F') goto yy833;
if (yych <= '`') goto yy87;
- if (yych <= 'f') goto yy814;
+ if (yych <= 'f') goto yy833;
goto yy87;
}
-yy699:
+yy717:
yych = *++cursor_;
- if (yych == 'x') goto yy816;
+ if (yych == 'x') goto yy835;
goto yy87;
-yy700:
+yy718:
yych = *++cursor_;
- if (yych == 'n') goto yy817;
+ if (yych == 'n') goto yy836;
goto yy87;
-yy701:
+yy719:
yych = *++cursor_;
- if (yych == 'a') goto yy818;
+ if (yych == 'a') goto yy837;
goto yy87;
-yy702:
+yy720:
yych = *++cursor_;
- if (yych == 'e') goto yy819;
+ if (yych == 'e') goto yy838;
goto yy87;
-yy703:
+yy721:
yych = *++cursor_;
- if (yych == 'r') goto yy820;
+ if (yych == 'r') goto yy839;
goto yy87;
-yy704:
+yy722:
yych = *++cursor_;
- if (yych == 'n') goto yy821;
+ if (yych == 'n') goto yy840;
goto yy87;
-yy705:
+yy723:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 268 "src/wast-lexer.cc"
{ RETURN(BR_TABLE); }
-#line 4181 "src/prebuilt/wast-lexer-gen.cc"
-yy707:
+#line 4264 "src/prebuilt/wast-lexer-gen.cc"
+yy725:
yych = *++cursor_;
- if (yych == 'i') goto yy822;
+ if (yych == 'i') goto yy841;
goto yy87;
-yy708:
+yy726:
yych = *++cursor_;
- if (yych == 'm') goto yy823;
+ if (yych == 'l') goto yy842;
goto yy87;
-yy709:
+yy727:
+ yych = *++cursor_;
+ if (yych == 'm') goto yy844;
+ goto yy87;
+yy728:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 322 "src/wast-lexer.cc"
{ OPCODE(F32Ceil); RETURN(UNARY); }
-#line 4197 "src/prebuilt/wast-lexer-gen.cc"
-yy711:
+#line 4284 "src/prebuilt/wast-lexer-gen.cc"
+yy730:
yych = *++cursor_;
- if (yych == 't') goto yy824;
+ if (yych == 't') goto yy845;
goto yy87;
-yy712:
+yy731:
yych = *++cursor_;
- if (yych == 'e') goto yy826;
+ if (yych == 'e') goto yy847;
goto yy87;
-yy713:
+yy732:
yych = *++cursor_;
- if (yych == 's') goto yy827;
+ if (yych == 's') goto yy848;
goto yy87;
-yy714:
+yy733:
yych = *++cursor_;
- if (yych == 't') goto yy828;
+ if (yych == 't') goto yy849;
goto yy87;
-yy715:
+yy734:
yych = *++cursor_;
- if (yych == 'r') goto yy829;
+ if (yych == 'r') goto yy850;
goto yy87;
-yy716:
+yy735:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 281 "src/wast-lexer.cc"
{ OPCODE(F32Load); RETURN(LOAD); }
-#line 4225 "src/prebuilt/wast-lexer-gen.cc"
-yy718:
+#line 4312 "src/prebuilt/wast-lexer-gen.cc"
+yy737:
yych = *++cursor_;
- if (yych == 'e') goto yy831;
+ if (yych == 'e') goto yy852;
goto yy87;
-yy719:
+yy738:
yych = *++cursor_;
- if (yych == 't') goto yy832;
+ if (yych == 't') goto yy853;
goto yy87;
-yy720:
+yy739:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 320 "src/wast-lexer.cc"
{ OPCODE(F32Sqrt); RETURN(UNARY); }
-#line 4241 "src/prebuilt/wast-lexer-gen.cc"
-yy722:
+#line 4328 "src/prebuilt/wast-lexer-gen.cc"
+yy741:
yych = *++cursor_;
- if (yych == 'e') goto yy833;
+ if (yych == 'e') goto yy854;
goto yy87;
-yy723:
+yy742:
yych = *++cursor_;
- if (yych == 'c') goto yy835;
+ if (yych == 'c') goto yy856;
goto yy87;
-yy724:
+yy743:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 323 "src/wast-lexer.cc"
{ OPCODE(F64Ceil); RETURN(UNARY); }
-#line 4257 "src/prebuilt/wast-lexer-gen.cc"
-yy726:
+#line 4344 "src/prebuilt/wast-lexer-gen.cc"
+yy745:
yych = *++cursor_;
- if (yych == 't') goto yy837;
+ if (yych == 't') goto yy858;
goto yy87;
-yy727:
+yy746:
yych = *++cursor_;
- if (yych == 'e') goto yy839;
+ if (yych == 'e') goto yy860;
goto yy87;
-yy728:
+yy747:
yych = *++cursor_;
- if (yych == 's') goto yy840;
+ if (yych == 's') goto yy861;
goto yy87;
-yy729:
+yy748:
yych = *++cursor_;
- if (yych == 'r') goto yy841;
+ if (yych == 'r') goto yy862;
goto yy87;
-yy730:
+yy749:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 282 "src/wast-lexer.cc"
{ OPCODE(F64Load); RETURN(LOAD); }
-#line 4281 "src/prebuilt/wast-lexer-gen.cc"
-yy732:
+#line 4368 "src/prebuilt/wast-lexer-gen.cc"
+yy751:
yych = *++cursor_;
- if (yych == 'e') goto yy843;
+ if (yych == 'e') goto yy864;
goto yy87;
-yy733:
+yy752:
yych = *++cursor_;
- if (yych == 'o') goto yy844;
+ if (yych == 'o') goto yy865;
goto yy87;
-yy734:
+yy753:
yych = *++cursor_;
- if (yych == 't') goto yy845;
+ if (yych == 't') goto yy866;
goto yy87;
-yy735:
+yy754:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 321 "src/wast-lexer.cc"
{ OPCODE(F64Sqrt); RETURN(UNARY); }
-#line 4301 "src/prebuilt/wast-lexer-gen.cc"
-yy737:
+#line 4388 "src/prebuilt/wast-lexer-gen.cc"
+yy756:
yych = *++cursor_;
- if (yych == 'e') goto yy846;
+ if (yych == 'e') goto yy867;
goto yy87;
-yy738:
+yy757:
yych = *++cursor_;
- if (yych == 'c') goto yy848;
+ if (yych == 'c') goto yy869;
goto yy87;
-yy739:
+yy758:
yych = *++cursor_;
- if (yych == 'a') goto yy850;
+ if (yych == 'a') goto yy871;
goto yy87;
-yy740:
+yy759:
yych = *++cursor_;
- if (yych == 'l') goto yy851;
+ if (yych == 'l') goto yy872;
goto yy87;
-yy741:
+yy760:
yych = *++cursor_;
- if (yych == 'o') goto yy853;
+ if (yych == 'o') goto yy874;
goto yy87;
-yy742:
+yy761:
yych = *++cursor_;
- if (yych == 't') goto yy854;
+ if (yych == 't') goto yy875;
goto yy87;
-yy743:
+yy762:
yych = *++cursor_;
- if (yych == 's') goto yy856;
- if (yych == 'u') goto yy858;
+ if (yych == 's') goto yy877;
+ if (yych == 'u') goto yy879;
goto yy87;
-yy744:
+yy763:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 390 "src/wast-lexer.cc"
{ OPCODE(I32GeS); RETURN(COMPARE); }
-#line 4338 "src/prebuilt/wast-lexer-gen.cc"
-yy746:
+#line 4425 "src/prebuilt/wast-lexer-gen.cc"
+yy765:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 392 "src/wast-lexer.cc"
{ OPCODE(I32GeU); RETURN(COMPARE); }
-#line 4346 "src/prebuilt/wast-lexer-gen.cc"
-yy748:
+#line 4433 "src/prebuilt/wast-lexer-gen.cc"
+yy767:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 386 "src/wast-lexer.cc"
{ OPCODE(I32GtS); RETURN(COMPARE); }
-#line 4354 "src/prebuilt/wast-lexer-gen.cc"
-yy750:
+#line 4441 "src/prebuilt/wast-lexer-gen.cc"
+yy769:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 388 "src/wast-lexer.cc"
{ OPCODE(I32GtU); RETURN(COMPARE); }
-#line 4362 "src/prebuilt/wast-lexer-gen.cc"
-yy752:
+#line 4449 "src/prebuilt/wast-lexer-gen.cc"
+yy771:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 382 "src/wast-lexer.cc"
{ OPCODE(I32LeS); RETURN(COMPARE); }
-#line 4370 "src/prebuilt/wast-lexer-gen.cc"
-yy754:
+#line 4457 "src/prebuilt/wast-lexer-gen.cc"
+yy773:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 384 "src/wast-lexer.cc"
{ OPCODE(I32LeU); RETURN(COMPARE); }
-#line 4378 "src/prebuilt/wast-lexer-gen.cc"
-yy756:
+#line 4465 "src/prebuilt/wast-lexer-gen.cc"
+yy775:
++cursor_;
if ((yych = *cursor_) <= '0') {
if (yych <= '"') {
@@ -4386,225 +4473,225 @@ yy756:
}
} else {
if (yych <= '8') {
- if (yych <= '1') goto yy860;
+ if (yych <= '1') goto yy881;
if (yych <= '7') goto yy86;
- goto yy861;
+ goto yy882;
} else {
- if (yych == ';') goto yy757;
+ if (yych == ';') goto yy776;
if (yych <= '~') goto yy86;
}
}
-yy757:
+yy776:
#line 279 "src/wast-lexer.cc"
{ OPCODE(I32Load); RETURN(LOAD); }
-#line 4401 "src/prebuilt/wast-lexer-gen.cc"
-yy758:
+#line 4488 "src/prebuilt/wast-lexer-gen.cc"
+yy777:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 378 "src/wast-lexer.cc"
{ OPCODE(I32LtS); RETURN(COMPARE); }
-#line 4409 "src/prebuilt/wast-lexer-gen.cc"
-yy760:
+#line 4496 "src/prebuilt/wast-lexer-gen.cc"
+yy779:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 380 "src/wast-lexer.cc"
{ OPCODE(I32LtU); RETURN(COMPARE); }
-#line 4417 "src/prebuilt/wast-lexer-gen.cc"
-yy762:
+#line 4504 "src/prebuilt/wast-lexer-gen.cc"
+yy781:
yych = *++cursor_;
- if (yych == 'n') goto yy862;
+ if (yych == 'n') goto yy883;
goto yy87;
-yy763:
+yy782:
yych = *++cursor_;
- if (yych == 't') goto yy863;
+ if (yych == 't') goto yy884;
goto yy87;
-yy764:
+yy783:
yych = *++cursor_;
- if (yych == 's') goto yy864;
- if (yych == 'u') goto yy866;
+ if (yych == 's') goto yy885;
+ if (yych == 'u') goto yy887;
goto yy87;
-yy765:
+yy784:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 356 "src/wast-lexer.cc"
{ OPCODE(I32Rotl); RETURN(BINARY); }
-#line 4438 "src/prebuilt/wast-lexer-gen.cc"
-yy767:
+#line 4525 "src/prebuilt/wast-lexer-gen.cc"
+yy786:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 358 "src/wast-lexer.cc"
{ OPCODE(I32Rotr); RETURN(BINARY); }
-#line 4446 "src/prebuilt/wast-lexer-gen.cc"
-yy769:
+#line 4533 "src/prebuilt/wast-lexer-gen.cc"
+yy788:
yych = *++cursor_;
- if (yych == 's') goto yy868;
- if (yych == 'u') goto yy870;
+ if (yych == 's') goto yy889;
+ if (yych == 'u') goto yy891;
goto yy87;
-yy770:
+yy789:
yych = *++cursor_;
- if (yych == 'e') goto yy872;
+ if (yych == 'e') goto yy893;
goto yy87;
-yy771:
+yy790:
yych = *++cursor_;
- if (yych == 'c') goto yy874;
+ if (yych == 'c') goto yy895;
goto yy87;
-yy772:
+yy791:
yych = *++cursor_;
- if (yych == '/') goto yy875;
+ if (yych == '/') goto yy896;
goto yy87;
-yy773:
+yy792:
yych = *++cursor_;
- if (yych == 't') goto yy876;
+ if (yych == 't') goto yy897;
goto yy87;
-yy774:
+yy793:
yych = *++cursor_;
- if (yych == 's') goto yy878;
- if (yych == 'u') goto yy880;
+ if (yych == 's') goto yy899;
+ if (yych == 'u') goto yy901;
goto yy87;
-yy775:
+yy794:
yych = *++cursor_;
- if (yych == 'n') goto yy882;
+ if (yych == 'n') goto yy903;
goto yy87;
-yy776:
+yy795:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 391 "src/wast-lexer.cc"
{ OPCODE(I64GeS); RETURN(COMPARE); }
-#line 4484 "src/prebuilt/wast-lexer-gen.cc"
-yy778:
+#line 4571 "src/prebuilt/wast-lexer-gen.cc"
+yy797:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 393 "src/wast-lexer.cc"
{ OPCODE(I64GeU); RETURN(COMPARE); }
-#line 4492 "src/prebuilt/wast-lexer-gen.cc"
-yy780:
+#line 4579 "src/prebuilt/wast-lexer-gen.cc"
+yy799:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 387 "src/wast-lexer.cc"
{ OPCODE(I64GtS); RETURN(COMPARE); }
-#line 4500 "src/prebuilt/wast-lexer-gen.cc"
-yy782:
+#line 4587 "src/prebuilt/wast-lexer-gen.cc"
+yy801:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 389 "src/wast-lexer.cc"
{ OPCODE(I64GtU); RETURN(COMPARE); }
-#line 4508 "src/prebuilt/wast-lexer-gen.cc"
-yy784:
+#line 4595 "src/prebuilt/wast-lexer-gen.cc"
+yy803:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 383 "src/wast-lexer.cc"
{ OPCODE(I64LeS); RETURN(COMPARE); }
-#line 4516 "src/prebuilt/wast-lexer-gen.cc"
-yy786:
+#line 4603 "src/prebuilt/wast-lexer-gen.cc"
+yy805:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 385 "src/wast-lexer.cc"
{ OPCODE(I64LeU); RETURN(COMPARE); }
-#line 4524 "src/prebuilt/wast-lexer-gen.cc"
-yy788:
+#line 4611 "src/prebuilt/wast-lexer-gen.cc"
+yy807:
++cursor_;
if ((yych = *cursor_) <= '1') {
if (yych <= '"') {
if (yych == '!') goto yy86;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy789;
+ if (yych <= ')') goto yy808;
if (yych <= '0') goto yy86;
- goto yy883;
+ goto yy904;
}
} else {
if (yych <= '8') {
- if (yych == '3') goto yy884;
+ if (yych == '3') goto yy905;
if (yych <= '7') goto yy86;
- goto yy885;
+ goto yy906;
} else {
- if (yych == ';') goto yy789;
+ if (yych == ';') goto yy808;
if (yych <= '~') goto yy86;
}
}
-yy789:
+yy808:
#line 280 "src/wast-lexer.cc"
{ OPCODE(I64Load); RETURN(LOAD); }
-#line 4549 "src/prebuilt/wast-lexer-gen.cc"
-yy790:
+#line 4636 "src/prebuilt/wast-lexer-gen.cc"
+yy809:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 379 "src/wast-lexer.cc"
{ OPCODE(I64LtS); RETURN(COMPARE); }
-#line 4557 "src/prebuilt/wast-lexer-gen.cc"
-yy792:
+#line 4644 "src/prebuilt/wast-lexer-gen.cc"
+yy811:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 381 "src/wast-lexer.cc"
{ OPCODE(I64LtU); RETURN(COMPARE); }
-#line 4565 "src/prebuilt/wast-lexer-gen.cc"
-yy794:
+#line 4652 "src/prebuilt/wast-lexer-gen.cc"
+yy813:
yych = *++cursor_;
- if (yych == 'n') goto yy886;
+ if (yych == 'n') goto yy907;
goto yy87;
-yy795:
+yy814:
yych = *++cursor_;
- if (yych == 't') goto yy887;
+ if (yych == 't') goto yy908;
goto yy87;
-yy796:
+yy815:
yych = *++cursor_;
- if (yych == 's') goto yy888;
- if (yych == 'u') goto yy890;
+ if (yych == 's') goto yy909;
+ if (yych == 'u') goto yy911;
goto yy87;
-yy797:
+yy816:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 357 "src/wast-lexer.cc"
{ OPCODE(I64Rotl); RETURN(BINARY); }
-#line 4586 "src/prebuilt/wast-lexer-gen.cc"
-yy799:
+#line 4673 "src/prebuilt/wast-lexer-gen.cc"
+yy818:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 359 "src/wast-lexer.cc"
{ OPCODE(I64Rotr); RETURN(BINARY); }
-#line 4594 "src/prebuilt/wast-lexer-gen.cc"
-yy801:
+#line 4681 "src/prebuilt/wast-lexer-gen.cc"
+yy820:
yych = *++cursor_;
- if (yych == 's') goto yy892;
- if (yych == 'u') goto yy894;
+ if (yych == 's') goto yy913;
+ if (yych == 'u') goto yy915;
goto yy87;
-yy802:
+yy821:
yych = *++cursor_;
- if (yych == 'e') goto yy896;
+ if (yych == 'e') goto yy917;
goto yy87;
-yy803:
+yy822:
yych = *++cursor_;
- if (yych == 'c') goto yy898;
+ if (yych == 'c') goto yy919;
goto yy87;
-yy804:
+yy823:
++cursor_;
if ((yych = *cursor_) <= '/') {
if (yych <= '"') {
@@ -4615,316 +4702,324 @@ yy804:
}
} else {
if (yych <= ';') {
- if (yych <= '9') goto yy806;
+ if (yych <= '9') goto yy825;
if (yych <= ':') goto yy86;
} else {
- if (yych == 'x') goto yy899;
+ if (yych == 'x') goto yy920;
if (yych <= '~') goto yy86;
}
}
-yy805:
+yy824:
#line 302 "src/wast-lexer.cc"
{ TEXT_AT(7); RETURN(OFFSET_EQ_NAT); }
-#line 4629 "src/prebuilt/wast-lexer-gen.cc"
-yy806:
+#line 4716 "src/prebuilt/wast-lexer-gen.cc"
+yy825:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
if (yych <= ')') {
if (yych <= '!') {
- if (yych <= ' ') goto yy805;
+ if (yych <= ' ') goto yy824;
goto yy86;
} else {
- if (yych <= '"') goto yy805;
+ if (yych <= '"') goto yy824;
if (yych <= '\'') goto yy86;
- goto yy805;
+ goto yy824;
}
} else {
if (yych <= ':') {
if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy806;
+ if (yych <= '9') goto yy825;
goto yy86;
} else {
- if (yych <= ';') goto yy805;
+ if (yych <= ';') goto yy824;
if (yych <= '~') goto yy86;
- goto yy805;
+ goto yy824;
}
}
-yy808:
+yy827:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 450 "src/wast-lexer.cc"
{ RETURN(REGISTER); }
-#line 4661 "src/prebuilt/wast-lexer-gen.cc"
-yy810:
+#line 4748 "src/prebuilt/wast-lexer-gen.cc"
+yy829:
yych = *++cursor_;
- if (yych == 'a') goto yy900;
+ if (yych == 'a') goto yy921;
goto yy87;
-yy811:
+yy830:
yych = *++cursor_;
- if (yych == 'l') goto yy901;
+ if (yych == 'l') goto yy922;
goto yy87;
-yy812:
+yy831:
yych = *++cursor_;
- if (yych == 'l') goto yy903;
+ if (yych == 'l') goto yy924;
goto yy87;
-yy813:
+yy832:
yych = *++cursor_;
- if (yych == 'b') goto yy905;
+ if (yych == 'b') goto yy926;
goto yy87;
-yy814:
+yy833:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
if (yych <= '9') {
if (yych <= '"') {
if (yych == '!') goto yy86;
- goto yy558;
+ goto yy573;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy558;
+ if (yych <= ')') goto yy573;
if (yych <= '/') goto yy86;
- goto yy814;
+ goto yy833;
}
} else {
if (yych <= 'F') {
- if (yych == ';') goto yy558;
+ if (yych == ';') goto yy573;
if (yych <= '@') goto yy86;
- goto yy814;
+ goto yy833;
} else {
if (yych <= '`') goto yy86;
- if (yych <= 'f') goto yy814;
+ if (yych <= 'f') goto yy833;
if (yych <= '~') goto yy86;
- goto yy558;
+ goto yy573;
}
}
-yy816:
+yy835:
yych = *++cursor_;
- if (yych == 'h') goto yy906;
+ if (yych == 'h') goto yy927;
goto yy87;
-yy817:
+yy836:
yych = *++cursor_;
- if (yych == 'v') goto yy907;
+ if (yych == 'v') goto yy928;
goto yy87;
-yy818:
+yy837:
yych = *++cursor_;
- if (yych == 'l') goto yy908;
+ if (yych == 'l') goto yy929;
goto yy87;
-yy819:
+yy838:
yych = *++cursor_;
- if (yych == 't') goto yy909;
+ if (yych == 't') goto yy930;
goto yy87;
-yy820:
+yy839:
yych = *++cursor_;
- if (yych == 'a') goto yy910;
+ if (yych == 'a') goto yy931;
goto yy87;
-yy821:
+yy840:
yych = *++cursor_;
- if (yych == 'l') goto yy911;
+ if (yych == 'l') goto yy932;
goto yy87;
-yy822:
+yy841:
yych = *++cursor_;
- if (yych == 'r') goto yy912;
+ if (yych == 'r') goto yy933;
goto yy87;
-yy823:
+yy842:
+ ++cursor_;
+ if (yybm[0+(yych = *cursor_)] & 8) {
+ goto yy86;
+ }
+#line 465 "src/wast-lexer.cc"
+ { RETURN(CATCH_ALL); }
+#line 4826 "src/prebuilt/wast-lexer-gen.cc"
+yy844:
yych = *++cursor_;
- if (yych == 'e') goto yy913;
+ if (yych == 'e') goto yy934;
goto yy87;
-yy824:
+yy845:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 306 "src/wast-lexer.cc"
{ TYPE(F32); RETURN(CONST); }
-#line 4743 "src/prebuilt/wast-lexer-gen.cc"
-yy826:
+#line 4838 "src/prebuilt/wast-lexer-gen.cc"
+yy847:
yych = *++cursor_;
- if (yych == 'r') goto yy914;
+ if (yych == 'r') goto yy935;
goto yy87;
-yy827:
+yy848:
yych = *++cursor_;
- if (yych == 'i') goto yy915;
+ if (yych == 'i') goto yy936;
goto yy87;
-yy828:
+yy849:
yych = *++cursor_;
- if (yych == 'e') goto yy916;
+ if (yych == 'e') goto yy937;
goto yy87;
-yy829:
+yy850:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 324 "src/wast-lexer.cc"
{ OPCODE(F32Floor); RETURN(UNARY); }
-#line 4763 "src/prebuilt/wast-lexer-gen.cc"
-yy831:
+#line 4858 "src/prebuilt/wast-lexer-gen.cc"
+yy852:
yych = *++cursor_;
- if (yych == 's') goto yy917;
+ if (yych == 's') goto yy938;
goto yy87;
-yy832:
+yy853:
yych = *++cursor_;
- if (yych == 'e') goto yy918;
+ if (yych == 'e') goto yy939;
goto yy87;
-yy833:
+yy854:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 285 "src/wast-lexer.cc"
{ OPCODE(F32Store); RETURN(STORE); }
-#line 4779 "src/prebuilt/wast-lexer-gen.cc"
-yy835:
+#line 4874 "src/prebuilt/wast-lexer-gen.cc"
+yy856:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 326 "src/wast-lexer.cc"
{ OPCODE(F32Trunc); RETURN(UNARY); }
-#line 4787 "src/prebuilt/wast-lexer-gen.cc"
-yy837:
+#line 4882 "src/prebuilt/wast-lexer-gen.cc"
+yy858:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 307 "src/wast-lexer.cc"
{ TYPE(F64); RETURN(CONST); }
-#line 4795 "src/prebuilt/wast-lexer-gen.cc"
-yy839:
+#line 4890 "src/prebuilt/wast-lexer-gen.cc"
+yy860:
yych = *++cursor_;
- if (yych == 'r') goto yy919;
+ if (yych == 'r') goto yy940;
goto yy87;
-yy840:
+yy861:
yych = *++cursor_;
- if (yych == 'i') goto yy920;
+ if (yych == 'i') goto yy941;
goto yy87;
-yy841:
+yy862:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 325 "src/wast-lexer.cc"
{ OPCODE(F64Floor); RETURN(UNARY); }
-#line 4811 "src/prebuilt/wast-lexer-gen.cc"
-yy843:
+#line 4906 "src/prebuilt/wast-lexer-gen.cc"
+yy864:
yych = *++cursor_;
- if (yych == 's') goto yy921;
+ if (yych == 's') goto yy942;
goto yy87;
-yy844:
+yy865:
yych = *++cursor_;
- if (yych == 't') goto yy922;
+ if (yych == 't') goto yy943;
goto yy87;
-yy845:
+yy866:
yych = *++cursor_;
- if (yych == 'e') goto yy923;
+ if (yych == 'e') goto yy944;
goto yy87;
-yy846:
+yy867:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 286 "src/wast-lexer.cc"
{ OPCODE(F64Store); RETURN(STORE); }
-#line 4831 "src/prebuilt/wast-lexer-gen.cc"
-yy848:
+#line 4926 "src/prebuilt/wast-lexer-gen.cc"
+yy869:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 327 "src/wast-lexer.cc"
{ OPCODE(F64Trunc); RETURN(UNARY); }
-#line 4839 "src/prebuilt/wast-lexer-gen.cc"
-yy850:
+#line 4934 "src/prebuilt/wast-lexer-gen.cc"
+yy871:
yych = *++cursor_;
- if (yych == 'l') goto yy924;
+ if (yych == 'l') goto yy945;
goto yy87;
-yy851:
+yy872:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 274 "src/wast-lexer.cc"
{ RETURN(GET_LOCAL); }
-#line 4851 "src/prebuilt/wast-lexer-gen.cc"
-yy853:
+#line 4946 "src/prebuilt/wast-lexer-gen.cc"
+yy874:
yych = *++cursor_;
- if (yych == 'r') goto yy926;
+ if (yych == 'r') goto yy947;
goto yy87;
-yy854:
+yy875:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 304 "src/wast-lexer.cc"
{ TYPE(I32); RETURN(CONST); }
-#line 4863 "src/prebuilt/wast-lexer-gen.cc"
-yy856:
+#line 4958 "src/prebuilt/wast-lexer-gen.cc"
+yy877:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 336 "src/wast-lexer.cc"
{ OPCODE(I32DivS); RETURN(BINARY); }
-#line 4871 "src/prebuilt/wast-lexer-gen.cc"
-yy858:
+#line 4966 "src/prebuilt/wast-lexer-gen.cc"
+yy879:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 338 "src/wast-lexer.cc"
{ OPCODE(I32DivU); RETURN(BINARY); }
-#line 4879 "src/prebuilt/wast-lexer-gen.cc"
-yy860:
+#line 4974 "src/prebuilt/wast-lexer-gen.cc"
+yy881:
yych = *++cursor_;
- if (yych == '6') goto yy927;
+ if (yych == '6') goto yy948;
goto yy87;
-yy861:
+yy882:
yych = *++cursor_;
- if (yych == '_') goto yy928;
+ if (yych == '_') goto yy949;
goto yy87;
-yy862:
+yy883:
yych = *++cursor_;
- if (yych == 't') goto yy929;
+ if (yych == 't') goto yy950;
goto yy87;
-yy863:
+yy884:
yych = *++cursor_;
- if (yych == 'e') goto yy931;
+ if (yych == 'e') goto yy952;
goto yy87;
-yy864:
+yy885:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 340 "src/wast-lexer.cc"
{ OPCODE(I32RemS); RETURN(BINARY); }
-#line 4903 "src/prebuilt/wast-lexer-gen.cc"
-yy866:
+#line 4998 "src/prebuilt/wast-lexer-gen.cc"
+yy887:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 342 "src/wast-lexer.cc"
{ OPCODE(I32RemU); RETURN(BINARY); }
-#line 4911 "src/prebuilt/wast-lexer-gen.cc"
-yy868:
+#line 5006 "src/prebuilt/wast-lexer-gen.cc"
+yy889:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 352 "src/wast-lexer.cc"
{ OPCODE(I32ShrS); RETURN(BINARY); }
-#line 4919 "src/prebuilt/wast-lexer-gen.cc"
-yy870:
+#line 5014 "src/prebuilt/wast-lexer-gen.cc"
+yy891:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 354 "src/wast-lexer.cc"
{ OPCODE(I32ShrU); RETURN(BINARY); }
-#line 4927 "src/prebuilt/wast-lexer-gen.cc"
-yy872:
+#line 5022 "src/prebuilt/wast-lexer-gen.cc"
+yy893:
++cursor_;
if ((yych = *cursor_) <= '0') {
if (yych <= '"') {
@@ -4935,1434 +5030,1434 @@ yy872:
}
} else {
if (yych <= '8') {
- if (yych <= '1') goto yy932;
+ if (yych <= '1') goto yy953;
if (yych <= '7') goto yy86;
- goto yy933;
+ goto yy954;
} else {
- if (yych == ';') goto yy873;
+ if (yych == ';') goto yy894;
if (yych <= '~') goto yy86;
}
}
-yy873:
+yy894:
#line 283 "src/wast-lexer.cc"
{ OPCODE(I32Store); RETURN(STORE); }
-#line 4950 "src/prebuilt/wast-lexer-gen.cc"
-yy874:
+#line 5045 "src/prebuilt/wast-lexer-gen.cc"
+yy895:
yych = *++cursor_;
- if (yych == '_') goto yy935;
+ if (yych == '_') goto yy956;
goto yy87;
-yy875:
+yy896:
yych = *++cursor_;
- if (yych == 'i') goto yy936;
+ if (yych == 'i') goto yy957;
goto yy87;
-yy876:
+yy897:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 305 "src/wast-lexer.cc"
{ TYPE(I64); RETURN(CONST); }
-#line 4966 "src/prebuilt/wast-lexer-gen.cc"
-yy878:
+#line 5061 "src/prebuilt/wast-lexer-gen.cc"
+yy899:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 337 "src/wast-lexer.cc"
{ OPCODE(I64DivS); RETURN(BINARY); }
-#line 4974 "src/prebuilt/wast-lexer-gen.cc"
-yy880:
+#line 5069 "src/prebuilt/wast-lexer-gen.cc"
+yy901:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 339 "src/wast-lexer.cc"
{ OPCODE(I64DivU); RETURN(BINARY); }
-#line 4982 "src/prebuilt/wast-lexer-gen.cc"
-yy882:
+#line 5077 "src/prebuilt/wast-lexer-gen.cc"
+yy903:
yych = *++cursor_;
- if (yych == 'd') goto yy937;
+ if (yych == 'd') goto yy958;
goto yy87;
-yy883:
+yy904:
yych = *++cursor_;
- if (yych == '6') goto yy938;
+ if (yych == '6') goto yy959;
goto yy87;
-yy884:
+yy905:
yych = *++cursor_;
- if (yych == '2') goto yy939;
+ if (yych == '2') goto yy960;
goto yy87;
-yy885:
+yy906:
yych = *++cursor_;
- if (yych == '_') goto yy940;
+ if (yych == '_') goto yy961;
goto yy87;
-yy886:
+yy907:
yych = *++cursor_;
- if (yych == 't') goto yy941;
+ if (yych == 't') goto yy962;
goto yy87;
-yy887:
+yy908:
yych = *++cursor_;
- if (yych == 'e') goto yy943;
+ if (yych == 'e') goto yy964;
goto yy87;
-yy888:
+yy909:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 341 "src/wast-lexer.cc"
{ OPCODE(I64RemS); RETURN(BINARY); }
-#line 5014 "src/prebuilt/wast-lexer-gen.cc"
-yy890:
+#line 5109 "src/prebuilt/wast-lexer-gen.cc"
+yy911:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 343 "src/wast-lexer.cc"
{ OPCODE(I64RemU); RETURN(BINARY); }
-#line 5022 "src/prebuilt/wast-lexer-gen.cc"
-yy892:
+#line 5117 "src/prebuilt/wast-lexer-gen.cc"
+yy913:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 353 "src/wast-lexer.cc"
{ OPCODE(I64ShrS); RETURN(BINARY); }
-#line 5030 "src/prebuilt/wast-lexer-gen.cc"
-yy894:
+#line 5125 "src/prebuilt/wast-lexer-gen.cc"
+yy915:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 355 "src/wast-lexer.cc"
{ OPCODE(I64ShrU); RETURN(BINARY); }
-#line 5038 "src/prebuilt/wast-lexer-gen.cc"
-yy896:
+#line 5133 "src/prebuilt/wast-lexer-gen.cc"
+yy917:
++cursor_;
if ((yych = *cursor_) <= '1') {
if (yych <= '"') {
if (yych == '!') goto yy86;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy897;
+ if (yych <= ')') goto yy918;
if (yych <= '0') goto yy86;
- goto yy944;
+ goto yy965;
}
} else {
if (yych <= '8') {
- if (yych == '3') goto yy945;
+ if (yych == '3') goto yy966;
if (yych <= '7') goto yy86;
- goto yy946;
+ goto yy967;
} else {
- if (yych == ';') goto yy897;
+ if (yych == ';') goto yy918;
if (yych <= '~') goto yy86;
}
}
-yy897:
+yy918:
#line 284 "src/wast-lexer.cc"
{ OPCODE(I64Store); RETURN(STORE); }
-#line 5063 "src/prebuilt/wast-lexer-gen.cc"
-yy898:
+#line 5158 "src/prebuilt/wast-lexer-gen.cc"
+yy919:
yych = *++cursor_;
- if (yych == '_') goto yy948;
+ if (yych == '_') goto yy969;
goto yy87;
-yy899:
+yy920:
yych = *++cursor_;
if (yych <= '@') {
if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy949;
+ if (yych <= '9') goto yy970;
goto yy87;
} else {
- if (yych <= 'F') goto yy949;
+ if (yych <= 'F') goto yy970;
if (yych <= '`') goto yy87;
- if (yych <= 'f') goto yy949;
+ if (yych <= 'f') goto yy970;
goto yy87;
}
-yy900:
+yy921:
yych = *++cursor_;
- if (yych == 'l') goto yy951;
+ if (yych == 'l') goto yy972;
goto yy87;
-yy901:
+yy922:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 275 "src/wast-lexer.cc"
{ RETURN(SET_LOCAL); }
-#line 5091 "src/prebuilt/wast-lexer-gen.cc"
-yy903:
+#line 5186 "src/prebuilt/wast-lexer-gen.cc"
+yy924:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 276 "src/wast-lexer.cc"
{ RETURN(TEE_LOCAL); }
-#line 5099 "src/prebuilt/wast-lexer-gen.cc"
-yy905:
+#line 5194 "src/prebuilt/wast-lexer-gen.cc"
+yy926:
yych = *++cursor_;
- if (yych == 'l') goto yy953;
+ if (yych == 'l') goto yy974;
goto yy87;
-yy906:
+yy927:
yych = *++cursor_;
- if (yych == 'a') goto yy954;
+ if (yych == 'a') goto yy975;
goto yy87;
-yy907:
+yy928:
yych = *++cursor_;
- if (yych == 'a') goto yy955;
+ if (yych == 'a') goto yy976;
goto yy87;
-yy908:
+yy929:
yych = *++cursor_;
- if (yych == 'f') goto yy956;
+ if (yych == 'f') goto yy977;
goto yy87;
-yy909:
+yy930:
yych = *++cursor_;
- if (yych == 'u') goto yy957;
+ if (yych == 'u') goto yy978;
goto yy87;
-yy910:
+yy931:
yych = *++cursor_;
- if (yych == 'p') goto yy958;
+ if (yych == 'p') goto yy979;
goto yy87;
-yy911:
+yy932:
yych = *++cursor_;
- if (yych == 'i') goto yy960;
+ if (yych == 'i') goto yy981;
goto yy87;
-yy912:
+yy933:
yych = *++cursor_;
- if (yych == 'e') goto yy961;
+ if (yych == 'e') goto yy982;
goto yy87;
-yy913:
+yy934:
yych = *++cursor_;
- if (yych == 'm') goto yy962;
+ if (yych == 'm') goto yy983;
goto yy87;
-yy914:
+yy935:
yych = *++cursor_;
- if (yych == 't') goto yy963;
+ if (yych == 't') goto yy984;
goto yy87;
-yy915:
+yy936:
yych = *++cursor_;
- if (yych == 'g') goto yy964;
+ if (yych == 'g') goto yy985;
goto yy87;
-yy916:
+yy937:
yych = *++cursor_;
- if (yych == '/') goto yy965;
+ if (yych == '/') goto yy986;
goto yy87;
-yy917:
+yy938:
yych = *++cursor_;
- if (yych == 't') goto yy966;
+ if (yych == 't') goto yy987;
goto yy87;
-yy918:
+yy939:
yych = *++cursor_;
- if (yych == 'r') goto yy968;
+ if (yych == 'r') goto yy989;
goto yy87;
-yy919:
+yy940:
yych = *++cursor_;
- if (yych == 't') goto yy969;
+ if (yych == 't') goto yy990;
goto yy87;
-yy920:
+yy941:
yych = *++cursor_;
- if (yych == 'g') goto yy970;
+ if (yych == 'g') goto yy991;
goto yy87;
-yy921:
+yy942:
yych = *++cursor_;
- if (yych == 't') goto yy971;
+ if (yych == 't') goto yy992;
goto yy87;
-yy922:
+yy943:
yych = *++cursor_;
- if (yych == 'e') goto yy973;
+ if (yych == 'e') goto yy994;
goto yy87;
-yy923:
+yy944:
yych = *++cursor_;
- if (yych == 'r') goto yy974;
+ if (yych == 'r') goto yy995;
goto yy87;
-yy924:
+yy945:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 277 "src/wast-lexer.cc"
{ RETURN(GET_GLOBAL); }
-#line 5183 "src/prebuilt/wast-lexer-gen.cc"
-yy926:
+#line 5278 "src/prebuilt/wast-lexer-gen.cc"
+yy947:
yych = *++cursor_;
- if (yych == 'y') goto yy975;
+ if (yych == 'y') goto yy996;
goto yy87;
-yy927:
+yy948:
yych = *++cursor_;
- if (yych == '_') goto yy977;
+ if (yych == '_') goto yy998;
goto yy87;
-yy928:
+yy949:
yych = *++cursor_;
- if (yych == 's') goto yy978;
- if (yych == 'u') goto yy980;
+ if (yych == 's') goto yy999;
+ if (yych == 'u') goto yy1001;
goto yy87;
-yy929:
+yy950:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 314 "src/wast-lexer.cc"
{ OPCODE(I32Popcnt); RETURN(UNARY); }
-#line 5204 "src/prebuilt/wast-lexer-gen.cc"
-yy931:
+#line 5299 "src/prebuilt/wast-lexer-gen.cc"
+yy952:
yych = *++cursor_;
- if (yych == 'r') goto yy982;
+ if (yych == 'r') goto yy1003;
goto yy87;
-yy932:
+yy953:
yych = *++cursor_;
- if (yych == '6') goto yy983;
+ if (yych == '6') goto yy1004;
goto yy87;
-yy933:
+yy954:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 297 "src/wast-lexer.cc"
{ OPCODE(I32Store8); RETURN(STORE); }
-#line 5220 "src/prebuilt/wast-lexer-gen.cc"
-yy935:
+#line 5315 "src/prebuilt/wast-lexer-gen.cc"
+yy956:
yych = *++cursor_;
- if (yych == 's') goto yy985;
- if (yych == 'u') goto yy986;
+ if (yych == 's') goto yy1006;
+ if (yych == 'u') goto yy1007;
goto yy87;
-yy936:
+yy957:
yych = *++cursor_;
- if (yych == '6') goto yy987;
+ if (yych == '6') goto yy1008;
goto yy87;
-yy937:
+yy958:
yych = *++cursor_;
- if (yych == '_') goto yy988;
+ if (yych == '_') goto yy1009;
goto yy87;
-yy938:
+yy959:
yych = *++cursor_;
- if (yych == '_') goto yy989;
+ if (yych == '_') goto yy1010;
goto yy87;
-yy939:
+yy960:
yych = *++cursor_;
- if (yych == '_') goto yy990;
+ if (yych == '_') goto yy1011;
goto yy87;
-yy940:
+yy961:
yych = *++cursor_;
- if (yych == 's') goto yy991;
- if (yych == 'u') goto yy993;
+ if (yych == 's') goto yy1012;
+ if (yych == 'u') goto yy1014;
goto yy87;
-yy941:
+yy962:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 315 "src/wast-lexer.cc"
{ OPCODE(I64Popcnt); RETURN(UNARY); }
-#line 5254 "src/prebuilt/wast-lexer-gen.cc"
-yy943:
+#line 5349 "src/prebuilt/wast-lexer-gen.cc"
+yy964:
yych = *++cursor_;
- if (yych == 'r') goto yy995;
+ if (yych == 'r') goto yy1016;
goto yy87;
-yy944:
+yy965:
yych = *++cursor_;
- if (yych == '6') goto yy996;
+ if (yych == '6') goto yy1017;
goto yy87;
-yy945:
+yy966:
yych = *++cursor_;
- if (yych == '2') goto yy998;
+ if (yych == '2') goto yy1019;
goto yy87;
-yy946:
+yy967:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 298 "src/wast-lexer.cc"
{ OPCODE(I64Store8); RETURN(STORE); }
-#line 5274 "src/prebuilt/wast-lexer-gen.cc"
-yy948:
+#line 5369 "src/prebuilt/wast-lexer-gen.cc"
+yy969:
yych = *++cursor_;
- if (yych == 's') goto yy1000;
- if (yych == 'u') goto yy1001;
+ if (yych == 's') goto yy1021;
+ if (yych == 'u') goto yy1022;
goto yy87;
-yy949:
+yy970:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
if (yych <= '9') {
if (yych <= '"') {
if (yych == '!') goto yy86;
- goto yy805;
+ goto yy824;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy805;
+ if (yych <= ')') goto yy824;
if (yych <= '/') goto yy86;
- goto yy949;
+ goto yy970;
}
} else {
if (yych <= 'F') {
- if (yych == ';') goto yy805;
+ if (yych == ';') goto yy824;
if (yych <= '@') goto yy86;
- goto yy949;
+ goto yy970;
} else {
if (yych <= '`') goto yy86;
- if (yych <= 'f') goto yy949;
+ if (yych <= 'f') goto yy970;
if (yych <= '~') goto yy86;
- goto yy805;
+ goto yy824;
}
}
-yy951:
+yy972:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 278 "src/wast-lexer.cc"
{ RETURN(SET_GLOBAL); }
-#line 5313 "src/prebuilt/wast-lexer-gen.cc"
-yy953:
+#line 5408 "src/prebuilt/wast-lexer-gen.cc"
+yy974:
yych = *++cursor_;
- if (yych == 'e') goto yy1002;
+ if (yych == 'e') goto yy1023;
goto yy87;
-yy954:
+yy975:
yych = *++cursor_;
- if (yych == 'u') goto yy1004;
+ if (yych == 'u') goto yy1025;
goto yy87;
-yy955:
+yy976:
yych = *++cursor_;
- if (yych == 'l') goto yy1005;
+ if (yych == 'l') goto yy1026;
goto yy87;
-yy956:
+yy977:
yych = *++cursor_;
- if (yych == 'o') goto yy1006;
+ if (yych == 'o') goto yy1027;
goto yy87;
-yy957:
+yy978:
yych = *++cursor_;
- if (yych == 'r') goto yy1007;
+ if (yych == 'r') goto yy1028;
goto yy87;
-yy958:
+yy979:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 461 "src/wast-lexer.cc"
{ RETURN(ASSERT_TRAP); }
-#line 5341 "src/prebuilt/wast-lexer-gen.cc"
-yy960:
+#line 5436 "src/prebuilt/wast-lexer-gen.cc"
+yy981:
yych = *++cursor_;
- if (yych == 'n') goto yy1008;
+ if (yych == 'n') goto yy1029;
goto yy87;
-yy961:
+yy982:
yych = *++cursor_;
- if (yych == 'c') goto yy1009;
+ if (yych == 'c') goto yy1030;
goto yy87;
-yy962:
+yy983:
yych = *++cursor_;
- if (yych == 'o') goto yy1010;
+ if (yych == 'o') goto yy1031;
goto yy87;
-yy963:
+yy984:
yych = *++cursor_;
- if (yych == '_') goto yy1011;
+ if (yych == '_') goto yy1032;
goto yy87;
-yy964:
+yy985:
yych = *++cursor_;
- if (yych == 'n') goto yy1012;
+ if (yych == 'n') goto yy1033;
goto yy87;
-yy965:
+yy986:
yych = *++cursor_;
- if (yych == 'f') goto yy1014;
+ if (yych == 'f') goto yy1035;
goto yy87;
-yy966:
+yy987:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 328 "src/wast-lexer.cc"
{ OPCODE(F32Nearest); RETURN(UNARY); }
-#line 5373 "src/prebuilt/wast-lexer-gen.cc"
-yy968:
+#line 5468 "src/prebuilt/wast-lexer-gen.cc"
+yy989:
yych = *++cursor_;
- if (yych == 'p') goto yy1015;
+ if (yych == 'p') goto yy1036;
goto yy87;
-yy969:
+yy990:
yych = *++cursor_;
- if (yych == '_') goto yy1016;
+ if (yych == '_') goto yy1037;
goto yy87;
-yy970:
+yy991:
yych = *++cursor_;
- if (yych == 'n') goto yy1017;
+ if (yych == 'n') goto yy1038;
goto yy87;
-yy971:
+yy992:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 329 "src/wast-lexer.cc"
{ OPCODE(F64Nearest); RETURN(UNARY); }
-#line 5393 "src/prebuilt/wast-lexer-gen.cc"
-yy973:
+#line 5488 "src/prebuilt/wast-lexer-gen.cc"
+yy994:
yych = *++cursor_;
- if (yych == '/') goto yy1019;
+ if (yych == '/') goto yy1040;
goto yy87;
-yy974:
+yy995:
yych = *++cursor_;
- if (yych == 'p') goto yy1020;
+ if (yych == 'p') goto yy1041;
goto yy87;
-yy975:
+yy996:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 434 "src/wast-lexer.cc"
{ RETURN(GROW_MEMORY); }
-#line 5409 "src/prebuilt/wast-lexer-gen.cc"
-yy977:
+#line 5504 "src/prebuilt/wast-lexer-gen.cc"
+yy998:
yych = *++cursor_;
- if (yych == 's') goto yy1021;
- if (yych == 'u') goto yy1023;
+ if (yych == 's') goto yy1042;
+ if (yych == 'u') goto yy1044;
goto yy87;
-yy978:
+yy999:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 287 "src/wast-lexer.cc"
{ OPCODE(I32Load8S); RETURN(LOAD); }
-#line 5422 "src/prebuilt/wast-lexer-gen.cc"
-yy980:
+#line 5517 "src/prebuilt/wast-lexer-gen.cc"
+yy1001:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 289 "src/wast-lexer.cc"
{ OPCODE(I32Load8U); RETURN(LOAD); }
-#line 5430 "src/prebuilt/wast-lexer-gen.cc"
-yy982:
+#line 5525 "src/prebuilt/wast-lexer-gen.cc"
+yy1003:
yych = *++cursor_;
- if (yych == 'p') goto yy1025;
+ if (yych == 'p') goto yy1046;
goto yy87;
-yy983:
+yy1004:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 299 "src/wast-lexer.cc"
{ OPCODE(I32Store16); RETURN(STORE); }
-#line 5442 "src/prebuilt/wast-lexer-gen.cc"
-yy985:
+#line 5537 "src/prebuilt/wast-lexer-gen.cc"
+yy1006:
yych = *++cursor_;
- if (yych == '/') goto yy1026;
+ if (yych == '/') goto yy1047;
goto yy87;
-yy986:
+yy1007:
yych = *++cursor_;
- if (yych == '/') goto yy1027;
+ if (yych == '/') goto yy1048;
goto yy87;
-yy987:
+yy1008:
yych = *++cursor_;
- if (yych == '4') goto yy1028;
+ if (yych == '4') goto yy1049;
goto yy87;
-yy988:
+yy1009:
yych = *++cursor_;
- if (yych == 's') goto yy1030;
- if (yych == 'u') goto yy1031;
+ if (yych == 's') goto yy1051;
+ if (yych == 'u') goto yy1052;
goto yy87;
-yy989:
+yy1010:
yych = *++cursor_;
- if (yych == 's') goto yy1032;
- if (yych == 'u') goto yy1034;
+ if (yych == 's') goto yy1053;
+ if (yych == 'u') goto yy1055;
goto yy87;
-yy990:
+yy1011:
yych = *++cursor_;
- if (yych == 's') goto yy1036;
- if (yych == 'u') goto yy1038;
+ if (yych == 's') goto yy1057;
+ if (yych == 'u') goto yy1059;
goto yy87;
-yy991:
+yy1012:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 288 "src/wast-lexer.cc"
{ OPCODE(I64Load8S); RETURN(LOAD); }
-#line 5477 "src/prebuilt/wast-lexer-gen.cc"
-yy993:
+#line 5572 "src/prebuilt/wast-lexer-gen.cc"
+yy1014:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 290 "src/wast-lexer.cc"
{ OPCODE(I64Load8U); RETURN(LOAD); }
-#line 5485 "src/prebuilt/wast-lexer-gen.cc"
-yy995:
+#line 5580 "src/prebuilt/wast-lexer-gen.cc"
+yy1016:
yych = *++cursor_;
- if (yych == 'p') goto yy1040;
+ if (yych == 'p') goto yy1061;
goto yy87;
-yy996:
+yy1017:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 300 "src/wast-lexer.cc"
{ OPCODE(I64Store16); RETURN(STORE); }
-#line 5497 "src/prebuilt/wast-lexer-gen.cc"
-yy998:
+#line 5592 "src/prebuilt/wast-lexer-gen.cc"
+yy1019:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 301 "src/wast-lexer.cc"
{ OPCODE(I64Store32); RETURN(STORE); }
-#line 5505 "src/prebuilt/wast-lexer-gen.cc"
-yy1000:
+#line 5600 "src/prebuilt/wast-lexer-gen.cc"
+yy1021:
yych = *++cursor_;
- if (yych == '/') goto yy1041;
+ if (yych == '/') goto yy1062;
goto yy87;
-yy1001:
+yy1022:
yych = *++cursor_;
- if (yych == '/') goto yy1042;
+ if (yych == '/') goto yy1063;
goto yy87;
-yy1002:
+yy1023:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 432 "src/wast-lexer.cc"
{ RETURN(UNREACHABLE); }
-#line 5521 "src/prebuilt/wast-lexer-gen.cc"
-yy1004:
+#line 5616 "src/prebuilt/wast-lexer-gen.cc"
+yy1025:
yych = *++cursor_;
- if (yych == 's') goto yy1043;
+ if (yych == 's') goto yy1064;
goto yy87;
-yy1005:
+yy1026:
yych = *++cursor_;
- if (yych == 'i') goto yy1044;
+ if (yych == 'i') goto yy1065;
goto yy87;
-yy1006:
+yy1027:
yych = *++cursor_;
- if (yych == 'r') goto yy1045;
+ if (yych == 'r') goto yy1066;
goto yy87;
-yy1007:
+yy1028:
yych = *++cursor_;
- if (yych == 'n') goto yy1046;
+ if (yych == 'n') goto yy1067;
goto yy87;
-yy1008:
+yy1029:
yych = *++cursor_;
- if (yych == 'k') goto yy1048;
+ if (yych == 'k') goto yy1069;
goto yy87;
-yy1009:
+yy1030:
yych = *++cursor_;
- if (yych == 't') goto yy1049;
+ if (yych == 't') goto yy1070;
goto yy87;
-yy1010:
+yy1031:
yych = *++cursor_;
- if (yych == 'r') goto yy1051;
+ if (yych == 'r') goto yy1072;
goto yy87;
-yy1011:
+yy1032:
yych = *++cursor_;
- if (yych == 's') goto yy1052;
- if (yych == 'u') goto yy1053;
+ if (yych == 's') goto yy1073;
+ if (yych == 'u') goto yy1074;
goto yy87;
-yy1012:
+yy1033:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 372 "src/wast-lexer.cc"
{ OPCODE(F32Copysign); RETURN(BINARY); }
-#line 5562 "src/prebuilt/wast-lexer-gen.cc"
-yy1014:
+#line 5657 "src/prebuilt/wast-lexer-gen.cc"
+yy1035:
yych = *++cursor_;
- if (yych == '6') goto yy1054;
+ if (yych == '6') goto yy1075;
goto yy87;
-yy1015:
+yy1036:
yych = *++cursor_;
- if (yych == 'r') goto yy1055;
+ if (yych == 'r') goto yy1076;
goto yy87;
-yy1016:
+yy1037:
yych = *++cursor_;
- if (yych == 's') goto yy1056;
- if (yych == 'u') goto yy1057;
+ if (yych == 's') goto yy1077;
+ if (yych == 'u') goto yy1078;
goto yy87;
-yy1017:
+yy1038:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 373 "src/wast-lexer.cc"
{ OPCODE(F64Copysign); RETURN(BINARY); }
-#line 5583 "src/prebuilt/wast-lexer-gen.cc"
-yy1019:
+#line 5678 "src/prebuilt/wast-lexer-gen.cc"
+yy1040:
yych = *++cursor_;
- if (yych == 'f') goto yy1058;
+ if (yych == 'f') goto yy1079;
goto yy87;
-yy1020:
+yy1041:
yych = *++cursor_;
- if (yych == 'r') goto yy1059;
+ if (yych == 'r') goto yy1080;
goto yy87;
-yy1021:
+yy1042:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 291 "src/wast-lexer.cc"
{ OPCODE(I32Load16S); RETURN(LOAD); }
-#line 5599 "src/prebuilt/wast-lexer-gen.cc"
-yy1023:
+#line 5694 "src/prebuilt/wast-lexer-gen.cc"
+yy1044:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 293 "src/wast-lexer.cc"
{ OPCODE(I32Load16U); RETURN(LOAD); }
-#line 5607 "src/prebuilt/wast-lexer-gen.cc"
-yy1025:
+#line 5702 "src/prebuilt/wast-lexer-gen.cc"
+yy1046:
yych = *++cursor_;
- if (yych == 'r') goto yy1060;
+ if (yych == 'r') goto yy1081;
goto yy87;
-yy1026:
+yy1047:
yych = *++cursor_;
- if (yych == 'f') goto yy1061;
+ if (yych == 'f') goto yy1082;
goto yy87;
-yy1027:
+yy1048:
yych = *++cursor_;
- if (yych == 'f') goto yy1062;
+ if (yych == 'f') goto yy1083;
goto yy87;
-yy1028:
+yy1049:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 408 "src/wast-lexer.cc"
{ OPCODE(I32WrapI64); RETURN(CONVERT); }
-#line 5627 "src/prebuilt/wast-lexer-gen.cc"
-yy1030:
+#line 5722 "src/prebuilt/wast-lexer-gen.cc"
+yy1051:
yych = *++cursor_;
- if (yych == '/') goto yy1063;
+ if (yych == '/') goto yy1084;
goto yy87;
-yy1031:
+yy1052:
yych = *++cursor_;
- if (yych == '/') goto yy1064;
+ if (yych == '/') goto yy1085;
goto yy87;
-yy1032:
+yy1053:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 292 "src/wast-lexer.cc"
{ OPCODE(I64Load16S); RETURN(LOAD); }
-#line 5643 "src/prebuilt/wast-lexer-gen.cc"
-yy1034:
+#line 5738 "src/prebuilt/wast-lexer-gen.cc"
+yy1055:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 294 "src/wast-lexer.cc"
{ OPCODE(I64Load16U); RETURN(LOAD); }
-#line 5651 "src/prebuilt/wast-lexer-gen.cc"
-yy1036:
+#line 5746 "src/prebuilt/wast-lexer-gen.cc"
+yy1057:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 295 "src/wast-lexer.cc"
{ OPCODE(I64Load32S); RETURN(LOAD); }
-#line 5659 "src/prebuilt/wast-lexer-gen.cc"
-yy1038:
+#line 5754 "src/prebuilt/wast-lexer-gen.cc"
+yy1059:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 296 "src/wast-lexer.cc"
{ OPCODE(I64Load32U); RETURN(LOAD); }
-#line 5667 "src/prebuilt/wast-lexer-gen.cc"
-yy1040:
+#line 5762 "src/prebuilt/wast-lexer-gen.cc"
+yy1061:
yych = *++cursor_;
- if (yych == 'r') goto yy1065;
+ if (yych == 'r') goto yy1086;
goto yy87;
-yy1041:
+yy1062:
yych = *++cursor_;
- if (yych == 'f') goto yy1066;
+ if (yych == 'f') goto yy1087;
goto yy87;
-yy1042:
+yy1063:
yych = *++cursor_;
- if (yych == 'f') goto yy1067;
+ if (yych == 'f') goto yy1088;
goto yy87;
-yy1043:
+yy1064:
yych = *++cursor_;
- if (yych == 't') goto yy1068;
+ if (yych == 't') goto yy1089;
goto yy87;
-yy1044:
+yy1065:
yych = *++cursor_;
- if (yych == 'd') goto yy1069;
+ if (yych == 'd') goto yy1090;
goto yy87;
-yy1045:
+yy1066:
yych = *++cursor_;
- if (yych == 'm') goto yy1071;
+ if (yych == 'm') goto yy1092;
goto yy87;
-yy1046:
+yy1067:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy1047;
+ if (yych <= '"') goto yy1068;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy1072;
+ if (yych <= '_') goto yy1093;
if (yych <= '~') goto yy86;
}
}
-yy1047:
+yy1068:
#line 456 "src/wast-lexer.cc"
{ RETURN(ASSERT_RETURN); }
-#line 5712 "src/prebuilt/wast-lexer-gen.cc"
-yy1048:
+#line 5807 "src/prebuilt/wast-lexer-gen.cc"
+yy1069:
yych = *++cursor_;
- if (yych == 'a') goto yy1073;
+ if (yych == 'a') goto yy1094;
goto yy87;
-yy1049:
+yy1070:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 270 "src/wast-lexer.cc"
{ RETURN(CALL_INDIRECT); }
-#line 5724 "src/prebuilt/wast-lexer-gen.cc"
-yy1051:
+#line 5819 "src/prebuilt/wast-lexer-gen.cc"
+yy1072:
yych = *++cursor_;
- if (yych == 'y') goto yy1074;
+ if (yych == 'y') goto yy1095;
goto yy87;
-yy1052:
+yy1073:
yych = *++cursor_;
- if (yych == '/') goto yy1076;
+ if (yych == '/') goto yy1097;
goto yy87;
-yy1053:
+yy1074:
yych = *++cursor_;
- if (yych == '/') goto yy1077;
+ if (yych == '/') goto yy1098;
goto yy87;
-yy1054:
+yy1075:
yych = *++cursor_;
- if (yych == '4') goto yy1078;
+ if (yych == '4') goto yy1099;
goto yy87;
-yy1055:
+yy1076:
yych = *++cursor_;
- if (yych == 'e') goto yy1080;
+ if (yych == 'e') goto yy1101;
goto yy87;
-yy1056:
+yy1077:
yych = *++cursor_;
- if (yych == '/') goto yy1081;
+ if (yych == '/') goto yy1102;
goto yy87;
-yy1057:
+yy1078:
yych = *++cursor_;
- if (yych == '/') goto yy1082;
+ if (yych == '/') goto yy1103;
goto yy87;
-yy1058:
+yy1079:
yych = *++cursor_;
- if (yych == '3') goto yy1083;
+ if (yych == '3') goto yy1104;
goto yy87;
-yy1059:
+yy1080:
yych = *++cursor_;
- if (yych == 'e') goto yy1084;
+ if (yych == 'e') goto yy1105;
goto yy87;
-yy1060:
+yy1081:
yych = *++cursor_;
- if (yych == 'e') goto yy1085;
+ if (yych == 'e') goto yy1106;
goto yy87;
-yy1061:
+yy1082:
yych = *++cursor_;
- if (yych == '3') goto yy1086;
- if (yych == '6') goto yy1087;
+ if (yych == '3') goto yy1107;
+ if (yych == '6') goto yy1108;
goto yy87;
-yy1062:
+yy1083:
yych = *++cursor_;
- if (yych == '3') goto yy1088;
- if (yych == '6') goto yy1089;
+ if (yych == '3') goto yy1109;
+ if (yych == '6') goto yy1110;
goto yy87;
-yy1063:
+yy1084:
yych = *++cursor_;
- if (yych == 'i') goto yy1090;
+ if (yych == 'i') goto yy1111;
goto yy87;
-yy1064:
+yy1085:
yych = *++cursor_;
- if (yych == 'i') goto yy1091;
+ if (yych == 'i') goto yy1112;
goto yy87;
-yy1065:
+yy1086:
yych = *++cursor_;
- if (yych == 'e') goto yy1092;
+ if (yych == 'e') goto yy1113;
goto yy87;
-yy1066:
+yy1087:
yych = *++cursor_;
- if (yych == '3') goto yy1093;
- if (yych == '6') goto yy1094;
+ if (yych == '3') goto yy1114;
+ if (yych == '6') goto yy1115;
goto yy87;
-yy1067:
+yy1088:
yych = *++cursor_;
- if (yych == '3') goto yy1095;
- if (yych == '6') goto yy1096;
+ if (yych == '3') goto yy1116;
+ if (yych == '6') goto yy1117;
goto yy87;
-yy1068:
+yy1089:
yych = *++cursor_;
- if (yych == 'i') goto yy1097;
+ if (yych == 'i') goto yy1118;
goto yy87;
-yy1069:
+yy1090:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 454 "src/wast-lexer.cc"
{ RETURN(ASSERT_INVALID); }
-#line 5808 "src/prebuilt/wast-lexer-gen.cc"
-yy1071:
+#line 5903 "src/prebuilt/wast-lexer-gen.cc"
+yy1092:
yych = *++cursor_;
- if (yych == 'e') goto yy1098;
+ if (yych == 'e') goto yy1119;
goto yy87;
-yy1072:
+yy1093:
yych = *++cursor_;
- if (yych == 'a') goto yy1099;
- if (yych == 'c') goto yy1100;
+ if (yych == 'a') goto yy1120;
+ if (yych == 'c') goto yy1121;
goto yy87;
-yy1073:
+yy1094:
yych = *++cursor_;
- if (yych == 'b') goto yy1101;
+ if (yych == 'b') goto yy1122;
goto yy87;
-yy1074:
+yy1095:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 433 "src/wast-lexer.cc"
{ RETURN(CURRENT_MEMORY); }
-#line 5829 "src/prebuilt/wast-lexer-gen.cc"
-yy1076:
+#line 5924 "src/prebuilt/wast-lexer-gen.cc"
+yy1097:
yych = *++cursor_;
- if (yych == 'i') goto yy1102;
+ if (yych == 'i') goto yy1123;
goto yy87;
-yy1077:
+yy1098:
yych = *++cursor_;
- if (yych == 'i') goto yy1103;
+ if (yych == 'i') goto yy1124;
goto yy87;
-yy1078:
+yy1099:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 426 "src/wast-lexer.cc"
{ OPCODE(F32DemoteF64); RETURN(CONVERT); }
-#line 5845 "src/prebuilt/wast-lexer-gen.cc"
-yy1080:
+#line 5940 "src/prebuilt/wast-lexer-gen.cc"
+yy1101:
yych = *++cursor_;
- if (yych == 't') goto yy1104;
+ if (yych == 't') goto yy1125;
goto yy87;
-yy1081:
+yy1102:
yych = *++cursor_;
- if (yych == 'i') goto yy1105;
+ if (yych == 'i') goto yy1126;
goto yy87;
-yy1082:
+yy1103:
yych = *++cursor_;
- if (yych == 'i') goto yy1106;
+ if (yych == 'i') goto yy1127;
goto yy87;
-yy1083:
+yy1104:
yych = *++cursor_;
- if (yych == '2') goto yy1107;
+ if (yych == '2') goto yy1128;
goto yy87;
-yy1084:
+yy1105:
yych = *++cursor_;
- if (yych == 't') goto yy1109;
+ if (yych == 't') goto yy1130;
goto yy87;
-yy1085:
+yy1106:
yych = *++cursor_;
- if (yych == 't') goto yy1110;
+ if (yych == 't') goto yy1131;
goto yy87;
-yy1086:
+yy1107:
yych = *++cursor_;
- if (yych == '2') goto yy1111;
+ if (yych == '2') goto yy1132;
goto yy87;
-yy1087:
+yy1108:
yych = *++cursor_;
- if (yych == '4') goto yy1113;
+ if (yych == '4') goto yy1134;
goto yy87;
-yy1088:
+yy1109:
yych = *++cursor_;
- if (yych == '2') goto yy1115;
+ if (yych == '2') goto yy1136;
goto yy87;
-yy1089:
+yy1110:
yych = *++cursor_;
- if (yych == '4') goto yy1117;
+ if (yych == '4') goto yy1138;
goto yy87;
-yy1090:
+yy1111:
yych = *++cursor_;
- if (yych == '3') goto yy1119;
+ if (yych == '3') goto yy1140;
goto yy87;
-yy1091:
+yy1112:
yych = *++cursor_;
- if (yych == '3') goto yy1120;
+ if (yych == '3') goto yy1141;
goto yy87;
-yy1092:
+yy1113:
yych = *++cursor_;
- if (yych == 't') goto yy1121;
+ if (yych == 't') goto yy1142;
goto yy87;
-yy1093:
+yy1114:
yych = *++cursor_;
- if (yych == '2') goto yy1122;
+ if (yych == '2') goto yy1143;
goto yy87;
-yy1094:
+yy1115:
yych = *++cursor_;
- if (yych == '4') goto yy1124;
+ if (yych == '4') goto yy1145;
goto yy87;
-yy1095:
+yy1116:
yych = *++cursor_;
- if (yych == '2') goto yy1126;
+ if (yych == '2') goto yy1147;
goto yy87;
-yy1096:
+yy1117:
yych = *++cursor_;
- if (yych == '4') goto yy1128;
+ if (yych == '4') goto yy1149;
goto yy87;
-yy1097:
+yy1118:
yych = *++cursor_;
- if (yych == 'o') goto yy1130;
+ if (yych == 'o') goto yy1151;
goto yy87;
-yy1098:
+yy1119:
yych = *++cursor_;
- if (yych == 'd') goto yy1131;
+ if (yych == 'd') goto yy1152;
goto yy87;
-yy1099:
+yy1120:
yych = *++cursor_;
- if (yych == 'r') goto yy1133;
+ if (yych == 'r') goto yy1154;
goto yy87;
-yy1100:
+yy1121:
yych = *++cursor_;
- if (yych == 'a') goto yy1134;
+ if (yych == 'a') goto yy1155;
goto yy87;
-yy1101:
+yy1122:
yych = *++cursor_;
- if (yych == 'l') goto yy1135;
+ if (yych == 'l') goto yy1156;
goto yy87;
-yy1102:
+yy1123:
yych = *++cursor_;
- if (yych == '3') goto yy1136;
- if (yych == '6') goto yy1137;
+ if (yych == '3') goto yy1157;
+ if (yych == '6') goto yy1158;
goto yy87;
-yy1103:
+yy1124:
yych = *++cursor_;
- if (yych == '3') goto yy1138;
- if (yych == '6') goto yy1139;
+ if (yych == '3') goto yy1159;
+ if (yych == '6') goto yy1160;
goto yy87;
-yy1104:
+yy1125:
yych = *++cursor_;
- if (yych == '/') goto yy1140;
+ if (yych == '/') goto yy1161;
goto yy87;
-yy1105:
+yy1126:
yych = *++cursor_;
- if (yych == '3') goto yy1141;
- if (yych == '6') goto yy1142;
+ if (yych == '3') goto yy1162;
+ if (yych == '6') goto yy1163;
goto yy87;
-yy1106:
+yy1127:
yych = *++cursor_;
- if (yych == '3') goto yy1143;
- if (yych == '6') goto yy1144;
+ if (yych == '3') goto yy1164;
+ if (yych == '6') goto yy1165;
goto yy87;
-yy1107:
+yy1128:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 425 "src/wast-lexer.cc"
{ OPCODE(F64PromoteF32); RETURN(CONVERT); }
-#line 5965 "src/prebuilt/wast-lexer-gen.cc"
-yy1109:
+#line 6060 "src/prebuilt/wast-lexer-gen.cc"
+yy1130:
yych = *++cursor_;
- if (yych == '/') goto yy1145;
+ if (yych == '/') goto yy1166;
goto yy87;
-yy1110:
+yy1131:
yych = *++cursor_;
- if (yych == '/') goto yy1146;
+ if (yych == '/') goto yy1167;
goto yy87;
-yy1111:
+yy1132:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 409 "src/wast-lexer.cc"
{ OPCODE(I32TruncSF32); RETURN(CONVERT); }
-#line 5981 "src/prebuilt/wast-lexer-gen.cc"
-yy1113:
+#line 6076 "src/prebuilt/wast-lexer-gen.cc"
+yy1134:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 411 "src/wast-lexer.cc"
{ OPCODE(I32TruncSF64); RETURN(CONVERT); }
-#line 5989 "src/prebuilt/wast-lexer-gen.cc"
-yy1115:
+#line 6084 "src/prebuilt/wast-lexer-gen.cc"
+yy1136:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 413 "src/wast-lexer.cc"
{ OPCODE(I32TruncUF32); RETURN(CONVERT); }
-#line 5997 "src/prebuilt/wast-lexer-gen.cc"
-yy1117:
+#line 6092 "src/prebuilt/wast-lexer-gen.cc"
+yy1138:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 415 "src/wast-lexer.cc"
{ OPCODE(I32TruncUF64); RETURN(CONVERT); }
-#line 6005 "src/prebuilt/wast-lexer-gen.cc"
-yy1119:
+#line 6100 "src/prebuilt/wast-lexer-gen.cc"
+yy1140:
yych = *++cursor_;
- if (yych == '2') goto yy1147;
+ if (yych == '2') goto yy1168;
goto yy87;
-yy1120:
+yy1141:
yych = *++cursor_;
- if (yych == '2') goto yy1149;
+ if (yych == '2') goto yy1170;
goto yy87;
-yy1121:
+yy1142:
yych = *++cursor_;
- if (yych == '/') goto yy1151;
+ if (yych == '/') goto yy1172;
goto yy87;
-yy1122:
+yy1143:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 410 "src/wast-lexer.cc"
{ OPCODE(I64TruncSF32); RETURN(CONVERT); }
-#line 6025 "src/prebuilt/wast-lexer-gen.cc"
-yy1124:
+#line 6120 "src/prebuilt/wast-lexer-gen.cc"
+yy1145:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 412 "src/wast-lexer.cc"
{ OPCODE(I64TruncSF64); RETURN(CONVERT); }
-#line 6033 "src/prebuilt/wast-lexer-gen.cc"
-yy1126:
+#line 6128 "src/prebuilt/wast-lexer-gen.cc"
+yy1147:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 414 "src/wast-lexer.cc"
{ OPCODE(I64TruncUF32); RETURN(CONVERT); }
-#line 6041 "src/prebuilt/wast-lexer-gen.cc"
-yy1128:
+#line 6136 "src/prebuilt/wast-lexer-gen.cc"
+yy1149:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 416 "src/wast-lexer.cc"
{ OPCODE(I64TruncUF64); RETURN(CONVERT); }
-#line 6049 "src/prebuilt/wast-lexer-gen.cc"
-yy1130:
+#line 6144 "src/prebuilt/wast-lexer-gen.cc"
+yy1151:
yych = *++cursor_;
- if (yych == 'n') goto yy1152;
+ if (yych == 'n') goto yy1173;
goto yy87;
-yy1131:
+yy1152:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 453 "src/wast-lexer.cc"
{ RETURN(ASSERT_MALFORMED); }
-#line 6061 "src/prebuilt/wast-lexer-gen.cc"
-yy1133:
+#line 6156 "src/prebuilt/wast-lexer-gen.cc"
+yy1154:
yych = *++cursor_;
- if (yych == 'i') goto yy1154;
+ if (yych == 'i') goto yy1175;
goto yy87;
-yy1134:
+yy1155:
yych = *++cursor_;
- if (yych == 'n') goto yy1155;
+ if (yych == 'n') goto yy1176;
goto yy87;
-yy1135:
+yy1156:
yych = *++cursor_;
- if (yych == 'e') goto yy1156;
+ if (yych == 'e') goto yy1177;
goto yy87;
-yy1136:
+yy1157:
yych = *++cursor_;
- if (yych == '2') goto yy1158;
+ if (yych == '2') goto yy1179;
goto yy87;
-yy1137:
+yy1158:
yych = *++cursor_;
- if (yych == '4') goto yy1160;
+ if (yych == '4') goto yy1181;
goto yy87;
-yy1138:
+yy1159:
yych = *++cursor_;
- if (yych == '2') goto yy1162;
+ if (yych == '2') goto yy1183;
goto yy87;
-yy1139:
+yy1160:
yych = *++cursor_;
- if (yych == '4') goto yy1164;
+ if (yych == '4') goto yy1185;
goto yy87;
-yy1140:
+yy1161:
yych = *++cursor_;
- if (yych == 'i') goto yy1166;
+ if (yych == 'i') goto yy1187;
goto yy87;
-yy1141:
+yy1162:
yych = *++cursor_;
- if (yych == '2') goto yy1167;
+ if (yych == '2') goto yy1188;
goto yy87;
-yy1142:
+yy1163:
yych = *++cursor_;
- if (yych == '4') goto yy1169;
+ if (yych == '4') goto yy1190;
goto yy87;
-yy1143:
+yy1164:
yych = *++cursor_;
- if (yych == '2') goto yy1171;
+ if (yych == '2') goto yy1192;
goto yy87;
-yy1144:
+yy1165:
yych = *++cursor_;
- if (yych == '4') goto yy1173;
+ if (yych == '4') goto yy1194;
goto yy87;
-yy1145:
+yy1166:
yych = *++cursor_;
- if (yych == 'i') goto yy1175;
+ if (yych == 'i') goto yy1196;
goto yy87;
-yy1146:
+yy1167:
yych = *++cursor_;
- if (yych == 'f') goto yy1176;
+ if (yych == 'f') goto yy1197;
goto yy87;
-yy1147:
+yy1168:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 406 "src/wast-lexer.cc"
{ OPCODE(I64ExtendSI32); RETURN(CONVERT); }
-#line 6125 "src/prebuilt/wast-lexer-gen.cc"
-yy1149:
+#line 6220 "src/prebuilt/wast-lexer-gen.cc"
+yy1170:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 407 "src/wast-lexer.cc"
{ OPCODE(I64ExtendUI32); RETURN(CONVERT); }
-#line 6133 "src/prebuilt/wast-lexer-gen.cc"
-yy1151:
+#line 6228 "src/prebuilt/wast-lexer-gen.cc"
+yy1172:
yych = *++cursor_;
- if (yych == 'f') goto yy1177;
+ if (yych == 'f') goto yy1198;
goto yy87;
-yy1152:
+yy1173:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 462 "src/wast-lexer.cc"
{ RETURN(ASSERT_EXHAUSTION); }
-#line 6145 "src/prebuilt/wast-lexer-gen.cc"
-yy1154:
+#line 6240 "src/prebuilt/wast-lexer-gen.cc"
+yy1175:
yych = *++cursor_;
- if (yych == 't') goto yy1178;
+ if (yych == 't') goto yy1199;
goto yy87;
-yy1155:
+yy1176:
yych = *++cursor_;
- if (yych == 'o') goto yy1179;
+ if (yych == 'o') goto yy1200;
goto yy87;
-yy1156:
+yy1177:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 455 "src/wast-lexer.cc"
{ RETURN(ASSERT_UNLINKABLE); }
-#line 6161 "src/prebuilt/wast-lexer-gen.cc"
-yy1158:
+#line 6256 "src/prebuilt/wast-lexer-gen.cc"
+yy1179:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 417 "src/wast-lexer.cc"
{ OPCODE(F32ConvertSI32); RETURN(CONVERT); }
-#line 6169 "src/prebuilt/wast-lexer-gen.cc"
-yy1160:
+#line 6264 "src/prebuilt/wast-lexer-gen.cc"
+yy1181:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 419 "src/wast-lexer.cc"
{ OPCODE(F32ConvertSI64); RETURN(CONVERT); }
-#line 6177 "src/prebuilt/wast-lexer-gen.cc"
-yy1162:
+#line 6272 "src/prebuilt/wast-lexer-gen.cc"
+yy1183:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 421 "src/wast-lexer.cc"
{ OPCODE(F32ConvertUI32); RETURN(CONVERT); }
-#line 6185 "src/prebuilt/wast-lexer-gen.cc"
-yy1164:
+#line 6280 "src/prebuilt/wast-lexer-gen.cc"
+yy1185:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 423 "src/wast-lexer.cc"
{ OPCODE(F32ConvertUI64); RETURN(CONVERT); }
-#line 6193 "src/prebuilt/wast-lexer-gen.cc"
-yy1166:
+#line 6288 "src/prebuilt/wast-lexer-gen.cc"
+yy1187:
yych = *++cursor_;
- if (yych == '3') goto yy1180;
+ if (yych == '3') goto yy1201;
goto yy87;
-yy1167:
+yy1188:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 418 "src/wast-lexer.cc"
{ OPCODE(F64ConvertSI32); RETURN(CONVERT); }
-#line 6205 "src/prebuilt/wast-lexer-gen.cc"
-yy1169:
+#line 6300 "src/prebuilt/wast-lexer-gen.cc"
+yy1190:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 420 "src/wast-lexer.cc"
{ OPCODE(F64ConvertSI64); RETURN(CONVERT); }
-#line 6213 "src/prebuilt/wast-lexer-gen.cc"
-yy1171:
+#line 6308 "src/prebuilt/wast-lexer-gen.cc"
+yy1192:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 422 "src/wast-lexer.cc"
{ OPCODE(F64ConvertUI32); RETURN(CONVERT); }
-#line 6221 "src/prebuilt/wast-lexer-gen.cc"
-yy1173:
+#line 6316 "src/prebuilt/wast-lexer-gen.cc"
+yy1194:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 424 "src/wast-lexer.cc"
{ OPCODE(F64ConvertUI64); RETURN(CONVERT); }
-#line 6229 "src/prebuilt/wast-lexer-gen.cc"
-yy1175:
+#line 6324 "src/prebuilt/wast-lexer-gen.cc"
+yy1196:
yych = *++cursor_;
- if (yych == '6') goto yy1181;
+ if (yych == '6') goto yy1202;
goto yy87;
-yy1176:
+yy1197:
yych = *++cursor_;
- if (yych == '3') goto yy1182;
+ if (yych == '3') goto yy1203;
goto yy87;
-yy1177:
+yy1198:
yych = *++cursor_;
- if (yych == '6') goto yy1183;
+ if (yych == '6') goto yy1204;
goto yy87;
-yy1178:
+yy1199:
yych = *++cursor_;
- if (yych == 'h') goto yy1184;
+ if (yych == 'h') goto yy1205;
goto yy87;
-yy1179:
+yy1200:
yych = *++cursor_;
- if (yych == 'n') goto yy1185;
+ if (yych == 'n') goto yy1206;
goto yy87;
-yy1180:
+yy1201:
yych = *++cursor_;
- if (yych == '2') goto yy1186;
+ if (yych == '2') goto yy1207;
goto yy87;
-yy1181:
+yy1202:
yych = *++cursor_;
- if (yych == '4') goto yy1188;
+ if (yych == '4') goto yy1209;
goto yy87;
-yy1182:
+yy1203:
yych = *++cursor_;
- if (yych == '2') goto yy1190;
+ if (yych == '2') goto yy1211;
goto yy87;
-yy1183:
+yy1204:
yych = *++cursor_;
- if (yych == '4') goto yy1192;
+ if (yych == '4') goto yy1213;
goto yy87;
-yy1184:
+yy1205:
yych = *++cursor_;
- if (yych == 'm') goto yy1194;
+ if (yych == 'm') goto yy1215;
goto yy87;
-yy1185:
+yy1206:
yych = *++cursor_;
- if (yych == 'i') goto yy1195;
+ if (yych == 'i') goto yy1216;
goto yy87;
-yy1186:
+yy1207:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 427 "src/wast-lexer.cc"
{ OPCODE(F32ReinterpretI32); RETURN(CONVERT); }
-#line 6281 "src/prebuilt/wast-lexer-gen.cc"
-yy1188:
+#line 6376 "src/prebuilt/wast-lexer-gen.cc"
+yy1209:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 429 "src/wast-lexer.cc"
{ OPCODE(F64ReinterpretI64); RETURN(CONVERT); }
-#line 6289 "src/prebuilt/wast-lexer-gen.cc"
-yy1190:
+#line 6384 "src/prebuilt/wast-lexer-gen.cc"
+yy1211:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 428 "src/wast-lexer.cc"
{ OPCODE(I32ReinterpretF32); RETURN(CONVERT); }
-#line 6297 "src/prebuilt/wast-lexer-gen.cc"
-yy1192:
+#line 6392 "src/prebuilt/wast-lexer-gen.cc"
+yy1213:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
#line 430 "src/wast-lexer.cc"
{ OPCODE(I64ReinterpretF64); RETURN(CONVERT); }
-#line 6305 "src/prebuilt/wast-lexer-gen.cc"
-yy1194:
+#line 6400 "src/prebuilt/wast-lexer-gen.cc"
+yy1215:
yych = *++cursor_;
- if (yych == 'e') goto yy1196;
+ if (yych == 'e') goto yy1217;
goto yy87;
-yy1195:
+yy1216:
yych = *++cursor_;
- if (yych == 'c') goto yy1197;
+ if (yych == 'c') goto yy1218;
goto yy87;
-yy1196:
+yy1217:
yych = *++cursor_;
- if (yych == 't') goto yy1198;
+ if (yych == 't') goto yy1219;
goto yy87;
-yy1197:
+yy1218:
yych = *++cursor_;
- if (yych == 'a') goto yy1199;
+ if (yych == 'a') goto yy1220;
goto yy87;
-yy1198:
+yy1219:
yych = *++cursor_;
- if (yych == 'i') goto yy1200;
+ if (yych == 'i') goto yy1221;
goto yy87;
-yy1199:
+yy1220:
yych = *++cursor_;
- if (yych == 'l') goto yy1201;
+ if (yych == 'l') goto yy1222;
goto yy87;
-yy1200:
+yy1221:
yych = *++cursor_;
- if (yych == 'c') goto yy1202;
+ if (yych == 'c') goto yy1223;
goto yy87;
-yy1201:
+yy1222:
yych = *++cursor_;
- if (yych == '_') goto yy1203;
+ if (yych == '_') goto yy1224;
goto yy87;
-yy1202:
+yy1223:
yych = *++cursor_;
- if (yych == '_') goto yy1204;
+ if (yych == '_') goto yy1225;
goto yy87;
-yy1203:
+yy1224:
yych = *++cursor_;
- if (yych == 'n') goto yy1205;
+ if (yych == 'n') goto yy1226;
goto yy87;
-yy1204:
+yy1225:
yych = *++cursor_;
- if (yych == 'n') goto yy1206;
+ if (yych == 'n') goto yy1227;
goto yy87;
-yy1205:
+yy1226:
yych = *++cursor_;
- if (yych == 'a') goto yy1207;
+ if (yych == 'a') goto yy1228;
goto yy87;
-yy1206:
+yy1227:
yych = *++cursor_;
- if (yych == 'a') goto yy1208;
+ if (yych == 'a') goto yy1229;
goto yy87;
-yy1207:
+yy1228:
yych = *++cursor_;
- if (yych == 'n') goto yy1209;
+ if (yych == 'n') goto yy1230;
goto yy87;
-yy1208:
+yy1229:
yych = *++cursor_;
- if (yych == 'n') goto yy1211;
+ if (yych == 'n') goto yy1232;
goto yy87;
-yy1209:
+yy1230:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
@@ -6370,8 +6465,8 @@ yy1209:
#line 457 "src/wast-lexer.cc"
{
RETURN(ASSERT_RETURN_CANONICAL_NAN); }
-#line 6374 "src/prebuilt/wast-lexer-gen.cc"
-yy1211:
+#line 6469 "src/prebuilt/wast-lexer-gen.cc"
+yy1232:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
@@ -6379,10 +6474,10 @@ yy1211:
#line 459 "src/wast-lexer.cc"
{
RETURN(ASSERT_RETURN_ARITHMETIC_NAN); }
-#line 6383 "src/prebuilt/wast-lexer-gen.cc"
+#line 6478 "src/prebuilt/wast-lexer-gen.cc"
}
}
-#line 483 "src/wast-lexer.cc"
+#line 488 "src/wast-lexer.cc"
}
}
diff --git a/src/prebuilt/wast-parser-gen.cc b/src/prebuilt/wast-parser-gen.cc
index 1c48e33a..e447ae48 100644
--- a/src/prebuilt/wast-parser-gen.cc
+++ b/src/prebuilt/wast-parser-gen.cc
@@ -86,6 +86,8 @@
#include "wast-parser.h"
#include "wast-parser-lexer-shared.h"
+#define YYDEBUG 1
+
#define RELOCATE_STACK(type, array, stack_base, old_size, new_size) \
do { \
type* new_stack = new type[new_size](); \
@@ -150,6 +152,14 @@
} \
} 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); \
+ } \
+ } while (0)
+
#define YYMALLOC(size) new char [size]
#define YYFREE(p) delete [] (p)
@@ -159,6 +169,7 @@ namespace wabt {
static ExprList join_exprs1(Location* loc, Expr* expr1);
static ExprList join_exprs2(Location* loc, ExprList* expr1, Expr* expr2);
+static ExprList join_expr_lists(ExprList* expr1, ExprList* expr2);
static Result parse_const(Type type,
LiteralType literal_type,
@@ -195,7 +206,7 @@ class BinaryErrorHandlerModule : public BinaryErrorHandler {
#define wabt_wast_parser_error wast_parser_error
-#line 199 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:339 */
+#line 210 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:339 */
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
@@ -260,54 +271,59 @@ extern int wabt_wast_parser_debug;
WABT_TOKEN_TYPE_BR = 276,
WABT_TOKEN_TYPE_BR_IF = 277,
WABT_TOKEN_TYPE_BR_TABLE = 278,
- WABT_TOKEN_TYPE_CALL = 279,
- WABT_TOKEN_TYPE_CALL_INDIRECT = 280,
- WABT_TOKEN_TYPE_RETURN = 281,
- WABT_TOKEN_TYPE_GET_LOCAL = 282,
- WABT_TOKEN_TYPE_SET_LOCAL = 283,
- WABT_TOKEN_TYPE_TEE_LOCAL = 284,
- WABT_TOKEN_TYPE_GET_GLOBAL = 285,
- WABT_TOKEN_TYPE_SET_GLOBAL = 286,
- WABT_TOKEN_TYPE_LOAD = 287,
- WABT_TOKEN_TYPE_STORE = 288,
- WABT_TOKEN_TYPE_OFFSET_EQ_NAT = 289,
- WABT_TOKEN_TYPE_ALIGN_EQ_NAT = 290,
- WABT_TOKEN_TYPE_CONST = 291,
- WABT_TOKEN_TYPE_UNARY = 292,
- WABT_TOKEN_TYPE_BINARY = 293,
- WABT_TOKEN_TYPE_COMPARE = 294,
- WABT_TOKEN_TYPE_CONVERT = 295,
- WABT_TOKEN_TYPE_SELECT = 296,
- WABT_TOKEN_TYPE_UNREACHABLE = 297,
- WABT_TOKEN_TYPE_CURRENT_MEMORY = 298,
- WABT_TOKEN_TYPE_GROW_MEMORY = 299,
- WABT_TOKEN_TYPE_FUNC = 300,
- WABT_TOKEN_TYPE_START = 301,
- WABT_TOKEN_TYPE_TYPE = 302,
- WABT_TOKEN_TYPE_PARAM = 303,
- WABT_TOKEN_TYPE_RESULT = 304,
- WABT_TOKEN_TYPE_LOCAL = 305,
- WABT_TOKEN_TYPE_GLOBAL = 306,
- WABT_TOKEN_TYPE_MODULE = 307,
- WABT_TOKEN_TYPE_TABLE = 308,
- WABT_TOKEN_TYPE_ELEM = 309,
- WABT_TOKEN_TYPE_MEMORY = 310,
- WABT_TOKEN_TYPE_DATA = 311,
- WABT_TOKEN_TYPE_OFFSET = 312,
- WABT_TOKEN_TYPE_IMPORT = 313,
- WABT_TOKEN_TYPE_EXPORT = 314,
- WABT_TOKEN_TYPE_REGISTER = 315,
- WABT_TOKEN_TYPE_INVOKE = 316,
- WABT_TOKEN_TYPE_GET = 317,
- WABT_TOKEN_TYPE_ASSERT_MALFORMED = 318,
- WABT_TOKEN_TYPE_ASSERT_INVALID = 319,
- WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 320,
- WABT_TOKEN_TYPE_ASSERT_RETURN = 321,
- WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 322,
- WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 323,
- WABT_TOKEN_TYPE_ASSERT_TRAP = 324,
- WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 325,
- WABT_TOKEN_TYPE_LOW = 326
+ WABT_TOKEN_TYPE_TRY = 279,
+ WABT_TOKEN_TYPE_CATCH = 280,
+ WABT_TOKEN_TYPE_CATCH_ALL = 281,
+ WABT_TOKEN_TYPE_THROW = 282,
+ WABT_TOKEN_TYPE_RETHROW = 283,
+ WABT_TOKEN_TYPE_CALL = 284,
+ WABT_TOKEN_TYPE_CALL_INDIRECT = 285,
+ WABT_TOKEN_TYPE_RETURN = 286,
+ WABT_TOKEN_TYPE_GET_LOCAL = 287,
+ WABT_TOKEN_TYPE_SET_LOCAL = 288,
+ WABT_TOKEN_TYPE_TEE_LOCAL = 289,
+ WABT_TOKEN_TYPE_GET_GLOBAL = 290,
+ WABT_TOKEN_TYPE_SET_GLOBAL = 291,
+ WABT_TOKEN_TYPE_LOAD = 292,
+ WABT_TOKEN_TYPE_STORE = 293,
+ WABT_TOKEN_TYPE_OFFSET_EQ_NAT = 294,
+ WABT_TOKEN_TYPE_ALIGN_EQ_NAT = 295,
+ WABT_TOKEN_TYPE_CONST = 296,
+ WABT_TOKEN_TYPE_UNARY = 297,
+ WABT_TOKEN_TYPE_BINARY = 298,
+ WABT_TOKEN_TYPE_COMPARE = 299,
+ WABT_TOKEN_TYPE_CONVERT = 300,
+ WABT_TOKEN_TYPE_SELECT = 301,
+ WABT_TOKEN_TYPE_UNREACHABLE = 302,
+ WABT_TOKEN_TYPE_CURRENT_MEMORY = 303,
+ WABT_TOKEN_TYPE_GROW_MEMORY = 304,
+ WABT_TOKEN_TYPE_FUNC = 305,
+ WABT_TOKEN_TYPE_START = 306,
+ WABT_TOKEN_TYPE_TYPE = 307,
+ WABT_TOKEN_TYPE_PARAM = 308,
+ WABT_TOKEN_TYPE_RESULT = 309,
+ WABT_TOKEN_TYPE_LOCAL = 310,
+ WABT_TOKEN_TYPE_GLOBAL = 311,
+ WABT_TOKEN_TYPE_MODULE = 312,
+ WABT_TOKEN_TYPE_TABLE = 313,
+ WABT_TOKEN_TYPE_ELEM = 314,
+ WABT_TOKEN_TYPE_MEMORY = 315,
+ WABT_TOKEN_TYPE_DATA = 316,
+ WABT_TOKEN_TYPE_OFFSET = 317,
+ WABT_TOKEN_TYPE_IMPORT = 318,
+ WABT_TOKEN_TYPE_EXPORT = 319,
+ WABT_TOKEN_TYPE_REGISTER = 320,
+ WABT_TOKEN_TYPE_INVOKE = 321,
+ WABT_TOKEN_TYPE_GET = 322,
+ WABT_TOKEN_TYPE_ASSERT_MALFORMED = 323,
+ WABT_TOKEN_TYPE_ASSERT_INVALID = 324,
+ WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 325,
+ WABT_TOKEN_TYPE_ASSERT_RETURN = 326,
+ WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 327,
+ WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 328,
+ WABT_TOKEN_TYPE_ASSERT_TRAP = 329,
+ WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 330,
+ WABT_TOKEN_TYPE_LOW = 331
};
#endif
@@ -340,7 +356,7 @@ int wabt_wast_parser_parse (::wabt::WastLexer* lexer, ::wabt::WastParser* parser
/* Copy the second part of user declarations. */
-#line 344 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:358 */
+#line 360 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:358 */
#ifdef short
# undef short
@@ -584,21 +600,21 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 49
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 823
+#define YYLAST 886
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 72
+#define YYNTOKENS 77
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 74
+#define YYNNTS 80
/* YYNRULES -- Number of rules. */
-#define YYNRULES 190
+#define YYNRULES 203
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 419
+#define YYNSTATES 451
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 326
+#define YYMAXUTOK 331
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -639,33 +655,35 @@ static const yytype_uint8 yytranslate[] =
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71
+ 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76
};
#if WABT_WAST_PARSER_DEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 241, 241, 247, 257, 258, 262, 280, 281, 287,
- 290, 295, 302, 305, 306, 311, 318, 326, 332, 338,
- 343, 350, 356, 367, 371, 375, 382, 387, 394, 395,
- 401, 402, 405, 409, 410, 414, 415, 425, 426, 437,
- 438, 439, 442, 445, 448, 451, 454, 457, 460, 463,
- 466, 469, 472, 475, 478, 481, 484, 487, 490, 493,
- 506, 509, 512, 515, 518, 521, 526, 531, 536, 541,
- 549, 552, 557, 564, 568, 571, 576, 581, 589, 597,
- 600, 604, 608, 612, 616, 620, 627, 628, 636, 637,
- 645, 650, 664, 671, 676, 686, 694, 705, 712, 713,
- 718, 724, 734, 741, 742, 747, 753, 763, 770, 774,
- 779, 791, 794, 798, 807, 821, 835, 841, 849, 857,
- 876, 885, 899, 913, 918, 926, 934, 957, 971, 977,
- 985, 998, 1006, 1014, 1020, 1026, 1035, 1045, 1053, 1058,
- 1063, 1068, 1075, 1084, 1094, 1101, 1112, 1120, 1121, 1122,
- 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1133, 1134, 1138,
- 1143, 1151, 1171, 1182, 1202, 1209, 1214, 1222, 1232, 1242,
- 1248, 1254, 1260, 1266, 1272, 1277, 1282, 1288, 1297, 1302,
- 1303, 1308, 1317, 1321, 1328, 1340, 1341, 1348, 1351, 1411,
- 1423
+ 0, 254, 254, 260, 270, 271, 275, 293, 294, 300,
+ 303, 308, 315, 318, 319, 324, 331, 339, 345, 351,
+ 356, 363, 369, 380, 384, 388, 395, 400, 407, 408,
+ 414, 415, 418, 422, 423, 427, 428, 438, 439, 450,
+ 451, 452, 456, 459, 462, 465, 468, 471, 474, 477,
+ 480, 483, 486, 489, 492, 495, 498, 501, 504, 507,
+ 520, 523, 526, 529, 532, 535, 538, 541, 547, 552,
+ 557, 562, 568, 576, 579, 584, 591, 595, 602, 603,
+ 609, 613, 616, 621, 626, 632, 640, 643, 649, 657,
+ 660, 664, 668, 672, 676, 680, 687, 692, 698, 704,
+ 705, 713, 714, 722, 727, 741, 748, 753, 763, 771,
+ 782, 789, 790, 795, 801, 811, 818, 819, 824, 830,
+ 840, 847, 851, 856, 868, 871, 875, 884, 898, 912,
+ 918, 926, 934, 953, 962, 976, 990, 995, 1003, 1011,
+ 1034, 1048, 1054, 1062, 1075, 1083, 1091, 1097, 1103, 1112,
+ 1122, 1130, 1135, 1140, 1145, 1152, 1161, 1171, 1178, 1189,
+ 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206,
+ 1210, 1211, 1215, 1220, 1228, 1248, 1259, 1279, 1286, 1291,
+ 1299, 1309, 1319, 1325, 1331, 1337, 1343, 1349, 1354, 1359,
+ 1365, 1374, 1379, 1380, 1385, 1394, 1398, 1405, 1417, 1418,
+ 1425, 1428, 1488, 1500
};
#endif
@@ -677,27 +695,29 @@ static const char *const yytname[] =
"\"EOF\"", "error", "$undefined", "\"(\"", "\")\"", "NAT", "INT",
"FLOAT", "TEXT", "VAR", "VALUE_TYPE", "ANYFUNC", "MUT", "NOP", "DROP",
"BLOCK", "END", "IF", "THEN", "ELSE", "LOOP", "BR", "BR_IF", "BR_TABLE",
- "CALL", "CALL_INDIRECT", "RETURN", "GET_LOCAL", "SET_LOCAL", "TEE_LOCAL",
- "GET_GLOBAL", "SET_GLOBAL", "LOAD", "STORE", "OFFSET_EQ_NAT",
- "ALIGN_EQ_NAT", "CONST", "UNARY", "BINARY", "COMPARE", "CONVERT",
- "SELECT", "UNREACHABLE", "CURRENT_MEMORY", "GROW_MEMORY", "FUNC",
- "START", "TYPE", "PARAM", "RESULT", "LOCAL", "GLOBAL", "MODULE", "TABLE",
- "ELEM", "MEMORY", "DATA", "OFFSET", "IMPORT", "EXPORT", "REGISTER",
- "INVOKE", "GET", "ASSERT_MALFORMED", "ASSERT_INVALID",
- "ASSERT_UNLINKABLE", "ASSERT_RETURN", "ASSERT_RETURN_CANONICAL_NAN",
+ "TRY", "CATCH", "CATCH_ALL", "THROW", "RETHROW", "CALL", "CALL_INDIRECT",
+ "RETURN", "GET_LOCAL", "SET_LOCAL", "TEE_LOCAL", "GET_GLOBAL",
+ "SET_GLOBAL", "LOAD", "STORE", "OFFSET_EQ_NAT", "ALIGN_EQ_NAT", "CONST",
+ "UNARY", "BINARY", "COMPARE", "CONVERT", "SELECT", "UNREACHABLE",
+ "CURRENT_MEMORY", "GROW_MEMORY", "FUNC", "START", "TYPE", "PARAM",
+ "RESULT", "LOCAL", "GLOBAL", "MODULE", "TABLE", "ELEM", "MEMORY", "DATA",
+ "OFFSET", "IMPORT", "EXPORT", "REGISTER", "INVOKE", "GET",
+ "ASSERT_MALFORMED", "ASSERT_INVALID", "ASSERT_UNLINKABLE",
+ "ASSERT_RETURN", "ASSERT_RETURN_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",
"table_sig", "memory_sig", "limits", "type_use", "nat", "literal", "var",
"var_list", "bind_var_opt", "bind_var", "labeling_opt", "offset_opt",
"align_opt", "instr", "plain_instr", "block_instr", "block_sig", "block",
- "expr", "expr1", "if_block", "if_", "instr_list", "expr_list",
- "const_expr", "func", "func_fields", "func_fields_import",
- "func_fields_import1", "func_fields_body", "func_fields_body1",
- "func_body", "func_body1", "offset", "elem", "table", "table_fields",
- "data", "memory", "memory_fields", "global", "global_fields",
- "import_desc", "import", "inline_import", "export_desc", "export",
- "inline_export", "type_def", "start", "module_field",
+ "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", "func_fields_body",
+ "func_fields_body1", "func_body", "func_body1", "offset", "elem",
+ "table", "table_fields", "data", "memory", "memory_fields", "global",
+ "global_fields", "import_desc", "import", "inline_import", "export_desc",
+ "export", "inline_export", "type_def", "start", "module_field",
"module_fields_opt", "module_fields", "raw_module", "module",
"inline_module", "script_var_opt", "action", "assertion", "cmd",
"cmd_list", "const", "const_list", "script", "script_start", YY_NULLPTR
@@ -716,14 +736,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
+ 325, 326, 327, 328, 329, 330, 331
};
# endif
-#define YYPACT_NINF -339
+#define YYPACT_NINF -379
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-339)))
+ (!!((Yystate) == (-379)))
#define YYTABLE_NINF -30
@@ -734,48 +754,52 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 43, 753, -339, -339, -339, -339, -339, -339, -339, -339,
- -339, -339, -339, 122, -339, -339, -339, -339, -339, -339,
- 140, -339, 153, 152, 232, 67, 152, 152, 152, 157,
- 152, 157, 159, 159, 159, 160, 160, 184, 184, 184,
- 226, 226, 226, 237, 226, 148, -339, 34, -339, -339,
- -339, 422, -339, -339, -339, -339, 215, 193, 249, 242,
- 56, 197, 66, 377, 265, -339, -339, 241, 265, 262,
- -339, 159, 268, 160, -339, 159, 159, 221, 159, 159,
- 159, 17, -339, 270, 271, 6, 159, 159, 159, 337,
- -339, -339, 152, 152, 152, 232, 232, -339, 232, 232,
- -339, 232, 232, 232, 232, 232, 244, 244, 84, -339,
- -339, -339, -339, -339, -339, -339, -339, 454, 486, -339,
- -339, -339, -339, 275, -339, -339, -339, -339, 277, 422,
- -339, 278, -339, 281, 25, -339, 486, 282, 120, 56,
- -339, 235, 283, 122, 55, -339, 279, -339, 280, 284,
- 286, 284, 66, 152, 152, 152, 486, 289, 290, -339,
- 130, 68, -339, -339, 291, 284, 241, 262, 285, 292,
- 294, 103, 297, 304, -339, 305, 306, 309, 311, 206,
- -339, -339, 312, 317, 319, 232, 152, -339, 152, 159,
- 159, -339, 518, 518, 518, -339, -339, 232, -339, -339,
- -339, -339, -339, -339, -339, -339, 263, 263, -339, -339,
- -339, -339, 582, -339, 752, -339, -339, 149, 321, -339,
- -339, -339, 210, 322, -339, 315, -339, -339, -339, 316,
- -339, -339, -339, -339, -339, 273, -339, -339, -339, -339,
- -339, 518, 326, 518, 327, 289, -339, -339, 175, -339,
- -339, 262, -339, -339, -339, 328, -339, 104, 329, 232,
- 232, 232, 232, -339, -339, 261, -339, -339, -339, -339,
- 298, -339, -339, -339, -339, -339, 331, 102, 320, 161,
- 164, 330, 159, 332, 687, 518, 323, -339, 238, 325,
- 246, -339, -339, -339, 152, -339, 218, -339, -339, -339,
- -339, 333, -339, -339, 654, 326, 335, -339, -339, -339,
- -339, -339, -339, 338, -339, 152, 152, 152, 152, -339,
- 339, 340, 341, 349, -339, 84, -339, 454, -339, 351,
- 550, 550, 352, 367, -339, -339, -339, 152, 152, 152,
- 152, 166, 362, 168, 204, 208, -339, 219, 486, -339,
- 720, 289, -339, 379, 120, 284, 284, -339, -339, -339,
- -339, 384, -339, 454, 620, -339, -339, 550, -339, 216,
- -339, -339, 486, -339, 321, 385, -339, 380, -339, -339,
- 389, 486, -339, 214, 407, 408, 418, 419, 420, -339,
- -339, -339, -339, 410, -339, 321, 378, 425, 426, -339,
- -339, -339, -339, -339, 152, -339, -339, 412, 429, -339,
- 217, 486, 414, -339, 434, 486, -339, 436, -339
+ 65, 811, -379, -379, -379, -379, -379, -379, -379, -379,
+ -379, -379, -379, 89, -379, -379, -379, -379, -379, -379,
+ 103, -379, 109, 108, 173, 124, 108, 108, 108, 163,
+ 108, 163, 120, 120, 120, 158, 158, 189, 189, 189,
+ 226, 226, 226, 232, 226, 157, -379, 131, -379, -379,
+ -379, 430, -379, -379, -379, -379, 234, 193, 241, 249,
+ 87, 88, 90, 393, 253, -379, -379, 282, 253, 257,
+ -379, 120, 276, 158, -379, 120, 120, 229, 120, 120,
+ 120, -18, -379, 286, 295, -4, 120, 120, 120, 348,
+ -379, -379, 108, 108, 108, 173, 173, -379, -379, -379,
+ -379, 173, 173, -379, 173, 173, 173, 173, 173, 261,
+ 261, 205, -379, -379, -379, -379, -379, -379, -379, -379,
+ 467, 504, -379, -379, -379, 173, 173, 108, -379, 297,
+ -379, -379, -379, -379, 299, 430, -379, 300, -379, 302,
+ 11, -379, 504, 303, 102, 87, -379, 186, 304, 89,
+ 73, -379, 301, -379, 305, 306, 308, 306, 90, 108,
+ 108, 108, 504, 307, 309, 311, -379, 42, 203, -379,
+ -379, 314, 306, 282, 257, 312, 315, 318, -22, 321,
+ 325, -379, 326, 330, 333, 336, 143, -379, -379, 342,
+ 343, 344, 173, 108, -379, 108, 120, 120, -379, 541,
+ 541, 541, -379, -379, 173, -379, -379, -379, -379, -379,
+ -379, -379, -379, 275, 275, -379, -379, -379, -379, 615,
+ -379, 810, -379, -379, -379, 541, -379, 230, 319, -379,
+ -379, -379, 101, 345, -379, 340, -379, -379, -379, 339,
+ -379, -379, -379, -379, -379, 293, -379, -379, -379, -379,
+ -379, 541, 350, 541, 351, 307, -379, -379, 341, 227,
+ -379, -379, 257, -379, -379, -379, 360, -379, 82, 362,
+ 173, 173, 173, 173, -379, -379, 266, -379, -379, -379,
+ -379, 313, -379, -379, -379, -379, -379, 363, 147, 364,
+ 166, 169, 377, 120, 369, 735, 541, 372, -379, 146,
+ 382, 237, -379, -379, -379, 270, 108, -379, 244, -379,
+ -379, -379, -379, 395, -379, -379, 697, 350, 401, -379,
+ -379, -379, -379, -379, 108, -379, 405, -379, 108, 108,
+ 108, 108, -379, 414, 415, 428, 442, -379, 205, -379,
+ 467, -379, 444, 578, 578, 445, 452, -379, -379, -379,
+ 108, 108, 108, 108, 173, 173, 270, 389, 170, 459,
+ 179, 181, 183, -379, 250, 504, -379, 773, 307, 541,
+ -379, 480, 102, 306, 306, -379, -379, -379, -379, 481,
+ -379, 467, 658, -379, -379, 578, -379, 215, -379, -379,
+ 504, -379, 504, 504, -379, 108, 319, 482, -379, 489,
+ -379, -379, 502, 504, -379, 516, 240, 518, 519, 525,
+ 526, 539, -379, -379, -379, -379, 477, -379, -379, -379,
+ -379, 319, 503, 556, 562, 557, -379, -379, -379, -379,
+ -379, 108, -379, -379, 548, 577, 270, -379, -379, 223,
+ 504, 575, 592, -379, 593, 504, 557, -379, 599, -379,
+ -379
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -783,74 +807,78 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 187, 0, 151, 152, 149, 153, 150, 148, 155, 156,
- 147, 154, 159, 164, 163, 180, 189, 178, 179, 182,
- 188, 190, 0, 30, 0, 0, 30, 30, 30, 0,
- 30, 0, 0, 0, 0, 165, 165, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 160, 0, 183, 1,
- 32, 86, 31, 22, 27, 26, 0, 0, 0, 0,
- 0, 157, 0, 0, 0, 112, 28, 0, 0, 4,
- 6, 0, 0, 165, 166, 0, 0, 0, 0, 0,
- 0, 0, 185, 0, 0, 0, 0, 0, 0, 0,
- 43, 44, 33, 33, 33, 0, 0, 28, 0, 0,
- 49, 0, 0, 0, 0, 0, 35, 35, 0, 60,
- 61, 62, 63, 45, 42, 64, 65, 86, 86, 39,
- 40, 41, 108, 0, 93, 102, 103, 107, 98, 86,
- 146, 13, 144, 0, 0, 10, 86, 0, 0, 0,
- 2, 0, 0, 158, 0, 9, 0, 116, 0, 19,
- 0, 0, 0, 33, 33, 33, 86, 88, 0, 28,
- 0, 0, 123, 18, 0, 0, 0, 4, 5, 0,
- 0, 0, 0, 0, 185, 0, 0, 0, 0, 0,
- 174, 175, 0, 0, 0, 0, 7, 7, 7, 0,
- 0, 34, 86, 86, 86, 46, 47, 0, 50, 51,
- 52, 53, 54, 55, 56, 36, 37, 37, 23, 24,
- 25, 59, 0, 92, 0, 87, 91, 0, 98, 95,
- 97, 96, 0, 0, 145, 0, 90, 128, 127, 0,
- 129, 130, 162, 3, 161, 0, 17, 20, 115, 117,
- 118, 86, 0, 86, 0, 88, 74, 73, 0, 114,
- 29, 4, 122, 124, 125, 0, 121, 0, 0, 0,
- 0, 0, 0, 142, 181, 0, 168, 169, 170, 171,
- 0, 173, 186, 172, 176, 177, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 86, 0, 72, 0, 0,
- 48, 38, 57, 58, 7, 7, 0, 94, 7, 7,
- 12, 0, 28, 75, 0, 0, 0, 77, 79, 76,
- 111, 89, 113, 0, 120, 30, 30, 30, 30, 136,
- 0, 0, 0, 0, 167, 0, 21, 86, 8, 0,
- 86, 86, 0, 0, 143, 7, 71, 33, 33, 33,
- 33, 0, 0, 0, 0, 0, 11, 0, 86, 78,
- 0, 85, 126, 13, 0, 0, 0, 138, 141, 139,
- 140, 0, 105, 86, 0, 104, 109, 86, 137, 0,
- 66, 68, 86, 67, 98, 0, 99, 14, 16, 119,
- 0, 86, 84, 0, 0, 0, 0, 0, 0, 184,
- 106, 110, 70, 0, 100, 98, 0, 81, 0, 132,
- 131, 135, 133, 134, 33, 101, 7, 0, 83, 69,
- 0, 86, 0, 15, 0, 86, 80, 0, 82
+ 200, 0, 164, 165, 162, 166, 163, 161, 168, 169,
+ 160, 167, 172, 177, 176, 193, 202, 191, 192, 195,
+ 201, 203, 0, 30, 0, 0, 30, 30, 30, 0,
+ 30, 0, 0, 0, 0, 178, 178, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 173, 0, 196, 1,
+ 32, 99, 31, 22, 27, 26, 0, 0, 0, 0,
+ 0, 170, 0, 0, 0, 125, 28, 0, 0, 4,
+ 6, 0, 0, 178, 179, 0, 0, 0, 0, 0,
+ 0, 0, 198, 0, 0, 0, 0, 0, 0, 0,
+ 43, 44, 33, 33, 33, 0, 0, 28, 98, 97,
+ 96, 0, 0, 49, 0, 0, 0, 0, 0, 35,
+ 35, 0, 60, 61, 62, 63, 45, 42, 64, 65,
+ 99, 99, 39, 40, 41, 0, 0, 33, 121, 0,
+ 106, 115, 116, 120, 111, 99, 159, 13, 157, 0,
+ 0, 10, 99, 0, 0, 0, 2, 0, 0, 171,
+ 0, 9, 0, 129, 0, 19, 0, 0, 0, 33,
+ 33, 33, 99, 101, 0, 0, 28, 0, 0, 136,
+ 18, 0, 0, 0, 4, 5, 0, 0, 0, 0,
+ 0, 198, 0, 0, 0, 0, 0, 187, 188, 0,
+ 0, 0, 0, 7, 7, 7, 0, 0, 34, 99,
+ 99, 99, 46, 47, 0, 50, 51, 52, 53, 54,
+ 55, 56, 36, 37, 37, 23, 24, 25, 59, 0,
+ 105, 0, 100, 67, 66, 99, 104, 0, 111, 108,
+ 110, 109, 0, 0, 158, 0, 103, 141, 140, 0,
+ 142, 143, 175, 3, 174, 0, 17, 20, 128, 130,
+ 131, 99, 0, 99, 0, 101, 81, 80, 0, 0,
+ 127, 29, 4, 135, 137, 138, 0, 134, 0, 0,
+ 0, 0, 0, 0, 155, 194, 0, 181, 182, 183,
+ 184, 0, 186, 199, 185, 189, 190, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 99, 0, 75, 0,
+ 0, 48, 38, 57, 58, 0, 7, 7, 0, 107,
+ 7, 7, 12, 0, 28, 82, 0, 0, 0, 84,
+ 89, 83, 124, 102, 33, 126, 0, 133, 30, 30,
+ 30, 30, 149, 0, 0, 0, 0, 180, 0, 21,
+ 99, 8, 0, 99, 99, 0, 0, 156, 7, 74,
+ 33, 33, 33, 33, 0, 0, 78, 0, 0, 0,
+ 0, 0, 0, 11, 0, 99, 88, 0, 95, 99,
+ 139, 13, 0, 0, 0, 151, 154, 152, 153, 0,
+ 118, 99, 0, 117, 122, 99, 150, 0, 68, 70,
+ 99, 69, 99, 99, 79, 33, 111, 0, 112, 14,
+ 16, 132, 0, 99, 94, 0, 0, 0, 0, 0,
+ 0, 0, 197, 119, 123, 73, 0, 76, 77, 72,
+ 113, 111, 0, 91, 0, 0, 145, 144, 148, 146,
+ 147, 33, 114, 7, 0, 93, 0, 85, 71, 0,
+ 99, 0, 0, 15, 0, 99, 86, 90, 0, 87,
+ 92
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -339, 368, -136, -26, -154, 293, -129, 397, 117, -138,
- -145, -56, -123, -44, 147, 87, -87, 2, -11, -90,
- 366, 295, -339, -62, -339, -220, -168, -29, -339, 183,
- -339, -112, 259, 364, -339, 376, 318, -338, 417, -289,
- 207, -280, 24, -339, -339, 400, -339, -339, 402, -339,
- 427, -339, -339, -20, -339, -339, -19, -339, -339, 8,
- -339, 508, 99, -339, -339, 20, 191, -339, 564, -339,
- -339, 411, -339, -339
+ -379, 543, -158, 43, -162, 463, -131, 559, 260, -143,
+ -160, -57, -127, -47, 296, -23, -86, 14, 29, -90,
+ 523, 426, -379, -58, -379, -231, -101, 218, 285, -29,
+ -379, 209, 349, -379, -379, -379, -44, -112, 410, 505,
+ -379, 542, 446, -378, 563, -315, 354, -318, 30, -379,
+ -379, 540, -379, -379, 511, -379, 531, -379, -379, -38,
+ -379, -379, -2, -379, -379, 4, -379, 647, 121, -379,
+ -379, -9, 233, -379, 689, -379, -379, 535, -379, -379
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 168, 169, 71, 277, 146, 136, 58, 223, 147,
- 162, 148, 117, 55, 211, 250, 160, 51, 191, 192,
- 206, 292, 118, 119, 120, 285, 286, 121, 158, 307,
- 308, 122, 246, 227, 2, 123, 219, 220, 124, 125,
- 126, 127, 66, 3, 4, 150, 5, 6, 164, 7,
- 137, 258, 8, 128, 172, 9, 129, 10, 11, 12,
- 142, 13, 14, 15, 16, 75, 17, 18, 19, 20,
- 272, 179, 21, 22
+ -1, 175, 176, 71, 288, 152, 142, 58, 233, 153,
+ 169, 154, 120, 55, 218, 261, 167, 51, 198, 199,
+ 213, 303, 121, 122, 123, 296, 297, 356, 357, 124,
+ 164, 437, 319, 320, 125, 126, 127, 128, 256, 237,
+ 2, 129, 229, 230, 130, 131, 132, 133, 66, 3,
+ 4, 156, 5, 6, 171, 7, 143, 269, 8, 134,
+ 179, 9, 135, 10, 11, 12, 148, 13, 14, 15,
+ 16, 75, 17, 18, 19, 20, 283, 186, 21, 22
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -858,249 +886,266 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 65, 157, 65, 193, 194, 218, 215, 72, 73, 230,
- 197, 163, 52, 239, 59, 52, 52, 52, 149, 52,
- 253, 46, 305, 149, 226, 288, 289, 157, 60, 61,
- 62, 255, 67, 279, 280, 65, 394, 225, 362, 65,
- 138, 139, 151, 152, 226, 170, 1, 165, 166, 174,
- 175, 366, 176, 177, 178, 69, 76, 405, 27, 134,
- 182, 183, 184, 241, 242, 243, 135, 35, 36, 144,
- 57, 53, 248, 303, 390, 309, 50, 145, 35, 36,
- 287, 287, 287, 189, 190, 305, 27, 391, 159, 208,
- 209, 210, 167, 173, 34, 35, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 237, 327, 149, 149, 163,
- 163, 56, 328, 189, 190, 313, 64, 336, 68, 138,
- 139, 149, 149, 229, 251, 45, 189, 190, 245, 287,
- 135, 287, 151, 152, 249, 53, 78, 79, 80, 54,
- 341, 343, 86, 47, 344, 345, 165, 166, 259, 315,
- 157, 46, 157, 49, 260, 316, 261, 317, 262, 318,
- 63, 50, 53, 282, 283, 330, 54, 70, 331, 74,
- 374, 328, 376, 287, 328, 278, 328, 281, 328, 312,
- 53, 369, 195, 196, 54, 198, 199, 77, 200, 201,
- 202, 203, 204, 23, 24, 25, 185, 294, 295, 26,
- 45, 28, 29, 30, 31, 140, 32, 33, 377, 270,
- 271, 388, 378, 306, 328, 347, 245, 387, 328, 130,
- 392, 413, 157, 379, 53, 386, 328, 328, 54, 81,
- 385, 82, 83, 84, 87, 88, 380, 53, 131, 232,
- 85, 54, 157, 233, 161, 57, 53, 370, 371, 372,
- 373, -29, 410, 132, 338, -29, 333, 339, 298, 299,
- 393, 185, 298, 299, 270, 324, 294, 295, 63, 398,
- 140, 171, 276, 27, 180, 181, 306, 351, 205, 216,
- 217, 222, 235, 342, 290, 224, 228, 234, 157, 53,
- 238, 145, 214, 233, 247, 252, 256, 257, 291, 414,
- 163, 263, 157, 417, 52, 52, 52, 52, 264, 266,
- 267, 149, 149, 268, 409, 269, 273, 353, 354, 355,
- 356, 274, 382, 275, 296, 301, 300, 302, 225, 304,
- 329, 310, 314, 319, 325, 326, 334, 346, 350, 337,
- 332, 340, 352, 357, 358, 359, 320, 321, 322, 323,
- 90, 91, 153, 360, 154, 363, 367, 155, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 368, 375, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 383, 396, 185, 186, 187, 188, 389, 395,
- 90, 91, 153, 397, 154, 189, 190, 155, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 399, 400, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 401, 402, 403, 89, 404, 406, 407, 141,
- 408, 411, 412, 415, 156, 90, 91, 92, 416, 93,
- 418, 236, 94, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 133, 212, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 90, 91, 92,
- 384, 93, 361, 207, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 349, 214,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 90,
- 91, 92, 293, 93, 311, 221, 94, 95, 96, 97,
- 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 244, 284, 108, 109, 110, 111, 112, 113, 114, 115,
- 116, 90, 91, 92, 213, 93, 297, 365, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 240, 364, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 90, 91, 92, 231, 93, 254, 143,
- 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 48, 265, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 90, 91, 153, 0, 154,
- 0, 0, 155, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 0, 0, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 0, 0, 0,
- 186, 187, 188, 90, 91, 153, 0, 154, 0, 0,
- 155, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 0, 0, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 0, 0, 90, 91, 153,
- 188, 154, 348, 0, 155, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 0, 0,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 0,
- 90, 91, 153, 335, 154, 0, 0, 155, 95, 96,
- 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
- 107, 0, 0, 108, 109, 110, 111, 112, 113, 114,
- 115, 116, 0, 90, 91, 153, 335, 154, 381, 0,
- 155, 95, 96, 97, 98, 99, 100, 101, 102, 103,
- 104, 105, 106, 107, 0, 0, 108, 109, 110, 111,
- 112, 113, 114, 115, 116, 90, 91, 153, 0, 154,
- 0, 0, 155, 95, 96, 97, 98, 99, 100, 101,
- 102, 103, 104, 105, 106, 107, 0, 0, 108, 109,
- 110, 111, 112, 113, 114, 115, 116, 0, 23, 24,
- 25, 0, 0, 0, 26, 27, 28, 29, 30, 31,
- 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
- 41, 42, 43, 44
+ 65, 56, 65, 200, 201, 163, 64, 228, 68, 222,
+ 170, 204, 264, 240, 249, 155, 266, 46, 420, 165,
+ 155, 317, 144, 235, 157, 380, 384, 76, 270, 172,
+ 236, 163, 290, 291, 271, 65, 272, 225, 273, 65,
+ 60, 61, 62, 432, 67, 165, 260, 53, 35, 36,
+ 236, 54, 52, 27, 59, 52, 52, 52, 145, 52,
+ 158, 69, 35, 36, 180, 173, 413, 414, 1, 251,
+ 252, 253, 202, 203, 196, 197, 72, 73, 205, 206,
+ 259, 207, 208, 209, 210, 211, 317, 298, 298, 298,
+ 140, 45, 45, 150, 166, 53, 146, 141, 174, 299,
+ 300, 151, 223, 224, 326, 239, 47, 144, 247, 49,
+ 155, 155, 141, 298, 177, 170, 170, 50, 181, 182,
+ 157, 183, 184, 185, 305, 155, 155, 57, 70, 189,
+ 190, 191, 328, 50, 255, 172, 196, 197, 329, 298,
+ 330, 298, 331, 145, 358, 360, 281, 282, 361, 362,
+ 315, 340, 321, 46, 310, 311, 158, 341, 78, 79,
+ 80, 163, 351, 163, 86, 352, 63, 74, 53, 287,
+ 343, 173, 54, 344, 396, 165, 341, 165, 53, 341,
+ 341, 301, 54, 398, 298, 399, 387, 400, 27, 341,
+ 242, 341, 77, 341, 243, 349, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 23, 24, 25,
+ 215, 216, 217, 26, 411, 28, 29, 30, 31, 415,
+ 32, 33, 289, 318, 292, 341, 255, 443, 364, 81,
+ 410, 325, 53, 341, 369, 85, 54, 163, 136, 293,
+ 294, 409, -29, 137, 408, 138, -29, 333, 334, 335,
+ 336, 165, 57, 402, 401, 53, 63, 298, 163, 54,
+ 388, 389, 390, 391, 262, 146, 196, 197, 405, 281,
+ 337, 439, 165, 82, 83, 84, 87, 88, 416, 178,
+ 417, 418, 192, 306, 307, 168, 27, 53, 318, 368,
+ 187, 424, 192, 310, 311, 354, 355, 306, 307, 188,
+ 212, 226, 227, 232, 245, 419, 234, 238, 244, 163,
+ 221, 53, 248, 257, 258, 302, 151, 170, 263, 267,
+ 243, 268, 308, 165, 163, 274, 155, 155, 444, 275,
+ 277, 392, 393, 448, 278, 359, 346, 279, 165, 404,
+ 280, 438, 371, 372, 373, 374, 284, 285, 286, 312,
+ 313, 235, 314, 316, 338, 322, 324, 52, 52, 52,
+ 52, 90, 91, 159, 327, 160, 332, 339, 161, 95,
+ 96, 97, 98, 347, 342, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 345, 350, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 353, 363,
+ 192, 193, 194, 195, 367, 395, 90, 91, 159, 370,
+ 160, 196, 197, 161, 95, 96, 97, 98, 375, 376,
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
+ 109, 110, 377, 89, 111, 112, 113, 114, 115, 116,
+ 117, 118, 119, 90, 91, 92, 378, 93, 381, 385,
+ 94, 95, 96, 97, 98, 162, 386, 99, 100, 101,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 397,
+ 219, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 90, 91, 92, 406, 93, 412, 421, 94, 95, 96,
+ 97, 98, 422, 431, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 423, 221, 111, 112,
+ 113, 114, 115, 116, 117, 118, 119, 90, 91, 92,
+ 425, 93, 426, 427, 94, 95, 96, 97, 98, 428,
+ 429, 99, 100, 101, 102, 103, 104, 105, 106, 107,
+ 108, 109, 110, 430, 295, 111, 112, 113, 114, 115,
+ 116, 117, 118, 119, 90, 91, 92, 433, 93, 434,
+ 436, 94, 95, 96, 97, 98, 435, 440, 99, 100,
+ 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
+ 441, 382, 111, 112, 113, 114, 115, 116, 117, 118,
+ 119, 90, 91, 92, 445, 93, 446, 447, 94, 95,
+ 96, 97, 98, 450, 147, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 246, 139, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 90, 91,
+ 159, 407, 160, 214, 379, 161, 95, 96, 97, 98,
+ 304, 394, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110, 442, 449, 111, 112, 113, 114,
+ 115, 116, 117, 118, 119, 323, 366, 254, 193, 194,
+ 195, 90, 91, 159, 309, 160, 241, 231, 161, 95,
+ 96, 97, 98, 220, 265, 99, 100, 101, 102, 103,
+ 104, 105, 106, 107, 108, 109, 110, 383, 250, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 149, 48,
+ 90, 91, 159, 195, 160, 365, 276, 161, 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,
+ 159, 348, 160, 0, 0, 161, 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, 159, 348,
+ 160, 403, 0, 161, 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, 159, 0, 160, 0, 0,
+ 161, 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, 31, 0, 32, 33, 34, 35, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44
};
static const yytype_int16 yycheck[] =
{
- 29, 63, 31, 93, 94, 128, 118, 33, 34, 138,
- 97, 67, 23, 151, 25, 26, 27, 28, 62, 30,
- 165, 13, 242, 67, 136, 193, 194, 89, 26, 27,
- 28, 167, 30, 187, 188, 64, 374, 12, 327, 68,
- 60, 60, 62, 62, 156, 71, 3, 67, 67, 75,
- 76, 331, 78, 79, 80, 31, 36, 395, 52, 3,
- 86, 87, 88, 153, 154, 155, 10, 61, 62, 3,
- 3, 5, 159, 241, 363, 243, 9, 11, 61, 62,
- 192, 193, 194, 58, 59, 305, 52, 367, 64, 5,
- 6, 7, 68, 73, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 149, 4, 151, 152, 165,
- 166, 24, 10, 58, 59, 251, 29, 285, 31, 139,
- 139, 165, 166, 3, 56, 3, 58, 59, 157, 241,
- 10, 243, 152, 152, 4, 5, 37, 38, 39, 9,
- 294, 295, 43, 3, 298, 299, 166, 166, 45, 45,
- 212, 143, 214, 0, 51, 51, 53, 53, 55, 55,
- 3, 9, 5, 189, 190, 4, 9, 8, 4, 9,
- 4, 10, 4, 285, 10, 186, 10, 188, 10, 4,
- 5, 335, 95, 96, 9, 98, 99, 3, 101, 102,
- 103, 104, 105, 45, 46, 47, 47, 48, 49, 51,
- 3, 53, 54, 55, 56, 8, 58, 59, 4, 3,
- 4, 356, 4, 242, 10, 302, 245, 355, 10, 4,
- 4, 4, 284, 4, 5, 354, 10, 10, 9, 3,
- 353, 40, 41, 42, 43, 44, 348, 5, 45, 4,
- 3, 9, 304, 8, 3, 3, 5, 337, 338, 339,
- 340, 5, 406, 4, 16, 9, 282, 19, 48, 49,
- 372, 47, 48, 49, 3, 4, 48, 49, 3, 381,
- 8, 3, 185, 52, 4, 4, 305, 306, 34, 4,
- 3, 3, 3, 294, 197, 4, 4, 4, 350, 5,
- 4, 11, 3, 8, 4, 4, 4, 3, 35, 411,
- 356, 4, 364, 415, 315, 316, 317, 318, 4, 4,
- 4, 355, 356, 4, 404, 4, 4, 315, 316, 317,
- 318, 4, 351, 4, 3, 10, 4, 54, 12, 3,
- 10, 4, 4, 4, 36, 4, 4, 4, 3, 16,
- 10, 16, 4, 4, 4, 4, 259, 260, 261, 262,
- 13, 14, 15, 4, 17, 4, 4, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 4, 10, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 3, 3, 47, 48, 49, 50, 4, 4,
- 13, 14, 15, 4, 17, 58, 59, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, 4, 4, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, 4, 4, 4, 3, 16, 49, 3, 61,
- 4, 19, 3, 19, 57, 13, 14, 15, 4, 17,
- 4, 148, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 59, 3, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 13, 14, 15,
- 353, 17, 325, 107, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 305, 3,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 13,
- 14, 15, 207, 17, 245, 129, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 156, 3, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 13, 14, 15, 117, 17, 218, 330, 20, 21,
- 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
- 32, 33, 152, 3, 36, 37, 38, 39, 40, 41,
- 42, 43, 44, 13, 14, 15, 139, 17, 166, 61,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, 20, 174, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 13, 14, 15, -1, 17,
- -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, -1, -1, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, -1, -1, -1,
- 48, 49, 50, 13, 14, 15, -1, 17, -1, -1,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, -1, -1, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, -1, -1, 13, 14, 15,
- 50, 17, 18, -1, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, -1, -1,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, -1,
- 13, 14, 15, 49, 17, -1, -1, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
- 33, -1, -1, 36, 37, 38, 39, 40, 41, 42,
- 43, 44, -1, 13, 14, 15, 49, 17, 18, -1,
- 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
- 30, 31, 32, 33, -1, -1, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 13, 14, 15, -1, 17,
- -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, -1, -1, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, -1, 45, 46,
- 47, -1, -1, -1, 51, 52, 53, 54, 55, 56,
- -1, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 69, 70
+ 29, 24, 31, 93, 94, 63, 29, 134, 31, 121,
+ 67, 97, 172, 144, 157, 62, 174, 13, 396, 63,
+ 67, 252, 60, 12, 62, 340, 344, 36, 50, 67,
+ 142, 89, 194, 195, 56, 64, 58, 127, 60, 68,
+ 26, 27, 28, 421, 30, 89, 4, 5, 66, 67,
+ 162, 9, 23, 57, 25, 26, 27, 28, 60, 30,
+ 62, 31, 66, 67, 73, 67, 381, 385, 3, 159,
+ 160, 161, 95, 96, 63, 64, 33, 34, 101, 102,
+ 166, 104, 105, 106, 107, 108, 317, 199, 200, 201,
+ 3, 3, 3, 3, 64, 5, 8, 10, 68, 200,
+ 201, 11, 125, 126, 262, 3, 3, 145, 155, 0,
+ 157, 158, 10, 225, 71, 172, 173, 9, 75, 76,
+ 158, 78, 79, 80, 225, 172, 173, 3, 8, 86,
+ 87, 88, 50, 9, 163, 173, 63, 64, 56, 251,
+ 58, 253, 60, 145, 306, 307, 3, 4, 310, 311,
+ 251, 4, 253, 149, 53, 54, 158, 10, 37, 38,
+ 39, 219, 16, 221, 43, 19, 3, 9, 5, 192,
+ 4, 173, 9, 4, 4, 219, 10, 221, 5, 10,
+ 10, 204, 9, 4, 296, 4, 348, 4, 57, 10,
+ 4, 10, 3, 10, 8, 296, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75, 50, 51, 52,
+ 5, 6, 7, 56, 374, 58, 59, 60, 61, 4,
+ 63, 64, 193, 252, 195, 10, 255, 4, 314, 3,
+ 373, 4, 5, 10, 324, 3, 9, 295, 4, 196,
+ 197, 372, 5, 50, 371, 4, 9, 270, 271, 272,
+ 273, 295, 3, 365, 4, 5, 3, 369, 316, 9,
+ 350, 351, 352, 353, 61, 8, 63, 64, 369, 3,
+ 4, 433, 316, 40, 41, 42, 43, 44, 390, 3,
+ 392, 393, 52, 53, 54, 3, 57, 5, 317, 318,
+ 4, 403, 52, 53, 54, 25, 26, 53, 54, 4,
+ 39, 4, 3, 3, 3, 395, 4, 4, 4, 367,
+ 3, 5, 4, 4, 3, 40, 11, 374, 4, 4,
+ 8, 3, 3, 367, 382, 4, 373, 374, 440, 4,
+ 4, 354, 355, 445, 4, 306, 293, 4, 382, 368,
+ 4, 431, 328, 329, 330, 331, 4, 4, 4, 4,
+ 10, 12, 59, 3, 41, 4, 15, 328, 329, 330,
+ 331, 13, 14, 15, 4, 17, 4, 4, 20, 21,
+ 22, 23, 24, 4, 10, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 10, 16, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 16, 4,
+ 52, 53, 54, 55, 3, 16, 13, 14, 15, 4,
+ 17, 63, 64, 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, 62, 4, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 10,
+ 3, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 13, 14, 15, 3, 17, 4, 4, 20, 21, 22,
+ 23, 24, 3, 16, 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,
+ 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, 54, 17, 3,
+ 3, 20, 21, 22, 23, 24, 4, 19, 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, 61, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 154, 59, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 13, 14,
+ 15, 371, 17, 110, 338, 20, 21, 22, 23, 24,
+ 214, 356, 27, 28, 29, 30, 31, 32, 33, 34,
+ 35, 36, 37, 38, 436, 446, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 255, 317, 162, 53, 54,
+ 55, 13, 14, 15, 228, 17, 145, 135, 20, 21,
+ 22, 23, 24, 120, 173, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 37, 38, 343, 158, 41,
+ 42, 43, 44, 45, 46, 47, 48, 49, 61, 20,
+ 13, 14, 15, 55, 17, 18, 181, 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, 13, 14,
+ 15, 54, 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, 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, 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, 61, -1, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 72, 73, 74, 75
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 3, 106, 115, 116, 118, 119, 121, 124, 127,
- 129, 130, 131, 133, 134, 135, 136, 138, 139, 140,
- 141, 144, 145, 45, 46, 47, 51, 52, 53, 54,
- 55, 56, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 3, 131, 3, 140, 0,
- 9, 89, 90, 5, 9, 85, 87, 3, 79, 90,
- 89, 89, 89, 3, 87, 99, 114, 89, 87, 114,
- 8, 75, 75, 75, 9, 137, 137, 3, 134, 134,
- 134, 3, 138, 138, 138, 3, 134, 138, 138, 3,
- 13, 14, 15, 17, 20, 21, 22, 23, 24, 25,
- 26, 27, 28, 29, 30, 31, 32, 33, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 84, 94, 95,
- 96, 99, 103, 107, 110, 111, 112, 113, 125, 128,
- 4, 45, 4, 79, 3, 10, 78, 122, 125, 128,
- 8, 73, 132, 133, 3, 11, 77, 81, 83, 85,
- 117, 125, 128, 15, 17, 20, 57, 95, 100, 114,
- 88, 3, 82, 83, 120, 125, 128, 114, 73, 74,
- 75, 3, 126, 137, 75, 75, 75, 75, 75, 143,
- 4, 4, 75, 75, 75, 47, 48, 49, 50, 58,
- 59, 90, 91, 91, 91, 87, 87, 88, 87, 87,
- 87, 87, 87, 87, 87, 34, 92, 92, 5, 6,
- 7, 86, 3, 110, 3, 103, 4, 3, 84, 108,
- 109, 107, 3, 80, 4, 12, 103, 105, 4, 3,
- 78, 122, 4, 8, 4, 3, 77, 85, 4, 81,
- 117, 91, 91, 91, 105, 99, 104, 4, 88, 4,
- 87, 56, 4, 82, 120, 74, 4, 3, 123, 45,
- 51, 53, 55, 4, 4, 143, 4, 4, 4, 4,
- 3, 4, 142, 4, 4, 4, 87, 76, 90, 76,
- 76, 90, 75, 75, 3, 97, 98, 103, 98, 98,
- 87, 35, 93, 93, 48, 49, 3, 108, 48, 49,
- 4, 10, 54, 98, 3, 97, 99, 101, 102, 98,
- 4, 104, 4, 74, 4, 45, 51, 53, 55, 4,
- 87, 87, 87, 87, 4, 36, 4, 4, 10, 10,
- 4, 4, 10, 75, 4, 49, 98, 16, 16, 19,
- 16, 76, 90, 76, 76, 76, 4, 88, 18, 101,
- 3, 99, 4, 89, 89, 89, 89, 4, 4, 4,
- 4, 86, 111, 4, 3, 112, 113, 4, 4, 76,
- 91, 91, 91, 91, 4, 10, 4, 4, 4, 4,
- 103, 18, 99, 3, 80, 84, 78, 81, 82, 4,
- 111, 113, 4, 103, 109, 4, 3, 4, 103, 4,
- 4, 4, 4, 4, 16, 109, 49, 3, 4, 91,
- 76, 19, 3, 4, 103, 19, 4, 103, 4
+ 0, 3, 117, 126, 127, 129, 130, 132, 135, 138,
+ 140, 141, 142, 144, 145, 146, 147, 149, 150, 151,
+ 152, 155, 156, 50, 51, 52, 56, 57, 58, 59,
+ 60, 61, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 72, 73, 74, 75, 3, 142, 3, 151, 0,
+ 9, 94, 95, 5, 9, 90, 92, 3, 84, 95,
+ 94, 94, 94, 3, 92, 106, 125, 94, 92, 125,
+ 8, 80, 80, 80, 9, 148, 148, 3, 145, 145,
+ 145, 3, 149, 149, 149, 3, 145, 149, 149, 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,
+ 89, 99, 100, 101, 106, 111, 112, 113, 114, 118,
+ 121, 122, 123, 124, 136, 139, 4, 50, 4, 84,
+ 3, 10, 83, 133, 136, 139, 8, 78, 143, 144,
+ 3, 11, 82, 86, 88, 90, 128, 136, 139, 15,
+ 17, 20, 62, 100, 107, 113, 125, 93, 3, 87,
+ 88, 131, 136, 139, 125, 78, 79, 80, 3, 137,
+ 148, 80, 80, 80, 80, 80, 154, 4, 4, 80,
+ 80, 80, 52, 53, 54, 55, 63, 64, 95, 96,
+ 96, 96, 92, 92, 93, 92, 92, 92, 92, 92,
+ 92, 92, 39, 97, 97, 5, 6, 7, 91, 3,
+ 121, 3, 114, 92, 92, 96, 4, 3, 89, 119,
+ 120, 118, 3, 85, 4, 12, 114, 116, 4, 3,
+ 83, 133, 4, 8, 4, 3, 82, 90, 4, 86,
+ 128, 96, 96, 96, 116, 106, 115, 4, 3, 93,
+ 4, 92, 61, 4, 87, 131, 79, 4, 3, 134,
+ 50, 56, 58, 60, 4, 4, 154, 4, 4, 4,
+ 4, 3, 4, 153, 4, 4, 4, 92, 81, 95,
+ 81, 81, 95, 80, 80, 3, 102, 103, 114, 103,
+ 103, 92, 40, 98, 98, 103, 53, 54, 3, 119,
+ 53, 54, 4, 10, 59, 103, 3, 102, 106, 109,
+ 110, 103, 4, 115, 15, 4, 79, 4, 50, 56,
+ 58, 60, 4, 92, 92, 92, 92, 4, 41, 4,
+ 4, 10, 10, 4, 4, 10, 80, 4, 54, 103,
+ 16, 16, 19, 16, 25, 26, 104, 105, 81, 95,
+ 81, 81, 81, 4, 93, 18, 109, 3, 106, 96,
+ 4, 94, 94, 94, 94, 4, 4, 4, 4, 91,
+ 122, 4, 3, 123, 124, 4, 4, 81, 96, 96,
+ 96, 96, 92, 92, 105, 16, 4, 10, 4, 4,
+ 4, 4, 114, 18, 106, 103, 3, 85, 89, 83,
+ 86, 87, 4, 122, 124, 4, 114, 114, 114, 96,
+ 120, 4, 3, 4, 114, 4, 4, 4, 4, 4,
+ 4, 16, 120, 54, 3, 4, 3, 108, 96, 81,
+ 19, 3, 104, 4, 114, 19, 4, 4, 114, 108,
+ 4
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 72, 73, 73, 74, 74, 75, 76, 76, 77,
- 78, 78, 79, 80, 80, 80, 80, 81, 82, 83,
- 83, 84, 85, 86, 86, 86, 87, 87, 88, 88,
- 89, 89, 90, 91, 91, 92, 92, 93, 93, 94,
- 94, 94, 95, 95, 95, 95, 95, 95, 95, 95,
- 95, 95, 95, 95, 95, 95, 95, 95, 95, 95,
- 95, 95, 95, 95, 95, 95, 96, 96, 96, 96,
- 97, 98, 98, 99, 100, 100, 100, 100, 101, 101,
- 102, 102, 102, 102, 102, 102, 103, 103, 104, 104,
- 105, 106, 107, 107, 107, 107, 107, 108, 109, 109,
- 109, 109, 110, 111, 111, 111, 111, 112, 113, 113,
- 113, 114, 114, 115, 115, 116, 117, 117, 117, 117,
- 118, 118, 119, 120, 120, 120, 120, 121, 122, 122,
- 122, 123, 123, 123, 123, 123, 124, 125, 126, 126,
- 126, 126, 127, 128, 129, 129, 130, 131, 131, 131,
- 131, 131, 131, 131, 131, 131, 131, 132, 132, 133,
- 133, 134, 134, 135, 136, 137, 137, 138, 138, 139,
- 139, 139, 139, 139, 139, 139, 139, 139, 140, 140,
- 140, 140, 141, 141, 142, 143, 143, 144, 144, 144,
- 145
+ 0, 77, 78, 78, 79, 79, 80, 81, 81, 82,
+ 83, 83, 84, 85, 85, 85, 85, 86, 87, 88,
+ 88, 89, 90, 91, 91, 91, 92, 92, 93, 93,
+ 94, 94, 95, 96, 96, 97, 97, 98, 98, 99,
+ 99, 99, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 101, 101,
+ 101, 101, 101, 102, 103, 103, 104, 104, 105, 105,
+ 106, 107, 107, 107, 107, 107, 108, 108, 109, 109,
+ 110, 110, 110, 110, 110, 110, 111, 112, 113, 114,
+ 114, 115, 115, 116, 117, 118, 118, 118, 118, 118,
+ 119, 120, 120, 120, 120, 121, 122, 122, 122, 122,
+ 123, 124, 124, 124, 125, 125, 126, 126, 127, 128,
+ 128, 128, 128, 129, 129, 130, 131, 131, 131, 131,
+ 132, 133, 133, 133, 134, 134, 134, 134, 134, 135,
+ 136, 137, 137, 137, 137, 138, 139, 140, 140, 141,
+ 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
+ 143, 143, 144, 144, 145, 145, 146, 147, 148, 148,
+ 149, 149, 150, 150, 150, 150, 150, 150, 150, 150,
+ 150, 151, 151, 151, 151, 152, 152, 153, 154, 154,
+ 155, 155, 155, 156
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1112,20 +1157,21 @@ static const yytype_uint8 yyr2[] =
0, 1, 1, 0, 1, 0, 1, 0, 1, 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, 5, 5, 5, 8,
- 4, 2, 1, 3, 2, 3, 3, 3, 2, 1,
- 8, 4, 9, 5, 3, 2, 0, 2, 0, 2,
- 1, 5, 2, 1, 3, 2, 2, 1, 0, 4,
- 5, 6, 1, 1, 5, 5, 6, 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, 5, 5, 1, 1, 0, 1, 6, 5, 5,
- 5, 5, 5, 5, 4, 4, 5, 5, 1, 1,
- 1, 5, 1, 2, 4, 0, 2, 0, 1, 1,
- 1
+ 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, 0, 4, 5, 6, 1, 1, 5, 5, 6,
+ 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, 5, 5, 1, 1, 0, 1,
+ 6, 5, 5, 5, 5, 5, 5, 4, 4, 5,
+ 5, 1, 1, 1, 5, 1, 2, 4, 0, 2,
+ 0, 1, 1, 1
};
@@ -1622,399 +1668,417 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
switch (yytype)
{
case 5: /* NAT */
-#line 205 "src/wast-parser.y" /* yacc.c:1257 */
+#line 218 "src/wast-parser.y" /* yacc.c:1257 */
{}
-#line 1628 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1674 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 6: /* INT */
-#line 205 "src/wast-parser.y" /* yacc.c:1257 */
+#line 218 "src/wast-parser.y" /* yacc.c:1257 */
{}
-#line 1634 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1680 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 7: /* FLOAT */
-#line 205 "src/wast-parser.y" /* yacc.c:1257 */
+#line 218 "src/wast-parser.y" /* yacc.c:1257 */
{}
-#line 1640 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1686 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 8: /* TEXT */
-#line 205 "src/wast-parser.y" /* yacc.c:1257 */
+#line 218 "src/wast-parser.y" /* yacc.c:1257 */
{}
-#line 1646 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1692 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 9: /* VAR */
-#line 205 "src/wast-parser.y" /* yacc.c:1257 */
+#line 218 "src/wast-parser.y" /* yacc.c:1257 */
{}
-#line 1652 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1698 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 34: /* OFFSET_EQ_NAT */
-#line 205 "src/wast-parser.y" /* yacc.c:1257 */
+ case 39: /* OFFSET_EQ_NAT */
+#line 218 "src/wast-parser.y" /* yacc.c:1257 */
{}
-#line 1658 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1704 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 35: /* ALIGN_EQ_NAT */
-#line 205 "src/wast-parser.y" /* yacc.c:1257 */
+ case 40: /* ALIGN_EQ_NAT */
+#line 218 "src/wast-parser.y" /* yacc.c:1257 */
{}
-#line 1664 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1710 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 73: /* text_list */
-#line 225 "src/wast-parser.y" /* yacc.c:1257 */
+ case 78: /* text_list */
+#line 238 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_text_list(&((*yyvaluep).text_list)); }
-#line 1670 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1716 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 74: /* text_list_opt */
-#line 225 "src/wast-parser.y" /* yacc.c:1257 */
+ case 79: /* text_list_opt */
+#line 238 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_text_list(&((*yyvaluep).text_list)); }
-#line 1676 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1722 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 75: /* quoted_text */
-#line 206 "src/wast-parser.y" /* yacc.c:1257 */
+ case 80: /* quoted_text */
+#line 219 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).text)); }
-#line 1682 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1728 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 76: /* value_type_list */
-#line 226 "src/wast-parser.y" /* yacc.c:1257 */
+ case 81: /* value_type_list */
+#line 239 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).types); }
-#line 1688 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1734 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 78: /* global_type */
-#line 219 "src/wast-parser.y" /* yacc.c:1257 */
+ case 83: /* global_type */
+#line 232 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).global); }
-#line 1694 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1740 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 79: /* func_type */
-#line 218 "src/wast-parser.y" /* yacc.c:1257 */
+ case 84: /* func_type */
+#line 231 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func_sig); }
-#line 1700 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1746 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 80: /* func_sig */
-#line 218 "src/wast-parser.y" /* yacc.c:1257 */
+ case 85: /* func_sig */
+#line 231 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func_sig); }
-#line 1706 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1752 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 82: /* memory_sig */
-#line 221 "src/wast-parser.y" /* yacc.c:1257 */
+ case 87: /* memory_sig */
+#line 234 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).memory); }
-#line 1712 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1758 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 84: /* type_use */
-#line 227 "src/wast-parser.y" /* yacc.c:1257 */
+ case 89: /* type_use */
+#line 240 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_var(&((*yyvaluep).var)); }
-#line 1718 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1764 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 86: /* literal */
-#line 207 "src/wast-parser.y" /* yacc.c:1257 */
+ case 91: /* literal */
+#line 220 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).literal).text); }
-#line 1724 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1770 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 87: /* var */
-#line 227 "src/wast-parser.y" /* yacc.c:1257 */
+ case 92: /* var */
+#line 240 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_var(&((*yyvaluep).var)); }
-#line 1730 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1776 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 88: /* var_list */
-#line 228 "src/wast-parser.y" /* yacc.c:1257 */
+ case 93: /* var_list */
+#line 241 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).vars); }
-#line 1736 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1782 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 89: /* bind_var_opt */
-#line 206 "src/wast-parser.y" /* yacc.c:1257 */
+ case 94: /* bind_var_opt */
+#line 219 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).text)); }
-#line 1742 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1788 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 90: /* bind_var */
-#line 206 "src/wast-parser.y" /* yacc.c:1257 */
+ case 95: /* bind_var */
+#line 219 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).text)); }
-#line 1748 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1794 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 91: /* labeling_opt */
-#line 206 "src/wast-parser.y" /* yacc.c:1257 */
+ case 96: /* labeling_opt */
+#line 219 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).text)); }
-#line 1754 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1800 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 94: /* instr */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 99: /* instr */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1760 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1806 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 95: /* plain_instr */
-#line 214 "src/wast-parser.y" /* yacc.c:1257 */
+ case 100: /* plain_instr */
+#line 227 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr); }
-#line 1766 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1812 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 96: /* block_instr */
-#line 214 "src/wast-parser.y" /* yacc.c:1257 */
+ case 101: /* block_instr */
+#line 227 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr); }
-#line 1772 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1818 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 97: /* block_sig */
-#line 226 "src/wast-parser.y" /* yacc.c:1257 */
+ case 102: /* block_sig */
+#line 239 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).types); }
-#line 1778 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1824 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 98: /* block */
-#line 209 "src/wast-parser.y" /* yacc.c:1257 */
+ case 103: /* block */
+#line 222 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).block); }
-#line 1784 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1830 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+ break;
+
+ case 104: /* catch_instr */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
+ { destroy_expr_list(((*yyvaluep).expr_list).first); }
+#line 1836 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+ break;
+
+ case 105: /* catch_instr_list */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
+ { destroy_expr_list(((*yyvaluep).expr_list).first); }
+#line 1842 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+ break;
+
+ case 106: /* expr */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
+ { destroy_expr_list(((*yyvaluep).expr_list).first); }
+#line 1848 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 99: /* expr */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 107: /* expr1 */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1790 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1854 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 100: /* expr1 */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 108: /* catch_list */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1796 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1860 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 101: /* if_block */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 109: /* if_block */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1802 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1866 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 102: /* if_ */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 110: /* if_ */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1808 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1872 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 103: /* instr_list */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 114: /* instr_list */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1814 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1878 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 104: /* expr_list */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 115: /* expr_list */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1820 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1884 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 105: /* const_expr */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 116: /* const_expr */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1890 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 106: /* func */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 117: /* func */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1832 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1896 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 107: /* func_fields */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 118: /* func_fields */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1838 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1902 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 108: /* func_fields_import */
-#line 217 "src/wast-parser.y" /* yacc.c:1257 */
+ case 119: /* func_fields_import */
+#line 230 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1844 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1908 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 109: /* func_fields_import1 */
-#line 217 "src/wast-parser.y" /* yacc.c:1257 */
+ case 120: /* func_fields_import1 */
+#line 230 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1850 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1914 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 110: /* func_fields_body */
-#line 217 "src/wast-parser.y" /* yacc.c:1257 */
+ case 121: /* func_fields_body */
+#line 230 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1856 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1920 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 111: /* func_fields_body1 */
-#line 217 "src/wast-parser.y" /* yacc.c:1257 */
+ case 122: /* func_fields_body1 */
+#line 230 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1862 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1926 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 112: /* func_body */
-#line 217 "src/wast-parser.y" /* yacc.c:1257 */
+ case 123: /* func_body */
+#line 230 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1868 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1932 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 113: /* func_body1 */
-#line 217 "src/wast-parser.y" /* yacc.c:1257 */
+ case 124: /* func_body1 */
+#line 230 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1874 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1938 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 114: /* offset */
-#line 215 "src/wast-parser.y" /* yacc.c:1257 */
+ case 125: /* offset */
+#line 228 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1880 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1944 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 116: /* table */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 127: /* table */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1886 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1950 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 117: /* table_fields */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 128: /* table_fields */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1892 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1956 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 119: /* memory */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 130: /* memory */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1898 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1962 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 120: /* memory_fields */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 131: /* memory_fields */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1904 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1968 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 121: /* global */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 132: /* global */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1910 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1974 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 122: /* global_fields */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 133: /* global_fields */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1916 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1980 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 123: /* import_desc */
-#line 220 "src/wast-parser.y" /* yacc.c:1257 */
+ case 134: /* import_desc */
+#line 233 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).import); }
-#line 1922 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1986 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 125: /* inline_import */
-#line 220 "src/wast-parser.y" /* yacc.c:1257 */
+ case 136: /* inline_import */
+#line 233 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).import); }
-#line 1928 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1992 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 126: /* export_desc */
-#line 213 "src/wast-parser.y" /* yacc.c:1257 */
+ case 137: /* export_desc */
+#line 226 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).export_); }
-#line 1934 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1998 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 128: /* inline_export */
-#line 213 "src/wast-parser.y" /* yacc.c:1257 */
+ case 139: /* inline_export */
+#line 226 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).export_); }
-#line 1940 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2004 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 131: /* module_field */
-#line 216 "src/wast-parser.y" /* yacc.c:1257 */
+ case 142: /* module_field */
+#line 229 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_module_field_list(&((*yyvaluep).module_fields)); }
-#line 1946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2010 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 132: /* module_fields_opt */
-#line 222 "src/wast-parser.y" /* yacc.c:1257 */
+ case 143: /* module_fields_opt */
+#line 235 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 1952 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2016 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 133: /* module_fields */
-#line 222 "src/wast-parser.y" /* yacc.c:1257 */
+ case 144: /* module_fields */
+#line 235 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 1958 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2022 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 134: /* raw_module */
-#line 223 "src/wast-parser.y" /* yacc.c:1257 */
+ case 145: /* raw_module */
+#line 236 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).raw_module); }
-#line 1964 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2028 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 135: /* module */
-#line 222 "src/wast-parser.y" /* yacc.c:1257 */
+ case 146: /* module */
+#line 235 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 1970 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2034 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 136: /* inline_module */
-#line 222 "src/wast-parser.y" /* yacc.c:1257 */
+ case 147: /* inline_module */
+#line 235 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 1976 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2040 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 137: /* script_var_opt */
-#line 227 "src/wast-parser.y" /* yacc.c:1257 */
+ case 148: /* script_var_opt */
+#line 240 "src/wast-parser.y" /* yacc.c:1257 */
{ destroy_var(&((*yyvaluep).var)); }
-#line 1982 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2046 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 138: /* action */
-#line 208 "src/wast-parser.y" /* yacc.c:1257 */
+ case 149: /* action */
+#line 221 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).action); }
-#line 1988 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2052 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 139: /* assertion */
-#line 210 "src/wast-parser.y" /* yacc.c:1257 */
+ case 150: /* assertion */
+#line 223 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).command); }
-#line 1994 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2058 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 140: /* cmd */
-#line 210 "src/wast-parser.y" /* yacc.c:1257 */
+ case 151: /* cmd */
+#line 223 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).command); }
-#line 2000 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2064 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 141: /* cmd_list */
-#line 211 "src/wast-parser.y" /* yacc.c:1257 */
+ case 152: /* cmd_list */
+#line 224 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).commands); }
-#line 2006 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2070 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 143: /* const_list */
-#line 212 "src/wast-parser.y" /* yacc.c:1257 */
+ case 154: /* const_list */
+#line 225 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).consts); }
-#line 2012 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2076 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
- case 144: /* script */
-#line 224 "src/wast-parser.y" /* yacc.c:1257 */
+ case 155: /* script */
+#line 237 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).script); }
-#line 2018 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2082 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
@@ -2306,18 +2370,18 @@ yyreduce:
switch (yyn)
{
case 2:
-#line 241 "src/wast-parser.y" /* yacc.c:1646 */
+#line 254 "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 2317 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2381 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 3:
-#line 247 "src/wast-parser.y" /* yacc.c:1646 */
+#line 260 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.text_list) = (yyvsp[-1].text_list);
TextListNode* node = new TextListNode();
@@ -2326,17 +2390,17 @@ yyreduce:
(yyval.text_list).last->next = node;
(yyval.text_list).last = node;
}
-#line 2330 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2394 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 4:
-#line 257 "src/wast-parser.y" /* yacc.c:1646 */
+#line 270 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.text_list).first = (yyval.text_list).last = nullptr; }
-#line 2336 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2400 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 6:
-#line 262 "src/wast-parser.y" /* yacc.c:1646 */
+#line 275 "src/wast-parser.y" /* yacc.c:1646 */
{
TextListNode node;
node.text = (yyvsp[0].text);
@@ -2350,74 +2414,74 @@ yyreduce:
(yyval.text).start = data;
(yyval.text).length = size;
}
-#line 2354 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2418 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 7:
-#line 280 "src/wast-parser.y" /* yacc.c:1646 */
+#line 293 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.types) = new TypeVector(); }
-#line 2360 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2424 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 8:
-#line 281 "src/wast-parser.y" /* yacc.c:1646 */
+#line 294 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.types) = (yyvsp[-1].types);
(yyval.types)->push_back((yyvsp[0].type));
}
-#line 2369 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2433 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 9:
-#line 287 "src/wast-parser.y" /* yacc.c:1646 */
+#line 300 "src/wast-parser.y" /* yacc.c:1646 */
{}
-#line 2375 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2439 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 10:
-#line 290 "src/wast-parser.y" /* yacc.c:1646 */
+#line 303 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.global) = new Global();
(yyval.global)->type = (yyvsp[0].type);
(yyval.global)->mutable_ = false;
}
-#line 2385 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2449 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 11:
-#line 295 "src/wast-parser.y" /* yacc.c:1646 */
+#line 308 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.global) = new Global();
(yyval.global)->type = (yyvsp[-1].type);
(yyval.global)->mutable_ = true;
}
-#line 2395 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2459 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 12:
-#line 302 "src/wast-parser.y" /* yacc.c:1646 */
+#line 315 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.func_sig) = (yyvsp[-1].func_sig); }
-#line 2401 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2465 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 13:
-#line 305 "src/wast-parser.y" /* yacc.c:1646 */
+#line 318 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.func_sig) = new FuncSignature(); }
-#line 2407 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2471 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 14:
-#line 306 "src/wast-parser.y" /* yacc.c:1646 */
+#line 319 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = new FuncSignature();
(yyval.func_sig)->param_types = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
}
-#line 2417 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2481 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 15:
-#line 311 "src/wast-parser.y" /* yacc.c:1646 */
+#line 324 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = new FuncSignature();
(yyval.func_sig)->param_types = std::move(*(yyvsp[-5].types));
@@ -2425,65 +2489,65 @@ yyreduce:
(yyval.func_sig)->result_types = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
}
-#line 2429 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2493 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 16:
-#line 318 "src/wast-parser.y" /* yacc.c:1646 */
+#line 331 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = new FuncSignature();
(yyval.func_sig)->result_types = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
}
-#line 2439 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2503 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 17:
-#line 326 "src/wast-parser.y" /* yacc.c:1646 */
+#line 339 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.table) = new Table();
(yyval.table)->elem_limits = (yyvsp[-1].limits);
}
-#line 2448 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2512 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 18:
-#line 332 "src/wast-parser.y" /* yacc.c:1646 */
+#line 345 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.memory) = new Memory();
(yyval.memory)->page_limits = (yyvsp[0].limits);
}
-#line 2457 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2521 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 19:
-#line 338 "src/wast-parser.y" /* yacc.c:1646 */
+#line 351 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.limits).has_max = false;
(yyval.limits).initial = (yyvsp[0].u64);
(yyval.limits).max = 0;
}
-#line 2467 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2531 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 20:
-#line 343 "src/wast-parser.y" /* yacc.c:1646 */
+#line 356 "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 2477 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2541 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 21:
-#line 350 "src/wast-parser.y" /* yacc.c:1646 */
+#line 363 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.var) = (yyvsp[-1].var); }
-#line 2483 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2547 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 22:
-#line 356 "src/wast-parser.y" /* yacc.c:1646 */
+#line 369 "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)))) {
@@ -2492,97 +2556,97 @@ yyreduce:
WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text));
}
}
-#line 2496 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2560 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 23:
-#line 367 "src/wast-parser.y" /* yacc.c:1646 */
+#line 380 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2505 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2569 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 24:
-#line 371 "src/wast-parser.y" /* yacc.c:1646 */
+#line 384 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2514 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2578 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 25:
-#line 375 "src/wast-parser.y" /* yacc.c:1646 */
+#line 388 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2523 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2587 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 26:
-#line 382 "src/wast-parser.y" /* yacc.c:1646 */
+#line 395 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.var).loc = (yylsp[0]);
(yyval.var).type = VarType::Index;
(yyval.var).index = (yyvsp[0].u64);
}
-#line 2533 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2597 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 27:
-#line 387 "src/wast-parser.y" /* yacc.c:1646 */
+#line 400 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.var).loc = (yylsp[0]);
(yyval.var).type = VarType::Name;
DUPTEXT((yyval.var).name, (yyvsp[0].text));
}
-#line 2543 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2607 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 28:
-#line 394 "src/wast-parser.y" /* yacc.c:1646 */
+#line 407 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.vars) = new VarVector(); }
-#line 2549 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2613 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 29:
-#line 395 "src/wast-parser.y" /* yacc.c:1646 */
+#line 408 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.vars) = (yyvsp[-1].vars);
(yyval.vars)->push_back((yyvsp[0].var));
}
-#line 2558 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2622 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 30:
-#line 401 "src/wast-parser.y" /* yacc.c:1646 */
+#line 414 "src/wast-parser.y" /* yacc.c:1646 */
{ WABT_ZERO_MEMORY((yyval.text)); }
-#line 2564 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2628 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 32:
-#line 405 "src/wast-parser.y" /* yacc.c:1646 */
+#line 418 "src/wast-parser.y" /* yacc.c:1646 */
{ DUPTEXT((yyval.text), (yyvsp[0].text)); }
-#line 2570 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2634 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 33:
-#line 409 "src/wast-parser.y" /* yacc.c:1646 */
+#line 422 "src/wast-parser.y" /* yacc.c:1646 */
{ WABT_ZERO_MEMORY((yyval.text)); }
-#line 2576 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2640 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 35:
-#line 414 "src/wast-parser.y" /* yacc.c:1646 */
+#line 427 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.u64) = 0; }
-#line 2582 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2646 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 36:
-#line 415 "src/wast-parser.y" /* yacc.c:1646 */
+#line 428 "src/wast-parser.y" /* yacc.c:1646 */
{
if (WABT_FAILED(parse_int64((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u64),
ParseIntType::SignedAndUnsigned))) {
@@ -2591,17 +2655,17 @@ yyreduce:
WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].text)));
}
}
-#line 2595 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2659 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 37:
-#line 425 "src/wast-parser.y" /* yacc.c:1646 */
+#line 438 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.u32) = USE_NATURAL_ALIGNMENT; }
-#line 2601 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2665 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 38:
-#line 426 "src/wast-parser.y" /* yacc.c:1646 */
+#line 439 "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))) {
@@ -2610,165 +2674,159 @@ yyreduce:
WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].text)));
}
}
-#line 2614 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2678 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 39:
-#line 437 "src/wast-parser.y" /* yacc.c:1646 */
+#line 450 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); }
-#line 2620 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2684 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 40:
-#line 438 "src/wast-parser.y" /* yacc.c:1646 */
+#line 451 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); }
-#line 2626 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
- break;
-
- case 41:
-#line 439 "src/wast-parser.y" /* yacc.c:1646 */
- { (yyval.expr_list) = (yyvsp[0].expr_list); }
-#line 2632 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2690 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 42:
-#line 442 "src/wast-parser.y" /* yacc.c:1646 */
+#line 456 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateUnreachable();
}
-#line 2640 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2698 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 43:
-#line 445 "src/wast-parser.y" /* yacc.c:1646 */
+#line 459 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateNop();
}
-#line 2648 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2706 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 44:
-#line 448 "src/wast-parser.y" /* yacc.c:1646 */
+#line 462 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateDrop();
}
-#line 2656 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2714 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 45:
-#line 451 "src/wast-parser.y" /* yacc.c:1646 */
+#line 465 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateSelect();
}
-#line 2664 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2722 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 46:
-#line 454 "src/wast-parser.y" /* yacc.c:1646 */
+#line 468 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBr((yyvsp[0].var));
}
-#line 2672 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2730 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 47:
-#line 457 "src/wast-parser.y" /* yacc.c:1646 */
+#line 471 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBrIf((yyvsp[0].var));
}
-#line 2680 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2738 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 48:
-#line 460 "src/wast-parser.y" /* yacc.c:1646 */
+#line 474 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBrTable((yyvsp[-1].vars), (yyvsp[0].var));
}
-#line 2688 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2746 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 49:
-#line 463 "src/wast-parser.y" /* yacc.c:1646 */
+#line 477 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateReturn();
}
-#line 2696 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2754 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 50:
-#line 466 "src/wast-parser.y" /* yacc.c:1646 */
+#line 480 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateCall((yyvsp[0].var));
}
-#line 2704 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2762 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 51:
-#line 469 "src/wast-parser.y" /* yacc.c:1646 */
+#line 483 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateCallIndirect((yyvsp[0].var));
}
-#line 2712 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2770 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 52:
-#line 472 "src/wast-parser.y" /* yacc.c:1646 */
+#line 486 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateGetLocal((yyvsp[0].var));
}
-#line 2720 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2778 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 53:
-#line 475 "src/wast-parser.y" /* yacc.c:1646 */
+#line 489 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateSetLocal((yyvsp[0].var));
}
-#line 2728 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2786 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 54:
-#line 478 "src/wast-parser.y" /* yacc.c:1646 */
+#line 492 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateTeeLocal((yyvsp[0].var));
}
-#line 2736 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2794 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 55:
-#line 481 "src/wast-parser.y" /* yacc.c:1646 */
+#line 495 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateGetGlobal((yyvsp[0].var));
}
-#line 2744 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2802 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 56:
-#line 484 "src/wast-parser.y" /* yacc.c:1646 */
+#line 498 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateSetGlobal((yyvsp[0].var));
}
-#line 2752 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2810 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 57:
-#line 487 "src/wast-parser.y" /* yacc.c:1646 */
+#line 501 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateLoad((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64));
}
-#line 2760 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2818 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 58:
-#line 490 "src/wast-parser.y" /* yacc.c:1646 */
+#line 504 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateStore((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64));
}
-#line 2768 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 59:
-#line 493 "src/wast-parser.y" /* yacc.c:1646 */
+#line 507 "src/wast-parser.y" /* yacc.c:1646 */
{
Const const_;
WABT_ZERO_MEMORY(const_);
@@ -2782,170 +2840,248 @@ yyreduce:
delete [] (yyvsp[0].literal).text.start;
(yyval.expr) = Expr::CreateConst(const_);
}
-#line 2786 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2844 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 60:
-#line 506 "src/wast-parser.y" /* yacc.c:1646 */
+#line 520 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateUnary((yyvsp[0].opcode));
}
-#line 2794 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2852 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 61:
-#line 509 "src/wast-parser.y" /* yacc.c:1646 */
+#line 523 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBinary((yyvsp[0].opcode));
}
-#line 2802 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2860 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 62:
-#line 512 "src/wast-parser.y" /* yacc.c:1646 */
+#line 526 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateCompare((yyvsp[0].opcode));
}
-#line 2810 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2868 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 63:
-#line 515 "src/wast-parser.y" /* yacc.c:1646 */
+#line 529 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateConvert((yyvsp[0].opcode));
}
-#line 2818 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2876 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 64:
-#line 518 "src/wast-parser.y" /* yacc.c:1646 */
+#line 532 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateCurrentMemory();
}
-#line 2826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2884 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 65:
-#line 521 "src/wast-parser.y" /* yacc.c:1646 */
+#line 535 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateGrowMemory();
}
-#line 2834 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2892 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 66:
-#line 526 "src/wast-parser.y" /* yacc.c:1646 */
+#line 538 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ (yyval.expr) = Expr::CreateThrow((yyvsp[0].var));
+ }
+#line 2900 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 67:
+#line 541 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ (yyval.expr) = Expr::CreateRethrow((yyvsp[0].var));
+ }
+#line 2908 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 68:
+#line 547 "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 2844 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2918 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 67:
-#line 531 "src/wast-parser.y" /* yacc.c:1646 */
+ case 69:
+#line 552 "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 2854 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2928 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 68:
-#line 536 "src/wast-parser.y" /* yacc.c:1646 */
+ case 70:
+#line 557 "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 2864 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2938 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 69:
-#line 541 "src/wast-parser.y" /* yacc.c:1646 */
+ case 71:
+#line 562 "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 2875 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2949 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 70:
-#line 549 "src/wast-parser.y" /* yacc.c:1646 */
+ case 72:
+#line 568 "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 2959 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 73:
+#line 576 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.types) = (yyvsp[-1].types); }
-#line 2881 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2965 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 71:
-#line 552 "src/wast-parser.y" /* yacc.c:1646 */
+ case 74:
+#line 579 "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 2891 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2975 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 72:
-#line 557 "src/wast-parser.y" /* yacc.c:1646 */
+ case 75:
+#line 584 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.block) = new Block();
(yyval.block)->first = (yyvsp[0].expr_list).first;
}
-#line 2900 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2984 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 73:
-#line 564 "src/wast-parser.y" /* yacc.c:1646 */
+ case 76:
+#line 591 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ Expr* expr = Expr::CreateCatch((yyvsp[-1].var), (yyvsp[0].expr_list).first);
+ (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr);
+ }
+#line 2993 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 77:
+#line 595 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ Expr* expr = Expr::CreateCatchAll((yyvsp[-1].var), (yyvsp[0].expr_list).first);
+ (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr);
+ }
+#line 3002 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 79:
+#line 603 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ (yyval.expr_list) = join_expr_lists(&(yyvsp[-1].expr_list), &(yyvsp[0].expr_list));
+ }
+#line 3010 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 80:
+#line 609 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = (yyvsp[-1].expr_list); }
-#line 2906 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3016 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 74:
-#line 568 "src/wast-parser.y" /* yacc.c:1646 */
+ case 81:
+#line 613 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[0].expr_list), (yyvsp[-1].expr));
}
-#line 2914 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3024 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 75:
-#line 571 "src/wast-parser.y" /* yacc.c:1646 */
+ case 82:
+#line 616 "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 2924 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3034 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 76:
-#line 576 "src/wast-parser.y" /* yacc.c:1646 */
+ case 83:
+#line 621 "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 2934 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3044 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 77:
-#line 581 "src/wast-parser.y" /* yacc.c:1646 */
+ case 84:
+#line 626 "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 2945 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3055 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 85:
+#line 632 "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_);
+ }
+#line 3065 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 86:
+#line 640 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ (yyval.expr_list) = (yyvsp[-1].expr_list);
+ }
+#line 3073 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 87:
+#line 643 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ (yyval.expr_list) = join_expr_lists(&(yyvsp[-2].expr_list), &(yyvsp[0].expr_list));
+ }
+#line 3081 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 78:
-#line 589 "src/wast-parser.y" /* yacc.c:1646 */
+ case 88:
+#line 649 "src/wast-parser.y" /* yacc.c:1646 */
{
Expr* if_ = (yyvsp[0].expr_list).last;
assert(if_->type == ExprType::If);
@@ -2954,99 +3090,123 @@ yyreduce:
true_->sig.insert(true_->sig.end(), (yyvsp[-1].types)->begin(), (yyvsp[-1].types)->end());
delete (yyvsp[-1].types);
}
-#line 2958 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3094 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 80:
-#line 600 "src/wast-parser.y" /* yacc.c:1646 */
+ case 90:
+#line 660 "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 2967 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3103 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 81:
-#line 604 "src/wast-parser.y" /* yacc.c:1646 */
+ case 91:
+#line 664 "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 2976 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3112 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 82:
-#line 608 "src/wast-parser.y" /* yacc.c:1646 */
+ case 92:
+#line 668 "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 2985 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3121 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 83:
-#line 612 "src/wast-parser.y" /* yacc.c:1646 */
+ case 93:
+#line 672 "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 2994 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3130 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 84:
-#line 616 "src/wast-parser.y" /* yacc.c:1646 */
+ case 94:
+#line 676 "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 3003 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3139 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 85:
-#line 620 "src/wast-parser.y" /* yacc.c:1646 */
+ case 95:
+#line 680 "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 3012 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3148 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 86:
-#line 627 "src/wast-parser.y" /* yacc.c:1646 */
+ case 96:
+#line 687 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "rethrow");
+ }
+#line 3156 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 97:
+#line 692 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "throw");
+ }
+#line 3164 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 98:
+#line 698 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "try");
+ }
+#line 3172 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 99:
+#line 704 "src/wast-parser.y" /* yacc.c:1646 */
{ WABT_ZERO_MEMORY((yyval.expr_list)); }
-#line 3018 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3178 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 87:
-#line 628 "src/wast-parser.y" /* yacc.c:1646 */
+ case 100:
+#line 705 "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 3029 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3189 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 88:
-#line 636 "src/wast-parser.y" /* yacc.c:1646 */
+ case 101:
+#line 713 "src/wast-parser.y" /* yacc.c:1646 */
{ WABT_ZERO_MEMORY((yyval.expr_list)); }
-#line 3035 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3195 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 89:
-#line 637 "src/wast-parser.y" /* yacc.c:1646 */
+ case 102:
+#line 714 "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 3046 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3206 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 91:
-#line 650 "src/wast-parser.y" /* yacc.c:1646 */
+ case 104:
+#line 727 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
ModuleField* main = (yyval.module_fields).first;
@@ -3058,11 +3218,11 @@ yyreduce:
main->import->func->name = (yyvsp[-2].text);
}
}
-#line 3062 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3222 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 92:
-#line 664 "src/wast-parser.y" /* yacc.c:1646 */
+ case 105:
+#line 741 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Func);
field->func = (yyvsp[0].func);
@@ -3070,21 +3230,21 @@ yyreduce:
field->func->decl.type_var = (yyvsp[-1].var);
(yyval.module_fields).first = (yyval.module_fields).last = field;
}
-#line 3074 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3234 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 93:
-#line 671 "src/wast-parser.y" /* yacc.c:1646 */
+ case 106:
+#line 748 "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 3084 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3244 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 94:
-#line 676 "src/wast-parser.y" /* yacc.c:1646 */
+ case 107:
+#line 753 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Import);
field->loc = (yylsp[-2]);
@@ -3095,11 +3255,11 @@ yyreduce:
field->import->func->decl.type_var = (yyvsp[-1].var);
(yyval.module_fields).first = (yyval.module_fields).last = field;
}
-#line 3099 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3259 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 95:
-#line 686 "src/wast-parser.y" /* yacc.c:1646 */
+ case 108:
+#line 763 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Import);
field->loc = (yylsp[-1]);
@@ -3108,11 +3268,11 @@ yyreduce:
field->import->func = (yyvsp[0].func);
(yyval.module_fields).first = (yyval.module_fields).last = field;
}
-#line 3112 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3272 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 96:
-#line 694 "src/wast-parser.y" /* yacc.c:1646 */
+ case 109:
+#line 771 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Export);
field->loc = (yylsp[-1]);
@@ -3121,47 +3281,47 @@ yyreduce:
(yyval.module_fields).first = (yyvsp[0].module_fields).first;
(yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field;
}
-#line 3125 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3285 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 97:
-#line 705 "src/wast-parser.y" /* yacc.c:1646 */
+ case 110:
+#line 782 "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 3134 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3294 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 98:
-#line 712 "src/wast-parser.y" /* yacc.c:1646 */
+ case 111:
+#line 789 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.func) = new Func(); }
-#line 3140 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3300 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 99:
-#line 713 "src/wast-parser.y" /* yacc.c:1646 */
+ case 112:
+#line 790 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = new Func();
(yyval.func)->decl.sig.result_types = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
}
-#line 3150 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3310 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 100:
-#line 718 "src/wast-parser.y" /* yacc.c:1646 */
+ case 113:
+#line 795 "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 3161 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3321 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 101:
-#line 724 "src/wast-parser.y" /* yacc.c:1646 */
+ case 114:
+#line 801 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
(yyval.func)->param_bindings.emplace(string_slice_to_string((yyvsp[-3].text)),
@@ -3169,41 +3329,41 @@ 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 3173 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3333 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 102:
-#line 734 "src/wast-parser.y" /* yacc.c:1646 */
+ case 115:
+#line 811 "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 3182 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3342 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 104:
-#line 742 "src/wast-parser.y" /* yacc.c:1646 */
+ case 117:
+#line 819 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
(yyval.func)->decl.sig.result_types = std::move(*(yyvsp[-2].types));
delete (yyvsp[-2].types);
}
-#line 3192 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3352 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 105:
-#line 747 "src/wast-parser.y" /* yacc.c:1646 */
+ case 118:
+#line 824 "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 3203 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3363 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 106:
-#line 753 "src/wast-parser.y" /* yacc.c:1646 */
+ case 119:
+#line 830 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
(yyval.func)->param_bindings.emplace(string_slice_to_string((yyvsp[-3].text)),
@@ -3211,39 +3371,39 @@ 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 3215 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3375 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 107:
-#line 763 "src/wast-parser.y" /* yacc.c:1646 */
+ case 120:
+#line 840 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
reverse_bindings(&(yyval.func)->local_types, &(yyval.func)->local_bindings);
}
-#line 3224 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3384 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 108:
-#line 770 "src/wast-parser.y" /* yacc.c:1646 */
+ case 121:
+#line 847 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = new Func();
(yyval.func)->first_expr = (yyvsp[0].expr_list).first;
}
-#line 3233 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3393 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 109:
-#line 774 "src/wast-parser.y" /* yacc.c:1646 */
+ case 122:
+#line 851 "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 3243 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3403 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 110:
-#line 779 "src/wast-parser.y" /* yacc.c:1646 */
+ case 123:
+#line 856 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
(yyval.func)->local_bindings.emplace(string_slice_to_string((yyvsp[-3].text)),
@@ -3251,19 +3411,19 @@ yyreduce:
destroy_string_slice(&(yyvsp[-3].text));
(yyval.func)->local_types.insert((yyval.func)->local_types.begin(), (yyvsp[-2].type));
}
-#line 3255 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3415 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 111:
-#line 791 "src/wast-parser.y" /* yacc.c:1646 */
+ case 124:
+#line 868 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = (yyvsp[-1].expr_list);
}
-#line 3263 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3423 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 113:
-#line 798 "src/wast-parser.y" /* yacc.c:1646 */
+ case 126:
+#line 875 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ModuleField(ModuleFieldType::ElemSegment);
(yyval.module_field)->loc = (yylsp[-4]);
@@ -3273,11 +3433,11 @@ yyreduce:
(yyval.module_field)->elem_segment->vars = std::move(*(yyvsp[-1].vars));
delete (yyvsp[-1].vars);
}
-#line 3277 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3437 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 114:
-#line 807 "src/wast-parser.y" /* yacc.c:1646 */
+ case 127:
+#line 884 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ModuleField(ModuleFieldType::ElemSegment);
(yyval.module_field)->loc = (yylsp[-3]);
@@ -3289,11 +3449,11 @@ yyreduce:
(yyval.module_field)->elem_segment->vars = std::move(*(yyvsp[-1].vars));
delete (yyvsp[-1].vars);
}
-#line 3293 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3453 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 115:
-#line 821 "src/wast-parser.y" /* yacc.c:1646 */
+ case 128:
+#line 898 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
ModuleField* main = (yyval.module_fields).first;
@@ -3305,22 +3465,22 @@ yyreduce:
main->import->table->name = (yyvsp[-2].text);
}
}
-#line 3309 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3469 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 116:
-#line 835 "src/wast-parser.y" /* yacc.c:1646 */
+ case 129:
+#line 912 "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 3320 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3480 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 117:
-#line 841 "src/wast-parser.y" /* yacc.c:1646 */
+ case 130:
+#line 918 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Import);
field->loc = (yylsp[-1]);
@@ -3329,11 +3489,11 @@ yyreduce:
field->import->table = (yyvsp[0].table);
(yyval.module_fields).first = (yyval.module_fields).last = field;
}
-#line 3333 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3493 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 118:
-#line 849 "src/wast-parser.y" /* yacc.c:1646 */
+ case 131:
+#line 926 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Export);
field->loc = (yylsp[-1]);
@@ -3342,11 +3502,11 @@ yyreduce:
(yyval.module_fields).first = (yyvsp[0].module_fields).first;
(yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field;
}
-#line 3346 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3506 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 119:
-#line 857 "src/wast-parser.y" /* yacc.c:1646 */
+ case 132:
+#line 934 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* table_field = new ModuleField(ModuleFieldType::Table);
Table* table = table_field->table = new Table();
@@ -3363,11 +3523,11 @@ yyreduce:
(yyval.module_fields).first = table_field;
(yyval.module_fields).last = table_field->next = elem_field;
}
-#line 3367 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3527 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 120:
-#line 876 "src/wast-parser.y" /* yacc.c:1646 */
+ case 133:
+#line 953 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ModuleField(ModuleFieldType::DataSegment);
(yyval.module_field)->loc = (yylsp[-4]);
@@ -3377,11 +3537,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 3381 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3541 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 121:
-#line 885 "src/wast-parser.y" /* yacc.c:1646 */
+ case 134:
+#line 962 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ModuleField(ModuleFieldType::DataSegment);
(yyval.module_field)->loc = (yylsp[-3]);
@@ -3393,11 +3553,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 3397 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3557 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 122:
-#line 899 "src/wast-parser.y" /* yacc.c:1646 */
+ case 135:
+#line 976 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
ModuleField* main = (yyval.module_fields).first;
@@ -3409,21 +3569,21 @@ yyreduce:
main->import->memory->name = (yyvsp[-2].text);
}
}
-#line 3413 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3573 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 123:
-#line 913 "src/wast-parser.y" /* yacc.c:1646 */
+ case 136:
+#line 990 "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 3423 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3583 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 124:
-#line 918 "src/wast-parser.y" /* yacc.c:1646 */
+ case 137:
+#line 995 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Import);
field->loc = (yylsp[-1]);
@@ -3432,11 +3592,11 @@ yyreduce:
field->import->memory = (yyvsp[0].memory);
(yyval.module_fields).first = (yyval.module_fields).last = field;
}
-#line 3436 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3596 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 125:
-#line 926 "src/wast-parser.y" /* yacc.c:1646 */
+ case 138:
+#line 1003 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Export);
field->loc = (yylsp[-1]);
@@ -3445,11 +3605,11 @@ yyreduce:
(yyval.module_fields).first = (yyvsp[0].module_fields).first;
(yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field;
}
-#line 3449 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3609 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 126:
-#line 934 "src/wast-parser.y" /* yacc.c:1646 */
+ case 139:
+#line 1011 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* data_field = new ModuleField(ModuleFieldType::DataSegment);
data_field->loc = (yylsp[-2]);
@@ -3470,11 +3630,11 @@ yyreduce:
(yyval.module_fields).first = memory_field;
(yyval.module_fields).last = memory_field->next = data_field;
}
-#line 3474 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3634 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 127:
-#line 957 "src/wast-parser.y" /* yacc.c:1646 */
+ case 140:
+#line 1034 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
ModuleField* main = (yyval.module_fields).first;
@@ -3486,22 +3646,22 @@ yyreduce:
main->import->global->name = (yyvsp[-2].text);
}
}
-#line 3490 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3650 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 128:
-#line 971 "src/wast-parser.y" /* yacc.c:1646 */
+ case 141:
+#line 1048 "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 3501 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3661 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 129:
-#line 977 "src/wast-parser.y" /* yacc.c:1646 */
+ case 142:
+#line 1054 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Import);
field->loc = (yylsp[-1]);
@@ -3510,11 +3670,11 @@ yyreduce:
field->import->global = (yyvsp[0].global);
(yyval.module_fields).first = (yyval.module_fields).last = field;
}
-#line 3514 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3674 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 130:
-#line 985 "src/wast-parser.y" /* yacc.c:1646 */
+ case 143:
+#line 1062 "src/wast-parser.y" /* yacc.c:1646 */
{
ModuleField* field = new ModuleField(ModuleFieldType::Export);
field->loc = (yylsp[-1]);
@@ -3523,11 +3683,11 @@ yyreduce:
(yyval.module_fields).first = (yyvsp[0].module_fields).first;
(yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field;
}
-#line 3527 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3687 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 131:
-#line 998 "src/wast-parser.y" /* yacc.c:1646 */
+ case 144:
+#line 1075 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Func;
@@ -3536,11 +3696,11 @@ yyreduce:
(yyval.import)->func->decl.has_func_type = true;
(yyval.import)->func->decl.type_var = (yyvsp[-1].var);
}
-#line 3540 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3700 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 132:
-#line 1006 "src/wast-parser.y" /* yacc.c:1646 */
+ case 145:
+#line 1083 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Func;
@@ -3549,44 +3709,44 @@ yyreduce:
(yyval.import)->func->decl.sig = std::move(*(yyvsp[-1].func_sig));
delete (yyvsp[-1].func_sig);
}
-#line 3553 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3713 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 133:
-#line 1014 "src/wast-parser.y" /* yacc.c:1646 */
+ case 146:
+#line 1091 "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 3564 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3724 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 134:
-#line 1020 "src/wast-parser.y" /* yacc.c:1646 */
+ case 147:
+#line 1097 "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 3575 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3735 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 135:
-#line 1026 "src/wast-parser.y" /* yacc.c:1646 */
+ case 148:
+#line 1103 "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 3586 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3746 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 136:
-#line 1035 "src/wast-parser.y" /* yacc.c:1646 */
+ case 149:
+#line 1112 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ModuleField(ModuleFieldType::Import);
(yyval.module_field)->loc = (yylsp[-4]);
@@ -3594,81 +3754,81 @@ yyreduce:
(yyval.module_field)->import->module_name = (yyvsp[-3].text);
(yyval.module_field)->import->field_name = (yyvsp[-2].text);
}
-#line 3598 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3758 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 137:
-#line 1045 "src/wast-parser.y" /* yacc.c:1646 */
+ case 150:
+#line 1122 "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 3608 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3768 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 138:
-#line 1053 "src/wast-parser.y" /* yacc.c:1646 */
+ case 151:
+#line 1130 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Func;
(yyval.export_)->var = (yyvsp[-1].var);
}
-#line 3618 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3778 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 139:
-#line 1058 "src/wast-parser.y" /* yacc.c:1646 */
+ case 152:
+#line 1135 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Table;
(yyval.export_)->var = (yyvsp[-1].var);
}
-#line 3628 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3788 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 140:
-#line 1063 "src/wast-parser.y" /* yacc.c:1646 */
+ case 153:
+#line 1140 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Memory;
(yyval.export_)->var = (yyvsp[-1].var);
}
-#line 3638 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3798 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 141:
-#line 1068 "src/wast-parser.y" /* yacc.c:1646 */
+ case 154:
+#line 1145 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Global;
(yyval.export_)->var = (yyvsp[-1].var);
}
-#line 3648 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3808 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 142:
-#line 1075 "src/wast-parser.y" /* yacc.c:1646 */
+ case 155:
+#line 1152 "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 3659 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3819 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 143:
-#line 1084 "src/wast-parser.y" /* yacc.c:1646 */
+ case 156:
+#line 1161 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->name = (yyvsp[-1].text);
}
-#line 3668 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3828 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 144:
-#line 1094 "src/wast-parser.y" /* yacc.c:1646 */
+ case 157:
+#line 1171 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ModuleField(ModuleFieldType::FuncType);
(yyval.module_field)->loc = (yylsp[-2]);
@@ -3676,11 +3836,11 @@ yyreduce:
(yyval.module_field)->func_type->sig = std::move(*(yyvsp[-1].func_sig));
delete (yyvsp[-1].func_sig);
}
-#line 3680 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3840 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 145:
-#line 1101 "src/wast-parser.y" /* yacc.c:1646 */
+ case 158:
+#line 1178 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ModuleField(ModuleFieldType::FuncType);
(yyval.module_field)->loc = (yylsp[-3]);
@@ -3689,83 +3849,83 @@ yyreduce:
(yyval.module_field)->func_type->sig = std::move(*(yyvsp[-1].func_sig));
delete (yyvsp[-1].func_sig);
}
-#line 3693 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3853 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 146:
-#line 1112 "src/wast-parser.y" /* yacc.c:1646 */
+ case 159:
+#line 1189 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ModuleField(ModuleFieldType::Start);
(yyval.module_field)->loc = (yylsp[-2]);
(yyval.module_field)->start = (yyvsp[-1].var);
}
-#line 3703 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3863 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 147:
-#line 1120 "src/wast-parser.y" /* yacc.c:1646 */
+ case 160:
+#line 1197 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); }
-#line 3709 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3869 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 152:
-#line 1125 "src/wast-parser.y" /* yacc.c:1646 */
+ case 165:
+#line 1202 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); }
-#line 3715 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3875 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 153:
-#line 1126 "src/wast-parser.y" /* yacc.c:1646 */
+ case 166:
+#line 1203 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); }
-#line 3721 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3881 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 154:
-#line 1127 "src/wast-parser.y" /* yacc.c:1646 */
+ case 167:
+#line 1204 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); }
-#line 3727 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3887 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 155:
-#line 1128 "src/wast-parser.y" /* yacc.c:1646 */
+ case 168:
+#line 1205 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); }
-#line 3733 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3893 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 156:
-#line 1129 "src/wast-parser.y" /* yacc.c:1646 */
+ case 169:
+#line 1206 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); }
-#line 3739 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3899 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 157:
-#line 1133 "src/wast-parser.y" /* yacc.c:1646 */
+ case 170:
+#line 1210 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module) = new Module(); }
-#line 3745 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3905 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 159:
-#line 1138 "src/wast-parser.y" /* yacc.c:1646 */
+ case 172:
+#line 1215 "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 3755 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3915 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 160:
-#line 1143 "src/wast-parser.y" /* yacc.c:1646 */
+ case 173:
+#line 1220 "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 3765 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3925 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 161:
-#line 1151 "src/wast-parser.y" /* yacc.c:1646 */
+ case 174:
+#line 1228 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.raw_module) = new RawModule();
(yyval.raw_module)->type = RawModuleType::Text;
@@ -3786,11 +3946,11 @@ yyreduce:
}
}
}
-#line 3790 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3950 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 162:
-#line 1171 "src/wast-parser.y" /* yacc.c:1646 */
+ case 175:
+#line 1248 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.raw_module) = new RawModule();
(yyval.raw_module)->type = RawModuleType::Binary;
@@ -3799,11 +3959,11 @@ yyreduce:
dup_text_list(&(yyvsp[-1].text_list), &(yyval.raw_module)->binary.data, &(yyval.raw_module)->binary.size);
destroy_text_list(&(yyvsp[-1].text_list));
}
-#line 3803 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3963 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 163:
-#line 1182 "src/wast-parser.y" /* yacc.c:1646 */
+ case 176:
+#line 1259 "src/wast-parser.y" /* yacc.c:1646 */
{
if ((yyvsp[0].raw_module)->type == RawModuleType::Text) {
(yyval.module) = (yyvsp[0].raw_module)->text;
@@ -3821,31 +3981,31 @@ yyreduce:
}
delete (yyvsp[0].raw_module);
}
-#line 3825 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3985 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 165:
-#line 1209 "src/wast-parser.y" /* yacc.c:1646 */
+ case 178:
+#line 1286 "src/wast-parser.y" /* yacc.c:1646 */
{
WABT_ZERO_MEMORY((yyval.var));
(yyval.var).type = VarType::Index;
(yyval.var).index = kInvalidIndex;
}
-#line 3835 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3995 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 166:
-#line 1214 "src/wast-parser.y" /* yacc.c:1646 */
+ case 179:
+#line 1291 "src/wast-parser.y" /* yacc.c:1646 */
{
WABT_ZERO_MEMORY((yyval.var));
(yyval.var).type = VarType::Name;
DUPTEXT((yyval.var).name, (yyvsp[0].text));
}
-#line 3845 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4005 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 167:
-#line 1222 "src/wast-parser.y" /* yacc.c:1646 */
+ case 180:
+#line 1299 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.action) = new Action();
(yyval.action)->loc = (yylsp[-4]);
@@ -3856,11 +4016,11 @@ yyreduce:
(yyval.action)->invoke->args = std::move(*(yyvsp[-1].consts));
delete (yyvsp[-1].consts);
}
-#line 3860 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4020 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 168:
-#line 1232 "src/wast-parser.y" /* yacc.c:1646 */
+ case 181:
+#line 1309 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.action) = new Action();
(yyval.action)->loc = (yylsp[-3]);
@@ -3868,128 +4028,128 @@ yyreduce:
(yyval.action)->type = ActionType::Get;
(yyval.action)->name = (yyvsp[-1].text);
}
-#line 3872 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4032 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 169:
-#line 1242 "src/wast-parser.y" /* yacc.c:1646 */
+ case 182:
+#line 1319 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertMalformed;
(yyval.command)->assert_malformed.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_malformed.text = (yyvsp[-1].text);
}
-#line 3883 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4043 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 170:
-#line 1248 "src/wast-parser.y" /* yacc.c:1646 */
+ case 183:
+#line 1325 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertInvalid;
(yyval.command)->assert_invalid.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_invalid.text = (yyvsp[-1].text);
}
-#line 3894 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4054 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 171:
-#line 1254 "src/wast-parser.y" /* yacc.c:1646 */
+ case 184:
+#line 1331 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertUnlinkable;
(yyval.command)->assert_unlinkable.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_unlinkable.text = (yyvsp[-1].text);
}
-#line 3905 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4065 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 172:
-#line 1260 "src/wast-parser.y" /* yacc.c:1646 */
+ case 185:
+#line 1337 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertUninstantiable;
(yyval.command)->assert_uninstantiable.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_uninstantiable.text = (yyvsp[-1].text);
}
-#line 3916 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4076 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 173:
-#line 1266 "src/wast-parser.y" /* yacc.c:1646 */
+ case 186:
+#line 1343 "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 3927 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4087 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 174:
-#line 1272 "src/wast-parser.y" /* yacc.c:1646 */
+ case 187:
+#line 1349 "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 3937 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4097 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 175:
-#line 1277 "src/wast-parser.y" /* yacc.c:1646 */
+ case 188:
+#line 1354 "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 3947 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4107 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 176:
-#line 1282 "src/wast-parser.y" /* yacc.c:1646 */
+ case 189:
+#line 1359 "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 3958 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4118 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 177:
-#line 1288 "src/wast-parser.y" /* yacc.c:1646 */
+ case 190:
+#line 1365 "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 3969 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4129 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 178:
-#line 1297 "src/wast-parser.y" /* yacc.c:1646 */
+ case 191:
+#line 1374 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::Action;
(yyval.command)->action = (yyvsp[0].action);
}
-#line 3979 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4139 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 180:
-#line 1303 "src/wast-parser.y" /* yacc.c:1646 */
+ case 193:
+#line 1380 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::Module;
(yyval.command)->module = (yyvsp[0].module);
}
-#line 3989 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4149 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 181:
-#line 1308 "src/wast-parser.y" /* yacc.c:1646 */
+ case 194:
+#line 1385 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::Register;
@@ -3997,29 +4157,29 @@ yyreduce:
(yyval.command)->register_.var = (yyvsp[-1].var);
(yyval.command)->register_.var.loc = (yylsp[-1]);
}
-#line 4001 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4161 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 182:
-#line 1317 "src/wast-parser.y" /* yacc.c:1646 */
+ case 195:
+#line 1394 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.commands) = new CommandPtrVector();
(yyval.commands)->emplace_back((yyvsp[0].command));
}
-#line 4010 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4170 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 183:
-#line 1321 "src/wast-parser.y" /* yacc.c:1646 */
+ case 196:
+#line 1398 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.commands) = (yyvsp[-1].commands);
(yyval.commands)->emplace_back((yyvsp[0].command));
}
-#line 4019 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4179 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 184:
-#line 1328 "src/wast-parser.y" /* yacc.c:1646 */
+ case 197:
+#line 1405 "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,
@@ -4030,34 +4190,34 @@ yyreduce:
}
delete [] (yyvsp[-1].literal).text.start;
}
-#line 4034 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4194 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 185:
-#line 1340 "src/wast-parser.y" /* yacc.c:1646 */
+ case 198:
+#line 1417 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.consts) = new ConstVector(); }
-#line 4040 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4200 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 186:
-#line 1341 "src/wast-parser.y" /* yacc.c:1646 */
+ case 199:
+#line 1418 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.consts) = (yyvsp[-1].consts);
(yyval.consts)->push_back((yyvsp[0].const_));
}
-#line 4049 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4209 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 187:
-#line 1348 "src/wast-parser.y" /* yacc.c:1646 */
+ case 200:
+#line 1425 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script) = new Script();
}
-#line 4057 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4217 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 188:
-#line 1351 "src/wast-parser.y" /* yacc.c:1646 */
+ case 201:
+#line 1428 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script) = new Script();
(yyval.script)->commands = std::move(*(yyvsp[0].commands));
@@ -4118,11 +4278,11 @@ yyreduce:
}
}
}
-#line 4122 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4282 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 189:
-#line 1411 "src/wast-parser.y" /* yacc.c:1646 */
+ case 202:
+#line 1488 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script) = new Script();
Command* command = new Command();
@@ -4130,17 +4290,17 @@ yyreduce:
command->module = (yyvsp[0].module);
(yyval.script)->commands.emplace_back(command);
}
-#line 4134 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4294 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
- case 190:
-#line 1423 "src/wast-parser.y" /* yacc.c:1646 */
+ case 203:
+#line 1500 "src/wast-parser.y" /* yacc.c:1646 */
{ parser->script = (yyvsp[0].script); }
-#line 4140 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4300 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
-#line 4144 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4304 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -4375,7 +4535,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 1426 "src/wast-parser.y" /* yacc.c:1906 */
+#line 1503 "src/wast-parser.y" /* yacc.c:1906 */
void append_expr_list(ExprList* expr_list, ExprList* expr) {
@@ -4415,6 +4575,14 @@ ExprList join_exprs2(Location* loc, ExprList* expr1, Expr* expr2) {
return result;
}
+ExprList join_expr_lists(ExprList* expr1, ExprList* expr2) {
+ ExprList result;
+ WABT_ZERO_MEMORY(result);
+ append_expr_list(&result, expr1);
+ append_expr_list(&result, expr2);
+ return result;
+}
+
Result parse_const(Type type,
LiteralType literal_type,
const char* s,
@@ -4690,10 +4858,16 @@ void append_module_fields(Module* module, ModuleField* first) {
}
Result parse_wast(WastLexer* lexer, Script** out_script,
- SourceErrorHandler* error_handler) {
+ SourceErrorHandler* error_handler,
+ WastParseOptions* options) {
WastParser parser;
WABT_ZERO_MEMORY(parser);
+ static WastParseOptions default_options;
+ if (options == nullptr)
+ options = &default_options;
+ parser.options = options;
parser.error_handler = error_handler;
+ wabt_wast_parser_debug = int(options->debug_parsing);
int result = wabt_wast_parser_parse(lexer, &parser);
delete [] parser.yyssa;
delete [] parser.yyvsa;
diff --git a/src/prebuilt/wast-parser-gen.hh b/src/prebuilt/wast-parser-gen.hh
index 39ebe5a8..68e06e4f 100644
--- a/src/prebuilt/wast-parser-gen.hh
+++ b/src/prebuilt/wast-parser-gen.hh
@@ -75,54 +75,59 @@ extern int wabt_wast_parser_debug;
WABT_TOKEN_TYPE_BR = 276,
WABT_TOKEN_TYPE_BR_IF = 277,
WABT_TOKEN_TYPE_BR_TABLE = 278,
- WABT_TOKEN_TYPE_CALL = 279,
- WABT_TOKEN_TYPE_CALL_INDIRECT = 280,
- WABT_TOKEN_TYPE_RETURN = 281,
- WABT_TOKEN_TYPE_GET_LOCAL = 282,
- WABT_TOKEN_TYPE_SET_LOCAL = 283,
- WABT_TOKEN_TYPE_TEE_LOCAL = 284,
- WABT_TOKEN_TYPE_GET_GLOBAL = 285,
- WABT_TOKEN_TYPE_SET_GLOBAL = 286,
- WABT_TOKEN_TYPE_LOAD = 287,
- WABT_TOKEN_TYPE_STORE = 288,
- WABT_TOKEN_TYPE_OFFSET_EQ_NAT = 289,
- WABT_TOKEN_TYPE_ALIGN_EQ_NAT = 290,
- WABT_TOKEN_TYPE_CONST = 291,
- WABT_TOKEN_TYPE_UNARY = 292,
- WABT_TOKEN_TYPE_BINARY = 293,
- WABT_TOKEN_TYPE_COMPARE = 294,
- WABT_TOKEN_TYPE_CONVERT = 295,
- WABT_TOKEN_TYPE_SELECT = 296,
- WABT_TOKEN_TYPE_UNREACHABLE = 297,
- WABT_TOKEN_TYPE_CURRENT_MEMORY = 298,
- WABT_TOKEN_TYPE_GROW_MEMORY = 299,
- WABT_TOKEN_TYPE_FUNC = 300,
- WABT_TOKEN_TYPE_START = 301,
- WABT_TOKEN_TYPE_TYPE = 302,
- WABT_TOKEN_TYPE_PARAM = 303,
- WABT_TOKEN_TYPE_RESULT = 304,
- WABT_TOKEN_TYPE_LOCAL = 305,
- WABT_TOKEN_TYPE_GLOBAL = 306,
- WABT_TOKEN_TYPE_MODULE = 307,
- WABT_TOKEN_TYPE_TABLE = 308,
- WABT_TOKEN_TYPE_ELEM = 309,
- WABT_TOKEN_TYPE_MEMORY = 310,
- WABT_TOKEN_TYPE_DATA = 311,
- WABT_TOKEN_TYPE_OFFSET = 312,
- WABT_TOKEN_TYPE_IMPORT = 313,
- WABT_TOKEN_TYPE_EXPORT = 314,
- WABT_TOKEN_TYPE_REGISTER = 315,
- WABT_TOKEN_TYPE_INVOKE = 316,
- WABT_TOKEN_TYPE_GET = 317,
- WABT_TOKEN_TYPE_ASSERT_MALFORMED = 318,
- WABT_TOKEN_TYPE_ASSERT_INVALID = 319,
- WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 320,
- WABT_TOKEN_TYPE_ASSERT_RETURN = 321,
- WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 322,
- WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 323,
- WABT_TOKEN_TYPE_ASSERT_TRAP = 324,
- WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 325,
- WABT_TOKEN_TYPE_LOW = 326
+ WABT_TOKEN_TYPE_TRY = 279,
+ WABT_TOKEN_TYPE_CATCH = 280,
+ WABT_TOKEN_TYPE_CATCH_ALL = 281,
+ WABT_TOKEN_TYPE_THROW = 282,
+ WABT_TOKEN_TYPE_RETHROW = 283,
+ WABT_TOKEN_TYPE_CALL = 284,
+ WABT_TOKEN_TYPE_CALL_INDIRECT = 285,
+ WABT_TOKEN_TYPE_RETURN = 286,
+ WABT_TOKEN_TYPE_GET_LOCAL = 287,
+ WABT_TOKEN_TYPE_SET_LOCAL = 288,
+ WABT_TOKEN_TYPE_TEE_LOCAL = 289,
+ WABT_TOKEN_TYPE_GET_GLOBAL = 290,
+ WABT_TOKEN_TYPE_SET_GLOBAL = 291,
+ WABT_TOKEN_TYPE_LOAD = 292,
+ WABT_TOKEN_TYPE_STORE = 293,
+ WABT_TOKEN_TYPE_OFFSET_EQ_NAT = 294,
+ WABT_TOKEN_TYPE_ALIGN_EQ_NAT = 295,
+ WABT_TOKEN_TYPE_CONST = 296,
+ WABT_TOKEN_TYPE_UNARY = 297,
+ WABT_TOKEN_TYPE_BINARY = 298,
+ WABT_TOKEN_TYPE_COMPARE = 299,
+ WABT_TOKEN_TYPE_CONVERT = 300,
+ WABT_TOKEN_TYPE_SELECT = 301,
+ WABT_TOKEN_TYPE_UNREACHABLE = 302,
+ WABT_TOKEN_TYPE_CURRENT_MEMORY = 303,
+ WABT_TOKEN_TYPE_GROW_MEMORY = 304,
+ WABT_TOKEN_TYPE_FUNC = 305,
+ WABT_TOKEN_TYPE_START = 306,
+ WABT_TOKEN_TYPE_TYPE = 307,
+ WABT_TOKEN_TYPE_PARAM = 308,
+ WABT_TOKEN_TYPE_RESULT = 309,
+ WABT_TOKEN_TYPE_LOCAL = 310,
+ WABT_TOKEN_TYPE_GLOBAL = 311,
+ WABT_TOKEN_TYPE_MODULE = 312,
+ WABT_TOKEN_TYPE_TABLE = 313,
+ WABT_TOKEN_TYPE_ELEM = 314,
+ WABT_TOKEN_TYPE_MEMORY = 315,
+ WABT_TOKEN_TYPE_DATA = 316,
+ WABT_TOKEN_TYPE_OFFSET = 317,
+ WABT_TOKEN_TYPE_IMPORT = 318,
+ WABT_TOKEN_TYPE_EXPORT = 319,
+ WABT_TOKEN_TYPE_REGISTER = 320,
+ WABT_TOKEN_TYPE_INVOKE = 321,
+ WABT_TOKEN_TYPE_GET = 322,
+ WABT_TOKEN_TYPE_ASSERT_MALFORMED = 323,
+ WABT_TOKEN_TYPE_ASSERT_INVALID = 324,
+ WABT_TOKEN_TYPE_ASSERT_UNLINKABLE = 325,
+ WABT_TOKEN_TYPE_ASSERT_RETURN = 326,
+ WABT_TOKEN_TYPE_ASSERT_RETURN_CANONICAL_NAN = 327,
+ WABT_TOKEN_TYPE_ASSERT_RETURN_ARITHMETIC_NAN = 328,
+ WABT_TOKEN_TYPE_ASSERT_TRAP = 329,
+ WABT_TOKEN_TYPE_ASSERT_EXHAUSTION = 330,
+ WABT_TOKEN_TYPE_LOW = 331
};
#endif
diff --git a/src/prebuilt/wast-parser-gen.output b/src/prebuilt/wast-parser-gen.output
index 60e37fe7..76e56d23 100644
--- a/src/prebuilt/wast-parser-gen.output
+++ b/src/prebuilt/wast-parser-gen.output
@@ -88,419 +88,455 @@ Grammar
62 | CONVERT
63 | CURRENT_MEMORY
64 | GROW_MEMORY
+ 65 | throw_check var
+ 66 | rethrow_check var
- 65 block_instr: BLOCK labeling_opt block END labeling_opt
- 66 | LOOP labeling_opt block END labeling_opt
- 67 | IF labeling_opt block END labeling_opt
- 68 | IF labeling_opt block ELSE labeling_opt instr_list END labeling_opt
+ 67 block_instr: BLOCK labeling_opt block END labeling_opt
+ 68 | LOOP labeling_opt block END labeling_opt
+ 69 | IF labeling_opt block END labeling_opt
+ 70 | IF labeling_opt block ELSE labeling_opt instr_list END labeling_opt
+ 71 | try_check labeling_opt block catch_instr_list END labeling_opt
- 69 block_sig: "(" RESULT value_type_list ")"
+ 72 block_sig: "(" RESULT value_type_list ")"
- 70 block: block_sig block
- 71 | instr_list
+ 73 block: block_sig block
+ 74 | instr_list
- 72 expr: "(" expr1 ")"
+ 75 catch_instr: CATCH var instr_list
+ 76 | CATCH_ALL var instr_list
- 73 expr1: plain_instr expr_list
- 74 | BLOCK labeling_opt block
- 75 | LOOP labeling_opt block
- 76 | IF labeling_opt if_block
+ 77 catch_instr_list: catch_instr
+ 78 | catch_instr catch_instr_list
- 77 if_block: block_sig if_block
- 78 | if_
+ 79 expr: "(" expr1 ")"
- 79 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")"
- 80 | "(" THEN instr_list ")"
- 81 | expr "(" THEN instr_list ")" "(" ELSE instr_list ")"
- 82 | expr "(" THEN instr_list ")"
- 83 | expr expr expr
- 84 | expr expr
+ 80 expr1: plain_instr expr_list
+ 81 | BLOCK labeling_opt block
+ 82 | LOOP labeling_opt block
+ 83 | IF labeling_opt if_block
+ 84 | try_check "(" BLOCK labeling_opt block ")" catch_list
- 85 instr_list: %empty
- 86 | instr instr_list
+ 85 catch_list: "(" catch_instr ")"
+ 86 | "(" catch_instr ")" catch_list
- 87 expr_list: %empty
- 88 | expr expr_list
+ 87 if_block: block_sig if_block
+ 88 | if_
- 89 const_expr: instr_list
+ 89 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")"
+ 90 | "(" THEN instr_list ")"
+ 91 | expr "(" THEN instr_list ")" "(" ELSE instr_list ")"
+ 92 | expr "(" THEN instr_list ")"
+ 93 | expr expr expr
+ 94 | expr expr
- 90 func: "(" FUNC bind_var_opt func_fields ")"
+ 95 rethrow_check: RETHROW
- 91 func_fields: type_use func_fields_body
- 92 | func_fields_body
- 93 | inline_import type_use func_fields_import
- 94 | inline_import func_fields_import
- 95 | inline_export func_fields
+ 96 throw_check: THROW
- 96 func_fields_import: func_fields_import1
+ 97 try_check: TRY
- 97 func_fields_import1: %empty
- 98 | "(" RESULT value_type_list ")"
- 99 | "(" PARAM value_type_list ")" func_fields_import1
- 100 | "(" PARAM bind_var VALUE_TYPE ")" func_fields_import1
+ 98 instr_list: %empty
+ 99 | instr instr_list
- 101 func_fields_body: func_fields_body1
+ 100 expr_list: %empty
+ 101 | expr expr_list
- 102 func_fields_body1: func_body
- 103 | "(" RESULT value_type_list ")" func_body
- 104 | "(" PARAM value_type_list ")" func_fields_body1
- 105 | "(" PARAM bind_var VALUE_TYPE ")" func_fields_body1
+ 102 const_expr: instr_list
- 106 func_body: func_body1
+ 103 func: "(" FUNC bind_var_opt func_fields ")"
- 107 func_body1: instr_list
- 108 | "(" LOCAL value_type_list ")" func_body1
- 109 | "(" LOCAL bind_var VALUE_TYPE ")" func_body1
+ 104 func_fields: type_use func_fields_body
+ 105 | func_fields_body
+ 106 | inline_import type_use func_fields_import
+ 107 | inline_import func_fields_import
+ 108 | inline_export func_fields
- 110 offset: "(" OFFSET const_expr ")"
- 111 | expr
+ 109 func_fields_import: func_fields_import1
- 112 elem: "(" ELEM var offset var_list ")"
- 113 | "(" ELEM offset var_list ")"
+ 110 func_fields_import1: %empty
+ 111 | "(" RESULT value_type_list ")"
+ 112 | "(" PARAM value_type_list ")" func_fields_import1
+ 113 | "(" PARAM bind_var VALUE_TYPE ")" func_fields_import1
- 114 table: "(" TABLE bind_var_opt table_fields ")"
+ 114 func_fields_body: func_fields_body1
- 115 table_fields: table_sig
- 116 | inline_import table_sig
- 117 | inline_export table_fields
- 118 | elem_type "(" ELEM var_list ")"
+ 115 func_fields_body1: func_body
+ 116 | "(" RESULT value_type_list ")" func_body
+ 117 | "(" PARAM value_type_list ")" func_fields_body1
+ 118 | "(" PARAM bind_var VALUE_TYPE ")" func_fields_body1
- 119 data: "(" DATA var offset text_list_opt ")"
- 120 | "(" DATA offset text_list_opt ")"
+ 119 func_body: func_body1
- 121 memory: "(" MEMORY bind_var_opt memory_fields ")"
+ 120 func_body1: instr_list
+ 121 | "(" LOCAL value_type_list ")" func_body1
+ 122 | "(" LOCAL bind_var VALUE_TYPE ")" func_body1
- 122 memory_fields: memory_sig
- 123 | inline_import memory_sig
- 124 | inline_export memory_fields
- 125 | "(" DATA text_list_opt ")"
+ 123 offset: "(" OFFSET const_expr ")"
+ 124 | expr
- 126 global: "(" GLOBAL bind_var_opt global_fields ")"
+ 125 elem: "(" ELEM var offset var_list ")"
+ 126 | "(" ELEM offset var_list ")"
- 127 global_fields: global_type const_expr
- 128 | inline_import global_type
- 129 | inline_export global_fields
+ 127 table: "(" TABLE bind_var_opt table_fields ")"
- 130 import_desc: "(" FUNC bind_var_opt type_use ")"
- 131 | "(" FUNC bind_var_opt func_sig ")"
- 132 | "(" TABLE bind_var_opt table_sig ")"
- 133 | "(" MEMORY bind_var_opt memory_sig ")"
- 134 | "(" GLOBAL bind_var_opt global_type ")"
+ 128 table_fields: table_sig
+ 129 | inline_import table_sig
+ 130 | inline_export table_fields
+ 131 | elem_type "(" ELEM var_list ")"
- 135 import: "(" IMPORT quoted_text quoted_text import_desc ")"
+ 132 data: "(" DATA var offset text_list_opt ")"
+ 133 | "(" DATA offset text_list_opt ")"
- 136 inline_import: "(" IMPORT quoted_text quoted_text ")"
+ 134 memory: "(" MEMORY bind_var_opt memory_fields ")"
- 137 export_desc: "(" FUNC var ")"
- 138 | "(" TABLE var ")"
- 139 | "(" MEMORY var ")"
- 140 | "(" GLOBAL var ")"
+ 135 memory_fields: memory_sig
+ 136 | inline_import memory_sig
+ 137 | inline_export memory_fields
+ 138 | "(" DATA text_list_opt ")"
- 141 export: "(" EXPORT quoted_text export_desc ")"
+ 139 global: "(" GLOBAL bind_var_opt global_fields ")"
- 142 inline_export: "(" EXPORT quoted_text ")"
+ 140 global_fields: global_type const_expr
+ 141 | inline_import global_type
+ 142 | inline_export global_fields
- 143 type_def: "(" TYPE func_type ")"
- 144 | "(" TYPE bind_var func_type ")"
+ 143 import_desc: "(" FUNC bind_var_opt type_use ")"
+ 144 | "(" FUNC bind_var_opt func_sig ")"
+ 145 | "(" TABLE bind_var_opt table_sig ")"
+ 146 | "(" MEMORY bind_var_opt memory_sig ")"
+ 147 | "(" GLOBAL bind_var_opt global_type ")"
- 145 start: "(" START var ")"
+ 148 import: "(" IMPORT quoted_text quoted_text import_desc ")"
- 146 module_field: type_def
- 147 | global
- 148 | table
- 149 | memory
- 150 | func
- 151 | elem
- 152 | data
- 153 | start
- 154 | import
- 155 | export
+ 149 inline_import: "(" IMPORT quoted_text quoted_text ")"
- 156 module_fields_opt: %empty
- 157 | module_fields
+ 150 export_desc: "(" FUNC var ")"
+ 151 | "(" TABLE var ")"
+ 152 | "(" MEMORY var ")"
+ 153 | "(" GLOBAL var ")"
- 158 module_fields: module_field
- 159 | module_fields module_field
+ 154 export: "(" EXPORT quoted_text export_desc ")"
- 160 raw_module: "(" MODULE bind_var_opt module_fields_opt ")"
- 161 | "(" MODULE bind_var_opt text_list ")"
+ 155 inline_export: "(" EXPORT quoted_text ")"
- 162 module: raw_module
+ 156 type_def: "(" TYPE func_type ")"
+ 157 | "(" TYPE bind_var func_type ")"
- 163 inline_module: module_fields
+ 158 start: "(" START var ")"
- 164 script_var_opt: %empty
- 165 | VAR
+ 159 module_field: type_def
+ 160 | global
+ 161 | table
+ 162 | memory
+ 163 | func
+ 164 | elem
+ 165 | data
+ 166 | start
+ 167 | import
+ 168 | export
- 166 action: "(" INVOKE script_var_opt quoted_text const_list ")"
- 167 | "(" GET script_var_opt quoted_text ")"
+ 169 module_fields_opt: %empty
+ 170 | module_fields
- 168 assertion: "(" ASSERT_MALFORMED raw_module quoted_text ")"
- 169 | "(" ASSERT_INVALID raw_module quoted_text ")"
- 170 | "(" ASSERT_UNLINKABLE raw_module quoted_text ")"
- 171 | "(" ASSERT_TRAP raw_module quoted_text ")"
- 172 | "(" ASSERT_RETURN action const_list ")"
- 173 | "(" ASSERT_RETURN_CANONICAL_NAN action ")"
- 174 | "(" ASSERT_RETURN_ARITHMETIC_NAN action ")"
- 175 | "(" ASSERT_TRAP action quoted_text ")"
- 176 | "(" ASSERT_EXHAUSTION action quoted_text ")"
+ 171 module_fields: module_field
+ 172 | module_fields module_field
- 177 cmd: action
- 178 | assertion
- 179 | module
- 180 | "(" REGISTER quoted_text script_var_opt ")"
+ 173 raw_module: "(" MODULE bind_var_opt module_fields_opt ")"
+ 174 | "(" MODULE bind_var_opt text_list ")"
- 181 cmd_list: cmd
- 182 | cmd_list cmd
+ 175 module: raw_module
- 183 const: "(" CONST literal ")"
+ 176 inline_module: module_fields
- 184 const_list: %empty
- 185 | const_list const
+ 177 script_var_opt: %empty
+ 178 | VAR
- 186 script: %empty
- 187 | cmd_list
- 188 | inline_module
+ 179 action: "(" INVOKE script_var_opt quoted_text const_list ")"
+ 180 | "(" GET script_var_opt quoted_text ")"
- 189 script_start: script
+ 181 assertion: "(" ASSERT_MALFORMED raw_module quoted_text ")"
+ 182 | "(" ASSERT_INVALID raw_module quoted_text ")"
+ 183 | "(" ASSERT_UNLINKABLE raw_module quoted_text ")"
+ 184 | "(" ASSERT_TRAP raw_module quoted_text ")"
+ 185 | "(" ASSERT_RETURN action const_list ")"
+ 186 | "(" ASSERT_RETURN_CANONICAL_NAN action ")"
+ 187 | "(" ASSERT_RETURN_ARITHMETIC_NAN action ")"
+ 188 | "(" ASSERT_TRAP action quoted_text ")"
+ 189 | "(" ASSERT_EXHAUSTION action quoted_text ")"
+
+ 190 cmd: action
+ 191 | assertion
+ 192 | module
+ 193 | "(" REGISTER quoted_text script_var_opt ")"
+
+ 194 cmd_list: cmd
+ 195 | cmd_list cmd
+
+ 196 const: "(" CONST literal ")"
+
+ 197 const_list: %empty
+ 198 | const_list const
+
+ 199 script: %empty
+ 200 | cmd_list
+ 201 | inline_module
+
+ 202 script_start: script
Terminals, with rules where they appear
"EOF" (0) 0
error (256)
-"(" (258) 10 11 13 14 15 20 69 72 79 80 81 82 90 98 99 100 103 104
- 105 108 109 110 112 113 114 118 119 120 121 125 126 130 131 132
- 133 134 135 136 137 138 139 140 141 142 143 144 145 160 161 166
- 167 168 169 170 171 172 173 174 175 176 180 183
-")" (259) 10 11 13 14 15 20 69 72 79 80 81 82 90 98 99 100 103 104
- 105 108 109 110 112 113 114 118 119 120 121 125 126 130 131 132
- 133 134 135 136 137 138 139 140 141 142 143 144 145 160 161 166
- 167 168 169 170 171 172 173 174 175 176 180 183
+"(" (258) 10 11 13 14 15 20 72 79 84 85 86 89 90 91 92 103 111 112
+ 113 116 117 118 121 122 123 125 126 127 131 132 133 134 138 139
+ 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
+ 173 174 179 180 181 182 183 184 185 186 187 188 189 193 196
+")" (259) 10 11 13 14 15 20 72 79 84 85 86 89 90 91 92 103 111 112
+ 113 116 117 118 121 122 123 125 126 127 131 132 133 134 138 139
+ 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
+ 173 174 179 180 181 182 183 184 185 186 187 188 189 193 196
NAT (260) 21 22
INT (261) 23
FLOAT (262) 24
TEXT (263) 1 2 5
-VAR (264) 26 31 165
-VALUE_TYPE (265) 7 9 10 100 105 109
+VAR (264) 26 31 178
+VALUE_TYPE (265) 7 9 10 113 118 122
ANYFUNC (266) 8
MUT (267) 10
NOP (268) 42
DROP (269) 43
-BLOCK (270) 65 74
-END (271) 65 66 67 68
-IF (272) 67 68 76
-THEN (273) 79 80 81 82
-ELSE (274) 68 79 81
-LOOP (275) 66 75
+BLOCK (270) 67 81 84
+END (271) 67 68 69 70 71
+IF (272) 69 70 83
+THEN (273) 89 90 91 92
+ELSE (274) 70 89 91
+LOOP (275) 68 82
BR (276) 45
BR_IF (277) 46
BR_TABLE (278) 47
-CALL (279) 49
-CALL_INDIRECT (280) 50
-RETURN (281) 48
-GET_LOCAL (282) 51
-SET_LOCAL (283) 52
-TEE_LOCAL (284) 53
-GET_GLOBAL (285) 54
-SET_GLOBAL (286) 55
-LOAD (287) 56
-STORE (288) 57
-OFFSET_EQ_NAT (289) 35
-ALIGN_EQ_NAT (290) 37
-CONST (291) 58 183
-UNARY (292) 59
-BINARY (293) 60
-COMPARE (294) 61
-CONVERT (295) 62
-SELECT (296) 44
-UNREACHABLE (297) 41
-CURRENT_MEMORY (298) 63
-GROW_MEMORY (299) 64
-FUNC (300) 11 90 130 131 137
-START (301) 145
-TYPE (302) 20 143 144
-PARAM (303) 13 14 99 100 104 105
-RESULT (304) 14 15 69 98 103
-LOCAL (305) 108 109
-GLOBAL (306) 126 134 140
-MODULE (307) 160 161
-TABLE (308) 114 132 138
-ELEM (309) 112 113 118
-MEMORY (310) 121 133 139
-DATA (311) 119 120 125
-OFFSET (312) 110
-IMPORT (313) 135 136
-EXPORT (314) 141 142
-REGISTER (315) 180
-INVOKE (316) 166
-GET (317) 167
-ASSERT_MALFORMED (318) 168
-ASSERT_INVALID (319) 169
-ASSERT_UNLINKABLE (320) 170
-ASSERT_RETURN (321) 172
-ASSERT_RETURN_CANONICAL_NAN (322) 173
-ASSERT_RETURN_ARITHMETIC_NAN (323) 174
-ASSERT_TRAP (324) 171 175
-ASSERT_EXHAUSTION (325) 176
-LOW (326)
+TRY (279) 97
+CATCH (280) 75
+CATCH_ALL (281) 76
+THROW (282) 96
+RETHROW (283) 95
+CALL (284) 49
+CALL_INDIRECT (285) 50
+RETURN (286) 48
+GET_LOCAL (287) 51
+SET_LOCAL (288) 52
+TEE_LOCAL (289) 53
+GET_GLOBAL (290) 54
+SET_GLOBAL (291) 55
+LOAD (292) 56
+STORE (293) 57
+OFFSET_EQ_NAT (294) 35
+ALIGN_EQ_NAT (295) 37
+CONST (296) 58 196
+UNARY (297) 59
+BINARY (298) 60
+COMPARE (299) 61
+CONVERT (300) 62
+SELECT (301) 44
+UNREACHABLE (302) 41
+CURRENT_MEMORY (303) 63
+GROW_MEMORY (304) 64
+FUNC (305) 11 103 143 144 150
+START (306) 158
+TYPE (307) 20 156 157
+PARAM (308) 13 14 112 113 117 118
+RESULT (309) 14 15 72 111 116
+LOCAL (310) 121 122
+GLOBAL (311) 139 147 153
+MODULE (312) 173 174
+TABLE (313) 127 145 151
+ELEM (314) 125 126 131
+MEMORY (315) 134 146 152
+DATA (316) 132 133 138
+OFFSET (317) 123
+IMPORT (318) 148 149
+EXPORT (319) 154 155
+REGISTER (320) 193
+INVOKE (321) 179
+GET (322) 180
+ASSERT_MALFORMED (323) 181
+ASSERT_INVALID (324) 182
+ASSERT_UNLINKABLE (325) 183
+ASSERT_RETURN (326) 185
+ASSERT_RETURN_CANONICAL_NAN (327) 186
+ASSERT_RETURN_ARITHMETIC_NAN (328) 187
+ASSERT_TRAP (329) 184 188
+ASSERT_EXHAUSTION (330) 189
+LOW (331)
Nonterminals, with rules where they appear
-$accept (72)
+$accept (77)
on left: 0
-text_list (73)
- on left: 1 2, on right: 2 4 161
-text_list_opt (74)
- on left: 3 4, on right: 119 120 125
-quoted_text (75)
- on left: 5, on right: 135 136 141 142 166 167 168 169 170 171 175
- 176 180
-value_type_list (76)
- on left: 6 7, on right: 7 13 14 15 69 98 99 103 104 108
-elem_type (77)
- on left: 8, on right: 16 118
-global_type (78)
- on left: 9 10, on right: 127 128 134
-func_type (79)
- on left: 11, on right: 143 144
-func_sig (80)
- on left: 12 13 14 15, on right: 11 131
-table_sig (81)
- on left: 16, on right: 115 116 132
-memory_sig (82)
- on left: 17, on right: 122 123 133
-limits (83)
+text_list (78)
+ on left: 1 2, on right: 2 4 174
+text_list_opt (79)
+ on left: 3 4, on right: 132 133 138
+quoted_text (80)
+ on left: 5, on right: 148 149 154 155 179 180 181 182 183 184 188
+ 189 193
+value_type_list (81)
+ on left: 6 7, on right: 7 13 14 15 72 111 112 116 117 121
+elem_type (82)
+ on left: 8, on right: 16 131
+global_type (83)
+ on left: 9 10, on right: 140 141 147
+func_type (84)
+ on left: 11, on right: 156 157
+func_sig (85)
+ on left: 12 13 14 15, on right: 11 144
+table_sig (86)
+ on left: 16, on right: 128 129 145
+memory_sig (87)
+ on left: 17, on right: 135 136 146
+limits (88)
on left: 18 19, on right: 16 17
-type_use (84)
- on left: 20, on right: 91 93 130
-nat (85)
+type_use (89)
+ on left: 20, on right: 104 106 143
+nat (90)
on left: 21, on right: 18 19 25
-literal (86)
- on left: 22 23 24, on right: 58 183
-var (87)
- on left: 25 26, on right: 20 28 45 46 47 49 50 51 52 53 54 55 112
- 119 137 138 139 140 145
-var_list (88)
- on left: 27 28, on right: 28 47 112 113 118
-bind_var_opt (89)
- on left: 29 30, on right: 90 114 121 126 130 131 132 133 134 160
- 161
-bind_var (90)
- on left: 31, on right: 30 33 100 105 109 144
-labeling_opt (91)
- on left: 32 33, on right: 65 66 67 68 74 75 76
-offset_opt (92)
+literal (91)
+ on left: 22 23 24, on right: 58 196
+var (92)
+ on left: 25 26, on right: 20 28 45 46 47 49 50 51 52 53 54 55 65
+ 66 75 76 125 132 150 151 152 153 158
+var_list (93)
+ on left: 27 28, on right: 28 47 125 126 131
+bind_var_opt (94)
+ on left: 29 30, on right: 103 127 134 139 143 144 145 146 147 173
+ 174
+bind_var (95)
+ on left: 31, on right: 30 33 113 118 122 157
+labeling_opt (96)
+ on left: 32 33, on right: 67 68 69 70 71 81 82 83 84
+offset_opt (97)
on left: 34 35, on right: 56 57
-align_opt (93)
+align_opt (98)
on left: 36 37, on right: 56 57
-instr (94)
- on left: 38 39 40, on right: 86
-plain_instr (95)
+instr (99)
+ on left: 38 39 40, on right: 99
+plain_instr (100)
on left: 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
- 59 60 61 62 63 64, on right: 38 73
-block_instr (96)
- on left: 65 66 67 68, on right: 39
-block_sig (97)
- on left: 69, on right: 70 77
-block (98)
- on left: 70 71, on right: 65 66 67 68 70 74 75
-expr (99)
- on left: 72, on right: 40 81 82 83 84 88 111
-expr1 (100)
- on left: 73 74 75 76, on right: 72
-if_block (101)
- on left: 77 78, on right: 76 77
-if_ (102)
- on left: 79 80 81 82 83 84, on right: 78
-instr_list (103)
- on left: 85 86, on right: 68 71 79 80 81 82 86 89 107
-expr_list (104)
- on left: 87 88, on right: 73 88
-const_expr (105)
- on left: 89, on right: 110 127
-func (106)
- on left: 90, on right: 150
-func_fields (107)
- on left: 91 92 93 94 95, on right: 90 95
-func_fields_import (108)
- on left: 96, on right: 93 94
-func_fields_import1 (109)
- on left: 97 98 99 100, on right: 96 99 100
-func_fields_body (110)
- on left: 101, on right: 91 92
-func_fields_body1 (111)
- on left: 102 103 104 105, on right: 101 104 105
-func_body (112)
- on left: 106, on right: 102 103
-func_body1 (113)
- on left: 107 108 109, on right: 106 108 109
-offset (114)
- on left: 110 111, on right: 112 113 119 120
-elem (115)
- on left: 112 113, on right: 151
-table (116)
- on left: 114, on right: 148
-table_fields (117)
- on left: 115 116 117 118, on right: 114 117
-data (118)
- on left: 119 120, on right: 152
-memory (119)
- on left: 121, on right: 149
-memory_fields (120)
- on left: 122 123 124 125, on right: 121 124
-global (121)
- on left: 126, on right: 147
-global_fields (122)
- on left: 127 128 129, on right: 126 129
-import_desc (123)
- on left: 130 131 132 133 134, on right: 135
-import (124)
- on left: 135, on right: 154
-inline_import (125)
- on left: 136, on right: 93 94 116 123 128
-export_desc (126)
- on left: 137 138 139 140, on right: 141
-export (127)
- on left: 141, on right: 155
-inline_export (128)
- on left: 142, on right: 95 117 124 129
-type_def (129)
- on left: 143 144, on right: 146
-start (130)
- on left: 145, on right: 153
-module_field (131)
- on left: 146 147 148 149 150 151 152 153 154 155, on right: 158
- 159
-module_fields_opt (132)
- on left: 156 157, on right: 160
-module_fields (133)
- on left: 158 159, on right: 157 159 163
-raw_module (134)
- on left: 160 161, on right: 162 168 169 170 171
-module (135)
- on left: 162, on right: 179
-inline_module (136)
- on left: 163, on right: 188
-script_var_opt (137)
- on left: 164 165, on right: 166 167 180
-action (138)
- on left: 166 167, on right: 172 173 174 175 176 177
-assertion (139)
- on left: 168 169 170 171 172 173 174 175 176, on right: 178
-cmd (140)
- on left: 177 178 179 180, on right: 181 182
-cmd_list (141)
- on left: 181 182, on right: 182 187
-const (142)
- on left: 183, on right: 185
-const_list (143)
- on left: 184 185, on right: 166 172 185
-script (144)
- on left: 186 187 188, on right: 189
-script_start (145)
- on left: 189, on right: 0
+ 59 60 61 62 63 64 65 66, on right: 38 80
+block_instr (101)
+ on left: 67 68 69 70 71, on right: 39
+block_sig (102)
+ on left: 72, on right: 73 87
+block (103)
+ on left: 73 74, on right: 67 68 69 70 71 73 81 82 84
+catch_instr (104)
+ on left: 75 76, on right: 77 78 85 86
+catch_instr_list (105)
+ on left: 77 78, on right: 71 78
+expr (106)
+ on left: 79, on right: 40 91 92 93 94 101 124
+expr1 (107)
+ on left: 80 81 82 83 84, on right: 79
+catch_list (108)
+ on left: 85 86, on right: 84 86
+if_block (109)
+ on left: 87 88, on right: 83 87
+if_ (110)
+ on left: 89 90 91 92 93 94, on right: 88
+rethrow_check (111)
+ on left: 95, on right: 66
+throw_check (112)
+ on left: 96, on right: 65
+try_check (113)
+ on left: 97, on right: 71 84
+instr_list (114)
+ on left: 98 99, on right: 70 74 75 76 89 90 91 92 99 102 120
+expr_list (115)
+ on left: 100 101, on right: 80 101
+const_expr (116)
+ on left: 102, on right: 123 140
+func (117)
+ on left: 103, on right: 163
+func_fields (118)
+ on left: 104 105 106 107 108, on right: 103 108
+func_fields_import (119)
+ on left: 109, on right: 106 107
+func_fields_import1 (120)
+ on left: 110 111 112 113, on right: 109 112 113
+func_fields_body (121)
+ on left: 114, on right: 104 105
+func_fields_body1 (122)
+ on left: 115 116 117 118, on right: 114 117 118
+func_body (123)
+ on left: 119, on right: 115 116
+func_body1 (124)
+ on left: 120 121 122, on right: 119 121 122
+offset (125)
+ on left: 123 124, on right: 125 126 132 133
+elem (126)
+ on left: 125 126, on right: 164
+table (127)
+ on left: 127, on right: 161
+table_fields (128)
+ on left: 128 129 130 131, on right: 127 130
+data (129)
+ on left: 132 133, on right: 165
+memory (130)
+ on left: 134, on right: 162
+memory_fields (131)
+ on left: 135 136 137 138, on right: 134 137
+global (132)
+ on left: 139, on right: 160
+global_fields (133)
+ on left: 140 141 142, on right: 139 142
+import_desc (134)
+ on left: 143 144 145 146 147, on right: 148
+import (135)
+ on left: 148, on right: 167
+inline_import (136)
+ on left: 149, on right: 106 107 129 136 141
+export_desc (137)
+ on left: 150 151 152 153, on right: 154
+export (138)
+ on left: 154, on right: 168
+inline_export (139)
+ on left: 155, on right: 108 130 137 142
+type_def (140)
+ on left: 156 157, on right: 159
+start (141)
+ on left: 158, on right: 166
+module_field (142)
+ on left: 159 160 161 162 163 164 165 166 167 168, on right: 171
+ 172
+module_fields_opt (143)
+ on left: 169 170, on right: 173
+module_fields (144)
+ on left: 171 172, on right: 170 172 176
+raw_module (145)
+ on left: 173 174, on right: 175 181 182 183 184
+module (146)
+ on left: 175, on right: 192
+inline_module (147)
+ on left: 176, on right: 201
+script_var_opt (148)
+ on left: 177 178, on right: 179 180 193
+action (149)
+ on left: 179 180, on right: 185 186 187 188 189 190
+assertion (150)
+ on left: 181 182 183 184 185 186 187 188 189, on right: 191
+cmd (151)
+ on left: 190 191 192 193, on right: 194 195
+cmd_list (152)
+ on left: 194 195, on right: 195 200
+const (153)
+ on left: 196, on right: 198
+const_list (154)
+ on left: 197 198, on right: 179 185 198
+script (155)
+ on left: 199 200 201, on right: 202
+script_start (156)
+ on left: 202, on right: 0
State 0
@@ -509,7 +545,7 @@ State 0
"(" shift, and go to state 1
- $default reduce using rule 186 (script)
+ $default reduce using rule 199 (script)
func go to state 2
elem go to state 3
@@ -536,33 +572,33 @@ State 0
State 1
- 90 func: "(" . FUNC bind_var_opt func_fields ")"
- 112 elem: "(" . ELEM var offset var_list ")"
- 113 | "(" . ELEM offset var_list ")"
- 114 table: "(" . TABLE bind_var_opt table_fields ")"
- 119 data: "(" . DATA var offset text_list_opt ")"
- 120 | "(" . DATA offset text_list_opt ")"
- 121 memory: "(" . MEMORY bind_var_opt memory_fields ")"
- 126 global: "(" . GLOBAL bind_var_opt global_fields ")"
- 135 import: "(" . IMPORT quoted_text quoted_text import_desc ")"
- 141 export: "(" . EXPORT quoted_text export_desc ")"
- 143 type_def: "(" . TYPE func_type ")"
- 144 | "(" . TYPE bind_var func_type ")"
- 145 start: "(" . START var ")"
- 160 raw_module: "(" . MODULE bind_var_opt module_fields_opt ")"
- 161 | "(" . MODULE bind_var_opt text_list ")"
- 166 action: "(" . INVOKE script_var_opt quoted_text const_list ")"
- 167 | "(" . GET script_var_opt quoted_text ")"
- 168 assertion: "(" . ASSERT_MALFORMED raw_module quoted_text ")"
- 169 | "(" . ASSERT_INVALID raw_module quoted_text ")"
- 170 | "(" . ASSERT_UNLINKABLE raw_module quoted_text ")"
- 171 | "(" . ASSERT_TRAP raw_module quoted_text ")"
- 172 | "(" . ASSERT_RETURN action const_list ")"
- 173 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")"
- 174 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")"
- 175 | "(" . ASSERT_TRAP action quoted_text ")"
- 176 | "(" . ASSERT_EXHAUSTION action quoted_text ")"
- 180 cmd: "(" . REGISTER quoted_text script_var_opt ")"
+ 103 func: "(" . FUNC bind_var_opt func_fields ")"
+ 125 elem: "(" . ELEM var offset var_list ")"
+ 126 | "(" . ELEM offset var_list ")"
+ 127 table: "(" . TABLE bind_var_opt table_fields ")"
+ 132 data: "(" . DATA var offset text_list_opt ")"
+ 133 | "(" . DATA offset text_list_opt ")"
+ 134 memory: "(" . MEMORY bind_var_opt memory_fields ")"
+ 139 global: "(" . GLOBAL bind_var_opt global_fields ")"
+ 148 import: "(" . IMPORT quoted_text quoted_text import_desc ")"
+ 154 export: "(" . EXPORT quoted_text export_desc ")"
+ 156 type_def: "(" . TYPE func_type ")"
+ 157 | "(" . TYPE bind_var func_type ")"
+ 158 start: "(" . START var ")"
+ 173 raw_module: "(" . MODULE bind_var_opt module_fields_opt ")"
+ 174 | "(" . MODULE bind_var_opt text_list ")"
+ 179 action: "(" . INVOKE script_var_opt quoted_text const_list ")"
+ 180 | "(" . GET script_var_opt quoted_text ")"
+ 181 assertion: "(" . ASSERT_MALFORMED raw_module quoted_text ")"
+ 182 | "(" . ASSERT_INVALID raw_module quoted_text ")"
+ 183 | "(" . ASSERT_UNLINKABLE raw_module quoted_text ")"
+ 184 | "(" . ASSERT_TRAP raw_module quoted_text ")"
+ 185 | "(" . ASSERT_RETURN action const_list ")"
+ 186 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")"
+ 187 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")"
+ 188 | "(" . ASSERT_TRAP action quoted_text ")"
+ 189 | "(" . ASSERT_EXHAUSTION action quoted_text ")"
+ 193 cmd: "(" . REGISTER quoted_text script_var_opt ")"
FUNC shift, and go to state 23
START shift, and go to state 24
@@ -590,89 +626,89 @@ State 1
State 2
- 150 module_field: func .
+ 163 module_field: func .
- $default reduce using rule 150 (module_field)
+ $default reduce using rule 163 (module_field)
State 3
- 151 module_field: elem .
+ 164 module_field: elem .
- $default reduce using rule 151 (module_field)
+ $default reduce using rule 164 (module_field)
State 4
- 148 module_field: table .
+ 161 module_field: table .
- $default reduce using rule 148 (module_field)
+ $default reduce using rule 161 (module_field)
State 5
- 152 module_field: data .
+ 165 module_field: data .
- $default reduce using rule 152 (module_field)
+ $default reduce using rule 165 (module_field)
State 6
- 149 module_field: memory .
+ 162 module_field: memory .
- $default reduce using rule 149 (module_field)
+ $default reduce using rule 162 (module_field)
State 7
- 147 module_field: global .
+ 160 module_field: global .
- $default reduce using rule 147 (module_field)
+ $default reduce using rule 160 (module_field)
State 8
- 154 module_field: import .
+ 167 module_field: import .
- $default reduce using rule 154 (module_field)
+ $default reduce using rule 167 (module_field)
State 9
- 155 module_field: export .
+ 168 module_field: export .
- $default reduce using rule 155 (module_field)
+ $default reduce using rule 168 (module_field)
State 10
- 146 module_field: type_def .
+ 159 module_field: type_def .
- $default reduce using rule 146 (module_field)
+ $default reduce using rule 159 (module_field)
State 11
- 153 module_field: start .
+ 166 module_field: start .
- $default reduce using rule 153 (module_field)
+ $default reduce using rule 166 (module_field)
State 12
- 158 module_fields: module_field .
+ 171 module_fields: module_field .
- $default reduce using rule 158 (module_fields)
+ $default reduce using rule 171 (module_fields)
State 13
- 159 module_fields: module_fields . module_field
- 163 inline_module: module_fields .
+ 172 module_fields: module_fields . module_field
+ 176 inline_module: module_fields .
"(" shift, and go to state 45
- $default reduce using rule 163 (inline_module)
+ $default reduce using rule 176 (inline_module)
func go to state 2
elem go to state 3
@@ -689,54 +725,54 @@ State 13
State 14
- 162 module: raw_module .
+ 175 module: raw_module .
- $default reduce using rule 162 (module)
+ $default reduce using rule 175 (module)
State 15
- 179 cmd: module .
+ 192 cmd: module .
- $default reduce using rule 179 (cmd)
+ $default reduce using rule 192 (cmd)
State 16
- 188 script: inline_module .
+ 201 script: inline_module .
- $default reduce using rule 188 (script)
+ $default reduce using rule 201 (script)
State 17
- 177 cmd: action .
+ 190 cmd: action .
- $default reduce using rule 177 (cmd)
+ $default reduce using rule 190 (cmd)
State 18
- 178 cmd: assertion .
+ 191 cmd: assertion .
- $default reduce using rule 178 (cmd)
+ $default reduce using rule 191 (cmd)
State 19
- 181 cmd_list: cmd .
+ 194 cmd_list: cmd .
- $default reduce using rule 181 (cmd_list)
+ $default reduce using rule 194 (cmd_list)
State 20
- 182 cmd_list: cmd_list . cmd
- 187 script: cmd_list .
+ 195 cmd_list: cmd_list . cmd
+ 200 script: cmd_list .
"(" shift, and go to state 47
- $default reduce using rule 187 (script)
+ $default reduce using rule 200 (script)
raw_module go to state 14
module go to state 15
@@ -747,9 +783,9 @@ State 20
State 21
- 189 script_start: script .
+ 202 script_start: script .
- $default reduce using rule 189 (script_start)
+ $default reduce using rule 202 (script_start)
State 22
@@ -761,7 +797,7 @@ State 22
State 23
- 90 func: "(" FUNC . bind_var_opt func_fields ")"
+ 103 func: "(" FUNC . bind_var_opt func_fields ")"
VAR shift, and go to state 50
@@ -773,7 +809,7 @@ State 23
State 24
- 145 start: "(" START . var ")"
+ 158 start: "(" START . var ")"
NAT shift, and go to state 53
VAR shift, and go to state 54
@@ -784,8 +820,8 @@ State 24
State 25
- 143 type_def: "(" TYPE . func_type ")"
- 144 | "(" TYPE . bind_var func_type ")"
+ 156 type_def: "(" TYPE . func_type ")"
+ 157 | "(" TYPE . bind_var func_type ")"
"(" shift, and go to state 57
VAR shift, and go to state 50
@@ -796,7 +832,7 @@ State 25
State 26
- 126 global: "(" GLOBAL . bind_var_opt global_fields ")"
+ 139 global: "(" GLOBAL . bind_var_opt global_fields ")"
VAR shift, and go to state 50
@@ -808,8 +844,8 @@ State 26
State 27
- 160 raw_module: "(" MODULE . bind_var_opt module_fields_opt ")"
- 161 | "(" MODULE . bind_var_opt text_list ")"
+ 173 raw_module: "(" MODULE . bind_var_opt module_fields_opt ")"
+ 174 | "(" MODULE . bind_var_opt text_list ")"
VAR shift, and go to state 50
@@ -821,7 +857,7 @@ State 27
State 28
- 114 table: "(" TABLE . bind_var_opt table_fields ")"
+ 127 table: "(" TABLE . bind_var_opt table_fields ")"
VAR shift, and go to state 50
@@ -833,8 +869,8 @@ State 28
State 29
- 112 elem: "(" ELEM . var offset var_list ")"
- 113 | "(" ELEM . offset var_list ")"
+ 125 elem: "(" ELEM . var offset var_list ")"
+ 126 | "(" ELEM . offset var_list ")"
"(" shift, and go to state 63
NAT shift, and go to state 53
@@ -848,7 +884,7 @@ State 29
State 30
- 121 memory: "(" MEMORY . bind_var_opt memory_fields ")"
+ 134 memory: "(" MEMORY . bind_var_opt memory_fields ")"
VAR shift, and go to state 50
@@ -860,8 +896,8 @@ State 30
State 31
- 119 data: "(" DATA . var offset text_list_opt ")"
- 120 | "(" DATA . offset text_list_opt ")"
+ 132 data: "(" DATA . var offset text_list_opt ")"
+ 133 | "(" DATA . offset text_list_opt ")"
"(" shift, and go to state 63
NAT shift, and go to state 53
@@ -875,7 +911,7 @@ State 31
State 32
- 135 import: "(" IMPORT . quoted_text quoted_text import_desc ")"
+ 148 import: "(" IMPORT . quoted_text quoted_text import_desc ")"
TEXT shift, and go to state 70
@@ -884,7 +920,7 @@ State 32
State 33
- 141 export: "(" EXPORT . quoted_text export_desc ")"
+ 154 export: "(" EXPORT . quoted_text export_desc ")"
TEXT shift, and go to state 70
@@ -893,7 +929,7 @@ State 33
State 34
- 180 cmd: "(" REGISTER . quoted_text script_var_opt ")"
+ 193 cmd: "(" REGISTER . quoted_text script_var_opt ")"
TEXT shift, and go to state 70
@@ -902,29 +938,29 @@ State 34
State 35
- 166 action: "(" INVOKE . script_var_opt quoted_text const_list ")"
+ 179 action: "(" INVOKE . script_var_opt quoted_text const_list ")"
VAR shift, and go to state 74
- $default reduce using rule 164 (script_var_opt)
+ $default reduce using rule 177 (script_var_opt)
script_var_opt go to state 75
State 36
- 167 action: "(" GET . script_var_opt quoted_text ")"
+ 180 action: "(" GET . script_var_opt quoted_text ")"
VAR shift, and go to state 74
- $default reduce using rule 164 (script_var_opt)
+ $default reduce using rule 177 (script_var_opt)
script_var_opt go to state 76
State 37
- 168 assertion: "(" ASSERT_MALFORMED . raw_module quoted_text ")"
+ 181 assertion: "(" ASSERT_MALFORMED . raw_module quoted_text ")"
"(" shift, and go to state 77
@@ -933,7 +969,7 @@ State 37
State 38
- 169 assertion: "(" ASSERT_INVALID . raw_module quoted_text ")"
+ 182 assertion: "(" ASSERT_INVALID . raw_module quoted_text ")"
"(" shift, and go to state 77
@@ -942,7 +978,7 @@ State 38
State 39
- 170 assertion: "(" ASSERT_UNLINKABLE . raw_module quoted_text ")"
+ 183 assertion: "(" ASSERT_UNLINKABLE . raw_module quoted_text ")"
"(" shift, and go to state 77
@@ -951,7 +987,7 @@ State 39
State 40
- 172 assertion: "(" ASSERT_RETURN . action const_list ")"
+ 185 assertion: "(" ASSERT_RETURN . action const_list ")"
"(" shift, and go to state 81
@@ -960,7 +996,7 @@ State 40
State 41
- 173 assertion: "(" ASSERT_RETURN_CANONICAL_NAN . action ")"
+ 186 assertion: "(" ASSERT_RETURN_CANONICAL_NAN . action ")"
"(" shift, and go to state 81
@@ -969,7 +1005,7 @@ State 41
State 42
- 174 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN . action ")"
+ 187 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN . action ")"
"(" shift, and go to state 81
@@ -978,8 +1014,8 @@ State 42
State 43
- 171 assertion: "(" ASSERT_TRAP . raw_module quoted_text ")"
- 175 | "(" ASSERT_TRAP . action quoted_text ")"
+ 184 assertion: "(" ASSERT_TRAP . raw_module quoted_text ")"
+ 188 | "(" ASSERT_TRAP . action quoted_text ")"
"(" shift, and go to state 85
@@ -989,7 +1025,7 @@ State 43
State 44
- 176 assertion: "(" ASSERT_EXHAUSTION . action quoted_text ")"
+ 189 assertion: "(" ASSERT_EXHAUSTION . action quoted_text ")"
"(" shift, and go to state 81
@@ -998,19 +1034,19 @@ State 44
State 45
- 90 func: "(" . FUNC bind_var_opt func_fields ")"
- 112 elem: "(" . ELEM var offset var_list ")"
- 113 | "(" . ELEM offset var_list ")"
- 114 table: "(" . TABLE bind_var_opt table_fields ")"
- 119 data: "(" . DATA var offset text_list_opt ")"
- 120 | "(" . DATA offset text_list_opt ")"
- 121 memory: "(" . MEMORY bind_var_opt memory_fields ")"
- 126 global: "(" . GLOBAL bind_var_opt global_fields ")"
- 135 import: "(" . IMPORT quoted_text quoted_text import_desc ")"
- 141 export: "(" . EXPORT quoted_text export_desc ")"
- 143 type_def: "(" . TYPE func_type ")"
- 144 | "(" . TYPE bind_var func_type ")"
- 145 start: "(" . START var ")"
+ 103 func: "(" . FUNC bind_var_opt func_fields ")"
+ 125 elem: "(" . ELEM var offset var_list ")"
+ 126 | "(" . ELEM offset var_list ")"
+ 127 table: "(" . TABLE bind_var_opt table_fields ")"
+ 132 data: "(" . DATA var offset text_list_opt ")"
+ 133 | "(" . DATA offset text_list_opt ")"
+ 134 memory: "(" . MEMORY bind_var_opt memory_fields ")"
+ 139 global: "(" . GLOBAL bind_var_opt global_fields ")"
+ 148 import: "(" . IMPORT quoted_text quoted_text import_desc ")"
+ 154 export: "(" . EXPORT quoted_text export_desc ")"
+ 156 type_def: "(" . TYPE func_type ")"
+ 157 | "(" . TYPE bind_var func_type ")"
+ 158 start: "(" . START var ")"
FUNC shift, and go to state 23
START shift, and go to state 24
@@ -1026,27 +1062,27 @@ State 45
State 46
- 159 module_fields: module_fields module_field .
+ 172 module_fields: module_fields module_field .
- $default reduce using rule 159 (module_fields)
+ $default reduce using rule 172 (module_fields)
State 47
- 160 raw_module: "(" . MODULE bind_var_opt module_fields_opt ")"
- 161 | "(" . MODULE bind_var_opt text_list ")"
- 166 action: "(" . INVOKE script_var_opt quoted_text const_list ")"
- 167 | "(" . GET script_var_opt quoted_text ")"
- 168 assertion: "(" . ASSERT_MALFORMED raw_module quoted_text ")"
- 169 | "(" . ASSERT_INVALID raw_module quoted_text ")"
- 170 | "(" . ASSERT_UNLINKABLE raw_module quoted_text ")"
- 171 | "(" . ASSERT_TRAP raw_module quoted_text ")"
- 172 | "(" . ASSERT_RETURN action const_list ")"
- 173 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")"
- 174 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")"
- 175 | "(" . ASSERT_TRAP action quoted_text ")"
- 176 | "(" . ASSERT_EXHAUSTION action quoted_text ")"
- 180 cmd: "(" . REGISTER quoted_text script_var_opt ")"
+ 173 raw_module: "(" . MODULE bind_var_opt module_fields_opt ")"
+ 174 | "(" . MODULE bind_var_opt text_list ")"
+ 179 action: "(" . INVOKE script_var_opt quoted_text const_list ")"
+ 180 | "(" . GET script_var_opt quoted_text ")"
+ 181 assertion: "(" . ASSERT_MALFORMED raw_module quoted_text ")"
+ 182 | "(" . ASSERT_INVALID raw_module quoted_text ")"
+ 183 | "(" . ASSERT_UNLINKABLE raw_module quoted_text ")"
+ 184 | "(" . ASSERT_TRAP raw_module quoted_text ")"
+ 185 | "(" . ASSERT_RETURN action const_list ")"
+ 186 | "(" . ASSERT_RETURN_CANONICAL_NAN action ")"
+ 187 | "(" . ASSERT_RETURN_ARITHMETIC_NAN action ")"
+ 188 | "(" . ASSERT_TRAP action quoted_text ")"
+ 189 | "(" . ASSERT_EXHAUSTION action quoted_text ")"
+ 193 cmd: "(" . REGISTER quoted_text script_var_opt ")"
MODULE shift, and go to state 27
REGISTER shift, and go to state 34
@@ -1064,9 +1100,9 @@ State 47
State 48
- 182 cmd_list: cmd_list cmd .
+ 195 cmd_list: cmd_list cmd .
- $default reduce using rule 182 (cmd_list)
+ $default reduce using rule 195 (cmd_list)
State 49
@@ -1085,7 +1121,7 @@ State 50
State 51
- 90 func: "(" FUNC bind_var_opt . func_fields ")"
+ 103 func: "(" FUNC bind_var_opt . func_fields ")"
"(" shift, and go to state 89
NOP shift, and go to state 90
@@ -1096,41 +1132,47 @@ State 51
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- type_use go to state 117
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 122
- func_fields go to state 123
- func_fields_body go to state 124
- func_fields_body1 go to state 125
- func_body go to state 126
- func_body1 go to state 127
- inline_import go to state 128
- inline_export go to state 129
+ 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 98 (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_body go to state 132
+ func_body1 go to state 133
+ inline_import go to state 134
+ inline_export go to state 135
State 52
@@ -1163,58 +1205,58 @@ State 55
State 56
- 145 start: "(" START var . ")"
+ 158 start: "(" START var . ")"
- ")" shift, and go to state 130
+ ")" shift, and go to state 136
State 57
11 func_type: "(" . FUNC func_sig ")"
- FUNC shift, and go to state 131
+ FUNC shift, and go to state 137
State 58
- 143 type_def: "(" TYPE func_type . ")"
+ 156 type_def: "(" TYPE func_type . ")"
- ")" shift, and go to state 132
+ ")" shift, and go to state 138
State 59
- 144 type_def: "(" TYPE bind_var . func_type ")"
+ 157 type_def: "(" TYPE bind_var . func_type ")"
"(" shift, and go to state 57
- func_type go to state 133
+ func_type go to state 139
State 60
- 126 global: "(" GLOBAL bind_var_opt . global_fields ")"
+ 139 global: "(" GLOBAL bind_var_opt . global_fields ")"
- "(" shift, and go to state 134
- VALUE_TYPE shift, and go to state 135
+ "(" shift, and go to state 140
+ VALUE_TYPE shift, and go to state 141
- global_type go to state 136
- global_fields go to state 137
- inline_import go to state 138
- inline_export go to state 139
+ global_type go to state 142
+ global_fields go to state 143
+ inline_import go to state 144
+ inline_export go to state 145
State 61
- 160 raw_module: "(" MODULE bind_var_opt . module_fields_opt ")"
- 161 | "(" MODULE bind_var_opt . text_list ")"
+ 173 raw_module: "(" MODULE bind_var_opt . module_fields_opt ")"
+ 174 | "(" MODULE bind_var_opt . text_list ")"
"(" shift, and go to state 45
- TEXT shift, and go to state 140
+ TEXT shift, and go to state 146
- $default reduce using rule 156 (module_fields_opt)
+ $default reduce using rule 169 (module_fields_opt)
- text_list go to state 141
+ text_list go to state 147
func go to state 2
elem go to state 3
table go to state 4
@@ -1226,126 +1268,132 @@ State 61
type_def go to state 10
start go to state 11
module_field go to state 12
- module_fields_opt go to state 142
- module_fields go to state 143
+ module_fields_opt go to state 148
+ module_fields go to state 149
State 62
- 114 table: "(" TABLE bind_var_opt . table_fields ")"
+ 127 table: "(" TABLE bind_var_opt . table_fields ")"
- "(" shift, and go to state 144
+ "(" shift, and go to state 150
NAT shift, and go to state 53
- ANYFUNC shift, and go to state 145
+ ANYFUNC shift, and go to state 151
- elem_type go to state 146
- table_sig go to state 147
- limits go to state 148
- nat go to state 149
- table_fields go to state 150
- inline_import go to state 151
- inline_export go to state 152
+ elem_type go to state 152
+ table_sig go to state 153
+ limits go to state 154
+ nat go to state 155
+ table_fields go to state 156
+ inline_import go to state 157
+ inline_export go to state 158
State 63
- 72 expr: "(" . expr1 ")"
- 110 offset: "(" . OFFSET const_expr ")"
+ 79 expr: "(" . expr1 ")"
+ 123 offset: "(" . OFFSET const_expr ")"
NOP shift, and go to state 90
DROP shift, and go to state 91
- BLOCK shift, and go to state 153
- IF shift, and go to state 154
- LOOP shift, and go to state 155
+ BLOCK shift, and go to state 159
+ IF shift, and go to state 160
+ LOOP shift, and go to state 161
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
- OFFSET shift, and go to state 156
-
- plain_instr go to state 157
- expr1 go to state 158
+ 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 162
+
+ plain_instr go to state 163
+ expr1 go to state 164
+ rethrow_check go to state 125
+ throw_check go to state 126
+ try_check go to state 165
State 64
- 112 elem: "(" ELEM var . offset var_list ")"
+ 125 elem: "(" ELEM var . offset var_list ")"
"(" shift, and go to state 63
expr go to state 65
- offset go to state 159
+ offset go to state 166
State 65
- 111 offset: expr .
+ 124 offset: expr .
- $default reduce using rule 111 (offset)
+ $default reduce using rule 124 (offset)
State 66
- 113 elem: "(" ELEM offset . var_list ")"
+ 126 elem: "(" ELEM offset . var_list ")"
$default reduce using rule 27 (var_list)
- var_list go to state 160
+ var_list go to state 167
State 67
- 121 memory: "(" MEMORY bind_var_opt . memory_fields ")"
+ 134 memory: "(" MEMORY bind_var_opt . memory_fields ")"
- "(" shift, and go to state 161
+ "(" shift, and go to state 168
NAT shift, and go to state 53
- memory_sig go to state 162
- limits go to state 163
- nat go to state 149
- memory_fields go to state 164
- inline_import go to state 165
- inline_export go to state 166
+ memory_sig go to state 169
+ limits go to state 170
+ nat go to state 155
+ memory_fields go to state 171
+ inline_import go to state 172
+ inline_export go to state 173
State 68
- 119 data: "(" DATA var . offset text_list_opt ")"
+ 132 data: "(" DATA var . offset text_list_opt ")"
"(" shift, and go to state 63
expr go to state 65
- offset go to state 167
+ offset go to state 174
State 69
- 120 data: "(" DATA offset . text_list_opt ")"
+ 133 data: "(" DATA offset . text_list_opt ")"
- TEXT shift, and go to state 140
+ TEXT shift, and go to state 146
$default reduce using rule 3 (text_list_opt)
- text_list go to state 168
- text_list_opt go to state 169
+ text_list go to state 175
+ text_list_opt go to state 176
State 70
@@ -1357,97 +1405,97 @@ State 70
State 71
- 135 import: "(" IMPORT quoted_text . quoted_text import_desc ")"
+ 148 import: "(" IMPORT quoted_text . quoted_text import_desc ")"
TEXT shift, and go to state 70
- quoted_text go to state 170
+ quoted_text go to state 177
State 72
- 141 export: "(" EXPORT quoted_text . export_desc ")"
+ 154 export: "(" EXPORT quoted_text . export_desc ")"
- "(" shift, and go to state 171
+ "(" shift, and go to state 178
- export_desc go to state 172
+ export_desc go to state 179
State 73
- 180 cmd: "(" REGISTER quoted_text . script_var_opt ")"
+ 193 cmd: "(" REGISTER quoted_text . script_var_opt ")"
VAR shift, and go to state 74
- $default reduce using rule 164 (script_var_opt)
+ $default reduce using rule 177 (script_var_opt)
- script_var_opt go to state 173
+ script_var_opt go to state 180
State 74
- 165 script_var_opt: VAR .
+ 178 script_var_opt: VAR .
- $default reduce using rule 165 (script_var_opt)
+ $default reduce using rule 178 (script_var_opt)
State 75
- 166 action: "(" INVOKE script_var_opt . quoted_text const_list ")"
+ 179 action: "(" INVOKE script_var_opt . quoted_text const_list ")"
TEXT shift, and go to state 70
- quoted_text go to state 174
+ quoted_text go to state 181
State 76
- 167 action: "(" GET script_var_opt . quoted_text ")"
+ 180 action: "(" GET script_var_opt . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 175
+ quoted_text go to state 182
State 77
- 160 raw_module: "(" . MODULE bind_var_opt module_fields_opt ")"
- 161 | "(" . MODULE bind_var_opt text_list ")"
+ 173 raw_module: "(" . MODULE bind_var_opt module_fields_opt ")"
+ 174 | "(" . MODULE bind_var_opt text_list ")"
MODULE shift, and go to state 27
State 78
- 168 assertion: "(" ASSERT_MALFORMED raw_module . quoted_text ")"
+ 181 assertion: "(" ASSERT_MALFORMED raw_module . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 176
+ quoted_text go to state 183
State 79
- 169 assertion: "(" ASSERT_INVALID raw_module . quoted_text ")"
+ 182 assertion: "(" ASSERT_INVALID raw_module . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 177
+ quoted_text go to state 184
State 80
- 170 assertion: "(" ASSERT_UNLINKABLE raw_module . quoted_text ")"
+ 183 assertion: "(" ASSERT_UNLINKABLE raw_module . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 178
+ quoted_text go to state 185
State 81
- 166 action: "(" . INVOKE script_var_opt quoted_text const_list ")"
- 167 | "(" . GET script_var_opt quoted_text ")"
+ 179 action: "(" . INVOKE script_var_opt quoted_text const_list ")"
+ 180 | "(" . GET script_var_opt quoted_text ")"
INVOKE shift, and go to state 35
GET shift, and go to state 36
@@ -1455,33 +1503,33 @@ State 81
State 82
- 172 assertion: "(" ASSERT_RETURN action . const_list ")"
+ 185 assertion: "(" ASSERT_RETURN action . const_list ")"
- $default reduce using rule 184 (const_list)
+ $default reduce using rule 197 (const_list)
- const_list go to state 179
+ const_list go to state 186
State 83
- 173 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action . ")"
+ 186 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action . ")"
- ")" shift, and go to state 180
+ ")" shift, and go to state 187
State 84
- 174 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action . ")"
+ 187 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action . ")"
- ")" shift, and go to state 181
+ ")" shift, and go to state 188
State 85
- 160 raw_module: "(" . MODULE bind_var_opt module_fields_opt ")"
- 161 | "(" . MODULE bind_var_opt text_list ")"
- 166 action: "(" . INVOKE script_var_opt quoted_text const_list ")"
- 167 | "(" . GET script_var_opt quoted_text ")"
+ 173 raw_module: "(" . MODULE bind_var_opt module_fields_opt ")"
+ 174 | "(" . MODULE bind_var_opt text_list ")"
+ 179 action: "(" . INVOKE script_var_opt quoted_text const_list ")"
+ 180 | "(" . GET script_var_opt quoted_text ")"
MODULE shift, and go to state 27
INVOKE shift, and go to state 35
@@ -1490,79 +1538,85 @@ State 85
State 86
- 171 assertion: "(" ASSERT_TRAP raw_module . quoted_text ")"
+ 184 assertion: "(" ASSERT_TRAP raw_module . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 182
+ quoted_text go to state 189
State 87
- 175 assertion: "(" ASSERT_TRAP action . quoted_text ")"
+ 188 assertion: "(" ASSERT_TRAP action . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 183
+ quoted_text go to state 190
State 88
- 176 assertion: "(" ASSERT_EXHAUSTION action . quoted_text ")"
+ 189 assertion: "(" ASSERT_EXHAUSTION action . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 184
+ quoted_text go to state 191
State 89
20 type_use: "(" . TYPE var ")"
- 72 expr: "(" . expr1 ")"
- 103 func_fields_body1: "(" . RESULT value_type_list ")" func_body
- 104 | "(" . PARAM value_type_list ")" func_fields_body1
- 105 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_body1
- 108 func_body1: "(" . LOCAL value_type_list ")" func_body1
- 109 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1
- 136 inline_import: "(" . IMPORT quoted_text quoted_text ")"
- 142 inline_export: "(" . EXPORT quoted_text ")"
+ 79 expr: "(" . expr1 ")"
+ 116 func_fields_body1: "(" . RESULT value_type_list ")" func_body
+ 117 | "(" . PARAM value_type_list ")" func_fields_body1
+ 118 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_body1
+ 121 func_body1: "(" . LOCAL value_type_list ")" func_body1
+ 122 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1
+ 149 inline_import: "(" . IMPORT quoted_text quoted_text ")"
+ 155 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 153
- IF shift, and go to state 154
- LOOP shift, and go to state 155
+ BLOCK shift, and go to state 159
+ IF shift, and go to state 160
+ LOOP shift, and go to state 161
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
- TYPE shift, and go to state 185
- PARAM shift, and go to state 186
- RESULT shift, and go to state 187
- LOCAL shift, and go to state 188
- IMPORT shift, and go to state 189
- EXPORT shift, and go to state 190
-
- plain_instr go to state 157
- expr1 go to state 158
+ 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 192
+ PARAM shift, and go to state 193
+ RESULT shift, and go to state 194
+ LOCAL shift, and go to state 195
+ IMPORT shift, and go to state 196
+ EXPORT shift, and go to state 197
+
+ plain_instr go to state 163
+ expr1 go to state 164
+ rethrow_check go to state 125
+ throw_check go to state 126
+ try_check go to state 165
State 90
@@ -1581,39 +1635,39 @@ State 91
State 92
- 65 block_instr: BLOCK . labeling_opt block END labeling_opt
+ 67 block_instr: BLOCK . labeling_opt block END labeling_opt
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 192
+ bind_var go to state 198
+ labeling_opt go to state 199
State 93
- 67 block_instr: IF . labeling_opt block END labeling_opt
- 68 | IF . labeling_opt block ELSE labeling_opt instr_list END labeling_opt
+ 69 block_instr: IF . labeling_opt block END labeling_opt
+ 70 | IF . labeling_opt block ELSE labeling_opt instr_list END labeling_opt
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 193
+ bind_var go to state 198
+ labeling_opt go to state 200
State 94
- 66 block_instr: LOOP . labeling_opt block END labeling_opt
+ 68 block_instr: LOOP . labeling_opt block END labeling_opt
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 194
+ bind_var go to state 198
+ labeling_opt go to state 201
State 95
@@ -1624,7 +1678,7 @@ State 95
VAR shift, and go to state 54
nat go to state 55
- var go to state 195
+ var go to state 202
State 96
@@ -1635,7 +1689,7 @@ State 96
VAR shift, and go to state 54
nat go to state 55
- var go to state 196
+ var go to state 203
State 97
@@ -1644,21 +1698,42 @@ State 97
$default reduce using rule 27 (var_list)
- var_list go to state 197
+ var_list go to state 204
State 98
+ 97 try_check: TRY .
+
+ $default reduce using rule 97 (try_check)
+
+
+State 99
+
+ 96 throw_check: THROW .
+
+ $default reduce using rule 96 (throw_check)
+
+
+State 100
+
+ 95 rethrow_check: RETHROW .
+
+ $default reduce using rule 95 (rethrow_check)
+
+
+State 101
+
49 plain_instr: CALL . var
NAT shift, and go to state 53
VAR shift, and go to state 54
nat go to state 55
- var go to state 198
+ var go to state 205
-State 99
+State 102
50 plain_instr: CALL_INDIRECT . var
@@ -1666,17 +1741,17 @@ State 99
VAR shift, and go to state 54
nat go to state 55
- var go to state 199
+ var go to state 206
-State 100
+State 103
48 plain_instr: RETURN .
$default reduce using rule 48 (plain_instr)
-State 101
+State 104
51 plain_instr: GET_LOCAL . var
@@ -1684,10 +1759,10 @@ State 101
VAR shift, and go to state 54
nat go to state 55
- var go to state 200
+ var go to state 207
-State 102
+State 105
52 plain_instr: SET_LOCAL . var
@@ -1695,10 +1770,10 @@ State 102
VAR shift, and go to state 54
nat go to state 55
- var go to state 201
+ var go to state 208
-State 103
+State 106
53 plain_instr: TEE_LOCAL . var
@@ -1706,10 +1781,10 @@ State 103
VAR shift, and go to state 54
nat go to state 55
- var go to state 202
+ var go to state 209
-State 104
+State 107
54 plain_instr: GET_GLOBAL . var
@@ -1717,10 +1792,10 @@ State 104
VAR shift, and go to state 54
nat go to state 55
- var go to state 203
+ var go to state 210
-State 105
+State 108
55 plain_instr: SET_GLOBAL . var
@@ -1728,103 +1803,103 @@ State 105
VAR shift, and go to state 54
nat go to state 55
- var go to state 204
+ var go to state 211
-State 106
+State 109
56 plain_instr: LOAD . offset_opt align_opt
- OFFSET_EQ_NAT shift, and go to state 205
+ OFFSET_EQ_NAT shift, and go to state 212
$default reduce using rule 34 (offset_opt)
- offset_opt go to state 206
+ offset_opt go to state 213
-State 107
+State 110
57 plain_instr: STORE . offset_opt align_opt
- OFFSET_EQ_NAT shift, and go to state 205
+ OFFSET_EQ_NAT shift, and go to state 212
$default reduce using rule 34 (offset_opt)
- offset_opt go to state 207
+ offset_opt go to state 214
-State 108
+State 111
58 plain_instr: CONST . literal
- NAT shift, and go to state 208
- INT shift, and go to state 209
- FLOAT shift, and go to state 210
+ NAT shift, and go to state 215
+ INT shift, and go to state 216
+ FLOAT shift, and go to state 217
- literal go to state 211
+ literal go to state 218
-State 109
+State 112
59 plain_instr: UNARY .
$default reduce using rule 59 (plain_instr)
-State 110
+State 113
60 plain_instr: BINARY .
$default reduce using rule 60 (plain_instr)
-State 111
+State 114
61 plain_instr: COMPARE .
$default reduce using rule 61 (plain_instr)
-State 112
+State 115
62 plain_instr: CONVERT .
$default reduce using rule 62 (plain_instr)
-State 113
+State 116
44 plain_instr: SELECT .
$default reduce using rule 44 (plain_instr)
-State 114
+State 117
41 plain_instr: UNREACHABLE .
$default reduce using rule 41 (plain_instr)
-State 115
+State 118
63 plain_instr: CURRENT_MEMORY .
$default reduce using rule 63 (plain_instr)
-State 116
+State 119
64 plain_instr: GROW_MEMORY .
$default reduce using rule 64 (plain_instr)
-State 117
+State 120
- 91 func_fields: type_use . func_fields_body
+ 104 func_fields: type_use . func_fields_body
- "(" shift, and go to state 212
+ "(" shift, and go to state 219
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -1833,44 +1908,50 @@ State 117
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 122
- func_fields_body go to state 213
- func_fields_body1 go to state 125
- func_body go to state 126
- func_body1 go to state 127
+ 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 98 (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 220
+ func_fields_body1 go to state 131
+ func_body go to state 132
+ func_body1 go to state 133
-State 118
+State 121
- 86 instr_list: instr . instr_list
+ 99 instr_list: instr . instr_list
- "(" shift, and go to state 214
+ "(" 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
@@ -1879,115 +1960,155 @@ State 118
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 215
+ 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 98 (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 222
-State 119
+State 122
38 instr: plain_instr .
$default reduce using rule 38 (instr)
-State 120
+State 123
39 instr: block_instr .
$default reduce using rule 39 (instr)
-State 121
+State 124
40 instr: expr .
$default reduce using rule 40 (instr)
-State 122
+State 125
- 107 func_body1: instr_list .
+ 66 plain_instr: rethrow_check . var
- $default reduce using rule 107 (func_body1)
+ NAT shift, and go to state 53
+ VAR shift, and go to state 54
+ nat go to state 55
+ var go to state 223
-State 123
- 90 func: "(" FUNC bind_var_opt func_fields . ")"
+State 126
- ")" shift, and go to state 216
+ 65 plain_instr: throw_check . var
+ NAT shift, and go to state 53
+ VAR shift, and go to state 54
-State 124
+ nat go to state 55
+ var go to state 224
- 92 func_fields: func_fields_body .
- $default reduce using rule 92 (func_fields)
+State 127
+ 71 block_instr: try_check . labeling_opt block catch_instr_list END labeling_opt
-State 125
+ VAR shift, and go to state 50
- 101 func_fields_body: func_fields_body1 .
+ $default reduce using rule 32 (labeling_opt)
- $default reduce using rule 101 (func_fields_body)
+ bind_var go to state 198
+ labeling_opt go to state 225
-State 126
+State 128
- 102 func_fields_body1: func_body .
+ 120 func_body1: instr_list .
- $default reduce using rule 102 (func_fields_body1)
+ $default reduce using rule 120 (func_body1)
-State 127
+State 129
- 106 func_body: func_body1 .
+ 103 func: "(" FUNC bind_var_opt func_fields . ")"
- $default reduce using rule 106 (func_body)
+ ")" shift, and go to state 226
-State 128
+State 130
- 93 func_fields: inline_import . type_use func_fields_import
- 94 | inline_import . func_fields_import
+ 105 func_fields: func_fields_body .
- "(" shift, and go to state 217
+ $default reduce using rule 105 (func_fields)
- $default reduce using rule 97 (func_fields_import1)
- type_use go to state 218
- func_fields_import go to state 219
- func_fields_import1 go to state 220
+State 131
+ 114 func_fields_body: func_fields_body1 .
-State 129
+ $default reduce using rule 114 (func_fields_body)
+
+
+State 132
+
+ 115 func_fields_body1: func_body .
+
+ $default reduce using rule 115 (func_fields_body1)
+
+
+State 133
- 95 func_fields: inline_export . func_fields
+ 119 func_body: func_body1 .
+
+ $default reduce using rule 119 (func_body)
+
+
+State 134
+
+ 106 func_fields: inline_import . type_use func_fields_import
+ 107 | inline_import . func_fields_import
+
+ "(" shift, and go to state 227
+
+ $default reduce using rule 110 (func_fields_import1)
+
+ type_use go to state 228
+ func_fields_import go to state 229
+ func_fields_import1 go to state 230
+
+
+State 135
+
+ 108 func_fields: inline_export . func_fields
"(" shift, and go to state 89
NOP shift, and go to state 90
@@ -1998,98 +2119,104 @@ State 129
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- type_use go to state 117
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 122
- func_fields go to state 221
- func_fields_body go to state 124
- func_fields_body1 go to state 125
- func_body go to state 126
- func_body1 go to state 127
- inline_import go to state 128
- inline_export go to state 129
+ 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 98 (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 231
+ func_fields_body go to state 130
+ func_fields_body1 go to state 131
+ func_body go to state 132
+ func_body1 go to state 133
+ inline_import go to state 134
+ inline_export go to state 135
-State 130
+State 136
- 145 start: "(" START var ")" .
+ 158 start: "(" START var ")" .
- $default reduce using rule 145 (start)
+ $default reduce using rule 158 (start)
-State 131
+State 137
11 func_type: "(" FUNC . func_sig ")"
- "(" shift, and go to state 222
+ "(" shift, and go to state 232
$default reduce using rule 12 (func_sig)
- func_sig go to state 223
+ func_sig go to state 233
-State 132
+State 138
- 143 type_def: "(" TYPE func_type ")" .
+ 156 type_def: "(" TYPE func_type ")" .
- $default reduce using rule 143 (type_def)
+ $default reduce using rule 156 (type_def)
-State 133
+State 139
- 144 type_def: "(" TYPE bind_var func_type . ")"
+ 157 type_def: "(" TYPE bind_var func_type . ")"
- ")" shift, and go to state 224
+ ")" shift, and go to state 234
-State 134
+State 140
10 global_type: "(" . MUT VALUE_TYPE ")"
- 136 inline_import: "(" . IMPORT quoted_text quoted_text ")"
- 142 inline_export: "(" . EXPORT quoted_text ")"
+ 149 inline_import: "(" . IMPORT quoted_text quoted_text ")"
+ 155 inline_export: "(" . EXPORT quoted_text ")"
- MUT shift, and go to state 225
- IMPORT shift, and go to state 189
- EXPORT shift, and go to state 190
+ MUT shift, and go to state 235
+ IMPORT shift, and go to state 196
+ EXPORT shift, and go to state 197
-State 135
+State 141
9 global_type: VALUE_TYPE .
$default reduce using rule 9 (global_type)
-State 136
+State 142
- 127 global_fields: global_type . const_expr
+ 140 global_fields: global_type . const_expr
- "(" shift, and go to state 214
+ "(" 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
@@ -2098,97 +2225,103 @@ State 136
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 226
- const_expr go to state 227
+ 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 98 (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 236
+ const_expr go to state 237
-State 137
+State 143
- 126 global: "(" GLOBAL bind_var_opt global_fields . ")"
+ 139 global: "(" GLOBAL bind_var_opt global_fields . ")"
- ")" shift, and go to state 228
+ ")" shift, and go to state 238
-State 138
+State 144
- 128 global_fields: inline_import . global_type
+ 141 global_fields: inline_import . global_type
- "(" shift, and go to state 229
- VALUE_TYPE shift, and go to state 135
+ "(" shift, and go to state 239
+ VALUE_TYPE shift, and go to state 141
- global_type go to state 230
+ global_type go to state 240
-State 139
+State 145
- 129 global_fields: inline_export . global_fields
+ 142 global_fields: inline_export . global_fields
- "(" shift, and go to state 134
- VALUE_TYPE shift, and go to state 135
+ "(" shift, and go to state 140
+ VALUE_TYPE shift, and go to state 141
- global_type go to state 136
- global_fields go to state 231
- inline_import go to state 138
- inline_export go to state 139
+ global_type go to state 142
+ global_fields go to state 241
+ inline_import go to state 144
+ inline_export go to state 145
-State 140
+State 146
1 text_list: TEXT .
$default reduce using rule 1 (text_list)
-State 141
+State 147
2 text_list: text_list . TEXT
- 161 raw_module: "(" MODULE bind_var_opt text_list . ")"
+ 174 raw_module: "(" MODULE bind_var_opt text_list . ")"
- ")" shift, and go to state 232
- TEXT shift, and go to state 233
+ ")" shift, and go to state 242
+ TEXT shift, and go to state 243
-State 142
+State 148
- 160 raw_module: "(" MODULE bind_var_opt module_fields_opt . ")"
+ 173 raw_module: "(" MODULE bind_var_opt module_fields_opt . ")"
- ")" shift, and go to state 234
+ ")" shift, and go to state 244
-State 143
+State 149
- 157 module_fields_opt: module_fields .
- 159 module_fields: module_fields . module_field
+ 170 module_fields_opt: module_fields .
+ 172 module_fields: module_fields . module_field
"(" shift, and go to state 45
- $default reduce using rule 157 (module_fields_opt)
+ $default reduce using rule 170 (module_fields_opt)
func go to state 2
elem go to state 3
@@ -2203,46 +2336,46 @@ State 143
module_field go to state 46
-State 144
+State 150
- 136 inline_import: "(" . IMPORT quoted_text quoted_text ")"
- 142 inline_export: "(" . EXPORT quoted_text ")"
+ 149 inline_import: "(" . IMPORT quoted_text quoted_text ")"
+ 155 inline_export: "(" . EXPORT quoted_text ")"
- IMPORT shift, and go to state 189
- EXPORT shift, and go to state 190
+ IMPORT shift, and go to state 196
+ EXPORT shift, and go to state 197
-State 145
+State 151
8 elem_type: ANYFUNC .
$default reduce using rule 8 (elem_type)
-State 146
+State 152
- 118 table_fields: elem_type . "(" ELEM var_list ")"
+ 131 table_fields: elem_type . "(" ELEM var_list ")"
- "(" shift, and go to state 235
+ "(" shift, and go to state 245
-State 147
+State 153
- 115 table_fields: table_sig .
+ 128 table_fields: table_sig .
- $default reduce using rule 115 (table_fields)
+ $default reduce using rule 128 (table_fields)
-State 148
+State 154
16 table_sig: limits . elem_type
- ANYFUNC shift, and go to state 145
+ ANYFUNC shift, and go to state 151
- elem_type go to state 236
+ elem_type go to state 246
-State 149
+State 155
18 limits: nat .
19 | nat . nat
@@ -2251,85 +2384,85 @@ State 149
$default reduce using rule 18 (limits)
- nat go to state 237
+ nat go to state 247
-State 150
+State 156
- 114 table: "(" TABLE bind_var_opt table_fields . ")"
+ 127 table: "(" TABLE bind_var_opt table_fields . ")"
- ")" shift, and go to state 238
+ ")" shift, and go to state 248
-State 151
+State 157
- 116 table_fields: inline_import . table_sig
+ 129 table_fields: inline_import . table_sig
NAT shift, and go to state 53
- table_sig go to state 239
- limits go to state 148
- nat go to state 149
+ table_sig go to state 249
+ limits go to state 154
+ nat go to state 155
-State 152
+State 158
- 117 table_fields: inline_export . table_fields
+ 130 table_fields: inline_export . table_fields
- "(" shift, and go to state 144
+ "(" shift, and go to state 150
NAT shift, and go to state 53
- ANYFUNC shift, and go to state 145
+ ANYFUNC shift, and go to state 151
- elem_type go to state 146
- table_sig go to state 147
- limits go to state 148
- nat go to state 149
- table_fields go to state 240
- inline_import go to state 151
- inline_export go to state 152
+ elem_type go to state 152
+ table_sig go to state 153
+ limits go to state 154
+ nat go to state 155
+ table_fields go to state 250
+ inline_import go to state 157
+ inline_export go to state 158
-State 153
+State 159
- 74 expr1: BLOCK . labeling_opt block
+ 81 expr1: BLOCK . labeling_opt block
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 241
+ bind_var go to state 198
+ labeling_opt go to state 251
-State 154
+State 160
- 76 expr1: IF . labeling_opt if_block
+ 83 expr1: IF . labeling_opt if_block
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 242
+ bind_var go to state 198
+ labeling_opt go to state 252
-State 155
+State 161
- 75 expr1: LOOP . labeling_opt block
+ 82 expr1: LOOP . labeling_opt block
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 243
+ bind_var go to state 198
+ labeling_opt go to state 253
-State 156
+State 162
- 110 offset: "(" OFFSET . const_expr ")"
+ 123 offset: "(" OFFSET . const_expr ")"
- "(" shift, and go to state 214
+ "(" 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
@@ -2338,284 +2471,297 @@ State 156
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 226
- const_expr go to state 244
+ 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 98 (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 236
+ const_expr go to state 254
-State 157
+State 163
- 73 expr1: plain_instr . expr_list
+ 80 expr1: plain_instr . expr_list
- "(" shift, and go to state 214
+ "(" shift, and go to state 221
- $default reduce using rule 87 (expr_list)
+ $default reduce using rule 100 (expr_list)
- expr go to state 245
- expr_list go to state 246
+ expr go to state 255
+ expr_list go to state 256
-State 158
+State 164
- 72 expr: "(" expr1 . ")"
+ 79 expr: "(" expr1 . ")"
- ")" shift, and go to state 247
+ ")" shift, and go to state 257
-State 159
+State 165
- 112 elem: "(" ELEM var offset . var_list ")"
+ 84 expr1: try_check . "(" BLOCK labeling_opt block ")" catch_list
+
+ "(" shift, and go to state 258
+
+
+State 166
+
+ 125 elem: "(" ELEM var offset . var_list ")"
$default reduce using rule 27 (var_list)
- var_list go to state 248
+ var_list go to state 259
-State 160
+State 167
28 var_list: var_list . var
- 113 elem: "(" ELEM offset var_list . ")"
+ 126 elem: "(" ELEM offset var_list . ")"
- ")" shift, and go to state 249
+ ")" shift, and go to state 260
NAT shift, and go to state 53
VAR shift, and go to state 54
nat go to state 55
- var go to state 250
+ var go to state 261
-State 161
+State 168
- 125 memory_fields: "(" . DATA text_list_opt ")"
- 136 inline_import: "(" . IMPORT quoted_text quoted_text ")"
- 142 inline_export: "(" . EXPORT quoted_text ")"
+ 138 memory_fields: "(" . DATA text_list_opt ")"
+ 149 inline_import: "(" . IMPORT quoted_text quoted_text ")"
+ 155 inline_export: "(" . EXPORT quoted_text ")"
- DATA shift, and go to state 251
- IMPORT shift, and go to state 189
- EXPORT shift, and go to state 190
+ DATA shift, and go to state 262
+ IMPORT shift, and go to state 196
+ EXPORT shift, and go to state 197
-State 162
+State 169
- 122 memory_fields: memory_sig .
+ 135 memory_fields: memory_sig .
- $default reduce using rule 122 (memory_fields)
+ $default reduce using rule 135 (memory_fields)
-State 163
+State 170
17 memory_sig: limits .
$default reduce using rule 17 (memory_sig)
-State 164
+State 171
- 121 memory: "(" MEMORY bind_var_opt memory_fields . ")"
+ 134 memory: "(" MEMORY bind_var_opt memory_fields . ")"
- ")" shift, and go to state 252
+ ")" shift, and go to state 263
-State 165
+State 172
- 123 memory_fields: inline_import . memory_sig
+ 136 memory_fields: inline_import . memory_sig
NAT shift, and go to state 53
- memory_sig go to state 253
- limits go to state 163
- nat go to state 149
+ memory_sig go to state 264
+ limits go to state 170
+ nat go to state 155
-State 166
+State 173
- 124 memory_fields: inline_export . memory_fields
+ 137 memory_fields: inline_export . memory_fields
- "(" shift, and go to state 161
+ "(" shift, and go to state 168
NAT shift, and go to state 53
- memory_sig go to state 162
- limits go to state 163
- nat go to state 149
- memory_fields go to state 254
- inline_import go to state 165
- inline_export go to state 166
+ memory_sig go to state 169
+ limits go to state 170
+ nat go to state 155
+ memory_fields go to state 265
+ inline_import go to state 172
+ inline_export go to state 173
-State 167
+State 174
- 119 data: "(" DATA var offset . text_list_opt ")"
+ 132 data: "(" DATA var offset . text_list_opt ")"
- TEXT shift, and go to state 140
+ TEXT shift, and go to state 146
$default reduce using rule 3 (text_list_opt)
- text_list go to state 168
- text_list_opt go to state 255
+ text_list go to state 175
+ text_list_opt go to state 266
-State 168
+State 175
2 text_list: text_list . TEXT
4 text_list_opt: text_list .
- TEXT shift, and go to state 233
+ TEXT shift, and go to state 243
$default reduce using rule 4 (text_list_opt)
-State 169
+State 176
- 120 data: "(" DATA offset text_list_opt . ")"
+ 133 data: "(" DATA offset text_list_opt . ")"
- ")" shift, and go to state 256
+ ")" shift, and go to state 267
-State 170
+State 177
- 135 import: "(" IMPORT quoted_text quoted_text . import_desc ")"
+ 148 import: "(" IMPORT quoted_text quoted_text . import_desc ")"
- "(" shift, and go to state 257
+ "(" shift, and go to state 268
- import_desc go to state 258
+ import_desc go to state 269
-State 171
+State 178
- 137 export_desc: "(" . FUNC var ")"
- 138 | "(" . TABLE var ")"
- 139 | "(" . MEMORY var ")"
- 140 | "(" . GLOBAL var ")"
+ 150 export_desc: "(" . FUNC var ")"
+ 151 | "(" . TABLE var ")"
+ 152 | "(" . MEMORY var ")"
+ 153 | "(" . GLOBAL var ")"
- FUNC shift, and go to state 259
- GLOBAL shift, and go to state 260
- TABLE shift, and go to state 261
- MEMORY shift, and go to state 262
+ FUNC shift, and go to state 270
+ GLOBAL shift, and go to state 271
+ TABLE shift, and go to state 272
+ MEMORY shift, and go to state 273
-State 172
+State 179
- 141 export: "(" EXPORT quoted_text export_desc . ")"
+ 154 export: "(" EXPORT quoted_text export_desc . ")"
- ")" shift, and go to state 263
+ ")" shift, and go to state 274
-State 173
+State 180
- 180 cmd: "(" REGISTER quoted_text script_var_opt . ")"
+ 193 cmd: "(" REGISTER quoted_text script_var_opt . ")"
- ")" shift, and go to state 264
+ ")" shift, and go to state 275
-State 174
+State 181
- 166 action: "(" INVOKE script_var_opt quoted_text . const_list ")"
+ 179 action: "(" INVOKE script_var_opt quoted_text . const_list ")"
- $default reduce using rule 184 (const_list)
+ $default reduce using rule 197 (const_list)
- const_list go to state 265
+ const_list go to state 276
-State 175
+State 182
- 167 action: "(" GET script_var_opt quoted_text . ")"
+ 180 action: "(" GET script_var_opt quoted_text . ")"
- ")" shift, and go to state 266
+ ")" shift, and go to state 277
-State 176
+State 183
- 168 assertion: "(" ASSERT_MALFORMED raw_module quoted_text . ")"
+ 181 assertion: "(" ASSERT_MALFORMED raw_module quoted_text . ")"
- ")" shift, and go to state 267
+ ")" shift, and go to state 278
-State 177
+State 184
- 169 assertion: "(" ASSERT_INVALID raw_module quoted_text . ")"
+ 182 assertion: "(" ASSERT_INVALID raw_module quoted_text . ")"
- ")" shift, and go to state 268
+ ")" shift, and go to state 279
-State 178
+State 185
- 170 assertion: "(" ASSERT_UNLINKABLE raw_module quoted_text . ")"
+ 183 assertion: "(" ASSERT_UNLINKABLE raw_module quoted_text . ")"
- ")" shift, and go to state 269
+ ")" shift, and go to state 280
-State 179
+State 186
- 172 assertion: "(" ASSERT_RETURN action const_list . ")"
- 185 const_list: const_list . const
+ 185 assertion: "(" ASSERT_RETURN action const_list . ")"
+ 198 const_list: const_list . const
- "(" shift, and go to state 270
- ")" shift, and go to state 271
+ "(" shift, and go to state 281
+ ")" shift, and go to state 282
- const go to state 272
+ const go to state 283
-State 180
+State 187
- 173 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action ")" .
+ 186 assertion: "(" ASSERT_RETURN_CANONICAL_NAN action ")" .
- $default reduce using rule 173 (assertion)
+ $default reduce using rule 186 (assertion)
-State 181
+State 188
- 174 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action ")" .
+ 187 assertion: "(" ASSERT_RETURN_ARITHMETIC_NAN action ")" .
- $default reduce using rule 174 (assertion)
+ $default reduce using rule 187 (assertion)
-State 182
+State 189
- 171 assertion: "(" ASSERT_TRAP raw_module quoted_text . ")"
+ 184 assertion: "(" ASSERT_TRAP raw_module quoted_text . ")"
- ")" shift, and go to state 273
+ ")" shift, and go to state 284
-State 183
+State 190
- 175 assertion: "(" ASSERT_TRAP action quoted_text . ")"
+ 188 assertion: "(" ASSERT_TRAP action quoted_text . ")"
- ")" shift, and go to state 274
+ ")" shift, and go to state 285
-State 184
+State 191
- 176 assertion: "(" ASSERT_EXHAUSTION action quoted_text . ")"
+ 189 assertion: "(" ASSERT_EXHAUSTION action quoted_text . ")"
- ")" shift, and go to state 275
+ ")" shift, and go to state 286
-State 185
+State 192
20 type_use: "(" TYPE . var ")"
@@ -2623,74 +2769,74 @@ State 185
VAR shift, and go to state 54
nat go to state 55
- var go to state 276
+ var go to state 287
-State 186
+State 193
- 104 func_fields_body1: "(" PARAM . value_type_list ")" func_fields_body1
- 105 | "(" PARAM . bind_var VALUE_TYPE ")" func_fields_body1
+ 117 func_fields_body1: "(" PARAM . value_type_list ")" func_fields_body1
+ 118 | "(" PARAM . bind_var VALUE_TYPE ")" func_fields_body1
VAR shift, and go to state 50
$default reduce using rule 6 (value_type_list)
- value_type_list go to state 277
- bind_var go to state 278
+ value_type_list go to state 288
+ bind_var go to state 289
-State 187
+State 194
- 103 func_fields_body1: "(" RESULT . value_type_list ")" func_body
+ 116 func_fields_body1: "(" RESULT . value_type_list ")" func_body
$default reduce using rule 6 (value_type_list)
- value_type_list go to state 279
+ value_type_list go to state 290
-State 188
+State 195
- 108 func_body1: "(" LOCAL . value_type_list ")" func_body1
- 109 | "(" LOCAL . bind_var VALUE_TYPE ")" func_body1
+ 121 func_body1: "(" LOCAL . value_type_list ")" func_body1
+ 122 | "(" LOCAL . bind_var VALUE_TYPE ")" func_body1
VAR shift, and go to state 50
$default reduce using rule 6 (value_type_list)
- value_type_list go to state 280
- bind_var go to state 281
+ value_type_list go to state 291
+ bind_var go to state 292
-State 189
+State 196
- 136 inline_import: "(" IMPORT . quoted_text quoted_text ")"
+ 149 inline_import: "(" IMPORT . quoted_text quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 282
+ quoted_text go to state 293
-State 190
+State 197
- 142 inline_export: "(" EXPORT . quoted_text ")"
+ 155 inline_export: "(" EXPORT . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 283
+ quoted_text go to state 294
-State 191
+State 198
33 labeling_opt: bind_var .
$default reduce using rule 33 (labeling_opt)
-State 192
+State 199
- 65 block_instr: BLOCK labeling_opt . block END labeling_opt
+ 67 block_instr: BLOCK labeling_opt . block END labeling_opt
- "(" shift, and go to state 284
+ "(" shift, and go to state 295
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -2699,43 +2845,49 @@ State 192
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- block_sig go to state 285
- block go to state 286
- expr go to state 121
- instr_list go to state 287
+ 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 98 (instr_list)
+
+ instr go to state 121
+ plain_instr go to state 122
+ block_instr go to state 123
+ block_sig go to state 296
+ block go to state 297
+ 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 298
-State 193
+State 200
- 67 block_instr: IF labeling_opt . block END labeling_opt
- 68 | IF labeling_opt . block ELSE labeling_opt instr_list END labeling_opt
+ 69 block_instr: IF labeling_opt . block END labeling_opt
+ 70 | IF labeling_opt . block ELSE labeling_opt instr_list END labeling_opt
- "(" shift, and go to state 284
+ "(" shift, and go to state 295
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -2744,42 +2896,48 @@ State 193
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- block_sig go to state 285
- block go to state 288
- expr go to state 121
- instr_list go to state 287
+ 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 98 (instr_list)
+
+ instr go to state 121
+ plain_instr go to state 122
+ block_instr go to state 123
+ block_sig go to state 296
+ block go to state 299
+ 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 298
-State 194
+State 201
- 66 block_instr: LOOP labeling_opt . block END labeling_opt
+ 68 block_instr: LOOP labeling_opt . block END labeling_opt
- "(" shift, and go to state 284
+ "(" shift, and go to state 295
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -2788,52 +2946,58 @@ State 194
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- block_sig go to state 285
- block go to state 289
- expr go to state 121
- instr_list go to state 287
+ 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 98 (instr_list)
+
+ instr go to state 121
+ plain_instr go to state 122
+ block_instr go to state 123
+ block_sig go to state 296
+ block go to state 300
+ 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 298
-State 195
+State 202
45 plain_instr: BR var .
$default reduce using rule 45 (plain_instr)
-State 196
+State 203
46 plain_instr: BR_IF var .
$default reduce using rule 46 (plain_instr)
-State 197
+State 204
28 var_list: var_list . var
47 plain_instr: BR_TABLE var_list . var
@@ -2842,402 +3006,478 @@ State 197
VAR shift, and go to state 54
nat go to state 55
- var go to state 290
+ var go to state 301
-State 198
+State 205
49 plain_instr: CALL var .
$default reduce using rule 49 (plain_instr)
-State 199
+State 206
50 plain_instr: CALL_INDIRECT var .
$default reduce using rule 50 (plain_instr)
-State 200
+State 207
51 plain_instr: GET_LOCAL var .
$default reduce using rule 51 (plain_instr)
-State 201
+State 208
52 plain_instr: SET_LOCAL var .
$default reduce using rule 52 (plain_instr)
-State 202
+State 209
53 plain_instr: TEE_LOCAL var .
$default reduce using rule 53 (plain_instr)
-State 203
+State 210
54 plain_instr: GET_GLOBAL var .
$default reduce using rule 54 (plain_instr)
-State 204
+State 211
55 plain_instr: SET_GLOBAL var .
$default reduce using rule 55 (plain_instr)
-State 205
+State 212
35 offset_opt: OFFSET_EQ_NAT .
$default reduce using rule 35 (offset_opt)
-State 206
+State 213
56 plain_instr: LOAD offset_opt . align_opt
- ALIGN_EQ_NAT shift, and go to state 291
+ ALIGN_EQ_NAT shift, and go to state 302
$default reduce using rule 36 (align_opt)
- align_opt go to state 292
+ align_opt go to state 303
-State 207
+State 214
57 plain_instr: STORE offset_opt . align_opt
- ALIGN_EQ_NAT shift, and go to state 291
+ ALIGN_EQ_NAT shift, and go to state 302
$default reduce using rule 36 (align_opt)
- align_opt go to state 293
+ align_opt go to state 304
-State 208
+State 215
22 literal: NAT .
$default reduce using rule 22 (literal)
-State 209
+State 216
23 literal: INT .
$default reduce using rule 23 (literal)
-State 210
+State 217
24 literal: FLOAT .
$default reduce using rule 24 (literal)
-State 211
+State 218
58 plain_instr: CONST literal .
$default reduce using rule 58 (plain_instr)
-State 212
+State 219
- 72 expr: "(" . expr1 ")"
- 103 func_fields_body1: "(" . RESULT value_type_list ")" func_body
- 104 | "(" . PARAM value_type_list ")" func_fields_body1
- 105 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_body1
- 108 func_body1: "(" . LOCAL value_type_list ")" func_body1
- 109 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1
+ 79 expr: "(" . expr1 ")"
+ 116 func_fields_body1: "(" . RESULT value_type_list ")" func_body
+ 117 | "(" . PARAM value_type_list ")" func_fields_body1
+ 118 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_body1
+ 121 func_body1: "(" . LOCAL value_type_list ")" func_body1
+ 122 | "(" . 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 153
- IF shift, and go to state 154
- LOOP shift, and go to state 155
+ BLOCK shift, and go to state 159
+ IF shift, and go to state 160
+ LOOP shift, and go to state 161
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
- PARAM shift, and go to state 186
- RESULT shift, and go to state 187
- LOCAL shift, and go to state 188
-
- plain_instr go to state 157
- expr1 go to state 158
+ 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 193
+ RESULT shift, and go to state 194
+ LOCAL shift, and go to state 195
+
+ plain_instr go to state 163
+ expr1 go to state 164
+ rethrow_check go to state 125
+ throw_check go to state 126
+ try_check go to state 165
-State 213
+State 220
- 91 func_fields: type_use func_fields_body .
+ 104 func_fields: type_use func_fields_body .
- $default reduce using rule 91 (func_fields)
+ $default reduce using rule 104 (func_fields)
-State 214
+State 221
- 72 expr: "(" . expr1 ")"
+ 79 expr: "(" . expr1 ")"
NOP shift, and go to state 90
DROP shift, and go to state 91
- BLOCK shift, and go to state 153
- IF shift, and go to state 154
- LOOP shift, and go to state 155
+ BLOCK shift, and go to state 159
+ IF shift, and go to state 160
+ LOOP shift, and go to state 161
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- plain_instr go to state 157
- expr1 go to state 158
+ 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 163
+ expr1 go to state 164
+ rethrow_check go to state 125
+ throw_check go to state 126
+ try_check go to state 165
-State 215
+State 222
- 86 instr_list: instr instr_list .
+ 99 instr_list: instr instr_list .
- $default reduce using rule 86 (instr_list)
+ $default reduce using rule 99 (instr_list)
-State 216
+State 223
- 90 func: "(" FUNC bind_var_opt func_fields ")" .
+ 66 plain_instr: rethrow_check var .
- $default reduce using rule 90 (func)
+ $default reduce using rule 66 (plain_instr)
-State 217
+State 224
+
+ 65 plain_instr: throw_check var .
+
+ $default reduce using rule 65 (plain_instr)
+
+
+State 225
+
+ 71 block_instr: try_check labeling_opt . block catch_instr_list END labeling_opt
+
+ "(" shift, and go to state 295
+ 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 98 (instr_list)
+
+ instr go to state 121
+ plain_instr go to state 122
+ block_instr go to state 123
+ block_sig go to state 296
+ 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 298
+
+
+State 226
+
+ 103 func: "(" FUNC bind_var_opt func_fields ")" .
+
+ $default reduce using rule 103 (func)
+
+
+State 227
20 type_use: "(" . TYPE var ")"
- 98 func_fields_import1: "(" . RESULT value_type_list ")"
- 99 | "(" . PARAM value_type_list ")" func_fields_import1
- 100 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_import1
+ 111 func_fields_import1: "(" . RESULT value_type_list ")"
+ 112 | "(" . PARAM value_type_list ")" func_fields_import1
+ 113 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_import1
- TYPE shift, and go to state 185
- PARAM shift, and go to state 294
- RESULT shift, and go to state 295
+ TYPE shift, and go to state 192
+ PARAM shift, and go to state 306
+ RESULT shift, and go to state 307
-State 218
+State 228
- 93 func_fields: inline_import type_use . func_fields_import
+ 106 func_fields: inline_import type_use . func_fields_import
- "(" shift, and go to state 296
+ "(" shift, and go to state 308
- $default reduce using rule 97 (func_fields_import1)
+ $default reduce using rule 110 (func_fields_import1)
- func_fields_import go to state 297
- func_fields_import1 go to state 220
+ func_fields_import go to state 309
+ func_fields_import1 go to state 230
-State 219
+State 229
- 94 func_fields: inline_import func_fields_import .
+ 107 func_fields: inline_import func_fields_import .
- $default reduce using rule 94 (func_fields)
+ $default reduce using rule 107 (func_fields)
-State 220
+State 230
- 96 func_fields_import: func_fields_import1 .
+ 109 func_fields_import: func_fields_import1 .
- $default reduce using rule 96 (func_fields_import)
+ $default reduce using rule 109 (func_fields_import)
-State 221
+State 231
- 95 func_fields: inline_export func_fields .
+ 108 func_fields: inline_export func_fields .
- $default reduce using rule 95 (func_fields)
+ $default reduce using rule 108 (func_fields)
-State 222
+State 232
13 func_sig: "(" . PARAM value_type_list ")"
14 | "(" . PARAM value_type_list ")" "(" RESULT value_type_list ")"
15 | "(" . RESULT value_type_list ")"
- PARAM shift, and go to state 298
- RESULT shift, and go to state 299
+ PARAM shift, and go to state 310
+ RESULT shift, and go to state 311
-State 223
+State 233
11 func_type: "(" FUNC func_sig . ")"
- ")" shift, and go to state 300
+ ")" shift, and go to state 312
-State 224
+State 234
- 144 type_def: "(" TYPE bind_var func_type ")" .
+ 157 type_def: "(" TYPE bind_var func_type ")" .
- $default reduce using rule 144 (type_def)
+ $default reduce using rule 157 (type_def)
-State 225
+State 235
10 global_type: "(" MUT . VALUE_TYPE ")"
- VALUE_TYPE shift, and go to state 301
+ VALUE_TYPE shift, and go to state 313
-State 226
+State 236
- 89 const_expr: instr_list .
+ 102 const_expr: instr_list .
- $default reduce using rule 89 (const_expr)
+ $default reduce using rule 102 (const_expr)
-State 227
+State 237
- 127 global_fields: global_type const_expr .
+ 140 global_fields: global_type const_expr .
- $default reduce using rule 127 (global_fields)
+ $default reduce using rule 140 (global_fields)
-State 228
+State 238
- 126 global: "(" GLOBAL bind_var_opt global_fields ")" .
+ 139 global: "(" GLOBAL bind_var_opt global_fields ")" .
- $default reduce using rule 126 (global)
+ $default reduce using rule 139 (global)
-State 229
+State 239
10 global_type: "(" . MUT VALUE_TYPE ")"
- MUT shift, and go to state 225
+ MUT shift, and go to state 235
-State 230
+State 240
- 128 global_fields: inline_import global_type .
+ 141 global_fields: inline_import global_type .
- $default reduce using rule 128 (global_fields)
+ $default reduce using rule 141 (global_fields)
-State 231
+State 241
- 129 global_fields: inline_export global_fields .
+ 142 global_fields: inline_export global_fields .
- $default reduce using rule 129 (global_fields)
+ $default reduce using rule 142 (global_fields)
-State 232
+State 242
- 161 raw_module: "(" MODULE bind_var_opt text_list ")" .
+ 174 raw_module: "(" MODULE bind_var_opt text_list ")" .
- $default reduce using rule 161 (raw_module)
+ $default reduce using rule 174 (raw_module)
-State 233
+State 243
2 text_list: text_list TEXT .
$default reduce using rule 2 (text_list)
-State 234
+State 244
- 160 raw_module: "(" MODULE bind_var_opt module_fields_opt ")" .
+ 173 raw_module: "(" MODULE bind_var_opt module_fields_opt ")" .
- $default reduce using rule 160 (raw_module)
+ $default reduce using rule 173 (raw_module)
-State 235
+State 245
- 118 table_fields: elem_type "(" . ELEM var_list ")"
+ 131 table_fields: elem_type "(" . ELEM var_list ")"
- ELEM shift, and go to state 302
+ ELEM shift, and go to state 314
-State 236
+State 246
16 table_sig: limits elem_type .
$default reduce using rule 16 (table_sig)
-State 237
+State 247
19 limits: nat nat .
$default reduce using rule 19 (limits)
-State 238
+State 248
- 114 table: "(" TABLE bind_var_opt table_fields ")" .
+ 127 table: "(" TABLE bind_var_opt table_fields ")" .
- $default reduce using rule 114 (table)
+ $default reduce using rule 127 (table)
-State 239
+State 249
- 116 table_fields: inline_import table_sig .
+ 129 table_fields: inline_import table_sig .
- $default reduce using rule 116 (table_fields)
+ $default reduce using rule 129 (table_fields)
-State 240
+State 250
- 117 table_fields: inline_export table_fields .
+ 130 table_fields: inline_export table_fields .
- $default reduce using rule 117 (table_fields)
+ $default reduce using rule 130 (table_fields)
-State 241
+State 251
- 74 expr1: BLOCK labeling_opt . block
+ 81 expr1: BLOCK labeling_opt . block
- "(" shift, and go to state 284
+ "(" shift, and go to state 295
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -3246,54 +3486,60 @@ State 241
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- block_sig go to state 285
- block go to state 303
- expr go to state 121
- instr_list go to state 287
+ 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 98 (instr_list)
+
+ instr go to state 121
+ plain_instr go to state 122
+ block_instr go to state 123
+ block_sig go to state 296
+ block go to state 315
+ 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 298
-State 242
+State 252
- 76 expr1: IF labeling_opt . if_block
+ 83 expr1: IF labeling_opt . if_block
- "(" shift, and go to state 304
+ "(" shift, and go to state 316
- block_sig go to state 305
- expr go to state 306
- if_block go to state 307
- if_ go to state 308
+ block_sig go to state 317
+ expr go to state 318
+ if_block go to state 319
+ if_ go to state 320
-State 243
+State 253
- 75 expr1: LOOP labeling_opt . block
+ 82 expr1: LOOP labeling_opt . block
- "(" shift, and go to state 284
+ "(" shift, and go to state 295
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -3302,411 +3548,430 @@ State 243
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- block_sig go to state 285
- block go to state 309
- expr go to state 121
- instr_list go to state 287
+ 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 98 (instr_list)
+
+ instr go to state 121
+ plain_instr go to state 122
+ block_instr go to state 123
+ block_sig go to state 296
+ block go to state 321
+ 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 298
-State 244
+State 254
- 110 offset: "(" OFFSET const_expr . ")"
+ 123 offset: "(" OFFSET const_expr . ")"
- ")" shift, and go to state 310
+ ")" shift, and go to state 322
-State 245
+State 255
- 88 expr_list: expr . expr_list
+ 101 expr_list: expr . expr_list
- "(" shift, and go to state 214
+ "(" shift, and go to state 221
- $default reduce using rule 87 (expr_list)
+ $default reduce using rule 100 (expr_list)
- expr go to state 245
- expr_list go to state 311
+ expr go to state 255
+ expr_list go to state 323
-State 246
+State 256
- 73 expr1: plain_instr expr_list .
+ 80 expr1: plain_instr expr_list .
- $default reduce using rule 73 (expr1)
+ $default reduce using rule 80 (expr1)
-State 247
+State 257
- 72 expr: "(" expr1 ")" .
+ 79 expr: "(" expr1 ")" .
- $default reduce using rule 72 (expr)
+ $default reduce using rule 79 (expr)
-State 248
+State 258
+
+ 84 expr1: try_check "(" . BLOCK labeling_opt block ")" catch_list
+
+ BLOCK shift, and go to state 324
+
+
+State 259
28 var_list: var_list . var
- 112 elem: "(" ELEM var offset var_list . ")"
+ 125 elem: "(" ELEM var offset var_list . ")"
- ")" shift, and go to state 312
+ ")" shift, and go to state 325
NAT shift, and go to state 53
VAR shift, and go to state 54
nat go to state 55
- var go to state 250
+ var go to state 261
-State 249
+State 260
- 113 elem: "(" ELEM offset var_list ")" .
+ 126 elem: "(" ELEM offset var_list ")" .
- $default reduce using rule 113 (elem)
+ $default reduce using rule 126 (elem)
-State 250
+State 261
28 var_list: var_list var .
$default reduce using rule 28 (var_list)
-State 251
+State 262
- 125 memory_fields: "(" DATA . text_list_opt ")"
+ 138 memory_fields: "(" DATA . text_list_opt ")"
- TEXT shift, and go to state 140
+ TEXT shift, and go to state 146
$default reduce using rule 3 (text_list_opt)
- text_list go to state 168
- text_list_opt go to state 313
+ text_list go to state 175
+ text_list_opt go to state 326
-State 252
+State 263
- 121 memory: "(" MEMORY bind_var_opt memory_fields ")" .
+ 134 memory: "(" MEMORY bind_var_opt memory_fields ")" .
- $default reduce using rule 121 (memory)
+ $default reduce using rule 134 (memory)
-State 253
+State 264
- 123 memory_fields: inline_import memory_sig .
+ 136 memory_fields: inline_import memory_sig .
- $default reduce using rule 123 (memory_fields)
+ $default reduce using rule 136 (memory_fields)
-State 254
+State 265
- 124 memory_fields: inline_export memory_fields .
+ 137 memory_fields: inline_export memory_fields .
- $default reduce using rule 124 (memory_fields)
+ $default reduce using rule 137 (memory_fields)
-State 255
+State 266
- 119 data: "(" DATA var offset text_list_opt . ")"
+ 132 data: "(" DATA var offset text_list_opt . ")"
- ")" shift, and go to state 314
+ ")" shift, and go to state 327
-State 256
+State 267
- 120 data: "(" DATA offset text_list_opt ")" .
+ 133 data: "(" DATA offset text_list_opt ")" .
- $default reduce using rule 120 (data)
+ $default reduce using rule 133 (data)
-State 257
+State 268
- 130 import_desc: "(" . FUNC bind_var_opt type_use ")"
- 131 | "(" . FUNC bind_var_opt func_sig ")"
- 132 | "(" . TABLE bind_var_opt table_sig ")"
- 133 | "(" . MEMORY bind_var_opt memory_sig ")"
- 134 | "(" . GLOBAL bind_var_opt global_type ")"
+ 143 import_desc: "(" . FUNC bind_var_opt type_use ")"
+ 144 | "(" . FUNC bind_var_opt func_sig ")"
+ 145 | "(" . TABLE bind_var_opt table_sig ")"
+ 146 | "(" . MEMORY bind_var_opt memory_sig ")"
+ 147 | "(" . GLOBAL bind_var_opt global_type ")"
- FUNC shift, and go to state 315
- GLOBAL shift, and go to state 316
- TABLE shift, and go to state 317
- MEMORY shift, and go to state 318
+ FUNC shift, and go to state 328
+ GLOBAL shift, and go to state 329
+ TABLE shift, and go to state 330
+ MEMORY shift, and go to state 331
-State 258
+State 269
- 135 import: "(" IMPORT quoted_text quoted_text import_desc . ")"
+ 148 import: "(" IMPORT quoted_text quoted_text import_desc . ")"
- ")" shift, and go to state 319
+ ")" shift, and go to state 332
-State 259
+State 270
- 137 export_desc: "(" FUNC . var ")"
+ 150 export_desc: "(" FUNC . var ")"
NAT shift, and go to state 53
VAR shift, and go to state 54
nat go to state 55
- var go to state 320
+ var go to state 333
-State 260
+State 271
- 140 export_desc: "(" GLOBAL . var ")"
+ 153 export_desc: "(" GLOBAL . var ")"
NAT shift, and go to state 53
VAR shift, and go to state 54
nat go to state 55
- var go to state 321
+ var go to state 334
-State 261
+State 272
- 138 export_desc: "(" TABLE . var ")"
+ 151 export_desc: "(" TABLE . var ")"
NAT shift, and go to state 53
VAR shift, and go to state 54
nat go to state 55
- var go to state 322
+ var go to state 335
-State 262
+State 273
- 139 export_desc: "(" MEMORY . var ")"
+ 152 export_desc: "(" MEMORY . var ")"
NAT shift, and go to state 53
VAR shift, and go to state 54
nat go to state 55
- var go to state 323
+ var go to state 336
-State 263
+State 274
- 141 export: "(" EXPORT quoted_text export_desc ")" .
+ 154 export: "(" EXPORT quoted_text export_desc ")" .
- $default reduce using rule 141 (export)
+ $default reduce using rule 154 (export)
-State 264
+State 275
- 180 cmd: "(" REGISTER quoted_text script_var_opt ")" .
+ 193 cmd: "(" REGISTER quoted_text script_var_opt ")" .
- $default reduce using rule 180 (cmd)
+ $default reduce using rule 193 (cmd)
-State 265
+State 276
- 166 action: "(" INVOKE script_var_opt quoted_text const_list . ")"
- 185 const_list: const_list . const
+ 179 action: "(" INVOKE script_var_opt quoted_text const_list . ")"
+ 198 const_list: const_list . const
- "(" shift, and go to state 270
- ")" shift, and go to state 324
+ "(" shift, and go to state 281
+ ")" shift, and go to state 337
- const go to state 272
+ const go to state 283
-State 266
+State 277
- 167 action: "(" GET script_var_opt quoted_text ")" .
+ 180 action: "(" GET script_var_opt quoted_text ")" .
- $default reduce using rule 167 (action)
+ $default reduce using rule 180 (action)
-State 267
+State 278
- 168 assertion: "(" ASSERT_MALFORMED raw_module quoted_text ")" .
+ 181 assertion: "(" ASSERT_MALFORMED raw_module quoted_text ")" .
- $default reduce using rule 168 (assertion)
+ $default reduce using rule 181 (assertion)
-State 268
+State 279
- 169 assertion: "(" ASSERT_INVALID raw_module quoted_text ")" .
+ 182 assertion: "(" ASSERT_INVALID raw_module quoted_text ")" .
- $default reduce using rule 169 (assertion)
+ $default reduce using rule 182 (assertion)
-State 269
+State 280
- 170 assertion: "(" ASSERT_UNLINKABLE raw_module quoted_text ")" .
+ 183 assertion: "(" ASSERT_UNLINKABLE raw_module quoted_text ")" .
- $default reduce using rule 170 (assertion)
+ $default reduce using rule 183 (assertion)
-State 270
+State 281
- 183 const: "(" . CONST literal ")"
+ 196 const: "(" . CONST literal ")"
- CONST shift, and go to state 325
+ CONST shift, and go to state 338
-State 271
+State 282
- 172 assertion: "(" ASSERT_RETURN action const_list ")" .
+ 185 assertion: "(" ASSERT_RETURN action const_list ")" .
- $default reduce using rule 172 (assertion)
+ $default reduce using rule 185 (assertion)
-State 272
+State 283
- 185 const_list: const_list const .
+ 198 const_list: const_list const .
- $default reduce using rule 185 (const_list)
+ $default reduce using rule 198 (const_list)
-State 273
+State 284
- 171 assertion: "(" ASSERT_TRAP raw_module quoted_text ")" .
+ 184 assertion: "(" ASSERT_TRAP raw_module quoted_text ")" .
- $default reduce using rule 171 (assertion)
+ $default reduce using rule 184 (assertion)
-State 274
+State 285
- 175 assertion: "(" ASSERT_TRAP action quoted_text ")" .
+ 188 assertion: "(" ASSERT_TRAP action quoted_text ")" .
- $default reduce using rule 175 (assertion)
+ $default reduce using rule 188 (assertion)
-State 275
+State 286
- 176 assertion: "(" ASSERT_EXHAUSTION action quoted_text ")" .
+ 189 assertion: "(" ASSERT_EXHAUSTION action quoted_text ")" .
- $default reduce using rule 176 (assertion)
+ $default reduce using rule 189 (assertion)
-State 276
+State 287
20 type_use: "(" TYPE var . ")"
- ")" shift, and go to state 326
+ ")" shift, and go to state 339
-State 277
+State 288
7 value_type_list: value_type_list . VALUE_TYPE
- 104 func_fields_body1: "(" PARAM value_type_list . ")" func_fields_body1
+ 117 func_fields_body1: "(" PARAM value_type_list . ")" func_fields_body1
- ")" shift, and go to state 327
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 340
+ VALUE_TYPE shift, and go to state 341
-State 278
+State 289
- 105 func_fields_body1: "(" PARAM bind_var . VALUE_TYPE ")" func_fields_body1
+ 118 func_fields_body1: "(" PARAM bind_var . VALUE_TYPE ")" func_fields_body1
- VALUE_TYPE shift, and go to state 329
+ VALUE_TYPE shift, and go to state 342
-State 279
+State 290
7 value_type_list: value_type_list . VALUE_TYPE
- 103 func_fields_body1: "(" RESULT value_type_list . ")" func_body
+ 116 func_fields_body1: "(" RESULT value_type_list . ")" func_body
- ")" shift, and go to state 330
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 343
+ VALUE_TYPE shift, and go to state 341
-State 280
+State 291
7 value_type_list: value_type_list . VALUE_TYPE
- 108 func_body1: "(" LOCAL value_type_list . ")" func_body1
+ 121 func_body1: "(" LOCAL value_type_list . ")" func_body1
- ")" shift, and go to state 331
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 344
+ VALUE_TYPE shift, and go to state 341
-State 281
+State 292
- 109 func_body1: "(" LOCAL bind_var . VALUE_TYPE ")" func_body1
+ 122 func_body1: "(" LOCAL bind_var . VALUE_TYPE ")" func_body1
- VALUE_TYPE shift, and go to state 332
+ VALUE_TYPE shift, and go to state 345
-State 282
+State 293
- 136 inline_import: "(" IMPORT quoted_text . quoted_text ")"
+ 149 inline_import: "(" IMPORT quoted_text . quoted_text ")"
TEXT shift, and go to state 70
- quoted_text go to state 333
+ quoted_text go to state 346
-State 283
+State 294
- 142 inline_export: "(" EXPORT quoted_text . ")"
+ 155 inline_export: "(" EXPORT quoted_text . ")"
- ")" shift, and go to state 334
+ ")" shift, and go to state 347
-State 284
+State 295
- 69 block_sig: "(" . RESULT value_type_list ")"
- 72 expr: "(" . expr1 ")"
+ 72 block_sig: "(" . RESULT value_type_list ")"
+ 79 expr: "(" . expr1 ")"
NOP shift, and go to state 90
DROP shift, and go to state 91
- BLOCK shift, and go to state 153
- IF shift, and go to state 154
- LOOP shift, and go to state 155
+ BLOCK shift, and go to state 159
+ IF shift, and go to state 160
+ LOOP shift, and go to state 161
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
- RESULT shift, and go to state 335
-
- plain_instr go to state 157
- expr1 go to state 158
+ 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 348
+
+ plain_instr go to state 163
+ expr1 go to state 164
+ rethrow_check go to state 125
+ throw_check go to state 126
+ try_check go to state 165
-State 285
+State 296
- 70 block: block_sig . block
+ 73 block: block_sig . block
- "(" shift, and go to state 284
+ "(" shift, and go to state 295
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -3715,68 +3980,74 @@ State 285
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- block_sig go to state 285
- block go to state 336
- expr go to state 121
- instr_list go to state 287
+ 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 98 (instr_list)
+
+ instr go to state 121
+ plain_instr go to state 122
+ block_instr go to state 123
+ block_sig go to state 296
+ block go to state 349
+ 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 298
-State 286
+State 297
- 65 block_instr: BLOCK labeling_opt block . END labeling_opt
+ 67 block_instr: BLOCK labeling_opt block . END labeling_opt
- END shift, and go to state 337
+ END shift, and go to state 350
-State 287
+State 298
- 71 block: instr_list .
+ 74 block: instr_list .
- $default reduce using rule 71 (block)
+ $default reduce using rule 74 (block)
-State 288
+State 299
- 67 block_instr: IF labeling_opt block . END labeling_opt
- 68 | IF labeling_opt block . ELSE labeling_opt instr_list END labeling_opt
+ 69 block_instr: IF labeling_opt block . END labeling_opt
+ 70 | IF labeling_opt block . ELSE labeling_opt instr_list END labeling_opt
- END shift, and go to state 338
- ELSE shift, and go to state 339
+ END shift, and go to state 351
+ ELSE shift, and go to state 352
-State 289
+State 300
- 66 block_instr: LOOP labeling_opt block . END labeling_opt
+ 68 block_instr: LOOP labeling_opt block . END labeling_opt
- END shift, and go to state 340
+ END shift, and go to state 353
-State 290
+State 301
28 var_list: var_list var .
47 plain_instr: BR_TABLE var_list var .
@@ -3786,350 +4057,379 @@ State 290
$default reduce using rule 47 (plain_instr)
-State 291
+State 302
37 align_opt: ALIGN_EQ_NAT .
$default reduce using rule 37 (align_opt)
-State 292
+State 303
56 plain_instr: LOAD offset_opt align_opt .
$default reduce using rule 56 (plain_instr)
-State 293
+State 304
57 plain_instr: STORE offset_opt align_opt .
$default reduce using rule 57 (plain_instr)
-State 294
+State 305
+
+ 71 block_instr: try_check labeling_opt block . catch_instr_list END labeling_opt
+
+ CATCH shift, and go to state 354
+ CATCH_ALL shift, and go to state 355
+
+ catch_instr go to state 356
+ catch_instr_list go to state 357
- 99 func_fields_import1: "(" PARAM . value_type_list ")" func_fields_import1
- 100 | "(" PARAM . bind_var VALUE_TYPE ")" func_fields_import1
+
+State 306
+
+ 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)
- value_type_list go to state 341
- bind_var go to state 342
+ value_type_list go to state 358
+ bind_var go to state 359
-State 295
+State 307
- 98 func_fields_import1: "(" RESULT . value_type_list ")"
+ 111 func_fields_import1: "(" RESULT . value_type_list ")"
$default reduce using rule 6 (value_type_list)
- value_type_list go to state 343
+ value_type_list go to state 360
-State 296
+State 308
- 98 func_fields_import1: "(" . RESULT value_type_list ")"
- 99 | "(" . PARAM value_type_list ")" func_fields_import1
- 100 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_import1
+ 111 func_fields_import1: "(" . RESULT value_type_list ")"
+ 112 | "(" . PARAM value_type_list ")" func_fields_import1
+ 113 | "(" . PARAM bind_var VALUE_TYPE ")" func_fields_import1
- PARAM shift, and go to state 294
- RESULT shift, and go to state 295
+ PARAM shift, and go to state 306
+ RESULT shift, and go to state 307
-State 297
+State 309
- 93 func_fields: inline_import type_use func_fields_import .
+ 106 func_fields: inline_import type_use func_fields_import .
- $default reduce using rule 93 (func_fields)
+ $default reduce using rule 106 (func_fields)
-State 298
+State 310
13 func_sig: "(" PARAM . value_type_list ")"
14 | "(" PARAM . value_type_list ")" "(" RESULT value_type_list ")"
$default reduce using rule 6 (value_type_list)
- value_type_list go to state 344
+ value_type_list go to state 361
-State 299
+State 311
15 func_sig: "(" RESULT . value_type_list ")"
$default reduce using rule 6 (value_type_list)
- value_type_list go to state 345
+ value_type_list go to state 362
-State 300
+State 312
11 func_type: "(" FUNC func_sig ")" .
$default reduce using rule 11 (func_type)
-State 301
+State 313
10 global_type: "(" MUT VALUE_TYPE . ")"
- ")" shift, and go to state 346
+ ")" shift, and go to state 363
-State 302
+State 314
- 118 table_fields: elem_type "(" ELEM . var_list ")"
+ 131 table_fields: elem_type "(" ELEM . var_list ")"
$default reduce using rule 27 (var_list)
- var_list go to state 347
+ var_list go to state 364
-State 303
+State 315
- 74 expr1: BLOCK labeling_opt block .
+ 81 expr1: BLOCK labeling_opt block .
- $default reduce using rule 74 (expr1)
+ $default reduce using rule 81 (expr1)
-State 304
+State 316
- 69 block_sig: "(" . RESULT value_type_list ")"
- 72 expr: "(" . expr1 ")"
- 79 if_: "(" . THEN instr_list ")" "(" ELSE instr_list ")"
- 80 | "(" . THEN instr_list ")"
+ 72 block_sig: "(" . RESULT value_type_list ")"
+ 79 expr: "(" . expr1 ")"
+ 89 if_: "(" . THEN instr_list ")" "(" ELSE instr_list ")"
+ 90 | "(" . THEN instr_list ")"
NOP shift, and go to state 90
DROP shift, and go to state 91
- BLOCK shift, and go to state 153
- IF shift, and go to state 154
- THEN shift, and go to state 348
- LOOP shift, and go to state 155
+ BLOCK shift, and go to state 159
+ IF shift, and go to state 160
+ THEN shift, and go to state 365
+ LOOP shift, and go to state 161
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
- RESULT shift, and go to state 335
-
- plain_instr go to state 157
- expr1 go to state 158
+ 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 348
+
+ plain_instr go to state 163
+ expr1 go to state 164
+ rethrow_check go to state 125
+ throw_check go to state 126
+ try_check go to state 165
-State 305
+State 317
- 77 if_block: block_sig . if_block
+ 87 if_block: block_sig . if_block
- "(" shift, and go to state 304
+ "(" shift, and go to state 316
- block_sig go to state 305
- expr go to state 306
- if_block go to state 349
- if_ go to state 308
+ block_sig go to state 317
+ expr go to state 318
+ if_block go to state 366
+ if_ go to state 320
-State 306
+State 318
- 81 if_: expr . "(" THEN instr_list ")" "(" ELSE instr_list ")"
- 82 | expr . "(" THEN instr_list ")"
- 83 | expr . expr expr
- 84 | expr . expr
+ 91 if_: expr . "(" THEN instr_list ")" "(" ELSE instr_list ")"
+ 92 | expr . "(" THEN instr_list ")"
+ 93 | expr . expr expr
+ 94 | expr . expr
- "(" shift, and go to state 350
+ "(" shift, and go to state 367
- expr go to state 351
+ expr go to state 368
-State 307
+State 319
- 76 expr1: IF labeling_opt if_block .
+ 83 expr1: IF labeling_opt if_block .
- $default reduce using rule 76 (expr1)
+ $default reduce using rule 83 (expr1)
-State 308
+State 320
- 78 if_block: if_ .
+ 88 if_block: if_ .
- $default reduce using rule 78 (if_block)
+ $default reduce using rule 88 (if_block)
-State 309
+State 321
- 75 expr1: LOOP labeling_opt block .
+ 82 expr1: LOOP labeling_opt block .
- $default reduce using rule 75 (expr1)
+ $default reduce using rule 82 (expr1)
-State 310
+State 322
- 110 offset: "(" OFFSET const_expr ")" .
+ 123 offset: "(" OFFSET const_expr ")" .
- $default reduce using rule 110 (offset)
+ $default reduce using rule 123 (offset)
-State 311
+State 323
- 88 expr_list: expr expr_list .
+ 101 expr_list: expr expr_list .
- $default reduce using rule 88 (expr_list)
+ $default reduce using rule 101 (expr_list)
-State 312
+State 324
- 112 elem: "(" ELEM var offset var_list ")" .
+ 84 expr1: try_check "(" BLOCK . labeling_opt block ")" catch_list
- $default reduce using rule 112 (elem)
+ VAR shift, and go to state 50
+ $default reduce using rule 32 (labeling_opt)
-State 313
+ bind_var go to state 198
+ labeling_opt go to state 369
- 125 memory_fields: "(" DATA text_list_opt . ")"
- ")" shift, and go to state 352
+State 325
+ 125 elem: "(" ELEM var offset var_list ")" .
-State 314
+ $default reduce using rule 125 (elem)
- 119 data: "(" DATA var offset text_list_opt ")" .
- $default reduce using rule 119 (data)
+State 326
+ 138 memory_fields: "(" DATA text_list_opt . ")"
+
+ ")" shift, and go to state 370
-State 315
- 130 import_desc: "(" FUNC . bind_var_opt type_use ")"
- 131 | "(" FUNC . bind_var_opt func_sig ")"
+State 327
+
+ 132 data: "(" DATA var offset text_list_opt ")" .
+
+ $default reduce using rule 132 (data)
+
+
+State 328
+
+ 143 import_desc: "(" FUNC . bind_var_opt type_use ")"
+ 144 | "(" FUNC . bind_var_opt func_sig ")"
VAR shift, and go to state 50
$default reduce using rule 29 (bind_var_opt)
- bind_var_opt go to state 353
+ bind_var_opt go to state 371
bind_var go to state 52
-State 316
+State 329
- 134 import_desc: "(" GLOBAL . bind_var_opt global_type ")"
+ 147 import_desc: "(" GLOBAL . bind_var_opt global_type ")"
VAR shift, and go to state 50
$default reduce using rule 29 (bind_var_opt)
- bind_var_opt go to state 354
+ bind_var_opt go to state 372
bind_var go to state 52
-State 317
+State 330
- 132 import_desc: "(" TABLE . bind_var_opt table_sig ")"
+ 145 import_desc: "(" TABLE . bind_var_opt table_sig ")"
VAR shift, and go to state 50
$default reduce using rule 29 (bind_var_opt)
- bind_var_opt go to state 355
+ bind_var_opt go to state 373
bind_var go to state 52
-State 318
+State 331
- 133 import_desc: "(" MEMORY . bind_var_opt memory_sig ")"
+ 146 import_desc: "(" MEMORY . bind_var_opt memory_sig ")"
VAR shift, and go to state 50
$default reduce using rule 29 (bind_var_opt)
- bind_var_opt go to state 356
+ bind_var_opt go to state 374
bind_var go to state 52
-State 319
+State 332
- 135 import: "(" IMPORT quoted_text quoted_text import_desc ")" .
+ 148 import: "(" IMPORT quoted_text quoted_text import_desc ")" .
- $default reduce using rule 135 (import)
+ $default reduce using rule 148 (import)
-State 320
+State 333
- 137 export_desc: "(" FUNC var . ")"
+ 150 export_desc: "(" FUNC var . ")"
- ")" shift, and go to state 357
+ ")" shift, and go to state 375
-State 321
+State 334
- 140 export_desc: "(" GLOBAL var . ")"
+ 153 export_desc: "(" GLOBAL var . ")"
- ")" shift, and go to state 358
+ ")" shift, and go to state 376
-State 322
+State 335
- 138 export_desc: "(" TABLE var . ")"
+ 151 export_desc: "(" TABLE var . ")"
- ")" shift, and go to state 359
+ ")" shift, and go to state 377
-State 323
+State 336
- 139 export_desc: "(" MEMORY var . ")"
+ 152 export_desc: "(" MEMORY var . ")"
- ")" shift, and go to state 360
+ ")" shift, and go to state 378
-State 324
+State 337
- 166 action: "(" INVOKE script_var_opt quoted_text const_list ")" .
+ 179 action: "(" INVOKE script_var_opt quoted_text const_list ")" .
- $default reduce using rule 166 (action)
+ $default reduce using rule 179 (action)
-State 325
+State 338
- 183 const: "(" CONST . literal ")"
+ 196 const: "(" CONST . literal ")"
- NAT shift, and go to state 208
- INT shift, and go to state 209
- FLOAT shift, and go to state 210
+ NAT shift, and go to state 215
+ INT shift, and go to state 216
+ FLOAT shift, and go to state 217
- literal go to state 361
+ literal go to state 379
-State 326
+State 339
20 type_use: "(" TYPE var ")" .
$default reduce using rule 20 (type_use)
-State 327
+State 340
- 104 func_fields_body1: "(" PARAM value_type_list ")" . func_fields_body1
+ 117 func_fields_body1: "(" PARAM value_type_list ")" . func_fields_body1
- "(" shift, and go to state 212
+ "(" shift, and go to state 219
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -4138,57 +4438,63 @@ State 327
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 122
- func_fields_body1 go to state 362
- func_body go to state 126
- func_body1 go to state 127
+ 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 98 (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 380
+ func_body go to state 132
+ func_body1 go to state 133
-State 328
+State 341
7 value_type_list: value_type_list VALUE_TYPE .
$default reduce using rule 7 (value_type_list)
-State 329
+State 342
- 105 func_fields_body1: "(" PARAM bind_var VALUE_TYPE . ")" func_fields_body1
+ 118 func_fields_body1: "(" PARAM bind_var VALUE_TYPE . ")" func_fields_body1
- ")" shift, and go to state 363
+ ")" shift, and go to state 381
-State 330
+State 343
- 103 func_fields_body1: "(" RESULT value_type_list ")" . func_body
+ 116 func_fields_body1: "(" RESULT value_type_list ")" . func_body
- "(" shift, and go to state 364
+ "(" shift, and go to state 382
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -4197,42 +4503,48 @@ State 330
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 122
- func_body go to state 365
- func_body1 go to state 127
+ 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 98 (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_body go to state 383
+ func_body1 go to state 133
-State 331
+State 344
- 108 func_body1: "(" LOCAL value_type_list ")" . func_body1
+ 121 func_body1: "(" LOCAL value_type_list ")" . func_body1
- "(" shift, and go to state 364
+ "(" shift, and go to state 382
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -4241,191 +4553,240 @@ State 331
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 122
- func_body1 go to state 366
+ 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 98 (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 384
-State 332
+State 345
- 109 func_body1: "(" LOCAL bind_var VALUE_TYPE . ")" func_body1
+ 122 func_body1: "(" LOCAL bind_var VALUE_TYPE . ")" func_body1
- ")" shift, and go to state 367
+ ")" shift, and go to state 385
-State 333
+State 346
- 136 inline_import: "(" IMPORT quoted_text quoted_text . ")"
+ 149 inline_import: "(" IMPORT quoted_text quoted_text . ")"
- ")" shift, and go to state 368
+ ")" shift, and go to state 386
-State 334
+State 347
- 142 inline_export: "(" EXPORT quoted_text ")" .
+ 155 inline_export: "(" EXPORT quoted_text ")" .
- $default reduce using rule 142 (inline_export)
+ $default reduce using rule 155 (inline_export)
-State 335
+State 348
- 69 block_sig: "(" RESULT . value_type_list ")"
+ 72 block_sig: "(" RESULT . value_type_list ")"
$default reduce using rule 6 (value_type_list)
- value_type_list go to state 369
+ value_type_list go to state 387
-State 336
+State 349
- 70 block: block_sig block .
+ 73 block: block_sig block .
- $default reduce using rule 70 (block)
+ $default reduce using rule 73 (block)
-State 337
+State 350
- 65 block_instr: BLOCK labeling_opt block END . labeling_opt
+ 67 block_instr: BLOCK labeling_opt block END . labeling_opt
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 370
+ bind_var go to state 198
+ labeling_opt go to state 388
-State 338
+State 351
- 67 block_instr: IF labeling_opt block END . labeling_opt
+ 69 block_instr: IF labeling_opt block END . labeling_opt
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 371
+ bind_var go to state 198
+ labeling_opt go to state 389
-State 339
+State 352
- 68 block_instr: IF labeling_opt block ELSE . labeling_opt instr_list END labeling_opt
+ 70 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 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 372
+ bind_var go to state 198
+ labeling_opt go to state 390
-State 340
+State 353
- 66 block_instr: LOOP labeling_opt block END . labeling_opt
+ 68 block_instr: LOOP labeling_opt block END . labeling_opt
VAR shift, and go to state 50
$default reduce using rule 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 373
+ bind_var go to state 198
+ labeling_opt go to state 391
-State 341
+State 354
+
+ 75 catch_instr: CATCH . 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 392
+
+
+State 355
+
+ 76 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 393
+
+
+State 356
+
+ 77 catch_instr_list: catch_instr .
+ 78 | catch_instr . catch_instr_list
+
+ CATCH shift, and go to state 354
+ CATCH_ALL shift, and go to state 355
+
+ $default reduce using rule 77 (catch_instr_list)
+
+ catch_instr go to state 356
+ catch_instr_list go to state 394
+
+
+State 357
+
+ 71 block_instr: try_check labeling_opt block catch_instr_list . END labeling_opt
+
+ END shift, and go to state 395
+
+
+State 358
7 value_type_list: value_type_list . VALUE_TYPE
- 99 func_fields_import1: "(" PARAM value_type_list . ")" func_fields_import1
+ 112 func_fields_import1: "(" PARAM value_type_list . ")" func_fields_import1
- ")" shift, and go to state 374
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 396
+ VALUE_TYPE shift, and go to state 341
-State 342
+State 359
- 100 func_fields_import1: "(" PARAM bind_var . VALUE_TYPE ")" func_fields_import1
+ 113 func_fields_import1: "(" PARAM bind_var . VALUE_TYPE ")" func_fields_import1
- VALUE_TYPE shift, and go to state 375
+ VALUE_TYPE shift, and go to state 397
-State 343
+State 360
7 value_type_list: value_type_list . VALUE_TYPE
- 98 func_fields_import1: "(" RESULT value_type_list . ")"
+ 111 func_fields_import1: "(" RESULT value_type_list . ")"
- ")" shift, and go to state 376
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 398
+ VALUE_TYPE shift, and go to state 341
-State 344
+State 361
7 value_type_list: value_type_list . VALUE_TYPE
13 func_sig: "(" PARAM value_type_list . ")"
14 | "(" PARAM value_type_list . ")" "(" RESULT value_type_list ")"
- ")" shift, and go to state 377
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 399
+ VALUE_TYPE shift, and go to state 341
-State 345
+State 362
7 value_type_list: value_type_list . VALUE_TYPE
15 func_sig: "(" RESULT value_type_list . ")"
- ")" shift, and go to state 378
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 400
+ VALUE_TYPE shift, and go to state 341
-State 346
+State 363
10 global_type: "(" MUT VALUE_TYPE ")" .
$default reduce using rule 10 (global_type)
-State 347
+State 364
28 var_list: var_list . var
- 118 table_fields: elem_type "(" ELEM var_list . ")"
+ 131 table_fields: elem_type "(" ELEM var_list . ")"
- ")" shift, and go to state 379
+ ")" shift, and go to state 401
NAT shift, and go to state 53
VAR shift, and go to state 54
nat go to state 55
- var go to state 250
+ var go to state 261
-State 348
+State 365
- 79 if_: "(" THEN . instr_list ")" "(" ELSE instr_list ")"
- 80 | "(" THEN . instr_list ")"
+ 89 if_: "(" THEN . instr_list ")" "(" ELSE instr_list ")"
+ 90 | "(" THEN . instr_list ")"
- "(" shift, and go to state 214
+ "(" 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
@@ -4434,192 +4795,254 @@ State 348
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 380
+ 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 98 (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 402
-State 349
+State 366
- 77 if_block: block_sig if_block .
+ 87 if_block: block_sig if_block .
- $default reduce using rule 77 (if_block)
+ $default reduce using rule 87 (if_block)
-State 350
+State 367
- 72 expr: "(" . expr1 ")"
- 81 if_: expr "(" . THEN instr_list ")" "(" ELSE instr_list ")"
- 82 | expr "(" . THEN instr_list ")"
+ 79 expr: "(" . expr1 ")"
+ 91 if_: expr "(" . THEN instr_list ")" "(" ELSE instr_list ")"
+ 92 | expr "(" . THEN instr_list ")"
NOP shift, and go to state 90
DROP shift, and go to state 91
- BLOCK shift, and go to state 153
- IF shift, and go to state 154
- THEN shift, and go to state 381
- LOOP shift, and go to state 155
+ BLOCK shift, and go to state 159
+ IF shift, and go to state 160
+ THEN shift, and go to state 403
+ LOOP shift, and go to state 161
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- plain_instr go to state 157
- expr1 go to state 158
+ 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 163
+ expr1 go to state 164
+ rethrow_check go to state 125
+ throw_check go to state 126
+ try_check go to state 165
-State 351
+State 368
- 83 if_: expr expr . expr
- 84 | expr expr .
+ 93 if_: expr expr . expr
+ 94 | expr expr .
- "(" shift, and go to state 214
+ "(" shift, and go to state 221
- $default reduce using rule 84 (if_)
+ $default reduce using rule 94 (if_)
- expr go to state 382
+ expr go to state 404
-State 352
+State 369
+
+ 84 expr1: try_check "(" BLOCK labeling_opt . block ")" catch_list
- 125 memory_fields: "(" DATA text_list_opt ")" .
+ "(" shift, and go to state 295
+ 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 98 (instr_list)
+
+ instr go to state 121
+ plain_instr go to state 122
+ block_instr go to state 123
+ block_sig go to state 296
+ block go to state 405
+ 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 298
- $default reduce using rule 125 (memory_fields)
+State 370
-State 353
+ 138 memory_fields: "(" DATA text_list_opt ")" .
- 130 import_desc: "(" FUNC bind_var_opt . type_use ")"
- 131 | "(" FUNC bind_var_opt . func_sig ")"
+ $default reduce using rule 138 (memory_fields)
- "(" shift, and go to state 383
+
+State 371
+
+ 143 import_desc: "(" FUNC bind_var_opt . type_use ")"
+ 144 | "(" FUNC bind_var_opt . func_sig ")"
+
+ "(" shift, and go to state 406
$default reduce using rule 12 (func_sig)
- func_sig go to state 384
- type_use go to state 385
+ func_sig go to state 407
+ type_use go to state 408
-State 354
+State 372
- 134 import_desc: "(" GLOBAL bind_var_opt . global_type ")"
+ 147 import_desc: "(" GLOBAL bind_var_opt . global_type ")"
- "(" shift, and go to state 229
- VALUE_TYPE shift, and go to state 135
+ "(" shift, and go to state 239
+ VALUE_TYPE shift, and go to state 141
- global_type go to state 386
+ global_type go to state 409
-State 355
+State 373
- 132 import_desc: "(" TABLE bind_var_opt . table_sig ")"
+ 145 import_desc: "(" TABLE bind_var_opt . table_sig ")"
NAT shift, and go to state 53
- table_sig go to state 387
- limits go to state 148
- nat go to state 149
+ table_sig go to state 410
+ limits go to state 154
+ nat go to state 155
-State 356
+State 374
- 133 import_desc: "(" MEMORY bind_var_opt . memory_sig ")"
+ 146 import_desc: "(" MEMORY bind_var_opt . memory_sig ")"
NAT shift, and go to state 53
- memory_sig go to state 388
- limits go to state 163
- nat go to state 149
+ memory_sig go to state 411
+ limits go to state 170
+ nat go to state 155
-State 357
+State 375
- 137 export_desc: "(" FUNC var ")" .
+ 150 export_desc: "(" FUNC var ")" .
- $default reduce using rule 137 (export_desc)
+ $default reduce using rule 150 (export_desc)
-State 358
+State 376
- 140 export_desc: "(" GLOBAL var ")" .
+ 153 export_desc: "(" GLOBAL var ")" .
- $default reduce using rule 140 (export_desc)
+ $default reduce using rule 153 (export_desc)
-State 359
+State 377
- 138 export_desc: "(" TABLE var ")" .
+ 151 export_desc: "(" TABLE var ")" .
- $default reduce using rule 138 (export_desc)
+ $default reduce using rule 151 (export_desc)
-State 360
+State 378
- 139 export_desc: "(" MEMORY var ")" .
+ 152 export_desc: "(" MEMORY var ")" .
- $default reduce using rule 139 (export_desc)
+ $default reduce using rule 152 (export_desc)
-State 361
+State 379
- 183 const: "(" CONST literal . ")"
+ 196 const: "(" CONST literal . ")"
- ")" shift, and go to state 389
+ ")" shift, and go to state 412
-State 362
+State 380
- 104 func_fields_body1: "(" PARAM value_type_list ")" func_fields_body1 .
+ 117 func_fields_body1: "(" PARAM value_type_list ")" func_fields_body1 .
- $default reduce using rule 104 (func_fields_body1)
+ $default reduce using rule 117 (func_fields_body1)
-State 363
+State 381
- 105 func_fields_body1: "(" PARAM bind_var VALUE_TYPE ")" . func_fields_body1
+ 118 func_fields_body1: "(" PARAM bind_var VALUE_TYPE ")" . func_fields_body1
- "(" shift, and go to state 212
+ "(" shift, and go to state 219
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -4628,96 +5051,108 @@ State 363
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 122
- func_fields_body1 go to state 390
- func_body go to state 126
- func_body1 go to state 127
+ 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 98 (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 413
+ func_body go to state 132
+ func_body1 go to state 133
-State 364
+State 382
- 72 expr: "(" . expr1 ")"
- 108 func_body1: "(" . LOCAL value_type_list ")" func_body1
- 109 | "(" . LOCAL bind_var VALUE_TYPE ")" func_body1
+ 79 expr: "(" . expr1 ")"
+ 121 func_body1: "(" . LOCAL value_type_list ")" func_body1
+ 122 | "(" . 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 153
- IF shift, and go to state 154
- LOOP shift, and go to state 155
+ BLOCK shift, and go to state 159
+ IF shift, and go to state 160
+ LOOP shift, and go to state 161
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
- LOCAL shift, and go to state 188
-
- plain_instr go to state 157
- expr1 go to state 158
+ 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 195
+
+ plain_instr go to state 163
+ expr1 go to state 164
+ rethrow_check go to state 125
+ throw_check go to state 126
+ try_check go to state 165
-State 365
+State 383
- 103 func_fields_body1: "(" RESULT value_type_list ")" func_body .
+ 116 func_fields_body1: "(" RESULT value_type_list ")" func_body .
- $default reduce using rule 103 (func_fields_body1)
+ $default reduce using rule 116 (func_fields_body1)
-State 366
+State 384
- 108 func_body1: "(" LOCAL value_type_list ")" func_body1 .
+ 121 func_body1: "(" LOCAL value_type_list ")" func_body1 .
- $default reduce using rule 108 (func_body1)
+ $default reduce using rule 121 (func_body1)
-State 367
+State 385
- 109 func_body1: "(" LOCAL bind_var VALUE_TYPE ")" . func_body1
+ 122 func_body1: "(" LOCAL bind_var VALUE_TYPE ")" . func_body1
- "(" shift, and go to state 364
+ "(" shift, and go to state 382
NOP shift, and go to state 90
DROP shift, and go to state 91
BLOCK shift, and go to state 92
@@ -4726,71 +5161,77 @@ State 367
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 122
- func_body1 go to state 391
+ 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 98 (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 414
-State 368
+State 386
- 136 inline_import: "(" IMPORT quoted_text quoted_text ")" .
+ 149 inline_import: "(" IMPORT quoted_text quoted_text ")" .
- $default reduce using rule 136 (inline_import)
+ $default reduce using rule 149 (inline_import)
-State 369
+State 387
7 value_type_list: value_type_list . VALUE_TYPE
- 69 block_sig: "(" RESULT value_type_list . ")"
+ 72 block_sig: "(" RESULT value_type_list . ")"
- ")" shift, and go to state 392
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 415
+ VALUE_TYPE shift, and go to state 341
-State 370
+State 388
- 65 block_instr: BLOCK labeling_opt block END labeling_opt .
+ 67 block_instr: BLOCK labeling_opt block END labeling_opt .
- $default reduce using rule 65 (block_instr)
+ $default reduce using rule 67 (block_instr)
-State 371
+State 389
- 67 block_instr: IF labeling_opt block END labeling_opt .
+ 69 block_instr: IF labeling_opt block END labeling_opt .
- $default reduce using rule 67 (block_instr)
+ $default reduce using rule 69 (block_instr)
-State 372
+State 390
- 68 block_instr: IF labeling_opt block ELSE labeling_opt . instr_list END labeling_opt
+ 70 block_instr: IF labeling_opt block ELSE labeling_opt . instr_list END labeling_opt
- "(" shift, and go to state 214
+ "(" 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
@@ -4799,105 +5240,226 @@ State 372
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 393
+ 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 98 (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 416
-State 373
+State 391
- 66 block_instr: LOOP labeling_opt block END labeling_opt .
+ 68 block_instr: LOOP labeling_opt block END labeling_opt .
- $default reduce using rule 66 (block_instr)
+ $default reduce using rule 68 (block_instr)
-State 374
+State 392
- 99 func_fields_import1: "(" PARAM value_type_list ")" . func_fields_import1
+ 75 catch_instr: CATCH var . instr_list
- "(" shift, and go to state 296
+ "(" 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 98 (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 417
- $default reduce using rule 97 (func_fields_import1)
- func_fields_import1 go to state 394
+State 393
+ 76 catch_instr: CATCH_ALL var . instr_list
-State 375
+ "(" 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 98 (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 418
- 100 func_fields_import1: "(" PARAM bind_var VALUE_TYPE . ")" func_fields_import1
- ")" shift, and go to state 395
+State 394
+ 78 catch_instr_list: catch_instr catch_instr_list .
-State 376
+ $default reduce using rule 78 (catch_instr_list)
- 98 func_fields_import1: "(" RESULT value_type_list ")" .
- $default reduce using rule 98 (func_fields_import1)
+State 395
+ 71 block_instr: try_check labeling_opt block catch_instr_list END . labeling_opt
+
+ VAR shift, and go to state 50
+
+ $default reduce using rule 32 (labeling_opt)
+
+ bind_var go to state 198
+ labeling_opt go to state 419
+
+
+State 396
+
+ 112 func_fields_import1: "(" PARAM value_type_list ")" . func_fields_import1
+
+ "(" shift, and go to state 308
+
+ $default reduce using rule 110 (func_fields_import1)
+
+ func_fields_import1 go to state 420
-State 377
+
+State 397
+
+ 113 func_fields_import1: "(" PARAM bind_var VALUE_TYPE . ")" func_fields_import1
+
+ ")" shift, and go to state 421
+
+
+State 398
+
+ 111 func_fields_import1: "(" RESULT value_type_list ")" .
+
+ $default reduce using rule 111 (func_fields_import1)
+
+
+State 399
13 func_sig: "(" PARAM value_type_list ")" .
14 | "(" PARAM value_type_list ")" . "(" RESULT value_type_list ")"
- "(" shift, and go to state 396
+ "(" shift, and go to state 422
$default reduce using rule 13 (func_sig)
-State 378
+State 400
15 func_sig: "(" RESULT value_type_list ")" .
$default reduce using rule 15 (func_sig)
-State 379
+State 401
- 118 table_fields: elem_type "(" ELEM var_list ")" .
+ 131 table_fields: elem_type "(" ELEM var_list ")" .
- $default reduce using rule 118 (table_fields)
+ $default reduce using rule 131 (table_fields)
-State 380
+State 402
- 79 if_: "(" THEN instr_list . ")" "(" ELSE instr_list ")"
- 80 | "(" THEN instr_list . ")"
+ 89 if_: "(" THEN instr_list . ")" "(" ELSE instr_list ")"
+ 90 | "(" THEN instr_list . ")"
- ")" shift, and go to state 397
+ ")" shift, and go to state 423
-State 381
+State 403
- 81 if_: expr "(" THEN . instr_list ")" "(" ELSE instr_list ")"
- 82 | expr "(" THEN . instr_list ")"
+ 91 if_: expr "(" THEN . instr_list ")" "(" ELSE instr_list ")"
+ 92 | expr "(" THEN . instr_list ")"
- "(" shift, and go to state 214
+ "(" 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
@@ -4906,268 +5468,329 @@ State 381
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 398
+ 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 98 (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 424
-State 382
+State 404
- 83 if_: expr expr expr .
+ 93 if_: expr expr expr .
- $default reduce using rule 83 (if_)
+ $default reduce using rule 93 (if_)
-State 383
+State 405
+
+ 84 expr1: try_check "(" BLOCK labeling_opt block . ")" catch_list
+
+ ")" shift, and go to state 425
+
+
+State 406
13 func_sig: "(" . PARAM value_type_list ")"
14 | "(" . PARAM value_type_list ")" "(" RESULT value_type_list ")"
15 | "(" . RESULT value_type_list ")"
20 type_use: "(" . TYPE var ")"
- TYPE shift, and go to state 185
- PARAM shift, and go to state 298
- RESULT shift, and go to state 299
+ TYPE shift, and go to state 192
+ PARAM shift, and go to state 310
+ RESULT shift, and go to state 311
-State 384
+State 407
- 131 import_desc: "(" FUNC bind_var_opt func_sig . ")"
+ 144 import_desc: "(" FUNC bind_var_opt func_sig . ")"
- ")" shift, and go to state 399
+ ")" shift, and go to state 426
-State 385
+State 408
- 130 import_desc: "(" FUNC bind_var_opt type_use . ")"
+ 143 import_desc: "(" FUNC bind_var_opt type_use . ")"
- ")" shift, and go to state 400
+ ")" shift, and go to state 427
-State 386
+State 409
- 134 import_desc: "(" GLOBAL bind_var_opt global_type . ")"
+ 147 import_desc: "(" GLOBAL bind_var_opt global_type . ")"
- ")" shift, and go to state 401
+ ")" shift, and go to state 428
-State 387
+State 410
- 132 import_desc: "(" TABLE bind_var_opt table_sig . ")"
+ 145 import_desc: "(" TABLE bind_var_opt table_sig . ")"
- ")" shift, and go to state 402
+ ")" shift, and go to state 429
-State 388
+State 411
- 133 import_desc: "(" MEMORY bind_var_opt memory_sig . ")"
+ 146 import_desc: "(" MEMORY bind_var_opt memory_sig . ")"
- ")" shift, and go to state 403
+ ")" shift, and go to state 430
-State 389
+State 412
- 183 const: "(" CONST literal ")" .
+ 196 const: "(" CONST literal ")" .
- $default reduce using rule 183 (const)
+ $default reduce using rule 196 (const)
-State 390
+State 413
- 105 func_fields_body1: "(" PARAM bind_var VALUE_TYPE ")" func_fields_body1 .
+ 118 func_fields_body1: "(" PARAM bind_var VALUE_TYPE ")" func_fields_body1 .
- $default reduce using rule 105 (func_fields_body1)
+ $default reduce using rule 118 (func_fields_body1)
-State 391
+State 414
- 109 func_body1: "(" LOCAL bind_var VALUE_TYPE ")" func_body1 .
+ 122 func_body1: "(" LOCAL bind_var VALUE_TYPE ")" func_body1 .
- $default reduce using rule 109 (func_body1)
+ $default reduce using rule 122 (func_body1)
-State 392
+State 415
- 69 block_sig: "(" RESULT value_type_list ")" .
+ 72 block_sig: "(" RESULT value_type_list ")" .
- $default reduce using rule 69 (block_sig)
+ $default reduce using rule 72 (block_sig)
-State 393
+State 416
- 68 block_instr: IF labeling_opt block ELSE labeling_opt instr_list . END labeling_opt
+ 70 block_instr: IF labeling_opt block ELSE labeling_opt instr_list . END labeling_opt
- END shift, and go to state 404
+ END shift, and go to state 431
-State 394
+State 417
- 99 func_fields_import1: "(" PARAM value_type_list ")" func_fields_import1 .
+ 75 catch_instr: CATCH var instr_list .
- $default reduce using rule 99 (func_fields_import1)
+ $default reduce using rule 75 (catch_instr)
-State 395
+State 418
- 100 func_fields_import1: "(" PARAM bind_var VALUE_TYPE ")" . func_fields_import1
+ 76 catch_instr: CATCH_ALL var instr_list .
- "(" shift, and go to state 296
+ $default reduce using rule 76 (catch_instr)
- $default reduce using rule 97 (func_fields_import1)
- func_fields_import1 go to state 405
+State 419
+ 71 block_instr: try_check labeling_opt block catch_instr_list END labeling_opt .
-State 396
+ $default reduce using rule 71 (block_instr)
+
+
+State 420
+
+ 112 func_fields_import1: "(" PARAM value_type_list ")" func_fields_import1 .
+
+ $default reduce using rule 112 (func_fields_import1)
+
+
+State 421
+
+ 113 func_fields_import1: "(" PARAM bind_var VALUE_TYPE ")" . func_fields_import1
+
+ "(" shift, and go to state 308
+
+ $default reduce using rule 110 (func_fields_import1)
+
+ func_fields_import1 go to state 432
+
+
+State 422
14 func_sig: "(" PARAM value_type_list ")" "(" . RESULT value_type_list ")"
- RESULT shift, and go to state 406
+ RESULT shift, and go to state 433
-State 397
+State 423
- 79 if_: "(" THEN instr_list ")" . "(" ELSE instr_list ")"
- 80 | "(" THEN instr_list ")" .
+ 89 if_: "(" THEN instr_list ")" . "(" ELSE instr_list ")"
+ 90 | "(" THEN instr_list ")" .
- "(" shift, and go to state 407
+ "(" shift, and go to state 434
- $default reduce using rule 80 (if_)
+ $default reduce using rule 90 (if_)
-State 398
+State 424
- 81 if_: expr "(" THEN instr_list . ")" "(" ELSE instr_list ")"
- 82 | expr "(" THEN instr_list . ")"
+ 91 if_: expr "(" THEN instr_list . ")" "(" ELSE instr_list ")"
+ 92 | expr "(" THEN instr_list . ")"
- ")" shift, and go to state 408
+ ")" shift, and go to state 435
-State 399
+State 425
- 131 import_desc: "(" FUNC bind_var_opt func_sig ")" .
+ 84 expr1: try_check "(" BLOCK labeling_opt block ")" . catch_list
- $default reduce using rule 131 (import_desc)
+ "(" shift, and go to state 436
+ catch_list go to state 437
-State 400
- 130 import_desc: "(" FUNC bind_var_opt type_use ")" .
+State 426
- $default reduce using rule 130 (import_desc)
+ 144 import_desc: "(" FUNC bind_var_opt func_sig ")" .
+ $default reduce using rule 144 (import_desc)
-State 401
- 134 import_desc: "(" GLOBAL bind_var_opt global_type ")" .
+State 427
- $default reduce using rule 134 (import_desc)
+ 143 import_desc: "(" FUNC bind_var_opt type_use ")" .
+ $default reduce using rule 143 (import_desc)
-State 402
- 132 import_desc: "(" TABLE bind_var_opt table_sig ")" .
+State 428
- $default reduce using rule 132 (import_desc)
+ 147 import_desc: "(" GLOBAL bind_var_opt global_type ")" .
+ $default reduce using rule 147 (import_desc)
-State 403
- 133 import_desc: "(" MEMORY bind_var_opt memory_sig ")" .
+State 429
- $default reduce using rule 133 (import_desc)
+ 145 import_desc: "(" TABLE bind_var_opt table_sig ")" .
+ $default reduce using rule 145 (import_desc)
-State 404
- 68 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END . labeling_opt
+State 430
+
+ 146 import_desc: "(" MEMORY bind_var_opt memory_sig ")" .
+
+ $default reduce using rule 146 (import_desc)
+
+
+State 431
+
+ 70 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 32 (labeling_opt)
- bind_var go to state 191
- labeling_opt go to state 409
+ bind_var go to state 198
+ labeling_opt go to state 438
-State 405
+State 432
- 100 func_fields_import1: "(" PARAM bind_var VALUE_TYPE ")" func_fields_import1 .
+ 113 func_fields_import1: "(" PARAM bind_var VALUE_TYPE ")" func_fields_import1 .
- $default reduce using rule 100 (func_fields_import1)
+ $default reduce using rule 113 (func_fields_import1)
-State 406
+State 433
14 func_sig: "(" PARAM value_type_list ")" "(" RESULT . value_type_list ")"
$default reduce using rule 6 (value_type_list)
- value_type_list go to state 410
+ value_type_list go to state 439
-State 407
+State 434
- 79 if_: "(" THEN instr_list ")" "(" . ELSE instr_list ")"
+ 89 if_: "(" THEN instr_list ")" "(" . ELSE instr_list ")"
- ELSE shift, and go to state 411
+ ELSE shift, and go to state 440
-State 408
+State 435
- 81 if_: expr "(" THEN instr_list ")" . "(" ELSE instr_list ")"
- 82 | expr "(" THEN instr_list ")" .
+ 91 if_: expr "(" THEN instr_list ")" . "(" ELSE instr_list ")"
+ 92 | expr "(" THEN instr_list ")" .
- "(" shift, and go to state 412
+ "(" shift, and go to state 441
- $default reduce using rule 82 (if_)
+ $default reduce using rule 92 (if_)
-State 409
+State 436
- 68 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END labeling_opt .
+ 85 catch_list: "(" . catch_instr ")"
+ 86 | "(" . catch_instr ")" catch_list
- $default reduce using rule 68 (block_instr)
+ CATCH shift, and go to state 354
+ CATCH_ALL shift, and go to state 355
+ catch_instr go to state 442
+
+
+State 437
+
+ 84 expr1: try_check "(" BLOCK labeling_opt block ")" catch_list .
+
+ $default reduce using rule 84 (expr1)
+
+
+State 438
+
+ 70 block_instr: IF labeling_opt block ELSE labeling_opt instr_list END labeling_opt .
+
+ $default reduce using rule 70 (block_instr)
-State 410
+
+State 439
7 value_type_list: value_type_list . VALUE_TYPE
14 func_sig: "(" PARAM value_type_list ")" "(" RESULT value_type_list . ")"
- ")" shift, and go to state 413
- VALUE_TYPE shift, and go to state 328
+ ")" shift, and go to state 443
+ VALUE_TYPE shift, and go to state 341
-State 411
+State 440
- 79 if_: "(" THEN instr_list ")" "(" ELSE . instr_list ")"
+ 89 if_: "(" THEN instr_list ")" "(" ELSE . instr_list ")"
- "(" shift, and go to state 214
+ "(" 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
@@ -5176,61 +5799,75 @@ State 411
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 414
+ 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 98 (instr_list)
-State 412
+ 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 444
- 81 if_: expr "(" THEN instr_list ")" "(" . ELSE instr_list ")"
- ELSE shift, and go to state 415
+State 441
+ 91 if_: expr "(" THEN instr_list ")" "(" . ELSE instr_list ")"
-State 413
+ ELSE shift, and go to state 445
+
+
+State 442
+
+ 85 catch_list: "(" catch_instr . ")"
+ 86 | "(" catch_instr . ")" catch_list
+
+ ")" shift, and go to state 446
+
+
+State 443
14 func_sig: "(" PARAM value_type_list ")" "(" RESULT value_type_list ")" .
$default reduce using rule 14 (func_sig)
-State 414
+State 444
- 79 if_: "(" THEN instr_list ")" "(" ELSE instr_list . ")"
+ 89 if_: "(" THEN instr_list ")" "(" ELSE instr_list . ")"
- ")" shift, and go to state 416
+ ")" shift, and go to state 447
-State 415
+State 445
- 81 if_: expr "(" THEN instr_list ")" "(" ELSE . instr_list ")"
+ 91 if_: expr "(" THEN instr_list ")" "(" ELSE . instr_list ")"
- "(" shift, and go to state 214
+ "(" 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
@@ -5239,51 +5876,76 @@ State 415
BR shift, and go to state 95
BR_IF shift, and go to state 96
BR_TABLE shift, and go to state 97
- CALL shift, and go to state 98
- CALL_INDIRECT shift, and go to state 99
- RETURN shift, and go to state 100
- GET_LOCAL shift, and go to state 101
- SET_LOCAL shift, and go to state 102
- TEE_LOCAL shift, and go to state 103
- GET_GLOBAL shift, and go to state 104
- SET_GLOBAL shift, and go to state 105
- LOAD shift, and go to state 106
- STORE shift, and go to state 107
- CONST shift, and go to state 108
- UNARY shift, and go to state 109
- BINARY shift, and go to state 110
- COMPARE shift, and go to state 111
- CONVERT shift, and go to state 112
- SELECT shift, and go to state 113
- UNREACHABLE shift, and go to state 114
- CURRENT_MEMORY shift, and go to state 115
- GROW_MEMORY shift, and go to state 116
-
- $default reduce using rule 85 (instr_list)
-
- instr go to state 118
- plain_instr go to state 119
- block_instr go to state 120
- expr go to state 121
- instr_list go to state 417
+ 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 98 (instr_list)
-State 416
+ 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 448
- 79 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")" .
- $default reduce using rule 79 (if_)
+State 446
+ 85 catch_list: "(" catch_instr ")" .
+ 86 | "(" catch_instr ")" . catch_list
-State 417
+ "(" shift, and go to state 436
- 81 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list . ")"
+ $default reduce using rule 85 (catch_list)
- ")" shift, and go to state 418
+ catch_list go to state 449
-State 418
+State 447
+
+ 89 if_: "(" THEN instr_list ")" "(" ELSE instr_list ")" .
+
+ $default reduce using rule 89 (if_)
+
+
+State 448
+
+ 91 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list . ")"
+
+ ")" shift, and go to state 450
+
+
+State 449
+
+ 86 catch_list: "(" catch_instr ")" catch_list .
+
+ $default reduce using rule 86 (catch_list)
+
+
+State 450
- 81 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list ")" .
+ 91 if_: expr "(" THEN instr_list ")" "(" ELSE instr_list ")" .
- $default reduce using rule 81 (if_)
+ $default reduce using rule 91 (if_)
diff --git a/src/tools/wast2wasm.cc b/src/tools/wast2wasm.cc
index 7226028b..6c84d66c 100644
--- a/src/tools/wast2wasm.cc
+++ b/src/tools/wast2wasm.cc
@@ -48,6 +48,7 @@ static WriteBinarySpecOptions s_write_binary_spec_options =
WABT_WRITE_BINARY_SPEC_OPTIONS_DEFAULT;
static bool s_spec;
static bool s_validate = true;
+static WastParseOptions s_parse_options;
static std::unique_ptr<FileStream> s_log_stream;
@@ -64,6 +65,8 @@ enum {
FLAG_NO_CANONICALIZE_LEB128S,
FLAG_DEBUG_NAMES,
FLAG_NO_CHECK,
+ FLAG_EXCEPTIONS,
+ FLAG_DEBUG_PARSER,
NUM_FLAGS
};
@@ -90,8 +93,12 @@ static Option s_options[] = {
{FLAG_VERBOSE, 'v', "verbose", nullptr, NOPE,
"use multiple times for more info"},
{FLAG_HELP, 'h', "help", nullptr, NOPE, "print this help message"},
+ {FLAG_DEBUG_PARSER, 0, "debug-parser", nullptr, NOPE,
+ "Turn on debugging the parser of wast files"},
{FLAG_DUMP_MODULE, 'd', "dump-module", nullptr, NOPE,
"print a hexdump of the module to stdout"},
+ {FLAG_EXCEPTIONS, 0, "future-exceptions", nullptr, NOPE,
+ "Test future extension for exception handling"},
{FLAG_OUTPUT, 'o', "output", "FILE", YEP, "output wasm binary file"},
{FLAG_RELOCATABLE, 'r', nullptr, nullptr, NOPE,
"create a relocatable wasm binary (suitable for linking with wasm-link)"},
@@ -103,7 +110,7 @@ static Option s_options[] = {
{FLAG_DEBUG_NAMES, 0, "debug-names", nullptr, NOPE,
"Write debug names to the generated binary file"},
{FLAG_NO_CHECK, 0, "no-check", nullptr, NOPE,
- "Don't check for invalid modules"},
+ "Don't check for invalid modules"}
};
WABT_STATIC_ASSERT(NUM_FLAGS == WABT_ARRAY_SIZE(s_options));
@@ -149,6 +156,14 @@ static void on_option(struct OptionParser* parser,
case FLAG_NO_CHECK:
s_validate = false;
break;
+
+ case FLAG_EXCEPTIONS:
+ s_parse_options.allow_exceptions = true;
+ break;
+
+ case FLAG_DEBUG_PARSER:
+ s_parse_options.debug_parsing = true;
+ break;
}
}
@@ -204,7 +219,8 @@ int ProgramMain(int argc, char** argv) {
SourceErrorHandlerFile error_handler;
Script* script;
- Result result = parse_wast(lexer.get(), &script, &error_handler);
+ Result result = parse_wast(lexer.get(), &script, &error_handler,
+ &s_parse_options);
if (WABT_SUCCEEDED(result)) {
result = resolve_names_script(lexer.get(), script, &error_handler);
diff --git a/src/validator.cc b/src/validator.cc
index 5e048bb5..b251a75c 100644
--- a/src/validator.cc
+++ b/src/validator.cc
@@ -470,6 +470,16 @@ void Validator::CheckExpr(const Expr* expr) {
break;
}
+ case ExprType::Catch:
+ // TODO(karlschimpf) Define.
+ PrintError(&expr->loc, "Catch: don't know how to validate");
+ break;
+
+ case ExprType::CatchAll:
+ // TODO(karlschimpf) Define.
+ PrintError(&expr->loc, "CatchAll: don't know how to validate");
+ break;
+
case ExprType::Compare:
typechecker_.OnCompare(expr->compare.opcode);
break;
@@ -533,6 +543,11 @@ void Validator::CheckExpr(const Expr* expr) {
case ExprType::Nop:
break;
+ case ExprType::Rethrow:
+ // TODO(karlschimpf) Define.
+ PrintError(&expr->loc, "Rethrow: don't know how to validate");
+ break;
+
case ExprType::Return:
typechecker_.OnReturn();
break;
@@ -561,6 +576,16 @@ void Validator::CheckExpr(const Expr* expr) {
typechecker_.OnTeeLocal(GetLocalVarTypeOrAny(&expr->tee_local.var));
break;
+ case ExprType::Throw:
+ // TODO(karlschimpf) Define.
+ PrintError(&expr->loc, "Throw: don't know how to validate");
+ break;
+
+ case ExprType::TryBlock:
+ // TODO(karlschimpf) Define.
+ PrintError(&expr->loc, "TryBlock: don't know how to validate");
+ break;
+
case ExprType::Unary:
typechecker_.OnUnary(expr->unary.opcode);
break;
diff --git a/src/wast-lexer.cc b/src/wast-lexer.cc
index 7ae2b4cd..81d6109c 100644
--- a/src/wast-lexer.cc
+++ b/src/wast-lexer.cc
@@ -460,6 +460,11 @@ int WastLexer::GetToken(Token* lval, Location* loc, WastParser* parser) {
RETURN(ASSERT_RETURN_ARITHMETIC_NAN); }
<i> "assert_trap" { RETURN(ASSERT_TRAP); }
<i> "assert_exhaustion" { RETURN(ASSERT_EXHAUSTION); }
+ <i> "try" { RETURN(TRY); }
+ <i> "catch" { RETURN(CATCH); }
+ <i> "catch_all" { RETURN(CATCH_ALL); }
+ <i> "throw" { RETURN(THROW); }
+ <i> "rethrow" { RETURN(RETHROW); }
<i> name { TEXT; RETURN(VAR); }
<i> ";;" => LINE_COMMENT { continue; }
diff --git a/src/wast-parser-lexer-shared.h b/src/wast-parser-lexer-shared.h
index 4b36a917..8cf3c780 100644
--- a/src/wast-parser-lexer-shared.h
+++ b/src/wast-parser-lexer-shared.h
@@ -23,7 +23,7 @@
#include "common.h"
#include "ir.h"
#include "source-error-handler.h"
-#include "wast-lexer.h"
+#include "wast-parser.h"
#define WABT_WAST_PARSER_STYPE Token
#define WABT_WAST_PARSER_LTYPE Location
@@ -103,6 +103,7 @@ struct WastParser {
int16_t* yyssa;
YYSTYPE* yyvsa;
YYLTYPE* yylsa;
+ WastParseOptions* options;
};
int wast_lexer_lex(union Token*,
diff --git a/src/wast-parser.h b/src/wast-parser.h
index f195d7ee..53ba4422 100644
--- a/src/wast-parser.h
+++ b/src/wast-parser.h
@@ -24,7 +24,13 @@ namespace wabt {
struct Script;
class SourceErrorHandler;
-Result parse_wast(WastLexer* lexer, Script** out_script, SourceErrorHandler*);
+struct WastParseOptions {
+ bool allow_exceptions = false;
+ bool debug_parsing = false;
+};
+
+Result parse_wast(WastLexer* lexer, Script** out_script, SourceErrorHandler*,
+ WastParseOptions* options = nullptr);
} // namespace wabt
diff --git a/src/wast-parser.y b/src/wast-parser.y
index 2443c94a..208b0cd9 100644
--- a/src/wast-parser.y
+++ b/src/wast-parser.y
@@ -29,6 +29,8 @@
#include "wast-parser.h"
#include "wast-parser-lexer-shared.h"
+#define YYDEBUG 1
+
#define RELOCATE_STACK(type, array, stack_base, old_size, new_size) \
do { \
type* new_stack = new type[new_size](); \
@@ -93,6 +95,14 @@
} \
} 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); \
+ } \
+ } while (0)
+
#define YYMALLOC(size) new char [size]
#define YYFREE(p) delete [] (p)
@@ -102,6 +112,7 @@ namespace wabt {
static ExprList join_exprs1(Location* loc, Expr* expr1);
static ExprList join_exprs2(Location* loc, ExprList* expr1, Expr* expr2);
+static ExprList join_expr_lists(ExprList* expr1, ExprList* expr2);
static Result parse_const(Type type,
LiteralType literal_type,
@@ -151,6 +162,7 @@ class BinaryErrorHandlerModule : public BinaryErrorHandler {
%token RPAR ")"
%token NAT INT FLOAT TEXT VAR VALUE_TYPE ANYFUNC MUT
%token NOP DROP BLOCK END IF THEN ELSE LOOP BR BR_IF BR_TABLE
+%token TRY CATCH CATCH_ALL THROW RETHROW
%token CALL CALL_INDIRECT RETURN
%token GET_LOCAL SET_LOCAL TEE_LOCAL GET_GLOBAL SET_GLOBAL
%token LOAD STORE OFFSET_EQ_NAT ALIGN_EQ_NAT
@@ -178,6 +190,7 @@ class BinaryErrorHandlerModule : public BinaryErrorHandler {
%type<consts> const_list
%type<export_> export_desc inline_export
%type<expr> plain_instr block_instr
+%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_body func_body1 func_fields_import func_fields_import1
%type<func_sig> func_sig func_type
@@ -436,8 +449,9 @@ align_opt :
instr :
plain_instr { $$ = join_exprs1(&@1, $1); }
| block_instr { $$ = join_exprs1(&@1, $1); }
- | expr { $$ = $1; }
+ | expr
;
+
plain_instr :
UNREACHABLE {
$$ = Expr::CreateUnreachable();
@@ -521,7 +535,14 @@ plain_instr :
| GROW_MEMORY {
$$ = Expr::CreateGrowMemory();
}
+ | throw_check var {
+ $$ = Expr::CreateThrow($2);
+ }
+ | rethrow_check var {
+ $$ = Expr::CreateRethrow($2);
+ }
;
+
block_instr :
BLOCK labeling_opt block END labeling_opt {
$$ = Expr::CreateBlock($3);
@@ -544,7 +565,13 @@ block_instr :
CHECK_END_LABEL(@5, $$->if_.true_->label, $5);
CHECK_END_LABEL(@8, $$->if_.true_->label, $8);
}
+ | try_check labeling_opt block catch_instr_list END labeling_opt {
+ $3->label = $2;
+ $$ = Expr::CreateTry($3, $4.first);
+ CHECK_END_LABEL(@6, $3->label, $6);
+ }
;
+
block_sig :
LPAR RESULT value_type_list RPAR { $$ = $3; }
;
@@ -560,6 +587,24 @@ block :
}
;
+catch_instr :
+ CATCH var instr_list {
+ Expr* expr = Expr::CreateCatch($2, $3.first);
+ $$ = join_exprs1(&@1, expr);
+ }
+ | CATCH_ALL var instr_list {
+ Expr* expr = Expr::CreateCatchAll($2, $3.first);
+ $$ = join_exprs1(&@1, expr);
+ }
+ ;
+
+catch_instr_list :
+ catch_instr
+ | catch_instr catch_instr_list {
+ $$ = join_expr_lists(&$1, &$2);
+ }
+ ;
+
expr :
LPAR expr1 RPAR { $$ = $2; }
;
@@ -584,7 +629,22 @@ 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_);
+ }
+ ;
+
+catch_list :
+ LPAR catch_instr RPAR {
+ $$ = $2;
+ }
+ | LPAR catch_instr RPAR catch_list {
+ $$ = join_expr_lists(&$2, &$4);
+ }
+ ;
+
if_block :
block_sig if_block {
Expr* if_ = $2.last;
@@ -623,6 +683,23 @@ if_ :
}
;
+rethrow_check :
+ RETHROW {
+ CHECK_ALLOW_EXCEPTIONS(&@1, "rethrow");
+ }
+ ;
+throw_check :
+ THROW {
+ CHECK_ALLOW_EXCEPTIONS(&@1, "throw");
+ }
+ ;
+
+try_check :
+ TRY {
+ CHECK_ALLOW_EXCEPTIONS(&@1, "try");
+ }
+ ;
+
instr_list :
/* empty */ { WABT_ZERO_MEMORY($$); }
| instr instr_list {
@@ -1462,6 +1539,14 @@ ExprList join_exprs2(Location* loc, ExprList* expr1, Expr* expr2) {
return result;
}
+ExprList join_expr_lists(ExprList* expr1, ExprList* expr2) {
+ ExprList result;
+ WABT_ZERO_MEMORY(result);
+ append_expr_list(&result, expr1);
+ append_expr_list(&result, expr2);
+ return result;
+}
+
Result parse_const(Type type,
LiteralType literal_type,
const char* s,
@@ -1737,10 +1822,16 @@ void append_module_fields(Module* module, ModuleField* first) {
}
Result parse_wast(WastLexer* lexer, Script** out_script,
- SourceErrorHandler* error_handler) {
+ SourceErrorHandler* error_handler,
+ WastParseOptions* options) {
WastParser parser;
WABT_ZERO_MEMORY(parser);
+ static WastParseOptions default_options;
+ if (options == nullptr)
+ options = &default_options;
+ parser.options = options;
parser.error_handler = error_handler;
+ wabt_wast_parser_debug = int(options->debug_parsing);
int result = wabt_wast_parser_parse(lexer, &parser);
delete [] parser.yyssa;
delete [] parser.yyvsa;