diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ir.cc | 9 | ||||
-rw-r--r-- | src/ir.h | 2 | ||||
-rw-r--r-- | src/literal.cc | 28 | ||||
-rw-r--r-- | src/prebuilt/wast-lexer-gen.cc | 5108 | ||||
-rw-r--r-- | src/prebuilt/wast-parser-gen.cc | 1165 | ||||
-rw-r--r-- | src/wast-lexer.cc | 13 | ||||
-rw-r--r-- | src/wast-parser.y | 77 |
7 files changed, 3424 insertions, 2978 deletions
@@ -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) {} @@ -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; |