summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ir.cc9
-rw-r--r--src/ir.h2
-rw-r--r--src/literal.cc28
-rw-r--r--src/prebuilt/wast-lexer-gen.cc5108
-rw-r--r--src/prebuilt/wast-parser-gen.cc1165
-rw-r--r--src/wast-lexer.cc13
-rw-r--r--src/wast-parser.y77
7 files changed, 3424 insertions, 2978 deletions
diff --git a/src/ir.cc b/src/ir.cc
index 7354e118..be7848bf 100644
--- a/src/ir.cc
+++ b/src/ir.cc
@@ -224,15 +224,6 @@ void MakeTypeBindingReverseMapping(
}
}
-FuncType* Module::AppendImplicitFuncType(const Location& loc,
- const FuncSignature& sig) {
- FuncType* func_type = new FuncType();
- func_type->sig = sig;
- func_types.push_back(func_type);
- fields.push_back(new FuncTypeModuleField(func_type, loc));
- return func_type;
-}
-
Var::Var(Index index, const Location& loc)
: loc(loc), type_(VarType::Index), index_(index) {}
diff --git a/src/ir.h b/src/ir.h
index 2eeb628f..467c8f17 100644
--- a/src/ir.h
+++ b/src/ir.h
@@ -561,8 +561,6 @@ class StartModuleField : public ModuleFieldMixin<ModuleFieldType::Start> {
};
struct Module {
- FuncType* AppendImplicitFuncType(const Location&, const FuncSignature&);
-
Index GetFuncTypeIndex(const Var&) const;
Index GetFuncTypeIndex(const FuncDeclaration&) const;
Index GetFuncTypeIndex(const FuncSignature&) const;
diff --git a/src/literal.cc b/src/literal.cc
index 5df09b29..bac59975 100644
--- a/src/literal.cc
+++ b/src/literal.cc
@@ -156,9 +156,20 @@ Result FloatParser<T>::ParseFloat(const char* s,
//
// The WebAssembly spec also ignores underflow, so we don't need to check for
// ERANGE at all.
+
+ // WebAssembly floats can contain underscores, but strto* can't parse those,
+ // so remove them first.
+ assert(s <= end);
+ const size_t kBufferSize = end - s + 1; // +1 for \0.
+ char* buffer = static_cast<char*>(alloca(kBufferSize));
+ auto buffer_end =
+ std::copy_if(s, end, buffer, [](char c) -> bool { return c != '_'; });
+ assert(buffer_end < buffer + kBufferSize);
+ *buffer_end = 0;
+
char* endptr;
- Float value = Traits::Strto(s, &endptr);
- if (endptr != end ||
+ Float value = Traits::Strto(buffer, &endptr);
+ if (endptr != buffer_end ||
(value == Traits::kHugeVal || value == -Traits::kHugeVal)) {
return Result::Error;
}
@@ -260,7 +271,9 @@ Result FloatParser<T>::ParseHex(const char* s,
int significand_exponent = 0; // Exponent adjustment due to dot placement.
for (; s < end; ++s) {
uint32_t digit;
- if (*s == '.') {
+ if (*s == '_') {
+ continue;
+ } else if (*s == '.') {
seen_dot = true;
} else if (Succeeded(ParseHexdigit(*s, &digit))) {
if (Traits::kBits - Clz(significand) <= Traits::kSigPlusOneBits) {
@@ -284,7 +297,7 @@ Result FloatParser<T>::ParseHex(const char* s,
int exponent = 0;
bool exponent_is_neg = false;
if (s < end) {
- assert(*s == 'p');
+ assert(*s == 'p' || *s == 'P');
s++;
// Exponent is always positive, but significand_exponent is signed.
// significand_exponent_add is negated if exponent will be negative, so it
@@ -300,6 +313,9 @@ Result FloatParser<T>::ParseHex(const char* s,
}
for (; s < end; ++s) {
+ if (*s == '_')
+ continue;
+
uint32_t digit = (*s - '0');
assert(digit <= 9);
exponent = exponent * 10 + digit;
@@ -534,6 +550,8 @@ Result ParseUint64(const char* s, const char* end, uint64_t* out) {
return Result::Error;
for (; s < end; ++s) {
uint32_t digit;
+ if (*s == '_')
+ continue;
if (Failed(ParseHexdigit(*s, &digit)))
return Result::Error;
uint64_t old_value = value;
@@ -544,6 +562,8 @@ Result ParseUint64(const char* s, const char* end, uint64_t* out) {
}
} else {
for (; s < end; ++s) {
+ if (*s == '_')
+ continue;
uint32_t digit = (*s - '0');
if (digit > 9)
return Result::Error;
diff --git a/src/prebuilt/wast-lexer-gen.cc b/src/prebuilt/wast-lexer-gen.cc
index 85bbb427..a766846c 100644
--- a/src/prebuilt/wast-lexer-gen.cc
+++ b/src/prebuilt/wast-lexer-gen.cc
@@ -327,27 +327,27 @@ YYCOND_BAD_TEXT:
}
++cursor_;
yy4:
-#line 327 "src/wast-lexer.cc"
+#line 330 "src/wast-lexer.cc"
{ ERROR("illegal character in string");
continue; }
#line 334 "src/prebuilt/wast-lexer-gen.cc"
yy5:
++cursor_;
BEGIN(YYCOND_i);
-#line 320 "src/wast-lexer.cc"
+#line 323 "src/wast-lexer.cc"
{ ERROR("newline in string");
NEWLINE;
continue; }
#line 342 "src/prebuilt/wast-lexer-gen.cc"
yy7:
++cursor_;
-#line 319 "src/wast-lexer.cc"
+#line 322 "src/wast-lexer.cc"
{ continue; }
#line 347 "src/prebuilt/wast-lexer-gen.cc"
yy9:
++cursor_;
BEGIN(YYCOND_i);
-#line 326 "src/wast-lexer.cc"
+#line 329 "src/wast-lexer.cc"
{ SetText(); RETURN(TEXT); }
#line 353 "src/prebuilt/wast-lexer-gen.cc"
yy11:
@@ -401,7 +401,7 @@ yy11:
yy12:
++cursor_;
yy13:
-#line 329 "src/wast-lexer.cc"
+#line 332 "src/wast-lexer.cc"
{ MAYBE_MALFORMED_UTF8(" in string"); }
#line 407 "src/prebuilt/wast-lexer-gen.cc"
yy14:
@@ -442,7 +442,7 @@ yy19:
yy20:
++cursor_;
yy21:
-#line 323 "src/wast-lexer.cc"
+#line 326 "src/wast-lexer.cc"
{ ERROR("bad escape \"%.*s\"",
static_cast<int>(yyleng), yytext);
continue; }
@@ -532,12 +532,12 @@ YYCOND_BLOCK_COMMENT:
yy34:
++cursor_;
yy35:
-#line 558 "src/wast-lexer.cc"
+#line 561 "src/wast-lexer.cc"
{ continue; }
#line 538 "src/prebuilt/wast-lexer-gen.cc"
yy36:
++cursor_;
-#line 557 "src/wast-lexer.cc"
+#line 560 "src/wast-lexer.cc"
{ NEWLINE; continue; }
#line 543 "src/prebuilt/wast-lexer-gen.cc"
yy38:
@@ -551,7 +551,7 @@ yy39:
yy40:
++cursor_;
yy41:
-#line 559 "src/wast-lexer.cc"
+#line 562 "src/wast-lexer.cc"
{ MAYBE_MALFORMED_UTF8(" in block comment"); }
#line 557 "src/prebuilt/wast-lexer-gen.cc"
yy42:
@@ -586,12 +586,12 @@ yy47:
goto yy41;
yy48:
++cursor_;
-#line 553 "src/wast-lexer.cc"
+#line 556 "src/wast-lexer.cc"
{ COMMENT_NESTING++; continue; }
#line 592 "src/prebuilt/wast-lexer-gen.cc"
yy50:
++cursor_;
-#line 554 "src/wast-lexer.cc"
+#line 557 "src/wast-lexer.cc"
{ if (--COMMENT_NESTING == 0)
BEGIN(YYCOND_i);
continue; }
@@ -684,19 +684,19 @@ yy57:
if (yych <= 0xF4) goto yy76;
}
yy59:
-#line 551 "src/wast-lexer.cc"
+#line 554 "src/wast-lexer.cc"
{ continue; }
#line 690 "src/prebuilt/wast-lexer-gen.cc"
yy60:
++cursor_;
BEGIN(YYCOND_i);
-#line 550 "src/wast-lexer.cc"
+#line 553 "src/wast-lexer.cc"
{ NEWLINE; continue; }
#line 696 "src/prebuilt/wast-lexer-gen.cc"
yy62:
++cursor_;
yy63:
-#line 566 "src/wast-lexer.cc"
+#line 569 "src/wast-lexer.cc"
{ MAYBE_MALFORMED_UTF8(""); }
#line 702 "src/prebuilt/wast-lexer-gen.cc"
yy64:
@@ -919,7 +919,7 @@ YYCOND_i:
yy79:
++cursor_;
yy80:
-#line 565 "src/wast-lexer.cc"
+#line 568 "src/wast-lexer.cc"
{ ERROR("unexpected char"); continue; }
#line 925 "src/prebuilt/wast-lexer-gen.cc"
yy81:
@@ -929,12 +929,12 @@ yy81:
if (yybm[0+yych] & 4) {
goto yy81;
}
-#line 561 "src/wast-lexer.cc"
+#line 564 "src/wast-lexer.cc"
{ continue; }
#line 935 "src/prebuilt/wast-lexer-gen.cc"
yy84:
++cursor_;
-#line 560 "src/wast-lexer.cc"
+#line 563 "src/wast-lexer.cc"
{ NEWLINE; continue; }
#line 940 "src/prebuilt/wast-lexer-gen.cc"
yy86:
@@ -946,7 +946,7 @@ yy87:
goto yy86;
}
yy88:
-#line 562 "src/wast-lexer.cc"
+#line 565 "src/wast-lexer.cc"
{ ERROR("unexpected token \"%.*s\"",
static_cast<int>(yyleng), yytext);
continue; }
@@ -960,7 +960,7 @@ yy89:
if (yych <= 0xF4) goto yy129;
yy90:
BEGIN(YYCOND_BAD_TEXT);
-#line 318 "src/wast-lexer.cc"
+#line 321 "src/wast-lexer.cc"
{ continue; }
#line 966 "src/prebuilt/wast-lexer-gen.cc"
yy91:
@@ -982,12 +982,12 @@ yy91:
yy92:
++cursor_;
if ((yych = *cursor_) == ';') goto yy143;
-#line 309 "src/wast-lexer.cc"
+#line 312 "src/wast-lexer.cc"
{ LOOKAHEAD(LPAR); }
#line 988 "src/prebuilt/wast-lexer-gen.cc"
yy94:
++cursor_;
-#line 310 "src/wast-lexer.cc"
+#line 313 "src/wast-lexer.cc"
{ RETURN(RPAR); }
#line 993 "src/prebuilt/wast-lexer-gen.cc"
yy96:
@@ -1007,23 +1007,30 @@ yy97:
if (yybm[0+(yych = *cursor_)] & 16) {
goto yy99;
}
- if (yych <= ':') {
+ if (yych <= ';') {
if (yych <= '\'') {
if (yych == '!') goto yy86;
if (yych >= '#') goto yy86;
} else {
- if (yych <= ')') goto yy98;
- if (yych == '.') goto yy151;
- goto yy86;
+ if (yych <= '-') {
+ if (yych >= '*') goto yy86;
+ } else {
+ if (yych <= '.') goto yy151;
+ if (yych <= ':') goto yy86;
+ }
}
} else {
if (yych <= 'd') {
- if (yych <= ';') goto yy98;
- if (yych == 'E') goto yy154;
- goto yy86;
+ if (yych <= 'E') {
+ if (yych <= 'D') goto yy86;
+ goto yy153;
+ } else {
+ if (yych == '_') goto yy154;
+ goto yy86;
+ }
} else {
if (yych <= 'w') {
- if (yych <= 'e') goto yy154;
+ if (yych <= 'e') goto yy153;
goto yy86;
} else {
if (yych <= 'x') goto yy155;
@@ -1032,9 +1039,9 @@ yy97:
}
}
yy98:
-#line 311 "src/wast-lexer.cc"
+#line 314 "src/wast-lexer.cc"
{ LITERAL(Int); RETURN(NAT); }
-#line 1038 "src/prebuilt/wast-lexer-gen.cc"
+#line 1045 "src/prebuilt/wast-lexer-gen.cc"
yy99:
++cursor_;
if ((limit_ - cursor_) < 3) FILL(3);
@@ -1042,25 +1049,30 @@ yy99:
if (yybm[0+yych] & 16) {
goto yy99;
}
- if (yych <= '.') {
- if (yych <= '"') {
+ if (yych <= ':') {
+ if (yych <= '\'') {
if (yych == '!') goto yy86;
- goto yy98;
+ if (yych <= '"') goto yy98;
+ goto yy86;
} else {
- if (yych <= '\'') goto yy86;
if (yych <= ')') goto yy98;
- if (yych <= '-') goto yy86;
- goto yy151;
+ if (yych == '.') goto yy151;
+ goto yy86;
}
} else {
- if (yych <= 'E') {
- if (yych == ';') goto yy98;
- if (yych <= 'D') goto yy86;
- goto yy154;
+ if (yych <= '^') {
+ if (yych <= ';') goto yy98;
+ if (yych == 'E') goto yy153;
+ goto yy86;
} else {
- if (yych == 'e') goto yy154;
- if (yych <= '~') goto yy86;
- goto yy98;
+ if (yych <= 'd') {
+ if (yych <= '_') goto yy154;
+ goto yy86;
+ } else {
+ if (yych <= 'e') goto yy153;
+ if (yych <= '~') goto yy86;
+ goto yy98;
+ }
}
}
yy101:
@@ -1204,9 +1216,9 @@ yy119:
yy120:
++cursor_;
yy121:
-#line 566 "src/wast-lexer.cc"
+#line 569 "src/wast-lexer.cc"
{ MAYBE_MALFORMED_UTF8(""); }
-#line 1210 "src/prebuilt/wast-lexer-gen.cc"
+#line 1222 "src/prebuilt/wast-lexer-gen.cc"
yy122:
yych = *++cursor_;
if (yych <= 0x7F) goto yy121;
@@ -1276,9 +1288,9 @@ yy130:
}
yy131:
++cursor_;
-#line 317 "src/wast-lexer.cc"
+#line 320 "src/wast-lexer.cc"
{ SetText(); RETURN(TEXT); }
-#line 1282 "src/prebuilt/wast-lexer-gen.cc"
+#line 1294 "src/prebuilt/wast-lexer-gen.cc"
yy133:
++cursor_;
if (limit_ <= cursor_) FILL(1);
@@ -1373,77 +1385,92 @@ yy141:
if (yych <= ';') goto yy142;
if (yych <= '}') goto yy86;
yy142:
-#line 547 "src/wast-lexer.cc"
+#line 550 "src/wast-lexer.cc"
{ SetText(); RETURN(VAR); }
-#line 1379 "src/prebuilt/wast-lexer-gen.cc"
+#line 1391 "src/prebuilt/wast-lexer-gen.cc"
yy143:
++cursor_;
BEGIN(YYCOND_BLOCK_COMMENT);
-#line 552 "src/wast-lexer.cc"
+#line 555 "src/wast-lexer.cc"
{ COMMENT_NESTING = 1; continue; }
-#line 1385 "src/prebuilt/wast-lexer-gen.cc"
+#line 1397 "src/prebuilt/wast-lexer-gen.cc"
yy145:
++cursor_;
- if ((yych = *cursor_) <= '9') {
- if (yych <= '\'') {
- if (yych == '!') goto yy86;
- if (yych >= '#') goto yy86;
+ if ((yych = *cursor_) <= ':') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych >= '!') goto yy86;
+ } else {
+ if (yych <= '"') goto yy146;
+ if (yych <= '\'') goto yy86;
+ }
} else {
- if (yych <= '-') {
- if (yych >= '*') goto yy86;
+ if (yych <= '.') {
+ if (yych <= '-') goto yy86;
+ goto yy151;
} else {
- if (yych <= '.') goto yy151;
if (yych <= '/') goto yy86;
- goto yy147;
+ if (yych <= '9') goto yy147;
+ goto yy86;
}
}
} else {
- if (yych <= 'd') {
- if (yych <= ';') {
- if (yych <= ':') goto yy86;
+ if (yych <= '_') {
+ if (yych <= 'D') {
+ if (yych >= '<') goto yy86;
} else {
- if (yych == 'E') goto yy154;
- goto yy86;
+ if (yych <= 'E') goto yy153;
+ if (yych <= '^') goto yy86;
+ goto yy205;
}
} else {
if (yych <= 'w') {
- if (yych <= 'e') goto yy154;
+ if (yych == 'e') goto yy153;
goto yy86;
} else {
- if (yych <= 'x') goto yy205;
+ if (yych <= 'x') goto yy206;
if (yych <= '~') goto yy86;
}
}
}
yy146:
-#line 312 "src/wast-lexer.cc"
+#line 315 "src/wast-lexer.cc"
{ LITERAL(Int); RETURN(INT); }
-#line 1422 "src/prebuilt/wast-lexer-gen.cc"
+#line 1440 "src/prebuilt/wast-lexer-gen.cc"
yy147:
++cursor_;
if ((limit_ - cursor_) < 3) FILL(3);
yych = *cursor_;
- if (yych <= '/') {
+ if (yych <= '9') {
if (yych <= '\'') {
if (yych == '!') goto yy86;
if (yych <= '"') goto yy146;
goto yy86;
} else {
- if (yych <= ')') goto yy146;
- if (yych == '.') goto yy151;
- goto yy86;
+ if (yych <= '-') {
+ if (yych <= ')') goto yy146;
+ goto yy86;
+ } else {
+ if (yych <= '.') goto yy151;
+ if (yych <= '/') goto yy86;
+ goto yy147;
+ }
}
} else {
- if (yych <= 'D') {
- if (yych <= '9') goto yy147;
- if (yych == ';') goto yy146;
- goto yy86;
+ if (yych <= '^') {
+ if (yych <= ';') {
+ if (yych <= ':') goto yy86;
+ goto yy146;
+ } else {
+ if (yych == 'E') goto yy153;
+ goto yy86;
+ }
} else {
if (yych <= 'd') {
- if (yych <= 'E') goto yy154;
+ if (yych <= '_') goto yy205;
goto yy86;
} else {
- if (yych <= 'e') goto yy154;
+ if (yych <= 'e') goto yy153;
if (yych <= '~') goto yy86;
goto yy146;
}
@@ -1451,7 +1478,7 @@ yy147:
}
yy149:
yych = *++cursor_;
- if (yych == 'n') goto yy206;
+ if (yych == 'n') goto yy207;
goto yy87;
yy150:
yych = *++cursor_;
@@ -1459,73 +1486,107 @@ yy150:
goto yy87;
yy151:
++cursor_;
- if ((limit_ - cursor_) < 3) FILL(3);
- yych = *cursor_;
- if (yych <= '9') {
+ if ((yych = *cursor_) <= '9') {
if (yych <= '"') {
if (yych == '!') goto yy86;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy153;
+ if (yych <= ')') goto yy152;
if (yych <= '/') goto yy86;
- goto yy151;
+ goto yy208;
}
} else {
if (yych <= 'E') {
- if (yych == ';') goto yy153;
+ if (yych == ';') goto yy152;
if (yych <= 'D') goto yy86;
- goto yy154;
+ goto yy153;
} else {
- if (yych == 'e') goto yy154;
+ if (yych == 'e') goto yy153;
if (yych <= '~') goto yy86;
}
}
-yy153:
-#line 313 "src/wast-lexer.cc"
+yy152:
+#line 316 "src/wast-lexer.cc"
{ LITERAL(Float); RETURN(FLOAT); }
-#line 1487 "src/prebuilt/wast-lexer-gen.cc"
-yy154:
+#line 1512 "src/prebuilt/wast-lexer-gen.cc"
+yy153:
yych = *++cursor_;
if (yych <= ',') {
- if (yych == '+') goto yy207;
+ if (yych == '+') goto yy210;
goto yy87;
} else {
- if (yych <= '-') goto yy207;
+ if (yych <= '-') goto yy210;
if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy208;
+ if (yych <= '9') goto yy211;
goto yy87;
}
+yy154:
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yybm[0+yych] & 16) {
+ goto yy99;
+ }
+ if (yych <= '\'') {
+ if (yych == '!') goto yy86;
+ if (yych <= '"') goto yy88;
+ goto yy86;
+ } else {
+ if (yych <= ':') {
+ if (yych <= ')') goto yy88;
+ goto yy86;
+ } else {
+ if (yych <= ';') goto yy88;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
+ }
yy155:
- yych = *++cursor_;
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
if (yybm[0+yych] & 128) {
- goto yy210;
+ goto yy213;
+ }
+ if (yych <= '\'') {
+ if (yych == '!') goto yy86;
+ if (yych <= '"') goto yy88;
+ goto yy86;
+ } else {
+ if (yych <= ':') {
+ if (yych <= ')') goto yy88;
+ goto yy86;
+ } else {
+ if (yych <= ';') goto yy88;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
}
- goto yy87;
yy156:
++cursor_;
BEGIN(YYCOND_LINE_COMMENT);
-#line 549 "src/wast-lexer.cc"
+#line 552 "src/wast-lexer.cc"
{ continue; }
-#line 1510 "src/prebuilt/wast-lexer-gen.cc"
+#line 1571 "src/prebuilt/wast-lexer-gen.cc"
yy158:
yych = *++cursor_;
- if (yych == 'i') goto yy212;
+ if (yych == 'i') goto yy215;
goto yy87;
yy159:
yych = *++cursor_;
- if (yych == 'y') goto yy213;
+ if (yych == 'y') goto yy216;
goto yy87;
yy160:
yych = *++cursor_;
- if (yych == 's') goto yy214;
+ if (yych == 's') goto yy217;
goto yy87;
yy161:
yych = *++cursor_;
- if (yych == 'n') goto yy215;
+ if (yych == 'n') goto yy218;
goto yy87;
yy162:
yych = *++cursor_;
- if (yych == 'o') goto yy216;
+ if (yych == 'o') goto yy219;
goto yy87;
yy163:
++cursor_;
@@ -1540,174 +1601,174 @@ yy163:
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy217;
+ if (yych <= '_') goto yy220;
if (yych <= '~') goto yy86;
}
}
yy164:
-#line 342 "src/wast-lexer.cc"
+#line 345 "src/wast-lexer.cc"
{ RETURN(BR); }
-#line 1551 "src/prebuilt/wast-lexer-gen.cc"
+#line 1612 "src/prebuilt/wast-lexer-gen.cc"
yy165:
yych = *++cursor_;
- if (yych == 'l') goto yy218;
- if (yych == 't') goto yy219;
+ if (yych == 'l') goto yy221;
+ if (yych == 't') goto yy222;
goto yy87;
yy166:
yych = *++cursor_;
- if (yych == 'r') goto yy220;
+ if (yych == 'r') goto yy223;
goto yy87;
yy167:
yych = *++cursor_;
- if (yych == 't') goto yy221;
+ if (yych == 't') goto yy224;
goto yy87;
yy168:
yych = *++cursor_;
- if (yych == 'o') goto yy222;
+ if (yych == 'o') goto yy225;
goto yy87;
yy169:
yych = *++cursor_;
- if (yych == 'e') goto yy223;
- if (yych == 's') goto yy224;
+ if (yych == 'e') goto yy226;
+ if (yych == 's') goto yy227;
goto yy87;
yy170:
yych = *++cursor_;
- if (yych == 'd') goto yy225;
+ if (yych == 'd') goto yy228;
goto yy87;
yy171:
yych = *++cursor_;
- if (yych == 'c') goto yy227;
- if (yych == 'p') goto yy228;
+ if (yych == 'c') goto yy230;
+ if (yych == 'p') goto yy231;
goto yy87;
yy172:
yych = *++cursor_;
- if (yych == '2') goto yy229;
+ if (yych == '2') goto yy232;
goto yy87;
yy173:
yych = *++cursor_;
- if (yych == '4') goto yy231;
+ if (yych == '4') goto yy234;
goto yy87;
yy174:
yych = *++cursor_;
- if (yych == 'n') goto yy233;
+ if (yych == 'n') goto yy236;
goto yy87;
yy175:
yych = *++cursor_;
- if (yych == 't') goto yy234;
+ if (yych == 't') goto yy237;
goto yy87;
yy176:
yych = *++cursor_;
- if (yych == 'o') goto yy236;
+ if (yych == 'o') goto yy239;
goto yy87;
yy177:
yych = *++cursor_;
- if (yych == 'o') goto yy237;
+ if (yych == 'o') goto yy240;
goto yy87;
yy178:
yych = *++cursor_;
- if (yych == '2') goto yy238;
+ if (yych == '2') goto yy241;
goto yy87;
yy179:
yych = *++cursor_;
- if (yych == '4') goto yy240;
+ if (yych == '4') goto yy243;
goto yy87;
yy180:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 338 "src/wast-lexer.cc"
+#line 341 "src/wast-lexer.cc"
{ RETURN(IF); }
-#line 1622 "src/prebuilt/wast-lexer-gen.cc"
+#line 1683 "src/prebuilt/wast-lexer-gen.cc"
yy182:
yych = *++cursor_;
- if (yych == 'p') goto yy242;
+ if (yych == 'p') goto yy245;
goto yy87;
yy183:
yych = *++cursor_;
- if (yych == 'f') goto yy243;
- if (yych == 'v') goto yy245;
+ if (yych == 'f') goto yy246;
+ if (yych == 'v') goto yy248;
goto yy87;
yy184:
yych = *++cursor_;
- if (yych == 'c') goto yy246;
- if (yych == 'o') goto yy247;
+ if (yych == 'c') goto yy249;
+ if (yych == 'o') goto yy250;
goto yy87;
yy185:
yych = *++cursor_;
- if (yych == 'm') goto yy248;
+ if (yych == 'm') goto yy251;
goto yy87;
yy186:
yych = *++cursor_;
- if (yych == 'd') goto yy249;
+ if (yych == 'd') goto yy252;
goto yy87;
yy187:
yych = *++cursor_;
- if (yych == 't') goto yy250;
+ if (yych == 't') goto yy253;
goto yy87;
yy188:
yych = *++cursor_;
- if (yych == 'n') goto yy252;
+ if (yych == 'n') goto yy255;
goto yy87;
yy189:
yych = *++cursor_;
- if (yych == 'p') goto yy254;
+ if (yych == 'p') goto yy257;
goto yy87;
yy190:
yych = *++cursor_;
- if (yych == 'f') goto yy256;
+ if (yych == 'f') goto yy259;
goto yy87;
yy191:
yych = *++cursor_;
- if (yych == 'r') goto yy257;
+ if (yych == 'r') goto yy260;
goto yy87;
yy192:
yych = *++cursor_;
- if (yych == 'o') goto yy258;
+ if (yych == 'o') goto yy261;
goto yy87;
yy193:
yych = *++cursor_;
if (yych <= 'r') {
- if (yych == 'g') goto yy259;
+ if (yych == 'g') goto yy262;
goto yy87;
} else {
- if (yych <= 's') goto yy260;
- if (yych <= 't') goto yy261;
+ if (yych <= 's') goto yy263;
+ if (yych <= 't') goto yy264;
goto yy87;
}
yy194:
yych = *++cursor_;
- if (yych == 'l') goto yy262;
- if (yych == 't') goto yy263;
+ if (yych == 'l') goto yy265;
+ if (yych == 't') goto yy266;
goto yy87;
yy195:
yych = *++cursor_;
- if (yych == 'a') goto yy264;
+ if (yych == 'a') goto yy267;
goto yy87;
yy196:
yych = *++cursor_;
- if (yych == 'b') goto yy265;
+ if (yych == 'b') goto yy268;
goto yy87;
yy197:
yych = *++cursor_;
- if (yych == 'e') goto yy266;
+ if (yych == 'e') goto yy269;
goto yy87;
yy198:
yych = *++cursor_;
- if (yych == 'e') goto yy267;
- if (yych == 'r') goto yy268;
+ if (yych == 'e') goto yy270;
+ if (yych == 'r') goto yy271;
goto yy87;
yy199:
yych = *++cursor_;
- if (yych == 'y') goto yy269;
+ if (yych == 'y') goto yy272;
goto yy87;
yy200:
yych = *++cursor_;
- if (yych == 'p') goto yy271;
+ if (yych == 'p') goto yy274;
goto yy87;
yy201:
yych = *++cursor_;
- if (yych == 'r') goto yy272;
+ if (yych == 'r') goto yy275;
goto yy87;
yy202:
yych = *++cursor_;
@@ -1734,1453 +1795,1672 @@ yy204:
goto yy130;
}
yy205:
- yych = *++cursor_;
- if (yych <= '@') {
- if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy273;
- goto yy87;
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych <= ' ') goto yy88;
+ goto yy86;
+ } else {
+ if (yych <= '"') goto yy88;
+ if (yych <= '\'') goto yy86;
+ goto yy88;
+ }
} else {
- if (yych <= 'F') goto yy273;
- if (yych <= '`') goto yy87;
- if (yych <= 'f') goto yy273;
- goto yy87;
+ if (yych <= ':') {
+ if (yych <= '/') goto yy86;
+ if (yych <= '9') goto yy147;
+ goto yy86;
+ } else {
+ if (yych <= ';') goto yy88;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
}
yy206:
- yych = *++cursor_;
- if (yych == 'f') goto yy243;
- goto yy87;
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= '9') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy86;
+ goto yy88;
+ } else {
+ if (yych <= '\'') goto yy86;
+ if (yych <= ')') goto yy88;
+ if (yych <= '/') goto yy86;
+ goto yy276;
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == ';') goto yy88;
+ if (yych <= '@') goto yy86;
+ goto yy276;
+ } else {
+ if (yych <= '`') goto yy86;
+ if (yych <= 'f') goto yy276;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
+ }
yy207:
yych = *++cursor_;
- if (yych <= '/') goto yy87;
- if (yych >= ':') goto yy87;
+ if (yych == 'f') goto yy246;
+ goto yy87;
yy208:
++cursor_;
+ if ((limit_ - cursor_) < 2) FILL(2);
+ yych = *cursor_;
+ if (yych <= ':') {
+ if (yych <= '\'') {
+ if (yych == '!') goto yy86;
+ if (yych <= '"') goto yy152;
+ goto yy86;
+ } else {
+ if (yych <= ')') goto yy152;
+ if (yych <= '/') goto yy86;
+ if (yych <= '9') goto yy208;
+ goto yy86;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= ';') goto yy152;
+ if (yych == 'E') goto yy153;
+ goto yy86;
+ } else {
+ if (yych <= 'd') {
+ if (yych <= '_') goto yy278;
+ goto yy86;
+ } else {
+ if (yych <= 'e') goto yy153;
+ if (yych <= '~') goto yy86;
+ goto yy152;
+ }
+ }
+ }
+yy210:
+ ++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
if (yych <= ')') {
if (yych <= '!') {
- if (yych <= ' ') goto yy153;
+ if (yych <= ' ') goto yy88;
goto yy86;
} else {
- if (yych <= '"') goto yy153;
+ if (yych <= '"') goto yy88;
if (yych <= '\'') goto yy86;
- goto yy153;
+ goto yy88;
}
} else {
if (yych <= ':') {
if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy208;
- goto yy86;
+ if (yych >= ':') goto yy86;
} else {
- if (yych <= ';') goto yy153;
+ if (yych <= ';') goto yy88;
if (yych <= '~') goto yy86;
- goto yy153;
+ goto yy88;
}
}
-yy210:
+yy211:
++cursor_;
- if ((limit_ - cursor_) < 3) FILL(3);
+ if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
- if (yybm[0+yych] & 128) {
- goto yy210;
- }
- if (yych <= '-') {
+ if (yych <= '/') {
if (yych <= '"') {
if (yych == '!') goto yy86;
- goto yy98;
+ goto yy152;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy98;
+ if (yych <= ')') goto yy152;
goto yy86;
}
} else {
if (yych <= ';') {
- if (yych <= '.') goto yy275;
+ if (yych <= '9') goto yy211;
if (yych <= ':') goto yy86;
- goto yy98;
+ goto yy152;
} else {
- if (yych == 'p') goto yy277;
+ if (yych == '_') goto yy210;
if (yych <= '~') goto yy86;
- goto yy98;
+ goto yy152;
}
}
-yy212:
- yych = *++cursor_;
- if (yych == 'g') goto yy278;
- goto yy87;
yy213:
- yych = *++cursor_;
- if (yych == 'f') goto yy279;
- goto yy87;
-yy214:
- yych = *++cursor_;
- if (yych == 'e') goto yy280;
- goto yy87;
+ ++cursor_;
+ if ((limit_ - cursor_) < 3) FILL(3);
+ yych = *cursor_;
+ if (yybm[0+yych] & 128) {
+ goto yy213;
+ }
+ if (yych <= ':') {
+ if (yych <= '\'') {
+ if (yych == '!') goto yy86;
+ if (yych <= '"') goto yy98;
+ goto yy86;
+ } else {
+ if (yych <= ')') goto yy98;
+ if (yych == '.') goto yy279;
+ goto yy86;
+ }
+ } else {
+ if (yych <= '^') {
+ if (yych <= ';') goto yy98;
+ if (yych == 'P') goto yy281;
+ goto yy86;
+ } else {
+ if (yych <= 'o') {
+ if (yych <= '_') goto yy155;
+ goto yy86;
+ } else {
+ if (yych <= 'p') goto yy281;
+ if (yych <= '~') goto yy86;
+ goto yy98;
+ }
+ }
+ }
yy215:
yych = *++cursor_;
- if (yych == 'a') goto yy281;
+ if (yych == 'g') goto yy282;
goto yy87;
yy216:
yych = *++cursor_;
- if (yych == 'c') goto yy282;
+ if (yych == 'f') goto yy283;
goto yy87;
yy217:
yych = *++cursor_;
- if (yych == 'i') goto yy283;
- if (yych == 't') goto yy284;
+ if (yych == 'e') goto yy284;
goto yy87;
yy218:
yych = *++cursor_;
- if (yych == 'l') goto yy285;
+ if (yych == 'a') goto yy285;
goto yy87;
yy219:
yych = *++cursor_;
- if (yych == 'c') goto yy287;
+ if (yych == 'c') goto yy286;
goto yy87;
yy220:
yych = *++cursor_;
- if (yych == 'r') goto yy288;
+ if (yych == 'i') goto yy287;
+ if (yych == 't') goto yy288;
goto yy87;
yy221:
yych = *++cursor_;
- if (yych == 'a') goto yy289;
+ if (yych == 'l') goto yy289;
goto yy87;
yy222:
yych = *++cursor_;
- if (yych == 'p') goto yy291;
+ if (yych == 'c') goto yy291;
goto yy87;
yy223:
yych = *++cursor_;
- if (yych == 'm') goto yy293;
+ if (yych == 'r') goto yy292;
goto yy87;
yy224:
yych = *++cursor_;
- if (yych == 'e') goto yy295;
+ if (yych == 'a') goto yy293;
goto yy87;
yy225:
+ yych = *++cursor_;
+ if (yych == 'p') goto yy295;
+ goto yy87;
+yy226:
+ yych = *++cursor_;
+ if (yych == 'm') goto yy297;
+ goto yy87;
+yy227:
+ yych = *++cursor_;
+ if (yych == 'e') goto yy299;
+ goto yy87;
+yy228:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 348 "src/wast-lexer.cc"
+#line 351 "src/wast-lexer.cc"
{ RETURN(END); }
-#line 1868 "src/prebuilt/wast-lexer-gen.cc"
-yy227:
+#line 2023 "src/prebuilt/wast-lexer-gen.cc"
+yy230:
yych = *++cursor_;
- if (yych == 'e') goto yy297;
+ if (yych == 'e') goto yy301;
goto yy87;
-yy228:
+yy231:
yych = *++cursor_;
- if (yych == 'o') goto yy298;
+ if (yych == 'o') goto yy302;
goto yy87;
-yy229:
+yy232:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy230;
+ if (yych <= '"') goto yy233;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
- if (yych == '.') goto yy299;
+ if (yych == '.') goto yy303;
goto yy86;
} else {
- if (yych <= ';') goto yy230;
+ if (yych <= ';') goto yy233;
if (yych <= '~') goto yy86;
}
}
-yy230:
-#line 332 "src/wast-lexer.cc"
+yy233:
+#line 335 "src/wast-lexer.cc"
{ TYPE(F32); RETURN(VALUE_TYPE); }
-#line 1898 "src/prebuilt/wast-lexer-gen.cc"
-yy231:
+#line 2053 "src/prebuilt/wast-lexer-gen.cc"
+yy234:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy232;
+ if (yych <= '"') goto yy235;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
- if (yych == '.') goto yy300;
+ if (yych == '.') goto yy304;
goto yy86;
} else {
- if (yych <= ';') goto yy232;
+ if (yych <= ';') goto yy235;
if (yych <= '~') goto yy86;
}
}
-yy232:
-#line 333 "src/wast-lexer.cc"
+yy235:
+#line 336 "src/wast-lexer.cc"
{ TYPE(F64); RETURN(VALUE_TYPE); }
-#line 1920 "src/prebuilt/wast-lexer-gen.cc"
-yy233:
+#line 2075 "src/prebuilt/wast-lexer-gen.cc"
+yy236:
yych = *++cursor_;
- if (yych == 'c') goto yy301;
+ if (yych == 'c') goto yy305;
goto yy87;
-yy234:
+yy237:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy235;
+ if (yych <= '"') goto yy238;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy303;
+ if (yych <= '_') goto yy307;
if (yych <= '~') goto yy86;
}
}
-yy235:
-#line 531 "src/wast-lexer.cc"
+yy238:
+#line 534 "src/wast-lexer.cc"
{ RETURN(GET); }
-#line 1945 "src/prebuilt/wast-lexer-gen.cc"
-yy236:
+#line 2100 "src/prebuilt/wast-lexer-gen.cc"
+yy239:
yych = *++cursor_;
- if (yych == 'b') goto yy304;
+ if (yych == 'b') goto yy308;
goto yy87;
-yy237:
+yy240:
yych = *++cursor_;
- if (yych == 'w') goto yy305;
+ if (yych == 'w') goto yy309;
goto yy87;
-yy238:
+yy241:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy239;
+ if (yych <= '"') goto yy242;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
- if (yych == '.') goto yy306;
+ if (yych == '.') goto yy310;
goto yy86;
} else {
- if (yych <= ';') goto yy239;
+ if (yych <= ';') goto yy242;
if (yych <= '~') goto yy86;
}
}
-yy239:
-#line 330 "src/wast-lexer.cc"
+yy242:
+#line 333 "src/wast-lexer.cc"
{ TYPE(I32); RETURN(VALUE_TYPE); }
-#line 1975 "src/prebuilt/wast-lexer-gen.cc"
-yy240:
+#line 2130 "src/prebuilt/wast-lexer-gen.cc"
+yy243:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy241;
+ if (yych <= '"') goto yy244;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
- if (yych == '.') goto yy307;
+ if (yych == '.') goto yy311;
goto yy86;
} else {
- if (yych <= ';') goto yy241;
+ if (yych <= ';') goto yy244;
if (yych <= '~') goto yy86;
}
}
-yy241:
-#line 331 "src/wast-lexer.cc"
+yy244:
+#line 334 "src/wast-lexer.cc"
{ TYPE(I64); RETURN(VALUE_TYPE); }
-#line 1997 "src/prebuilt/wast-lexer-gen.cc"
-yy242:
+#line 2152 "src/prebuilt/wast-lexer-gen.cc"
+yy245:
yych = *++cursor_;
- if (yych == 'o') goto yy308;
+ if (yych == 'o') goto yy312;
goto yy87;
-yy243:
+yy246:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 315 "src/wast-lexer.cc"
+#line 318 "src/wast-lexer.cc"
{ LITERAL(Infinity); RETURN(FLOAT); }
-#line 2009 "src/prebuilt/wast-lexer-gen.cc"
-yy245:
+#line 2164 "src/prebuilt/wast-lexer-gen.cc"
+yy248:
yych = *++cursor_;
- if (yych == 'o') goto yy309;
+ if (yych == 'o') goto yy313;
goto yy87;
-yy246:
+yy249:
yych = *++cursor_;
- if (yych == 'a') goto yy310;
+ if (yych == 'a') goto yy314;
goto yy87;
-yy247:
+yy250:
yych = *++cursor_;
- if (yych == 'p') goto yy311;
+ if (yych == 'p') goto yy315;
goto yy87;
-yy248:
+yy251:
yych = *++cursor_;
- if (yych == 'o') goto yy313;
+ if (yych == 'o') goto yy317;
goto yy87;
-yy249:
+yy252:
yych = *++cursor_;
- if (yych == 'u') goto yy314;
+ if (yych == 'u') goto yy318;
goto yy87;
-yy250:
+yy253:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 335 "src/wast-lexer.cc"
+#line 338 "src/wast-lexer.cc"
{ RETURN(MUT); }
-#line 2037 "src/prebuilt/wast-lexer-gen.cc"
-yy252:
+#line 2192 "src/prebuilt/wast-lexer-gen.cc"
+yy255:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy253;
+ if (yych <= '"') goto yy256;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= ':') {
if (yych <= '9') goto yy86;
- goto yy315;
+ goto yy319;
} else {
- if (yych <= ';') goto yy253;
+ if (yych <= ';') goto yy256;
if (yych <= '~') goto yy86;
}
}
-yy253:
-#line 316 "src/wast-lexer.cc"
+yy256:
+#line 319 "src/wast-lexer.cc"
{ LITERAL(Nan); RETURN(FLOAT); }
-#line 2059 "src/prebuilt/wast-lexer-gen.cc"
-yy254:
+#line 2214 "src/prebuilt/wast-lexer-gen.cc"
+yy257:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 336 "src/wast-lexer.cc"
+#line 339 "src/wast-lexer.cc"
{ RETURN(NOP); }
-#line 2067 "src/prebuilt/wast-lexer-gen.cc"
-yy256:
- yych = *++cursor_;
- if (yych == 's') goto yy316;
- goto yy87;
-yy257:
- yych = *++cursor_;
- if (yych == 'a') goto yy317;
- goto yy87;
-yy258:
- yych = *++cursor_;
- if (yych == 't') goto yy318;
- goto yy87;
+#line 2222 "src/prebuilt/wast-lexer-gen.cc"
yy259:
yych = *++cursor_;
- if (yych == 'i') goto yy319;
+ if (yych == 's') goto yy320;
goto yy87;
yy260:
yych = *++cursor_;
- if (yych == 'u') goto yy320;
+ if (yych == 'a') goto yy321;
goto yy87;
yy261:
yych = *++cursor_;
- if (yych == 'h') goto yy321;
- if (yych == 'u') goto yy322;
+ if (yych == 't') goto yy322;
goto yy87;
yy262:
yych = *++cursor_;
- if (yych == 'e') goto yy323;
+ if (yych == 'i') goto yy323;
goto yy87;
yy263:
yych = *++cursor_;
- if (yych == '_') goto yy324;
+ if (yych == 'u') goto yy324;
goto yy87;
yy264:
yych = *++cursor_;
- if (yych == 'r') goto yy325;
+ if (yych == 'h') goto yy325;
+ if (yych == 'u') goto yy326;
goto yy87;
yy265:
yych = *++cursor_;
- if (yych == 'l') goto yy326;
+ if (yych == 'e') goto yy327;
goto yy87;
yy266:
yych = *++cursor_;
- if (yych == '_') goto yy327;
+ if (yych == '_') goto yy328;
goto yy87;
yy267:
yych = *++cursor_;
- if (yych == 'n') goto yy328;
+ if (yych == 'r') goto yy329;
goto yy87;
yy268:
yych = *++cursor_;
- if (yych == 'o') goto yy330;
+ if (yych == 'l') goto yy330;
goto yy87;
yy269:
+ yych = *++cursor_;
+ if (yych == '_') goto yy331;
+ goto yy87;
+yy270:
+ yych = *++cursor_;
+ if (yych == 'n') goto yy332;
+ goto yy87;
+yy271:
+ yych = *++cursor_;
+ if (yych == 'o') goto yy334;
+ goto yy87;
+yy272:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 542 "src/wast-lexer.cc"
+#line 545 "src/wast-lexer.cc"
{ RETURN(TRY); }
-#line 2128 "src/prebuilt/wast-lexer-gen.cc"
-yy271:
+#line 2283 "src/prebuilt/wast-lexer-gen.cc"
+yy274:
yych = *++cursor_;
- if (yych == 'e') goto yy331;
+ if (yych == 'e') goto yy335;
goto yy87;
-yy272:
+yy275:
yych = *++cursor_;
- if (yych == 'e') goto yy333;
+ if (yych == 'e') goto yy337;
goto yy87;
-yy273:
+yy276:
++cursor_;
if ((limit_ - cursor_) < 3) FILL(3);
yych = *cursor_;
- if (yych <= '9') {
- if (yych <= '\'') {
- if (yych == '!') goto yy86;
- if (yych <= '"') goto yy146;
- goto yy86;
+ if (yych <= ';') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych <= ' ') goto yy146;
+ goto yy86;
+ } else {
+ if (yych <= '"') goto yy146;
+ if (yych <= '\'') goto yy86;
+ goto yy146;
+ }
} else {
- if (yych <= '-') {
- if (yych <= ')') goto yy146;
+ if (yych <= '/') {
+ if (yych == '.') goto yy279;
goto yy86;
} else {
- if (yych <= '.') goto yy275;
- if (yych <= '/') goto yy86;
- goto yy273;
+ if (yych <= '9') goto yy276;
+ if (yych <= ':') goto yy86;
+ goto yy146;
}
}
} else {
- if (yych <= '`') {
- if (yych <= ';') {
- if (yych <= ':') goto yy86;
- goto yy146;
- } else {
+ if (yych <= '_') {
+ if (yych <= 'O') {
if (yych <= '@') goto yy86;
- if (yych <= 'F') goto yy273;
+ if (yych <= 'F') goto yy276;
goto yy86;
+ } else {
+ if (yych <= 'P') goto yy281;
+ if (yych <= '^') goto yy86;
+ goto yy206;
}
} else {
if (yych <= 'o') {
- if (yych <= 'f') goto yy273;
+ if (yych <= '`') goto yy86;
+ if (yych <= 'f') goto yy276;
goto yy86;
} else {
- if (yych <= 'p') goto yy277;
+ if (yych <= 'p') goto yy281;
if (yych <= '~') goto yy86;
goto yy146;
}
}
}
-yy275:
+yy278:
++cursor_;
- if ((limit_ - cursor_) < 3) FILL(3);
+ if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
- if (yych <= ':') {
- if (yych <= '\'') {
- if (yych == '!') goto yy86;
- if (yych <= '"') goto yy88;
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych <= ' ') goto yy88;
goto yy86;
} else {
- if (yych <= ')') goto yy88;
+ if (yych <= '"') goto yy88;
+ if (yych <= '\'') goto yy86;
+ goto yy88;
+ }
+ } else {
+ if (yych <= ':') {
if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy275;
+ if (yych <= '9') goto yy208;
goto yy86;
+ } else {
+ if (yych <= ';') goto yy88;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
+ }
+yy279:
+ ++cursor_;
+ if ((yych = *cursor_) <= ';') {
+ if (yych <= '\'') {
+ if (yych == '!') goto yy86;
+ if (yych >= '#') goto yy86;
+ } else {
+ if (yych <= '/') {
+ if (yych >= '*') goto yy86;
+ } else {
+ if (yych <= '9') goto yy338;
+ if (yych <= ':') goto yy86;
+ }
}
} else {
if (yych <= '`') {
- if (yych <= ';') goto yy88;
- if (yych <= '@') goto yy86;
- if (yych <= 'F') goto yy275;
- goto yy86;
+ if (yych <= 'F') {
+ if (yych <= '@') goto yy86;
+ goto yy338;
+ } else {
+ if (yych == 'P') goto yy281;
+ goto yy86;
+ }
} else {
if (yych <= 'o') {
- if (yych <= 'f') goto yy275;
+ if (yych <= 'f') goto yy338;
goto yy86;
} else {
- if (yych <= 'p') goto yy277;
+ if (yych <= 'p') goto yy281;
if (yych <= '~') goto yy86;
- goto yy88;
}
}
}
-yy277:
+yy280:
+#line 317 "src/wast-lexer.cc"
+ { LITERAL(Hexfloat); RETURN(FLOAT); }
+#line 2399 "src/prebuilt/wast-lexer-gen.cc"
+yy281:
yych = *++cursor_;
if (yych <= ',') {
- if (yych == '+') goto yy334;
+ if (yych == '+') goto yy340;
goto yy87;
} else {
- if (yych <= '-') goto yy334;
+ if (yych <= '-') goto yy340;
if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy335;
+ if (yych <= '9') goto yy341;
goto yy87;
}
-yy278:
+yy282:
yych = *++cursor_;
- if (yych == 'n') goto yy338;
+ if (yych == 'n') goto yy343;
goto yy87;
-yy279:
+yy283:
yych = *++cursor_;
- if (yych == 'u') goto yy339;
+ if (yych == 'u') goto yy344;
goto yy87;
-yy280:
+yy284:
yych = *++cursor_;
- if (yych == 'r') goto yy340;
+ if (yych == 'r') goto yy345;
goto yy87;
-yy281:
+yy285:
yych = *++cursor_;
- if (yych == 'r') goto yy341;
+ if (yych == 'r') goto yy346;
goto yy87;
-yy282:
+yy286:
yych = *++cursor_;
- if (yych == 'k') goto yy342;
+ if (yych == 'k') goto yy347;
goto yy87;
-yy283:
+yy287:
yych = *++cursor_;
- if (yych == 'f') goto yy344;
+ if (yych == 'f') goto yy349;
goto yy87;
-yy284:
+yy288:
yych = *++cursor_;
- if (yych == 'a') goto yy346;
+ if (yych == 'a') goto yy351;
goto yy87;
-yy285:
+yy289:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy286;
+ if (yych <= '"') goto yy290;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy347;
+ if (yych <= '_') goto yy352;
if (yych <= '~') goto yy86;
}
}
-yy286:
-#line 345 "src/wast-lexer.cc"
+yy290:
+#line 348 "src/wast-lexer.cc"
{ RETURN(CALL); }
-#line 2268 "src/prebuilt/wast-lexer-gen.cc"
-yy287:
+#line 2459 "src/prebuilt/wast-lexer-gen.cc"
+yy291:
yych = *++cursor_;
- if (yych == 'h') goto yy348;
+ if (yych == 'h') goto yy353;
goto yy87;
-yy288:
+yy292:
yych = *++cursor_;
- if (yych == 'e') goto yy350;
+ if (yych == 'e') goto yy355;
goto yy87;
-yy289:
+yy293:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 524 "src/wast-lexer.cc"
+#line 527 "src/wast-lexer.cc"
{ RETURN(DATA); }
-#line 2284 "src/prebuilt/wast-lexer-gen.cc"
-yy291:
+#line 2475 "src/prebuilt/wast-lexer-gen.cc"
+yy295:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 347 "src/wast-lexer.cc"
+#line 350 "src/wast-lexer.cc"
{ RETURN(DROP); }
-#line 2292 "src/prebuilt/wast-lexer-gen.cc"
-yy293:
+#line 2483 "src/prebuilt/wast-lexer-gen.cc"
+yy297:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 523 "src/wast-lexer.cc"
+#line 526 "src/wast-lexer.cc"
{ RETURN(ELEM); }
-#line 2300 "src/prebuilt/wast-lexer-gen.cc"
-yy295:
+#line 2491 "src/prebuilt/wast-lexer-gen.cc"
+yy299:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 340 "src/wast-lexer.cc"
+#line 343 "src/wast-lexer.cc"
{ RETURN(ELSE); }
-#line 2308 "src/prebuilt/wast-lexer-gen.cc"
-yy297:
+#line 2499 "src/prebuilt/wast-lexer-gen.cc"
+yy301:
yych = *++cursor_;
- if (yych == 'p') goto yy351;
+ if (yych == 'p') goto yy356;
goto yy87;
-yy298:
+yy302:
yych = *++cursor_;
- if (yych == 'r') goto yy352;
+ if (yych == 'r') goto yy357;
goto yy87;
-yy299:
+yy303:
yych = *++cursor_;
switch (yych) {
- case 'a': goto yy353;
- case 'c': goto yy354;
- case 'd': goto yy355;
- case 'e': goto yy356;
- case 'f': goto yy357;
- case 'g': goto yy358;
- case 'l': goto yy359;
- case 'm': goto yy360;
- case 'n': goto yy361;
- case 'r': goto yy362;
- case 's': goto yy363;
- case 't': goto yy364;
+ case 'a': goto yy358;
+ case 'c': goto yy359;
+ case 'd': goto yy360;
+ case 'e': goto yy361;
+ case 'f': goto yy362;
+ case 'g': goto yy363;
+ case 'l': goto yy364;
+ case 'm': goto yy365;
+ case 'n': goto yy366;
+ case 'r': goto yy367;
+ case 's': goto yy368;
+ case 't': goto yy369;
default: goto yy87;
}
-yy300:
+yy304:
yych = *++cursor_;
switch (yych) {
- case 'a': goto yy365;
- case 'c': goto yy366;
- case 'd': goto yy367;
- case 'e': goto yy368;
- case 'f': goto yy369;
- case 'g': goto yy370;
- case 'l': goto yy371;
- case 'm': goto yy372;
- case 'n': goto yy373;
- case 'p': goto yy374;
- case 'r': goto yy375;
- case 's': goto yy376;
- case 't': goto yy377;
+ case 'a': goto yy370;
+ case 'c': goto yy371;
+ case 'd': goto yy372;
+ case 'e': goto yy373;
+ case 'f': goto yy374;
+ case 'g': goto yy375;
+ case 'l': goto yy376;
+ case 'm': goto yy377;
+ case 'n': goto yy378;
+ case 'p': goto yy379;
+ case 'r': goto yy380;
+ case 's': goto yy381;
+ case 't': goto yy382;
default: goto yy87;
}
-yy301:
+yy305:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 512 "src/wast-lexer.cc"
+#line 515 "src/wast-lexer.cc"
{ RETURN(FUNC); }
-#line 2359 "src/prebuilt/wast-lexer-gen.cc"
-yy303:
+#line 2550 "src/prebuilt/wast-lexer-gen.cc"
+yy307:
yych = *++cursor_;
- if (yych == 'g') goto yy378;
- if (yych == 'l') goto yy379;
+ if (yych == 'g') goto yy383;
+ if (yych == 'l') goto yy384;
goto yy87;
-yy304:
+yy308:
yych = *++cursor_;
- if (yych == 'a') goto yy380;
+ if (yych == 'a') goto yy385;
goto yy87;
-yy305:
+yy309:
yych = *++cursor_;
- if (yych == '_') goto yy381;
+ if (yych == '_') goto yy386;
goto yy87;
-yy306:
+yy310:
yych = *++cursor_;
switch (yych) {
- case 'a': goto yy382;
- case 'c': goto yy383;
- case 'd': goto yy384;
- case 'e': goto yy385;
- case 'g': goto yy386;
- case 'l': goto yy387;
- case 'm': goto yy388;
- case 'n': goto yy389;
- case 'o': goto yy390;
- case 'p': goto yy391;
- case 'r': goto yy392;
- case 's': goto yy393;
- case 't': goto yy394;
- case 'w': goto yy395;
- case 'x': goto yy396;
+ case 'a': goto yy387;
+ case 'c': goto yy388;
+ case 'd': goto yy389;
+ case 'e': goto yy390;
+ case 'g': goto yy391;
+ case 'l': goto yy392;
+ case 'm': goto yy393;
+ case 'n': goto yy394;
+ case 'o': goto yy395;
+ case 'p': goto yy396;
+ case 'r': goto yy397;
+ case 's': goto yy398;
+ case 't': goto yy399;
+ case 'w': goto yy400;
+ case 'x': goto yy401;
default: goto yy87;
}
-yy307:
+yy311:
yych = *++cursor_;
switch (yych) {
- case 'a': goto yy397;
- case 'c': goto yy398;
- case 'd': goto yy399;
- case 'e': goto yy400;
- case 'g': goto yy401;
- case 'l': goto yy402;
- case 'm': goto yy403;
- case 'n': goto yy404;
- case 'o': goto yy405;
- case 'p': goto yy406;
- case 'r': goto yy407;
- case 's': goto yy408;
- case 't': goto yy409;
- case 'x': goto yy410;
+ case 'a': goto yy402;
+ case 'c': goto yy403;
+ case 'd': goto yy404;
+ case 'e': goto yy405;
+ case 'g': goto yy406;
+ case 'l': goto yy407;
+ case 'm': goto yy408;
+ case 'n': goto yy409;
+ case 'o': goto yy410;
+ case 'p': goto yy411;
+ case 'r': goto yy412;
+ case 's': goto yy413;
+ case 't': goto yy414;
+ case 'x': goto yy415;
default: goto yy87;
}
-yy308:
+yy312:
yych = *++cursor_;
- if (yych == 'r') goto yy411;
+ if (yych == 'r') goto yy416;
goto yy87;
-yy309:
+yy313:
yych = *++cursor_;
- if (yych == 'k') goto yy412;
+ if (yych == 'k') goto yy417;
goto yy87;
-yy310:
+yy314:
yych = *++cursor_;
- if (yych == 'l') goto yy413;
+ if (yych == 'l') goto yy418;
goto yy87;
-yy311:
+yy315:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 341 "src/wast-lexer.cc"
+#line 344 "src/wast-lexer.cc"
{ RETURN(LOOP); }
-#line 2431 "src/prebuilt/wast-lexer-gen.cc"
-yy313:
- yych = *++cursor_;
- if (yych == 'r') goto yy415;
- goto yy87;
-yy314:
- yych = *++cursor_;
- if (yych == 'l') goto yy416;
- goto yy87;
-yy315:
- yych = *++cursor_;
- if (yych == '0') goto yy417;
- goto yy87;
-yy316:
- yych = *++cursor_;
- if (yych == 'e') goto yy418;
- goto yy87;
+#line 2622 "src/prebuilt/wast-lexer-gen.cc"
yy317:
yych = *++cursor_;
- if (yych == 'm') goto yy419;
+ if (yych == 'r') goto yy420;
goto yy87;
yy318:
yych = *++cursor_;
- if (yych == 'e') goto yy421;
+ if (yych == 'l') goto yy421;
goto yy87;
yy319:
yych = *++cursor_;
- if (yych == 's') goto yy423;
+ if (yych == '0') goto yy422;
goto yy87;
yy320:
yych = *++cursor_;
- if (yych == 'l') goto yy424;
+ if (yych == 'e') goto yy423;
goto yy87;
yy321:
yych = *++cursor_;
- if (yych == 'r') goto yy425;
+ if (yych == 'm') goto yy424;
goto yy87;
yy322:
yych = *++cursor_;
- if (yych == 'r') goto yy426;
+ if (yych == 'e') goto yy426;
goto yy87;
yy323:
yych = *++cursor_;
- if (yych == 'c') goto yy427;
+ if (yych == 's') goto yy428;
goto yy87;
yy324:
yych = *++cursor_;
- if (yych == 'g') goto yy428;
if (yych == 'l') goto yy429;
goto yy87;
yy325:
yych = *++cursor_;
- if (yych == 't') goto yy430;
+ if (yych == 'r') goto yy430;
goto yy87;
yy326:
yych = *++cursor_;
- if (yych == 'e') goto yy432;
+ if (yych == 'r') goto yy431;
goto yy87;
yy327:
yych = *++cursor_;
- if (yych == 'l') goto yy434;
+ if (yych == 'c') goto yy432;
goto yy87;
yy328:
+ yych = *++cursor_;
+ if (yych == 'g') goto yy433;
+ if (yych == 'l') goto yy434;
+ goto yy87;
+yy329:
+ yych = *++cursor_;
+ if (yych == 't') goto yy435;
+ goto yy87;
+yy330:
+ yych = *++cursor_;
+ if (yych == 'e') goto yy437;
+ goto yy87;
+yy331:
+ yych = *++cursor_;
+ if (yych == 'l') goto yy439;
+ goto yy87;
+yy332:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 339 "src/wast-lexer.cc"
+#line 342 "src/wast-lexer.cc"
{ RETURN(THEN); }
-#line 2500 "src/prebuilt/wast-lexer-gen.cc"
-yy330:
+#line 2691 "src/prebuilt/wast-lexer-gen.cc"
+yy334:
yych = *++cursor_;
- if (yych == 'w') goto yy435;
+ if (yych == 'w') goto yy440;
goto yy87;
-yy331:
+yy335:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 511 "src/wast-lexer.cc"
+#line 514 "src/wast-lexer.cc"
{ RETURN(TYPE); }
-#line 2512 "src/prebuilt/wast-lexer-gen.cc"
-yy333:
+#line 2703 "src/prebuilt/wast-lexer-gen.cc"
+yy337:
yych = *++cursor_;
- if (yych == 'a') goto yy437;
+ if (yych == 'a') goto yy442;
goto yy87;
-yy334:
- yych = *++cursor_;
- if (yych <= '/') goto yy87;
- if (yych >= ':') goto yy87;
-yy335:
+yy338:
+ ++cursor_;
+ if ((limit_ - cursor_) < 2) FILL(2);
+ yych = *cursor_;
+ if (yych <= '@') {
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych <= ' ') goto yy280;
+ goto yy86;
+ } else {
+ if (yych <= '"') goto yy280;
+ if (yych <= '\'') goto yy86;
+ goto yy280;
+ }
+ } else {
+ if (yych <= '9') {
+ if (yych <= '/') goto yy86;
+ goto yy338;
+ } else {
+ if (yych == ';') goto yy280;
+ goto yy86;
+ }
+ }
+ } else {
+ if (yych <= '_') {
+ if (yych <= 'O') {
+ if (yych <= 'F') goto yy338;
+ goto yy86;
+ } else {
+ if (yych <= 'P') goto yy281;
+ if (yych <= '^') goto yy86;
+ goto yy443;
+ }
+ } else {
+ if (yych <= 'o') {
+ if (yych <= '`') goto yy86;
+ if (yych <= 'f') goto yy338;
+ goto yy86;
+ } else {
+ if (yych <= 'p') goto yy281;
+ if (yych <= '~') goto yy86;
+ goto yy280;
+ }
+ }
+ }
+yy340:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
if (yych <= ')') {
if (yych <= '!') {
- if (yych >= '!') goto yy86;
+ if (yych <= ' ') goto yy88;
+ goto yy86;
} else {
- if (yych <= '"') goto yy337;
+ if (yych <= '"') goto yy88;
if (yych <= '\'') goto yy86;
+ goto yy88;
}
} else {
if (yych <= ':') {
if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy335;
+ if (yych >= ':') goto yy86;
+ } else {
+ if (yych <= ';') goto yy88;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
+ }
+yy341:
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= '/') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy86;
+ goto yy280;
+ } else {
+ if (yych <= '\'') goto yy86;
+ if (yych <= ')') goto yy280;
goto yy86;
+ }
+ } else {
+ if (yych <= ';') {
+ if (yych <= '9') goto yy341;
+ if (yych <= ':') goto yy86;
+ goto yy280;
} else {
- if (yych <= ';') goto yy337;
+ if (yych == '_') goto yy340;
if (yych <= '~') goto yy86;
+ goto yy280;
}
}
-yy337:
-#line 314 "src/wast-lexer.cc"
- { LITERAL(Hexfloat); RETURN(FLOAT); }
-#line 2545 "src/prebuilt/wast-lexer-gen.cc"
-yy338:
+yy343:
yych = *++cursor_;
- if (yych == '=') goto yy438;
+ if (yych == '=') goto yy444;
goto yy87;
-yy339:
+yy344:
yych = *++cursor_;
- if (yych == 'n') goto yy439;
+ if (yych == 'n') goto yy445;
goto yy87;
-yy340:
+yy345:
yych = *++cursor_;
- if (yych == 't') goto yy440;
+ if (yych == 't') goto yy446;
goto yy87;
-yy341:
+yy346:
yych = *++cursor_;
- if (yych == 'y') goto yy441;
+ if (yych == 'y') goto yy447;
goto yy87;
-yy342:
+yy347:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 337 "src/wast-lexer.cc"
+#line 340 "src/wast-lexer.cc"
{ RETURN(BLOCK); }
-#line 2569 "src/prebuilt/wast-lexer-gen.cc"
-yy344:
+#line 2823 "src/prebuilt/wast-lexer-gen.cc"
+yy349:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 343 "src/wast-lexer.cc"
+#line 346 "src/wast-lexer.cc"
{ RETURN(BR_IF); }
-#line 2577 "src/prebuilt/wast-lexer-gen.cc"
-yy346:
+#line 2831 "src/prebuilt/wast-lexer-gen.cc"
+yy351:
yych = *++cursor_;
- if (yych == 'b') goto yy443;
+ if (yych == 'b') goto yy449;
goto yy87;
-yy347:
+yy352:
yych = *++cursor_;
- if (yych == 'i') goto yy444;
+ if (yych == 'i') goto yy450;
goto yy87;
-yy348:
+yy353:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy349;
+ if (yych <= '"') goto yy354;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy445;
+ if (yych <= '_') goto yy451;
if (yych <= '~') goto yy86;
}
}
-yy349:
-#line 543 "src/wast-lexer.cc"
+yy354:
+#line 546 "src/wast-lexer.cc"
{ RETURN_LPAR(CATCH); }
-#line 2606 "src/prebuilt/wast-lexer-gen.cc"
-yy350:
+#line 2860 "src/prebuilt/wast-lexer-gen.cc"
+yy355:
yych = *++cursor_;
- if (yych == 'n') goto yy446;
+ if (yych == 'n') goto yy452;
goto yy87;
-yy351:
+yy356:
yych = *++cursor_;
- if (yych == 't') goto yy447;
+ if (yych == 't') goto yy453;
goto yy87;
-yy352:
+yy357:
yych = *++cursor_;
- if (yych == 't') goto yy449;
+ if (yych == 't') goto yy455;
goto yy87;
-yy353:
+yy358:
yych = *++cursor_;
- if (yych == 'b') goto yy451;
- if (yych == 'd') goto yy452;
+ if (yych == 'b') goto yy457;
+ if (yych == 'd') goto yy458;
goto yy87;
-yy354:
+yy359:
yych = *++cursor_;
- if (yych == 'e') goto yy453;
- if (yych == 'o') goto yy454;
+ if (yych == 'e') goto yy459;
+ if (yych == 'o') goto yy460;
goto yy87;
-yy355:
+yy360:
yych = *++cursor_;
- if (yych == 'e') goto yy455;
- if (yych == 'i') goto yy456;
+ if (yych == 'e') goto yy461;
+ if (yych == 'i') goto yy462;
goto yy87;
-yy356:
+yy361:
yych = *++cursor_;
- if (yych == 'q') goto yy457;
+ if (yych == 'q') goto yy463;
goto yy87;
-yy357:
+yy362:
yych = *++cursor_;
- if (yych == 'l') goto yy459;
+ if (yych == 'l') goto yy465;
goto yy87;
-yy358:
+yy363:
yych = *++cursor_;
- if (yych == 'e') goto yy460;
- if (yych == 't') goto yy462;
+ if (yych == 'e') goto yy466;
+ if (yych == 't') goto yy468;
goto yy87;
-yy359:
+yy364:
yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'e') goto yy464;
+ if (yych == 'e') goto yy470;
goto yy87;
} else {
- if (yych <= 'o') goto yy466;
- if (yych == 't') goto yy467;
+ if (yych <= 'o') goto yy472;
+ if (yych == 't') goto yy473;
goto yy87;
}
-yy360:
+yy365:
yych = *++cursor_;
if (yych <= 'h') {
- if (yych == 'a') goto yy469;
+ if (yych == 'a') goto yy475;
goto yy87;
} else {
- if (yych <= 'i') goto yy470;
- if (yych == 'u') goto yy471;
+ if (yych <= 'i') goto yy476;
+ if (yych == 'u') goto yy477;
goto yy87;
}
-yy361:
+yy366:
yych = *++cursor_;
- if (yych == 'e') goto yy472;
+ if (yych == 'e') goto yy478;
goto yy87;
-yy362:
+yy367:
yych = *++cursor_;
- if (yych == 'e') goto yy474;
+ if (yych == 'e') goto yy480;
goto yy87;
-yy363:
+yy368:
yych = *++cursor_;
if (yych <= 's') {
- if (yych == 'q') goto yy475;
+ if (yych == 'q') goto yy481;
goto yy87;
} else {
- if (yych <= 't') goto yy476;
- if (yych <= 'u') goto yy477;
+ if (yych <= 't') goto yy482;
+ if (yych <= 'u') goto yy483;
goto yy87;
}
-yy364:
- yych = *++cursor_;
- if (yych == 'r') goto yy478;
- goto yy87;
-yy365:
- yych = *++cursor_;
- if (yych == 'b') goto yy479;
- if (yych == 'd') goto yy480;
- goto yy87;
-yy366:
- yych = *++cursor_;
- if (yych == 'e') goto yy481;
- if (yych == 'o') goto yy482;
- goto yy87;
-yy367:
- yych = *++cursor_;
- if (yych == 'i') goto yy483;
- goto yy87;
-yy368:
- yych = *++cursor_;
- if (yych == 'q') goto yy484;
- goto yy87;
yy369:
yych = *++cursor_;
- if (yych == 'l') goto yy486;
+ if (yych == 'r') goto yy484;
goto yy87;
yy370:
yych = *++cursor_;
- if (yych == 'e') goto yy487;
- if (yych == 't') goto yy489;
+ if (yych == 'b') goto yy485;
+ if (yych == 'd') goto yy486;
goto yy87;
yy371:
yych = *++cursor_;
- if (yych <= 'n') {
- if (yych == 'e') goto yy491;
- goto yy87;
- } else {
- if (yych <= 'o') goto yy493;
- if (yych == 't') goto yy494;
- goto yy87;
- }
+ if (yych == 'e') goto yy487;
+ if (yych == 'o') goto yy488;
+ goto yy87;
yy372:
yych = *++cursor_;
- if (yych <= 'h') {
- if (yych == 'a') goto yy496;
- goto yy87;
- } else {
- if (yych <= 'i') goto yy497;
- if (yych == 'u') goto yy498;
- goto yy87;
- }
+ if (yych == 'i') goto yy489;
+ goto yy87;
yy373:
yych = *++cursor_;
- if (yych == 'e') goto yy499;
+ if (yych == 'q') goto yy490;
goto yy87;
yy374:
yych = *++cursor_;
- if (yych == 'r') goto yy501;
+ if (yych == 'l') goto yy492;
goto yy87;
yy375:
yych = *++cursor_;
- if (yych == 'e') goto yy502;
+ if (yych == 'e') goto yy493;
+ if (yych == 't') goto yy495;
goto yy87;
yy376:
yych = *++cursor_;
- if (yych <= 's') {
- if (yych == 'q') goto yy503;
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy497;
goto yy87;
} else {
- if (yych <= 't') goto yy504;
- if (yych <= 'u') goto yy505;
+ if (yych <= 'o') goto yy499;
+ if (yych == 't') goto yy500;
goto yy87;
}
yy377:
yych = *++cursor_;
- if (yych == 'r') goto yy506;
- goto yy87;
+ if (yych <= 'h') {
+ if (yych == 'a') goto yy502;
+ goto yy87;
+ } else {
+ if (yych <= 'i') goto yy503;
+ if (yych == 'u') goto yy504;
+ goto yy87;
+ }
yy378:
yych = *++cursor_;
- if (yych == 'l') goto yy507;
+ if (yych == 'e') goto yy505;
goto yy87;
yy379:
yych = *++cursor_;
- if (yych == 'o') goto yy508;
+ if (yych == 'r') goto yy507;
goto yy87;
yy380:
yych = *++cursor_;
- if (yych == 'l') goto yy509;
+ if (yych == 'e') goto yy508;
goto yy87;
yy381:
yych = *++cursor_;
- if (yych == 'm') goto yy511;
- goto yy87;
+ if (yych <= 's') {
+ if (yych == 'q') goto yy509;
+ goto yy87;
+ } else {
+ if (yych <= 't') goto yy510;
+ if (yych <= 'u') goto yy511;
+ goto yy87;
+ }
yy382:
yych = *++cursor_;
- if (yych == 'd') goto yy512;
- if (yych == 'n') goto yy513;
+ if (yych == 'r') goto yy512;
goto yy87;
yy383:
yych = *++cursor_;
- if (yych <= 'n') {
- if (yych == 'l') goto yy514;
- goto yy87;
- } else {
- if (yych <= 'o') goto yy515;
- if (yych == 't') goto yy516;
- goto yy87;
- }
+ if (yych == 'l') goto yy513;
+ goto yy87;
yy384:
yych = *++cursor_;
- if (yych == 'i') goto yy517;
+ if (yych == 'o') goto yy514;
goto yy87;
yy385:
yych = *++cursor_;
- if (yych == 'q') goto yy518;
+ if (yych == 'l') goto yy515;
goto yy87;
yy386:
yych = *++cursor_;
- if (yych == 'e') goto yy520;
- if (yych == 't') goto yy521;
+ if (yych == 'm') goto yy517;
goto yy87;
yy387:
yych = *++cursor_;
+ if (yych == 'd') goto yy518;
+ if (yych == 'n') goto yy519;
+ goto yy87;
+yy388:
+ yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'e') goto yy522;
+ if (yych == 'l') goto yy520;
goto yy87;
} else {
- if (yych <= 'o') goto yy523;
- if (yych == 't') goto yy524;
+ if (yych <= 'o') goto yy521;
+ if (yych == 't') goto yy522;
goto yy87;
}
-yy388:
- yych = *++cursor_;
- if (yych == 'u') goto yy525;
- goto yy87;
yy389:
yych = *++cursor_;
- if (yych == 'e') goto yy526;
+ if (yych == 'i') goto yy523;
goto yy87;
yy390:
yych = *++cursor_;
- if (yych == 'r') goto yy528;
+ if (yych == 'q') goto yy524;
goto yy87;
yy391:
yych = *++cursor_;
- if (yych == 'o') goto yy530;
+ if (yych == 'e') goto yy526;
+ if (yych == 't') goto yy527;
goto yy87;
yy392:
yych = *++cursor_;
- if (yych == 'e') goto yy531;
- if (yych == 'o') goto yy532;
- goto yy87;
-yy393:
- yych = *++cursor_;
- if (yych <= 's') {
- if (yych == 'h') goto yy533;
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy528;
goto yy87;
} else {
- if (yych <= 't') goto yy534;
- if (yych <= 'u') goto yy535;
+ if (yych <= 'o') goto yy529;
+ if (yych == 't') goto yy530;
goto yy87;
}
+yy393:
+ yych = *++cursor_;
+ if (yych == 'u') goto yy531;
+ goto yy87;
yy394:
yych = *++cursor_;
- if (yych == 'r') goto yy536;
+ if (yych == 'e') goto yy532;
goto yy87;
yy395:
yych = *++cursor_;
- if (yych == 'r') goto yy537;
+ if (yych == 'r') goto yy534;
goto yy87;
yy396:
yych = *++cursor_;
- if (yych == 'o') goto yy538;
+ if (yych == 'o') goto yy536;
goto yy87;
yy397:
yych = *++cursor_;
- if (yych == 'd') goto yy539;
- if (yych == 'n') goto yy540;
+ if (yych == 'e') goto yy537;
+ if (yych == 'o') goto yy538;
goto yy87;
yy398:
yych = *++cursor_;
- if (yych <= 'n') {
- if (yych == 'l') goto yy541;
+ if (yych <= 's') {
+ if (yych == 'h') goto yy539;
goto yy87;
} else {
- if (yych <= 'o') goto yy542;
- if (yych == 't') goto yy543;
+ if (yych <= 't') goto yy540;
+ if (yych <= 'u') goto yy541;
goto yy87;
}
yy399:
yych = *++cursor_;
- if (yych == 'i') goto yy544;
+ if (yych == 'r') goto yy542;
goto yy87;
yy400:
yych = *++cursor_;
- if (yych == 'q') goto yy545;
- if (yych == 'x') goto yy547;
+ if (yych == 'r') goto yy543;
goto yy87;
yy401:
yych = *++cursor_;
- if (yych == 'e') goto yy548;
- if (yych == 't') goto yy549;
+ if (yych == 'o') goto yy544;
goto yy87;
yy402:
yych = *++cursor_;
+ if (yych == 'd') goto yy545;
+ if (yych == 'n') goto yy546;
+ goto yy87;
+yy403:
+ yych = *++cursor_;
if (yych <= 'n') {
- if (yych == 'e') goto yy550;
+ if (yych == 'l') goto yy547;
goto yy87;
} else {
- if (yych <= 'o') goto yy551;
- if (yych == 't') goto yy552;
+ if (yych <= 'o') goto yy548;
+ if (yych == 't') goto yy549;
goto yy87;
}
-yy403:
- yych = *++cursor_;
- if (yych == 'u') goto yy553;
- goto yy87;
yy404:
yych = *++cursor_;
- if (yych == 'e') goto yy554;
+ if (yych == 'i') goto yy550;
goto yy87;
yy405:
yych = *++cursor_;
- if (yych == 'r') goto yy556;
+ if (yych == 'q') goto yy551;
+ if (yych == 'x') goto yy553;
goto yy87;
yy406:
yych = *++cursor_;
- if (yych == 'o') goto yy558;
+ if (yych == 'e') goto yy554;
+ if (yych == 't') goto yy555;
goto yy87;
yy407:
yych = *++cursor_;
- if (yych == 'e') goto yy559;
- if (yych == 'o') goto yy560;
- goto yy87;
-yy408:
- yych = *++cursor_;
- if (yych <= 's') {
- if (yych == 'h') goto yy561;
+ if (yych <= 'n') {
+ if (yych == 'e') goto yy556;
goto yy87;
} else {
- if (yych <= 't') goto yy562;
- if (yych <= 'u') goto yy563;
+ if (yych <= 'o') goto yy557;
+ if (yych == 't') goto yy558;
goto yy87;
}
+yy408:
+ yych = *++cursor_;
+ if (yych == 'u') goto yy559;
+ goto yy87;
yy409:
yych = *++cursor_;
- if (yych == 'r') goto yy564;
+ if (yych == 'e') goto yy560;
goto yy87;
yy410:
yych = *++cursor_;
- if (yych == 'o') goto yy565;
+ if (yych == 'r') goto yy562;
goto yy87;
yy411:
yych = *++cursor_;
- if (yych == 't') goto yy566;
+ if (yych == 'o') goto yy564;
goto yy87;
yy412:
yych = *++cursor_;
- if (yych == 'e') goto yy568;
+ if (yych == 'e') goto yy565;
+ if (yych == 'o') goto yy566;
goto yy87;
yy413:
- ++cursor_;
- if (yybm[0+(yych = *cursor_)] & 8) {
- goto yy86;
+ yych = *++cursor_;
+ if (yych <= 's') {
+ if (yych == 'h') goto yy567;
+ goto yy87;
+ } else {
+ if (yych <= 't') goto yy568;
+ if (yych <= 'u') goto yy569;
+ goto yy87;
}
-#line 515 "src/wast-lexer.cc"
- { RETURN(LOCAL); }
-#line 2952 "src/prebuilt/wast-lexer-gen.cc"
+yy414:
+ yych = *++cursor_;
+ if (yych == 'r') goto yy570;
+ goto yy87;
yy415:
yych = *++cursor_;
- if (yych == 'y') goto yy570;
+ if (yych == 'o') goto yy571;
goto yy87;
yy416:
yych = *++cursor_;
- if (yych == 'e') goto yy572;
+ if (yych == 't') goto yy572;
goto yy87;
yy417:
yych = *++cursor_;
- if (yych == 'x') goto yy574;
+ if (yych == 'e') goto yy574;
goto yy87;
yy418:
+ ++cursor_;
+ if (yybm[0+(yych = *cursor_)] & 8) {
+ goto yy86;
+ }
+#line 518 "src/wast-lexer.cc"
+ { RETURN(LOCAL); }
+#line 3206 "src/prebuilt/wast-lexer-gen.cc"
+yy420:
+ yych = *++cursor_;
+ if (yych == 'y') goto yy576;
+ goto yy87;
+yy421:
+ yych = *++cursor_;
+ if (yych == 'e') goto yy578;
+ goto yy87;
+yy422:
yych = *++cursor_;
- if (yych == 't') goto yy575;
+ if (yych == 'x') goto yy580;
goto yy87;
-yy419:
+yy423:
+ yych = *++cursor_;
+ if (yych == 't') goto yy581;
+ goto yy87;
+yy424:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 513 "src/wast-lexer.cc"
+#line 516 "src/wast-lexer.cc"
{ RETURN(PARAM); }
-#line 2976 "src/prebuilt/wast-lexer-gen.cc"
-yy421:
+#line 3230 "src/prebuilt/wast-lexer-gen.cc"
+yy426:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 519 "src/wast-lexer.cc"
+#line 522 "src/wast-lexer.cc"
{ RETURN(QUOTE); }
-#line 2984 "src/prebuilt/wast-lexer-gen.cc"
-yy423:
+#line 3238 "src/prebuilt/wast-lexer-gen.cc"
+yy428:
yych = *++cursor_;
- if (yych == 't') goto yy577;
+ if (yych == 't') goto yy583;
goto yy87;
-yy424:
+yy429:
yych = *++cursor_;
- if (yych == 't') goto yy578;
+ if (yych == 't') goto yy584;
goto yy87;
-yy425:
+yy430:
yych = *++cursor_;
- if (yych == 'o') goto yy580;
+ if (yych == 'o') goto yy586;
goto yy87;
-yy426:
+yy431:
yych = *++cursor_;
- if (yych == 'n') goto yy581;
+ if (yych == 'n') goto yy587;
goto yy87;
-yy427:
+yy432:
yych = *++cursor_;
- if (yych == 't') goto yy583;
+ if (yych == 't') goto yy589;
goto yy87;
-yy428:
+yy433:
yych = *++cursor_;
- if (yych == 'l') goto yy585;
+ if (yych == 'l') goto yy591;
goto yy87;
-yy429:
+yy434:
yych = *++cursor_;
- if (yych == 'o') goto yy586;
+ if (yych == 'o') goto yy592;
goto yy87;
-yy430:
+yy435:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 522 "src/wast-lexer.cc"
+#line 525 "src/wast-lexer.cc"
{ RETURN(START); }
-#line 3020 "src/prebuilt/wast-lexer-gen.cc"
-yy432:
+#line 3274 "src/prebuilt/wast-lexer-gen.cc"
+yy437:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 520 "src/wast-lexer.cc"
+#line 523 "src/wast-lexer.cc"
{ RETURN(TABLE); }
-#line 3028 "src/prebuilt/wast-lexer-gen.cc"
-yy434:
+#line 3282 "src/prebuilt/wast-lexer-gen.cc"
+yy439:
yych = *++cursor_;
- if (yych == 'o') goto yy587;
+ if (yych == 'o') goto yy593;
goto yy87;
-yy435:
+yy440:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 545 "src/wast-lexer.cc"
+#line 548 "src/wast-lexer.cc"
{ RETURN(THROW); }
-#line 3040 "src/prebuilt/wast-lexer-gen.cc"
-yy437:
+#line 3294 "src/prebuilt/wast-lexer-gen.cc"
+yy442:
yych = *++cursor_;
- if (yych == 'c') goto yy588;
+ if (yych == 'c') goto yy594;
goto yy87;
-yy438:
+yy443:
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= '9') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy86;
+ goto yy88;
+ } else {
+ if (yych <= '\'') goto yy86;
+ if (yych <= ')') goto yy88;
+ if (yych <= '/') goto yy86;
+ goto yy338;
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == ';') goto yy88;
+ if (yych <= '@') goto yy86;
+ goto yy338;
+ } else {
+ if (yych <= '`') goto yy86;
+ if (yych <= 'f') goto yy338;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
+ }
+yy444:
yych = *++cursor_;
if (yych <= '/') goto yy87;
- if (yych <= '0') goto yy589;
- if (yych <= '9') goto yy591;
+ if (yych <= '0') goto yy595;
+ if (yych <= '9') goto yy597;
goto yy87;
-yy439:
+yy445:
yych = *++cursor_;
- if (yych == 'c') goto yy593;
+ if (yych == 'c') goto yy599;
goto yy87;
-yy440:
+yy446:
yych = *++cursor_;
- if (yych == '_') goto yy595;
+ if (yych == '_') goto yy601;
goto yy87;
-yy441:
+yy447:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 518 "src/wast-lexer.cc"
+#line 521 "src/wast-lexer.cc"
{ RETURN(BIN); }
-#line 3066 "src/prebuilt/wast-lexer-gen.cc"
-yy443:
+#line 3346 "src/prebuilt/wast-lexer-gen.cc"
+yy449:
yych = *++cursor_;
- if (yych == 'l') goto yy596;
+ if (yych == 'l') goto yy602;
goto yy87;
-yy444:
+yy450:
yych = *++cursor_;
- if (yych == 'n') goto yy597;
+ if (yych == 'n') goto yy603;
goto yy87;
-yy445:
+yy451:
yych = *++cursor_;
- if (yych == 'a') goto yy598;
+ if (yych == 'a') goto yy604;
goto yy87;
-yy446:
+yy452:
yych = *++cursor_;
- if (yych == 't') goto yy599;
+ if (yych == 't') goto yy605;
goto yy87;
-yy447:
+yy453:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 528 "src/wast-lexer.cc"
+#line 531 "src/wast-lexer.cc"
{ RETURN(EXCEPT); }
-#line 3090 "src/prebuilt/wast-lexer-gen.cc"
-yy449:
+#line 3370 "src/prebuilt/wast-lexer-gen.cc"
+yy455:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 527 "src/wast-lexer.cc"
+#line 530 "src/wast-lexer.cc"
{ RETURN(EXPORT); }
-#line 3098 "src/prebuilt/wast-lexer-gen.cc"
-yy451:
+#line 3378 "src/prebuilt/wast-lexer-gen.cc"
+yy457:
yych = *++cursor_;
- if (yych == 's') goto yy600;
+ if (yych == 's') goto yy606;
goto yy87;
-yy452:
+yy458:
yych = *++cursor_;
- if (yych == 'd') goto yy602;
+ if (yych == 'd') goto yy608;
goto yy87;
-yy453:
+yy459:
yych = *++cursor_;
- if (yych == 'i') goto yy604;
+ if (yych == 'i') goto yy610;
goto yy87;
-yy454:
+yy460:
yych = *++cursor_;
- if (yych == 'n') goto yy605;
- if (yych == 'p') goto yy606;
+ if (yych == 'n') goto yy611;
+ if (yych == 'p') goto yy612;
goto yy87;
-yy455:
+yy461:
yych = *++cursor_;
- if (yych == 'm') goto yy607;
+ if (yych == 'm') goto yy613;
goto yy87;
-yy456:
+yy462:
yych = *++cursor_;
- if (yych == 'v') goto yy608;
+ if (yych == 'v') goto yy614;
goto yy87;
-yy457:
+yy463:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 470 "src/wast-lexer.cc"
+#line 473 "src/wast-lexer.cc"
{ OPCODE(F32Eq); RETURN(COMPARE); }
-#line 3131 "src/prebuilt/wast-lexer-gen.cc"
-yy459:
+#line 3411 "src/prebuilt/wast-lexer-gen.cc"
+yy465:
yych = *++cursor_;
- if (yych == 'o') goto yy610;
+ if (yych == 'o') goto yy616;
goto yy87;
-yy460:
+yy466:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 480 "src/wast-lexer.cc"
+#line 483 "src/wast-lexer.cc"
{ OPCODE(F32Ge); RETURN(COMPARE); }
-#line 3143 "src/prebuilt/wast-lexer-gen.cc"
-yy462:
+#line 3423 "src/prebuilt/wast-lexer-gen.cc"
+yy468:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 478 "src/wast-lexer.cc"
+#line 481 "src/wast-lexer.cc"
{ OPCODE(F32Gt); RETURN(COMPARE); }
-#line 3151 "src/prebuilt/wast-lexer-gen.cc"
-yy464:
+#line 3431 "src/prebuilt/wast-lexer-gen.cc"
+yy470:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 476 "src/wast-lexer.cc"
+#line 479 "src/wast-lexer.cc"
{ OPCODE(F32Le); RETURN(COMPARE); }
-#line 3159 "src/prebuilt/wast-lexer-gen.cc"
-yy466:
+#line 3439 "src/prebuilt/wast-lexer-gen.cc"
+yy472:
yych = *++cursor_;
- if (yych == 'a') goto yy611;
+ if (yych == 'a') goto yy617;
goto yy87;
-yy467:
+yy473:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 474 "src/wast-lexer.cc"
+#line 477 "src/wast-lexer.cc"
{ OPCODE(F32Lt); RETURN(COMPARE); }
-#line 3171 "src/prebuilt/wast-lexer-gen.cc"
-yy469:
+#line 3451 "src/prebuilt/wast-lexer-gen.cc"
+yy475:
yych = *++cursor_;
- if (yych == 'x') goto yy612;
+ if (yych == 'x') goto yy618;
goto yy87;
-yy470:
+yy476:
yych = *++cursor_;
- if (yych == 'n') goto yy614;
+ if (yych == 'n') goto yy620;
goto yy87;
-yy471:
+yy477:
yych = *++cursor_;
- if (yych == 'l') goto yy616;
+ if (yych == 'l') goto yy622;
goto yy87;
-yy472:
+yy478:
++cursor_;
if ((yych = *cursor_) <= ':') {
if (yych <= '"') {
@@ -3191,120 +3471,120 @@ yy472:
}
} else {
if (yych <= 'a') {
- if (yych <= ';') goto yy473;
+ if (yych <= ';') goto yy479;
if (yych <= '`') goto yy86;
- goto yy618;
+ goto yy624;
} else {
- if (yych == 'g') goto yy619;
+ if (yych == 'g') goto yy625;
if (yych <= '~') goto yy86;
}
}
-yy473:
-#line 472 "src/wast-lexer.cc"
+yy479:
+#line 475 "src/wast-lexer.cc"
{ OPCODE(F32Ne); RETURN(COMPARE); }
-#line 3206 "src/prebuilt/wast-lexer-gen.cc"
-yy474:
+#line 3486 "src/prebuilt/wast-lexer-gen.cc"
+yy480:
yych = *++cursor_;
- if (yych == 'i') goto yy621;
+ if (yych == 'i') goto yy627;
goto yy87;
-yy475:
+yy481:
yych = *++cursor_;
- if (yych == 'r') goto yy622;
+ if (yych == 'r') goto yy628;
goto yy87;
-yy476:
+yy482:
yych = *++cursor_;
- if (yych == 'o') goto yy623;
+ if (yych == 'o') goto yy629;
goto yy87;
-yy477:
+yy483:
yych = *++cursor_;
- if (yych == 'b') goto yy624;
+ if (yych == 'b') goto yy630;
goto yy87;
-yy478:
+yy484:
yych = *++cursor_;
- if (yych == 'u') goto yy626;
+ if (yych == 'u') goto yy632;
goto yy87;
-yy479:
+yy485:
yych = *++cursor_;
- if (yych == 's') goto yy627;
+ if (yych == 's') goto yy633;
goto yy87;
-yy480:
+yy486:
yych = *++cursor_;
- if (yych == 'd') goto yy629;
+ if (yych == 'd') goto yy635;
goto yy87;
-yy481:
+yy487:
yych = *++cursor_;
- if (yych == 'i') goto yy631;
+ if (yych == 'i') goto yy637;
goto yy87;
-yy482:
+yy488:
yych = *++cursor_;
- if (yych == 'n') goto yy632;
- if (yych == 'p') goto yy633;
+ if (yych == 'n') goto yy638;
+ if (yych == 'p') goto yy639;
goto yy87;
-yy483:
+yy489:
yych = *++cursor_;
- if (yych == 'v') goto yy634;
+ if (yych == 'v') goto yy640;
goto yy87;
-yy484:
+yy490:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 471 "src/wast-lexer.cc"
+#line 474 "src/wast-lexer.cc"
{ OPCODE(F64Eq); RETURN(COMPARE); }
-#line 3255 "src/prebuilt/wast-lexer-gen.cc"
-yy486:
+#line 3535 "src/prebuilt/wast-lexer-gen.cc"
+yy492:
yych = *++cursor_;
- if (yych == 'o') goto yy636;
+ if (yych == 'o') goto yy642;
goto yy87;
-yy487:
+yy493:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 481 "src/wast-lexer.cc"
+#line 484 "src/wast-lexer.cc"
{ OPCODE(F64Ge); RETURN(COMPARE); }
-#line 3267 "src/prebuilt/wast-lexer-gen.cc"
-yy489:
+#line 3547 "src/prebuilt/wast-lexer-gen.cc"
+yy495:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 479 "src/wast-lexer.cc"
+#line 482 "src/wast-lexer.cc"
{ OPCODE(F64Gt); RETURN(COMPARE); }
-#line 3275 "src/prebuilt/wast-lexer-gen.cc"
-yy491:
+#line 3555 "src/prebuilt/wast-lexer-gen.cc"
+yy497:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 477 "src/wast-lexer.cc"
+#line 480 "src/wast-lexer.cc"
{ OPCODE(F64Le); RETURN(COMPARE); }
-#line 3283 "src/prebuilt/wast-lexer-gen.cc"
-yy493:
+#line 3563 "src/prebuilt/wast-lexer-gen.cc"
+yy499:
yych = *++cursor_;
- if (yych == 'a') goto yy637;
+ if (yych == 'a') goto yy643;
goto yy87;
-yy494:
+yy500:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 475 "src/wast-lexer.cc"
+#line 478 "src/wast-lexer.cc"
{ OPCODE(F64Lt); RETURN(COMPARE); }
-#line 3295 "src/prebuilt/wast-lexer-gen.cc"
-yy496:
+#line 3575 "src/prebuilt/wast-lexer-gen.cc"
+yy502:
yych = *++cursor_;
- if (yych == 'x') goto yy638;
+ if (yych == 'x') goto yy644;
goto yy87;
-yy497:
+yy503:
yych = *++cursor_;
- if (yych == 'n') goto yy640;
+ if (yych == 'n') goto yy646;
goto yy87;
-yy498:
+yy504:
yych = *++cursor_;
- if (yych == 'l') goto yy642;
+ if (yych == 'l') goto yy648;
goto yy87;
-yy499:
+yy505:
++cursor_;
if ((yych = *cursor_) <= ':') {
if (yych <= '"') {
@@ -3315,1312 +3595,1373 @@ yy499:
}
} else {
if (yych <= 'a') {
- if (yych <= ';') goto yy500;
+ if (yych <= ';') goto yy506;
if (yych <= '`') goto yy86;
- goto yy644;
+ goto yy650;
} else {
- if (yych == 'g') goto yy645;
+ if (yych == 'g') goto yy651;
if (yych <= '~') goto yy86;
}
}
-yy500:
-#line 473 "src/wast-lexer.cc"
+yy506:
+#line 476 "src/wast-lexer.cc"
{ OPCODE(F64Ne); RETURN(COMPARE); }
-#line 3330 "src/prebuilt/wast-lexer-gen.cc"
-yy501:
+#line 3610 "src/prebuilt/wast-lexer-gen.cc"
+yy507:
yych = *++cursor_;
- if (yych == 'o') goto yy647;
+ if (yych == 'o') goto yy653;
goto yy87;
-yy502:
+yy508:
yych = *++cursor_;
- if (yych == 'i') goto yy648;
+ if (yych == 'i') goto yy654;
goto yy87;
-yy503:
+yy509:
yych = *++cursor_;
- if (yych == 'r') goto yy649;
+ if (yych == 'r') goto yy655;
goto yy87;
-yy504:
+yy510:
yych = *++cursor_;
- if (yych == 'o') goto yy650;
+ if (yych == 'o') goto yy656;
goto yy87;
-yy505:
+yy511:
yych = *++cursor_;
- if (yych == 'b') goto yy651;
+ if (yych == 'b') goto yy657;
goto yy87;
-yy506:
+yy512:
yych = *++cursor_;
- if (yych == 'u') goto yy653;
+ if (yych == 'u') goto yy659;
goto yy87;
-yy507:
+yy513:
yych = *++cursor_;
- if (yych == 'o') goto yy654;
+ if (yych == 'o') goto yy660;
goto yy87;
-yy508:
+yy514:
yych = *++cursor_;
- if (yych == 'c') goto yy655;
+ if (yych == 'c') goto yy661;
goto yy87;
-yy509:
+yy515:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 516 "src/wast-lexer.cc"
+#line 519 "src/wast-lexer.cc"
{ RETURN(GLOBAL); }
-#line 3370 "src/prebuilt/wast-lexer-gen.cc"
-yy511:
+#line 3650 "src/prebuilt/wast-lexer-gen.cc"
+yy517:
yych = *++cursor_;
- if (yych == 'e') goto yy656;
+ if (yych == 'e') goto yy662;
goto yy87;
-yy512:
+yy518:
yych = *++cursor_;
- if (yych == 'd') goto yy657;
+ if (yych == 'd') goto yy663;
goto yy87;
-yy513:
+yy519:
yych = *++cursor_;
- if (yych == 'd') goto yy659;
+ if (yych == 'd') goto yy665;
goto yy87;
-yy514:
+yy520:
yych = *++cursor_;
- if (yych == 'z') goto yy661;
+ if (yych == 'z') goto yy667;
goto yy87;
-yy515:
+yy521:
yych = *++cursor_;
- if (yych == 'n') goto yy663;
+ if (yych == 'n') goto yy669;
goto yy87;
-yy516:
+yy522:
yych = *++cursor_;
- if (yych == 'z') goto yy664;
+ if (yych == 'z') goto yy670;
goto yy87;
-yy517:
+yy523:
yych = *++cursor_;
- if (yych == 'v') goto yy666;
+ if (yych == 'v') goto yy672;
goto yy87;
-yy518:
+yy524:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy519;
+ if (yych <= '"') goto yy525;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= 'y') {
if (yych != ';') goto yy86;
} else {
- if (yych <= 'z') goto yy667;
+ if (yych <= 'z') goto yy673;
if (yych <= '~') goto yy86;
}
}
-yy519:
-#line 450 "src/wast-lexer.cc"
+yy525:
+#line 453 "src/wast-lexer.cc"
{ OPCODE(I32Eq); RETURN(COMPARE); }
-#line 3419 "src/prebuilt/wast-lexer-gen.cc"
-yy520:
+#line 3699 "src/prebuilt/wast-lexer-gen.cc"
+yy526:
yych = *++cursor_;
- if (yych == '_') goto yy669;
+ if (yych == '_') goto yy675;
goto yy87;
-yy521:
+yy527:
yych = *++cursor_;
- if (yych == '_') goto yy670;
+ if (yych == '_') goto yy676;
goto yy87;
-yy522:
+yy528:
yych = *++cursor_;
- if (yych == '_') goto yy671;
+ if (yych == '_') goto yy677;
goto yy87;
-yy523:
+yy529:
yych = *++cursor_;
- if (yych == 'a') goto yy672;
+ if (yych == 'a') goto yy678;
goto yy87;
-yy524:
+yy530:
yych = *++cursor_;
- if (yych == '_') goto yy673;
+ if (yych == '_') goto yy679;
goto yy87;
-yy525:
+yy531:
yych = *++cursor_;
- if (yych == 'l') goto yy674;
+ if (yych == 'l') goto yy680;
goto yy87;
-yy526:
+yy532:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 452 "src/wast-lexer.cc"
+#line 455 "src/wast-lexer.cc"
{ OPCODE(I32Ne); RETURN(COMPARE); }
-#line 3451 "src/prebuilt/wast-lexer-gen.cc"
-yy528:
+#line 3731 "src/prebuilt/wast-lexer-gen.cc"
+yy534:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 422 "src/wast-lexer.cc"
+#line 425 "src/wast-lexer.cc"
{ OPCODE(I32Or); RETURN(BINARY); }
-#line 3459 "src/prebuilt/wast-lexer-gen.cc"
-yy530:
+#line 3739 "src/prebuilt/wast-lexer-gen.cc"
+yy536:
yych = *++cursor_;
- if (yych == 'p') goto yy676;
+ if (yych == 'p') goto yy682;
goto yy87;
-yy531:
+yy537:
yych = *++cursor_;
- if (yych == 'i') goto yy677;
- if (yych == 'm') goto yy678;
+ if (yych == 'i') goto yy683;
+ if (yych == 'm') goto yy684;
goto yy87;
-yy532:
+yy538:
yych = *++cursor_;
- if (yych == 't') goto yy679;
+ if (yych == 't') goto yy685;
goto yy87;
-yy533:
+yy539:
yych = *++cursor_;
- if (yych == 'l') goto yy680;
- if (yych == 'r') goto yy682;
+ if (yych == 'l') goto yy686;
+ if (yych == 'r') goto yy688;
goto yy87;
-yy534:
+yy540:
yych = *++cursor_;
- if (yych == 'o') goto yy683;
+ if (yych == 'o') goto yy689;
goto yy87;
-yy535:
+yy541:
yych = *++cursor_;
- if (yych == 'b') goto yy684;
+ if (yych == 'b') goto yy690;
goto yy87;
-yy536:
+yy542:
yych = *++cursor_;
- if (yych == 'u') goto yy686;
+ if (yych == 'u') goto yy692;
goto yy87;
-yy537:
+yy543:
yych = *++cursor_;
- if (yych == 'a') goto yy687;
+ if (yych == 'a') goto yy693;
goto yy87;
-yy538:
+yy544:
yych = *++cursor_;
- if (yych == 'r') goto yy688;
+ if (yych == 'r') goto yy694;
goto yy87;
-yy539:
+yy545:
yych = *++cursor_;
- if (yych == 'd') goto yy690;
+ if (yych == 'd') goto yy696;
goto yy87;
-yy540:
+yy546:
yych = *++cursor_;
- if (yych == 'd') goto yy692;
+ if (yych == 'd') goto yy698;
goto yy87;
-yy541:
+yy547:
yych = *++cursor_;
- if (yych == 'z') goto yy694;
+ if (yych == 'z') goto yy700;
goto yy87;
-yy542:
+yy548:
yych = *++cursor_;
- if (yych == 'n') goto yy696;
+ if (yych == 'n') goto yy702;
goto yy87;
-yy543:
+yy549:
yych = *++cursor_;
- if (yych == 'z') goto yy697;
+ if (yych == 'z') goto yy703;
goto yy87;
-yy544:
+yy550:
yych = *++cursor_;
- if (yych == 'v') goto yy699;
+ if (yych == 'v') goto yy705;
goto yy87;
-yy545:
+yy551:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy546;
+ if (yych <= '"') goto yy552;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= 'y') {
if (yych != ';') goto yy86;
} else {
- if (yych <= 'z') goto yy700;
+ if (yych <= 'z') goto yy706;
if (yych <= '~') goto yy86;
}
}
-yy546:
-#line 451 "src/wast-lexer.cc"
+yy552:
+#line 454 "src/wast-lexer.cc"
{ OPCODE(I64Eq); RETURN(COMPARE); }
-#line 3542 "src/prebuilt/wast-lexer-gen.cc"
-yy547:
+#line 3822 "src/prebuilt/wast-lexer-gen.cc"
+yy553:
yych = *++cursor_;
- if (yych == 't') goto yy702;
+ if (yych == 't') goto yy708;
goto yy87;
-yy548:
+yy554:
yych = *++cursor_;
- if (yych == '_') goto yy703;
+ if (yych == '_') goto yy709;
goto yy87;
-yy549:
+yy555:
yych = *++cursor_;
- if (yych == '_') goto yy704;
+ if (yych == '_') goto yy710;
goto yy87;
-yy550:
+yy556:
yych = *++cursor_;
- if (yych == '_') goto yy705;
+ if (yych == '_') goto yy711;
goto yy87;
-yy551:
+yy557:
yych = *++cursor_;
- if (yych == 'a') goto yy706;
+ if (yych == 'a') goto yy712;
goto yy87;
-yy552:
+yy558:
yych = *++cursor_;
- if (yych == '_') goto yy707;
+ if (yych == '_') goto yy713;
goto yy87;
-yy553:
+yy559:
yych = *++cursor_;
- if (yych == 'l') goto yy708;
+ if (yych == 'l') goto yy714;
goto yy87;
-yy554:
+yy560:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 453 "src/wast-lexer.cc"
+#line 456 "src/wast-lexer.cc"
{ OPCODE(I64Ne); RETURN(COMPARE); }
-#line 3578 "src/prebuilt/wast-lexer-gen.cc"
-yy556:
+#line 3858 "src/prebuilt/wast-lexer-gen.cc"
+yy562:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 423 "src/wast-lexer.cc"
+#line 426 "src/wast-lexer.cc"
{ OPCODE(I64Or); RETURN(BINARY); }
-#line 3586 "src/prebuilt/wast-lexer-gen.cc"
-yy558:
+#line 3866 "src/prebuilt/wast-lexer-gen.cc"
+yy564:
yych = *++cursor_;
- if (yych == 'p') goto yy710;
+ if (yych == 'p') goto yy716;
goto yy87;
-yy559:
+yy565:
yych = *++cursor_;
- if (yych == 'i') goto yy711;
- if (yych == 'm') goto yy712;
+ if (yych == 'i') goto yy717;
+ if (yych == 'm') goto yy718;
goto yy87;
-yy560:
+yy566:
yych = *++cursor_;
- if (yych == 't') goto yy713;
+ if (yych == 't') goto yy719;
goto yy87;
-yy561:
+yy567:
yych = *++cursor_;
- if (yych == 'l') goto yy714;
- if (yych == 'r') goto yy716;
+ if (yych == 'l') goto yy720;
+ if (yych == 'r') goto yy722;
goto yy87;
-yy562:
+yy568:
yych = *++cursor_;
- if (yych == 'o') goto yy717;
+ if (yych == 'o') goto yy723;
goto yy87;
-yy563:
+yy569:
yych = *++cursor_;
- if (yych == 'b') goto yy718;
+ if (yych == 'b') goto yy724;
goto yy87;
-yy564:
+yy570:
yych = *++cursor_;
- if (yych == 'u') goto yy720;
+ if (yych == 'u') goto yy726;
goto yy87;
-yy565:
+yy571:
yych = *++cursor_;
- if (yych == 'r') goto yy721;
+ if (yych == 'r') goto yy727;
goto yy87;
-yy566:
+yy572:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 526 "src/wast-lexer.cc"
+#line 529 "src/wast-lexer.cc"
{ RETURN(IMPORT); }
-#line 3628 "src/prebuilt/wast-lexer-gen.cc"
-yy568:
+#line 3908 "src/prebuilt/wast-lexer-gen.cc"
+yy574:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 530 "src/wast-lexer.cc"
+#line 533 "src/wast-lexer.cc"
{ RETURN(INVOKE); }
-#line 3636 "src/prebuilt/wast-lexer-gen.cc"
-yy570:
+#line 3916 "src/prebuilt/wast-lexer-gen.cc"
+yy576:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 521 "src/wast-lexer.cc"
+#line 524 "src/wast-lexer.cc"
{ RETURN(MEMORY); }
-#line 3644 "src/prebuilt/wast-lexer-gen.cc"
-yy572:
+#line 3924 "src/prebuilt/wast-lexer-gen.cc"
+yy578:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 517 "src/wast-lexer.cc"
+#line 520 "src/wast-lexer.cc"
{ RETURN(MODULE); }
-#line 3652 "src/prebuilt/wast-lexer-gen.cc"
-yy574:
- yych = *++cursor_;
- if (yych <= '@') {
- if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy723;
- goto yy87;
+#line 3932 "src/prebuilt/wast-lexer-gen.cc"
+yy580:
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= '9') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy86;
+ goto yy88;
+ } else {
+ if (yych <= '\'') goto yy86;
+ if (yych <= ')') goto yy88;
+ if (yych <= '/') goto yy86;
+ goto yy729;
+ }
} else {
- if (yych <= 'F') goto yy723;
- if (yych <= '`') goto yy87;
- if (yych <= 'f') goto yy723;
- goto yy87;
+ if (yych <= 'F') {
+ if (yych == ';') goto yy88;
+ if (yych <= '@') goto yy86;
+ goto yy729;
+ } else {
+ if (yych <= '`') goto yy86;
+ if (yych <= 'f') goto yy729;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
}
-yy575:
+yy581:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy576;
+ if (yych <= '"') goto yy582;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '<') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '=') goto yy725;
+ if (yych <= '=') goto yy731;
if (yych <= '~') goto yy86;
}
}
-yy576:
-#line 525 "src/wast-lexer.cc"
+yy582:
+#line 528 "src/wast-lexer.cc"
{ RETURN(OFFSET); }
-#line 3685 "src/prebuilt/wast-lexer-gen.cc"
-yy577:
+#line 3979 "src/prebuilt/wast-lexer-gen.cc"
+yy583:
yych = *++cursor_;
- if (yych == 'e') goto yy726;
+ if (yych == 'e') goto yy732;
goto yy87;
-yy578:
+yy584:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 514 "src/wast-lexer.cc"
+#line 517 "src/wast-lexer.cc"
{ RETURN(RESULT); }
-#line 3697 "src/prebuilt/wast-lexer-gen.cc"
-yy580:
+#line 3991 "src/prebuilt/wast-lexer-gen.cc"
+yy586:
yych = *++cursor_;
- if (yych == 'w') goto yy727;
+ if (yych == 'w') goto yy733;
goto yy87;
-yy581:
+yy587:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 349 "src/wast-lexer.cc"
+#line 352 "src/wast-lexer.cc"
{ RETURN(RETURN); }
-#line 3709 "src/prebuilt/wast-lexer-gen.cc"
-yy583:
+#line 4003 "src/prebuilt/wast-lexer-gen.cc"
+yy589:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 507 "src/wast-lexer.cc"
+#line 510 "src/wast-lexer.cc"
{ RETURN(SELECT); }
-#line 3717 "src/prebuilt/wast-lexer-gen.cc"
-yy585:
+#line 4011 "src/prebuilt/wast-lexer-gen.cc"
+yy591:
yych = *++cursor_;
- if (yych == 'o') goto yy729;
+ if (yych == 'o') goto yy735;
goto yy87;
-yy586:
+yy592:
yych = *++cursor_;
- if (yych == 'c') goto yy730;
+ if (yych == 'c') goto yy736;
goto yy87;
-yy587:
+yy593:
yych = *++cursor_;
- if (yych == 'c') goto yy731;
+ if (yych == 'c') goto yy737;
goto yy87;
-yy588:
+yy594:
yych = *++cursor_;
- if (yych == 'h') goto yy732;
+ if (yych == 'h') goto yy738;
goto yy87;
-yy589:
+yy595:
++cursor_;
- if ((yych = *cursor_) <= '/') {
+ if ((yych = *cursor_) <= '9') {
if (yych <= '"') {
if (yych == '!') goto yy86;
} else {
if (yych <= '\'') goto yy86;
- if (yych >= '*') goto yy86;
+ if (yych <= ')') goto yy596;
+ if (yych <= '/') goto yy86;
+ goto yy597;
}
} else {
- if (yych <= ';') {
- if (yych <= '9') goto yy591;
- if (yych <= ':') goto yy86;
+ if (yych <= '_') {
+ if (yych == ';') goto yy596;
+ if (yych <= '^') goto yy86;
+ goto yy739;
} else {
- if (yych == 'x') goto yy733;
+ if (yych == 'x') goto yy740;
if (yych <= '~') goto yy86;
}
}
-yy590:
-#line 379 "src/wast-lexer.cc"
+yy596:
+#line 382 "src/wast-lexer.cc"
{ SetTextAt(6); RETURN(ALIGN_EQ_NAT); }
-#line 3755 "src/prebuilt/wast-lexer-gen.cc"
-yy591:
+#line 4052 "src/prebuilt/wast-lexer-gen.cc"
+yy597:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych <= ' ') goto yy590;
- goto yy86;
+ if (yych <= '/') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy86;
+ goto yy596;
} else {
- if (yych <= '"') goto yy590;
if (yych <= '\'') goto yy86;
- goto yy590;
+ if (yych <= ')') goto yy596;
+ goto yy86;
}
} else {
- if (yych <= ':') {
- if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy591;
- goto yy86;
+ if (yych <= ';') {
+ if (yych <= '9') goto yy597;
+ if (yych <= ':') goto yy86;
+ goto yy596;
} else {
- if (yych <= ';') goto yy590;
+ if (yych == '_') goto yy739;
if (yych <= '~') goto yy86;
- goto yy590;
+ goto yy596;
}
}
-yy593:
+yy599:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 334 "src/wast-lexer.cc"
+#line 337 "src/wast-lexer.cc"
{ RETURN(ANYFUNC); }
-#line 3787 "src/prebuilt/wast-lexer-gen.cc"
-yy595:
+#line 4084 "src/prebuilt/wast-lexer-gen.cc"
+yy601:
yych = *++cursor_;
switch (yych) {
- case 'e': goto yy734;
- case 'i': goto yy735;
- case 'm': goto yy736;
- case 'r': goto yy737;
- case 't': goto yy738;
- case 'u': goto yy739;
+ case 'e': goto yy741;
+ case 'i': goto yy742;
+ case 'm': goto yy743;
+ case 'r': goto yy744;
+ case 't': goto yy745;
+ case 'u': goto yy746;
default: goto yy87;
}
-yy596:
+yy602:
yych = *++cursor_;
- if (yych == 'e') goto yy740;
+ if (yych == 'e') goto yy747;
goto yy87;
-yy597:
+yy603:
yych = *++cursor_;
- if (yych == 'd') goto yy742;
+ if (yych == 'd') goto yy749;
goto yy87;
-yy598:
+yy604:
yych = *++cursor_;
- if (yych == 'l') goto yy743;
+ if (yych == 'l') goto yy750;
goto yy87;
-yy599:
+yy605:
yych = *++cursor_;
- if (yych == '_') goto yy744;
+ if (yych == '_') goto yy751;
goto yy87;
-yy600:
+yy606:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 394 "src/wast-lexer.cc"
+#line 397 "src/wast-lexer.cc"
{ OPCODE(F32Abs); RETURN(UNARY); }
-#line 3822 "src/prebuilt/wast-lexer-gen.cc"
-yy602:
+#line 4119 "src/prebuilt/wast-lexer-gen.cc"
+yy608:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 436 "src/wast-lexer.cc"
+#line 439 "src/wast-lexer.cc"
{ OPCODE(F32Add); RETURN(BINARY); }
-#line 3830 "src/prebuilt/wast-lexer-gen.cc"
-yy604:
+#line 4127 "src/prebuilt/wast-lexer-gen.cc"
+yy610:
yych = *++cursor_;
- if (yych == 'l') goto yy745;
+ if (yych == 'l') goto yy752;
goto yy87;
-yy605:
+yy611:
yych = *++cursor_;
- if (yych == 's') goto yy747;
- if (yych == 'v') goto yy748;
+ if (yych == 's') goto yy754;
+ if (yych == 'v') goto yy755;
goto yy87;
-yy606:
+yy612:
yych = *++cursor_;
- if (yych == 'y') goto yy749;
+ if (yych == 'y') goto yy756;
goto yy87;
-yy607:
+yy613:
yych = *++cursor_;
- if (yych == 'o') goto yy750;
+ if (yych == 'o') goto yy757;
goto yy87;
-yy608:
+yy614:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 442 "src/wast-lexer.cc"
+#line 445 "src/wast-lexer.cc"
{ OPCODE(F32Div); RETURN(BINARY); }
-#line 3855 "src/prebuilt/wast-lexer-gen.cc"
-yy610:
+#line 4152 "src/prebuilt/wast-lexer-gen.cc"
+yy616:
yych = *++cursor_;
- if (yych == 'o') goto yy751;
+ if (yych == 'o') goto yy758;
goto yy87;
-yy611:
+yy617:
yych = *++cursor_;
- if (yych == 'd') goto yy752;
+ if (yych == 'd') goto yy759;
goto yy87;
-yy612:
+yy618:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 446 "src/wast-lexer.cc"
+#line 449 "src/wast-lexer.cc"
{ OPCODE(F32Max); RETURN(BINARY); }
-#line 3871 "src/prebuilt/wast-lexer-gen.cc"
-yy614:
+#line 4168 "src/prebuilt/wast-lexer-gen.cc"
+yy620:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 444 "src/wast-lexer.cc"
+#line 447 "src/wast-lexer.cc"
{ OPCODE(F32Min); RETURN(BINARY); }
-#line 3879 "src/prebuilt/wast-lexer-gen.cc"
-yy616:
+#line 4176 "src/prebuilt/wast-lexer-gen.cc"
+yy622:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 440 "src/wast-lexer.cc"
+#line 443 "src/wast-lexer.cc"
{ OPCODE(F32Mul); RETURN(BINARY); }
-#line 3887 "src/prebuilt/wast-lexer-gen.cc"
-yy618:
+#line 4184 "src/prebuilt/wast-lexer-gen.cc"
+yy624:
yych = *++cursor_;
- if (yych == 'r') goto yy754;
+ if (yych == 'r') goto yy761;
goto yy87;
-yy619:
+yy625:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 392 "src/wast-lexer.cc"
+#line 395 "src/wast-lexer.cc"
{ OPCODE(F32Neg); RETURN(UNARY); }
-#line 3899 "src/prebuilt/wast-lexer-gen.cc"
-yy621:
+#line 4196 "src/prebuilt/wast-lexer-gen.cc"
+yy627:
yych = *++cursor_;
- if (yych == 'n') goto yy755;
+ if (yych == 'n') goto yy762;
goto yy87;
-yy622:
+yy628:
yych = *++cursor_;
- if (yych == 't') goto yy756;
+ if (yych == 't') goto yy763;
goto yy87;
-yy623:
+yy629:
yych = *++cursor_;
- if (yych == 'r') goto yy758;
+ if (yych == 'r') goto yy765;
goto yy87;
-yy624:
+yy630:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 438 "src/wast-lexer.cc"
+#line 441 "src/wast-lexer.cc"
{ OPCODE(F32Sub); RETURN(BINARY); }
-#line 3919 "src/prebuilt/wast-lexer-gen.cc"
-yy626:
+#line 4216 "src/prebuilt/wast-lexer-gen.cc"
+yy632:
yych = *++cursor_;
- if (yych == 'n') goto yy759;
+ if (yych == 'n') goto yy766;
goto yy87;
-yy627:
+yy633:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 395 "src/wast-lexer.cc"
+#line 398 "src/wast-lexer.cc"
{ OPCODE(F64Abs); RETURN(UNARY); }
-#line 3931 "src/prebuilt/wast-lexer-gen.cc"
-yy629:
+#line 4228 "src/prebuilt/wast-lexer-gen.cc"
+yy635:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 437 "src/wast-lexer.cc"
+#line 440 "src/wast-lexer.cc"
{ OPCODE(F64Add); RETURN(BINARY); }
-#line 3939 "src/prebuilt/wast-lexer-gen.cc"
-yy631:
+#line 4236 "src/prebuilt/wast-lexer-gen.cc"
+yy637:
yych = *++cursor_;
- if (yych == 'l') goto yy760;
+ if (yych == 'l') goto yy767;
goto yy87;
-yy632:
+yy638:
yych = *++cursor_;
- if (yych == 's') goto yy762;
- if (yych == 'v') goto yy763;
+ if (yych == 's') goto yy769;
+ if (yych == 'v') goto yy770;
goto yy87;
-yy633:
+yy639:
yych = *++cursor_;
- if (yych == 'y') goto yy764;
+ if (yych == 'y') goto yy771;
goto yy87;
-yy634:
+yy640:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 443 "src/wast-lexer.cc"
+#line 446 "src/wast-lexer.cc"
{ OPCODE(F64Div); RETURN(BINARY); }
-#line 3960 "src/prebuilt/wast-lexer-gen.cc"
-yy636:
+#line 4257 "src/prebuilt/wast-lexer-gen.cc"
+yy642:
yych = *++cursor_;
- if (yych == 'o') goto yy765;
+ if (yych == 'o') goto yy772;
goto yy87;
-yy637:
+yy643:
yych = *++cursor_;
- if (yych == 'd') goto yy766;
+ if (yych == 'd') goto yy773;
goto yy87;
-yy638:
+yy644:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 447 "src/wast-lexer.cc"
+#line 450 "src/wast-lexer.cc"
{ OPCODE(F64Max); RETURN(BINARY); }
-#line 3976 "src/prebuilt/wast-lexer-gen.cc"
-yy640:
+#line 4273 "src/prebuilt/wast-lexer-gen.cc"
+yy646:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 445 "src/wast-lexer.cc"
+#line 448 "src/wast-lexer.cc"
{ OPCODE(F64Min); RETURN(BINARY); }
-#line 3984 "src/prebuilt/wast-lexer-gen.cc"
-yy642:
+#line 4281 "src/prebuilt/wast-lexer-gen.cc"
+yy648:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 441 "src/wast-lexer.cc"
+#line 444 "src/wast-lexer.cc"
{ OPCODE(F64Mul); RETURN(BINARY); }
-#line 3992 "src/prebuilt/wast-lexer-gen.cc"
-yy644:
+#line 4289 "src/prebuilt/wast-lexer-gen.cc"
+yy650:
yych = *++cursor_;
- if (yych == 'r') goto yy768;
+ if (yych == 'r') goto yy775;
goto yy87;
-yy645:
+yy651:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 393 "src/wast-lexer.cc"
+#line 396 "src/wast-lexer.cc"
{ OPCODE(F64Neg); RETURN(UNARY); }
-#line 4004 "src/prebuilt/wast-lexer-gen.cc"
-yy647:
+#line 4301 "src/prebuilt/wast-lexer-gen.cc"
+yy653:
yych = *++cursor_;
- if (yych == 'm') goto yy769;
+ if (yych == 'm') goto yy776;
goto yy87;
-yy648:
+yy654:
yych = *++cursor_;
- if (yych == 'n') goto yy770;
+ if (yych == 'n') goto yy777;
goto yy87;
-yy649:
+yy655:
yych = *++cursor_;
- if (yych == 't') goto yy771;
+ if (yych == 't') goto yy778;
goto yy87;
-yy650:
+yy656:
yych = *++cursor_;
- if (yych == 'r') goto yy773;
+ if (yych == 'r') goto yy780;
goto yy87;
-yy651:
+yy657:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 439 "src/wast-lexer.cc"
+#line 442 "src/wast-lexer.cc"
{ OPCODE(F64Sub); RETURN(BINARY); }
-#line 4028 "src/prebuilt/wast-lexer-gen.cc"
-yy653:
+#line 4325 "src/prebuilt/wast-lexer-gen.cc"
+yy659:
yych = *++cursor_;
- if (yych == 'n') goto yy774;
+ if (yych == 'n') goto yy781;
goto yy87;
-yy654:
+yy660:
yych = *++cursor_;
- if (yych == 'b') goto yy775;
+ if (yych == 'b') goto yy782;
goto yy87;
-yy655:
+yy661:
yych = *++cursor_;
- if (yych == 'a') goto yy776;
+ if (yych == 'a') goto yy783;
goto yy87;
-yy656:
+yy662:
yych = *++cursor_;
- if (yych == 'm') goto yy777;
+ if (yych == 'm') goto yy784;
goto yy87;
-yy657:
+yy663:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 406 "src/wast-lexer.cc"
+#line 409 "src/wast-lexer.cc"
{ OPCODE(I32Add); RETURN(BINARY); }
-#line 4052 "src/prebuilt/wast-lexer-gen.cc"
-yy659:
+#line 4349 "src/prebuilt/wast-lexer-gen.cc"
+yy665:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 420 "src/wast-lexer.cc"
+#line 423 "src/wast-lexer.cc"
{ OPCODE(I32And); RETURN(BINARY); }
-#line 4060 "src/prebuilt/wast-lexer-gen.cc"
-yy661:
+#line 4357 "src/prebuilt/wast-lexer-gen.cc"
+yy667:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 386 "src/wast-lexer.cc"
+#line 389 "src/wast-lexer.cc"
{ OPCODE(I32Clz); RETURN(UNARY); }
-#line 4068 "src/prebuilt/wast-lexer-gen.cc"
-yy663:
+#line 4365 "src/prebuilt/wast-lexer-gen.cc"
+yy669:
yych = *++cursor_;
- if (yych == 's') goto yy778;
+ if (yych == 's') goto yy785;
goto yy87;
-yy664:
+yy670:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 388 "src/wast-lexer.cc"
+#line 391 "src/wast-lexer.cc"
{ OPCODE(I32Ctz); RETURN(UNARY); }
-#line 4080 "src/prebuilt/wast-lexer-gen.cc"
-yy666:
+#line 4377 "src/prebuilt/wast-lexer-gen.cc"
+yy672:
yych = *++cursor_;
- if (yych == '_') goto yy779;
+ if (yych == '_') goto yy786;
goto yy87;
-yy667:
+yy673:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 384 "src/wast-lexer.cc"
+#line 387 "src/wast-lexer.cc"
{ OPCODE(I32Eqz); RETURN(CONVERT); }
-#line 4092 "src/prebuilt/wast-lexer-gen.cc"
-yy669:
+#line 4389 "src/prebuilt/wast-lexer-gen.cc"
+yy675:
yych = *++cursor_;
- if (yych == 's') goto yy780;
- if (yych == 'u') goto yy782;
+ if (yych == 's') goto yy787;
+ if (yych == 'u') goto yy789;
goto yy87;
-yy670:
+yy676:
yych = *++cursor_;
- if (yych == 's') goto yy784;
- if (yych == 'u') goto yy786;
+ if (yych == 's') goto yy791;
+ if (yych == 'u') goto yy793;
goto yy87;
-yy671:
+yy677:
yych = *++cursor_;
- if (yych == 's') goto yy788;
- if (yych == 'u') goto yy790;
+ if (yych == 's') goto yy795;
+ if (yych == 'u') goto yy797;
goto yy87;
-yy672:
+yy678:
yych = *++cursor_;
- if (yych == 'd') goto yy792;
+ if (yych == 'd') goto yy799;
goto yy87;
-yy673:
+yy679:
yych = *++cursor_;
- if (yych == 's') goto yy794;
- if (yych == 'u') goto yy796;
+ if (yych == 's') goto yy801;
+ if (yych == 'u') goto yy803;
goto yy87;
-yy674:
+yy680:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 410 "src/wast-lexer.cc"
+#line 413 "src/wast-lexer.cc"
{ OPCODE(I32Mul); RETURN(BINARY); }
-#line 4124 "src/prebuilt/wast-lexer-gen.cc"
-yy676:
+#line 4421 "src/prebuilt/wast-lexer-gen.cc"
+yy682:
yych = *++cursor_;
- if (yych == 'c') goto yy798;
+ if (yych == 'c') goto yy805;
goto yy87;
-yy677:
+yy683:
yych = *++cursor_;
- if (yych == 'n') goto yy799;
+ if (yych == 'n') goto yy806;
goto yy87;
-yy678:
+yy684:
yych = *++cursor_;
- if (yych == '_') goto yy800;
+ if (yych == '_') goto yy807;
goto yy87;
-yy679:
+yy685:
yych = *++cursor_;
- if (yych == 'l') goto yy801;
- if (yych == 'r') goto yy803;
+ if (yych == 'l') goto yy808;
+ if (yych == 'r') goto yy810;
goto yy87;
-yy680:
+yy686:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 426 "src/wast-lexer.cc"
+#line 429 "src/wast-lexer.cc"
{ OPCODE(I32Shl); RETURN(BINARY); }
-#line 4149 "src/prebuilt/wast-lexer-gen.cc"
-yy682:
+#line 4446 "src/prebuilt/wast-lexer-gen.cc"
+yy688:
yych = *++cursor_;
- if (yych == '_') goto yy805;
+ if (yych == '_') goto yy812;
goto yy87;
-yy683:
+yy689:
yych = *++cursor_;
- if (yych == 'r') goto yy806;
+ if (yych == 'r') goto yy813;
goto yy87;
-yy684:
+yy690:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 408 "src/wast-lexer.cc"
+#line 411 "src/wast-lexer.cc"
{ OPCODE(I32Sub); RETURN(BINARY); }
-#line 4165 "src/prebuilt/wast-lexer-gen.cc"
-yy686:
+#line 4462 "src/prebuilt/wast-lexer-gen.cc"
+yy692:
yych = *++cursor_;
- if (yych == 'n') goto yy807;
+ if (yych == 'n') goto yy814;
goto yy87;
-yy687:
+yy693:
yych = *++cursor_;
- if (yych == 'p') goto yy808;
+ if (yych == 'p') goto yy815;
goto yy87;
-yy688:
+yy694:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 424 "src/wast-lexer.cc"
+#line 427 "src/wast-lexer.cc"
{ OPCODE(I32Xor); RETURN(BINARY); }
-#line 4181 "src/prebuilt/wast-lexer-gen.cc"
-yy690:
+#line 4478 "src/prebuilt/wast-lexer-gen.cc"
+yy696:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 407 "src/wast-lexer.cc"
+#line 410 "src/wast-lexer.cc"
{ OPCODE(I64Add); RETURN(BINARY); }
-#line 4189 "src/prebuilt/wast-lexer-gen.cc"
-yy692:
+#line 4486 "src/prebuilt/wast-lexer-gen.cc"
+yy698:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 421 "src/wast-lexer.cc"
+#line 424 "src/wast-lexer.cc"
{ OPCODE(I64And); RETURN(BINARY); }
-#line 4197 "src/prebuilt/wast-lexer-gen.cc"
-yy694:
+#line 4494 "src/prebuilt/wast-lexer-gen.cc"
+yy700:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 387 "src/wast-lexer.cc"
+#line 390 "src/wast-lexer.cc"
{ OPCODE(I64Clz); RETURN(UNARY); }
-#line 4205 "src/prebuilt/wast-lexer-gen.cc"
-yy696:
+#line 4502 "src/prebuilt/wast-lexer-gen.cc"
+yy702:
yych = *++cursor_;
- if (yych == 's') goto yy809;
+ if (yych == 's') goto yy816;
goto yy87;
-yy697:
+yy703:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 389 "src/wast-lexer.cc"
+#line 392 "src/wast-lexer.cc"
{ OPCODE(I64Ctz); RETURN(UNARY); }
-#line 4217 "src/prebuilt/wast-lexer-gen.cc"
-yy699:
+#line 4514 "src/prebuilt/wast-lexer-gen.cc"
+yy705:
yych = *++cursor_;
- if (yych == '_') goto yy810;
+ if (yych == '_') goto yy817;
goto yy87;
-yy700:
+yy706:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 385 "src/wast-lexer.cc"
+#line 388 "src/wast-lexer.cc"
{ OPCODE(I64Eqz); RETURN(CONVERT); }
-#line 4229 "src/prebuilt/wast-lexer-gen.cc"
-yy702:
+#line 4526 "src/prebuilt/wast-lexer-gen.cc"
+yy708:
yych = *++cursor_;
- if (yych == 'e') goto yy811;
+ if (yych == 'e') goto yy818;
goto yy87;
-yy703:
+yy709:
yych = *++cursor_;
- if (yych == 's') goto yy812;
- if (yych == 'u') goto yy814;
+ if (yych == 's') goto yy819;
+ if (yych == 'u') goto yy821;
goto yy87;
-yy704:
+yy710:
yych = *++cursor_;
- if (yych == 's') goto yy816;
- if (yych == 'u') goto yy818;
+ if (yych == 's') goto yy823;
+ if (yych == 'u') goto yy825;
goto yy87;
-yy705:
+yy711:
yych = *++cursor_;
- if (yych == 's') goto yy820;
- if (yych == 'u') goto yy822;
+ if (yych == 's') goto yy827;
+ if (yych == 'u') goto yy829;
goto yy87;
-yy706:
+yy712:
yych = *++cursor_;
- if (yych == 'd') goto yy824;
+ if (yych == 'd') goto yy831;
goto yy87;
-yy707:
+yy713:
yych = *++cursor_;
- if (yych == 's') goto yy826;
- if (yych == 'u') goto yy828;
+ if (yych == 's') goto yy833;
+ if (yych == 'u') goto yy835;
goto yy87;
-yy708:
+yy714:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 411 "src/wast-lexer.cc"
+#line 414 "src/wast-lexer.cc"
{ OPCODE(I64Mul); RETURN(BINARY); }
-#line 4265 "src/prebuilt/wast-lexer-gen.cc"
-yy710:
+#line 4562 "src/prebuilt/wast-lexer-gen.cc"
+yy716:
yych = *++cursor_;
- if (yych == 'c') goto yy830;
+ if (yych == 'c') goto yy837;
goto yy87;
-yy711:
+yy717:
yych = *++cursor_;
- if (yych == 'n') goto yy831;
+ if (yych == 'n') goto yy838;
goto yy87;
-yy712:
+yy718:
yych = *++cursor_;
- if (yych == '_') goto yy832;
+ if (yych == '_') goto yy839;
goto yy87;
-yy713:
+yy719:
yych = *++cursor_;
- if (yych == 'l') goto yy833;
- if (yych == 'r') goto yy835;
+ if (yych == 'l') goto yy840;
+ if (yych == 'r') goto yy842;
goto yy87;
-yy714:
+yy720:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 427 "src/wast-lexer.cc"
+#line 430 "src/wast-lexer.cc"
{ OPCODE(I64Shl); RETURN(BINARY); }
-#line 4290 "src/prebuilt/wast-lexer-gen.cc"
-yy716:
+#line 4587 "src/prebuilt/wast-lexer-gen.cc"
+yy722:
yych = *++cursor_;
- if (yych == '_') goto yy837;
+ if (yych == '_') goto yy844;
goto yy87;
-yy717:
+yy723:
yych = *++cursor_;
- if (yych == 'r') goto yy838;
+ if (yych == 'r') goto yy845;
goto yy87;
-yy718:
+yy724:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 409 "src/wast-lexer.cc"
+#line 412 "src/wast-lexer.cc"
{ OPCODE(I64Sub); RETURN(BINARY); }
-#line 4306 "src/prebuilt/wast-lexer-gen.cc"
-yy720:
+#line 4603 "src/prebuilt/wast-lexer-gen.cc"
+yy726:
yych = *++cursor_;
- if (yych == 'n') goto yy839;
+ if (yych == 'n') goto yy846;
goto yy87;
-yy721:
+yy727:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 425 "src/wast-lexer.cc"
+#line 428 "src/wast-lexer.cc"
{ OPCODE(I64Xor); RETURN(BINARY); }
-#line 4318 "src/prebuilt/wast-lexer-gen.cc"
-yy723:
+#line 4615 "src/prebuilt/wast-lexer-gen.cc"
+yy729:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
- if (yych <= '9') {
- if (yych <= '"') {
+ if (yych <= ':') {
+ if (yych <= '\'') {
if (yych == '!') goto yy86;
- goto yy253;
+ if (yych <= '"') goto yy256;
+ goto yy86;
} else {
- if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy253;
+ if (yych <= ')') goto yy256;
if (yych <= '/') goto yy86;
- goto yy723;
+ if (yych <= '9') goto yy729;
+ goto yy86;
}
} else {
- if (yych <= 'F') {
- if (yych == ';') goto yy253;
+ if (yych <= '^') {
+ if (yych <= ';') goto yy256;
if (yych <= '@') goto yy86;
- goto yy723;
+ if (yych <= 'F') goto yy729;
+ goto yy86;
} else {
- if (yych <= '`') goto yy86;
- if (yych <= 'f') goto yy723;
- if (yych <= '~') goto yy86;
- goto yy253;
+ if (yych <= '`') {
+ if (yych <= '_') goto yy580;
+ goto yy86;
+ } else {
+ if (yych <= 'f') goto yy729;
+ if (yych <= '~') goto yy86;
+ goto yy256;
+ }
}
}
-yy725:
+yy731:
yych = *++cursor_;
if (yych <= '/') goto yy87;
- if (yych <= '0') goto yy840;
- if (yych <= '9') goto yy842;
+ if (yych <= '0') goto yy847;
+ if (yych <= '9') goto yy849;
goto yy87;
-yy726:
+yy732:
yych = *++cursor_;
- if (yych == 'r') goto yy844;
+ if (yych == 'r') goto yy851;
goto yy87;
-yy727:
+yy733:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 546 "src/wast-lexer.cc"
+#line 549 "src/wast-lexer.cc"
{ RETURN(RETHROW); }
-#line 4362 "src/prebuilt/wast-lexer-gen.cc"
-yy729:
+#line 4665 "src/prebuilt/wast-lexer-gen.cc"
+yy735:
yych = *++cursor_;
- if (yych == 'b') goto yy846;
+ if (yych == 'b') goto yy853;
goto yy87;
-yy730:
+yy736:
yych = *++cursor_;
- if (yych == 'a') goto yy847;
+ if (yych == 'a') goto yy854;
goto yy87;
-yy731:
+yy737:
yych = *++cursor_;
- if (yych == 'a') goto yy848;
+ if (yych == 'a') goto yy855;
goto yy87;
-yy732:
+yy738:
yych = *++cursor_;
- if (yych == 'a') goto yy849;
+ if (yych == 'a') goto yy856;
goto yy87;
-yy733:
- yych = *++cursor_;
- if (yych <= '@') {
- if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy850;
- goto yy87;
+yy739:
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych <= ' ') goto yy88;
+ goto yy86;
+ } else {
+ if (yych <= '"') goto yy88;
+ if (yych <= '\'') goto yy86;
+ goto yy88;
+ }
} else {
- if (yych <= 'F') goto yy850;
- if (yych <= '`') goto yy87;
- if (yych <= 'f') goto yy850;
- goto yy87;
+ if (yych <= ':') {
+ if (yych <= '/') goto yy86;
+ if (yych <= '9') goto yy597;
+ goto yy86;
+ } else {
+ if (yych <= ';') goto yy88;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
}
-yy734:
+yy740:
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= '9') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy86;
+ goto yy88;
+ } else {
+ if (yych <= '\'') goto yy86;
+ if (yych <= ')') goto yy88;
+ if (yych <= '/') goto yy86;
+ goto yy857;
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == ';') goto yy88;
+ if (yych <= '@') goto yy86;
+ goto yy857;
+ } else {
+ if (yych <= '`') goto yy86;
+ if (yych <= 'f') goto yy857;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
+ }
+yy741:
yych = *++cursor_;
- if (yych == 'x') goto yy852;
+ if (yych == 'x') goto yy859;
goto yy87;
-yy735:
+yy742:
yych = *++cursor_;
- if (yych == 'n') goto yy853;
+ if (yych == 'n') goto yy860;
goto yy87;
-yy736:
+yy743:
yych = *++cursor_;
- if (yych == 'a') goto yy854;
+ if (yych == 'a') goto yy861;
goto yy87;
-yy737:
+yy744:
yych = *++cursor_;
- if (yych == 'e') goto yy855;
+ if (yych == 'e') goto yy862;
goto yy87;
-yy738:
+yy745:
yych = *++cursor_;
- if (yych == 'r') goto yy856;
+ if (yych == 'r') goto yy863;
goto yy87;
-yy739:
+yy746:
yych = *++cursor_;
- if (yych == 'n') goto yy857;
+ if (yych == 'n') goto yy864;
goto yy87;
-yy740:
+yy747:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 344 "src/wast-lexer.cc"
+#line 347 "src/wast-lexer.cc"
{ RETURN(BR_TABLE); }
-#line 4422 "src/prebuilt/wast-lexer-gen.cc"
-yy742:
+#line 4763 "src/prebuilt/wast-lexer-gen.cc"
+yy749:
yych = *++cursor_;
- if (yych == 'i') goto yy858;
+ if (yych == 'i') goto yy865;
goto yy87;
-yy743:
+yy750:
yych = *++cursor_;
- if (yych == 'l') goto yy859;
+ if (yych == 'l') goto yy866;
goto yy87;
-yy744:
+yy751:
yych = *++cursor_;
- if (yych == 'm') goto yy861;
+ if (yych == 'm') goto yy868;
goto yy87;
-yy745:
+yy752:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 398 "src/wast-lexer.cc"
+#line 401 "src/wast-lexer.cc"
{ OPCODE(F32Ceil); RETURN(UNARY); }
-#line 4442 "src/prebuilt/wast-lexer-gen.cc"
-yy747:
+#line 4783 "src/prebuilt/wast-lexer-gen.cc"
+yy754:
yych = *++cursor_;
- if (yych == 't') goto yy862;
+ if (yych == 't') goto yy869;
goto yy87;
-yy748:
+yy755:
yych = *++cursor_;
- if (yych == 'e') goto yy864;
+ if (yych == 'e') goto yy871;
goto yy87;
-yy749:
+yy756:
yych = *++cursor_;
- if (yych == 's') goto yy865;
+ if (yych == 's') goto yy872;
goto yy87;
-yy750:
+yy757:
yych = *++cursor_;
- if (yych == 't') goto yy866;
+ if (yych == 't') goto yy873;
goto yy87;
-yy751:
+yy758:
yych = *++cursor_;
- if (yych == 'r') goto yy867;
+ if (yych == 'r') goto yy874;
goto yy87;
-yy752:
+yy759:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 357 "src/wast-lexer.cc"
+#line 360 "src/wast-lexer.cc"
{ OPCODE(F32Load); RETURN(LOAD); }
-#line 4470 "src/prebuilt/wast-lexer-gen.cc"
-yy754:
+#line 4811 "src/prebuilt/wast-lexer-gen.cc"
+yy761:
yych = *++cursor_;
- if (yych == 'e') goto yy869;
+ if (yych == 'e') goto yy876;
goto yy87;
-yy755:
+yy762:
yych = *++cursor_;
- if (yych == 't') goto yy870;
+ if (yych == 't') goto yy877;
goto yy87;
-yy756:
+yy763:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 396 "src/wast-lexer.cc"
+#line 399 "src/wast-lexer.cc"
{ OPCODE(F32Sqrt); RETURN(UNARY); }
-#line 4486 "src/prebuilt/wast-lexer-gen.cc"
-yy758:
+#line 4827 "src/prebuilt/wast-lexer-gen.cc"
+yy765:
yych = *++cursor_;
- if (yych == 'e') goto yy871;
+ if (yych == 'e') goto yy878;
goto yy87;
-yy759:
+yy766:
yych = *++cursor_;
- if (yych == 'c') goto yy873;
+ if (yych == 'c') goto yy880;
goto yy87;
-yy760:
+yy767:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 399 "src/wast-lexer.cc"
+#line 402 "src/wast-lexer.cc"
{ OPCODE(F64Ceil); RETURN(UNARY); }
-#line 4502 "src/prebuilt/wast-lexer-gen.cc"
-yy762:
+#line 4843 "src/prebuilt/wast-lexer-gen.cc"
+yy769:
yych = *++cursor_;
- if (yych == 't') goto yy875;
+ if (yych == 't') goto yy882;
goto yy87;
-yy763:
+yy770:
yych = *++cursor_;
- if (yych == 'e') goto yy877;
+ if (yych == 'e') goto yy884;
goto yy87;
-yy764:
+yy771:
yych = *++cursor_;
- if (yych == 's') goto yy878;
+ if (yych == 's') goto yy885;
goto yy87;
-yy765:
+yy772:
yych = *++cursor_;
- if (yych == 'r') goto yy879;
+ if (yych == 'r') goto yy886;
goto yy87;
-yy766:
+yy773:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 358 "src/wast-lexer.cc"
+#line 361 "src/wast-lexer.cc"
{ OPCODE(F64Load); RETURN(LOAD); }
-#line 4526 "src/prebuilt/wast-lexer-gen.cc"
-yy768:
+#line 4867 "src/prebuilt/wast-lexer-gen.cc"
+yy775:
yych = *++cursor_;
- if (yych == 'e') goto yy881;
+ if (yych == 'e') goto yy888;
goto yy87;
-yy769:
+yy776:
yych = *++cursor_;
- if (yych == 'o') goto yy882;
+ if (yych == 'o') goto yy889;
goto yy87;
-yy770:
+yy777:
yych = *++cursor_;
- if (yych == 't') goto yy883;
+ if (yych == 't') goto yy890;
goto yy87;
-yy771:
+yy778:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 397 "src/wast-lexer.cc"
+#line 400 "src/wast-lexer.cc"
{ OPCODE(F64Sqrt); RETURN(UNARY); }
-#line 4546 "src/prebuilt/wast-lexer-gen.cc"
-yy773:
+#line 4887 "src/prebuilt/wast-lexer-gen.cc"
+yy780:
yych = *++cursor_;
- if (yych == 'e') goto yy884;
+ if (yych == 'e') goto yy891;
goto yy87;
-yy774:
+yy781:
yych = *++cursor_;
- if (yych == 'c') goto yy886;
+ if (yych == 'c') goto yy893;
goto yy87;
-yy775:
+yy782:
yych = *++cursor_;
- if (yych == 'a') goto yy888;
+ if (yych == 'a') goto yy895;
goto yy87;
-yy776:
+yy783:
yych = *++cursor_;
- if (yych == 'l') goto yy889;
+ if (yych == 'l') goto yy896;
goto yy87;
-yy777:
+yy784:
yych = *++cursor_;
- if (yych == 'o') goto yy891;
+ if (yych == 'o') goto yy898;
goto yy87;
-yy778:
+yy785:
yych = *++cursor_;
- if (yych == 't') goto yy892;
+ if (yych == 't') goto yy899;
goto yy87;
-yy779:
+yy786:
yych = *++cursor_;
- if (yych == 's') goto yy894;
- if (yych == 'u') goto yy896;
+ if (yych == 's') goto yy901;
+ if (yych == 'u') goto yy903;
goto yy87;
-yy780:
+yy787:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 466 "src/wast-lexer.cc"
+#line 469 "src/wast-lexer.cc"
{ OPCODE(I32GeS); RETURN(COMPARE); }
-#line 4583 "src/prebuilt/wast-lexer-gen.cc"
-yy782:
+#line 4924 "src/prebuilt/wast-lexer-gen.cc"
+yy789:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 468 "src/wast-lexer.cc"
+#line 471 "src/wast-lexer.cc"
{ OPCODE(I32GeU); RETURN(COMPARE); }
-#line 4591 "src/prebuilt/wast-lexer-gen.cc"
-yy784:
+#line 4932 "src/prebuilt/wast-lexer-gen.cc"
+yy791:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 462 "src/wast-lexer.cc"
+#line 465 "src/wast-lexer.cc"
{ OPCODE(I32GtS); RETURN(COMPARE); }
-#line 4599 "src/prebuilt/wast-lexer-gen.cc"
-yy786:
+#line 4940 "src/prebuilt/wast-lexer-gen.cc"
+yy793:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 464 "src/wast-lexer.cc"
+#line 467 "src/wast-lexer.cc"
{ OPCODE(I32GtU); RETURN(COMPARE); }
-#line 4607 "src/prebuilt/wast-lexer-gen.cc"
-yy788:
+#line 4948 "src/prebuilt/wast-lexer-gen.cc"
+yy795:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 458 "src/wast-lexer.cc"
+#line 461 "src/wast-lexer.cc"
{ OPCODE(I32LeS); RETURN(COMPARE); }
-#line 4615 "src/prebuilt/wast-lexer-gen.cc"
-yy790:
+#line 4956 "src/prebuilt/wast-lexer-gen.cc"
+yy797:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 460 "src/wast-lexer.cc"
+#line 463 "src/wast-lexer.cc"
{ OPCODE(I32LeU); RETURN(COMPARE); }
-#line 4623 "src/prebuilt/wast-lexer-gen.cc"
-yy792:
+#line 4964 "src/prebuilt/wast-lexer-gen.cc"
+yy799:
++cursor_;
if ((yych = *cursor_) <= '0') {
if (yych <= '"') {
@@ -4631,553 +4972,562 @@ yy792:
}
} else {
if (yych <= '8') {
- if (yych <= '1') goto yy898;
+ if (yych <= '1') goto yy905;
if (yych <= '7') goto yy86;
- goto yy899;
+ goto yy906;
} else {
- if (yych == ';') goto yy793;
+ if (yych == ';') goto yy800;
if (yych <= '~') goto yy86;
}
}
-yy793:
-#line 355 "src/wast-lexer.cc"
+yy800:
+#line 358 "src/wast-lexer.cc"
{ OPCODE(I32Load); RETURN(LOAD); }
-#line 4646 "src/prebuilt/wast-lexer-gen.cc"
-yy794:
+#line 4987 "src/prebuilt/wast-lexer-gen.cc"
+yy801:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 454 "src/wast-lexer.cc"
+#line 457 "src/wast-lexer.cc"
{ OPCODE(I32LtS); RETURN(COMPARE); }
-#line 4654 "src/prebuilt/wast-lexer-gen.cc"
-yy796:
+#line 4995 "src/prebuilt/wast-lexer-gen.cc"
+yy803:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 456 "src/wast-lexer.cc"
+#line 459 "src/wast-lexer.cc"
{ OPCODE(I32LtU); RETURN(COMPARE); }
-#line 4662 "src/prebuilt/wast-lexer-gen.cc"
-yy798:
+#line 5003 "src/prebuilt/wast-lexer-gen.cc"
+yy805:
yych = *++cursor_;
- if (yych == 'n') goto yy900;
+ if (yych == 'n') goto yy907;
goto yy87;
-yy799:
+yy806:
yych = *++cursor_;
- if (yych == 't') goto yy901;
+ if (yych == 't') goto yy908;
goto yy87;
-yy800:
+yy807:
yych = *++cursor_;
- if (yych == 's') goto yy902;
- if (yych == 'u') goto yy904;
+ if (yych == 's') goto yy909;
+ if (yych == 'u') goto yy911;
goto yy87;
-yy801:
+yy808:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 432 "src/wast-lexer.cc"
+#line 435 "src/wast-lexer.cc"
{ OPCODE(I32Rotl); RETURN(BINARY); }
-#line 4683 "src/prebuilt/wast-lexer-gen.cc"
-yy803:
+#line 5024 "src/prebuilt/wast-lexer-gen.cc"
+yy810:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 434 "src/wast-lexer.cc"
+#line 437 "src/wast-lexer.cc"
{ OPCODE(I32Rotr); RETURN(BINARY); }
-#line 4691 "src/prebuilt/wast-lexer-gen.cc"
-yy805:
+#line 5032 "src/prebuilt/wast-lexer-gen.cc"
+yy812:
yych = *++cursor_;
- if (yych == 's') goto yy906;
- if (yych == 'u') goto yy908;
+ if (yych == 's') goto yy913;
+ if (yych == 'u') goto yy915;
goto yy87;
-yy806:
+yy813:
yych = *++cursor_;
- if (yych == 'e') goto yy910;
+ if (yych == 'e') goto yy917;
goto yy87;
-yy807:
+yy814:
yych = *++cursor_;
- if (yych == 'c') goto yy912;
+ if (yych == 'c') goto yy919;
goto yy87;
-yy808:
+yy815:
yych = *++cursor_;
- if (yych == '/') goto yy913;
+ if (yych == '/') goto yy920;
goto yy87;
-yy809:
+yy816:
yych = *++cursor_;
- if (yych == 't') goto yy914;
+ if (yych == 't') goto yy921;
goto yy87;
-yy810:
+yy817:
yych = *++cursor_;
- if (yych == 's') goto yy916;
- if (yych == 'u') goto yy918;
+ if (yych == 's') goto yy923;
+ if (yych == 'u') goto yy925;
goto yy87;
-yy811:
+yy818:
yych = *++cursor_;
- if (yych == 'n') goto yy920;
+ if (yych == 'n') goto yy927;
goto yy87;
-yy812:
+yy819:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 467 "src/wast-lexer.cc"
+#line 470 "src/wast-lexer.cc"
{ OPCODE(I64GeS); RETURN(COMPARE); }
-#line 4729 "src/prebuilt/wast-lexer-gen.cc"
-yy814:
+#line 5070 "src/prebuilt/wast-lexer-gen.cc"
+yy821:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 469 "src/wast-lexer.cc"
+#line 472 "src/wast-lexer.cc"
{ OPCODE(I64GeU); RETURN(COMPARE); }
-#line 4737 "src/prebuilt/wast-lexer-gen.cc"
-yy816:
+#line 5078 "src/prebuilt/wast-lexer-gen.cc"
+yy823:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 463 "src/wast-lexer.cc"
+#line 466 "src/wast-lexer.cc"
{ OPCODE(I64GtS); RETURN(COMPARE); }
-#line 4745 "src/prebuilt/wast-lexer-gen.cc"
-yy818:
+#line 5086 "src/prebuilt/wast-lexer-gen.cc"
+yy825:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 465 "src/wast-lexer.cc"
+#line 468 "src/wast-lexer.cc"
{ OPCODE(I64GtU); RETURN(COMPARE); }
-#line 4753 "src/prebuilt/wast-lexer-gen.cc"
-yy820:
+#line 5094 "src/prebuilt/wast-lexer-gen.cc"
+yy827:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 459 "src/wast-lexer.cc"
+#line 462 "src/wast-lexer.cc"
{ OPCODE(I64LeS); RETURN(COMPARE); }
-#line 4761 "src/prebuilt/wast-lexer-gen.cc"
-yy822:
+#line 5102 "src/prebuilt/wast-lexer-gen.cc"
+yy829:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 461 "src/wast-lexer.cc"
+#line 464 "src/wast-lexer.cc"
{ OPCODE(I64LeU); RETURN(COMPARE); }
-#line 4769 "src/prebuilt/wast-lexer-gen.cc"
-yy824:
+#line 5110 "src/prebuilt/wast-lexer-gen.cc"
+yy831:
++cursor_;
if ((yych = *cursor_) <= '1') {
if (yych <= '"') {
if (yych == '!') goto yy86;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy825;
+ if (yych <= ')') goto yy832;
if (yych <= '0') goto yy86;
- goto yy921;
+ goto yy928;
}
} else {
if (yych <= '8') {
- if (yych == '3') goto yy922;
+ if (yych == '3') goto yy929;
if (yych <= '7') goto yy86;
- goto yy923;
+ goto yy930;
} else {
- if (yych == ';') goto yy825;
+ if (yych == ';') goto yy832;
if (yych <= '~') goto yy86;
}
}
-yy825:
-#line 356 "src/wast-lexer.cc"
+yy832:
+#line 359 "src/wast-lexer.cc"
{ OPCODE(I64Load); RETURN(LOAD); }
-#line 4794 "src/prebuilt/wast-lexer-gen.cc"
-yy826:
+#line 5135 "src/prebuilt/wast-lexer-gen.cc"
+yy833:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 455 "src/wast-lexer.cc"
+#line 458 "src/wast-lexer.cc"
{ OPCODE(I64LtS); RETURN(COMPARE); }
-#line 4802 "src/prebuilt/wast-lexer-gen.cc"
-yy828:
+#line 5143 "src/prebuilt/wast-lexer-gen.cc"
+yy835:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 457 "src/wast-lexer.cc"
+#line 460 "src/wast-lexer.cc"
{ OPCODE(I64LtU); RETURN(COMPARE); }
-#line 4810 "src/prebuilt/wast-lexer-gen.cc"
-yy830:
+#line 5151 "src/prebuilt/wast-lexer-gen.cc"
+yy837:
yych = *++cursor_;
- if (yych == 'n') goto yy924;
+ if (yych == 'n') goto yy931;
goto yy87;
-yy831:
+yy838:
yych = *++cursor_;
- if (yych == 't') goto yy925;
+ if (yych == 't') goto yy932;
goto yy87;
-yy832:
+yy839:
yych = *++cursor_;
- if (yych == 's') goto yy926;
- if (yych == 'u') goto yy928;
+ if (yych == 's') goto yy933;
+ if (yych == 'u') goto yy935;
goto yy87;
-yy833:
+yy840:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 433 "src/wast-lexer.cc"
+#line 436 "src/wast-lexer.cc"
{ OPCODE(I64Rotl); RETURN(BINARY); }
-#line 4831 "src/prebuilt/wast-lexer-gen.cc"
-yy835:
+#line 5172 "src/prebuilt/wast-lexer-gen.cc"
+yy842:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 435 "src/wast-lexer.cc"
+#line 438 "src/wast-lexer.cc"
{ OPCODE(I64Rotr); RETURN(BINARY); }
-#line 4839 "src/prebuilt/wast-lexer-gen.cc"
-yy837:
+#line 5180 "src/prebuilt/wast-lexer-gen.cc"
+yy844:
yych = *++cursor_;
- if (yych == 's') goto yy930;
- if (yych == 'u') goto yy932;
+ if (yych == 's') goto yy937;
+ if (yych == 'u') goto yy939;
goto yy87;
-yy838:
+yy845:
yych = *++cursor_;
- if (yych == 'e') goto yy934;
+ if (yych == 'e') goto yy941;
goto yy87;
-yy839:
+yy846:
yych = *++cursor_;
- if (yych == 'c') goto yy936;
+ if (yych == 'c') goto yy943;
goto yy87;
-yy840:
+yy847:
++cursor_;
- if ((yych = *cursor_) <= '/') {
+ if ((yych = *cursor_) <= '9') {
if (yych <= '"') {
if (yych == '!') goto yy86;
} else {
if (yych <= '\'') goto yy86;
- if (yych >= '*') goto yy86;
+ if (yych <= ')') goto yy848;
+ if (yych <= '/') goto yy86;
+ goto yy849;
}
} else {
- if (yych <= ';') {
- if (yych <= '9') goto yy842;
- if (yych <= ':') goto yy86;
+ if (yych <= '_') {
+ if (yych == ';') goto yy848;
+ if (yych <= '^') goto yy86;
+ goto yy944;
} else {
- if (yych == 'x') goto yy937;
+ if (yych == 'x') goto yy945;
if (yych <= '~') goto yy86;
}
}
-yy841:
-#line 378 "src/wast-lexer.cc"
+yy848:
+#line 381 "src/wast-lexer.cc"
{ SetTextAt(7); RETURN(OFFSET_EQ_NAT); }
-#line 4874 "src/prebuilt/wast-lexer-gen.cc"
-yy842:
+#line 5218 "src/prebuilt/wast-lexer-gen.cc"
+yy849:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
- if (yych <= ')') {
- if (yych <= '!') {
- if (yych <= ' ') goto yy841;
- goto yy86;
+ if (yych <= '/') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy86;
+ goto yy848;
} else {
- if (yych <= '"') goto yy841;
if (yych <= '\'') goto yy86;
- goto yy841;
+ if (yych <= ')') goto yy848;
+ goto yy86;
}
} else {
- if (yych <= ':') {
- if (yych <= '/') goto yy86;
- if (yych <= '9') goto yy842;
- goto yy86;
+ if (yych <= ';') {
+ if (yych <= '9') goto yy849;
+ if (yych <= ':') goto yy86;
+ goto yy848;
} else {
- if (yych <= ';') goto yy841;
+ if (yych == '_') goto yy944;
if (yych <= '~') goto yy86;
- goto yy841;
+ goto yy848;
}
}
-yy844:
+yy851:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 529 "src/wast-lexer.cc"
+#line 532 "src/wast-lexer.cc"
{ RETURN(REGISTER); }
-#line 4906 "src/prebuilt/wast-lexer-gen.cc"
-yy846:
+#line 5250 "src/prebuilt/wast-lexer-gen.cc"
+yy853:
yych = *++cursor_;
- if (yych == 'a') goto yy938;
+ if (yych == 'a') goto yy946;
goto yy87;
-yy847:
+yy854:
yych = *++cursor_;
- if (yych == 'l') goto yy939;
+ if (yych == 'l') goto yy947;
goto yy87;
-yy848:
+yy855:
yych = *++cursor_;
- if (yych == 'l') goto yy941;
+ if (yych == 'l') goto yy949;
goto yy87;
-yy849:
+yy856:
yych = *++cursor_;
- if (yych == 'b') goto yy943;
+ if (yych == 'b') goto yy951;
goto yy87;
-yy850:
+yy857:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
- if (yych <= '9') {
- if (yych <= '"') {
+ if (yych <= ':') {
+ if (yych <= '\'') {
if (yych == '!') goto yy86;
- goto yy590;
+ if (yych <= '"') goto yy596;
+ goto yy86;
} else {
- if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy590;
+ if (yych <= ')') goto yy596;
if (yych <= '/') goto yy86;
- goto yy850;
+ if (yych <= '9') goto yy857;
+ goto yy86;
}
} else {
- if (yych <= 'F') {
- if (yych == ';') goto yy590;
+ if (yych <= '^') {
+ if (yych <= ';') goto yy596;
if (yych <= '@') goto yy86;
- goto yy850;
+ if (yych <= 'F') goto yy857;
+ goto yy86;
} else {
- if (yych <= '`') goto yy86;
- if (yych <= 'f') goto yy850;
- if (yych <= '~') goto yy86;
- goto yy590;
+ if (yych <= '`') {
+ if (yych <= '_') goto yy740;
+ goto yy86;
+ } else {
+ if (yych <= 'f') goto yy857;
+ if (yych <= '~') goto yy86;
+ goto yy596;
+ }
}
}
-yy852:
+yy859:
yych = *++cursor_;
- if (yych == 'h') goto yy944;
+ if (yych == 'h') goto yy952;
goto yy87;
-yy853:
+yy860:
yych = *++cursor_;
- if (yych == 'v') goto yy945;
+ if (yych == 'v') goto yy953;
goto yy87;
-yy854:
+yy861:
yych = *++cursor_;
- if (yych == 'l') goto yy946;
+ if (yych == 'l') goto yy954;
goto yy87;
-yy855:
+yy862:
yych = *++cursor_;
- if (yych == 't') goto yy947;
+ if (yych == 't') goto yy955;
goto yy87;
-yy856:
+yy863:
yych = *++cursor_;
- if (yych == 'a') goto yy948;
+ if (yych == 'a') goto yy956;
goto yy87;
-yy857:
+yy864:
yych = *++cursor_;
- if (yych == 'l') goto yy949;
+ if (yych == 'l') goto yy957;
goto yy87;
-yy858:
+yy865:
yych = *++cursor_;
- if (yych == 'r') goto yy950;
+ if (yych == 'r') goto yy958;
goto yy87;
-yy859:
+yy866:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 544 "src/wast-lexer.cc"
+#line 547 "src/wast-lexer.cc"
{ RETURN_LPAR(CATCH_ALL); }
-#line 4984 "src/prebuilt/wast-lexer-gen.cc"
-yy861:
+#line 5334 "src/prebuilt/wast-lexer-gen.cc"
+yy868:
yych = *++cursor_;
- if (yych == 'e') goto yy951;
+ if (yych == 'e') goto yy959;
goto yy87;
-yy862:
+yy869:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 382 "src/wast-lexer.cc"
+#line 385 "src/wast-lexer.cc"
{ TYPE(F32); RETURN(CONST); }
-#line 4996 "src/prebuilt/wast-lexer-gen.cc"
-yy864:
+#line 5346 "src/prebuilt/wast-lexer-gen.cc"
+yy871:
yych = *++cursor_;
- if (yych == 'r') goto yy952;
+ if (yych == 'r') goto yy960;
goto yy87;
-yy865:
+yy872:
yych = *++cursor_;
- if (yych == 'i') goto yy953;
+ if (yych == 'i') goto yy961;
goto yy87;
-yy866:
+yy873:
yych = *++cursor_;
- if (yych == 'e') goto yy954;
+ if (yych == 'e') goto yy962;
goto yy87;
-yy867:
+yy874:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 400 "src/wast-lexer.cc"
+#line 403 "src/wast-lexer.cc"
{ OPCODE(F32Floor); RETURN(UNARY); }
-#line 5016 "src/prebuilt/wast-lexer-gen.cc"
-yy869:
+#line 5366 "src/prebuilt/wast-lexer-gen.cc"
+yy876:
yych = *++cursor_;
- if (yych == 's') goto yy955;
+ if (yych == 's') goto yy963;
goto yy87;
-yy870:
+yy877:
yych = *++cursor_;
- if (yych == 'e') goto yy956;
+ if (yych == 'e') goto yy964;
goto yy87;
-yy871:
+yy878:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 361 "src/wast-lexer.cc"
+#line 364 "src/wast-lexer.cc"
{ OPCODE(F32Store); RETURN(STORE); }
-#line 5032 "src/prebuilt/wast-lexer-gen.cc"
-yy873:
+#line 5382 "src/prebuilt/wast-lexer-gen.cc"
+yy880:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 402 "src/wast-lexer.cc"
+#line 405 "src/wast-lexer.cc"
{ OPCODE(F32Trunc); RETURN(UNARY); }
-#line 5040 "src/prebuilt/wast-lexer-gen.cc"
-yy875:
+#line 5390 "src/prebuilt/wast-lexer-gen.cc"
+yy882:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 383 "src/wast-lexer.cc"
+#line 386 "src/wast-lexer.cc"
{ TYPE(F64); RETURN(CONST); }
-#line 5048 "src/prebuilt/wast-lexer-gen.cc"
-yy877:
+#line 5398 "src/prebuilt/wast-lexer-gen.cc"
+yy884:
yych = *++cursor_;
- if (yych == 'r') goto yy957;
+ if (yych == 'r') goto yy965;
goto yy87;
-yy878:
+yy885:
yych = *++cursor_;
- if (yych == 'i') goto yy958;
+ if (yych == 'i') goto yy966;
goto yy87;
-yy879:
+yy886:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 401 "src/wast-lexer.cc"
+#line 404 "src/wast-lexer.cc"
{ OPCODE(F64Floor); RETURN(UNARY); }
-#line 5064 "src/prebuilt/wast-lexer-gen.cc"
-yy881:
+#line 5414 "src/prebuilt/wast-lexer-gen.cc"
+yy888:
yych = *++cursor_;
- if (yych == 's') goto yy959;
+ if (yych == 's') goto yy967;
goto yy87;
-yy882:
+yy889:
yych = *++cursor_;
- if (yych == 't') goto yy960;
+ if (yych == 't') goto yy968;
goto yy87;
-yy883:
+yy890:
yych = *++cursor_;
- if (yych == 'e') goto yy961;
+ if (yych == 'e') goto yy969;
goto yy87;
-yy884:
+yy891:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 362 "src/wast-lexer.cc"
+#line 365 "src/wast-lexer.cc"
{ OPCODE(F64Store); RETURN(STORE); }
-#line 5084 "src/prebuilt/wast-lexer-gen.cc"
-yy886:
+#line 5434 "src/prebuilt/wast-lexer-gen.cc"
+yy893:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 403 "src/wast-lexer.cc"
+#line 406 "src/wast-lexer.cc"
{ OPCODE(F64Trunc); RETURN(UNARY); }
-#line 5092 "src/prebuilt/wast-lexer-gen.cc"
-yy888:
+#line 5442 "src/prebuilt/wast-lexer-gen.cc"
+yy895:
yych = *++cursor_;
- if (yych == 'l') goto yy962;
+ if (yych == 'l') goto yy970;
goto yy87;
-yy889:
+yy896:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 350 "src/wast-lexer.cc"
+#line 353 "src/wast-lexer.cc"
{ RETURN(GET_LOCAL); }
-#line 5104 "src/prebuilt/wast-lexer-gen.cc"
-yy891:
+#line 5454 "src/prebuilt/wast-lexer-gen.cc"
+yy898:
yych = *++cursor_;
- if (yych == 'r') goto yy964;
+ if (yych == 'r') goto yy972;
goto yy87;
-yy892:
+yy899:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 380 "src/wast-lexer.cc"
+#line 383 "src/wast-lexer.cc"
{ TYPE(I32); RETURN(CONST); }
-#line 5116 "src/prebuilt/wast-lexer-gen.cc"
-yy894:
+#line 5466 "src/prebuilt/wast-lexer-gen.cc"
+yy901:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 412 "src/wast-lexer.cc"
+#line 415 "src/wast-lexer.cc"
{ OPCODE(I32DivS); RETURN(BINARY); }
-#line 5124 "src/prebuilt/wast-lexer-gen.cc"
-yy896:
+#line 5474 "src/prebuilt/wast-lexer-gen.cc"
+yy903:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 414 "src/wast-lexer.cc"
+#line 417 "src/wast-lexer.cc"
{ OPCODE(I32DivU); RETURN(BINARY); }
-#line 5132 "src/prebuilt/wast-lexer-gen.cc"
-yy898:
+#line 5482 "src/prebuilt/wast-lexer-gen.cc"
+yy905:
yych = *++cursor_;
- if (yych == '6') goto yy965;
+ if (yych == '6') goto yy973;
goto yy87;
-yy899:
+yy906:
yych = *++cursor_;
- if (yych == '_') goto yy966;
+ if (yych == '_') goto yy974;
goto yy87;
-yy900:
+yy907:
yych = *++cursor_;
- if (yych == 't') goto yy967;
+ if (yych == 't') goto yy975;
goto yy87;
-yy901:
+yy908:
yych = *++cursor_;
- if (yych == 'e') goto yy969;
+ if (yych == 'e') goto yy977;
goto yy87;
-yy902:
+yy909:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 416 "src/wast-lexer.cc"
+#line 419 "src/wast-lexer.cc"
{ OPCODE(I32RemS); RETURN(BINARY); }
-#line 5156 "src/prebuilt/wast-lexer-gen.cc"
-yy904:
+#line 5506 "src/prebuilt/wast-lexer-gen.cc"
+yy911:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 418 "src/wast-lexer.cc"
+#line 421 "src/wast-lexer.cc"
{ OPCODE(I32RemU); RETURN(BINARY); }
-#line 5164 "src/prebuilt/wast-lexer-gen.cc"
-yy906:
+#line 5514 "src/prebuilt/wast-lexer-gen.cc"
+yy913:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 428 "src/wast-lexer.cc"
+#line 431 "src/wast-lexer.cc"
{ OPCODE(I32ShrS); RETURN(BINARY); }
-#line 5172 "src/prebuilt/wast-lexer-gen.cc"
-yy908:
+#line 5522 "src/prebuilt/wast-lexer-gen.cc"
+yy915:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 430 "src/wast-lexer.cc"
+#line 433 "src/wast-lexer.cc"
{ OPCODE(I32ShrU); RETURN(BINARY); }
-#line 5180 "src/prebuilt/wast-lexer-gen.cc"
-yy910:
+#line 5530 "src/prebuilt/wast-lexer-gen.cc"
+yy917:
++cursor_;
if ((yych = *cursor_) <= '0') {
if (yych <= '"') {
@@ -5188,1454 +5538,1498 @@ yy910:
}
} else {
if (yych <= '8') {
- if (yych <= '1') goto yy970;
+ if (yych <= '1') goto yy978;
if (yych <= '7') goto yy86;
- goto yy971;
+ goto yy979;
} else {
- if (yych == ';') goto yy911;
+ if (yych == ';') goto yy918;
if (yych <= '~') goto yy86;
}
}
-yy911:
-#line 359 "src/wast-lexer.cc"
+yy918:
+#line 362 "src/wast-lexer.cc"
{ OPCODE(I32Store); RETURN(STORE); }
-#line 5203 "src/prebuilt/wast-lexer-gen.cc"
-yy912:
+#line 5553 "src/prebuilt/wast-lexer-gen.cc"
+yy919:
yych = *++cursor_;
- if (yych == '_') goto yy973;
+ if (yych == '_') goto yy981;
goto yy87;
-yy913:
+yy920:
yych = *++cursor_;
- if (yych == 'i') goto yy974;
+ if (yych == 'i') goto yy982;
goto yy87;
-yy914:
+yy921:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 381 "src/wast-lexer.cc"
+#line 384 "src/wast-lexer.cc"
{ TYPE(I64); RETURN(CONST); }
-#line 5219 "src/prebuilt/wast-lexer-gen.cc"
-yy916:
+#line 5569 "src/prebuilt/wast-lexer-gen.cc"
+yy923:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 413 "src/wast-lexer.cc"
+#line 416 "src/wast-lexer.cc"
{ OPCODE(I64DivS); RETURN(BINARY); }
-#line 5227 "src/prebuilt/wast-lexer-gen.cc"
-yy918:
+#line 5577 "src/prebuilt/wast-lexer-gen.cc"
+yy925:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 415 "src/wast-lexer.cc"
+#line 418 "src/wast-lexer.cc"
{ OPCODE(I64DivU); RETURN(BINARY); }
-#line 5235 "src/prebuilt/wast-lexer-gen.cc"
-yy920:
+#line 5585 "src/prebuilt/wast-lexer-gen.cc"
+yy927:
yych = *++cursor_;
- if (yych == 'd') goto yy975;
+ if (yych == 'd') goto yy983;
goto yy87;
-yy921:
+yy928:
yych = *++cursor_;
- if (yych == '6') goto yy976;
+ if (yych == '6') goto yy984;
goto yy87;
-yy922:
+yy929:
yych = *++cursor_;
- if (yych == '2') goto yy977;
+ if (yych == '2') goto yy985;
goto yy87;
-yy923:
+yy930:
yych = *++cursor_;
- if (yych == '_') goto yy978;
+ if (yych == '_') goto yy986;
goto yy87;
-yy924:
+yy931:
yych = *++cursor_;
- if (yych == 't') goto yy979;
+ if (yych == 't') goto yy987;
goto yy87;
-yy925:
+yy932:
yych = *++cursor_;
- if (yych == 'e') goto yy981;
+ if (yych == 'e') goto yy989;
goto yy87;
-yy926:
+yy933:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 417 "src/wast-lexer.cc"
+#line 420 "src/wast-lexer.cc"
{ OPCODE(I64RemS); RETURN(BINARY); }
-#line 5267 "src/prebuilt/wast-lexer-gen.cc"
-yy928:
+#line 5617 "src/prebuilt/wast-lexer-gen.cc"
+yy935:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 419 "src/wast-lexer.cc"
+#line 422 "src/wast-lexer.cc"
{ OPCODE(I64RemU); RETURN(BINARY); }
-#line 5275 "src/prebuilt/wast-lexer-gen.cc"
-yy930:
+#line 5625 "src/prebuilt/wast-lexer-gen.cc"
+yy937:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 429 "src/wast-lexer.cc"
+#line 432 "src/wast-lexer.cc"
{ OPCODE(I64ShrS); RETURN(BINARY); }
-#line 5283 "src/prebuilt/wast-lexer-gen.cc"
-yy932:
+#line 5633 "src/prebuilt/wast-lexer-gen.cc"
+yy939:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 431 "src/wast-lexer.cc"
+#line 434 "src/wast-lexer.cc"
{ OPCODE(I64ShrU); RETURN(BINARY); }
-#line 5291 "src/prebuilt/wast-lexer-gen.cc"
-yy934:
+#line 5641 "src/prebuilt/wast-lexer-gen.cc"
+yy941:
++cursor_;
if ((yych = *cursor_) <= '1') {
if (yych <= '"') {
if (yych == '!') goto yy86;
} else {
if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy935;
+ if (yych <= ')') goto yy942;
if (yych <= '0') goto yy86;
- goto yy982;
+ goto yy990;
}
} else {
if (yych <= '8') {
- if (yych == '3') goto yy983;
+ if (yych == '3') goto yy991;
if (yych <= '7') goto yy86;
- goto yy984;
+ goto yy992;
} else {
- if (yych == ';') goto yy935;
+ if (yych == ';') goto yy942;
if (yych <= '~') goto yy86;
}
}
-yy935:
-#line 360 "src/wast-lexer.cc"
+yy942:
+#line 363 "src/wast-lexer.cc"
{ OPCODE(I64Store); RETURN(STORE); }
-#line 5316 "src/prebuilt/wast-lexer-gen.cc"
-yy936:
+#line 5666 "src/prebuilt/wast-lexer-gen.cc"
+yy943:
yych = *++cursor_;
- if (yych == '_') goto yy986;
+ if (yych == '_') goto yy994;
goto yy87;
-yy937:
- yych = *++cursor_;
- if (yych <= '@') {
- if (yych <= '/') goto yy87;
- if (yych <= '9') goto yy987;
- goto yy87;
+yy944:
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= ')') {
+ if (yych <= '!') {
+ if (yych <= ' ') goto yy88;
+ goto yy86;
+ } else {
+ if (yych <= '"') goto yy88;
+ if (yych <= '\'') goto yy86;
+ goto yy88;
+ }
} else {
- if (yych <= 'F') goto yy987;
- if (yych <= '`') goto yy87;
- if (yych <= 'f') goto yy987;
- goto yy87;
+ if (yych <= ':') {
+ if (yych <= '/') goto yy86;
+ if (yych <= '9') goto yy849;
+ goto yy86;
+ } else {
+ if (yych <= ';') goto yy88;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
+ }
+yy945:
+ ++cursor_;
+ if (limit_ <= cursor_) FILL(1);
+ yych = *cursor_;
+ if (yych <= '9') {
+ if (yych <= '"') {
+ if (yych == '!') goto yy86;
+ goto yy88;
+ } else {
+ if (yych <= '\'') goto yy86;
+ if (yych <= ')') goto yy88;
+ if (yych <= '/') goto yy86;
+ goto yy995;
+ }
+ } else {
+ if (yych <= 'F') {
+ if (yych == ';') goto yy88;
+ if (yych <= '@') goto yy86;
+ goto yy995;
+ } else {
+ if (yych <= '`') goto yy86;
+ if (yych <= 'f') goto yy995;
+ if (yych <= '~') goto yy86;
+ goto yy88;
+ }
}
-yy938:
+yy946:
yych = *++cursor_;
- if (yych == 'l') goto yy989;
+ if (yych == 'l') goto yy997;
goto yy87;
-yy939:
+yy947:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 351 "src/wast-lexer.cc"
+#line 354 "src/wast-lexer.cc"
{ RETURN(SET_LOCAL); }
-#line 5344 "src/prebuilt/wast-lexer-gen.cc"
-yy941:
+#line 5732 "src/prebuilt/wast-lexer-gen.cc"
+yy949:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 352 "src/wast-lexer.cc"
+#line 355 "src/wast-lexer.cc"
{ RETURN(TEE_LOCAL); }
-#line 5352 "src/prebuilt/wast-lexer-gen.cc"
-yy943:
+#line 5740 "src/prebuilt/wast-lexer-gen.cc"
+yy951:
yych = *++cursor_;
- if (yych == 'l') goto yy991;
+ if (yych == 'l') goto yy999;
goto yy87;
-yy944:
+yy952:
yych = *++cursor_;
- if (yych == 'a') goto yy992;
+ if (yych == 'a') goto yy1000;
goto yy87;
-yy945:
+yy953:
yych = *++cursor_;
- if (yych == 'a') goto yy993;
+ if (yych == 'a') goto yy1001;
goto yy87;
-yy946:
+yy954:
yych = *++cursor_;
- if (yych == 'f') goto yy994;
+ if (yych == 'f') goto yy1002;
goto yy87;
-yy947:
+yy955:
yych = *++cursor_;
- if (yych == 'u') goto yy995;
+ if (yych == 'u') goto yy1003;
goto yy87;
-yy948:
+yy956:
yych = *++cursor_;
- if (yych == 'p') goto yy996;
+ if (yych == 'p') goto yy1004;
goto yy87;
-yy949:
+yy957:
yych = *++cursor_;
- if (yych == 'i') goto yy998;
+ if (yych == 'i') goto yy1006;
goto yy87;
-yy950:
+yy958:
yych = *++cursor_;
- if (yych == 'e') goto yy999;
+ if (yych == 'e') goto yy1007;
goto yy87;
-yy951:
+yy959:
yych = *++cursor_;
- if (yych == 'm') goto yy1000;
+ if (yych == 'm') goto yy1008;
goto yy87;
-yy952:
+yy960:
yych = *++cursor_;
- if (yych == 't') goto yy1001;
+ if (yych == 't') goto yy1009;
goto yy87;
-yy953:
+yy961:
yych = *++cursor_;
- if (yych == 'g') goto yy1002;
+ if (yych == 'g') goto yy1010;
goto yy87;
-yy954:
+yy962:
yych = *++cursor_;
- if (yych == '/') goto yy1003;
+ if (yych == '/') goto yy1011;
goto yy87;
-yy955:
+yy963:
yych = *++cursor_;
- if (yych == 't') goto yy1004;
+ if (yych == 't') goto yy1012;
goto yy87;
-yy956:
+yy964:
yych = *++cursor_;
- if (yych == 'r') goto yy1006;
+ if (yych == 'r') goto yy1014;
goto yy87;
-yy957:
+yy965:
yych = *++cursor_;
- if (yych == 't') goto yy1007;
+ if (yych == 't') goto yy1015;
goto yy87;
-yy958:
+yy966:
yych = *++cursor_;
- if (yych == 'g') goto yy1008;
+ if (yych == 'g') goto yy1016;
goto yy87;
-yy959:
+yy967:
yych = *++cursor_;
- if (yych == 't') goto yy1009;
+ if (yych == 't') goto yy1017;
goto yy87;
-yy960:
+yy968:
yych = *++cursor_;
- if (yych == 'e') goto yy1011;
+ if (yych == 'e') goto yy1019;
goto yy87;
-yy961:
+yy969:
yych = *++cursor_;
- if (yych == 'r') goto yy1012;
+ if (yych == 'r') goto yy1020;
goto yy87;
-yy962:
+yy970:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 353 "src/wast-lexer.cc"
+#line 356 "src/wast-lexer.cc"
{ RETURN(GET_GLOBAL); }
-#line 5436 "src/prebuilt/wast-lexer-gen.cc"
-yy964:
+#line 5824 "src/prebuilt/wast-lexer-gen.cc"
+yy972:
yych = *++cursor_;
- if (yych == 'y') goto yy1013;
+ if (yych == 'y') goto yy1021;
goto yy87;
-yy965:
+yy973:
yych = *++cursor_;
- if (yych == '_') goto yy1015;
+ if (yych == '_') goto yy1023;
goto yy87;
-yy966:
+yy974:
yych = *++cursor_;
- if (yych == 's') goto yy1016;
- if (yych == 'u') goto yy1018;
+ if (yych == 's') goto yy1024;
+ if (yych == 'u') goto yy1026;
goto yy87;
-yy967:
+yy975:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 390 "src/wast-lexer.cc"
+#line 393 "src/wast-lexer.cc"
{ OPCODE(I32Popcnt); RETURN(UNARY); }
-#line 5457 "src/prebuilt/wast-lexer-gen.cc"
-yy969:
+#line 5845 "src/prebuilt/wast-lexer-gen.cc"
+yy977:
yych = *++cursor_;
- if (yych == 'r') goto yy1020;
+ if (yych == 'r') goto yy1028;
goto yy87;
-yy970:
+yy978:
yych = *++cursor_;
- if (yych == '6') goto yy1021;
+ if (yych == '6') goto yy1029;
goto yy87;
-yy971:
+yy979:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 373 "src/wast-lexer.cc"
+#line 376 "src/wast-lexer.cc"
{ OPCODE(I32Store8); RETURN(STORE); }
-#line 5473 "src/prebuilt/wast-lexer-gen.cc"
-yy973:
+#line 5861 "src/prebuilt/wast-lexer-gen.cc"
+yy981:
yych = *++cursor_;
- if (yych == 's') goto yy1023;
- if (yych == 'u') goto yy1024;
+ if (yych == 's') goto yy1031;
+ if (yych == 'u') goto yy1032;
goto yy87;
-yy974:
+yy982:
yych = *++cursor_;
- if (yych == '6') goto yy1025;
+ if (yych == '6') goto yy1033;
goto yy87;
-yy975:
+yy983:
yych = *++cursor_;
- if (yych == '_') goto yy1026;
+ if (yych == '_') goto yy1034;
goto yy87;
-yy976:
+yy984:
yych = *++cursor_;
- if (yych == '_') goto yy1027;
+ if (yych == '_') goto yy1035;
goto yy87;
-yy977:
+yy985:
yych = *++cursor_;
- if (yych == '_') goto yy1028;
+ if (yych == '_') goto yy1036;
goto yy87;
-yy978:
+yy986:
yych = *++cursor_;
- if (yych == 's') goto yy1029;
- if (yych == 'u') goto yy1031;
+ if (yych == 's') goto yy1037;
+ if (yych == 'u') goto yy1039;
goto yy87;
-yy979:
+yy987:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 391 "src/wast-lexer.cc"
+#line 394 "src/wast-lexer.cc"
{ OPCODE(I64Popcnt); RETURN(UNARY); }
-#line 5507 "src/prebuilt/wast-lexer-gen.cc"
-yy981:
+#line 5895 "src/prebuilt/wast-lexer-gen.cc"
+yy989:
yych = *++cursor_;
- if (yych == 'r') goto yy1033;
+ if (yych == 'r') goto yy1041;
goto yy87;
-yy982:
+yy990:
yych = *++cursor_;
- if (yych == '6') goto yy1034;
+ if (yych == '6') goto yy1042;
goto yy87;
-yy983:
+yy991:
yych = *++cursor_;
- if (yych == '2') goto yy1036;
+ if (yych == '2') goto yy1044;
goto yy87;
-yy984:
+yy992:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 374 "src/wast-lexer.cc"
+#line 377 "src/wast-lexer.cc"
{ OPCODE(I64Store8); RETURN(STORE); }
-#line 5527 "src/prebuilt/wast-lexer-gen.cc"
-yy986:
+#line 5915 "src/prebuilt/wast-lexer-gen.cc"
+yy994:
yych = *++cursor_;
- if (yych == 's') goto yy1038;
- if (yych == 'u') goto yy1039;
+ if (yych == 's') goto yy1046;
+ if (yych == 'u') goto yy1047;
goto yy87;
-yy987:
+yy995:
++cursor_;
if (limit_ <= cursor_) FILL(1);
yych = *cursor_;
- if (yych <= '9') {
- if (yych <= '"') {
+ if (yych <= ':') {
+ if (yych <= '\'') {
if (yych == '!') goto yy86;
- goto yy841;
+ if (yych <= '"') goto yy848;
+ goto yy86;
} else {
- if (yych <= '\'') goto yy86;
- if (yych <= ')') goto yy841;
+ if (yych <= ')') goto yy848;
if (yych <= '/') goto yy86;
- goto yy987;
+ if (yych <= '9') goto yy995;
+ goto yy86;
}
} else {
- if (yych <= 'F') {
- if (yych == ';') goto yy841;
+ if (yych <= '^') {
+ if (yych <= ';') goto yy848;
if (yych <= '@') goto yy86;
- goto yy987;
+ if (yych <= 'F') goto yy995;
+ goto yy86;
} else {
- if (yych <= '`') goto yy86;
- if (yych <= 'f') goto yy987;
- if (yych <= '~') goto yy86;
- goto yy841;
+ if (yych <= '`') {
+ if (yych <= '_') goto yy945;
+ goto yy86;
+ } else {
+ if (yych <= 'f') goto yy995;
+ if (yych <= '~') goto yy86;
+ goto yy848;
+ }
}
}
-yy989:
+yy997:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 354 "src/wast-lexer.cc"
+#line 357 "src/wast-lexer.cc"
{ RETURN(SET_GLOBAL); }
-#line 5566 "src/prebuilt/wast-lexer-gen.cc"
-yy991:
+#line 5960 "src/prebuilt/wast-lexer-gen.cc"
+yy999:
yych = *++cursor_;
- if (yych == 'e') goto yy1040;
+ if (yych == 'e') goto yy1048;
goto yy87;
-yy992:
+yy1000:
yych = *++cursor_;
- if (yych == 'u') goto yy1042;
+ if (yych == 'u') goto yy1050;
goto yy87;
-yy993:
+yy1001:
yych = *++cursor_;
- if (yych == 'l') goto yy1043;
+ if (yych == 'l') goto yy1051;
goto yy87;
-yy994:
+yy1002:
yych = *++cursor_;
- if (yych == 'o') goto yy1044;
+ if (yych == 'o') goto yy1052;
goto yy87;
-yy995:
+yy1003:
yych = *++cursor_;
- if (yych == 'r') goto yy1045;
+ if (yych == 'r') goto yy1053;
goto yy87;
-yy996:
+yy1004:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 540 "src/wast-lexer.cc"
+#line 543 "src/wast-lexer.cc"
{ RETURN(ASSERT_TRAP); }
-#line 5594 "src/prebuilt/wast-lexer-gen.cc"
-yy998:
+#line 5988 "src/prebuilt/wast-lexer-gen.cc"
+yy1006:
yych = *++cursor_;
- if (yych == 'n') goto yy1046;
+ if (yych == 'n') goto yy1054;
goto yy87;
-yy999:
+yy1007:
yych = *++cursor_;
- if (yych == 'c') goto yy1047;
+ if (yych == 'c') goto yy1055;
goto yy87;
-yy1000:
+yy1008:
yych = *++cursor_;
- if (yych == 'o') goto yy1048;
+ if (yych == 'o') goto yy1056;
goto yy87;
-yy1001:
+yy1009:
yych = *++cursor_;
- if (yych == '_') goto yy1049;
+ if (yych == '_') goto yy1057;
goto yy87;
-yy1002:
+yy1010:
yych = *++cursor_;
- if (yych == 'n') goto yy1050;
+ if (yych == 'n') goto yy1058;
goto yy87;
-yy1003:
+yy1011:
yych = *++cursor_;
- if (yych == 'f') goto yy1052;
+ if (yych == 'f') goto yy1060;
goto yy87;
-yy1004:
+yy1012:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 404 "src/wast-lexer.cc"
+#line 407 "src/wast-lexer.cc"
{ OPCODE(F32Nearest); RETURN(UNARY); }
-#line 5626 "src/prebuilt/wast-lexer-gen.cc"
-yy1006:
+#line 6020 "src/prebuilt/wast-lexer-gen.cc"
+yy1014:
yych = *++cursor_;
- if (yych == 'p') goto yy1053;
+ if (yych == 'p') goto yy1061;
goto yy87;
-yy1007:
+yy1015:
yych = *++cursor_;
- if (yych == '_') goto yy1054;
+ if (yych == '_') goto yy1062;
goto yy87;
-yy1008:
+yy1016:
yych = *++cursor_;
- if (yych == 'n') goto yy1055;
+ if (yych == 'n') goto yy1063;
goto yy87;
-yy1009:
+yy1017:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 405 "src/wast-lexer.cc"
+#line 408 "src/wast-lexer.cc"
{ OPCODE(F64Nearest); RETURN(UNARY); }
-#line 5646 "src/prebuilt/wast-lexer-gen.cc"
-yy1011:
+#line 6040 "src/prebuilt/wast-lexer-gen.cc"
+yy1019:
yych = *++cursor_;
- if (yych == '/') goto yy1057;
+ if (yych == '/') goto yy1065;
goto yy87;
-yy1012:
+yy1020:
yych = *++cursor_;
- if (yych == 'p') goto yy1058;
+ if (yych == 'p') goto yy1066;
goto yy87;
-yy1013:
+yy1021:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 510 "src/wast-lexer.cc"
+#line 513 "src/wast-lexer.cc"
{ RETURN(GROW_MEMORY); }
-#line 5662 "src/prebuilt/wast-lexer-gen.cc"
-yy1015:
+#line 6056 "src/prebuilt/wast-lexer-gen.cc"
+yy1023:
yych = *++cursor_;
- if (yych == 's') goto yy1059;
- if (yych == 'u') goto yy1061;
+ if (yych == 's') goto yy1067;
+ if (yych == 'u') goto yy1069;
goto yy87;
-yy1016:
+yy1024:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 363 "src/wast-lexer.cc"
+#line 366 "src/wast-lexer.cc"
{ OPCODE(I32Load8S); RETURN(LOAD); }
-#line 5675 "src/prebuilt/wast-lexer-gen.cc"
-yy1018:
+#line 6069 "src/prebuilt/wast-lexer-gen.cc"
+yy1026:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 365 "src/wast-lexer.cc"
+#line 368 "src/wast-lexer.cc"
{ OPCODE(I32Load8U); RETURN(LOAD); }
-#line 5683 "src/prebuilt/wast-lexer-gen.cc"
-yy1020:
+#line 6077 "src/prebuilt/wast-lexer-gen.cc"
+yy1028:
yych = *++cursor_;
- if (yych == 'p') goto yy1063;
+ if (yych == 'p') goto yy1071;
goto yy87;
-yy1021:
+yy1029:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 375 "src/wast-lexer.cc"
+#line 378 "src/wast-lexer.cc"
{ OPCODE(I32Store16); RETURN(STORE); }
-#line 5695 "src/prebuilt/wast-lexer-gen.cc"
-yy1023:
+#line 6089 "src/prebuilt/wast-lexer-gen.cc"
+yy1031:
yych = *++cursor_;
- if (yych == '/') goto yy1064;
+ if (yych == '/') goto yy1072;
goto yy87;
-yy1024:
+yy1032:
yych = *++cursor_;
- if (yych == '/') goto yy1065;
+ if (yych == '/') goto yy1073;
goto yy87;
-yy1025:
+yy1033:
yych = *++cursor_;
- if (yych == '4') goto yy1066;
+ if (yych == '4') goto yy1074;
goto yy87;
-yy1026:
+yy1034:
yych = *++cursor_;
- if (yych == 's') goto yy1068;
- if (yych == 'u') goto yy1069;
+ if (yych == 's') goto yy1076;
+ if (yych == 'u') goto yy1077;
goto yy87;
-yy1027:
+yy1035:
yych = *++cursor_;
- if (yych == 's') goto yy1070;
- if (yych == 'u') goto yy1072;
+ if (yych == 's') goto yy1078;
+ if (yych == 'u') goto yy1080;
goto yy87;
-yy1028:
+yy1036:
yych = *++cursor_;
- if (yych == 's') goto yy1074;
- if (yych == 'u') goto yy1076;
+ if (yych == 's') goto yy1082;
+ if (yych == 'u') goto yy1084;
goto yy87;
-yy1029:
+yy1037:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 364 "src/wast-lexer.cc"
+#line 367 "src/wast-lexer.cc"
{ OPCODE(I64Load8S); RETURN(LOAD); }
-#line 5730 "src/prebuilt/wast-lexer-gen.cc"
-yy1031:
+#line 6124 "src/prebuilt/wast-lexer-gen.cc"
+yy1039:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 366 "src/wast-lexer.cc"
+#line 369 "src/wast-lexer.cc"
{ OPCODE(I64Load8U); RETURN(LOAD); }
-#line 5738 "src/prebuilt/wast-lexer-gen.cc"
-yy1033:
+#line 6132 "src/prebuilt/wast-lexer-gen.cc"
+yy1041:
yych = *++cursor_;
- if (yych == 'p') goto yy1078;
+ if (yych == 'p') goto yy1086;
goto yy87;
-yy1034:
+yy1042:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 376 "src/wast-lexer.cc"
+#line 379 "src/wast-lexer.cc"
{ OPCODE(I64Store16); RETURN(STORE); }
-#line 5750 "src/prebuilt/wast-lexer-gen.cc"
-yy1036:
+#line 6144 "src/prebuilt/wast-lexer-gen.cc"
+yy1044:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 377 "src/wast-lexer.cc"
+#line 380 "src/wast-lexer.cc"
{ OPCODE(I64Store32); RETURN(STORE); }
-#line 5758 "src/prebuilt/wast-lexer-gen.cc"
-yy1038:
+#line 6152 "src/prebuilt/wast-lexer-gen.cc"
+yy1046:
yych = *++cursor_;
- if (yych == '/') goto yy1079;
+ if (yych == '/') goto yy1087;
goto yy87;
-yy1039:
+yy1047:
yych = *++cursor_;
- if (yych == '/') goto yy1080;
+ if (yych == '/') goto yy1088;
goto yy87;
-yy1040:
+yy1048:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 508 "src/wast-lexer.cc"
+#line 511 "src/wast-lexer.cc"
{ RETURN(UNREACHABLE); }
-#line 5774 "src/prebuilt/wast-lexer-gen.cc"
-yy1042:
+#line 6168 "src/prebuilt/wast-lexer-gen.cc"
+yy1050:
yych = *++cursor_;
- if (yych == 's') goto yy1081;
+ if (yych == 's') goto yy1089;
goto yy87;
-yy1043:
+yy1051:
yych = *++cursor_;
- if (yych == 'i') goto yy1082;
+ if (yych == 'i') goto yy1090;
goto yy87;
-yy1044:
+yy1052:
yych = *++cursor_;
- if (yych == 'r') goto yy1083;
+ if (yych == 'r') goto yy1091;
goto yy87;
-yy1045:
+yy1053:
yych = *++cursor_;
- if (yych == 'n') goto yy1084;
+ if (yych == 'n') goto yy1092;
goto yy87;
-yy1046:
+yy1054:
yych = *++cursor_;
- if (yych == 'k') goto yy1086;
+ if (yych == 'k') goto yy1094;
goto yy87;
-yy1047:
+yy1055:
yych = *++cursor_;
- if (yych == 't') goto yy1087;
+ if (yych == 't') goto yy1095;
goto yy87;
-yy1048:
+yy1056:
yych = *++cursor_;
- if (yych == 'r') goto yy1089;
+ if (yych == 'r') goto yy1097;
goto yy87;
-yy1049:
+yy1057:
yych = *++cursor_;
- if (yych == 's') goto yy1090;
- if (yych == 'u') goto yy1091;
+ if (yych == 's') goto yy1098;
+ if (yych == 'u') goto yy1099;
goto yy87;
-yy1050:
+yy1058:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 448 "src/wast-lexer.cc"
+#line 451 "src/wast-lexer.cc"
{ OPCODE(F32Copysign); RETURN(BINARY); }
-#line 5815 "src/prebuilt/wast-lexer-gen.cc"
-yy1052:
+#line 6209 "src/prebuilt/wast-lexer-gen.cc"
+yy1060:
yych = *++cursor_;
- if (yych == '6') goto yy1092;
+ if (yych == '6') goto yy1100;
goto yy87;
-yy1053:
+yy1061:
yych = *++cursor_;
- if (yych == 'r') goto yy1093;
+ if (yych == 'r') goto yy1101;
goto yy87;
-yy1054:
+yy1062:
yych = *++cursor_;
- if (yych == 's') goto yy1094;
- if (yych == 'u') goto yy1095;
+ if (yych == 's') goto yy1102;
+ if (yych == 'u') goto yy1103;
goto yy87;
-yy1055:
+yy1063:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 449 "src/wast-lexer.cc"
+#line 452 "src/wast-lexer.cc"
{ OPCODE(F64Copysign); RETURN(BINARY); }
-#line 5836 "src/prebuilt/wast-lexer-gen.cc"
-yy1057:
+#line 6230 "src/prebuilt/wast-lexer-gen.cc"
+yy1065:
yych = *++cursor_;
- if (yych == 'f') goto yy1096;
+ if (yych == 'f') goto yy1104;
goto yy87;
-yy1058:
+yy1066:
yych = *++cursor_;
- if (yych == 'r') goto yy1097;
+ if (yych == 'r') goto yy1105;
goto yy87;
-yy1059:
+yy1067:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 367 "src/wast-lexer.cc"
+#line 370 "src/wast-lexer.cc"
{ OPCODE(I32Load16S); RETURN(LOAD); }
-#line 5852 "src/prebuilt/wast-lexer-gen.cc"
-yy1061:
+#line 6246 "src/prebuilt/wast-lexer-gen.cc"
+yy1069:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 369 "src/wast-lexer.cc"
+#line 372 "src/wast-lexer.cc"
{ OPCODE(I32Load16U); RETURN(LOAD); }
-#line 5860 "src/prebuilt/wast-lexer-gen.cc"
-yy1063:
+#line 6254 "src/prebuilt/wast-lexer-gen.cc"
+yy1071:
yych = *++cursor_;
- if (yych == 'r') goto yy1098;
+ if (yych == 'r') goto yy1106;
goto yy87;
-yy1064:
+yy1072:
yych = *++cursor_;
- if (yych == 'f') goto yy1099;
+ if (yych == 'f') goto yy1107;
goto yy87;
-yy1065:
+yy1073:
yych = *++cursor_;
- if (yych == 'f') goto yy1100;
+ if (yych == 'f') goto yy1108;
goto yy87;
-yy1066:
+yy1074:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 484 "src/wast-lexer.cc"
+#line 487 "src/wast-lexer.cc"
{ OPCODE(I32WrapI64); RETURN(CONVERT); }
-#line 5880 "src/prebuilt/wast-lexer-gen.cc"
-yy1068:
+#line 6274 "src/prebuilt/wast-lexer-gen.cc"
+yy1076:
yych = *++cursor_;
- if (yych == '/') goto yy1101;
+ if (yych == '/') goto yy1109;
goto yy87;
-yy1069:
+yy1077:
yych = *++cursor_;
- if (yych == '/') goto yy1102;
+ if (yych == '/') goto yy1110;
goto yy87;
-yy1070:
+yy1078:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 368 "src/wast-lexer.cc"
+#line 371 "src/wast-lexer.cc"
{ OPCODE(I64Load16S); RETURN(LOAD); }
-#line 5896 "src/prebuilt/wast-lexer-gen.cc"
-yy1072:
+#line 6290 "src/prebuilt/wast-lexer-gen.cc"
+yy1080:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 370 "src/wast-lexer.cc"
+#line 373 "src/wast-lexer.cc"
{ OPCODE(I64Load16U); RETURN(LOAD); }
-#line 5904 "src/prebuilt/wast-lexer-gen.cc"
-yy1074:
+#line 6298 "src/prebuilt/wast-lexer-gen.cc"
+yy1082:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 371 "src/wast-lexer.cc"
+#line 374 "src/wast-lexer.cc"
{ OPCODE(I64Load32S); RETURN(LOAD); }
-#line 5912 "src/prebuilt/wast-lexer-gen.cc"
-yy1076:
+#line 6306 "src/prebuilt/wast-lexer-gen.cc"
+yy1084:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 372 "src/wast-lexer.cc"
+#line 375 "src/wast-lexer.cc"
{ OPCODE(I64Load32U); RETURN(LOAD); }
-#line 5920 "src/prebuilt/wast-lexer-gen.cc"
-yy1078:
+#line 6314 "src/prebuilt/wast-lexer-gen.cc"
+yy1086:
yych = *++cursor_;
- if (yych == 'r') goto yy1103;
+ if (yych == 'r') goto yy1111;
goto yy87;
-yy1079:
+yy1087:
yych = *++cursor_;
- if (yych == 'f') goto yy1104;
+ if (yych == 'f') goto yy1112;
goto yy87;
-yy1080:
+yy1088:
yych = *++cursor_;
- if (yych == 'f') goto yy1105;
+ if (yych == 'f') goto yy1113;
goto yy87;
-yy1081:
+yy1089:
yych = *++cursor_;
- if (yych == 't') goto yy1106;
+ if (yych == 't') goto yy1114;
goto yy87;
-yy1082:
+yy1090:
yych = *++cursor_;
- if (yych == 'd') goto yy1107;
+ if (yych == 'd') goto yy1115;
goto yy87;
-yy1083:
+yy1091:
yych = *++cursor_;
- if (yych == 'm') goto yy1109;
+ if (yych == 'm') goto yy1117;
goto yy87;
-yy1084:
+yy1092:
++cursor_;
if ((yych = *cursor_) <= ')') {
if (yych <= '!') {
if (yych >= '!') goto yy86;
} else {
- if (yych <= '"') goto yy1085;
+ if (yych <= '"') goto yy1093;
if (yych <= '\'') goto yy86;
}
} else {
if (yych <= '^') {
if (yych != ';') goto yy86;
} else {
- if (yych <= '_') goto yy1110;
+ if (yych <= '_') goto yy1118;
if (yych <= '~') goto yy86;
}
}
-yy1085:
-#line 535 "src/wast-lexer.cc"
+yy1093:
+#line 538 "src/wast-lexer.cc"
{ RETURN(ASSERT_RETURN); }
-#line 5965 "src/prebuilt/wast-lexer-gen.cc"
-yy1086:
+#line 6359 "src/prebuilt/wast-lexer-gen.cc"
+yy1094:
yych = *++cursor_;
- if (yych == 'a') goto yy1111;
+ if (yych == 'a') goto yy1119;
goto yy87;
-yy1087:
+yy1095:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 346 "src/wast-lexer.cc"
+#line 349 "src/wast-lexer.cc"
{ RETURN(CALL_INDIRECT); }
-#line 5977 "src/prebuilt/wast-lexer-gen.cc"
-yy1089:
- yych = *++cursor_;
- if (yych == 'y') goto yy1112;
- goto yy87;
-yy1090:
- yych = *++cursor_;
- if (yych == '/') goto yy1114;
- goto yy87;
-yy1091:
- yych = *++cursor_;
- if (yych == '/') goto yy1115;
- goto yy87;
-yy1092:
- yych = *++cursor_;
- if (yych == '4') goto yy1116;
- goto yy87;
-yy1093:
- yych = *++cursor_;
- if (yych == 'e') goto yy1118;
- goto yy87;
-yy1094:
- yych = *++cursor_;
- if (yych == '/') goto yy1119;
- goto yy87;
-yy1095:
- yych = *++cursor_;
- if (yych == '/') goto yy1120;
- goto yy87;
-yy1096:
- yych = *++cursor_;
- if (yych == '3') goto yy1121;
- goto yy87;
+#line 6371 "src/prebuilt/wast-lexer-gen.cc"
yy1097:
yych = *++cursor_;
- if (yych == 'e') goto yy1122;
+ if (yych == 'y') goto yy1120;
goto yy87;
yy1098:
yych = *++cursor_;
- if (yych == 'e') goto yy1123;
+ if (yych == '/') goto yy1122;
goto yy87;
yy1099:
yych = *++cursor_;
- if (yych == '3') goto yy1124;
- if (yych == '6') goto yy1125;
+ if (yych == '/') goto yy1123;
goto yy87;
yy1100:
yych = *++cursor_;
- if (yych == '3') goto yy1126;
- if (yych == '6') goto yy1127;
+ if (yych == '4') goto yy1124;
goto yy87;
yy1101:
yych = *++cursor_;
- if (yych == 'i') goto yy1128;
+ if (yych == 'e') goto yy1126;
goto yy87;
yy1102:
yych = *++cursor_;
- if (yych == 'i') goto yy1129;
+ if (yych == '/') goto yy1127;
goto yy87;
yy1103:
yych = *++cursor_;
- if (yych == 'e') goto yy1130;
+ if (yych == '/') goto yy1128;
goto yy87;
yy1104:
yych = *++cursor_;
- if (yych == '3') goto yy1131;
- if (yych == '6') goto yy1132;
+ if (yych == '3') goto yy1129;
goto yy87;
yy1105:
yych = *++cursor_;
- if (yych == '3') goto yy1133;
- if (yych == '6') goto yy1134;
+ if (yych == 'e') goto yy1130;
goto yy87;
yy1106:
yych = *++cursor_;
- if (yych == 'i') goto yy1135;
+ if (yych == 'e') goto yy1131;
goto yy87;
yy1107:
- ++cursor_;
- if (yybm[0+(yych = *cursor_)] & 8) {
- goto yy86;
- }
-#line 533 "src/wast-lexer.cc"
- { RETURN(ASSERT_INVALID); }
-#line 6061 "src/prebuilt/wast-lexer-gen.cc"
+ yych = *++cursor_;
+ if (yych == '3') goto yy1132;
+ if (yych == '6') goto yy1133;
+ goto yy87;
+yy1108:
+ yych = *++cursor_;
+ if (yych == '3') goto yy1134;
+ if (yych == '6') goto yy1135;
+ goto yy87;
yy1109:
yych = *++cursor_;
- if (yych == 'e') goto yy1136;
+ if (yych == 'i') goto yy1136;
goto yy87;
yy1110:
yych = *++cursor_;
- if (yych == 'a') goto yy1137;
- if (yych == 'c') goto yy1138;
+ if (yych == 'i') goto yy1137;
goto yy87;
yy1111:
yych = *++cursor_;
- if (yych == 'b') goto yy1139;
+ if (yych == 'e') goto yy1138;
goto yy87;
yy1112:
- ++cursor_;
- if (yybm[0+(yych = *cursor_)] & 8) {
- goto yy86;
- }
-#line 509 "src/wast-lexer.cc"
- { RETURN(CURRENT_MEMORY); }
-#line 6082 "src/prebuilt/wast-lexer-gen.cc"
-yy1114:
yych = *++cursor_;
- if (yych == 'i') goto yy1140;
+ if (yych == '3') goto yy1139;
+ if (yych == '6') goto yy1140;
goto yy87;
-yy1115:
+yy1113:
yych = *++cursor_;
- if (yych == 'i') goto yy1141;
+ if (yych == '3') goto yy1141;
+ if (yych == '6') goto yy1142;
goto yy87;
-yy1116:
+yy1114:
+ yych = *++cursor_;
+ if (yych == 'i') goto yy1143;
+ goto yy87;
+yy1115:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 502 "src/wast-lexer.cc"
- { OPCODE(F32DemoteF64); RETURN(CONVERT); }
-#line 6098 "src/prebuilt/wast-lexer-gen.cc"
+#line 536 "src/wast-lexer.cc"
+ { RETURN(ASSERT_INVALID); }
+#line 6455 "src/prebuilt/wast-lexer-gen.cc"
+yy1117:
+ yych = *++cursor_;
+ if (yych == 'e') goto yy1144;
+ goto yy87;
yy1118:
yych = *++cursor_;
- if (yych == 't') goto yy1142;
+ if (yych == 'a') goto yy1145;
+ if (yych == 'c') goto yy1146;
goto yy87;
yy1119:
yych = *++cursor_;
- if (yych == 'i') goto yy1143;
+ if (yych == 'b') goto yy1147;
goto yy87;
yy1120:
- yych = *++cursor_;
- if (yych == 'i') goto yy1144;
- goto yy87;
-yy1121:
- yych = *++cursor_;
- if (yych == '2') goto yy1145;
- goto yy87;
+ ++cursor_;
+ if (yybm[0+(yych = *cursor_)] & 8) {
+ goto yy86;
+ }
+#line 512 "src/wast-lexer.cc"
+ { RETURN(CURRENT_MEMORY); }
+#line 6476 "src/prebuilt/wast-lexer-gen.cc"
yy1122:
yych = *++cursor_;
- if (yych == 't') goto yy1147;
+ if (yych == 'i') goto yy1148;
goto yy87;
yy1123:
yych = *++cursor_;
- if (yych == 't') goto yy1148;
+ if (yych == 'i') goto yy1149;
goto yy87;
yy1124:
- yych = *++cursor_;
- if (yych == '2') goto yy1149;
- goto yy87;
-yy1125:
- yych = *++cursor_;
- if (yych == '4') goto yy1151;
- goto yy87;
+ ++cursor_;
+ if (yybm[0+(yych = *cursor_)] & 8) {
+ goto yy86;
+ }
+#line 505 "src/wast-lexer.cc"
+ { OPCODE(F32DemoteF64); RETURN(CONVERT); }
+#line 6492 "src/prebuilt/wast-lexer-gen.cc"
yy1126:
yych = *++cursor_;
- if (yych == '2') goto yy1153;
+ if (yych == 't') goto yy1150;
goto yy87;
yy1127:
yych = *++cursor_;
- if (yych == '4') goto yy1155;
+ if (yych == 'i') goto yy1151;
goto yy87;
yy1128:
yych = *++cursor_;
- if (yych == '3') goto yy1157;
+ if (yych == 'i') goto yy1152;
goto yy87;
yy1129:
yych = *++cursor_;
- if (yych == '3') goto yy1158;
+ if (yych == '2') goto yy1153;
goto yy87;
yy1130:
yych = *++cursor_;
- if (yych == 't') goto yy1159;
+ if (yych == 't') goto yy1155;
goto yy87;
yy1131:
yych = *++cursor_;
- if (yych == '2') goto yy1160;
+ if (yych == 't') goto yy1156;
goto yy87;
yy1132:
yych = *++cursor_;
- if (yych == '4') goto yy1162;
+ if (yych == '2') goto yy1157;
goto yy87;
yy1133:
yych = *++cursor_;
- if (yych == '2') goto yy1164;
+ if (yych == '4') goto yy1159;
goto yy87;
yy1134:
yych = *++cursor_;
- if (yych == '4') goto yy1166;
+ if (yych == '2') goto yy1161;
goto yy87;
yy1135:
yych = *++cursor_;
- if (yych == 'o') goto yy1168;
+ if (yych == '4') goto yy1163;
goto yy87;
yy1136:
yych = *++cursor_;
- if (yych == 'd') goto yy1169;
+ if (yych == '3') goto yy1165;
goto yy87;
yy1137:
yych = *++cursor_;
- if (yych == 'r') goto yy1171;
+ if (yych == '3') goto yy1166;
goto yy87;
yy1138:
yych = *++cursor_;
- if (yych == 'a') goto yy1172;
+ if (yych == 't') goto yy1167;
goto yy87;
yy1139:
yych = *++cursor_;
- if (yych == 'l') goto yy1173;
+ if (yych == '2') goto yy1168;
goto yy87;
yy1140:
yych = *++cursor_;
- if (yych == '3') goto yy1174;
- if (yych == '6') goto yy1175;
+ if (yych == '4') goto yy1170;
goto yy87;
yy1141:
yych = *++cursor_;
- if (yych == '3') goto yy1176;
- if (yych == '6') goto yy1177;
+ if (yych == '2') goto yy1172;
goto yy87;
yy1142:
yych = *++cursor_;
- if (yych == '/') goto yy1178;
+ if (yych == '4') goto yy1174;
goto yy87;
yy1143:
yych = *++cursor_;
- if (yych == '3') goto yy1179;
- if (yych == '6') goto yy1180;
+ if (yych == 'o') goto yy1176;
goto yy87;
yy1144:
yych = *++cursor_;
- if (yych == '3') goto yy1181;
- if (yych == '6') goto yy1182;
+ if (yych == 'd') goto yy1177;
goto yy87;
yy1145:
+ yych = *++cursor_;
+ if (yych == 'r') goto yy1179;
+ goto yy87;
+yy1146:
+ yych = *++cursor_;
+ if (yych == 'a') goto yy1180;
+ goto yy87;
+yy1147:
+ yych = *++cursor_;
+ if (yych == 'l') goto yy1181;
+ goto yy87;
+yy1148:
+ yych = *++cursor_;
+ if (yych == '3') goto yy1182;
+ if (yych == '6') goto yy1183;
+ goto yy87;
+yy1149:
+ yych = *++cursor_;
+ if (yych == '3') goto yy1184;
+ if (yych == '6') goto yy1185;
+ goto yy87;
+yy1150:
+ yych = *++cursor_;
+ if (yych == '/') goto yy1186;
+ goto yy87;
+yy1151:
+ yych = *++cursor_;
+ if (yych == '3') goto yy1187;
+ if (yych == '6') goto yy1188;
+ goto yy87;
+yy1152:
+ yych = *++cursor_;
+ if (yych == '3') goto yy1189;
+ if (yych == '6') goto yy1190;
+ goto yy87;
+yy1153:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 501 "src/wast-lexer.cc"
+#line 504 "src/wast-lexer.cc"
{ OPCODE(F64PromoteF32); RETURN(CONVERT); }
-#line 6218 "src/prebuilt/wast-lexer-gen.cc"
-yy1147:
+#line 6612 "src/prebuilt/wast-lexer-gen.cc"
+yy1155:
yych = *++cursor_;
- if (yych == '/') goto yy1183;
+ if (yych == '/') goto yy1191;
goto yy87;
-yy1148:
+yy1156:
yych = *++cursor_;
- if (yych == '/') goto yy1184;
+ if (yych == '/') goto yy1192;
goto yy87;
-yy1149:
+yy1157:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 485 "src/wast-lexer.cc"
+#line 488 "src/wast-lexer.cc"
{ OPCODE(I32TruncSF32); RETURN(CONVERT); }
-#line 6234 "src/prebuilt/wast-lexer-gen.cc"
-yy1151:
+#line 6628 "src/prebuilt/wast-lexer-gen.cc"
+yy1159:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 487 "src/wast-lexer.cc"
+#line 490 "src/wast-lexer.cc"
{ OPCODE(I32TruncSF64); RETURN(CONVERT); }
-#line 6242 "src/prebuilt/wast-lexer-gen.cc"
-yy1153:
+#line 6636 "src/prebuilt/wast-lexer-gen.cc"
+yy1161:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 489 "src/wast-lexer.cc"
+#line 492 "src/wast-lexer.cc"
{ OPCODE(I32TruncUF32); RETURN(CONVERT); }
-#line 6250 "src/prebuilt/wast-lexer-gen.cc"
-yy1155:
+#line 6644 "src/prebuilt/wast-lexer-gen.cc"
+yy1163:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 491 "src/wast-lexer.cc"
+#line 494 "src/wast-lexer.cc"
{ OPCODE(I32TruncUF64); RETURN(CONVERT); }
-#line 6258 "src/prebuilt/wast-lexer-gen.cc"
-yy1157:
+#line 6652 "src/prebuilt/wast-lexer-gen.cc"
+yy1165:
yych = *++cursor_;
- if (yych == '2') goto yy1185;
+ if (yych == '2') goto yy1193;
goto yy87;
-yy1158:
+yy1166:
yych = *++cursor_;
- if (yych == '2') goto yy1187;
+ if (yych == '2') goto yy1195;
goto yy87;
-yy1159:
+yy1167:
yych = *++cursor_;
- if (yych == '/') goto yy1189;
+ if (yych == '/') goto yy1197;
goto yy87;
-yy1160:
+yy1168:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 486 "src/wast-lexer.cc"
+#line 489 "src/wast-lexer.cc"
{ OPCODE(I64TruncSF32); RETURN(CONVERT); }
-#line 6278 "src/prebuilt/wast-lexer-gen.cc"
-yy1162:
+#line 6672 "src/prebuilt/wast-lexer-gen.cc"
+yy1170:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 488 "src/wast-lexer.cc"
+#line 491 "src/wast-lexer.cc"
{ OPCODE(I64TruncSF64); RETURN(CONVERT); }
-#line 6286 "src/prebuilt/wast-lexer-gen.cc"
-yy1164:
+#line 6680 "src/prebuilt/wast-lexer-gen.cc"
+yy1172:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 490 "src/wast-lexer.cc"
+#line 493 "src/wast-lexer.cc"
{ OPCODE(I64TruncUF32); RETURN(CONVERT); }
-#line 6294 "src/prebuilt/wast-lexer-gen.cc"
-yy1166:
+#line 6688 "src/prebuilt/wast-lexer-gen.cc"
+yy1174:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 492 "src/wast-lexer.cc"
+#line 495 "src/wast-lexer.cc"
{ OPCODE(I64TruncUF64); RETURN(CONVERT); }
-#line 6302 "src/prebuilt/wast-lexer-gen.cc"
-yy1168:
+#line 6696 "src/prebuilt/wast-lexer-gen.cc"
+yy1176:
yych = *++cursor_;
- if (yych == 'n') goto yy1190;
+ if (yych == 'n') goto yy1198;
goto yy87;
-yy1169:
+yy1177:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 532 "src/wast-lexer.cc"
+#line 535 "src/wast-lexer.cc"
{ RETURN(ASSERT_MALFORMED); }
-#line 6314 "src/prebuilt/wast-lexer-gen.cc"
-yy1171:
+#line 6708 "src/prebuilt/wast-lexer-gen.cc"
+yy1179:
yych = *++cursor_;
- if (yych == 'i') goto yy1192;
+ if (yych == 'i') goto yy1200;
goto yy87;
-yy1172:
+yy1180:
yych = *++cursor_;
- if (yych == 'n') goto yy1193;
+ if (yych == 'n') goto yy1201;
goto yy87;
-yy1173:
+yy1181:
yych = *++cursor_;
- if (yych == 'e') goto yy1194;
+ if (yych == 'e') goto yy1202;
goto yy87;
-yy1174:
+yy1182:
yych = *++cursor_;
- if (yych == '2') goto yy1196;
+ if (yych == '2') goto yy1204;
goto yy87;
-yy1175:
+yy1183:
yych = *++cursor_;
- if (yych == '4') goto yy1198;
+ if (yych == '4') goto yy1206;
goto yy87;
-yy1176:
+yy1184:
yych = *++cursor_;
- if (yych == '2') goto yy1200;
+ if (yych == '2') goto yy1208;
goto yy87;
-yy1177:
+yy1185:
yych = *++cursor_;
- if (yych == '4') goto yy1202;
+ if (yych == '4') goto yy1210;
goto yy87;
-yy1178:
+yy1186:
yych = *++cursor_;
- if (yych == 'i') goto yy1204;
+ if (yych == 'i') goto yy1212;
goto yy87;
-yy1179:
+yy1187:
yych = *++cursor_;
- if (yych == '2') goto yy1205;
+ if (yych == '2') goto yy1213;
goto yy87;
-yy1180:
+yy1188:
yych = *++cursor_;
- if (yych == '4') goto yy1207;
+ if (yych == '4') goto yy1215;
goto yy87;
-yy1181:
+yy1189:
yych = *++cursor_;
- if (yych == '2') goto yy1209;
+ if (yych == '2') goto yy1217;
goto yy87;
-yy1182:
+yy1190:
yych = *++cursor_;
- if (yych == '4') goto yy1211;
+ if (yych == '4') goto yy1219;
goto yy87;
-yy1183:
+yy1191:
yych = *++cursor_;
- if (yych == 'i') goto yy1213;
+ if (yych == 'i') goto yy1221;
goto yy87;
-yy1184:
+yy1192:
yych = *++cursor_;
- if (yych == 'f') goto yy1214;
+ if (yych == 'f') goto yy1222;
goto yy87;
-yy1185:
+yy1193:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 482 "src/wast-lexer.cc"
+#line 485 "src/wast-lexer.cc"
{ OPCODE(I64ExtendSI32); RETURN(CONVERT); }
-#line 6378 "src/prebuilt/wast-lexer-gen.cc"
-yy1187:
+#line 6772 "src/prebuilt/wast-lexer-gen.cc"
+yy1195:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 483 "src/wast-lexer.cc"
+#line 486 "src/wast-lexer.cc"
{ OPCODE(I64ExtendUI32); RETURN(CONVERT); }
-#line 6386 "src/prebuilt/wast-lexer-gen.cc"
-yy1189:
+#line 6780 "src/prebuilt/wast-lexer-gen.cc"
+yy1197:
yych = *++cursor_;
- if (yych == 'f') goto yy1215;
+ if (yych == 'f') goto yy1223;
goto yy87;
-yy1190:
+yy1198:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 541 "src/wast-lexer.cc"
+#line 544 "src/wast-lexer.cc"
{ RETURN(ASSERT_EXHAUSTION); }
-#line 6398 "src/prebuilt/wast-lexer-gen.cc"
-yy1192:
+#line 6792 "src/prebuilt/wast-lexer-gen.cc"
+yy1200:
yych = *++cursor_;
- if (yych == 't') goto yy1216;
+ if (yych == 't') goto yy1224;
goto yy87;
-yy1193:
+yy1201:
yych = *++cursor_;
- if (yych == 'o') goto yy1217;
+ if (yych == 'o') goto yy1225;
goto yy87;
-yy1194:
+yy1202:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 534 "src/wast-lexer.cc"
+#line 537 "src/wast-lexer.cc"
{ RETURN(ASSERT_UNLINKABLE); }
-#line 6414 "src/prebuilt/wast-lexer-gen.cc"
-yy1196:
+#line 6808 "src/prebuilt/wast-lexer-gen.cc"
+yy1204:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 493 "src/wast-lexer.cc"
+#line 496 "src/wast-lexer.cc"
{ OPCODE(F32ConvertSI32); RETURN(CONVERT); }
-#line 6422 "src/prebuilt/wast-lexer-gen.cc"
-yy1198:
+#line 6816 "src/prebuilt/wast-lexer-gen.cc"
+yy1206:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 495 "src/wast-lexer.cc"
+#line 498 "src/wast-lexer.cc"
{ OPCODE(F32ConvertSI64); RETURN(CONVERT); }
-#line 6430 "src/prebuilt/wast-lexer-gen.cc"
-yy1200:
+#line 6824 "src/prebuilt/wast-lexer-gen.cc"
+yy1208:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 497 "src/wast-lexer.cc"
+#line 500 "src/wast-lexer.cc"
{ OPCODE(F32ConvertUI32); RETURN(CONVERT); }
-#line 6438 "src/prebuilt/wast-lexer-gen.cc"
-yy1202:
+#line 6832 "src/prebuilt/wast-lexer-gen.cc"
+yy1210:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 499 "src/wast-lexer.cc"
+#line 502 "src/wast-lexer.cc"
{ OPCODE(F32ConvertUI64); RETURN(CONVERT); }
-#line 6446 "src/prebuilt/wast-lexer-gen.cc"
-yy1204:
+#line 6840 "src/prebuilt/wast-lexer-gen.cc"
+yy1212:
yych = *++cursor_;
- if (yych == '3') goto yy1218;
+ if (yych == '3') goto yy1226;
goto yy87;
-yy1205:
+yy1213:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 494 "src/wast-lexer.cc"
+#line 497 "src/wast-lexer.cc"
{ OPCODE(F64ConvertSI32); RETURN(CONVERT); }
-#line 6458 "src/prebuilt/wast-lexer-gen.cc"
-yy1207:
+#line 6852 "src/prebuilt/wast-lexer-gen.cc"
+yy1215:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 496 "src/wast-lexer.cc"
+#line 499 "src/wast-lexer.cc"
{ OPCODE(F64ConvertSI64); RETURN(CONVERT); }
-#line 6466 "src/prebuilt/wast-lexer-gen.cc"
-yy1209:
+#line 6860 "src/prebuilt/wast-lexer-gen.cc"
+yy1217:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 498 "src/wast-lexer.cc"
+#line 501 "src/wast-lexer.cc"
{ OPCODE(F64ConvertUI32); RETURN(CONVERT); }
-#line 6474 "src/prebuilt/wast-lexer-gen.cc"
-yy1211:
+#line 6868 "src/prebuilt/wast-lexer-gen.cc"
+yy1219:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 500 "src/wast-lexer.cc"
+#line 503 "src/wast-lexer.cc"
{ OPCODE(F64ConvertUI64); RETURN(CONVERT); }
-#line 6482 "src/prebuilt/wast-lexer-gen.cc"
-yy1213:
+#line 6876 "src/prebuilt/wast-lexer-gen.cc"
+yy1221:
yych = *++cursor_;
- if (yych == '6') goto yy1219;
+ if (yych == '6') goto yy1227;
goto yy87;
-yy1214:
+yy1222:
yych = *++cursor_;
- if (yych == '3') goto yy1220;
+ if (yych == '3') goto yy1228;
goto yy87;
-yy1215:
+yy1223:
yych = *++cursor_;
- if (yych == '6') goto yy1221;
+ if (yych == '6') goto yy1229;
goto yy87;
-yy1216:
+yy1224:
yych = *++cursor_;
- if (yych == 'h') goto yy1222;
+ if (yych == 'h') goto yy1230;
goto yy87;
-yy1217:
+yy1225:
yych = *++cursor_;
- if (yych == 'n') goto yy1223;
+ if (yych == 'n') goto yy1231;
goto yy87;
-yy1218:
+yy1226:
yych = *++cursor_;
- if (yych == '2') goto yy1224;
+ if (yych == '2') goto yy1232;
goto yy87;
-yy1219:
+yy1227:
yych = *++cursor_;
- if (yych == '4') goto yy1226;
+ if (yych == '4') goto yy1234;
goto yy87;
-yy1220:
+yy1228:
yych = *++cursor_;
- if (yych == '2') goto yy1228;
+ if (yych == '2') goto yy1236;
goto yy87;
-yy1221:
+yy1229:
yych = *++cursor_;
- if (yych == '4') goto yy1230;
+ if (yych == '4') goto yy1238;
goto yy87;
-yy1222:
+yy1230:
yych = *++cursor_;
- if (yych == 'm') goto yy1232;
+ if (yych == 'm') goto yy1240;
goto yy87;
-yy1223:
+yy1231:
yych = *++cursor_;
- if (yych == 'i') goto yy1233;
+ if (yych == 'i') goto yy1241;
goto yy87;
-yy1224:
+yy1232:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 503 "src/wast-lexer.cc"
+#line 506 "src/wast-lexer.cc"
{ OPCODE(F32ReinterpretI32); RETURN(CONVERT); }
-#line 6534 "src/prebuilt/wast-lexer-gen.cc"
-yy1226:
+#line 6928 "src/prebuilt/wast-lexer-gen.cc"
+yy1234:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 505 "src/wast-lexer.cc"
+#line 508 "src/wast-lexer.cc"
{ OPCODE(F64ReinterpretI64); RETURN(CONVERT); }
-#line 6542 "src/prebuilt/wast-lexer-gen.cc"
-yy1228:
+#line 6936 "src/prebuilt/wast-lexer-gen.cc"
+yy1236:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 504 "src/wast-lexer.cc"
+#line 507 "src/wast-lexer.cc"
{ OPCODE(I32ReinterpretF32); RETURN(CONVERT); }
-#line 6550 "src/prebuilt/wast-lexer-gen.cc"
-yy1230:
+#line 6944 "src/prebuilt/wast-lexer-gen.cc"
+yy1238:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 506 "src/wast-lexer.cc"
+#line 509 "src/wast-lexer.cc"
{ OPCODE(I64ReinterpretF64); RETURN(CONVERT); }
-#line 6558 "src/prebuilt/wast-lexer-gen.cc"
-yy1232:
+#line 6952 "src/prebuilt/wast-lexer-gen.cc"
+yy1240:
yych = *++cursor_;
- if (yych == 'e') goto yy1234;
+ if (yych == 'e') goto yy1242;
goto yy87;
-yy1233:
+yy1241:
yych = *++cursor_;
- if (yych == 'c') goto yy1235;
+ if (yych == 'c') goto yy1243;
goto yy87;
-yy1234:
+yy1242:
yych = *++cursor_;
- if (yych == 't') goto yy1236;
+ if (yych == 't') goto yy1244;
goto yy87;
-yy1235:
+yy1243:
yych = *++cursor_;
- if (yych == 'a') goto yy1237;
+ if (yych == 'a') goto yy1245;
goto yy87;
-yy1236:
+yy1244:
yych = *++cursor_;
- if (yych == 'i') goto yy1238;
+ if (yych == 'i') goto yy1246;
goto yy87;
-yy1237:
+yy1245:
yych = *++cursor_;
- if (yych == 'l') goto yy1239;
+ if (yych == 'l') goto yy1247;
goto yy87;
-yy1238:
+yy1246:
yych = *++cursor_;
- if (yych == 'c') goto yy1240;
+ if (yych == 'c') goto yy1248;
goto yy87;
-yy1239:
+yy1247:
yych = *++cursor_;
- if (yych == '_') goto yy1241;
+ if (yych == '_') goto yy1249;
goto yy87;
-yy1240:
+yy1248:
yych = *++cursor_;
- if (yych == '_') goto yy1242;
+ if (yych == '_') goto yy1250;
goto yy87;
-yy1241:
+yy1249:
yych = *++cursor_;
- if (yych == 'n') goto yy1243;
+ if (yych == 'n') goto yy1251;
goto yy87;
-yy1242:
+yy1250:
yych = *++cursor_;
- if (yych == 'n') goto yy1244;
+ if (yych == 'n') goto yy1252;
goto yy87;
-yy1243:
+yy1251:
yych = *++cursor_;
- if (yych == 'a') goto yy1245;
+ if (yych == 'a') goto yy1253;
goto yy87;
-yy1244:
+yy1252:
yych = *++cursor_;
- if (yych == 'a') goto yy1246;
+ if (yych == 'a') goto yy1254;
goto yy87;
-yy1245:
+yy1253:
yych = *++cursor_;
- if (yych == 'n') goto yy1247;
+ if (yych == 'n') goto yy1255;
goto yy87;
-yy1246:
+yy1254:
yych = *++cursor_;
- if (yych == 'n') goto yy1249;
+ if (yych == 'n') goto yy1257;
goto yy87;
-yy1247:
+yy1255:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 536 "src/wast-lexer.cc"
+#line 539 "src/wast-lexer.cc"
{
RETURN(ASSERT_RETURN_CANONICAL_NAN); }
-#line 6627 "src/prebuilt/wast-lexer-gen.cc"
-yy1249:
+#line 7021 "src/prebuilt/wast-lexer-gen.cc"
+yy1257:
++cursor_;
if (yybm[0+(yych = *cursor_)] & 8) {
goto yy86;
}
-#line 538 "src/wast-lexer.cc"
+#line 541 "src/wast-lexer.cc"
{
RETURN(ASSERT_RETURN_ARITHMETIC_NAN); }
-#line 6636 "src/prebuilt/wast-lexer-gen.cc"
+#line 7030 "src/prebuilt/wast-lexer-gen.cc"
}
}
-#line 567 "src/wast-lexer.cc"
+#line 570 "src/wast-lexer.cc"
}
}
diff --git a/src/prebuilt/wast-parser-gen.cc b/src/prebuilt/wast-parser-gen.cc
index f268dc60..f6ee16b5 100644
--- a/src/prebuilt/wast-parser-gen.cc
+++ b/src/prebuilt/wast-parser-gen.cc
@@ -179,6 +179,7 @@ static void CheckImportOrdering(Location* loc,
Module* module,
const ModuleFieldList&);
static void AppendModuleFields(Module*, ModuleFieldList&&);
+static void ResolveFuncTypes(Module*);
class BinaryErrorHandlerModule : public ErrorHandler {
public:
@@ -282,7 +283,7 @@ void AppendAndDelete(T& dest, U* source) {
#define wabt_wast_parser_error WastParserError
-#line 286 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:339 */
+#line 287 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:339 */
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
@@ -437,7 +438,7 @@ int wabt_wast_parser_parse (::wabt::WastLexer* lexer, ::wabt::WastParser* parser
/* Copy the second part of user declarations. */
-#line 441 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:358 */
+#line 442 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:358 */
#ifdef short
# undef short
@@ -744,28 +745,28 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 331, 331, 335, 341, 342, 346, 355, 356, 362,
- 365, 370, 378, 382, 383, 387, 396, 397, 404, 410,
- 416, 421, 428, 434, 444, 447, 450, 456, 459, 464,
- 465, 471, 472, 475, 479, 480, 484, 485, 502, 503,
- 519, 523, 527, 531, 534, 537, 540, 543, 546, 549,
- 552, 555, 558, 561, 564, 567, 570, 573, 576, 579,
- 582, 592, 595, 598, 601, 604, 607, 610, 613, 619,
- 625, 631, 637, 644, 653, 656, 660, 666, 672, 679,
- 680, 684, 689, 696, 700, 705, 711, 717, 722, 731,
- 736, 745, 748, 754, 759, 767, 773, 776, 781, 786,
- 792, 798, 804, 813, 818, 824, 830, 831, 837, 838,
- 844, 849, 854, 861, 875, 881, 884, 892, 898, 907,
- 914, 915, 919, 928, 929, 936, 943, 944, 948, 957,
- 958, 965, 972, 976, 980, 991, 994, 998, 1005, 1015,
- 1029, 1032, 1038, 1044, 1063, 1070, 1080, 1094, 1097, 1103,
- 1109, 1131, 1145, 1150, 1156, 1167, 1175, 1182, 1188, 1194,
- 1200, 1208, 1217, 1225, 1230, 1235, 1240, 1245, 1252, 1260,
- 1270, 1275, 1284, 1290, 1291, 1292, 1293, 1294, 1295, 1296,
- 1297, 1298, 1299, 1300, 1304, 1305, 1309, 1314, 1322, 1342,
- 1349, 1352, 1358, 1375, 1381, 1390, 1399, 1409, 1412, 1415,
- 1418, 1421, 1424, 1427, 1430, 1433, 1439, 1442, 1443, 1446,
- 1453, 1457, 1464, 1474, 1475, 1482, 1485, 1547, 1556
+ 0, 332, 332, 336, 342, 343, 347, 356, 357, 363,
+ 366, 371, 379, 383, 384, 388, 397, 398, 405, 411,
+ 417, 422, 429, 435, 445, 448, 451, 457, 460, 465,
+ 466, 472, 473, 476, 480, 481, 485, 486, 503, 504,
+ 520, 524, 528, 532, 535, 538, 541, 544, 547, 550,
+ 553, 556, 559, 562, 565, 568, 571, 574, 577, 580,
+ 583, 593, 596, 599, 602, 605, 608, 611, 614, 620,
+ 626, 632, 638, 645, 654, 657, 661, 667, 673, 680,
+ 681, 685, 690, 697, 701, 706, 712, 718, 723, 732,
+ 737, 746, 749, 755, 760, 768, 774, 777, 782, 787,
+ 793, 799, 805, 814, 819, 825, 831, 832, 838, 839,
+ 845, 850, 855, 862, 876, 882, 885, 893, 899, 908,
+ 915, 916, 920, 929, 930, 937, 944, 945, 949, 958,
+ 959, 966, 973, 977, 981, 992, 995, 999, 1006, 1016,
+ 1030, 1033, 1039, 1045, 1064, 1071, 1081, 1095, 1098, 1104,
+ 1110, 1132, 1146, 1151, 1157, 1168, 1176, 1183, 1189, 1195,
+ 1201, 1209, 1218, 1226, 1231, 1236, 1241, 1246, 1253, 1261,
+ 1271, 1276, 1285, 1291, 1292, 1293, 1294, 1295, 1296, 1297,
+ 1298, 1299, 1300, 1301, 1305, 1306, 1310, 1315, 1323, 1343,
+ 1353, 1356, 1362, 1370, 1376, 1385, 1394, 1404, 1407, 1410,
+ 1413, 1416, 1419, 1422, 1425, 1428, 1434, 1437, 1438, 1441,
+ 1448, 1452, 1459, 1469, 1470, 1477, 1480, 1542, 1551
};
#endif
@@ -1796,369 +1797,369 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
switch (yytype)
{
case 83: /* text_list */
-#line 315 "src/wast-parser.y" /* yacc.c:1257 */
+#line 316 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).texts); }
-#line 1802 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1803 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 84: /* text_list_opt */
-#line 315 "src/wast-parser.y" /* yacc.c:1257 */
+#line 316 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).texts); }
-#line 1808 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1809 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 85: /* quoted_text */
-#line 314 "src/wast-parser.y" /* yacc.c:1257 */
+#line 315 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).string); }
-#line 1814 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1815 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 86: /* value_type_list */
-#line 316 "src/wast-parser.y" /* yacc.c:1257 */
+#line 317 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).types); }
-#line 1820 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1821 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 88: /* global_type */
-#line 308 "src/wast-parser.y" /* yacc.c:1257 */
+#line 309 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).global); }
-#line 1826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1827 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 89: /* func_type */
-#line 307 "src/wast-parser.y" /* yacc.c:1257 */
+#line 308 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func_sig); }
-#line 1832 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1833 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 90: /* func_sig */
-#line 307 "src/wast-parser.y" /* yacc.c:1257 */
+#line 308 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func_sig); }
-#line 1838 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1839 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 91: /* func_sig_result */
-#line 307 "src/wast-parser.y" /* yacc.c:1257 */
+#line 308 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func_sig); }
-#line 1844 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1845 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 93: /* memory_sig */
-#line 310 "src/wast-parser.y" /* yacc.c:1257 */
+#line 311 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).memory); }
-#line 1850 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1851 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 95: /* type_use */
-#line 317 "src/wast-parser.y" /* yacc.c:1257 */
+#line 318 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).var); }
-#line 1856 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1857 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 98: /* var */
-#line 317 "src/wast-parser.y" /* yacc.c:1257 */
+#line 318 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).var); }
-#line 1862 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1863 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 99: /* var_list */
-#line 318 "src/wast-parser.y" /* yacc.c:1257 */
+#line 319 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).vars); }
-#line 1868 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1869 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 100: /* bind_var_opt */
-#line 314 "src/wast-parser.y" /* yacc.c:1257 */
+#line 315 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).string); }
-#line 1874 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1875 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 101: /* bind_var */
-#line 314 "src/wast-parser.y" /* yacc.c:1257 */
+#line 315 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).string); }
-#line 1880 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1881 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 102: /* labeling_opt */
-#line 314 "src/wast-parser.y" /* yacc.c:1257 */
+#line 315 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).string); }
-#line 1886 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1887 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 105: /* instr */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 1892 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1893 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 106: /* plain_instr */
-#line 303 "src/wast-parser.y" /* yacc.c:1257 */
+#line 304 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr); }
-#line 1898 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1899 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 107: /* block_instr */
-#line 303 "src/wast-parser.y" /* yacc.c:1257 */
+#line 304 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr); }
-#line 1904 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1905 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 108: /* block_sig */
-#line 316 "src/wast-parser.y" /* yacc.c:1257 */
+#line 317 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).types); }
-#line 1910 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1911 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 109: /* block */
-#line 298 "src/wast-parser.y" /* yacc.c:1257 */
+#line 299 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).block); }
-#line 1916 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1917 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 114: /* expr */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 1922 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1923 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 115: /* expr1 */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 1928 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1929 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 119: /* if_block */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 1934 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1935 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 120: /* if_ */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 1940 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1941 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 124: /* instr_list */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 1946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1947 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 125: /* expr_list */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 1952 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1953 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 126: /* const_expr */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 1958 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1959 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 129: /* func */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 1964 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1965 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 130: /* func_fields */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 1970 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1971 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 131: /* func_fields_import */
-#line 306 "src/wast-parser.y" /* yacc.c:1257 */
+#line 307 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1976 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1977 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 132: /* func_fields_import1 */
-#line 306 "src/wast-parser.y" /* yacc.c:1257 */
+#line 307 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1982 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1983 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 133: /* func_fields_import_result */
-#line 306 "src/wast-parser.y" /* yacc.c:1257 */
+#line 307 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1988 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1989 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 134: /* func_fields_body */
-#line 306 "src/wast-parser.y" /* yacc.c:1257 */
+#line 307 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1994 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 1995 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 135: /* func_fields_body1 */
-#line 306 "src/wast-parser.y" /* yacc.c:1257 */
+#line 307 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 2000 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2001 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 136: /* func_result_body */
-#line 306 "src/wast-parser.y" /* yacc.c:1257 */
+#line 307 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 2006 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2007 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 137: /* func_body */
-#line 306 "src/wast-parser.y" /* yacc.c:1257 */
+#line 307 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 2012 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2013 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 138: /* func_body1 */
-#line 306 "src/wast-parser.y" /* yacc.c:1257 */
+#line 307 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 2018 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2019 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 139: /* offset */
-#line 304 "src/wast-parser.y" /* yacc.c:1257 */
+#line 305 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr_list); }
-#line 2024 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2025 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 141: /* table */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 2030 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2031 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 142: /* table_fields */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 2036 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2037 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 144: /* memory */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 2042 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2043 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 145: /* memory_fields */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 2048 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2049 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 146: /* global */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 2054 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2055 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 147: /* global_fields */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 2060 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2061 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 148: /* import_desc */
-#line 309 "src/wast-parser.y" /* yacc.c:1257 */
+#line 310 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).import); }
-#line 2066 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2067 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 150: /* inline_import */
-#line 309 "src/wast-parser.y" /* yacc.c:1257 */
+#line 310 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).import); }
-#line 2072 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2073 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 151: /* export_desc */
-#line 302 "src/wast-parser.y" /* yacc.c:1257 */
+#line 303 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).export_); }
-#line 2078 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2079 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 153: /* inline_export */
-#line 302 "src/wast-parser.y" /* yacc.c:1257 */
+#line 303 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).export_); }
-#line 2084 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2085 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 156: /* module_field */
-#line 305 "src/wast-parser.y" /* yacc.c:1257 */
+#line 306 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module_fields); }
-#line 2090 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2091 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 157: /* module_fields_opt */
-#line 311 "src/wast-parser.y" /* yacc.c:1257 */
+#line 312 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 2096 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2097 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 158: /* module_fields */
-#line 311 "src/wast-parser.y" /* yacc.c:1257 */
+#line 312 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 2102 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2103 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 159: /* module */
-#line 311 "src/wast-parser.y" /* yacc.c:1257 */
+#line 312 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 2108 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2109 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 160: /* inline_module */
-#line 311 "src/wast-parser.y" /* yacc.c:1257 */
+#line 312 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 2114 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2115 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 161: /* script_var_opt */
-#line 317 "src/wast-parser.y" /* yacc.c:1257 */
+#line 318 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).var); }
-#line 2120 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2121 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 162: /* script_module */
-#line 312 "src/wast-parser.y" /* yacc.c:1257 */
+#line 313 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).script_module); }
-#line 2126 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2127 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 163: /* action */
-#line 297 "src/wast-parser.y" /* yacc.c:1257 */
+#line 298 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).action); }
-#line 2132 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2133 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 164: /* assertion */
-#line 299 "src/wast-parser.y" /* yacc.c:1257 */
+#line 300 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).command); }
-#line 2138 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2139 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 165: /* cmd */
-#line 299 "src/wast-parser.y" /* yacc.c:1257 */
+#line 300 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).command); }
-#line 2144 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2145 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 166: /* cmd_list */
-#line 300 "src/wast-parser.y" /* yacc.c:1257 */
+#line 301 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).commands); }
-#line 2150 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2151 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 168: /* const_list */
-#line 301 "src/wast-parser.y" /* yacc.c:1257 */
+#line 302 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).consts); }
-#line 2156 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2157 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
case 169: /* script */
-#line 313 "src/wast-parser.y" /* yacc.c:1257 */
+#line 314 "src/wast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).script); }
-#line 2162 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
+#line 2163 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */
break;
@@ -2450,166 +2451,166 @@ yyreduce:
switch (yyn)
{
case 2:
-#line 331 "src/wast-parser.y" /* yacc.c:1646 */
+#line 332 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.texts) = new TextVector();
(yyval.texts)->emplace_back((yyvsp[0].t_text).to_string());
}
-#line 2459 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2460 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 3:
-#line 335 "src/wast-parser.y" /* yacc.c:1646 */
+#line 336 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.texts) = (yyvsp[-1].texts);
(yyval.texts)->emplace_back((yyvsp[0].t_text).to_string());
}
-#line 2468 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2469 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 4:
-#line 341 "src/wast-parser.y" /* yacc.c:1646 */
+#line 342 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.texts) = new TextVector(); }
-#line 2474 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2475 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 6:
-#line 346 "src/wast-parser.y" /* yacc.c:1646 */
+#line 347 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.string) = new std::string();
RemoveEscapes((yyvsp[0].t_text).to_string_view(), std::back_inserter(*(yyval.string)));
}
-#line 2483 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2484 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 7:
-#line 355 "src/wast-parser.y" /* yacc.c:1646 */
+#line 356 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.types) = new TypeVector(); }
-#line 2489 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2490 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 8:
-#line 356 "src/wast-parser.y" /* yacc.c:1646 */
+#line 357 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.types) = (yyvsp[-1].types);
(yyval.types)->push_back((yyvsp[0].t_type));
}
-#line 2498 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2499 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 9:
-#line 362 "src/wast-parser.y" /* yacc.c:1646 */
+#line 363 "src/wast-parser.y" /* yacc.c:1646 */
{}
-#line 2504 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2505 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 10:
-#line 365 "src/wast-parser.y" /* yacc.c:1646 */
+#line 366 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.global) = new Global();
(yyval.global)->type = (yyvsp[0].t_type);
(yyval.global)->mutable_ = false;
}
-#line 2514 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2515 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 11:
-#line 370 "src/wast-parser.y" /* yacc.c:1646 */
+#line 371 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.global) = new Global();
(yyval.global)->type = (yyvsp[-1].t_type);
(yyval.global)->mutable_ = true;
}
-#line 2524 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2525 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 12:
-#line 378 "src/wast-parser.y" /* yacc.c:1646 */
+#line 379 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.func_sig) = (yyvsp[-1].func_sig); }
-#line 2530 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2531 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 14:
-#line 383 "src/wast-parser.y" /* yacc.c:1646 */
+#line 384 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = (yyvsp[0].func_sig);
PrependAndDelete((yyval.func_sig)->param_types, (yyvsp[-2].types));
}
-#line 2539 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2540 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 15:
-#line 387 "src/wast-parser.y" /* yacc.c:1646 */
+#line 388 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = (yyvsp[0].func_sig);
(yyval.func_sig)->param_types.insert((yyval.func_sig)->param_types.begin(), (yyvsp[-2].t_type));
// Ignore bind_var.
delete (yyvsp[-3].string);
}
-#line 2550 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2551 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 16:
-#line 396 "src/wast-parser.y" /* yacc.c:1646 */
+#line 397 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.func_sig) = new FuncSignature(); }
-#line 2556 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2557 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 17:
-#line 397 "src/wast-parser.y" /* yacc.c:1646 */
+#line 398 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = (yyvsp[0].func_sig);
PrependAndDelete((yyval.func_sig)->result_types, (yyvsp[-2].types));
}
-#line 2565 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2566 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 18:
-#line 404 "src/wast-parser.y" /* yacc.c:1646 */
+#line 405 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.table) = new Table();
(yyval.table)->elem_limits = (yyvsp[-1].limits);
}
-#line 2574 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2575 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 19:
-#line 410 "src/wast-parser.y" /* yacc.c:1646 */
+#line 411 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.memory) = new Memory();
(yyval.memory)->page_limits = (yyvsp[0].limits);
}
-#line 2583 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2584 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 20:
-#line 416 "src/wast-parser.y" /* yacc.c:1646 */
+#line 417 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.limits).has_max = false;
(yyval.limits).initial = (yyvsp[0].u64);
(yyval.limits).max = 0;
}
-#line 2593 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2594 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 21:
-#line 421 "src/wast-parser.y" /* yacc.c:1646 */
+#line 422 "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 2603 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2604 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 22:
-#line 428 "src/wast-parser.y" /* yacc.c:1646 */
+#line 429 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.var) = (yyvsp[-1].var); }
-#line 2609 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2610 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 23:
-#line 434 "src/wast-parser.y" /* yacc.c:1646 */
+#line 435 "src/wast-parser.y" /* yacc.c:1646 */
{
string_view sv = (yyvsp[0].t_literal).text.to_string_view();
if (Failed(ParseUint64(sv.begin(), sv.end(), &(yyval.u64)))) {
@@ -2617,90 +2618,90 @@ yyreduce:
WABT_PRINTF_STRING_VIEW_ARG(sv));
}
}
-#line 2621 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2622 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 24:
-#line 444 "src/wast-parser.y" /* yacc.c:1646 */
+#line 445 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.literal) = new Literal((yyvsp[0].t_literal));
}
-#line 2629 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2630 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 25:
-#line 447 "src/wast-parser.y" /* yacc.c:1646 */
+#line 448 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.literal) = new Literal((yyvsp[0].t_literal));
}
-#line 2637 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2638 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 26:
-#line 450 "src/wast-parser.y" /* yacc.c:1646 */
+#line 451 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.literal) = new Literal((yyvsp[0].t_literal));
}
-#line 2645 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2646 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 27:
-#line 456 "src/wast-parser.y" /* yacc.c:1646 */
+#line 457 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.var) = new Var((yyvsp[0].u64), (yylsp[0]));
}
-#line 2653 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2654 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 28:
-#line 459 "src/wast-parser.y" /* yacc.c:1646 */
+#line 460 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.var) = new Var((yyvsp[0].t_text).to_string_view(), (yylsp[0]));
}
-#line 2661 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2662 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 29:
-#line 464 "src/wast-parser.y" /* yacc.c:1646 */
+#line 465 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.vars) = new VarVector(); }
-#line 2667 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2668 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 30:
-#line 465 "src/wast-parser.y" /* yacc.c:1646 */
+#line 466 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.vars) = (yyvsp[-1].vars);
(yyval.vars)->emplace_back(MoveAndDelete((yyvsp[0].var)));
}
-#line 2676 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2677 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 31:
-#line 471 "src/wast-parser.y" /* yacc.c:1646 */
+#line 472 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.string) = new std::string(); }
-#line 2682 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2683 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 33:
-#line 475 "src/wast-parser.y" /* yacc.c:1646 */
+#line 476 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.string) = new std::string((yyvsp[0].t_text).to_string()); }
-#line 2688 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2689 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 34:
-#line 479 "src/wast-parser.y" /* yacc.c:1646 */
+#line 480 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.string) = new std::string(); }
-#line 2694 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2695 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 36:
-#line 484 "src/wast-parser.y" /* yacc.c:1646 */
+#line 485 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.u64) = 0; }
-#line 2700 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2701 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 37:
-#line 485 "src/wast-parser.y" /* yacc.c:1646 */
+#line 486 "src/wast-parser.y" /* yacc.c:1646 */
{
uint64_t offset64;
string_view sv = (yyvsp[0].t_text).to_string_view();
@@ -2716,17 +2717,17 @@ yyreduce:
}
(yyval.u64) = static_cast<uint32_t>(offset64);
}
-#line 2720 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2721 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 38:
-#line 502 "src/wast-parser.y" /* yacc.c:1646 */
+#line 503 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.u32) = USE_NATURAL_ALIGNMENT; }
-#line 2726 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2727 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 39:
-#line 503 "src/wast-parser.y" /* yacc.c:1646 */
+#line 504 "src/wast-parser.y" /* yacc.c:1646 */
{
string_view sv = (yyvsp[0].t_text).to_string_view();
if (Failed(ParseInt32(sv.begin(), sv.end(), &(yyval.u32),
@@ -2740,165 +2741,165 @@ yyreduce:
WastParserError(&(yylsp[0]), lexer, parser, "alignment must be power-of-two");
}
}
-#line 2744 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2745 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 40:
-#line 519 "src/wast-parser.y" /* yacc.c:1646 */
+#line 520 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = new ExprList((yyvsp[0].expr));
(yyval.expr_list)->back().loc = (yylsp[0]);
}
-#line 2753 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2754 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 41:
-#line 523 "src/wast-parser.y" /* yacc.c:1646 */
+#line 524 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = new ExprList((yyvsp[0].expr));
(yyval.expr_list)->back().loc = (yylsp[0]);
}
-#line 2762 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2763 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 43:
-#line 531 "src/wast-parser.y" /* yacc.c:1646 */
+#line 532 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new UnreachableExpr();
}
-#line 2770 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2771 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 44:
-#line 534 "src/wast-parser.y" /* yacc.c:1646 */
+#line 535 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new NopExpr();
}
-#line 2778 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2779 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 45:
-#line 537 "src/wast-parser.y" /* yacc.c:1646 */
+#line 538 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new DropExpr();
}
-#line 2786 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2787 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 46:
-#line 540 "src/wast-parser.y" /* yacc.c:1646 */
+#line 541 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new SelectExpr();
}
-#line 2794 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2795 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 47:
-#line 543 "src/wast-parser.y" /* yacc.c:1646 */
+#line 544 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new BrExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2802 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2803 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 48:
-#line 546 "src/wast-parser.y" /* yacc.c:1646 */
+#line 547 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new BrIfExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2810 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2811 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 49:
-#line 549 "src/wast-parser.y" /* yacc.c:1646 */
+#line 550 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new BrTableExpr((yyvsp[-1].vars), MoveAndDelete((yyvsp[0].var)));
}
-#line 2818 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2819 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 50:
-#line 552 "src/wast-parser.y" /* yacc.c:1646 */
+#line 553 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new ReturnExpr();
}
-#line 2826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2827 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 51:
-#line 555 "src/wast-parser.y" /* yacc.c:1646 */
+#line 556 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new CallExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2834 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2835 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 52:
-#line 558 "src/wast-parser.y" /* yacc.c:1646 */
+#line 559 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new CallIndirectExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2842 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2843 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 53:
-#line 561 "src/wast-parser.y" /* yacc.c:1646 */
+#line 562 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new GetLocalExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2850 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2851 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 54:
-#line 564 "src/wast-parser.y" /* yacc.c:1646 */
+#line 565 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new SetLocalExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2858 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2859 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 55:
-#line 567 "src/wast-parser.y" /* yacc.c:1646 */
+#line 568 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new TeeLocalExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2866 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2867 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 56:
-#line 570 "src/wast-parser.y" /* yacc.c:1646 */
+#line 571 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new GetGlobalExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2874 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2875 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 57:
-#line 573 "src/wast-parser.y" /* yacc.c:1646 */
+#line 574 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new SetGlobalExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2882 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2883 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 58:
-#line 576 "src/wast-parser.y" /* yacc.c:1646 */
+#line 577 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new LoadExpr((yyvsp[-2].t_opcode), (yyvsp[0].u32), (yyvsp[-1].u64));
}
-#line 2890 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2891 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 59:
-#line 579 "src/wast-parser.y" /* yacc.c:1646 */
+#line 580 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new StoreExpr((yyvsp[-2].t_opcode), (yyvsp[0].u32), (yyvsp[-1].u64));
}
-#line 2898 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2899 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 60:
-#line 582 "src/wast-parser.y" /* yacc.c:1646 */
+#line 583 "src/wast-parser.y" /* yacc.c:1646 */
{
Const const_;
const_.loc = (yylsp[-1]);
@@ -2909,108 +2910,108 @@ yyreduce:
}
(yyval.expr) = new ConstExpr(const_);
}
-#line 2913 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2914 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 61:
-#line 592 "src/wast-parser.y" /* yacc.c:1646 */
+#line 593 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new UnaryExpr((yyvsp[0].t_opcode));
}
-#line 2921 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2922 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 62:
-#line 595 "src/wast-parser.y" /* yacc.c:1646 */
+#line 596 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new BinaryExpr((yyvsp[0].t_opcode));
}
-#line 2929 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2930 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 63:
-#line 598 "src/wast-parser.y" /* yacc.c:1646 */
+#line 599 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new CompareExpr((yyvsp[0].t_opcode));
}
-#line 2937 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2938 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 64:
-#line 601 "src/wast-parser.y" /* yacc.c:1646 */
+#line 602 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new ConvertExpr((yyvsp[0].t_opcode));
}
-#line 2945 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 65:
-#line 604 "src/wast-parser.y" /* yacc.c:1646 */
+#line 605 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new CurrentMemoryExpr();
}
-#line 2953 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2954 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 66:
-#line 607 "src/wast-parser.y" /* yacc.c:1646 */
+#line 608 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new GrowMemoryExpr();
}
-#line 2961 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2962 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 67:
-#line 610 "src/wast-parser.y" /* yacc.c:1646 */
+#line 611 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new ThrowExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2969 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2970 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 68:
-#line 613 "src/wast-parser.y" /* yacc.c:1646 */
+#line 614 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = new RethrowExpr(MoveAndDelete((yyvsp[0].var)));
}
-#line 2977 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2978 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 69:
-#line 619 "src/wast-parser.y" /* yacc.c:1646 */
+#line 620 "src/wast-parser.y" /* yacc.c:1646 */
{
auto expr = new BlockExpr((yyvsp[-2].block));
expr->block->label = MoveAndDelete((yyvsp[-3].string));
CHECK_END_LABEL((yylsp[0]), expr->block->label, (yyvsp[0].string));
(yyval.expr) = expr;
}
-#line 2988 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 2989 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 70:
-#line 625 "src/wast-parser.y" /* yacc.c:1646 */
+#line 626 "src/wast-parser.y" /* yacc.c:1646 */
{
auto expr = new LoopExpr((yyvsp[-2].block));
expr->block->label = MoveAndDelete((yyvsp[-3].string));
CHECK_END_LABEL((yylsp[0]), expr->block->label, (yyvsp[0].string));
(yyval.expr) = expr;
}
-#line 2999 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3000 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 71:
-#line 631 "src/wast-parser.y" /* yacc.c:1646 */
+#line 632 "src/wast-parser.y" /* yacc.c:1646 */
{
auto expr = new IfExpr((yyvsp[-2].block));
expr->true_->label = MoveAndDelete((yyvsp[-3].string));
CHECK_END_LABEL((yylsp[0]), expr->true_->label, (yyvsp[0].string));
(yyval.expr) = expr;
}
-#line 3010 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3011 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 72:
-#line 637 "src/wast-parser.y" /* yacc.c:1646 */
+#line 638 "src/wast-parser.y" /* yacc.c:1646 */
{
auto expr = new IfExpr((yyvsp[-5].block), MoveAndDelete((yyvsp[-2].expr_list)));
expr->true_->label = MoveAndDelete((yyvsp[-6].string));
@@ -3018,342 +3019,342 @@ yyreduce:
CHECK_END_LABEL((yylsp[0]), expr->true_->label, (yyvsp[0].string));
(yyval.expr) = expr;
}
-#line 3022 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3023 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 73:
-#line 644 "src/wast-parser.y" /* yacc.c:1646 */
+#line 645 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyvsp[-3].block)->label = MoveAndDelete((yyvsp[-4].string));
(yyval.expr) = (yyvsp[-2].try_expr);
cast<TryExpr>((yyval.expr))->block = (yyvsp[-3].block);
CHECK_END_LABEL((yylsp[0]), (yyvsp[-3].block)->label, (yyvsp[0].string));
}
-#line 3033 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3034 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 74:
-#line 653 "src/wast-parser.y" /* yacc.c:1646 */
+#line 654 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.types) = (yyvsp[-1].types); }
-#line 3039 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3040 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 75:
-#line 656 "src/wast-parser.y" /* yacc.c:1646 */
+#line 657 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.block) = (yyvsp[0].block);
AppendAndDelete((yyval.block)->sig, (yyvsp[-1].types));
}
-#line 3048 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3049 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 76:
-#line 660 "src/wast-parser.y" /* yacc.c:1646 */
+#line 661 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.block) = new Block(MoveAndDelete((yyvsp[0].expr_list)));
}
-#line 3056 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3057 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 77:
-#line 666 "src/wast-parser.y" /* yacc.c:1646 */
+#line 667 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.catch_) = new Catch(MoveAndDelete((yyvsp[-1].var)), MoveAndDelete((yyvsp[0].expr_list)));
(yyval.catch_)->loc = (yylsp[-2]);
}
-#line 3065 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3066 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 78:
-#line 672 "src/wast-parser.y" /* yacc.c:1646 */
+#line 673 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.catch_) = new Catch(MoveAndDelete((yyvsp[0].expr_list)));
(yyval.catch_)->loc = (yylsp[-1]);
}
-#line 3074 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3075 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 81:
-#line 684 "src/wast-parser.y" /* yacc.c:1646 */
+#line 685 "src/wast-parser.y" /* yacc.c:1646 */
{
auto expr = new TryExpr();
expr->catches.push_back((yyvsp[0].catch_));
(yyval.try_expr) = expr;
}
-#line 3084 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3085 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 82:
-#line 689 "src/wast-parser.y" /* yacc.c:1646 */
+#line 690 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.try_expr) = (yyvsp[-1].try_expr);
cast<TryExpr>((yyval.try_expr))->catches.push_back((yyvsp[0].catch_));
}
-#line 3093 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3094 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 83:
-#line 696 "src/wast-parser.y" /* yacc.c:1646 */
+#line 697 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = (yyvsp[-1].expr_list); }
-#line 3099 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3100 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 84:
-#line 700 "src/wast-parser.y" /* yacc.c:1646 */
+#line 701 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = (yyvsp[0].expr_list);
(yyval.expr_list)->push_back((yyvsp[-1].expr));
(yyvsp[-1].expr)->loc = (yylsp[-1]);
}
-#line 3109 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3110 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 85:
-#line 705 "src/wast-parser.y" /* yacc.c:1646 */
+#line 706 "src/wast-parser.y" /* yacc.c:1646 */
{
auto expr = new BlockExpr((yyvsp[0].block));
expr->block->label = MoveAndDelete((yyvsp[-1].string));
expr->loc = (yylsp[-2]);
(yyval.expr_list) = new ExprList(expr);
}
-#line 3120 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3121 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 86:
-#line 711 "src/wast-parser.y" /* yacc.c:1646 */
+#line 712 "src/wast-parser.y" /* yacc.c:1646 */
{
auto expr = new LoopExpr((yyvsp[0].block));
expr->block->label = MoveAndDelete((yyvsp[-1].string));
expr->loc = (yylsp[-2]);
(yyval.expr_list) = new ExprList(expr);
}
-#line 3131 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3132 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 87:
-#line 717 "src/wast-parser.y" /* yacc.c:1646 */
+#line 718 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = (yyvsp[0].expr_list);
IfExpr* if_ = cast<IfExpr>(&(yyvsp[0].expr_list)->back());
if_->true_->label = MoveAndDelete((yyvsp[-1].string));
}
-#line 3141 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3142 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 88:
-#line 722 "src/wast-parser.y" /* yacc.c:1646 */
+#line 723 "src/wast-parser.y" /* yacc.c:1646 */
{
Block* block = (yyvsp[0].try_expr)->block;
block->label = MoveAndDelete((yyvsp[-1].string));
(yyvsp[0].try_expr)->loc = (yylsp[-2]);
(yyval.expr_list) = new ExprList((yyvsp[0].try_expr));
}
-#line 3152 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3153 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 89:
-#line 731 "src/wast-parser.y" /* yacc.c:1646 */
+#line 732 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.try_expr) = (yyvsp[0].try_expr);
Block* block = (yyval.try_expr)->block;
AppendAndDelete(block->sig, (yyvsp[-1].types));
}
-#line 3162 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3163 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 90:
-#line 736 "src/wast-parser.y" /* yacc.c:1646 */
+#line 737 "src/wast-parser.y" /* yacc.c:1646 */
{
Block* block = new Block();
block->exprs = MoveAndDelete((yyvsp[-1].expr_list));
(yyval.try_expr) = (yyvsp[0].try_expr);
(yyval.try_expr)->block = block;
}
-#line 3173 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3174 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 91:
-#line 745 "src/wast-parser.y" /* yacc.c:1646 */
+#line 746 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.catch_) = (yyvsp[-1].catch_);
}
-#line 3181 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3182 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 92:
-#line 748 "src/wast-parser.y" /* yacc.c:1646 */
+#line 749 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.catch_) = (yyvsp[-1].catch_);
}
-#line 3189 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3190 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 93:
-#line 754 "src/wast-parser.y" /* yacc.c:1646 */
+#line 755 "src/wast-parser.y" /* yacc.c:1646 */
{
auto expr = new TryExpr();
expr->catches.push_back((yyvsp[0].catch_));
(yyval.try_expr) = expr;
}
-#line 3199 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3200 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 94:
-#line 759 "src/wast-parser.y" /* yacc.c:1646 */
+#line 760 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.try_expr) = (yyvsp[-1].try_expr);
cast<TryExpr>((yyval.try_expr))->catches.push_back((yyvsp[0].catch_));
}
-#line 3208 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3209 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 95:
-#line 767 "src/wast-parser.y" /* yacc.c:1646 */
+#line 768 "src/wast-parser.y" /* yacc.c:1646 */
{
IfExpr* if_ = cast<IfExpr>(&(yyvsp[0].expr_list)->back());
(yyval.expr_list) = (yyvsp[0].expr_list);
Block* true_ = if_->true_;
AppendAndDelete(true_->sig, (yyvsp[-1].types));
}
-#line 3219 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3220 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 97:
-#line 776 "src/wast-parser.y" /* yacc.c:1646 */
+#line 777 "src/wast-parser.y" /* yacc.c:1646 */
{
Expr* expr = new IfExpr(new Block(MoveAndDelete((yyvsp[-5].expr_list))), MoveAndDelete((yyvsp[-1].expr_list)));
expr->loc = (yylsp[-7]);
(yyval.expr_list) = new ExprList(expr);
}
-#line 3229 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3230 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 98:
-#line 781 "src/wast-parser.y" /* yacc.c:1646 */
+#line 782 "src/wast-parser.y" /* yacc.c:1646 */
{
Expr* expr = new IfExpr(new Block(MoveAndDelete((yyvsp[-1].expr_list))));
expr->loc = (yylsp[-3]);
(yyval.expr_list) = new ExprList(expr);
}
-#line 3239 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3240 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 99:
-#line 786 "src/wast-parser.y" /* yacc.c:1646 */
+#line 787 "src/wast-parser.y" /* yacc.c:1646 */
{
Expr* expr = new IfExpr(new Block(MoveAndDelete((yyvsp[-5].expr_list))), MoveAndDelete((yyvsp[-1].expr_list)));
expr->loc = (yylsp[-8]);
(yyval.expr_list) = (yyvsp[-8].expr_list);
(yyval.expr_list)->push_back(expr);
}
-#line 3250 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3251 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 100:
-#line 792 "src/wast-parser.y" /* yacc.c:1646 */
+#line 793 "src/wast-parser.y" /* yacc.c:1646 */
{
Expr* expr = new IfExpr(new Block(MoveAndDelete((yyvsp[-1].expr_list))));
expr->loc = (yylsp[-4]);
(yyval.expr_list) = (yyvsp[-4].expr_list);
(yyval.expr_list)->push_back(expr);
}
-#line 3261 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3262 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 101:
-#line 798 "src/wast-parser.y" /* yacc.c:1646 */
+#line 799 "src/wast-parser.y" /* yacc.c:1646 */
{
Expr* expr = new IfExpr(new Block(MoveAndDelete((yyvsp[-1].expr_list))), MoveAndDelete((yyvsp[0].expr_list)));
expr->loc = (yylsp[-2]);
(yyval.expr_list) = (yyvsp[-2].expr_list);
(yyval.expr_list)->push_back(expr);
}
-#line 3272 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3273 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 102:
-#line 804 "src/wast-parser.y" /* yacc.c:1646 */
+#line 805 "src/wast-parser.y" /* yacc.c:1646 */
{
Expr* expr = new IfExpr(new Block(MoveAndDelete((yyvsp[0].expr_list))));
expr->loc = (yylsp[-1]);
(yyval.expr_list) = (yyvsp[-1].expr_list);
(yyval.expr_list)->push_back(expr);
}
-#line 3283 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3284 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 103:
-#line 813 "src/wast-parser.y" /* yacc.c:1646 */
+#line 814 "src/wast-parser.y" /* yacc.c:1646 */
{
CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "rethrow");
}
-#line 3291 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3292 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 104:
-#line 818 "src/wast-parser.y" /* yacc.c:1646 */
+#line 819 "src/wast-parser.y" /* yacc.c:1646 */
{
CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "throw");
}
-#line 3299 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3300 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 105:
-#line 824 "src/wast-parser.y" /* yacc.c:1646 */
+#line 825 "src/wast-parser.y" /* yacc.c:1646 */
{
CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "try");
}
-#line 3307 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3308 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 106:
-#line 830 "src/wast-parser.y" /* yacc.c:1646 */
+#line 831 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = new ExprList(); }
-#line 3313 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3314 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 107:
-#line 831 "src/wast-parser.y" /* yacc.c:1646 */
+#line 832 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = (yyvsp[0].expr_list);
(yyval.expr_list)->splice((yyval.expr_list)->begin(), MoveAndDelete((yyvsp[-1].expr_list)));
}
-#line 3322 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3323 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 108:
-#line 837 "src/wast-parser.y" /* yacc.c:1646 */
+#line 838 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = new ExprList(); }
-#line 3328 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3329 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 109:
-#line 838 "src/wast-parser.y" /* yacc.c:1646 */
+#line 839 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = (yyvsp[0].expr_list);
(yyval.expr_list)->splice((yyval.expr_list)->begin(), MoveAndDelete((yyvsp[-1].expr_list)));
}
-#line 3337 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3338 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 111:
-#line 849 "src/wast-parser.y" /* yacc.c:1646 */
+#line 850 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.exception) = new Exception(MoveAndDelete((yyvsp[-2].string)), MoveAndDelete((yyvsp[-1].types)));
}
-#line 3345 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3346 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 112:
-#line 854 "src/wast-parser.y" /* yacc.c:1646 */
+#line 855 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new ExceptionModuleField((yyvsp[0].exception));
}
-#line 3353 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3354 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 113:
-#line 861 "src/wast-parser.y" /* yacc.c:1646 */
+#line 862 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
ModuleField* main_field = &(yyval.module_fields)->front();
@@ -3365,30 +3366,30 @@ yyreduce:
MoveAndDelete((yyvsp[-2].string));
}
}
-#line 3369 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3370 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 114:
-#line 875 "src/wast-parser.y" /* yacc.c:1646 */
+#line 876 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new FuncModuleField((yyvsp[0].func));
field->func->decl.has_func_type = true;
field->func->decl.type_var = MoveAndDelete((yyvsp[-1].var));
(yyval.module_fields) = new ModuleFieldList(field);
}
-#line 3380 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3381 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 115:
-#line 881 "src/wast-parser.y" /* yacc.c:1646 */
+#line 882 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = new ModuleFieldList(new FuncModuleField((yyvsp[0].func)));
}
-#line 3388 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3389 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 116:
-#line 884 "src/wast-parser.y" /* yacc.c:1646 */
+#line 885 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ImportModuleField((yyvsp[-2].import), (yylsp[-2]));
field->import->kind = ExternalKind::Func;
@@ -3397,161 +3398,161 @@ yyreduce:
field->import->func->decl.type_var = MoveAndDelete((yyvsp[-1].var));
(yyval.module_fields) = new ModuleFieldList(field);
}
-#line 3401 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3402 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 117:
-#line 892 "src/wast-parser.y" /* yacc.c:1646 */
+#line 893 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ImportModuleField((yyvsp[-1].import), (yylsp[-1]));
field->import->kind = ExternalKind::Func;
field->import->func = (yyvsp[0].func);
(yyval.module_fields) = new ModuleFieldList(field);
}
-#line 3412 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3413 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 118:
-#line 898 "src/wast-parser.y" /* yacc.c:1646 */
+#line 899 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ExportModuleField((yyvsp[-1].export_), (yylsp[-1]));
field->export_->kind = ExternalKind::Func;
(yyval.module_fields) = (yyvsp[0].module_fields);
(yyval.module_fields)->push_back(field);
}
-#line 3423 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3424 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 119:
-#line 907 "src/wast-parser.y" /* yacc.c:1646 */
+#line 908 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
ReverseBindings(&(yyval.func)->decl.sig.param_types, &(yyval.func)->param_bindings);
}
-#line 3432 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3433 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 121:
-#line 915 "src/wast-parser.y" /* yacc.c:1646 */
+#line 916 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
PrependAndDelete((yyval.func)->decl.sig.param_types, (yyvsp[-2].types));
}
-#line 3441 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3442 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 122:
-#line 919 "src/wast-parser.y" /* yacc.c:1646 */
+#line 920 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
(yyval.func)->param_bindings.emplace(MoveAndDelete((yyvsp[-3].string)),
Binding((yylsp[-3]), (yyval.func)->decl.sig.param_types.size()));
(yyval.func)->decl.sig.param_types.insert((yyval.func)->decl.sig.param_types.begin(), (yyvsp[-2].t_type));
}
-#line 3452 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3453 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 123:
-#line 928 "src/wast-parser.y" /* yacc.c:1646 */
+#line 929 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.func) = new Func(); }
-#line 3458 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3459 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 124:
-#line 929 "src/wast-parser.y" /* yacc.c:1646 */
+#line 930 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
PrependAndDelete((yyval.func)->decl.sig.result_types, (yyvsp[-2].types));
}
-#line 3467 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3468 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 125:
-#line 936 "src/wast-parser.y" /* yacc.c:1646 */
+#line 937 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
ReverseBindings(&(yyval.func)->decl.sig.param_types, &(yyval.func)->param_bindings);
}
-#line 3476 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3477 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 127:
-#line 944 "src/wast-parser.y" /* yacc.c:1646 */
+#line 945 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
PrependAndDelete((yyval.func)->decl.sig.param_types, (yyvsp[-2].types));
}
-#line 3485 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3486 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 128:
-#line 948 "src/wast-parser.y" /* yacc.c:1646 */
+#line 949 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
(yyval.func)->param_bindings.emplace(MoveAndDelete((yyvsp[-3].string)),
Binding((yylsp[-3]), (yyval.func)->decl.sig.param_types.size()));
(yyval.func)->decl.sig.param_types.insert((yyval.func)->decl.sig.param_types.begin(), (yyvsp[-2].t_type));
}
-#line 3496 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3497 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 130:
-#line 958 "src/wast-parser.y" /* yacc.c:1646 */
+#line 959 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
PrependAndDelete((yyval.func)->decl.sig.result_types, (yyvsp[-2].types));
}
-#line 3505 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3506 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 131:
-#line 965 "src/wast-parser.y" /* yacc.c:1646 */
+#line 966 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
ReverseBindings(&(yyval.func)->local_types, &(yyval.func)->local_bindings);
}
-#line 3514 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3515 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 132:
-#line 972 "src/wast-parser.y" /* yacc.c:1646 */
+#line 973 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = new Func();
(yyval.func)->exprs = MoveAndDelete((yyvsp[0].expr_list));
}
-#line 3523 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3524 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 133:
-#line 976 "src/wast-parser.y" /* yacc.c:1646 */
+#line 977 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
PrependAndDelete((yyval.func)->local_types, (yyvsp[-2].types));
}
-#line 3532 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3533 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 134:
-#line 980 "src/wast-parser.y" /* yacc.c:1646 */
+#line 981 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = (yyvsp[0].func);
(yyval.func)->local_bindings.emplace(MoveAndDelete((yyvsp[-3].string)),
Binding((yylsp[-3]), (yyval.func)->local_types.size()));
(yyval.func)->local_types.insert((yyval.func)->local_types.begin(), (yyvsp[-2].t_type));
}
-#line 3543 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3544 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 135:
-#line 991 "src/wast-parser.y" /* yacc.c:1646 */
+#line 992 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = (yyvsp[-1].expr_list);
}
-#line 3551 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3552 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 137:
-#line 998 "src/wast-parser.y" /* yacc.c:1646 */
+#line 999 "src/wast-parser.y" /* yacc.c:1646 */
{
auto elem_segment = new ElemSegment();
elem_segment->table_var = MoveAndDelete((yyvsp[-3].var));
@@ -3559,11 +3560,11 @@ yyreduce:
elem_segment->vars = MoveAndDelete((yyvsp[-1].vars));
(yyval.module_field) = new ElemSegmentModuleField(elem_segment, (yylsp[-4]));
}
-#line 3563 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3564 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 138:
-#line 1005 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1006 "src/wast-parser.y" /* yacc.c:1646 */
{
auto elem_segment = new ElemSegment();
elem_segment->table_var = Var(0, (yylsp[-3]));
@@ -3571,11 +3572,11 @@ yyreduce:
elem_segment->vars = MoveAndDelete((yyvsp[-1].vars));
(yyval.module_field) = new ElemSegmentModuleField(elem_segment, (yylsp[-3]));
}
-#line 3575 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3576 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 139:
-#line 1015 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1016 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
ModuleField* main_field = &(yyval.module_fields)->front();
@@ -3587,41 +3588,41 @@ yyreduce:
MoveAndDelete((yyvsp[-2].string));
}
}
-#line 3591 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3592 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 140:
-#line 1029 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1030 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = new ModuleFieldList(new TableModuleField((yyvsp[0].table)));
}
-#line 3599 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3600 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 141:
-#line 1032 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1033 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ImportModuleField((yyvsp[-1].import));
field->import->kind = ExternalKind::Table;
field->import->table = (yyvsp[0].table);
(yyval.module_fields) = new ModuleFieldList(field);
}
-#line 3610 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3611 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 142:
-#line 1038 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1039 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ExportModuleField((yyvsp[-1].export_), (yylsp[-1]));
field->export_->kind = ExternalKind::Table;
(yyval.module_fields) = (yyvsp[0].module_fields);
(yyval.module_fields)->push_back(field);
}
-#line 3621 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3622 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 143:
-#line 1044 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1045 "src/wast-parser.y" /* yacc.c:1646 */
{
auto table = new Table();
table->elem_limits.initial = (yyvsp[-1].vars)->size();
@@ -3638,11 +3639,11 @@ yyreduce:
(yyval.module_fields)->push_back(new TableModuleField(table));
(yyval.module_fields)->push_back(new ElemSegmentModuleField(elem_segment, (yylsp[-2])));
}
-#line 3642 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3643 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 144:
-#line 1063 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1064 "src/wast-parser.y" /* yacc.c:1646 */
{
auto data_segment = new DataSegment();
data_segment->memory_var = MoveAndDelete((yyvsp[-3].var));
@@ -3650,11 +3651,11 @@ yyreduce:
RemoveEscapes(MoveAndDelete((yyvsp[-1].texts)), std::back_inserter(data_segment->data));
(yyval.module_field) = new DataSegmentModuleField(data_segment, (yylsp[-4]));
}
-#line 3654 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3655 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 145:
-#line 1070 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1071 "src/wast-parser.y" /* yacc.c:1646 */
{
auto data_segment = new DataSegment();
data_segment->memory_var = Var(0, (yylsp[-3]));
@@ -3662,11 +3663,11 @@ yyreduce:
RemoveEscapes(MoveAndDelete((yyvsp[-1].texts)), std::back_inserter(data_segment->data));
(yyval.module_field) = new DataSegmentModuleField(data_segment, (yylsp[-3]));
}
-#line 3666 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3667 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 146:
-#line 1080 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1081 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
ModuleField* main_field = &(yyval.module_fields)->front();
@@ -3678,41 +3679,41 @@ yyreduce:
MoveAndDelete((yyvsp[-2].string));
}
}
-#line 3682 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3683 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 147:
-#line 1094 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1095 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = new ModuleFieldList(new MemoryModuleField((yyvsp[0].memory)));
}
-#line 3690 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3691 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 148:
-#line 1097 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1098 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ImportModuleField((yyvsp[-1].import));
field->import->kind = ExternalKind::Memory;
field->import->memory = (yyvsp[0].memory);
(yyval.module_fields) = new ModuleFieldList(field);
}
-#line 3701 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3702 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 149:
-#line 1103 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1104 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ExportModuleField((yyvsp[-1].export_), (yylsp[-1]));
field->export_->kind = ExternalKind::Memory;
(yyval.module_fields) = (yyvsp[0].module_fields);
(yyval.module_fields)->push_back(field);
}
-#line 3712 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3713 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 150:
-#line 1109 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1110 "src/wast-parser.y" /* yacc.c:1646 */
{
auto data_segment = new DataSegment();
data_segment->memory_var = Var(kInvalidIndex);
@@ -3732,11 +3733,11 @@ yyreduce:
(yyval.module_fields)->push_back(new MemoryModuleField(memory));
(yyval.module_fields)->push_back(new DataSegmentModuleField(data_segment, (yylsp[-2])));
}
-#line 3736 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3737 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 151:
-#line 1131 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1132 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
ModuleField* main_field = &(yyval.module_fields)->front();
@@ -3748,43 +3749,43 @@ yyreduce:
MoveAndDelete((yyvsp[-2].string));
}
}
-#line 3752 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3753 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 152:
-#line 1145 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1146 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new GlobalModuleField((yyvsp[-1].global));
field->global->init_expr = MoveAndDelete((yyvsp[0].expr_list));
(yyval.module_fields) = new ModuleFieldList(field);
}
-#line 3762 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3763 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 153:
-#line 1150 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1151 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ImportModuleField((yyvsp[-1].import));
field->import->kind = ExternalKind::Global;
field->import->global = (yyvsp[0].global);
(yyval.module_fields) = new ModuleFieldList(field);
}
-#line 3773 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3774 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 154:
-#line 1156 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1157 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ExportModuleField((yyvsp[-1].export_), (yylsp[-1]));
field->export_->kind = ExternalKind::Global;
(yyval.module_fields) = (yyvsp[0].module_fields);
(yyval.module_fields)->push_back(field);
}
-#line 3784 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3785 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 155:
-#line 1167 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1168 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Func;
@@ -3793,11 +3794,11 @@ yyreduce:
(yyval.import)->func->decl.has_func_type = true;
(yyval.import)->func->decl.type_var = MoveAndDelete((yyvsp[-1].var));
}
-#line 3797 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3798 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 156:
-#line 1175 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1176 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Func;
@@ -3805,241 +3806,241 @@ yyreduce:
(yyval.import)->func->name = MoveAndDelete((yyvsp[-2].string));
(yyval.import)->func->decl.sig = MoveAndDelete((yyvsp[-1].func_sig));
}
-#line 3809 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3810 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 157:
-#line 1182 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1183 "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 = MoveAndDelete((yyvsp[-2].string));
}
-#line 3820 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3821 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 158:
-#line 1188 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1189 "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 = MoveAndDelete((yyvsp[-2].string));
}
-#line 3831 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3832 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 159:
-#line 1194 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1195 "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 = MoveAndDelete((yyvsp[-2].string));
}
-#line 3842 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3843 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 160:
-#line 1200 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1201 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Except;
(yyval.import)->except = (yyvsp[0].exception);
}
-#line 3852 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3853 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 161:
-#line 1208 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1209 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ImportModuleField((yyvsp[-1].import), (yylsp[-4]));
field->import->module_name = MoveAndDelete((yyvsp[-3].string));
field->import->field_name = MoveAndDelete((yyvsp[-2].string));
(yyval.module_field) = field;
}
-#line 3863 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3864 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 162:
-#line 1217 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1218 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->module_name = MoveAndDelete((yyvsp[-2].string));
(yyval.import)->field_name = MoveAndDelete((yyvsp[-1].string));
}
-#line 3873 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3874 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 163:
-#line 1225 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1226 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Func;
(yyval.export_)->var = MoveAndDelete((yyvsp[-1].var));
}
-#line 3883 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3884 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 164:
-#line 1230 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1231 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Table;
(yyval.export_)->var = MoveAndDelete((yyvsp[-1].var));
}
-#line 3893 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3894 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 165:
-#line 1235 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1236 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Memory;
(yyval.export_)->var = MoveAndDelete((yyvsp[-1].var));
}
-#line 3903 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3904 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 166:
-#line 1240 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1241 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Global;
(yyval.export_)->var = MoveAndDelete((yyvsp[-1].var));
}
-#line 3913 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3914 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 167:
-#line 1245 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1246 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Except;
(yyval.export_)->var = MoveAndDelete((yyvsp[-1].var));
}
-#line 3923 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3924 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 168:
-#line 1252 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1253 "src/wast-parser.y" /* yacc.c:1646 */
{
auto field = new ExportModuleField((yyvsp[-1].export_), (yylsp[-3]));
field->export_->name = MoveAndDelete((yyvsp[-2].string));
(yyval.module_field) = field;
}
-#line 3933 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3934 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 169:
-#line 1260 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1261 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->name = MoveAndDelete((yyvsp[-1].string));
}
-#line 3942 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3943 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 170:
-#line 1270 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1271 "src/wast-parser.y" /* yacc.c:1646 */
{
auto func_type = new FuncType();
func_type->sig = MoveAndDelete((yyvsp[-1].func_sig));
(yyval.module_field) = new FuncTypeModuleField(func_type, (yylsp[-2]));
}
-#line 3952 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3953 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 171:
-#line 1275 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1276 "src/wast-parser.y" /* yacc.c:1646 */
{
auto func_type = new FuncType();
func_type->name = MoveAndDelete((yyvsp[-2].string));
func_type->sig = MoveAndDelete((yyvsp[-1].func_sig));
(yyval.module_field) = new FuncTypeModuleField(func_type, (yylsp[-3]));
}
-#line 3963 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3964 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 172:
-#line 1284 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1285 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module_field) = new StartModuleField(MoveAndDelete((yyvsp[-1].var)), (yylsp[-2]));
}
-#line 3971 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3972 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 173:
-#line 1290 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1291 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields) = new ModuleFieldList((yyvsp[0].module_field)); }
-#line 3977 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3978 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 178:
-#line 1295 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1296 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields) = new ModuleFieldList((yyvsp[0].module_field)); }
-#line 3983 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3984 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 179:
-#line 1296 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1297 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields) = new ModuleFieldList((yyvsp[0].module_field)); }
-#line 3989 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3990 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 180:
-#line 1297 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1298 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields) = new ModuleFieldList((yyvsp[0].module_field)); }
-#line 3995 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 3996 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 181:
-#line 1298 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1299 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields) = new ModuleFieldList((yyvsp[0].module_field)); }
-#line 4001 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4002 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 182:
-#line 1299 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1300 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields) = new ModuleFieldList((yyvsp[0].module_field)); }
-#line 4007 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4008 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 183:
-#line 1300 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1301 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module_fields) = new ModuleFieldList((yyvsp[0].module_field)); }
-#line 4013 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4014 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 184:
-#line 1304 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1305 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.module) = new Module(); }
-#line 4019 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4020 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 186:
-#line 1309 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1310 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = new Module();
CheckImportOrdering(&(yylsp[0]), lexer, parser, (yyval.module), *(yyvsp[0].module_fields));
AppendModuleFields((yyval.module), MoveAndDelete((yyvsp[0].module_fields)));
}
-#line 4029 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4030 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 187:
-#line 1314 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1315 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
CheckImportOrdering(&(yylsp[0]), lexer, parser, (yyval.module), *(yyvsp[0].module_fields));
AppendModuleFields((yyval.module), MoveAndDelete((yyvsp[0].module_fields)));
}
-#line 4039 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4040 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 188:
-#line 1322 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1323 "src/wast-parser.y" /* yacc.c:1646 */
{
if ((yyvsp[0].script_module)->type == ScriptModule::Type::Text) {
(yyval.module) = (yyvsp[0].script_module)->text;
@@ -4057,71 +4058,71 @@ yyreduce:
}
delete (yyvsp[0].script_module);
}
-#line 4061 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4062 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+ break;
+
+ case 189:
+#line 1343 "src/wast-parser.y" /* yacc.c:1646 */
+ {
+ (yyval.module) = (yyvsp[0].module);
+ ResolveFuncTypes((yyval.module));
+ }
+#line 4071 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 190:
-#line 1349 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1353 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.var) = new Var(kInvalidIndex);
}
-#line 4069 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4079 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 191:
-#line 1352 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1356 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.var) = new Var((yyvsp[0].t_text).to_string_view(), (yylsp[0]));
}
-#line 4077 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4087 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 192:
-#line 1358 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1362 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script_module) = new ScriptModule(ScriptModule::Type::Text);
- (yyval.script_module)->text = (yyvsp[-1].module);
+ auto module = (yyvsp[-1].module);
+ (yyval.script_module)->text = module;
(yyval.script_module)->text->name = MoveAndDelete((yyvsp[-2].string));
(yyval.script_module)->text->loc = (yylsp[-3]);
-
- // Resolve func type variables where the signature was not specified
- // explicitly.
- for (Func* func: (yyvsp[-1].module)->funcs) {
- if (func->decl.has_func_type && IsEmptySignature(&func->decl.sig)) {
- FuncType* func_type = (yyvsp[-1].module)->GetFuncType(func->decl.type_var);
- if (func_type) {
- func->decl.sig = func_type->sig;
- }
- }
- }
+ ResolveFuncTypes(module);
}
-#line 4099 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4100 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 193:
-#line 1375 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1370 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script_module) = new ScriptModule(ScriptModule::Type::Binary);
(yyval.script_module)->binary.name = MoveAndDelete((yyvsp[-3].string));
(yyval.script_module)->binary.loc = (yylsp[-4]);
RemoveEscapes(MoveAndDelete((yyvsp[-1].texts)), std::back_inserter((yyval.script_module)->binary.data));
}
-#line 4110 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4111 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 194:
-#line 1381 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1376 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script_module) = new ScriptModule(ScriptModule::Type::Quoted);
(yyval.script_module)->quoted.name = MoveAndDelete((yyvsp[-3].string));
(yyval.script_module)->quoted.loc = (yylsp[-4]);
RemoveEscapes(MoveAndDelete((yyvsp[-1].texts)), std::back_inserter((yyval.script_module)->quoted.data));
}
-#line 4121 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4122 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 195:
-#line 1390 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1385 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.action) = new Action();
(yyval.action)->loc = (yylsp[-4]);
@@ -4131,11 +4132,11 @@ yyreduce:
(yyval.action)->invoke = new ActionInvoke();
(yyval.action)->invoke->args = MoveAndDelete((yyvsp[-1].consts));
}
-#line 4135 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4136 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 196:
-#line 1399 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1394 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.action) = new Action();
(yyval.action)->loc = (yylsp[-3]);
@@ -4143,127 +4144,127 @@ yyreduce:
(yyval.action)->type = ActionType::Get;
(yyval.action)->name = MoveAndDelete((yyvsp[-1].string));
}
-#line 4147 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4148 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 197:
-#line 1409 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1404 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertMalformedCommand((yyvsp[-2].script_module), MoveAndDelete((yyvsp[-1].string)));
}
-#line 4155 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4156 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 198:
-#line 1412 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1407 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertInvalidCommand((yyvsp[-2].script_module), MoveAndDelete((yyvsp[-1].string)));
}
-#line 4163 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4164 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 199:
-#line 1415 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1410 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertUnlinkableCommand((yyvsp[-2].script_module), MoveAndDelete((yyvsp[-1].string)));
}
-#line 4171 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4172 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 200:
-#line 1418 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1413 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertUninstantiableCommand((yyvsp[-2].script_module), MoveAndDelete((yyvsp[-1].string)));
}
-#line 4179 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4180 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 201:
-#line 1421 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1416 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertReturnCommand((yyvsp[-2].action), (yyvsp[-1].consts));
}
-#line 4187 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4188 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 202:
-#line 1424 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1419 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertReturnCanonicalNanCommand((yyvsp[-1].action));
}
-#line 4195 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4196 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 203:
-#line 1427 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1422 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertReturnArithmeticNanCommand((yyvsp[-1].action));
}
-#line 4203 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4204 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 204:
-#line 1430 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1425 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertTrapCommand((yyvsp[-2].action), MoveAndDelete((yyvsp[-1].string)));
}
-#line 4211 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4212 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 205:
-#line 1433 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1428 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new AssertExhaustionCommand((yyvsp[-2].action), MoveAndDelete((yyvsp[-1].string)));
}
-#line 4219 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4220 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 206:
-#line 1439 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1434 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new ActionCommand((yyvsp[0].action));
}
-#line 4227 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4228 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 208:
-#line 1443 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1438 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new ModuleCommand((yyvsp[0].module));
}
-#line 4235 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4236 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 209:
-#line 1446 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1441 "src/wast-parser.y" /* yacc.c:1646 */
{
auto* command = new RegisterCommand(MoveAndDelete((yyvsp[-2].string)), MoveAndDelete((yyvsp[-1].var)));
command->var.loc = (yylsp[-1]);
(yyval.command) = command;
}
-#line 4245 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4246 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 210:
-#line 1453 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1448 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.commands) = new CommandPtrVector();
(yyval.commands)->emplace_back((yyvsp[0].command));
}
-#line 4254 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4255 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 211:
-#line 1457 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1452 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.commands) = (yyvsp[-1].commands);
(yyval.commands)->emplace_back((yyvsp[0].command));
}
-#line 4263 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4264 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 212:
-#line 1464 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1459 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.const_).loc = (yylsp[-2]);
auto literal = MoveAndDelete((yyvsp[-1].literal));
@@ -4272,34 +4273,34 @@ yyreduce:
literal.text.c_str());
}
}
-#line 4276 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4277 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 213:
-#line 1474 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1469 "src/wast-parser.y" /* yacc.c:1646 */
{ (yyval.consts) = new ConstVector(); }
-#line 4282 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4283 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 214:
-#line 1475 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1470 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.consts) = (yyvsp[-1].consts);
(yyval.consts)->push_back((yyvsp[0].const_));
}
-#line 4291 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4292 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 215:
-#line 1482 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1477 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script) = new Script();
}
-#line 4299 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4300 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 216:
-#line 1485 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1480 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script) = new Script();
(yyval.script)->commands = MoveAndDelete((yyvsp[0].commands));
@@ -4362,26 +4363,26 @@ yyreduce:
}
}
}
-#line 4366 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4367 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 217:
-#line 1547 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1542 "src/wast-parser.y" /* yacc.c:1646 */
{
(yyval.script) = new Script();
(yyval.script)->commands.emplace_back(new ModuleCommand((yyvsp[0].module)));
}
-#line 4375 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4376 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
case 218:
-#line 1556 "src/wast-parser.y" /* yacc.c:1646 */
+#line 1551 "src/wast-parser.y" /* yacc.c:1646 */
{ parser->script = (yyvsp[0].script); }
-#line 4381 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4382 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
break;
-#line 4385 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
+#line 4386 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -4616,7 +4617,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 1559 "src/wast-parser.y" /* yacc.c:1906 */
+#line 1554 "src/wast-parser.y" /* yacc.c:1906 */
Result ParseConst(Type type, const Literal& literal, Const* out) {
@@ -4651,20 +4652,6 @@ bool IsEmptySignature(const FuncSignature* sig) {
return sig->result_types.empty() && sig->param_types.empty();
}
-void append_implicit_func_declaration(Location* loc,
- Module* module,
- FuncDeclaration* decl) {
- if (decl->has_func_type)
- return;
-
- int sig_index = module->GetFuncTypeIndex(*decl);
- if (sig_index == -1) {
- module->AppendImplicitFuncType(*loc, decl->sig);
- } else {
- decl->sig = module->func_types[sig_index]->sig;
- }
-}
-
void CheckImportOrdering(Location* loc, WastLexer* lexer, WastParser* parser,
Module* module, const ModuleFieldList& fields) {
for (const ModuleField& field: fields) {
@@ -4693,7 +4680,6 @@ void AppendModuleFields(Module* module, ModuleFieldList&& fields) {
switch (field.type) {
case ModuleFieldType::Func: {
Func* func = cast<FuncModuleField>(&field)->func;
- append_implicit_func_declaration(&field.loc, module, &func->decl);
name = &func->name;
bindings = &module->func_bindings;
index = module->funcs.size();
@@ -4715,8 +4701,6 @@ void AppendModuleFields(Module* module, ModuleFieldList&& fields) {
switch (import->kind) {
case ExternalKind::Func:
- append_implicit_func_declaration(&field.loc, module,
- &import->func->decl);
name = &import->func->name;
bindings = &module->func_bindings;
index = module->funcs.size();
@@ -4846,6 +4830,45 @@ void AppendModuleFields(Module* module, ModuleFieldList&& fields) {
module->fields.splice(module->fields.end(), fields);
}
+void ResolveFuncTypes(Module* module) {
+ for (ModuleField& field : module->fields) {
+ Func* func = nullptr;
+ if (field.type == ModuleFieldType::Func) {
+ func = dyn_cast<FuncModuleField>(&field)->func;
+ } else if (field.type == ModuleFieldType::Import) {
+ Import* import = dyn_cast<ImportModuleField>(&field)->import;
+ if (import->kind == ExternalKind::Func) {
+ func = import->func;
+ } else {
+ continue;
+ }
+ } else {
+ continue;
+ }
+
+ // Resolve func type variables where the signature was not specified
+ // explicitly, e.g.: (func (type 1) ...)
+ if (func->decl.has_func_type && IsEmptySignature(&func->decl.sig)) {
+ FuncType* func_type = module->GetFuncType(func->decl.type_var);
+ if (func_type) {
+ func->decl.sig = func_type->sig;
+ }
+ }
+
+ // Resolve implicitly defined function types, e.g.: (func (param i32) ...)
+ if (!func->decl.has_func_type) {
+ Index func_type_index = module->GetFuncTypeIndex(func->decl.sig);
+ if (func_type_index == kInvalidIndex) {
+ auto func_type = new FuncType();
+ func_type->sig = func->decl.sig;
+ ModuleFieldList fields;
+ fields.push_back(new FuncTypeModuleField(func_type, field.loc));
+ AppendModuleFields(module, std::move(fields));
+ }
+ }
+ }
+}
+
Result ParseWast(WastLexer * lexer, Script * *out_script,
ErrorHandler * error_handler, WastParseOptions * options) {
WastParser parser;
diff --git a/src/wast-lexer.cc b/src/wast-lexer.cc
index 342a31b2..0c4c3bd0 100644
--- a/src/wast-lexer.cc
+++ b/src/wast-lexer.cc
@@ -284,8 +284,8 @@ int WastLexer::GetToken(Token* lval, Location* loc, WastParser* parser) {
digit = [0-9];
hexdigit = [0-9a-fA-F];
- num = digit+;
- hexnum = hexdigit+;
+ num = digit ("_"? digit)*;
+ hexnum = hexdigit ("_"? hexdigit)*;
letter = [a-zA-Z];
symbol = [+\-*\\/^~=<>!?@#$%&|:`.'];
character = [^"\\\x00-\x1f]
@@ -294,12 +294,15 @@ int WastLexer::GetToken(Token* lval, Location* loc, WastParser* parser) {
sign = [+-];
nat = num | "0x" hexnum;
int = sign nat;
- hexfloat = sign? "0x" hexnum ("." hexdigit*)? "p" sign? num;
+ frac = num;
+ hexfrac = hexnum;
+ hexfloat = sign? "0x" hexnum "." hexfrac?
+ | sign? "0x" hexnum ("." hexfrac?)? [pP] sign? num;
infinity = sign? "inf";
nan = sign? "nan"
| sign? "nan:0x" hexnum;
- float = sign? num "." digit*
- | sign? num ("." digit*)? [eE] sign? num;
+ float = sign? num "." frac?
+ | sign? num ("." frac?)? [eE] sign? num;
text = '"' character* '"';
name = "$" (letter | digit | "_" | symbol)+;
diff --git a/src/wast-parser.y b/src/wast-parser.y
index 4541da97..39423abd 100644
--- a/src/wast-parser.y
+++ b/src/wast-parser.y
@@ -122,6 +122,7 @@ static void CheckImportOrdering(Location* loc,
Module* module,
const ModuleFieldList&);
static void AppendModuleFields(Module*, ModuleFieldList&&);
+static void ResolveFuncTypes(Module*);
class BinaryErrorHandlerModule : public ErrorHandler {
public:
@@ -1339,7 +1340,10 @@ module :
;
inline_module :
- module_fields
+ module_fields {
+ $$ = $1;
+ ResolveFuncTypes($$);
+ }
;
@@ -1357,20 +1361,11 @@ script_var_opt :
script_module :
LPAR MODULE bind_var_opt module_fields_opt RPAR {
$$ = new ScriptModule(ScriptModule::Type::Text);
- $$->text = $4;
+ auto module = $4;
+ $$->text = module;
$$->text->name = MoveAndDelete($3);
$$->text->loc = @2;
-
- // Resolve func type variables where the signature was not specified
- // explicitly.
- for (Func* func: $4->funcs) {
- if (func->decl.has_func_type && IsEmptySignature(&func->decl.sig)) {
- FuncType* func_type = $4->GetFuncType(func->decl.type_var);
- if (func_type) {
- func->decl.sig = func_type->sig;
- }
- }
- }
+ ResolveFuncTypes(module);
}
| LPAR MODULE bind_var_opt BIN text_list RPAR {
$$ = new ScriptModule(ScriptModule::Type::Binary);
@@ -1590,20 +1585,6 @@ bool IsEmptySignature(const FuncSignature* sig) {
return sig->result_types.empty() && sig->param_types.empty();
}
-void append_implicit_func_declaration(Location* loc,
- Module* module,
- FuncDeclaration* decl) {
- if (decl->has_func_type)
- return;
-
- int sig_index = module->GetFuncTypeIndex(*decl);
- if (sig_index == -1) {
- module->AppendImplicitFuncType(*loc, decl->sig);
- } else {
- decl->sig = module->func_types[sig_index]->sig;
- }
-}
-
void CheckImportOrdering(Location* loc, WastLexer* lexer, WastParser* parser,
Module* module, const ModuleFieldList& fields) {
for (const ModuleField& field: fields) {
@@ -1632,7 +1613,6 @@ void AppendModuleFields(Module* module, ModuleFieldList&& fields) {
switch (field.type) {
case ModuleFieldType::Func: {
Func* func = cast<FuncModuleField>(&field)->func;
- append_implicit_func_declaration(&field.loc, module, &func->decl);
name = &func->name;
bindings = &module->func_bindings;
index = module->funcs.size();
@@ -1654,8 +1634,6 @@ void AppendModuleFields(Module* module, ModuleFieldList&& fields) {
switch (import->kind) {
case ExternalKind::Func:
- append_implicit_func_declaration(&field.loc, module,
- &import->func->decl);
name = &import->func->name;
bindings = &module->func_bindings;
index = module->funcs.size();
@@ -1785,6 +1763,45 @@ void AppendModuleFields(Module* module, ModuleFieldList&& fields) {
module->fields.splice(module->fields.end(), fields);
}
+void ResolveFuncTypes(Module* module) {
+ for (ModuleField& field : module->fields) {
+ Func* func = nullptr;
+ if (field.type == ModuleFieldType::Func) {
+ func = dyn_cast<FuncModuleField>(&field)->func;
+ } else if (field.type == ModuleFieldType::Import) {
+ Import* import = dyn_cast<ImportModuleField>(&field)->import;
+ if (import->kind == ExternalKind::Func) {
+ func = import->func;
+ } else {
+ continue;
+ }
+ } else {
+ continue;
+ }
+
+ // Resolve func type variables where the signature was not specified
+ // explicitly, e.g.: (func (type 1) ...)
+ if (func->decl.has_func_type && IsEmptySignature(&func->decl.sig)) {
+ FuncType* func_type = module->GetFuncType(func->decl.type_var);
+ if (func_type) {
+ func->decl.sig = func_type->sig;
+ }
+ }
+
+ // Resolve implicitly defined function types, e.g.: (func (param i32) ...)
+ if (!func->decl.has_func_type) {
+ Index func_type_index = module->GetFuncTypeIndex(func->decl.sig);
+ if (func_type_index == kInvalidIndex) {
+ auto func_type = new FuncType();
+ func_type->sig = func->decl.sig;
+ ModuleFieldList fields;
+ fields.push_back(new FuncTypeModuleField(func_type, field.loc));
+ AppendModuleFields(module, std::move(fields));
+ }
+ }
+ }
+}
+
Result ParseWast(WastLexer * lexer, Script * *out_script,
ErrorHandler * error_handler, WastParseOptions * options) {
WastParser parser;