/* Generated by re2c 0.16 */
#line 1 "src/wast-lexer.cc"
/*
 * Copyright 2016 WebAssembly Community Group participants
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "src/wast-lexer.h"

#include <cassert>
#include <cstdio>

#include "config.h"

#include "src/error-handler.h"
#include "src/lexer-source.h"
#include "src/wast-parser.h"

#define YYMAXFILL 29

#define INITIAL_LEXER_BUFFER_SIZE (64 * 1024)

#define ERROR(...) parser->Error(GetLocation(), __VA_ARGS__)

#define BEGIN(c) cond = (c)
#define FILL(n)              \
  do {                       \
    if (Failed(Fill((n)))) { \
      RETURN(Eof);           \
    }                        \
  } while (0)

#define MAYBE_MALFORMED_UTF8(desc)                \
  if (!(eof_ && limit_ - cursor_ <= YYMAXFILL)) { \
    ERROR("malformed utf-8%s", desc);             \
  }                                               \
  continue

#define yytext (next_pos_)
#define yyleng (cursor_ - next_pos_)

/* p must be a pointer somewhere in the lexer buffer */
#define FILE_OFFSET(p) ((p) - (buffer_) + buffer_file_offset_)
#define COLUMN(p) (FILE_OFFSET(p) - line_file_offset_ + 1)

#define COMMENT_NESTING (comment_nesting_)
#define NEWLINE                               \
  do {                                        \
    line_++;                                  \
    line_file_offset_ = FILE_OFFSET(cursor_); \
  } while (0)

#define RETURN(token) return Token(GetLocation(), TokenType::token);

#define RETURN_LITERAL(token, literal)          \
  return Token(GetLocation(), TokenType::token, \
               MakeLiteral(LiteralType::literal))

#define RETURN_TYPE(token, type) \
  return Token(GetLocation(), TokenType::token, Type::type)

#define RETURN_OPCODE0(token) \
  return Token(GetLocation(), TokenType::token, Opcode::token)

#define RETURN_OPCODE(token, opcode) \
  return Token(GetLocation(), TokenType::token, Opcode::opcode)

#define RETURN_TEXT(token) \
  return Token(GetLocation(), TokenType::token, GetText())

#define RETURN_TEXT_AT(token, at) \
  return Token(GetLocation(), TokenType::token, GetText(at))

namespace wabt {

WastLexer::WastLexer(std::unique_ptr<LexerSource> source, string_view filename)
    : source_(std::move(source)),
      line_finder_(source_->Clone()),
      filename_(filename),
      line_(1),
      comment_nesting_(0),
      buffer_file_offset_(0),
      line_file_offset_(0),
      eof_(false),
      buffer_(nullptr),
      buffer_size_(0),
      marker_(nullptr),
      next_pos_(nullptr),
      cursor_(nullptr),
      limit_(nullptr) {}

WastLexer::~WastLexer() {
  delete[] buffer_;
}

// static
std::unique_ptr<WastLexer> WastLexer::CreateFileLexer(string_view filename) {
  std::unique_ptr<LexerSource> source(new LexerSourceFile(filename));
  return std::unique_ptr<WastLexer>(new WastLexer(std::move(source), filename));
}

// static
std::unique_ptr<WastLexer> WastLexer::CreateBufferLexer(string_view filename,
                                                        const void* data,
                                                        size_t size) {
  std::unique_ptr<LexerSource> source(new LexerSourceBuffer(data, size));
  return std::unique_ptr<WastLexer>(new WastLexer(std::move(source), filename));
}

Location WastLexer::GetLocation() {
  return Location(filename_, line_, COLUMN(next_pos_), COLUMN(cursor_));
}

Literal WastLexer::MakeLiteral(LiteralType type) {
  return Literal(type, GetText());
}

std::string WastLexer::GetText(size_t offset) {
  return std::string(yytext + offset, yyleng - offset);
}

Result WastLexer::Fill(size_t need) {
  if (eof_)
    return Result::Error;
  size_t free = next_pos_ - buffer_;
  assert(static_cast<size_t>(cursor_ - buffer_) >= free);
  // Our buffer is too small, need to realloc.
  if (free < need) {
    char* old_buffer = buffer_;
    size_t old_buffer_size = buffer_size_;
    size_t new_buffer_size =
        old_buffer_size ? old_buffer_size * 2 : INITIAL_LEXER_BUFFER_SIZE;
    // Make sure there is enough space for the bytes requested (need) and an
    // additional YYMAXFILL bytes which is needed for the re2c lexer
    // implementation when the eof is reached.
    while ((new_buffer_size - old_buffer_size) + free < need + YYMAXFILL)
      new_buffer_size *= 2;

    char* new_buffer = new char[new_buffer_size];
    if (limit_ > next_pos_)
      memmove(new_buffer, next_pos_, limit_ - next_pos_);
    buffer_ = new_buffer;
    buffer_size_ = new_buffer_size;
    next_pos_ = new_buffer + (next_pos_ - old_buffer) - free;
    marker_ = new_buffer + (marker_ - old_buffer) - free;
    cursor_ = new_buffer + (cursor_ - old_buffer) - free;
    limit_ = new_buffer + (limit_ - old_buffer) - free;
    buffer_file_offset_ += free;
    free += new_buffer_size - old_buffer_size;
    delete[] old_buffer;
  } else {
    // Shift everything down to make more room in the buffer.
    if (limit_ > next_pos_)
      memmove(buffer_, next_pos_, limit_ - next_pos_);
    next_pos_ -= free;
    marker_ -= free;
    cursor_ -= free;
    limit_ -= free;
    buffer_file_offset_ += free;
  }
  // Read the new data into the buffer.
  limit_ += source_->Fill(limit_, free);

  // If at the end of file, need to fill YYMAXFILL more characters with "fake
  // characters", that are not a lexeme nor a lexeme suffix. see
  // http://re2c.org/examples/example_03.html.
  if (limit_ < buffer_ + buffer_size_ - YYMAXFILL) {
    eof_ = true;
    // Fill with 0xff, since that is an invalid utf-8 byte.
    memset(limit_, 0xff, YYMAXFILL);
    limit_ += YYMAXFILL;
  }
  return Result::Ok;
}

Token WastLexer::GetToken(WastParser* parser) {
#line 189 "src/prebuilt/wast-lexer-gen.cc"

enum YYCONDTYPE {
	YYCOND_i,
	YYCOND_BAD_TEXT,
	YYCOND_LINE_COMMENT,
	YYCOND_BLOCK_COMMENT,
};

#line 186 "src/wast-lexer.cc"
  YYCONDTYPE cond = YYCOND_i;  // i is the initial state.

  for (;;) {
    next_pos_ = cursor_;
    
#line 204 "src/prebuilt/wast-lexer-gen.cc"
{
	unsigned char yych;
	unsigned int yyaccept = 0;
	if (cond < 2) {
		if (cond < 1) {
			goto YYCOND_i;
		} else {
			goto YYCOND_BAD_TEXT;
		}
	} else {
		if (cond < 3) {
			goto YYCOND_LINE_COMMENT;
		} else {
			goto YYCOND_BLOCK_COMMENT;
		}
	}
/* *********************************** */
YYCOND_BAD_TEXT:
	if ((limit_ - cursor_) < 5) FILL(5);
	yych = *cursor_;
	if (yych <= 0x7F) {
		if (yych <= '!') {
			if (yych == '\n') goto yy5;
			if (yych >= ' ') goto yy7;
		} else {
			if (yych <= '"') goto yy9;
			if (yych == '\\') goto yy11;
			goto yy7;
		}
	} else {
		if (yych <= 0xEF) {
			if (yych <= 0xC1) goto yy12;
			if (yych <= 0xDF) goto yy14;
			if (yych <= 0xE0) goto yy15;
			goto yy16;
		} else {
			if (yych <= 0xF0) goto yy17;
			if (yych <= 0xF3) goto yy18;
			if (yych <= 0xF4) goto yy19;
			goto yy12;
		}
	}
	++cursor_;
yy4:
#line 248 "src/wast-lexer.cc"
	{ ERROR("illegal character in string");
                                  continue; }
#line 252 "src/prebuilt/wast-lexer-gen.cc"
yy5:
	++cursor_;
	BEGIN(YYCOND_i);
#line 241 "src/wast-lexer.cc"
	{ ERROR("newline in string");
                                  NEWLINE;
                                  continue; }
#line 260 "src/prebuilt/wast-lexer-gen.cc"
yy7:
	++cursor_;
#line 240 "src/wast-lexer.cc"
	{ continue; }
#line 265 "src/prebuilt/wast-lexer-gen.cc"
yy9:
	++cursor_;
	BEGIN(YYCOND_i);
#line 247 "src/wast-lexer.cc"
	{ RETURN_TEXT(Text); }
#line 271 "src/prebuilt/wast-lexer-gen.cc"
yy11:
	yyaccept = 0;
	yych = *(marker_ = ++cursor_);
	if (yych <= 'f') {
		if (yych <= '/') {
			if (yych <= '!') {
				if (yych == '\n') goto yy4;
				goto yy20;
			} else {
				if (yych <= '"') goto yy7;
				if (yych == '\'') goto yy7;
				goto yy20;
			}
		} else {
			if (yych <= 'F') {
				if (yych <= '9') goto yy22;
				if (yych <= '@') goto yy20;
				goto yy22;
			} else {
				if (yych == '\\') goto yy7;
				if (yych <= '`') goto yy20;
				goto yy22;
			}
		}
	} else {
		if (yych <= 0x7F) {
			if (yych <= 'q') {
				if (yych == 'n') goto yy7;
				goto yy20;
			} else {
				if (yych == 's') goto yy20;
				if (yych <= 't') goto yy7;
				goto yy20;
			}
		} else {
			if (yych <= 0xEF) {
				if (yych <= 0xC1) goto yy4;
				if (yych <= 0xDF) goto yy23;
				if (yych <= 0xE0) goto yy25;
				goto yy26;
			} else {
				if (yych <= 0xF0) goto yy27;
				if (yych <= 0xF3) goto yy28;
				if (yych <= 0xF4) goto yy29;
				goto yy4;
			}
		}
	}
yy12:
	++cursor_;
yy13:
#line 250 "src/wast-lexer.cc"
	{ MAYBE_MALFORMED_UTF8(" in string"); }
#line 325 "src/prebuilt/wast-lexer-gen.cc"
yy14:
	yych = *++cursor_;
	if (yych <= 0x7F) goto yy13;
	if (yych <= 0xBF) goto yy7;
	goto yy13;
yy15:
	yyaccept = 1;
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x9F) goto yy13;
	if (yych <= 0xBF) goto yy30;
	goto yy13;
yy16:
	yyaccept = 1;
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x7F) goto yy13;
	if (yych <= 0xBF) goto yy30;
	goto yy13;
yy17:
	yyaccept = 1;
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x8F) goto yy13;
	if (yych <= 0xBF) goto yy31;
	goto yy13;
yy18:
	yyaccept = 1;
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x7F) goto yy13;
	if (yych <= 0xBF) goto yy31;
	goto yy13;
yy19:
	yyaccept = 1;
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x7F) goto yy13;
	if (yych <= 0x8F) goto yy31;
	goto yy13;
yy20:
	++cursor_;
yy21:
#line 244 "src/wast-lexer.cc"
	{ ERROR("bad escape \"%.*s\"",
                                        static_cast<int>(yyleng), yytext);
                                  continue; }
#line 368 "src/prebuilt/wast-lexer-gen.cc"
yy22:
	yych = *++cursor_;
	if (yych <= '@') {
		if (yych <= '/') goto yy21;
		if (yych <= '9') goto yy7;
		goto yy21;
	} else {
		if (yych <= 'F') goto yy7;
		if (yych <= '`') goto yy21;
		if (yych <= 'f') goto yy7;
		goto yy21;
	}
yy23:
	yych = *++cursor_;
	if (yych <= 0x7F) goto yy24;
	if (yych <= 0xBF) goto yy20;
yy24:
	cursor_ = marker_;
	if (yyaccept == 0) {
		goto yy4;
	} else {
		goto yy13;
	}
yy25:
	yych = *++cursor_;
	if (yych <= 0x9F) goto yy24;
	if (yych <= 0xBF) goto yy23;
	goto yy24;
yy26:
	yych = *++cursor_;
	if (yych <= 0x7F) goto yy24;
	if (yych <= 0xBF) goto yy23;
	goto yy24;
yy27:
	yych = *++cursor_;
	if (yych <= 0x8F) goto yy24;
	if (yych <= 0xBF) goto yy26;
	goto yy24;
yy28:
	yych = *++cursor_;
	if (yych <= 0x7F) goto yy24;
	if (yych <= 0xBF) goto yy26;
	goto yy24;
yy29:
	yych = *++cursor_;
	if (yych <= 0x7F) goto yy24;
	if (yych <= 0x8F) goto yy26;
	goto yy24;
yy30:
	yych = *++cursor_;
	if (yych <= 0x7F) goto yy24;
	if (yych <= 0xBF) goto yy7;
	goto yy24;
yy31:
	++cursor_;
	if ((yych = *cursor_) <= 0x7F) goto yy24;
	if (yych <= 0xBF) goto yy30;
	goto yy24;
/* *********************************** */
YYCOND_BLOCK_COMMENT:
	if ((limit_ - cursor_) < 4) FILL(4);
	yych = *cursor_;
	if (yych <= 0x7F) {
		if (yych <= '\'') {
			if (yych == '\n') goto yy36;
		} else {
			if (yych <= '(') goto yy38;
			if (yych == ';') goto yy39;
		}
	} else {
		if (yych <= 0xEF) {
			if (yych <= 0xC1) goto yy40;
			if (yych <= 0xDF) goto yy42;
			if (yych <= 0xE0) goto yy43;
			goto yy44;
		} else {
			if (yych <= 0xF0) goto yy45;
			if (yych <= 0xF3) goto yy46;
			if (yych <= 0xF4) goto yy47;
			goto yy40;
		}
	}
yy34:
	++cursor_;
yy35:
#line 559 "src/wast-lexer.cc"
	{ continue; }
#line 456 "src/prebuilt/wast-lexer-gen.cc"
yy36:
	++cursor_;
#line 558 "src/wast-lexer.cc"
	{ NEWLINE; continue; }
#line 461 "src/prebuilt/wast-lexer-gen.cc"
yy38:
	yych = *++cursor_;
	if (yych == ';') goto yy48;
	goto yy35;
yy39:
	yych = *++cursor_;
	if (yych == ')') goto yy50;
	goto yy35;
yy40:
	++cursor_;
yy41:
#line 560 "src/wast-lexer.cc"
	{ MAYBE_MALFORMED_UTF8(" in block comment"); }
#line 475 "src/prebuilt/wast-lexer-gen.cc"
yy42:
	yych = *++cursor_;
	if (yych <= 0x7F) goto yy41;
	if (yych <= 0xBF) goto yy34;
	goto yy41;
yy43:
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x9F) goto yy41;
	if (yych <= 0xBF) goto yy52;
	goto yy41;
yy44:
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x7F) goto yy41;
	if (yych <= 0xBF) goto yy52;
	goto yy41;
yy45:
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x8F) goto yy41;
	if (yych <= 0xBF) goto yy54;
	goto yy41;
yy46:
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x7F) goto yy41;
	if (yych <= 0xBF) goto yy54;
	goto yy41;
yy47:
	yych = *(marker_ = ++cursor_);
	if (yych <= 0x7F) goto yy41;
	if (yych <= 0x8F) goto yy54;
	goto yy41;
yy48:
	++cursor_;
#line 554 "src/wast-lexer.cc"
	{ COMMENT_NESTING++; continue; }
#line 510 "src/prebuilt/wast-lexer-gen.cc"
yy50:
	++cursor_;
#line 555 "src/wast-lexer.cc"
	{ if (--COMMENT_NESTING == 0)
                                    BEGIN(YYCOND_i);
                                  continue; }
#line 517 "src/prebuilt/wast-lexer-gen.cc"
yy52:
	yych = *++cursor_;
	if (yych <= 0x7F) goto yy53;
	if (yych <= 0xBF) goto yy34;
yy53:
	cursor_ = marker_;
	goto yy41;
yy54:
	++cursor_;
	if ((yych = *cursor_) <= 0x7F) goto yy53;
	if (yych <= 0xBF) goto yy52;
	goto yy53;
/* *********************************** */
YYCOND_LINE_COMMENT:
	{
		static const unsigned char yybm[] = {
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128,   0, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			128, 128, 128, 128, 128, 128, 128, 128, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
		};
		if ((limit_ - cursor_) < 2) FILL(2);
		yych = *cursor_;
		if (yybm[0+yych] & 128) {
			goto yy57;
		}
		if (yych <= 0xE0) {
			if (yych <= '\n') goto yy60;
			if (yych <= 0xC1) goto yy62;
			if (yych <= 0xDF) goto yy64;
			goto yy65;
		} else {
			if (yych <= 0xF0) {
				if (yych <= 0xEF) goto yy66;
				goto yy67;
			} else {
				if (yych <= 0xF3) goto yy68;
				if (yych <= 0xF4) goto yy69;
				goto yy62;
			}
		}
yy57:
		yyaccept = 0;
		marker_ = ++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yybm[0+yych] & 128) {
			goto yy57;
		}
		if (yych <= 0xEF) {
			if (yych <= 0xC1) goto yy59;
			if (yych <= 0xDF) goto yy70;
			if (yych <= 0xE0) goto yy72;
			goto yy73;
		} else {
			if (yych <= 0xF0) goto yy74;
			if (yych <= 0xF3) goto yy75;
			if (yych <= 0xF4) goto yy76;
		}
yy59:
#line 552 "src/wast-lexer.cc"
		{ continue; }
#line 608 "src/prebuilt/wast-lexer-gen.cc"
yy60:
		++cursor_;
		BEGIN(YYCOND_i);
#line 551 "src/wast-lexer.cc"
		{ NEWLINE; continue; }
#line 614 "src/prebuilt/wast-lexer-gen.cc"
yy62:
		++cursor_;
yy63:
#line 565 "src/wast-lexer.cc"
		{ MAYBE_MALFORMED_UTF8(""); }
#line 620 "src/prebuilt/wast-lexer-gen.cc"
yy64:
		yych = *++cursor_;
		if (yych <= 0x7F) goto yy63;
		if (yych <= 0xBF) goto yy57;
		goto yy63;
yy65:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x9F) goto yy63;
		if (yych <= 0xBF) goto yy70;
		goto yy63;
yy66:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy63;
		if (yych <= 0xBF) goto yy70;
		goto yy63;
yy67:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x8F) goto yy63;
		if (yych <= 0xBF) goto yy73;
		goto yy63;
yy68:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy63;
		if (yych <= 0xBF) goto yy73;
		goto yy63;
yy69:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy63;
		if (yych <= 0x8F) goto yy73;
		goto yy63;
yy70:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy71;
		if (yych <= 0xBF) goto yy57;
yy71:
		cursor_ = marker_;
		if (yyaccept == 0) {
			goto yy59;
		} else {
			goto yy63;
		}
yy72:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x9F) goto yy71;
		if (yych <= 0xBF) goto yy70;
		goto yy71;
yy73:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy71;
		if (yych <= 0xBF) goto yy70;
		goto yy71;
yy74:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x8F) goto yy71;
		if (yych <= 0xBF) goto yy73;
		goto yy71;
yy75:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy71;
		if (yych <= 0xBF) goto yy73;
		goto yy71;
yy76:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy71;
		if (yych <= 0x8F) goto yy73;
		goto yy71;
	}
/* *********************************** */
YYCOND_i:
	{
		static const unsigned char yybm[] = {
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   4,   0,   0,   0,   4,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			 36, 104,   0, 104, 104, 104, 104, 104, 
			 32,  32, 104, 104,  40, 104, 104, 104, 
			248, 248, 248, 248, 248, 248, 248, 248, 
			248, 248, 104,  32, 104, 104, 104, 104, 
			104, 232, 232, 232, 232, 232, 232, 104, 
			104, 104, 104, 104, 104, 104, 104, 104, 
			104, 104, 104, 104, 104, 104, 104, 104, 
			104, 104, 104,  40,  72,  40, 104, 104, 
			104, 232, 232, 232, 232, 232, 232, 104, 
			104, 104, 104, 104, 104, 104, 104, 104, 
			104, 104, 104, 104, 104, 104, 104, 104, 
			104, 104, 104,  40, 104,  40, 104,  32, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
			  0,   0,   0,   0,   0,   0,   0,   0, 
		};
		if ((limit_ - cursor_) < 29) FILL(29);
		yych = *cursor_;
		if (yybm[0+yych] & 4) {
			goto yy81;
		}
		if (yych <= 'e') {
			if (yych <= '+') {
				if (yych <= '#') {
					if (yych <= 0x1F) {
						if (yych <= 0x08) goto yy79;
						if (yych <= '\n') goto yy84;
					} else {
						if (yych == '"') goto yy89;
						goto yy86;
					}
				} else {
					if (yych <= '(') {
						if (yych <= '$') goto yy91;
						if (yych <= '\'') goto yy86;
						goto yy92;
					} else {
						if (yych <= ')') goto yy94;
						if (yych <= '*') goto yy86;
						goto yy96;
					}
				}
			} else {
				if (yych <= ':') {
					if (yych <= '/') {
						if (yych == '-') goto yy96;
						goto yy86;
					} else {
						if (yych <= '0') goto yy97;
						if (yych <= '9') goto yy99;
						goto yy86;
					}
				} else {
					if (yych <= 'a') {
						if (yych <= ';') goto yy101;
						if (yych <= '`') goto yy86;
						goto yy102;
					} else {
						if (yych <= 'b') goto yy103;
						if (yych <= 'c') goto yy104;
						if (yych <= 'd') goto yy105;
						goto yy106;
					}
				}
			}
		} else {
			if (yych <= 'r') {
				if (yych <= 'l') {
					if (yych <= 'h') {
						if (yych <= 'f') goto yy107;
						if (yych <= 'g') goto yy108;
						goto yy86;
					} else {
						if (yych <= 'i') goto yy109;
						if (yych <= 'k') goto yy86;
						goto yy110;
					}
				} else {
					if (yych <= 'o') {
						if (yych <= 'm') goto yy111;
						if (yych <= 'n') goto yy112;
						goto yy113;
					} else {
						if (yych <= 'p') goto yy114;
						if (yych <= 'q') goto yy115;
						goto yy116;
					}
				}
			} else {
				if (yych <= 0xC1) {
					if (yych <= 'u') {
						if (yych <= 's') goto yy117;
						if (yych <= 't') goto yy118;
						goto yy119;
					} else {
						if (yych <= '~') goto yy86;
						if (yych >= 0x80) goto yy120;
					}
				} else {
					if (yych <= 0xEF) {
						if (yych <= 0xDF) goto yy122;
						if (yych <= 0xE0) goto yy123;
						goto yy124;
					} else {
						if (yych <= 0xF0) goto yy125;
						if (yych <= 0xF3) goto yy126;
						if (yych <= 0xF4) goto yy127;
						goto yy120;
					}
				}
			}
		}
yy79:
		++cursor_;
yy80:
#line 564 "src/wast-lexer.cc"
		{ ERROR("unexpected char"); continue; }
#line 843 "src/prebuilt/wast-lexer-gen.cc"
yy81:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yybm[0+yych] & 4) {
			goto yy81;
		}
#line 562 "src/wast-lexer.cc"
		{ continue; }
#line 853 "src/prebuilt/wast-lexer-gen.cc"
yy84:
		++cursor_;
#line 561 "src/wast-lexer.cc"
		{ NEWLINE; continue; }
#line 858 "src/prebuilt/wast-lexer-gen.cc"
yy86:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
yy87:
		if (yybm[0+yych] & 8) {
			goto yy86;
		}
yy88:
#line 563 "src/wast-lexer.cc"
		{ RETURN_TEXT(Reserved); }
#line 870 "src/prebuilt/wast-lexer-gen.cc"
yy89:
		yyaccept = 0;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x1F) goto yy90;
		if (yych <= 0x7F) goto yy129;
		if (yych <= 0xC1) goto yy90;
		if (yych <= 0xF4) goto yy129;
yy90:
		BEGIN(YYCOND_BAD_TEXT);
#line 239 "src/wast-lexer.cc"
		{ continue; }
#line 882 "src/prebuilt/wast-lexer-gen.cc"
yy91:
		yych = *++cursor_;
		if (yych <= '\'') {
			if (yych == '!') goto yy141;
			if (yych <= '"') goto yy88;
			goto yy141;
		} else {
			if (yych <= ':') {
				if (yych <= ')') goto yy88;
				goto yy141;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy141;
				goto yy88;
			}
		}
yy92:
		++cursor_;
		if ((yych = *cursor_) == ';') goto yy143;
#line 230 "src/wast-lexer.cc"
		{ RETURN(Lpar); }
#line 904 "src/prebuilt/wast-lexer-gen.cc"
yy94:
		++cursor_;
#line 231 "src/wast-lexer.cc"
		{ RETURN(Rpar); }
#line 909 "src/prebuilt/wast-lexer-gen.cc"
yy96:
		yych = *++cursor_;
		if (yych <= 'h') {
			if (yych <= '/') goto yy87;
			if (yych <= '0') goto yy145;
			if (yych <= '9') goto yy147;
			goto yy87;
		} else {
			if (yych <= 'i') goto yy149;
			if (yych == 'n') goto yy150;
			goto yy87;
		}
yy97:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 16) {
			goto yy99;
		}
		if (yych <= ';') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych >= '#') goto yy86;
			} else {
				if (yych <= '-') {
					if (yych >= '*') goto yy86;
				} else {
					if (yych <= '.') goto yy151;
					if (yych <= ':') goto yy86;
				}
			}
		} else {
			if (yych <= 'd') {
				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 yy153;
					goto yy86;
				} else {
					if (yych <= 'x') goto yy155;
					if (yych <= '~') goto yy86;
				}
			}
		}
yy98:
#line 232 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Nat, Int); }
#line 961 "src/prebuilt/wast-lexer-gen.cc"
yy99:
		++cursor_;
		if ((limit_ - cursor_) < 3) FILL(3);
		yych = *cursor_;
		if (yybm[0+yych] & 16) {
			goto yy99;
		}
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy98;
				goto yy86;
			} else {
				if (yych <= ')') goto yy98;
				if (yych == '.') goto yy151;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy98;
				if (yych == 'E') goto yy153;
				goto yy86;
			} else {
				if (yych <= 'd') {
					if (yych <= '_') goto yy154;
					goto yy86;
				} else {
					if (yych <= 'e') goto yy153;
					if (yych <= '~') goto yy86;
					goto yy98;
				}
			}
		}
yy101:
		yych = *++cursor_;
		if (yych == ';') goto yy156;
		goto yy80;
yy102:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'l') goto yy158;
			if (yych <= 'm') goto yy87;
			goto yy159;
		} else {
			if (yych <= 'r') goto yy87;
			if (yych <= 's') goto yy160;
			if (yych <= 't') goto yy161;
			goto yy87;
		}
yy103:
		yych = *++cursor_;
		if (yych <= 'k') {
			if (yych == 'i') goto yy162;
			goto yy87;
		} else {
			if (yych <= 'l') goto yy163;
			if (yych == 'r') goto yy164;
			goto yy87;
		}
yy104:
		yych = *++cursor_;
		if (yych == 'a') goto yy166;
		if (yych == 'u') goto yy167;
		goto yy87;
yy105:
		yych = *++cursor_;
		if (yych == 'a') goto yy168;
		if (yych == 'r') goto yy169;
		goto yy87;
yy106:
		yych = *++cursor_;
		if (yych <= 'm') {
			if (yych == 'l') goto yy170;
			goto yy87;
		} else {
			if (yych <= 'n') goto yy171;
			if (yych == 'x') goto yy172;
			goto yy87;
		}
yy107:
		yych = *++cursor_;
		if (yych <= '5') {
			if (yych == '3') goto yy173;
			goto yy87;
		} else {
			if (yych <= '6') goto yy174;
			if (yych == 'u') goto yy175;
			goto yy87;
		}
yy108:
		yych = *++cursor_;
		if (yych <= 'k') {
			if (yych == 'e') goto yy176;
			goto yy87;
		} else {
			if (yych <= 'l') goto yy177;
			if (yych == 'r') goto yy178;
			goto yy87;
		}
yy109:
		yych = *++cursor_;
		if (yych <= 'e') {
			if (yych <= '3') {
				if (yych <= '2') goto yy87;
				goto yy179;
			} else {
				if (yych == '6') goto yy180;
				goto yy87;
			}
		} else {
			if (yych <= 'l') {
				if (yych <= 'f') goto yy181;
				goto yy87;
			} else {
				if (yych <= 'm') goto yy183;
				if (yych <= 'n') goto yy184;
				goto yy87;
			}
		}
yy110:
		yych = *++cursor_;
		if (yych == 'o') goto yy185;
		goto yy87;
yy111:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy186;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy187;
			if (yych == 'u') goto yy188;
			goto yy87;
		}
yy112:
		yych = *++cursor_;
		if (yych == 'a') goto yy189;
		if (yych == 'o') goto yy190;
		goto yy87;
yy113:
		yych = *++cursor_;
		if (yych == 'f') goto yy191;
		goto yy87;
yy114:
		yych = *++cursor_;
		if (yych == 'a') goto yy192;
		goto yy87;
yy115:
		yych = *++cursor_;
		if (yych == 'u') goto yy193;
		goto yy87;
yy116:
		yych = *++cursor_;
		if (yych == 'e') goto yy194;
		goto yy87;
yy117:
		yych = *++cursor_;
		if (yych <= 'g') {
			if (yych == 'e') goto yy195;
			goto yy87;
		} else {
			if (yych <= 'h') goto yy196;
			if (yych == 't') goto yy197;
			goto yy87;
		}
yy118:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy198;
		case 'e':	goto yy199;
		case 'h':	goto yy200;
		case 'r':	goto yy201;
		case 'y':	goto yy202;
		default:	goto yy87;
		}
yy119:
		yych = *++cursor_;
		if (yych == 'n') goto yy203;
		goto yy87;
yy120:
		++cursor_;
yy121:
#line 565 "src/wast-lexer.cc"
		{ MAYBE_MALFORMED_UTF8(""); }
#line 1145 "src/prebuilt/wast-lexer-gen.cc"
yy122:
		yych = *++cursor_;
		if (yych <= 0x7F) goto yy121;
		if (yych <= 0xBF) goto yy79;
		goto yy121;
yy123:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x9F) goto yy121;
		if (yych <= 0xBF) goto yy204;
		goto yy121;
yy124:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy121;
		if (yych <= 0xBF) goto yy204;
		goto yy121;
yy125:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x8F) goto yy121;
		if (yych <= 0xBF) goto yy205;
		goto yy121;
yy126:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy121;
		if (yych <= 0xBF) goto yy205;
		goto yy121;
yy127:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy121;
		if (yych <= 0x8F) goto yy205;
		goto yy121;
yy128:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
yy129:
		if (yybm[0+yych] & 32) {
			goto yy128;
		}
		if (yych <= 0xDF) {
			if (yych <= '"') {
				if (yych >= ' ') goto yy131;
			} else {
				if (yych <= '\\') goto yy133;
				if (yych >= 0xC2) goto yy134;
			}
		} else {
			if (yych <= 0xF0) {
				if (yych <= 0xE0) goto yy135;
				if (yych <= 0xEF) goto yy136;
				goto yy137;
			} else {
				if (yych <= 0xF3) goto yy138;
				if (yych <= 0xF4) goto yy139;
			}
		}
yy130:
		cursor_ = marker_;
		if (yyaccept == 0) {
			goto yy90;
		} else {
			goto yy121;
		}
yy131:
		++cursor_;
#line 238 "src/wast-lexer.cc"
		{ RETURN_TEXT(Text); }
#line 1217 "src/prebuilt/wast-lexer-gen.cc"
yy133:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '[') {
			if (yych <= '\'') {
				if (yych == '"') goto yy128;
				if (yych <= '&') goto yy130;
				goto yy128;
			} else {
				if (yych <= '9') {
					if (yych <= '/') goto yy130;
					goto yy206;
				} else {
					if (yych <= '@') goto yy130;
					if (yych <= 'F') goto yy206;
					goto yy130;
				}
			}
		} else {
			if (yych <= 'n') {
				if (yych <= '`') {
					if (yych <= '\\') goto yy128;
					goto yy130;
				} else {
					if (yych <= 'f') goto yy206;
					if (yych <= 'm') goto yy130;
					goto yy128;
				}
			} else {
				if (yych <= 'r') {
					if (yych <= 'q') goto yy130;
					goto yy128;
				} else {
					if (yych == 't') goto yy128;
					goto yy130;
				}
			}
		}
yy134:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy130;
		if (yych <= 0xBF) goto yy128;
		goto yy130;
yy135:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x9F) goto yy130;
		if (yych <= 0xBF) goto yy134;
		goto yy130;
yy136:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy130;
		if (yych <= 0xBF) goto yy134;
		goto yy130;
yy137:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x8F) goto yy130;
		if (yych <= 0xBF) goto yy136;
		goto yy130;
yy138:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy130;
		if (yych <= 0xBF) goto yy136;
		goto yy130;
yy139:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy130;
		if (yych <= 0x8F) goto yy136;
		goto yy130;
yy140:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
yy141:
		if (yybm[0+yych] & 64) {
			goto yy140;
		}
		if (yych <= ')') goto yy142;
		if (yych <= ',') goto yy86;
		if (yych <= ';') goto yy142;
		if (yych <= '}') goto yy86;
yy142:
#line 547 "src/wast-lexer.cc"
		{ RETURN_TEXT(Var); }
#line 1314 "src/prebuilt/wast-lexer-gen.cc"
yy143:
		++cursor_;
		BEGIN(YYCOND_BLOCK_COMMENT);
#line 553 "src/wast-lexer.cc"
		{ COMMENT_NESTING = 1; continue; }
#line 1320 "src/prebuilt/wast-lexer-gen.cc"
yy145:
		++cursor_;
		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;
					goto yy151;
				} else {
					if (yych <= '/') goto yy86;
					if (yych <= '9') goto yy147;
					goto yy86;
				}
			}
		} else {
			if (yych <= '_') {
				if (yych <= 'D') {
					if (yych >= '<') goto yy86;
				} else {
					if (yych <= 'E') goto yy153;
					if (yych <= '^') goto yy86;
					goto yy207;
				}
			} else {
				if (yych <= 'w') {
					if (yych == 'e') goto yy153;
					goto yy86;
				} else {
					if (yych <= 'x') goto yy208;
					if (yych <= '~') goto yy86;
				}
			}
		}
yy146:
#line 233 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Int, Int); }
#line 1363 "src/prebuilt/wast-lexer-gen.cc"
yy147:
		++cursor_;
		if ((limit_ - cursor_) < 3) FILL(3);
		yych = *cursor_;
		if (yych <= '9') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy146;
				goto yy86;
			} else {
				if (yych <= '-') {
					if (yych <= ')') goto yy146;
					goto yy86;
				} else {
					if (yych <= '.') goto yy151;
					if (yych <= '/') goto yy86;
					goto yy147;
				}
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') {
					if (yych <= ':') goto yy86;
					goto yy146;
				} else {
					if (yych == 'E') goto yy153;
					goto yy86;
				}
			} else {
				if (yych <= 'd') {
					if (yych <= '_') goto yy207;
					goto yy86;
				} else {
					if (yych <= 'e') goto yy153;
					if (yych <= '~') goto yy86;
					goto yy146;
				}
			}
		}
yy149:
		yych = *++cursor_;
		if (yych == 'n') goto yy209;
		goto yy87;
yy150:
		yych = *++cursor_;
		if (yych == 'a') goto yy189;
		goto yy87;
yy151:
		++cursor_;
		if ((yych = *cursor_) <= '9') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy152;
				if (yych <= '/') goto yy86;
				goto yy210;
			}
		} else {
			if (yych <= 'E') {
				if (yych == ';') goto yy152;
				if (yych <= 'D') goto yy86;
				goto yy153;
			} else {
				if (yych == 'e') goto yy153;
				if (yych <= '~') goto yy86;
			}
		}
yy152:
#line 234 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Float, Float); }
#line 1435 "src/prebuilt/wast-lexer-gen.cc"
yy153:
		yych = *++cursor_;
		if (yych <= ',') {
			if (yych == '+') goto yy212;
			goto yy87;
		} else {
			if (yych <= '-') goto yy212;
			if (yych <= '/') goto yy87;
			if (yych <= '9') goto yy213;
			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:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yybm[0+yych] & 128) {
			goto yy215;
		}
		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;
			}
		}
yy156:
		++cursor_;
		BEGIN(YYCOND_LINE_COMMENT);
#line 550 "src/wast-lexer.cc"
		{ continue; }
#line 1494 "src/prebuilt/wast-lexer-gen.cc"
yy158:
		yych = *++cursor_;
		if (yych == 'i') goto yy217;
		goto yy87;
yy159:
		yych = *++cursor_;
		if (yych == 'y') goto yy218;
		goto yy87;
yy160:
		yych = *++cursor_;
		if (yych == 's') goto yy219;
		goto yy87;
yy161:
		yych = *++cursor_;
		if (yych == 'o') goto yy220;
		goto yy87;
yy162:
		yych = *++cursor_;
		if (yych == 'n') goto yy221;
		goto yy87;
yy163:
		yych = *++cursor_;
		if (yych == 'o') goto yy222;
		goto yy87;
yy164:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy165;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '_') goto yy223;
				if (yych <= '~') goto yy86;
			}
		}
yy165:
#line 263 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Br); }
#line 1539 "src/prebuilt/wast-lexer-gen.cc"
yy166:
		yych = *++cursor_;
		if (yych == 'l') goto yy224;
		if (yych == 't') goto yy225;
		goto yy87;
yy167:
		yych = *++cursor_;
		if (yych == 'r') goto yy226;
		goto yy87;
yy168:
		yych = *++cursor_;
		if (yych == 't') goto yy227;
		goto yy87;
yy169:
		yych = *++cursor_;
		if (yych == 'o') goto yy228;
		goto yy87;
yy170:
		yych = *++cursor_;
		if (yych == 'e') goto yy229;
		if (yych == 's') goto yy230;
		goto yy87;
yy171:
		yych = *++cursor_;
		if (yych == 'd') goto yy231;
		goto yy87;
yy172:
		yych = *++cursor_;
		if (yych == 'c') goto yy233;
		if (yych == 'p') goto yy234;
		goto yy87;
yy173:
		yych = *++cursor_;
		if (yych == '2') goto yy235;
		goto yy87;
yy174:
		yych = *++cursor_;
		if (yych == '4') goto yy237;
		goto yy87;
yy175:
		yych = *++cursor_;
		if (yych == 'n') goto yy239;
		goto yy87;
yy176:
		yych = *++cursor_;
		if (yych == 't') goto yy240;
		goto yy87;
yy177:
		yych = *++cursor_;
		if (yych == 'o') goto yy242;
		goto yy87;
yy178:
		yych = *++cursor_;
		if (yych == 'o') goto yy243;
		goto yy87;
yy179:
		yych = *++cursor_;
		if (yych == '2') goto yy244;
		goto yy87;
yy180:
		yych = *++cursor_;
		if (yych == '4') goto yy246;
		goto yy87;
yy181:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 259 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(If); }
#line 1610 "src/prebuilt/wast-lexer-gen.cc"
yy183:
		yych = *++cursor_;
		if (yych == 'p') goto yy248;
		goto yy87;
yy184:
		yych = *++cursor_;
		if (yych == 'f') goto yy249;
		if (yych == 'v') goto yy251;
		goto yy87;
yy185:
		yych = *++cursor_;
		if (yych == 'c') goto yy252;
		if (yych == 'o') goto yy253;
		goto yy87;
yy186:
		yych = *++cursor_;
		if (yych == 'm') goto yy254;
		goto yy87;
yy187:
		yych = *++cursor_;
		if (yych == 'd') goto yy255;
		goto yy87;
yy188:
		yych = *++cursor_;
		if (yych == 't') goto yy256;
		goto yy87;
yy189:
		yych = *++cursor_;
		if (yych == 'n') goto yy258;
		goto yy87;
yy190:
		yych = *++cursor_;
		if (yych == 'p') goto yy260;
		goto yy87;
yy191:
		yych = *++cursor_;
		if (yych == 'f') goto yy262;
		goto yy87;
yy192:
		yych = *++cursor_;
		if (yych == 'r') goto yy263;
		goto yy87;
yy193:
		yych = *++cursor_;
		if (yych == 'o') goto yy264;
		goto yy87;
yy194:
		yych = *++cursor_;
		if (yych <= 'r') {
			if (yych == 'g') goto yy265;
			goto yy87;
		} else {
			if (yych <= 's') goto yy266;
			if (yych <= 't') goto yy267;
			goto yy87;
		}
yy195:
		yych = *++cursor_;
		if (yych == 'l') goto yy268;
		if (yych == 't') goto yy269;
		goto yy87;
yy196:
		yych = *++cursor_;
		if (yych == 'a') goto yy270;
		goto yy87;
yy197:
		yych = *++cursor_;
		if (yych == 'a') goto yy271;
		goto yy87;
yy198:
		yych = *++cursor_;
		if (yych == 'b') goto yy272;
		goto yy87;
yy199:
		yych = *++cursor_;
		if (yych == 'e') goto yy273;
		goto yy87;
yy200:
		yych = *++cursor_;
		if (yych == 'e') goto yy274;
		if (yych == 'r') goto yy275;
		goto yy87;
yy201:
		yych = *++cursor_;
		if (yych == 'y') goto yy276;
		goto yy87;
yy202:
		yych = *++cursor_;
		if (yych == 'p') goto yy278;
		goto yy87;
yy203:
		yych = *++cursor_;
		if (yych == 'r') goto yy279;
		goto yy87;
yy204:
		yych = *++cursor_;
		if (yych <= 0x7F) goto yy130;
		if (yych <= 0xBF) goto yy79;
		goto yy130;
yy205:
		yych = *++cursor_;
		if (yych <= 0x7F) goto yy130;
		if (yych <= 0xBF) goto yy204;
		goto yy130;
yy206:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '@') {
			if (yych <= '/') goto yy130;
			if (yych <= '9') goto yy128;
			goto yy130;
		} else {
			if (yych <= 'F') goto yy128;
			if (yych <= '`') goto yy130;
			if (yych <= 'f') goto yy128;
			goto yy130;
		}
yy207:
		++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 <= ':') {
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy147;
				goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy208:
		++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 yy280;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy280;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy280;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy209:
		yych = *++cursor_;
		if (yych == 'f') goto yy249;
		goto yy87;
yy210:
		++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 yy210;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy152;
				if (yych == 'E') goto yy153;
				goto yy86;
			} else {
				if (yych <= 'd') {
					if (yych <= '_') goto yy282;
					goto yy86;
				} else {
					if (yych <= 'e') goto yy153;
					if (yych <= '~') goto yy86;
					goto yy152;
				}
			}
		}
yy212:
		++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 <= ':') {
				if (yych <= '/') goto yy86;
				if (yych >= ':') goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy213:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '/') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
				goto yy152;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy152;
				goto yy86;
			}
		} else {
			if (yych <= ';') {
				if (yych <= '9') goto yy213;
				if (yych <= ':') goto yy86;
				goto yy152;
			} else {
				if (yych == '_') goto yy212;
				if (yych <= '~') goto yy86;
				goto yy152;
			}
		}
yy215:
		++cursor_;
		if ((limit_ - cursor_) < 3) FILL(3);
		yych = *cursor_;
		if (yybm[0+yych] & 128) {
			goto yy215;
		}
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy98;
				goto yy86;
			} else {
				if (yych <= ')') goto yy98;
				if (yych == '.') goto yy283;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy98;
				if (yych == 'P') goto yy285;
				goto yy86;
			} else {
				if (yych <= 'o') {
					if (yych <= '_') goto yy155;
					goto yy86;
				} else {
					if (yych <= 'p') goto yy285;
					if (yych <= '~') goto yy86;
					goto yy98;
				}
			}
		}
yy217:
		yych = *++cursor_;
		if (yych == 'g') goto yy286;
		goto yy87;
yy218:
		yych = *++cursor_;
		if (yych == 'f') goto yy287;
		goto yy87;
yy219:
		yych = *++cursor_;
		if (yych == 'e') goto yy288;
		goto yy87;
yy220:
		yych = *++cursor_;
		if (yych == 'm') goto yy289;
		goto yy87;
yy221:
		yych = *++cursor_;
		if (yych == 'a') goto yy290;
		goto yy87;
yy222:
		yych = *++cursor_;
		if (yych == 'c') goto yy291;
		goto yy87;
yy223:
		yych = *++cursor_;
		if (yych == 'i') goto yy292;
		if (yych == 't') goto yy293;
		goto yy87;
yy224:
		yych = *++cursor_;
		if (yych == 'l') goto yy294;
		goto yy87;
yy225:
		yych = *++cursor_;
		if (yych == 'c') goto yy296;
		goto yy87;
yy226:
		yych = *++cursor_;
		if (yych == 'r') goto yy297;
		goto yy87;
yy227:
		yych = *++cursor_;
		if (yych == 'a') goto yy298;
		goto yy87;
yy228:
		yych = *++cursor_;
		if (yych == 'p') goto yy300;
		goto yy87;
yy229:
		yych = *++cursor_;
		if (yych == 'm') goto yy302;
		goto yy87;
yy230:
		yych = *++cursor_;
		if (yych == 'e') goto yy304;
		goto yy87;
yy231:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 269 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(End); }
#line 1958 "src/prebuilt/wast-lexer-gen.cc"
yy233:
		yych = *++cursor_;
		if (yych == 'e') goto yy306;
		goto yy87;
yy234:
		yych = *++cursor_;
		if (yych == 'o') goto yy307;
		goto yy87;
yy235:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy236;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= ':') {
				if (yych == '.') goto yy308;
				goto yy86;
			} else {
				if (yych <= ';') goto yy236;
				if (yych <= '~') goto yy86;
			}
		}
yy236:
#line 253 "src/wast-lexer.cc"
		{ RETURN_TYPE(ValueType, F32); }
#line 1988 "src/prebuilt/wast-lexer-gen.cc"
yy237:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy238;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= ':') {
				if (yych == '.') goto yy309;
				goto yy86;
			} else {
				if (yych <= ';') goto yy238;
				if (yych <= '~') goto yy86;
			}
		}
yy238:
#line 254 "src/wast-lexer.cc"
		{ RETURN_TYPE(ValueType, F64); }
#line 2010 "src/prebuilt/wast-lexer-gen.cc"
yy239:
		yych = *++cursor_;
		if (yych == 'c') goto yy310;
		goto yy87;
yy240:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy241;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '_') goto yy312;
				if (yych <= '~') goto yy86;
			}
		}
yy241:
#line 533 "src/wast-lexer.cc"
		{ RETURN(Get); }
#line 2035 "src/prebuilt/wast-lexer-gen.cc"
yy242:
		yych = *++cursor_;
		if (yych == 'b') goto yy313;
		goto yy87;
yy243:
		yych = *++cursor_;
		if (yych == 'w') goto yy314;
		goto yy87;
yy244:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy245;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= ':') {
				if (yych == '.') goto yy315;
				goto yy86;
			} else {
				if (yych <= ';') goto yy245;
				if (yych <= '~') goto yy86;
			}
		}
yy245:
#line 251 "src/wast-lexer.cc"
		{ RETURN_TYPE(ValueType, I32); }
#line 2065 "src/prebuilt/wast-lexer-gen.cc"
yy246:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy247;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= ':') {
				if (yych == '.') goto yy316;
				goto yy86;
			} else {
				if (yych <= ';') goto yy247;
				if (yych <= '~') goto yy86;
			}
		}
yy247:
#line 252 "src/wast-lexer.cc"
		{ RETURN_TYPE(ValueType, I64); }
#line 2087 "src/prebuilt/wast-lexer-gen.cc"
yy248:
		yych = *++cursor_;
		if (yych == 'o') goto yy317;
		goto yy87;
yy249:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 236 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Float, Infinity); }
#line 2099 "src/prebuilt/wast-lexer-gen.cc"
yy251:
		yych = *++cursor_;
		if (yych == 'o') goto yy318;
		goto yy87;
yy252:
		yych = *++cursor_;
		if (yych == 'a') goto yy319;
		goto yy87;
yy253:
		yych = *++cursor_;
		if (yych == 'p') goto yy320;
		goto yy87;
yy254:
		yych = *++cursor_;
		if (yych == 'o') goto yy322;
		goto yy87;
yy255:
		yych = *++cursor_;
		if (yych == 'u') goto yy323;
		goto yy87;
yy256:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 256 "src/wast-lexer.cc"
		{ RETURN(Mut); }
#line 2127 "src/prebuilt/wast-lexer-gen.cc"
yy258:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy259;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= ':') {
				if (yych <= '9') goto yy86;
				goto yy324;
			} else {
				if (yych <= ';') goto yy259;
				if (yych <= '~') goto yy86;
			}
		}
yy259:
#line 237 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Float, Nan); }
#line 2149 "src/prebuilt/wast-lexer-gen.cc"
yy260:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 257 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Nop); }
#line 2157 "src/prebuilt/wast-lexer-gen.cc"
yy262:
		yych = *++cursor_;
		if (yych == 's') goto yy325;
		goto yy87;
yy263:
		yych = *++cursor_;
		if (yych == 'a') goto yy326;
		goto yy87;
yy264:
		yych = *++cursor_;
		if (yych == 't') goto yy327;
		goto yy87;
yy265:
		yych = *++cursor_;
		if (yych == 'i') goto yy328;
		goto yy87;
yy266:
		yych = *++cursor_;
		if (yych == 'u') goto yy329;
		goto yy87;
yy267:
		yych = *++cursor_;
		if (yych == 'h') goto yy330;
		if (yych == 'u') goto yy331;
		goto yy87;
yy268:
		yych = *++cursor_;
		if (yych == 'e') goto yy332;
		goto yy87;
yy269:
		yych = *++cursor_;
		if (yych == '_') goto yy333;
		goto yy87;
yy270:
		yych = *++cursor_;
		if (yych == 'r') goto yy334;
		goto yy87;
yy271:
		yych = *++cursor_;
		if (yych == 'r') goto yy335;
		goto yy87;
yy272:
		yych = *++cursor_;
		if (yych == 'l') goto yy336;
		goto yy87;
yy273:
		yych = *++cursor_;
		if (yych == '_') goto yy337;
		goto yy87;
yy274:
		yych = *++cursor_;
		if (yych == 'n') goto yy338;
		goto yy87;
yy275:
		yych = *++cursor_;
		if (yych == 'o') goto yy340;
		goto yy87;
yy276:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 542 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Try); }
#line 2222 "src/prebuilt/wast-lexer-gen.cc"
yy278:
		yych = *++cursor_;
		if (yych == 'e') goto yy341;
		goto yy87;
yy279:
		yych = *++cursor_;
		if (yych == 'e') goto yy343;
		goto yy87;
yy280:
		++cursor_;
		if ((limit_ - cursor_) < 3) FILL(3);
		yych = *cursor_;
		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 yy283;
					goto yy86;
				} else {
					if (yych <= '9') goto yy280;
					if (yych <= ':') goto yy86;
					goto yy146;
				}
			}
		} else {
			if (yych <= '_') {
				if (yych <= 'O') {
					if (yych <= '@') goto yy86;
					if (yych <= 'F') goto yy280;
					goto yy86;
				} else {
					if (yych <= 'P') goto yy285;
					if (yych <= '^') goto yy86;
					goto yy208;
				}
			} else {
				if (yych <= 'o') {
					if (yych <= '`') goto yy86;
					if (yych <= 'f') goto yy280;
					goto yy86;
				} else {
					if (yych <= 'p') goto yy285;
					if (yych <= '~') goto yy86;
					goto yy146;
				}
			}
		}
yy282:
		++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 <= ':') {
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy210;
				goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy283:
		++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 yy344;
					if (yych <= ':') goto yy86;
				}
			}
		} else {
			if (yych <= '`') {
				if (yych <= 'F') {
					if (yych <= '@') goto yy86;
					goto yy344;
				} else {
					if (yych == 'P') goto yy285;
					goto yy86;
				}
			} else {
				if (yych <= 'o') {
					if (yych <= 'f') goto yy344;
					goto yy86;
				} else {
					if (yych <= 'p') goto yy285;
					if (yych <= '~') goto yy86;
				}
			}
		}
yy284:
#line 235 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Float, Hexfloat); }
#line 2338 "src/prebuilt/wast-lexer-gen.cc"
yy285:
		yych = *++cursor_;
		if (yych <= ',') {
			if (yych == '+') goto yy346;
			goto yy87;
		} else {
			if (yych <= '-') goto yy346;
			if (yych <= '/') goto yy87;
			if (yych <= '9') goto yy347;
			goto yy87;
		}
yy286:
		yych = *++cursor_;
		if (yych == 'n') goto yy349;
		goto yy87;
yy287:
		yych = *++cursor_;
		if (yych == 'u') goto yy350;
		goto yy87;
yy288:
		yych = *++cursor_;
		if (yych == 'r') goto yy351;
		goto yy87;
yy289:
		yych = *++cursor_;
		if (yych == 'i') goto yy352;
		goto yy87;
yy290:
		yych = *++cursor_;
		if (yych == 'r') goto yy353;
		goto yy87;
yy291:
		yych = *++cursor_;
		if (yych == 'k') goto yy354;
		goto yy87;
yy292:
		yych = *++cursor_;
		if (yych == 'f') goto yy356;
		goto yy87;
yy293:
		yych = *++cursor_;
		if (yych == 'a') goto yy358;
		goto yy87;
yy294:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy295;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '_') goto yy359;
				if (yych <= '~') goto yy86;
			}
		}
yy295:
#line 266 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Call); }
#line 2402 "src/prebuilt/wast-lexer-gen.cc"
yy296:
		yych = *++cursor_;
		if (yych == 'h') goto yy360;
		goto yy87;
yy297:
		yych = *++cursor_;
		if (yych == 'e') goto yy362;
		goto yy87;
yy298:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 526 "src/wast-lexer.cc"
		{ RETURN(Data); }
#line 2418 "src/prebuilt/wast-lexer-gen.cc"
yy300:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 268 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Drop); }
#line 2426 "src/prebuilt/wast-lexer-gen.cc"
yy302:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 525 "src/wast-lexer.cc"
		{ RETURN(Elem); }
#line 2434 "src/prebuilt/wast-lexer-gen.cc"
yy304:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 261 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Else); }
#line 2442 "src/prebuilt/wast-lexer-gen.cc"
yy306:
		yych = *++cursor_;
		if (yych == 'p') goto yy363;
		goto yy87;
yy307:
		yych = *++cursor_;
		if (yych == 'r') goto yy364;
		goto yy87;
yy308:
		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 'r':	goto yy374;
		case 's':	goto yy375;
		case 't':	goto yy376;
		default:	goto yy87;
		}
yy309:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy377;
		case 'c':	goto yy378;
		case 'd':	goto yy379;
		case 'e':	goto yy380;
		case 'f':	goto yy381;
		case 'g':	goto yy382;
		case 'l':	goto yy383;
		case 'm':	goto yy384;
		case 'n':	goto yy385;
		case 'p':	goto yy386;
		case 'r':	goto yy387;
		case 's':	goto yy388;
		case 't':	goto yy389;
		default:	goto yy87;
		}
yy310:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 514 "src/wast-lexer.cc"
		{ RETURN(Func); }
#line 2493 "src/prebuilt/wast-lexer-gen.cc"
yy312:
		yych = *++cursor_;
		if (yych == 'g') goto yy390;
		if (yych == 'l') goto yy391;
		goto yy87;
yy313:
		yych = *++cursor_;
		if (yych == 'a') goto yy392;
		goto yy87;
yy314:
		yych = *++cursor_;
		if (yych == '_') goto yy393;
		goto yy87;
yy315:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy394;
		case 'c':	goto yy395;
		case 'd':	goto yy396;
		case 'e':	goto yy397;
		case 'g':	goto yy398;
		case 'l':	goto yy399;
		case 'm':	goto yy400;
		case 'n':	goto yy401;
		case 'o':	goto yy402;
		case 'p':	goto yy403;
		case 'r':	goto yy404;
		case 's':	goto yy405;
		case 't':	goto yy406;
		case 'w':	goto yy407;
		case 'x':	goto yy408;
		default:	goto yy87;
		}
yy316:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy409;
		case 'c':	goto yy410;
		case 'd':	goto yy411;
		case 'e':	goto yy412;
		case 'g':	goto yy413;
		case 'l':	goto yy414;
		case 'm':	goto yy415;
		case 'n':	goto yy416;
		case 'o':	goto yy417;
		case 'p':	goto yy418;
		case 'r':	goto yy419;
		case 's':	goto yy420;
		case 't':	goto yy421;
		case 'x':	goto yy422;
		default:	goto yy87;
		}
yy317:
		yych = *++cursor_;
		if (yych == 'r') goto yy423;
		goto yy87;
yy318:
		yych = *++cursor_;
		if (yych == 'k') goto yy424;
		goto yy87;
yy319:
		yych = *++cursor_;
		if (yych == 'l') goto yy425;
		goto yy87;
yy320:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 262 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Loop); }
#line 2565 "src/prebuilt/wast-lexer-gen.cc"
yy322:
		yych = *++cursor_;
		if (yych == 'r') goto yy427;
		goto yy87;
yy323:
		yych = *++cursor_;
		if (yych == 'l') goto yy428;
		goto yy87;
yy324:
		yych = *++cursor_;
		if (yych == '0') goto yy429;
		goto yy87;
yy325:
		yych = *++cursor_;
		if (yych == 'e') goto yy430;
		goto yy87;
yy326:
		yych = *++cursor_;
		if (yych == 'm') goto yy431;
		goto yy87;
yy327:
		yych = *++cursor_;
		if (yych == 'e') goto yy433;
		goto yy87;
yy328:
		yych = *++cursor_;
		if (yych == 's') goto yy435;
		goto yy87;
yy329:
		yych = *++cursor_;
		if (yych == 'l') goto yy436;
		goto yy87;
yy330:
		yych = *++cursor_;
		if (yych == 'r') goto yy437;
		goto yy87;
yy331:
		yych = *++cursor_;
		if (yych == 'r') goto yy438;
		goto yy87;
yy332:
		yych = *++cursor_;
		if (yych == 'c') goto yy439;
		goto yy87;
yy333:
		yych = *++cursor_;
		if (yych == 'g') goto yy440;
		if (yych == 'l') goto yy441;
		goto yy87;
yy334:
		yych = *++cursor_;
		if (yych == 'e') goto yy442;
		goto yy87;
yy335:
		yych = *++cursor_;
		if (yych == 't') goto yy443;
		goto yy87;
yy336:
		yych = *++cursor_;
		if (yych == 'e') goto yy445;
		goto yy87;
yy337:
		yych = *++cursor_;
		if (yych == 'l') goto yy447;
		goto yy87;
yy338:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 260 "src/wast-lexer.cc"
		{ RETURN(Then); }
#line 2638 "src/prebuilt/wast-lexer-gen.cc"
yy340:
		yych = *++cursor_;
		if (yych == 'w') goto yy448;
		goto yy87;
yy341:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 513 "src/wast-lexer.cc"
		{ RETURN(Type); }
#line 2650 "src/prebuilt/wast-lexer-gen.cc"
yy343:
		yych = *++cursor_;
		if (yych == 'a') goto yy450;
		goto yy87;
yy344:
		++cursor_;
		if ((limit_ - cursor_) < 2) FILL(2);
		yych = *cursor_;
		if (yych <= '@') {
			if (yych <= ')') {
				if (yych <= '!') {
					if (yych <= ' ') goto yy284;
					goto yy86;
				} else {
					if (yych <= '"') goto yy284;
					if (yych <= '\'') goto yy86;
					goto yy284;
				}
			} else {
				if (yych <= '9') {
					if (yych <= '/') goto yy86;
					goto yy344;
				} else {
					if (yych == ';') goto yy284;
					goto yy86;
				}
			}
		} else {
			if (yych <= '_') {
				if (yych <= 'O') {
					if (yych <= 'F') goto yy344;
					goto yy86;
				} else {
					if (yych <= 'P') goto yy285;
					if (yych <= '^') goto yy86;
					goto yy451;
				}
			} else {
				if (yych <= 'o') {
					if (yych <= '`') goto yy86;
					if (yych <= 'f') goto yy344;
					goto yy86;
				} else {
					if (yych <= 'p') goto yy285;
					if (yych <= '~') goto yy86;
					goto yy284;
				}
			}
		}
yy346:
		++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 <= ':') {
				if (yych <= '/') goto yy86;
				if (yych >= ':') goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy347:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '/') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
				goto yy284;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy284;
				goto yy86;
			}
		} else {
			if (yych <= ';') {
				if (yych <= '9') goto yy347;
				if (yych <= ':') goto yy86;
				goto yy284;
			} else {
				if (yych == '_') goto yy346;
				if (yych <= '~') goto yy86;
				goto yy284;
			}
		}
yy349:
		yych = *++cursor_;
		if (yych == '=') goto yy452;
		goto yy87;
yy350:
		yych = *++cursor_;
		if (yych == 'n') goto yy453;
		goto yy87;
yy351:
		yych = *++cursor_;
		if (yych == 't') goto yy454;
		goto yy87;
yy352:
		yych = *++cursor_;
		if (yych == 'c') goto yy455;
		goto yy87;
yy353:
		yych = *++cursor_;
		if (yych == 'y') goto yy456;
		goto yy87;
yy354:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 258 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Block); }
#line 2774 "src/prebuilt/wast-lexer-gen.cc"
yy356:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 264 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(BrIf); }
#line 2782 "src/prebuilt/wast-lexer-gen.cc"
yy358:
		yych = *++cursor_;
		if (yych == 'b') goto yy458;
		goto yy87;
yy359:
		yych = *++cursor_;
		if (yych == 'i') goto yy459;
		goto yy87;
yy360:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy361;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '_') goto yy460;
				if (yych <= '~') goto yy86;
			}
		}
yy361:
#line 543 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Catch); }
#line 2811 "src/prebuilt/wast-lexer-gen.cc"
yy362:
		yych = *++cursor_;
		if (yych == 'n') goto yy461;
		goto yy87;
yy363:
		yych = *++cursor_;
		if (yych == 't') goto yy462;
		goto yy87;
yy364:
		yych = *++cursor_;
		if (yych == 't') goto yy464;
		goto yy87;
yy365:
		yych = *++cursor_;
		if (yych == 'b') goto yy466;
		if (yych == 'd') goto yy467;
		goto yy87;
yy366:
		yych = *++cursor_;
		if (yych == 'e') goto yy468;
		if (yych == 'o') goto yy469;
		goto yy87;
yy367:
		yych = *++cursor_;
		if (yych == 'e') goto yy470;
		if (yych == 'i') goto yy471;
		goto yy87;
yy368:
		yych = *++cursor_;
		if (yych == 'q') goto yy472;
		goto yy87;
yy369:
		yych = *++cursor_;
		if (yych == 'l') goto yy474;
		goto yy87;
yy370:
		yych = *++cursor_;
		if (yych == 'e') goto yy475;
		if (yych == 't') goto yy477;
		goto yy87;
yy371:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy479;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy481;
			if (yych == 't') goto yy482;
			goto yy87;
		}
yy372:
		yych = *++cursor_;
		if (yych <= 'h') {
			if (yych == 'a') goto yy484;
			goto yy87;
		} else {
			if (yych <= 'i') goto yy485;
			if (yych == 'u') goto yy486;
			goto yy87;
		}
yy373:
		yych = *++cursor_;
		if (yych == 'e') goto yy487;
		goto yy87;
yy374:
		yych = *++cursor_;
		if (yych == 'e') goto yy489;
		goto yy87;
yy375:
		yych = *++cursor_;
		if (yych <= 's') {
			if (yych == 'q') goto yy490;
			goto yy87;
		} else {
			if (yych <= 't') goto yy491;
			if (yych <= 'u') goto yy492;
			goto yy87;
		}
yy376:
		yych = *++cursor_;
		if (yych == 'r') goto yy493;
		goto yy87;
yy377:
		yych = *++cursor_;
		if (yych == 'b') goto yy494;
		if (yych == 'd') goto yy495;
		goto yy87;
yy378:
		yych = *++cursor_;
		if (yych == 'e') goto yy496;
		if (yych == 'o') goto yy497;
		goto yy87;
yy379:
		yych = *++cursor_;
		if (yych == 'i') goto yy498;
		goto yy87;
yy380:
		yych = *++cursor_;
		if (yych == 'q') goto yy499;
		goto yy87;
yy381:
		yych = *++cursor_;
		if (yych == 'l') goto yy501;
		goto yy87;
yy382:
		yych = *++cursor_;
		if (yych == 'e') goto yy502;
		if (yych == 't') goto yy504;
		goto yy87;
yy383:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy506;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy508;
			if (yych == 't') goto yy509;
			goto yy87;
		}
yy384:
		yych = *++cursor_;
		if (yych <= 'h') {
			if (yych == 'a') goto yy511;
			goto yy87;
		} else {
			if (yych <= 'i') goto yy512;
			if (yych == 'u') goto yy513;
			goto yy87;
		}
yy385:
		yych = *++cursor_;
		if (yych == 'e') goto yy514;
		goto yy87;
yy386:
		yych = *++cursor_;
		if (yych == 'r') goto yy516;
		goto yy87;
yy387:
		yych = *++cursor_;
		if (yych == 'e') goto yy517;
		goto yy87;
yy388:
		yych = *++cursor_;
		if (yych <= 's') {
			if (yych == 'q') goto yy518;
			goto yy87;
		} else {
			if (yych <= 't') goto yy519;
			if (yych <= 'u') goto yy520;
			goto yy87;
		}
yy389:
		yych = *++cursor_;
		if (yych == 'r') goto yy521;
		goto yy87;
yy390:
		yych = *++cursor_;
		if (yych == 'l') goto yy522;
		goto yy87;
yy391:
		yych = *++cursor_;
		if (yych == 'o') goto yy523;
		goto yy87;
yy392:
		yych = *++cursor_;
		if (yych == 'l') goto yy524;
		goto yy87;
yy393:
		yych = *++cursor_;
		if (yych == 'm') goto yy526;
		goto yy87;
yy394:
		yych = *++cursor_;
		if (yych <= 'm') {
			if (yych == 'd') goto yy527;
			goto yy87;
		} else {
			if (yych <= 'n') goto yy528;
			if (yych == 't') goto yy529;
			goto yy87;
		}
yy395:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'l') goto yy530;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy531;
			if (yych == 't') goto yy532;
			goto yy87;
		}
yy396:
		yych = *++cursor_;
		if (yych == 'i') goto yy533;
		goto yy87;
yy397:
		yych = *++cursor_;
		if (yych == 'q') goto yy534;
		if (yych == 'x') goto yy536;
		goto yy87;
yy398:
		yych = *++cursor_;
		if (yych == 'e') goto yy537;
		if (yych == 't') goto yy538;
		goto yy87;
yy399:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy539;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy540;
			if (yych == 't') goto yy541;
			goto yy87;
		}
yy400:
		yych = *++cursor_;
		if (yych == 'u') goto yy542;
		goto yy87;
yy401:
		yych = *++cursor_;
		if (yych == 'e') goto yy543;
		goto yy87;
yy402:
		yych = *++cursor_;
		if (yych == 'r') goto yy545;
		goto yy87;
yy403:
		yych = *++cursor_;
		if (yych == 'o') goto yy547;
		goto yy87;
yy404:
		yych = *++cursor_;
		if (yych == 'e') goto yy548;
		if (yych == 'o') goto yy549;
		goto yy87;
yy405:
		yych = *++cursor_;
		if (yych <= 's') {
			if (yych == 'h') goto yy550;
			goto yy87;
		} else {
			if (yych <= 't') goto yy551;
			if (yych <= 'u') goto yy552;
			goto yy87;
		}
yy406:
		yych = *++cursor_;
		if (yych == 'r') goto yy553;
		goto yy87;
yy407:
		yych = *++cursor_;
		if (yych == 'r') goto yy554;
		goto yy87;
yy408:
		yych = *++cursor_;
		if (yych == 'o') goto yy555;
		goto yy87;
yy409:
		yych = *++cursor_;
		if (yych <= 'm') {
			if (yych == 'd') goto yy556;
			goto yy87;
		} else {
			if (yych <= 'n') goto yy557;
			if (yych == 't') goto yy558;
			goto yy87;
		}
yy410:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'l') goto yy559;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy560;
			if (yych == 't') goto yy561;
			goto yy87;
		}
yy411:
		yych = *++cursor_;
		if (yych == 'i') goto yy562;
		goto yy87;
yy412:
		yych = *++cursor_;
		if (yych == 'q') goto yy563;
		if (yych == 'x') goto yy565;
		goto yy87;
yy413:
		yych = *++cursor_;
		if (yych == 'e') goto yy566;
		if (yych == 't') goto yy567;
		goto yy87;
yy414:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy568;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy569;
			if (yych == 't') goto yy570;
			goto yy87;
		}
yy415:
		yych = *++cursor_;
		if (yych == 'u') goto yy571;
		goto yy87;
yy416:
		yych = *++cursor_;
		if (yych == 'e') goto yy572;
		goto yy87;
yy417:
		yych = *++cursor_;
		if (yych == 'r') goto yy574;
		goto yy87;
yy418:
		yych = *++cursor_;
		if (yych == 'o') goto yy576;
		goto yy87;
yy419:
		yych = *++cursor_;
		if (yych == 'e') goto yy577;
		if (yych == 'o') goto yy578;
		goto yy87;
yy420:
		yych = *++cursor_;
		if (yych <= 's') {
			if (yych == 'h') goto yy579;
			goto yy87;
		} else {
			if (yych <= 't') goto yy580;
			if (yych <= 'u') goto yy581;
			goto yy87;
		}
yy421:
		yych = *++cursor_;
		if (yych == 'r') goto yy582;
		goto yy87;
yy422:
		yych = *++cursor_;
		if (yych == 'o') goto yy583;
		goto yy87;
yy423:
		yych = *++cursor_;
		if (yych == 't') goto yy584;
		goto yy87;
yy424:
		yych = *++cursor_;
		if (yych == 'e') goto yy586;
		goto yy87;
yy425:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 517 "src/wast-lexer.cc"
		{ RETURN(Local); }
#line 3168 "src/prebuilt/wast-lexer-gen.cc"
yy427:
		yych = *++cursor_;
		if (yych == 'y') goto yy588;
		goto yy87;
yy428:
		yych = *++cursor_;
		if (yych == 'e') goto yy590;
		goto yy87;
yy429:
		yych = *++cursor_;
		if (yych == 'x') goto yy592;
		goto yy87;
yy430:
		yych = *++cursor_;
		if (yych == 't') goto yy593;
		goto yy87;
yy431:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 515 "src/wast-lexer.cc"
		{ RETURN(Param); }
#line 3192 "src/prebuilt/wast-lexer-gen.cc"
yy433:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 521 "src/wast-lexer.cc"
		{ RETURN(Quote); }
#line 3200 "src/prebuilt/wast-lexer-gen.cc"
yy435:
		yych = *++cursor_;
		if (yych == 't') goto yy595;
		goto yy87;
yy436:
		yych = *++cursor_;
		if (yych == 't') goto yy596;
		goto yy87;
yy437:
		yych = *++cursor_;
		if (yych == 'o') goto yy598;
		goto yy87;
yy438:
		yych = *++cursor_;
		if (yych == 'n') goto yy599;
		goto yy87;
yy439:
		yych = *++cursor_;
		if (yych == 't') goto yy601;
		goto yy87;
yy440:
		yych = *++cursor_;
		if (yych == 'l') goto yy603;
		goto yy87;
yy441:
		yych = *++cursor_;
		if (yych == 'o') goto yy604;
		goto yy87;
yy442:
		yych = *++cursor_;
		if (yych == 'd') goto yy605;
		goto yy87;
yy443:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 524 "src/wast-lexer.cc"
		{ RETURN(Start); }
#line 3240 "src/prebuilt/wast-lexer-gen.cc"
yy445:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 522 "src/wast-lexer.cc"
		{ RETURN(Table); }
#line 3248 "src/prebuilt/wast-lexer-gen.cc"
yy447:
		yych = *++cursor_;
		if (yych == 'o') goto yy607;
		goto yy87;
yy448:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 545 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Throw); }
#line 3260 "src/prebuilt/wast-lexer-gen.cc"
yy450:
		yych = *++cursor_;
		if (yych == 'c') goto yy608;
		goto yy87;
yy451:
		++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 yy344;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy344;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy344;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy452:
		yych = *++cursor_;
		if (yych <= '/') goto yy87;
		if (yych <= '0') goto yy609;
		if (yych <= '9') goto yy611;
		goto yy87;
yy453:
		yych = *++cursor_;
		if (yych == 'c') goto yy613;
		goto yy87;
yy454:
		yych = *++cursor_;
		if (yych == '_') goto yy615;
		goto yy87;
yy455:
		yych = *++cursor_;
		if (yych == '.') goto yy616;
		goto yy87;
yy456:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 520 "src/wast-lexer.cc"
		{ RETURN(Bin); }
#line 3316 "src/prebuilt/wast-lexer-gen.cc"
yy458:
		yych = *++cursor_;
		if (yych == 'l') goto yy617;
		goto yy87;
yy459:
		yych = *++cursor_;
		if (yych == 'n') goto yy618;
		goto yy87;
yy460:
		yych = *++cursor_;
		if (yych == 'a') goto yy619;
		goto yy87;
yy461:
		yych = *++cursor_;
		if (yych == 't') goto yy620;
		goto yy87;
yy462:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 530 "src/wast-lexer.cc"
		{ RETURN(Except); }
#line 3340 "src/prebuilt/wast-lexer-gen.cc"
yy464:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 529 "src/wast-lexer.cc"
		{ RETURN(Export); }
#line 3348 "src/prebuilt/wast-lexer-gen.cc"
yy466:
		yych = *++cursor_;
		if (yych == 's') goto yy621;
		goto yy87;
yy467:
		yych = *++cursor_;
		if (yych == 'd') goto yy623;
		goto yy87;
yy468:
		yych = *++cursor_;
		if (yych == 'i') goto yy625;
		goto yy87;
yy469:
		yych = *++cursor_;
		if (yych == 'n') goto yy626;
		if (yych == 'p') goto yy627;
		goto yy87;
yy470:
		yych = *++cursor_;
		if (yych == 'm') goto yy628;
		goto yy87;
yy471:
		yych = *++cursor_;
		if (yych == 'v') goto yy629;
		goto yy87;
yy472:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 396 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Eq); }
#line 3381 "src/prebuilt/wast-lexer-gen.cc"
yy474:
		yych = *++cursor_;
		if (yych == 'o') goto yy631;
		goto yy87;
yy475:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 406 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Ge); }
#line 3393 "src/prebuilt/wast-lexer-gen.cc"
yy477:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 404 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Gt); }
#line 3401 "src/prebuilt/wast-lexer-gen.cc"
yy479:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 402 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Le); }
#line 3409 "src/prebuilt/wast-lexer-gen.cc"
yy481:
		yych = *++cursor_;
		if (yych == 'a') goto yy632;
		goto yy87;
yy482:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 400 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Lt); }
#line 3421 "src/prebuilt/wast-lexer-gen.cc"
yy484:
		yych = *++cursor_;
		if (yych == 'x') goto yy633;
		goto yy87;
yy485:
		yych = *++cursor_;
		if (yych == 'n') goto yy635;
		goto yy87;
yy486:
		yych = *++cursor_;
		if (yych == 'l') goto yy637;
		goto yy87;
yy487:
		++cursor_;
		if ((yych = *cursor_) <= ':') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych >= '*') goto yy86;
			}
		} else {
			if (yych <= 'a') {
				if (yych <= ';') goto yy488;
				if (yych <= '`') goto yy86;
				goto yy639;
			} else {
				if (yych == 'g') goto yy640;
				if (yych <= '~') goto yy86;
			}
		}
yy488:
#line 398 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Ne); }
#line 3456 "src/prebuilt/wast-lexer-gen.cc"
yy489:
		yych = *++cursor_;
		if (yych == 'i') goto yy642;
		goto yy87;
yy490:
		yych = *++cursor_;
		if (yych == 'r') goto yy643;
		goto yy87;
yy491:
		yych = *++cursor_;
		if (yych == 'o') goto yy644;
		goto yy87;
yy492:
		yych = *++cursor_;
		if (yych == 'b') goto yy645;
		goto yy87;
yy493:
		yych = *++cursor_;
		if (yych == 'u') goto yy647;
		goto yy87;
yy494:
		yych = *++cursor_;
		if (yych == 's') goto yy648;
		goto yy87;
yy495:
		yych = *++cursor_;
		if (yych == 'd') goto yy650;
		goto yy87;
yy496:
		yych = *++cursor_;
		if (yych == 'i') goto yy652;
		goto yy87;
yy497:
		yych = *++cursor_;
		if (yych == 'n') goto yy653;
		if (yych == 'p') goto yy654;
		goto yy87;
yy498:
		yych = *++cursor_;
		if (yych == 'v') goto yy655;
		goto yy87;
yy499:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 397 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Eq); }
#line 3505 "src/prebuilt/wast-lexer-gen.cc"
yy501:
		yych = *++cursor_;
		if (yych == 'o') goto yy657;
		goto yy87;
yy502:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 407 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Ge); }
#line 3517 "src/prebuilt/wast-lexer-gen.cc"
yy504:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 405 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Gt); }
#line 3525 "src/prebuilt/wast-lexer-gen.cc"
yy506:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 403 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Le); }
#line 3533 "src/prebuilt/wast-lexer-gen.cc"
yy508:
		yych = *++cursor_;
		if (yych == 'a') goto yy658;
		goto yy87;
yy509:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 401 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Lt); }
#line 3545 "src/prebuilt/wast-lexer-gen.cc"
yy511:
		yych = *++cursor_;
		if (yych == 'x') goto yy659;
		goto yy87;
yy512:
		yych = *++cursor_;
		if (yych == 'n') goto yy661;
		goto yy87;
yy513:
		yych = *++cursor_;
		if (yych == 'l') goto yy663;
		goto yy87;
yy514:
		++cursor_;
		if ((yych = *cursor_) <= ':') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych >= '*') goto yy86;
			}
		} else {
			if (yych <= 'a') {
				if (yych <= ';') goto yy515;
				if (yych <= '`') goto yy86;
				goto yy665;
			} else {
				if (yych == 'g') goto yy666;
				if (yych <= '~') goto yy86;
			}
		}
yy515:
#line 399 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Ne); }
#line 3580 "src/prebuilt/wast-lexer-gen.cc"
yy516:
		yych = *++cursor_;
		if (yych == 'o') goto yy668;
		goto yy87;
yy517:
		yych = *++cursor_;
		if (yych == 'i') goto yy669;
		goto yy87;
yy518:
		yych = *++cursor_;
		if (yych == 'r') goto yy670;
		goto yy87;
yy519:
		yych = *++cursor_;
		if (yych == 'o') goto yy671;
		goto yy87;
yy520:
		yych = *++cursor_;
		if (yych == 'b') goto yy672;
		goto yy87;
yy521:
		yych = *++cursor_;
		if (yych == 'u') goto yy674;
		goto yy87;
yy522:
		yych = *++cursor_;
		if (yych == 'o') goto yy675;
		goto yy87;
yy523:
		yych = *++cursor_;
		if (yych == 'c') goto yy676;
		goto yy87;
yy524:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 518 "src/wast-lexer.cc"
		{ RETURN(Global); }
#line 3620 "src/prebuilt/wast-lexer-gen.cc"
yy526:
		yych = *++cursor_;
		if (yych == 'e') goto yy677;
		goto yy87;
yy527:
		yych = *++cursor_;
		if (yych == 'd') goto yy678;
		goto yy87;
yy528:
		yych = *++cursor_;
		if (yych == 'd') goto yy680;
		goto yy87;
yy529:
		yych = *++cursor_;
		if (yych == 'o') goto yy682;
		goto yy87;
yy530:
		yych = *++cursor_;
		if (yych == 'z') goto yy683;
		goto yy87;
yy531:
		yych = *++cursor_;
		if (yych == 'n') goto yy685;
		goto yy87;
yy532:
		yych = *++cursor_;
		if (yych == 'z') goto yy686;
		goto yy87;
yy533:
		yych = *++cursor_;
		if (yych == 'v') goto yy688;
		goto yy87;
yy534:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy535;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= 'y') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= 'z') goto yy689;
				if (yych <= '~') goto yy86;
			}
		}
yy535:
#line 376 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32Eq); }
#line 3673 "src/prebuilt/wast-lexer-gen.cc"
yy536:
		yych = *++cursor_;
		if (yych == 't') goto yy691;
		goto yy87;
yy537:
		yych = *++cursor_;
		if (yych == '_') goto yy692;
		goto yy87;
yy538:
		yych = *++cursor_;
		if (yych == '_') goto yy693;
		goto yy87;
yy539:
		yych = *++cursor_;
		if (yych == '_') goto yy694;
		goto yy87;
yy540:
		yych = *++cursor_;
		if (yych == 'a') goto yy695;
		goto yy87;
yy541:
		yych = *++cursor_;
		if (yych == '_') goto yy696;
		goto yy87;
yy542:
		yych = *++cursor_;
		if (yych == 'l') goto yy697;
		goto yy87;
yy543:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 378 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32Ne); }
#line 3709 "src/prebuilt/wast-lexer-gen.cc"
yy545:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 348 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Or); }
#line 3717 "src/prebuilt/wast-lexer-gen.cc"
yy547:
		yych = *++cursor_;
		if (yych == 'p') goto yy699;
		goto yy87;
yy548:
		yych = *++cursor_;
		if (yych == 'i') goto yy700;
		if (yych == 'm') goto yy701;
		goto yy87;
yy549:
		yych = *++cursor_;
		if (yych == 't') goto yy702;
		goto yy87;
yy550:
		yych = *++cursor_;
		if (yych == 'l') goto yy703;
		if (yych == 'r') goto yy705;
		goto yy87;
yy551:
		yych = *++cursor_;
		if (yych == 'o') goto yy706;
		goto yy87;
yy552:
		yych = *++cursor_;
		if (yych == 'b') goto yy707;
		goto yy87;
yy553:
		yych = *++cursor_;
		if (yych == 'u') goto yy709;
		goto yy87;
yy554:
		yych = *++cursor_;
		if (yych == 'a') goto yy710;
		goto yy87;
yy555:
		yych = *++cursor_;
		if (yych == 'r') goto yy711;
		goto yy87;
yy556:
		yych = *++cursor_;
		if (yych == 'd') goto yy713;
		goto yy87;
yy557:
		yych = *++cursor_;
		if (yych == 'd') goto yy715;
		goto yy87;
yy558:
		yych = *++cursor_;
		if (yych == 'o') goto yy717;
		goto yy87;
yy559:
		yych = *++cursor_;
		if (yych == 'z') goto yy718;
		goto yy87;
yy560:
		yych = *++cursor_;
		if (yych == 'n') goto yy720;
		goto yy87;
yy561:
		yych = *++cursor_;
		if (yych == 'z') goto yy721;
		goto yy87;
yy562:
		yych = *++cursor_;
		if (yych == 'v') goto yy723;
		goto yy87;
yy563:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy564;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= 'y') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= 'z') goto yy724;
				if (yych <= '~') goto yy86;
			}
		}
yy564:
#line 377 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64Eq); }
#line 3804 "src/prebuilt/wast-lexer-gen.cc"
yy565:
		yych = *++cursor_;
		if (yych == 't') goto yy726;
		goto yy87;
yy566:
		yych = *++cursor_;
		if (yych == '_') goto yy727;
		goto yy87;
yy567:
		yych = *++cursor_;
		if (yych == '_') goto yy728;
		goto yy87;
yy568:
		yych = *++cursor_;
		if (yych == '_') goto yy729;
		goto yy87;
yy569:
		yych = *++cursor_;
		if (yych == 'a') goto yy730;
		goto yy87;
yy570:
		yych = *++cursor_;
		if (yych == '_') goto yy731;
		goto yy87;
yy571:
		yych = *++cursor_;
		if (yych == 'l') goto yy732;
		goto yy87;
yy572:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 379 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64Ne); }
#line 3840 "src/prebuilt/wast-lexer-gen.cc"
yy574:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 349 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Or); }
#line 3848 "src/prebuilt/wast-lexer-gen.cc"
yy576:
		yych = *++cursor_;
		if (yych == 'p') goto yy734;
		goto yy87;
yy577:
		yych = *++cursor_;
		if (yych == 'i') goto yy735;
		if (yych == 'm') goto yy736;
		goto yy87;
yy578:
		yych = *++cursor_;
		if (yych == 't') goto yy737;
		goto yy87;
yy579:
		yych = *++cursor_;
		if (yych == 'l') goto yy738;
		if (yych == 'r') goto yy740;
		goto yy87;
yy580:
		yych = *++cursor_;
		if (yych == 'o') goto yy741;
		goto yy87;
yy581:
		yych = *++cursor_;
		if (yych == 'b') goto yy742;
		goto yy87;
yy582:
		yych = *++cursor_;
		if (yych == 'u') goto yy744;
		goto yy87;
yy583:
		yych = *++cursor_;
		if (yych == 'r') goto yy745;
		goto yy87;
yy584:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 528 "src/wast-lexer.cc"
		{ RETURN(Import); }
#line 3890 "src/prebuilt/wast-lexer-gen.cc"
yy586:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 532 "src/wast-lexer.cc"
		{ RETURN(Invoke); }
#line 3898 "src/prebuilt/wast-lexer-gen.cc"
yy588:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 523 "src/wast-lexer.cc"
		{ RETURN(Memory); }
#line 3906 "src/prebuilt/wast-lexer-gen.cc"
yy590:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 519 "src/wast-lexer.cc"
		{ RETURN(Module); }
#line 3914 "src/prebuilt/wast-lexer-gen.cc"
yy592:
		++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 yy747;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy747;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy747;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy593:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy594;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '<') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '=') goto yy749;
				if (yych <= '~') goto yy86;
			}
		}
yy594:
#line 527 "src/wast-lexer.cc"
		{ RETURN(Offset); }
#line 3961 "src/prebuilt/wast-lexer-gen.cc"
yy595:
		yych = *++cursor_;
		if (yych == 'e') goto yy750;
		goto yy87;
yy596:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 516 "src/wast-lexer.cc"
		{ RETURN(Result); }
#line 3973 "src/prebuilt/wast-lexer-gen.cc"
yy598:
		yych = *++cursor_;
		if (yych == 'w') goto yy751;
		goto yy87;
yy599:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 270 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Return); }
#line 3985 "src/prebuilt/wast-lexer-gen.cc"
yy601:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 441 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Select); }
#line 3993 "src/prebuilt/wast-lexer-gen.cc"
yy603:
		yych = *++cursor_;
		if (yych == 'o') goto yy753;
		goto yy87;
yy604:
		yych = *++cursor_;
		if (yych == 'c') goto yy754;
		goto yy87;
yy605:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 548 "src/wast-lexer.cc"
		{ RETURN(Shared); }
#line 4009 "src/prebuilt/wast-lexer-gen.cc"
yy607:
		yych = *++cursor_;
		if (yych == 'c') goto yy755;
		goto yy87;
yy608:
		yych = *++cursor_;
		if (yych == 'h') goto yy756;
		goto yy87;
yy609:
		++cursor_;
		if ((yych = *cursor_) <= '9') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy610;
				if (yych <= '/') goto yy86;
				goto yy611;
			}
		} else {
			if (yych <= '_') {
				if (yych == ';') goto yy610;
				if (yych <= '^') goto yy86;
				goto yy757;
			} else {
				if (yych == 'x') goto yy758;
				if (yych <= '~') goto yy86;
			}
		}
yy610:
#line 300 "src/wast-lexer.cc"
		{ RETURN_TEXT_AT(AlignEqNat, 6); }
#line 4042 "src/prebuilt/wast-lexer-gen.cc"
yy611:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '/') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
				goto yy610;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy610;
				goto yy86;
			}
		} else {
			if (yych <= ';') {
				if (yych <= '9') goto yy611;
				if (yych <= ':') goto yy86;
				goto yy610;
			} else {
				if (yych == '_') goto yy757;
				if (yych <= '~') goto yy86;
				goto yy610;
			}
		}
yy613:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 255 "src/wast-lexer.cc"
		{ RETURN(Anyfunc); }
#line 4074 "src/prebuilt/wast-lexer-gen.cc"
yy615:
		yych = *++cursor_;
		switch (yych) {
		case 'e':	goto yy759;
		case 'i':	goto yy760;
		case 'm':	goto yy761;
		case 'r':	goto yy762;
		case 't':	goto yy763;
		case 'u':	goto yy764;
		default:	goto yy87;
		}
yy616:
		yych = *++cursor_;
		if (yych == 'w') goto yy765;
		goto yy87;
yy617:
		yych = *++cursor_;
		if (yych == 'e') goto yy766;
		goto yy87;
yy618:
		yych = *++cursor_;
		if (yych == 'd') goto yy768;
		goto yy87;
yy619:
		yych = *++cursor_;
		if (yych == 'l') goto yy769;
		goto yy87;
yy620:
		yych = *++cursor_;
		if (yych == '_') goto yy770;
		goto yy87;
yy621:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 315 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Abs); }
#line 4113 "src/prebuilt/wast-lexer-gen.cc"
yy623:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 362 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Add); }
#line 4121 "src/prebuilt/wast-lexer-gen.cc"
yy625:
		yych = *++cursor_;
		if (yych == 'l') goto yy771;
		goto yy87;
yy626:
		yych = *++cursor_;
		if (yych == 's') goto yy773;
		if (yych == 'v') goto yy774;
		goto yy87;
yy627:
		yych = *++cursor_;
		if (yych == 'y') goto yy775;
		goto yy87;
yy628:
		yych = *++cursor_;
		if (yych == 'o') goto yy776;
		goto yy87;
yy629:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 368 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Div); }
#line 4146 "src/prebuilt/wast-lexer-gen.cc"
yy631:
		yych = *++cursor_;
		if (yych == 'o') goto yy777;
		goto yy87;
yy632:
		yych = *++cursor_;
		if (yych == 'd') goto yy778;
		goto yy87;
yy633:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 372 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Max); }
#line 4162 "src/prebuilt/wast-lexer-gen.cc"
yy635:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 370 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Min); }
#line 4170 "src/prebuilt/wast-lexer-gen.cc"
yy637:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 366 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Mul); }
#line 4178 "src/prebuilt/wast-lexer-gen.cc"
yy639:
		yych = *++cursor_;
		if (yych == 'r') goto yy780;
		goto yy87;
yy640:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 313 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Neg); }
#line 4190 "src/prebuilt/wast-lexer-gen.cc"
yy642:
		yych = *++cursor_;
		if (yych == 'n') goto yy781;
		goto yy87;
yy643:
		yych = *++cursor_;
		if (yych == 't') goto yy782;
		goto yy87;
yy644:
		yych = *++cursor_;
		if (yych == 'r') goto yy784;
		goto yy87;
yy645:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 364 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Sub); }
#line 4210 "src/prebuilt/wast-lexer-gen.cc"
yy647:
		yych = *++cursor_;
		if (yych == 'n') goto yy785;
		goto yy87;
yy648:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 316 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Abs); }
#line 4222 "src/prebuilt/wast-lexer-gen.cc"
yy650:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 363 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Add); }
#line 4230 "src/prebuilt/wast-lexer-gen.cc"
yy652:
		yych = *++cursor_;
		if (yych == 'l') goto yy786;
		goto yy87;
yy653:
		yych = *++cursor_;
		if (yych == 's') goto yy788;
		if (yych == 'v') goto yy789;
		goto yy87;
yy654:
		yych = *++cursor_;
		if (yych == 'y') goto yy790;
		goto yy87;
yy655:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 369 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Div); }
#line 4251 "src/prebuilt/wast-lexer-gen.cc"
yy657:
		yych = *++cursor_;
		if (yych == 'o') goto yy791;
		goto yy87;
yy658:
		yych = *++cursor_;
		if (yych == 'd') goto yy792;
		goto yy87;
yy659:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 373 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Max); }
#line 4267 "src/prebuilt/wast-lexer-gen.cc"
yy661:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 371 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Min); }
#line 4275 "src/prebuilt/wast-lexer-gen.cc"
yy663:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 367 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Mul); }
#line 4283 "src/prebuilt/wast-lexer-gen.cc"
yy665:
		yych = *++cursor_;
		if (yych == 'r') goto yy794;
		goto yy87;
yy666:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 314 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Neg); }
#line 4295 "src/prebuilt/wast-lexer-gen.cc"
yy668:
		yych = *++cursor_;
		if (yych == 'm') goto yy795;
		goto yy87;
yy669:
		yych = *++cursor_;
		if (yych == 'n') goto yy796;
		goto yy87;
yy670:
		yych = *++cursor_;
		if (yych == 't') goto yy797;
		goto yy87;
yy671:
		yych = *++cursor_;
		if (yych == 'r') goto yy799;
		goto yy87;
yy672:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 365 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Sub); }
#line 4319 "src/prebuilt/wast-lexer-gen.cc"
yy674:
		yych = *++cursor_;
		if (yych == 'n') goto yy800;
		goto yy87;
yy675:
		yych = *++cursor_;
		if (yych == 'b') goto yy801;
		goto yy87;
yy676:
		yych = *++cursor_;
		if (yych == 'a') goto yy802;
		goto yy87;
yy677:
		yych = *++cursor_;
		if (yych == 'm') goto yy803;
		goto yy87;
yy678:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 332 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Add); }
#line 4343 "src/prebuilt/wast-lexer-gen.cc"
yy680:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 346 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32And); }
#line 4351 "src/prebuilt/wast-lexer-gen.cc"
yy682:
		yych = *++cursor_;
		if (yych == 'm') goto yy804;
		goto yy87;
yy683:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 307 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Clz); }
#line 4363 "src/prebuilt/wast-lexer-gen.cc"
yy685:
		yych = *++cursor_;
		if (yych == 's') goto yy805;
		goto yy87;
yy686:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 309 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Ctz); }
#line 4375 "src/prebuilt/wast-lexer-gen.cc"
yy688:
		yych = *++cursor_;
		if (yych == '_') goto yy806;
		goto yy87;
yy689:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 305 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32Eqz); }
#line 4387 "src/prebuilt/wast-lexer-gen.cc"
yy691:
		yych = *++cursor_;
		if (yych == 'e') goto yy807;
		goto yy87;
yy692:
		yych = *++cursor_;
		if (yych == 's') goto yy808;
		if (yych == 'u') goto yy810;
		goto yy87;
yy693:
		yych = *++cursor_;
		if (yych == 's') goto yy812;
		if (yych == 'u') goto yy814;
		goto yy87;
yy694:
		yych = *++cursor_;
		if (yych == 's') goto yy816;
		if (yych == 'u') goto yy818;
		goto yy87;
yy695:
		yych = *++cursor_;
		if (yych == 'd') goto yy820;
		goto yy87;
yy696:
		yych = *++cursor_;
		if (yych == 's') goto yy822;
		if (yych == 'u') goto yy824;
		goto yy87;
yy697:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 336 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Mul); }
#line 4423 "src/prebuilt/wast-lexer-gen.cc"
yy699:
		yych = *++cursor_;
		if (yych == 'c') goto yy826;
		goto yy87;
yy700:
		yych = *++cursor_;
		if (yych == 'n') goto yy827;
		goto yy87;
yy701:
		yych = *++cursor_;
		if (yych == '_') goto yy828;
		goto yy87;
yy702:
		yych = *++cursor_;
		if (yych == 'l') goto yy829;
		if (yych == 'r') goto yy831;
		goto yy87;
yy703:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 352 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Shl); }
#line 4448 "src/prebuilt/wast-lexer-gen.cc"
yy705:
		yych = *++cursor_;
		if (yych == '_') goto yy833;
		goto yy87;
yy706:
		yych = *++cursor_;
		if (yych == 'r') goto yy834;
		goto yy87;
yy707:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 334 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Sub); }
#line 4464 "src/prebuilt/wast-lexer-gen.cc"
yy709:
		yych = *++cursor_;
		if (yych == 'n') goto yy835;
		goto yy87;
yy710:
		yych = *++cursor_;
		if (yych == 'p') goto yy836;
		goto yy87;
yy711:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 350 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Xor); }
#line 4480 "src/prebuilt/wast-lexer-gen.cc"
yy713:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 333 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Add); }
#line 4488 "src/prebuilt/wast-lexer-gen.cc"
yy715:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 347 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64And); }
#line 4496 "src/prebuilt/wast-lexer-gen.cc"
yy717:
		yych = *++cursor_;
		if (yych == 'm') goto yy837;
		goto yy87;
yy718:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 308 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Clz); }
#line 4508 "src/prebuilt/wast-lexer-gen.cc"
yy720:
		yych = *++cursor_;
		if (yych == 's') goto yy838;
		goto yy87;
yy721:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 310 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Ctz); }
#line 4520 "src/prebuilt/wast-lexer-gen.cc"
yy723:
		yych = *++cursor_;
		if (yych == '_') goto yy839;
		goto yy87;
yy724:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 306 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64Eqz); }
#line 4532 "src/prebuilt/wast-lexer-gen.cc"
yy726:
		yych = *++cursor_;
		if (yych == 'e') goto yy840;
		goto yy87;
yy727:
		yych = *++cursor_;
		if (yych == 's') goto yy841;
		if (yych == 'u') goto yy843;
		goto yy87;
yy728:
		yych = *++cursor_;
		if (yych == 's') goto yy845;
		if (yych == 'u') goto yy847;
		goto yy87;
yy729:
		yych = *++cursor_;
		if (yych == 's') goto yy849;
		if (yych == 'u') goto yy851;
		goto yy87;
yy730:
		yych = *++cursor_;
		if (yych == 'd') goto yy853;
		goto yy87;
yy731:
		yych = *++cursor_;
		if (yych == 's') goto yy855;
		if (yych == 'u') goto yy857;
		goto yy87;
yy732:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 337 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Mul); }
#line 4568 "src/prebuilt/wast-lexer-gen.cc"
yy734:
		yych = *++cursor_;
		if (yych == 'c') goto yy859;
		goto yy87;
yy735:
		yych = *++cursor_;
		if (yych == 'n') goto yy860;
		goto yy87;
yy736:
		yych = *++cursor_;
		if (yych == '_') goto yy861;
		goto yy87;
yy737:
		yych = *++cursor_;
		if (yych == 'l') goto yy862;
		if (yych == 'r') goto yy864;
		goto yy87;
yy738:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 353 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Shl); }
#line 4593 "src/prebuilt/wast-lexer-gen.cc"
yy740:
		yych = *++cursor_;
		if (yych == '_') goto yy866;
		goto yy87;
yy741:
		yych = *++cursor_;
		if (yych == 'r') goto yy867;
		goto yy87;
yy742:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 335 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Sub); }
#line 4609 "src/prebuilt/wast-lexer-gen.cc"
yy744:
		yych = *++cursor_;
		if (yych == 'n') goto yy868;
		goto yy87;
yy745:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 351 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Xor); }
#line 4621 "src/prebuilt/wast-lexer-gen.cc"
yy747:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy259;
				goto yy86;
			} else {
				if (yych <= ')') goto yy259;
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy747;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy259;
				if (yych <= '@') goto yy86;
				if (yych <= 'F') goto yy747;
				goto yy86;
			} else {
				if (yych <= '`') {
					if (yych <= '_') goto yy592;
					goto yy86;
				} else {
					if (yych <= 'f') goto yy747;
					if (yych <= '~') goto yy86;
					goto yy259;
				}
			}
		}
yy749:
		yych = *++cursor_;
		if (yych <= '/') goto yy87;
		if (yych <= '0') goto yy869;
		if (yych <= '9') goto yy871;
		goto yy87;
yy750:
		yych = *++cursor_;
		if (yych == 'r') goto yy873;
		goto yy87;
yy751:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 546 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Rethrow); }
#line 4671 "src/prebuilt/wast-lexer-gen.cc"
yy753:
		yych = *++cursor_;
		if (yych == 'b') goto yy875;
		goto yy87;
yy754:
		yych = *++cursor_;
		if (yych == 'a') goto yy876;
		goto yy87;
yy755:
		yych = *++cursor_;
		if (yych == 'a') goto yy877;
		goto yy87;
yy756:
		yych = *++cursor_;
		if (yych == 'a') goto yy878;
		goto yy87;
yy757:
		++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 <= ':') {
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy611;
				goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy758:
		++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 yy879;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy879;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy879;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy759:
		yych = *++cursor_;
		if (yych == 'x') goto yy881;
		goto yy87;
yy760:
		yych = *++cursor_;
		if (yych == 'n') goto yy882;
		goto yy87;
yy761:
		yych = *++cursor_;
		if (yych == 'a') goto yy883;
		goto yy87;
yy762:
		yych = *++cursor_;
		if (yych == 'e') goto yy884;
		goto yy87;
yy763:
		yych = *++cursor_;
		if (yych == 'r') goto yy885;
		goto yy87;
yy764:
		yych = *++cursor_;
		if (yych == 'n') goto yy886;
		goto yy87;
yy765:
		yych = *++cursor_;
		if (yych == 'a') goto yy887;
		goto yy87;
yy766:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 265 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(BrTable); }
#line 4773 "src/prebuilt/wast-lexer-gen.cc"
yy768:
		yych = *++cursor_;
		if (yych == 'i') goto yy888;
		goto yy87;
yy769:
		yych = *++cursor_;
		if (yych == 'l') goto yy889;
		goto yy87;
yy770:
		yych = *++cursor_;
		if (yych == 'm') goto yy891;
		goto yy87;
yy771:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 319 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Ceil); }
#line 4793 "src/prebuilt/wast-lexer-gen.cc"
yy773:
		yych = *++cursor_;
		if (yych == 't') goto yy892;
		goto yy87;
yy774:
		yych = *++cursor_;
		if (yych == 'e') goto yy894;
		goto yy87;
yy775:
		yych = *++cursor_;
		if (yych == 's') goto yy895;
		goto yy87;
yy776:
		yych = *++cursor_;
		if (yych == 't') goto yy896;
		goto yy87;
yy777:
		yych = *++cursor_;
		if (yych == 'r') goto yy897;
		goto yy87;
yy778:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 278 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, F32Load); }
#line 4821 "src/prebuilt/wast-lexer-gen.cc"
yy780:
		yych = *++cursor_;
		if (yych == 'e') goto yy899;
		goto yy87;
yy781:
		yych = *++cursor_;
		if (yych == 't') goto yy900;
		goto yy87;
yy782:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 317 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Sqrt); }
#line 4837 "src/prebuilt/wast-lexer-gen.cc"
yy784:
		yych = *++cursor_;
		if (yych == 'e') goto yy901;
		goto yy87;
yy785:
		yych = *++cursor_;
		if (yych == 'c') goto yy903;
		goto yy87;
yy786:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 320 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Ceil); }
#line 4853 "src/prebuilt/wast-lexer-gen.cc"
yy788:
		yych = *++cursor_;
		if (yych == 't') goto yy905;
		goto yy87;
yy789:
		yych = *++cursor_;
		if (yych == 'e') goto yy907;
		goto yy87;
yy790:
		yych = *++cursor_;
		if (yych == 's') goto yy908;
		goto yy87;
yy791:
		yych = *++cursor_;
		if (yych == 'r') goto yy909;
		goto yy87;
yy792:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 279 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, F64Load); }
#line 4877 "src/prebuilt/wast-lexer-gen.cc"
yy794:
		yych = *++cursor_;
		if (yych == 'e') goto yy911;
		goto yy87;
yy795:
		yych = *++cursor_;
		if (yych == 'o') goto yy912;
		goto yy87;
yy796:
		yych = *++cursor_;
		if (yych == 't') goto yy913;
		goto yy87;
yy797:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 318 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Sqrt); }
#line 4897 "src/prebuilt/wast-lexer-gen.cc"
yy799:
		yych = *++cursor_;
		if (yych == 'e') goto yy914;
		goto yy87;
yy800:
		yych = *++cursor_;
		if (yych == 'c') goto yy916;
		goto yy87;
yy801:
		yych = *++cursor_;
		if (yych == 'a') goto yy918;
		goto yy87;
yy802:
		yych = *++cursor_;
		if (yych == 'l') goto yy919;
		goto yy87;
yy803:
		yych = *++cursor_;
		if (yych == 'o') goto yy921;
		goto yy87;
yy804:
		yych = *++cursor_;
		if (yych == 'i') goto yy922;
		goto yy87;
yy805:
		yych = *++cursor_;
		if (yych == 't') goto yy923;
		goto yy87;
yy806:
		yych = *++cursor_;
		if (yych == 's') goto yy925;
		if (yych == 'u') goto yy927;
		goto yy87;
yy807:
		yych = *++cursor_;
		if (yych == 'n') goto yy929;
		goto yy87;
yy808:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 392 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32GeS); }
#line 4942 "src/prebuilt/wast-lexer-gen.cc"
yy810:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 394 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32GeU); }
#line 4950 "src/prebuilt/wast-lexer-gen.cc"
yy812:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 388 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32GtS); }
#line 4958 "src/prebuilt/wast-lexer-gen.cc"
yy814:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 390 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32GtU); }
#line 4966 "src/prebuilt/wast-lexer-gen.cc"
yy816:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 384 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32LeS); }
#line 4974 "src/prebuilt/wast-lexer-gen.cc"
yy818:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 386 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32LeU); }
#line 4982 "src/prebuilt/wast-lexer-gen.cc"
yy820:
		++cursor_;
		if ((yych = *cursor_) <= '0') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych >= '*') goto yy86;
			}
		} else {
			if (yych <= '8') {
				if (yych <= '1') goto yy930;
				if (yych <= '7') goto yy86;
				goto yy931;
			} else {
				if (yych == ';') goto yy821;
				if (yych <= '~') goto yy86;
			}
		}
yy821:
#line 276 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load); }
#line 5005 "src/prebuilt/wast-lexer-gen.cc"
yy822:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 380 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32LtS); }
#line 5013 "src/prebuilt/wast-lexer-gen.cc"
yy824:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 382 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32LtU); }
#line 5021 "src/prebuilt/wast-lexer-gen.cc"
yy826:
		yych = *++cursor_;
		if (yych == 'n') goto yy932;
		goto yy87;
yy827:
		yych = *++cursor_;
		if (yych == 't') goto yy933;
		goto yy87;
yy828:
		yych = *++cursor_;
		if (yych == 's') goto yy934;
		if (yych == 'u') goto yy936;
		goto yy87;
yy829:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 358 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Rotl); }
#line 5042 "src/prebuilt/wast-lexer-gen.cc"
yy831:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 360 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Rotr); }
#line 5050 "src/prebuilt/wast-lexer-gen.cc"
yy833:
		yych = *++cursor_;
		if (yych == 's') goto yy938;
		if (yych == 'u') goto yy940;
		goto yy87;
yy834:
		yych = *++cursor_;
		if (yych == 'e') goto yy942;
		goto yy87;
yy835:
		yych = *++cursor_;
		if (yych == 'c') goto yy944;
		goto yy87;
yy836:
		yych = *++cursor_;
		if (yych == '/') goto yy945;
		goto yy87;
yy837:
		yych = *++cursor_;
		if (yych == 'i') goto yy946;
		goto yy87;
yy838:
		yych = *++cursor_;
		if (yych == 't') goto yy947;
		goto yy87;
yy839:
		yych = *++cursor_;
		if (yych == 's') goto yy949;
		if (yych == 'u') goto yy951;
		goto yy87;
yy840:
		yych = *++cursor_;
		if (yych == 'n') goto yy953;
		goto yy87;
yy841:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 393 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64GeS); }
#line 5092 "src/prebuilt/wast-lexer-gen.cc"
yy843:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 395 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64GeU); }
#line 5100 "src/prebuilt/wast-lexer-gen.cc"
yy845:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 389 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64GtS); }
#line 5108 "src/prebuilt/wast-lexer-gen.cc"
yy847:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 391 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64GtU); }
#line 5116 "src/prebuilt/wast-lexer-gen.cc"
yy849:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 385 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64LeS); }
#line 5124 "src/prebuilt/wast-lexer-gen.cc"
yy851:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 387 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64LeU); }
#line 5132 "src/prebuilt/wast-lexer-gen.cc"
yy853:
		++cursor_;
		if ((yych = *cursor_) <= '1') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy854;
				if (yych <= '0') goto yy86;
				goto yy954;
			}
		} else {
			if (yych <= '8') {
				if (yych == '3') goto yy955;
				if (yych <= '7') goto yy86;
				goto yy956;
			} else {
				if (yych == ';') goto yy854;
				if (yych <= '~') goto yy86;
			}
		}
yy854:
#line 277 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load); }
#line 5157 "src/prebuilt/wast-lexer-gen.cc"
yy855:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 381 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64LtS); }
#line 5165 "src/prebuilt/wast-lexer-gen.cc"
yy857:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 383 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64LtU); }
#line 5173 "src/prebuilt/wast-lexer-gen.cc"
yy859:
		yych = *++cursor_;
		if (yych == 'n') goto yy957;
		goto yy87;
yy860:
		yych = *++cursor_;
		if (yych == 't') goto yy958;
		goto yy87;
yy861:
		yych = *++cursor_;
		if (yych == 's') goto yy959;
		if (yych == 'u') goto yy961;
		goto yy87;
yy862:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 359 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Rotl); }
#line 5194 "src/prebuilt/wast-lexer-gen.cc"
yy864:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 361 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Rotr); }
#line 5202 "src/prebuilt/wast-lexer-gen.cc"
yy866:
		yych = *++cursor_;
		if (yych == 's') goto yy963;
		if (yych == 'u') goto yy965;
		goto yy87;
yy867:
		yych = *++cursor_;
		if (yych == 'e') goto yy967;
		goto yy87;
yy868:
		yych = *++cursor_;
		if (yych == 'c') goto yy969;
		goto yy87;
yy869:
		++cursor_;
		if ((yych = *cursor_) <= '9') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy870;
				if (yych <= '/') goto yy86;
				goto yy871;
			}
		} else {
			if (yych <= '_') {
				if (yych == ';') goto yy870;
				if (yych <= '^') goto yy86;
				goto yy970;
			} else {
				if (yych == 'x') goto yy971;
				if (yych <= '~') goto yy86;
			}
		}
yy870:
#line 299 "src/wast-lexer.cc"
		{ RETURN_TEXT_AT(OffsetEqNat, 7); }
#line 5240 "src/prebuilt/wast-lexer-gen.cc"
yy871:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '/') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
				goto yy870;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy870;
				goto yy86;
			}
		} else {
			if (yych <= ';') {
				if (yych <= '9') goto yy871;
				if (yych <= ':') goto yy86;
				goto yy870;
			} else {
				if (yych == '_') goto yy970;
				if (yych <= '~') goto yy86;
				goto yy870;
			}
		}
yy873:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 531 "src/wast-lexer.cc"
		{ RETURN(Register); }
#line 5272 "src/prebuilt/wast-lexer-gen.cc"
yy875:
		yych = *++cursor_;
		if (yych == 'a') goto yy972;
		goto yy87;
yy876:
		yych = *++cursor_;
		if (yych == 'l') goto yy973;
		goto yy87;
yy877:
		yych = *++cursor_;
		if (yych == 'l') goto yy975;
		goto yy87;
yy878:
		yych = *++cursor_;
		if (yych == 'b') goto yy977;
		goto yy87;
yy879:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy610;
				goto yy86;
			} else {
				if (yych <= ')') goto yy610;
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy879;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy610;
				if (yych <= '@') goto yy86;
				if (yych <= 'F') goto yy879;
				goto yy86;
			} else {
				if (yych <= '`') {
					if (yych <= '_') goto yy758;
					goto yy86;
				} else {
					if (yych <= 'f') goto yy879;
					if (yych <= '~') goto yy86;
					goto yy610;
				}
			}
		}
yy881:
		yych = *++cursor_;
		if (yych == 'h') goto yy978;
		goto yy87;
yy882:
		yych = *++cursor_;
		if (yych == 'v') goto yy979;
		goto yy87;
yy883:
		yych = *++cursor_;
		if (yych == 'l') goto yy980;
		goto yy87;
yy884:
		yych = *++cursor_;
		if (yych == 't') goto yy981;
		goto yy87;
yy885:
		yych = *++cursor_;
		if (yych == 'a') goto yy982;
		goto yy87;
yy886:
		yych = *++cursor_;
		if (yych == 'l') goto yy983;
		goto yy87;
yy887:
		yych = *++cursor_;
		if (yych == 'k') goto yy984;
		goto yy87;
yy888:
		yych = *++cursor_;
		if (yych == 'r') goto yy985;
		goto yy87;
yy889:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 544 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(CatchAll); }
#line 5360 "src/prebuilt/wast-lexer-gen.cc"
yy891:
		yych = *++cursor_;
		if (yych == 'e') goto yy986;
		goto yy87;
yy892:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 303 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Const, F32Const); }
#line 5372 "src/prebuilt/wast-lexer-gen.cc"
yy894:
		yych = *++cursor_;
		if (yych == 'r') goto yy987;
		goto yy87;
yy895:
		yych = *++cursor_;
		if (yych == 'i') goto yy988;
		goto yy87;
yy896:
		yych = *++cursor_;
		if (yych == 'e') goto yy989;
		goto yy87;
yy897:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 321 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Floor); }
#line 5392 "src/prebuilt/wast-lexer-gen.cc"
yy899:
		yych = *++cursor_;
		if (yych == 's') goto yy990;
		goto yy87;
yy900:
		yych = *++cursor_;
		if (yych == 'e') goto yy991;
		goto yy87;
yy901:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 282 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, F32Store); }
#line 5408 "src/prebuilt/wast-lexer-gen.cc"
yy903:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 323 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Trunc); }
#line 5416 "src/prebuilt/wast-lexer-gen.cc"
yy905:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 304 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Const, F64Const); }
#line 5424 "src/prebuilt/wast-lexer-gen.cc"
yy907:
		yych = *++cursor_;
		if (yych == 'r') goto yy992;
		goto yy87;
yy908:
		yych = *++cursor_;
		if (yych == 'i') goto yy993;
		goto yy87;
yy909:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 322 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Floor); }
#line 5440 "src/prebuilt/wast-lexer-gen.cc"
yy911:
		yych = *++cursor_;
		if (yych == 's') goto yy994;
		goto yy87;
yy912:
		yych = *++cursor_;
		if (yych == 't') goto yy995;
		goto yy87;
yy913:
		yych = *++cursor_;
		if (yych == 'e') goto yy996;
		goto yy87;
yy914:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 283 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, F64Store); }
#line 5460 "src/prebuilt/wast-lexer-gen.cc"
yy916:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 324 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Trunc); }
#line 5468 "src/prebuilt/wast-lexer-gen.cc"
yy918:
		yych = *++cursor_;
		if (yych == 'l') goto yy997;
		goto yy87;
yy919:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 271 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(GetLocal); }
#line 5480 "src/prebuilt/wast-lexer-gen.cc"
yy921:
		yych = *++cursor_;
		if (yych == 'r') goto yy999;
		goto yy87;
yy922:
		yych = *++cursor_;
		if (yych == 'c') goto yy1000;
		goto yy87;
yy923:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 301 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Const, I32Const); }
#line 5496 "src/prebuilt/wast-lexer-gen.cc"
yy925:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 338 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32DivS); }
#line 5504 "src/prebuilt/wast-lexer-gen.cc"
yy927:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 340 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32DivU); }
#line 5512 "src/prebuilt/wast-lexer-gen.cc"
yy929:
		yych = *++cursor_;
		if (yych == 'd') goto yy1001;
		goto yy87;
yy930:
		yych = *++cursor_;
		if (yych == '6') goto yy1002;
		goto yy87;
yy931:
		yych = *++cursor_;
		if (yych == '_') goto yy1003;
		goto yy87;
yy932:
		yych = *++cursor_;
		if (yych == 't') goto yy1004;
		goto yy87;
yy933:
		yych = *++cursor_;
		if (yych == 'e') goto yy1006;
		goto yy87;
yy934:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 342 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32RemS); }
#line 5540 "src/prebuilt/wast-lexer-gen.cc"
yy936:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 344 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32RemU); }
#line 5548 "src/prebuilt/wast-lexer-gen.cc"
yy938:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 354 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32ShrS); }
#line 5556 "src/prebuilt/wast-lexer-gen.cc"
yy940:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 356 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32ShrU); }
#line 5564 "src/prebuilt/wast-lexer-gen.cc"
yy942:
		++cursor_;
		if ((yych = *cursor_) <= '0') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych >= '*') goto yy86;
			}
		} else {
			if (yych <= '8') {
				if (yych <= '1') goto yy1007;
				if (yych <= '7') goto yy86;
				goto yy1008;
			} else {
				if (yych == ';') goto yy943;
				if (yych <= '~') goto yy86;
			}
		}
yy943:
#line 280 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I32Store); }
#line 5587 "src/prebuilt/wast-lexer-gen.cc"
yy944:
		yych = *++cursor_;
		if (yych == '_') goto yy1010;
		goto yy87;
yy945:
		yych = *++cursor_;
		if (yych == 'i') goto yy1011;
		goto yy87;
yy946:
		yych = *++cursor_;
		if (yych == 'c') goto yy1012;
		goto yy87;
yy947:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 302 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Const, I64Const); }
#line 5607 "src/prebuilt/wast-lexer-gen.cc"
yy949:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 339 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64DivS); }
#line 5615 "src/prebuilt/wast-lexer-gen.cc"
yy951:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 341 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64DivU); }
#line 5623 "src/prebuilt/wast-lexer-gen.cc"
yy953:
		yych = *++cursor_;
		if (yych == 'd') goto yy1013;
		goto yy87;
yy954:
		yych = *++cursor_;
		if (yych == '6') goto yy1014;
		goto yy87;
yy955:
		yych = *++cursor_;
		if (yych == '2') goto yy1015;
		goto yy87;
yy956:
		yych = *++cursor_;
		if (yych == '_') goto yy1016;
		goto yy87;
yy957:
		yych = *++cursor_;
		if (yych == 't') goto yy1017;
		goto yy87;
yy958:
		yych = *++cursor_;
		if (yych == 'e') goto yy1019;
		goto yy87;
yy959:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 343 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64RemS); }
#line 5655 "src/prebuilt/wast-lexer-gen.cc"
yy961:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 345 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64RemU); }
#line 5663 "src/prebuilt/wast-lexer-gen.cc"
yy963:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 355 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64ShrS); }
#line 5671 "src/prebuilt/wast-lexer-gen.cc"
yy965:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 357 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64ShrU); }
#line 5679 "src/prebuilt/wast-lexer-gen.cc"
yy967:
		++cursor_;
		if ((yych = *cursor_) <= '1') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy968;
				if (yych <= '0') goto yy86;
				goto yy1020;
			}
		} else {
			if (yych <= '8') {
				if (yych == '3') goto yy1021;
				if (yych <= '7') goto yy86;
				goto yy1022;
			} else {
				if (yych == ';') goto yy968;
				if (yych <= '~') goto yy86;
			}
		}
yy968:
#line 281 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I64Store); }
#line 5704 "src/prebuilt/wast-lexer-gen.cc"
yy969:
		yych = *++cursor_;
		if (yych == '_') goto yy1024;
		goto yy87;
yy970:
		++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 <= ':') {
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy871;
				goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy971:
		++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 yy1025;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy1025;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy1025;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy972:
		yych = *++cursor_;
		if (yych == 'l') goto yy1027;
		goto yy87;
yy973:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 272 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(SetLocal); }
#line 5770 "src/prebuilt/wast-lexer-gen.cc"
yy975:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 273 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(TeeLocal); }
#line 5778 "src/prebuilt/wast-lexer-gen.cc"
yy977:
		yych = *++cursor_;
		if (yych == 'l') goto yy1029;
		goto yy87;
yy978:
		yych = *++cursor_;
		if (yych == 'a') goto yy1030;
		goto yy87;
yy979:
		yych = *++cursor_;
		if (yych == 'a') goto yy1031;
		goto yy87;
yy980:
		yych = *++cursor_;
		if (yych == 'f') goto yy1032;
		goto yy87;
yy981:
		yych = *++cursor_;
		if (yych == 'u') goto yy1033;
		goto yy87;
yy982:
		yych = *++cursor_;
		if (yych == 'p') goto yy1034;
		goto yy87;
yy983:
		yych = *++cursor_;
		if (yych == 'i') goto yy1036;
		goto yy87;
yy984:
		yych = *++cursor_;
		if (yych == 'e') goto yy1037;
		goto yy87;
yy985:
		yych = *++cursor_;
		if (yych == 'e') goto yy1039;
		goto yy87;
yy986:
		yych = *++cursor_;
		if (yych == 'm') goto yy1040;
		goto yy87;
yy987:
		yych = *++cursor_;
		if (yych == 't') goto yy1041;
		goto yy87;
yy988:
		yych = *++cursor_;
		if (yych == 'g') goto yy1042;
		goto yy87;
yy989:
		yych = *++cursor_;
		if (yych == '/') goto yy1043;
		goto yy87;
yy990:
		yych = *++cursor_;
		if (yych == 't') goto yy1044;
		goto yy87;
yy991:
		yych = *++cursor_;
		if (yych == 'r') goto yy1046;
		goto yy87;
yy992:
		yych = *++cursor_;
		if (yych == 't') goto yy1047;
		goto yy87;
yy993:
		yych = *++cursor_;
		if (yych == 'g') goto yy1048;
		goto yy87;
yy994:
		yych = *++cursor_;
		if (yych == 't') goto yy1049;
		goto yy87;
yy995:
		yych = *++cursor_;
		if (yych == 'e') goto yy1051;
		goto yy87;
yy996:
		yych = *++cursor_;
		if (yych == 'r') goto yy1052;
		goto yy87;
yy997:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 274 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(GetGlobal); }
#line 5866 "src/prebuilt/wast-lexer-gen.cc"
yy999:
		yych = *++cursor_;
		if (yych == 'y') goto yy1053;
		goto yy87;
yy1000:
		yych = *++cursor_;
		if (yych == '.') goto yy1055;
		goto yy87;
yy1001:
		yych = *++cursor_;
		if (yych == '1') goto yy1056;
		if (yych == '8') goto yy1057;
		goto yy87;
yy1002:
		yych = *++cursor_;
		if (yych == '_') goto yy1058;
		goto yy87;
yy1003:
		yych = *++cursor_;
		if (yych == 's') goto yy1059;
		if (yych == 'u') goto yy1061;
		goto yy87;
yy1004:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 311 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Popcnt); }
#line 5896 "src/prebuilt/wast-lexer-gen.cc"
yy1006:
		yych = *++cursor_;
		if (yych == 'r') goto yy1063;
		goto yy87;
yy1007:
		yych = *++cursor_;
		if (yych == '6') goto yy1064;
		goto yy87;
yy1008:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 294 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I32Store8); }
#line 5912 "src/prebuilt/wast-lexer-gen.cc"
yy1010:
		yych = *++cursor_;
		if (yych == 's') goto yy1066;
		if (yych == 'u') goto yy1067;
		goto yy87;
yy1011:
		yych = *++cursor_;
		if (yych == '6') goto yy1068;
		goto yy87;
yy1012:
		yych = *++cursor_;
		if (yych == '.') goto yy1069;
		goto yy87;
yy1013:
		yych = *++cursor_;
		if (yych <= '3') {
			if (yych == '1') goto yy1070;
			if (yych <= '2') goto yy87;
			goto yy1071;
		} else {
			if (yych <= '8') {
				if (yych <= '7') goto yy87;
				goto yy1072;
			} else {
				if (yych == '_') goto yy1073;
				goto yy87;
			}
		}
yy1014:
		yych = *++cursor_;
		if (yych == '_') goto yy1074;
		goto yy87;
yy1015:
		yych = *++cursor_;
		if (yych == '_') goto yy1075;
		goto yy87;
yy1016:
		yych = *++cursor_;
		if (yych == 's') goto yy1076;
		if (yych == 'u') goto yy1078;
		goto yy87;
yy1017:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 312 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Popcnt); }
#line 5961 "src/prebuilt/wast-lexer-gen.cc"
yy1019:
		yych = *++cursor_;
		if (yych == 'r') goto yy1080;
		goto yy87;
yy1020:
		yych = *++cursor_;
		if (yych == '6') goto yy1081;
		goto yy87;
yy1021:
		yych = *++cursor_;
		if (yych == '2') goto yy1083;
		goto yy87;
yy1022:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 295 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I64Store8); }
#line 5981 "src/prebuilt/wast-lexer-gen.cc"
yy1024:
		yych = *++cursor_;
		if (yych == 's') goto yy1085;
		if (yych == 'u') goto yy1086;
		goto yy87;
yy1025:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy870;
				goto yy86;
			} else {
				if (yych <= ')') goto yy870;
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy1025;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy870;
				if (yych <= '@') goto yy86;
				if (yych <= 'F') goto yy1025;
				goto yy86;
			} else {
				if (yych <= '`') {
					if (yych <= '_') goto yy971;
					goto yy86;
				} else {
					if (yych <= 'f') goto yy1025;
					if (yych <= '~') goto yy86;
					goto yy870;
				}
			}
		}
yy1027:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 275 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(SetGlobal); }
#line 6026 "src/prebuilt/wast-lexer-gen.cc"
yy1029:
		yych = *++cursor_;
		if (yych == 'e') goto yy1087;
		goto yy87;
yy1030:
		yych = *++cursor_;
		if (yych == 'u') goto yy1089;
		goto yy87;
yy1031:
		yych = *++cursor_;
		if (yych == 'l') goto yy1090;
		goto yy87;
yy1032:
		yych = *++cursor_;
		if (yych == 'o') goto yy1091;
		goto yy87;
yy1033:
		yych = *++cursor_;
		if (yych == 'r') goto yy1092;
		goto yy87;
yy1034:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 540 "src/wast-lexer.cc"
		{ RETURN(AssertTrap); }
#line 6054 "src/prebuilt/wast-lexer-gen.cc"
yy1036:
		yych = *++cursor_;
		if (yych == 'n') goto yy1093;
		goto yy87;
yy1037:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 448 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(AtomicWake); }
#line 6066 "src/prebuilt/wast-lexer-gen.cc"
yy1039:
		yych = *++cursor_;
		if (yych == 'c') goto yy1094;
		goto yy87;
yy1040:
		yych = *++cursor_;
		if (yych == 'o') goto yy1095;
		goto yy87;
yy1041:
		yych = *++cursor_;
		if (yych == '_') goto yy1096;
		goto yy87;
yy1042:
		yych = *++cursor_;
		if (yych == 'n') goto yy1097;
		goto yy87;
yy1043:
		yych = *++cursor_;
		if (yych == 'f') goto yy1099;
		goto yy87;
yy1044:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 325 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Nearest); }
#line 6094 "src/prebuilt/wast-lexer-gen.cc"
yy1046:
		yych = *++cursor_;
		if (yych == 'p') goto yy1100;
		goto yy87;
yy1047:
		yych = *++cursor_;
		if (yych == '_') goto yy1101;
		goto yy87;
yy1048:
		yych = *++cursor_;
		if (yych == 'n') goto yy1102;
		goto yy87;
yy1049:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 326 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Nearest); }
#line 6114 "src/prebuilt/wast-lexer-gen.cc"
yy1051:
		yych = *++cursor_;
		if (yych == '/') goto yy1104;
		goto yy87;
yy1052:
		yych = *++cursor_;
		if (yych == 'p') goto yy1105;
		goto yy87;
yy1053:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 444 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(GrowMemory); }
#line 6130 "src/prebuilt/wast-lexer-gen.cc"
yy1055:
		yych = *++cursor_;
		if (yych <= 'r') {
			if (yych == 'l') goto yy1106;
			if (yych <= 'q') goto yy87;
			goto yy1107;
		} else {
			if (yych <= 's') goto yy1108;
			if (yych == 'w') goto yy1109;
			goto yy87;
		}
yy1056:
		yych = *++cursor_;
		if (yych == '6') goto yy1110;
		goto yy87;
yy1057:
		yych = *++cursor_;
		if (yych == '_') goto yy1111;
		goto yy87;
yy1058:
		yych = *++cursor_;
		if (yych == 's') goto yy1112;
		if (yych == 'u') goto yy1114;
		goto yy87;
yy1059:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 284 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load8S); }
#line 6162 "src/prebuilt/wast-lexer-gen.cc"
yy1061:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 286 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load8U); }
#line 6170 "src/prebuilt/wast-lexer-gen.cc"
yy1063:
		yych = *++cursor_;
		if (yych == 'p') goto yy1116;
		goto yy87;
yy1064:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 296 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I32Store16); }
#line 6182 "src/prebuilt/wast-lexer-gen.cc"
yy1066:
		yych = *++cursor_;
		if (yych == '/') goto yy1117;
		if (yych == ':') goto yy1118;
		goto yy87;
yy1067:
		yych = *++cursor_;
		if (yych == '/') goto yy1119;
		if (yych == ':') goto yy1120;
		goto yy87;
yy1068:
		yych = *++cursor_;
		if (yych == '4') goto yy1121;
		goto yy87;
yy1069:
		yych = *++cursor_;
		if (yych <= 'r') {
			if (yych == 'l') goto yy1123;
			if (yych <= 'q') goto yy87;
			goto yy1124;
		} else {
			if (yych <= 's') goto yy1125;
			if (yych == 'w') goto yy1126;
			goto yy87;
		}
yy1070:
		yych = *++cursor_;
		if (yych == '6') goto yy1127;
		goto yy87;
yy1071:
		yych = *++cursor_;
		if (yych == '2') goto yy1128;
		goto yy87;
yy1072:
		yych = *++cursor_;
		if (yych == '_') goto yy1129;
		goto yy87;
yy1073:
		yych = *++cursor_;
		if (yych == 's') goto yy1130;
		if (yych == 'u') goto yy1131;
		goto yy87;
yy1074:
		yych = *++cursor_;
		if (yych == 's') goto yy1132;
		if (yych == 'u') goto yy1134;
		goto yy87;
yy1075:
		yych = *++cursor_;
		if (yych == 's') goto yy1136;
		if (yych == 'u') goto yy1138;
		goto yy87;
yy1076:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 285 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load8S); }
#line 6242 "src/prebuilt/wast-lexer-gen.cc"
yy1078:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 287 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load8U); }
#line 6250 "src/prebuilt/wast-lexer-gen.cc"
yy1080:
		yych = *++cursor_;
		if (yych == 'p') goto yy1140;
		goto yy87;
yy1081:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 297 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I64Store16); }
#line 6262 "src/prebuilt/wast-lexer-gen.cc"
yy1083:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 298 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I64Store32); }
#line 6270 "src/prebuilt/wast-lexer-gen.cc"
yy1085:
		yych = *++cursor_;
		if (yych == '/') goto yy1141;
		if (yych == ':') goto yy1142;
		goto yy87;
yy1086:
		yych = *++cursor_;
		if (yych == '/') goto yy1143;
		if (yych == ':') goto yy1144;
		goto yy87;
yy1087:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 442 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Unreachable); }
#line 6288 "src/prebuilt/wast-lexer-gen.cc"
yy1089:
		yych = *++cursor_;
		if (yych == 's') goto yy1145;
		goto yy87;
yy1090:
		yych = *++cursor_;
		if (yych == 'i') goto yy1146;
		goto yy87;
yy1091:
		yych = *++cursor_;
		if (yych == 'r') goto yy1147;
		goto yy87;
yy1092:
		yych = *++cursor_;
		if (yych == 'n') goto yy1148;
		goto yy87;
yy1093:
		yych = *++cursor_;
		if (yych == 'k') goto yy1150;
		goto yy87;
yy1094:
		yych = *++cursor_;
		if (yych == 't') goto yy1151;
		goto yy87;
yy1095:
		yych = *++cursor_;
		if (yych == 'r') goto yy1153;
		goto yy87;
yy1096:
		yych = *++cursor_;
		if (yych == 's') goto yy1154;
		if (yych == 'u') goto yy1155;
		goto yy87;
yy1097:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 374 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Copysign); }
#line 6329 "src/prebuilt/wast-lexer-gen.cc"
yy1099:
		yych = *++cursor_;
		if (yych == '6') goto yy1156;
		goto yy87;
yy1100:
		yych = *++cursor_;
		if (yych == 'r') goto yy1157;
		goto yy87;
yy1101:
		yych = *++cursor_;
		if (yych == 's') goto yy1158;
		if (yych == 'u') goto yy1159;
		goto yy87;
yy1102:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 375 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Copysign); }
#line 6350 "src/prebuilt/wast-lexer-gen.cc"
yy1104:
		yych = *++cursor_;
		if (yych == 'f') goto yy1160;
		goto yy87;
yy1105:
		yych = *++cursor_;
		if (yych == 'r') goto yy1161;
		goto yy87;
yy1106:
		yych = *++cursor_;
		if (yych == 'o') goto yy1162;
		goto yy87;
yy1107:
		yych = *++cursor_;
		if (yych == 'm') goto yy1163;
		goto yy87;
yy1108:
		yych = *++cursor_;
		if (yych == 't') goto yy1164;
		goto yy87;
yy1109:
		yych = *++cursor_;
		if (yych == 'a') goto yy1165;
		goto yy87;
yy1110:
		yych = *++cursor_;
		if (yych == '_') goto yy1166;
		goto yy87;
yy1111:
		yych = *++cursor_;
		if (yych == 's') goto yy1167;
		goto yy87;
yy1112:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 288 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load16S); }
#line 6390 "src/prebuilt/wast-lexer-gen.cc"
yy1114:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 290 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load16U); }
#line 6398 "src/prebuilt/wast-lexer-gen.cc"
yy1116:
		yych = *++cursor_;
		if (yych == 'r') goto yy1169;
		goto yy87;
yy1117:
		yych = *++cursor_;
		if (yych == 'f') goto yy1170;
		goto yy87;
yy1118:
		yych = *++cursor_;
		if (yych == 's') goto yy1171;
		goto yy87;
yy1119:
		yych = *++cursor_;
		if (yych == 'f') goto yy1172;
		goto yy87;
yy1120:
		yych = *++cursor_;
		if (yych == 's') goto yy1173;
		goto yy87;
yy1121:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 410 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32WrapI64); }
#line 6426 "src/prebuilt/wast-lexer-gen.cc"
yy1123:
		yych = *++cursor_;
		if (yych == 'o') goto yy1174;
		goto yy87;
yy1124:
		yych = *++cursor_;
		if (yych == 'm') goto yy1175;
		goto yy87;
yy1125:
		yych = *++cursor_;
		if (yych == 't') goto yy1176;
		goto yy87;
yy1126:
		yych = *++cursor_;
		if (yych == 'a') goto yy1177;
		goto yy87;
yy1127:
		yych = *++cursor_;
		if (yych == '_') goto yy1178;
		goto yy87;
yy1128:
		yych = *++cursor_;
		if (yych == '_') goto yy1179;
		goto yy87;
yy1129:
		yych = *++cursor_;
		if (yych == 's') goto yy1180;
		goto yy87;
yy1130:
		yych = *++cursor_;
		if (yych == '/') goto yy1182;
		goto yy87;
yy1131:
		yych = *++cursor_;
		if (yych == '/') goto yy1183;
		goto yy87;
yy1132:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 289 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load16S); }
#line 6470 "src/prebuilt/wast-lexer-gen.cc"
yy1134:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 291 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load16U); }
#line 6478 "src/prebuilt/wast-lexer-gen.cc"
yy1136:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 292 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load32S); }
#line 6486 "src/prebuilt/wast-lexer-gen.cc"
yy1138:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 293 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load32U); }
#line 6494 "src/prebuilt/wast-lexer-gen.cc"
yy1140:
		yych = *++cursor_;
		if (yych == 'r') goto yy1184;
		goto yy87;
yy1141:
		yych = *++cursor_;
		if (yych == 'f') goto yy1185;
		goto yy87;
yy1142:
		yych = *++cursor_;
		if (yych == 's') goto yy1186;
		goto yy87;
yy1143:
		yych = *++cursor_;
		if (yych == 'f') goto yy1187;
		goto yy87;
yy1144:
		yych = *++cursor_;
		if (yych == 's') goto yy1188;
		goto yy87;
yy1145:
		yych = *++cursor_;
		if (yych == 't') goto yy1189;
		goto yy87;
yy1146:
		yych = *++cursor_;
		if (yych == 'd') goto yy1190;
		goto yy87;
yy1147:
		yych = *++cursor_;
		if (yych == 'm') goto yy1192;
		goto yy87;
yy1148:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy1149;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '_') goto yy1193;
				if (yych <= '~') goto yy86;
			}
		}
yy1149:
#line 537 "src/wast-lexer.cc"
		{ RETURN(AssertReturn); }
#line 6547 "src/prebuilt/wast-lexer-gen.cc"
yy1150:
		yych = *++cursor_;
		if (yych == 'a') goto yy1194;
		goto yy87;
yy1151:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 267 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(CallIndirect); }
#line 6559 "src/prebuilt/wast-lexer-gen.cc"
yy1153:
		yych = *++cursor_;
		if (yych == 'y') goto yy1195;
		goto yy87;
yy1154:
		yych = *++cursor_;
		if (yych == '/') goto yy1197;
		goto yy87;
yy1155:
		yych = *++cursor_;
		if (yych == '/') goto yy1198;
		goto yy87;
yy1156:
		yych = *++cursor_;
		if (yych == '4') goto yy1199;
		goto yy87;
yy1157:
		yych = *++cursor_;
		if (yych == 'e') goto yy1201;
		goto yy87;
yy1158:
		yych = *++cursor_;
		if (yych == '/') goto yy1202;
		goto yy87;
yy1159:
		yych = *++cursor_;
		if (yych == '/') goto yy1203;
		goto yy87;
yy1160:
		yych = *++cursor_;
		if (yych == '3') goto yy1204;
		goto yy87;
yy1161:
		yych = *++cursor_;
		if (yych == 'e') goto yy1205;
		goto yy87;
yy1162:
		yych = *++cursor_;
		if (yych == 'a') goto yy1206;
		goto yy87;
yy1163:
		yych = *++cursor_;
		if (yych == 'w') goto yy1207;
		goto yy87;
yy1164:
		yych = *++cursor_;
		if (yych == 'o') goto yy1208;
		goto yy87;
yy1165:
		yych = *++cursor_;
		if (yych == 'i') goto yy1209;
		goto yy87;
yy1166:
		yych = *++cursor_;
		if (yych == 's') goto yy1210;
		goto yy87;
yy1167:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 327 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Extend8S); }
#line 6623 "src/prebuilt/wast-lexer-gen.cc"
yy1169:
		yych = *++cursor_;
		if (yych == 'e') goto yy1212;
		goto yy87;
yy1170:
		yych = *++cursor_;
		if (yych == '3') goto yy1213;
		if (yych == '6') goto yy1214;
		goto yy87;
yy1171:
		yych = *++cursor_;
		if (yych == 'a') goto yy1215;
		goto yy87;
yy1172:
		yych = *++cursor_;
		if (yych == '3') goto yy1216;
		if (yych == '6') goto yy1217;
		goto yy87;
yy1173:
		yych = *++cursor_;
		if (yych == 'a') goto yy1218;
		goto yy87;
yy1174:
		yych = *++cursor_;
		if (yych == 'a') goto yy1219;
		goto yy87;
yy1175:
		yych = *++cursor_;
		if (yych == 'w') goto yy1220;
		goto yy87;
yy1176:
		yych = *++cursor_;
		if (yych == 'o') goto yy1221;
		goto yy87;
yy1177:
		yych = *++cursor_;
		if (yych == 'i') goto yy1222;
		goto yy87;
yy1178:
		yych = *++cursor_;
		if (yych == 's') goto yy1223;
		goto yy87;
yy1179:
		yych = *++cursor_;
		if (yych == 's') goto yy1225;
		goto yy87;
yy1180:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 329 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Extend8S); }
#line 6677 "src/prebuilt/wast-lexer-gen.cc"
yy1182:
		yych = *++cursor_;
		if (yych == 'i') goto yy1227;
		goto yy87;
yy1183:
		yych = *++cursor_;
		if (yych == 'i') goto yy1228;
		goto yy87;
yy1184:
		yych = *++cursor_;
		if (yych == 'e') goto yy1229;
		goto yy87;
yy1185:
		yych = *++cursor_;
		if (yych == '3') goto yy1230;
		if (yych == '6') goto yy1231;
		goto yy87;
yy1186:
		yych = *++cursor_;
		if (yych == 'a') goto yy1232;
		goto yy87;
yy1187:
		yych = *++cursor_;
		if (yych == '3') goto yy1233;
		if (yych == '6') goto yy1234;
		goto yy87;
yy1188:
		yych = *++cursor_;
		if (yych == 'a') goto yy1235;
		goto yy87;
yy1189:
		yych = *++cursor_;
		if (yych == 'i') goto yy1236;
		goto yy87;
yy1190:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 535 "src/wast-lexer.cc"
		{ RETURN(AssertInvalid); }
#line 6719 "src/prebuilt/wast-lexer-gen.cc"
yy1192:
		yych = *++cursor_;
		if (yych == 'e') goto yy1237;
		goto yy87;
yy1193:
		yych = *++cursor_;
		if (yych == 'a') goto yy1238;
		if (yych == 'c') goto yy1239;
		goto yy87;
yy1194:
		yych = *++cursor_;
		if (yych == 'b') goto yy1240;
		goto yy87;
yy1195:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 443 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(CurrentMemory); }
#line 6740 "src/prebuilt/wast-lexer-gen.cc"
yy1197:
		yych = *++cursor_;
		if (yych == 'i') goto yy1241;
		goto yy87;
yy1198:
		yych = *++cursor_;
		if (yych == 'i') goto yy1242;
		goto yy87;
yy1199:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 436 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32DemoteF64); }
#line 6756 "src/prebuilt/wast-lexer-gen.cc"
yy1201:
		yych = *++cursor_;
		if (yych == 't') goto yy1243;
		goto yy87;
yy1202:
		yych = *++cursor_;
		if (yych == 'i') goto yy1244;
		goto yy87;
yy1203:
		yych = *++cursor_;
		if (yych == 'i') goto yy1245;
		goto yy87;
yy1204:
		yych = *++cursor_;
		if (yych == '2') goto yy1246;
		goto yy87;
yy1205:
		yych = *++cursor_;
		if (yych == 't') goto yy1248;
		goto yy87;
yy1206:
		yych = *++cursor_;
		if (yych == 'd') goto yy1249;
		goto yy87;
yy1207:
		yych = *++cursor_;
		if (yych <= '0') {
			if (yych == '.') goto yy1251;
			goto yy87;
		} else {
			if (yych <= '1') goto yy1252;
			if (yych == '8') goto yy1253;
			goto yy87;
		}
yy1208:
		yych = *++cursor_;
		if (yych == 'r') goto yy1254;
		goto yy87;
yy1209:
		yych = *++cursor_;
		if (yych == 't') goto yy1255;
		goto yy87;
yy1210:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 328 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Extend16S); }
#line 6806 "src/prebuilt/wast-lexer-gen.cc"
yy1212:
		yych = *++cursor_;
		if (yych == 't') goto yy1257;
		goto yy87;
yy1213:
		yych = *++cursor_;
		if (yych == '2') goto yy1258;
		goto yy87;
yy1214:
		yych = *++cursor_;
		if (yych == '4') goto yy1260;
		goto yy87;
yy1215:
		yych = *++cursor_;
		if (yych == 't') goto yy1262;
		goto yy87;
yy1216:
		yych = *++cursor_;
		if (yych == '2') goto yy1263;
		goto yy87;
yy1217:
		yych = *++cursor_;
		if (yych == '4') goto yy1265;
		goto yy87;
yy1218:
		yych = *++cursor_;
		if (yych == 't') goto yy1267;
		goto yy87;
yy1219:
		yych = *++cursor_;
		if (yych == 'd') goto yy1268;
		goto yy87;
yy1220:
		yych = *++cursor_;
		switch (yych) {
		case '.':	goto yy1270;
		case '1':	goto yy1271;
		case '3':	goto yy1272;
		case '8':	goto yy1273;
		default:	goto yy87;
		}
yy1221:
		yych = *++cursor_;
		if (yych == 'r') goto yy1274;
		goto yy87;
yy1222:
		yych = *++cursor_;
		if (yych == 't') goto yy1275;
		goto yy87;
yy1223:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 330 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Extend16S); }
#line 6863 "src/prebuilt/wast-lexer-gen.cc"
yy1225:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 331 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Extend32S); }
#line 6871 "src/prebuilt/wast-lexer-gen.cc"
yy1227:
		yych = *++cursor_;
		if (yych == '3') goto yy1277;
		goto yy87;
yy1228:
		yych = *++cursor_;
		if (yych == '3') goto yy1278;
		goto yy87;
yy1229:
		yych = *++cursor_;
		if (yych == 't') goto yy1279;
		goto yy87;
yy1230:
		yych = *++cursor_;
		if (yych == '2') goto yy1280;
		goto yy87;
yy1231:
		yych = *++cursor_;
		if (yych == '4') goto yy1282;
		goto yy87;
yy1232:
		yych = *++cursor_;
		if (yych == 't') goto yy1284;
		goto yy87;
yy1233:
		yych = *++cursor_;
		if (yych == '2') goto yy1285;
		goto yy87;
yy1234:
		yych = *++cursor_;
		if (yych == '4') goto yy1287;
		goto yy87;
yy1235:
		yych = *++cursor_;
		if (yych == 't') goto yy1289;
		goto yy87;
yy1236:
		yych = *++cursor_;
		if (yych == 'o') goto yy1290;
		goto yy87;
yy1237:
		yych = *++cursor_;
		if (yych == 'd') goto yy1291;
		goto yy87;
yy1238:
		yych = *++cursor_;
		if (yych == 'r') goto yy1293;
		goto yy87;
yy1239:
		yych = *++cursor_;
		if (yych == 'a') goto yy1294;
		goto yy87;
yy1240:
		yych = *++cursor_;
		if (yych == 'l') goto yy1295;
		goto yy87;
yy1241:
		yych = *++cursor_;
		if (yych == '3') goto yy1296;
		if (yych == '6') goto yy1297;
		goto yy87;
yy1242:
		yych = *++cursor_;
		if (yych == '3') goto yy1298;
		if (yych == '6') goto yy1299;
		goto yy87;
yy1243:
		yych = *++cursor_;
		if (yych == '/') goto yy1300;
		goto yy87;
yy1244:
		yych = *++cursor_;
		if (yych == '3') goto yy1301;
		if (yych == '6') goto yy1302;
		goto yy87;
yy1245:
		yych = *++cursor_;
		if (yych == '3') goto yy1303;
		if (yych == '6') goto yy1304;
		goto yy87;
yy1246:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 435 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64PromoteF32); }
#line 6959 "src/prebuilt/wast-lexer-gen.cc"
yy1248:
		yych = *++cursor_;
		if (yych == '/') goto yy1305;
		goto yy87;
yy1249:
		++cursor_;
		if ((yych = *cursor_) <= '0') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych >= '*') goto yy86;
			}
		} else {
			if (yych <= '8') {
				if (yych <= '1') goto yy1306;
				if (yych <= '7') goto yy86;
				goto yy1307;
			} else {
				if (yych == ';') goto yy1250;
				if (yych <= '~') goto yy86;
			}
		}
yy1250:
#line 449 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I32AtomicLoad); }
#line 6986 "src/prebuilt/wast-lexer-gen.cc"
yy1251:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1308;
		case 'c':	goto yy1309;
		case 'o':	goto yy1310;
		case 's':	goto yy1311;
		case 'x':	goto yy1312;
		default:	goto yy87;
		}
yy1252:
		yych = *++cursor_;
		if (yych == '6') goto yy1313;
		goto yy87;
yy1253:
		yych = *++cursor_;
		if (yych == '_') goto yy1314;
		goto yy87;
yy1254:
		yych = *++cursor_;
		if (yych == 'e') goto yy1315;
		goto yy87;
yy1255:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 446 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicWait, I32AtomicWait); }
#line 7016 "src/prebuilt/wast-lexer-gen.cc"
yy1257:
		yych = *++cursor_;
		if (yych == '/') goto yy1317;
		goto yy87;
yy1258:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 411 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncSF32); }
#line 7028 "src/prebuilt/wast-lexer-gen.cc"
yy1260:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 413 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncSF64); }
#line 7036 "src/prebuilt/wast-lexer-gen.cc"
yy1262:
		yych = *++cursor_;
		if (yych == '/') goto yy1318;
		goto yy87;
yy1263:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 415 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncUF32); }
#line 7048 "src/prebuilt/wast-lexer-gen.cc"
yy1265:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 417 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncUF64); }
#line 7056 "src/prebuilt/wast-lexer-gen.cc"
yy1267:
		yych = *++cursor_;
		if (yych == '/') goto yy1319;
		goto yy87;
yy1268:
		++cursor_;
		if ((yych = *cursor_) <= '1') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy1269;
				if (yych <= '0') goto yy86;
				goto yy1320;
			}
		} else {
			if (yych <= '8') {
				if (yych == '3') goto yy1321;
				if (yych <= '7') goto yy86;
				goto yy1322;
			} else {
				if (yych == ';') goto yy1269;
				if (yych <= '~') goto yy86;
			}
		}
yy1269:
#line 450 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I64AtomicLoad); }
#line 7085 "src/prebuilt/wast-lexer-gen.cc"
yy1270:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1323;
		case 'c':	goto yy1324;
		case 'o':	goto yy1325;
		case 's':	goto yy1326;
		case 'x':	goto yy1327;
		default:	goto yy87;
		}
yy1271:
		yych = *++cursor_;
		if (yych == '6') goto yy1328;
		goto yy87;
yy1272:
		yych = *++cursor_;
		if (yych == '2') goto yy1329;
		goto yy87;
yy1273:
		yych = *++cursor_;
		if (yych == '_') goto yy1330;
		goto yy87;
yy1274:
		yych = *++cursor_;
		if (yych == 'e') goto yy1331;
		goto yy87;
yy1275:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 447 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicWait, I64AtomicWait); }
#line 7119 "src/prebuilt/wast-lexer-gen.cc"
yy1277:
		yych = *++cursor_;
		if (yych == '2') goto yy1333;
		goto yy87;
yy1278:
		yych = *++cursor_;
		if (yych == '2') goto yy1335;
		goto yy87;
yy1279:
		yych = *++cursor_;
		if (yych == '/') goto yy1337;
		goto yy87;
yy1280:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 412 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncSF32); }
#line 7139 "src/prebuilt/wast-lexer-gen.cc"
yy1282:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 414 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncSF64); }
#line 7147 "src/prebuilt/wast-lexer-gen.cc"
yy1284:
		yych = *++cursor_;
		if (yych == '/') goto yy1338;
		goto yy87;
yy1285:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 416 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncUF32); }
#line 7159 "src/prebuilt/wast-lexer-gen.cc"
yy1287:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 418 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncUF64); }
#line 7167 "src/prebuilt/wast-lexer-gen.cc"
yy1289:
		yych = *++cursor_;
		if (yych == '/') goto yy1339;
		goto yy87;
yy1290:
		yych = *++cursor_;
		if (yych == 'n') goto yy1340;
		goto yy87;
yy1291:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 534 "src/wast-lexer.cc"
		{ RETURN(AssertMalformed); }
#line 7183 "src/prebuilt/wast-lexer-gen.cc"
yy1293:
		yych = *++cursor_;
		if (yych == 'i') goto yy1342;
		goto yy87;
yy1294:
		yych = *++cursor_;
		if (yych == 'n') goto yy1343;
		goto yy87;
yy1295:
		yych = *++cursor_;
		if (yych == 'e') goto yy1344;
		goto yy87;
yy1296:
		yych = *++cursor_;
		if (yych == '2') goto yy1346;
		goto yy87;
yy1297:
		yych = *++cursor_;
		if (yych == '4') goto yy1348;
		goto yy87;
yy1298:
		yych = *++cursor_;
		if (yych == '2') goto yy1350;
		goto yy87;
yy1299:
		yych = *++cursor_;
		if (yych == '4') goto yy1352;
		goto yy87;
yy1300:
		yych = *++cursor_;
		if (yych == 'i') goto yy1354;
		goto yy87;
yy1301:
		yych = *++cursor_;
		if (yych == '2') goto yy1355;
		goto yy87;
yy1302:
		yych = *++cursor_;
		if (yych == '4') goto yy1357;
		goto yy87;
yy1303:
		yych = *++cursor_;
		if (yych == '2') goto yy1359;
		goto yy87;
yy1304:
		yych = *++cursor_;
		if (yych == '4') goto yy1361;
		goto yy87;
yy1305:
		yych = *++cursor_;
		if (yych == 'i') goto yy1363;
		goto yy87;
yy1306:
		yych = *++cursor_;
		if (yych == '6') goto yy1364;
		goto yy87;
yy1307:
		yych = *++cursor_;
		if (yych == '_') goto yy1365;
		goto yy87;
yy1308:
		yych = *++cursor_;
		if (yych == 'd') goto yy1366;
		if (yych == 'n') goto yy1367;
		goto yy87;
yy1309:
		yych = *++cursor_;
		if (yych == 'm') goto yy1368;
		goto yy87;
yy1310:
		yych = *++cursor_;
		if (yych == 'r') goto yy1369;
		goto yy87;
yy1311:
		yych = *++cursor_;
		if (yych == 'u') goto yy1371;
		goto yy87;
yy1312:
		yych = *++cursor_;
		if (yych == 'c') goto yy1372;
		if (yych == 'o') goto yy1373;
		goto yy87;
yy1313:
		yych = *++cursor_;
		if (yych == '_') goto yy1374;
		goto yy87;
yy1314:
		yych = *++cursor_;
		if (yych == 'u') goto yy1375;
		goto yy87;
yy1315:
		++cursor_;
		if ((yych = *cursor_) <= '0') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych >= '*') goto yy86;
			}
		} else {
			if (yych <= '8') {
				if (yych <= '1') goto yy1376;
				if (yych <= '7') goto yy86;
				goto yy1377;
			} else {
				if (yych == ';') goto yy1316;
				if (yych <= '~') goto yy86;
			}
		}
yy1316:
#line 456 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I32AtomicStore); }
#line 7296 "src/prebuilt/wast-lexer-gen.cc"
yy1317:
		yych = *++cursor_;
		if (yych == 'f') goto yy1379;
		goto yy87;
yy1318:
		yych = *++cursor_;
		if (yych == 'f') goto yy1380;
		goto yy87;
yy1319:
		yych = *++cursor_;
		if (yych == 'f') goto yy1381;
		goto yy87;
yy1320:
		yych = *++cursor_;
		if (yych == '6') goto yy1382;
		goto yy87;
yy1321:
		yych = *++cursor_;
		if (yych == '2') goto yy1383;
		goto yy87;
yy1322:
		yych = *++cursor_;
		if (yych == '_') goto yy1384;
		goto yy87;
yy1323:
		yych = *++cursor_;
		if (yych == 'd') goto yy1385;
		if (yych == 'n') goto yy1386;
		goto yy87;
yy1324:
		yych = *++cursor_;
		if (yych == 'm') goto yy1387;
		goto yy87;
yy1325:
		yych = *++cursor_;
		if (yych == 'r') goto yy1388;
		goto yy87;
yy1326:
		yych = *++cursor_;
		if (yych == 'u') goto yy1390;
		goto yy87;
yy1327:
		yych = *++cursor_;
		if (yych == 'c') goto yy1391;
		if (yych == 'o') goto yy1392;
		goto yy87;
yy1328:
		yych = *++cursor_;
		if (yych == '_') goto yy1393;
		goto yy87;
yy1329:
		yych = *++cursor_;
		if (yych == '_') goto yy1394;
		goto yy87;
yy1330:
		yych = *++cursor_;
		if (yych == 'u') goto yy1395;
		goto yy87;
yy1331:
		++cursor_;
		if ((yych = *cursor_) <= '1') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy1332;
				if (yych <= '0') goto yy86;
				goto yy1396;
			}
		} else {
			if (yych <= '8') {
				if (yych == '3') goto yy1397;
				if (yych <= '7') goto yy86;
				goto yy1398;
			} else {
				if (yych == ';') goto yy1332;
				if (yych <= '~') goto yy86;
			}
		}
yy1332:
#line 457 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I64AtomicStore); }
#line 7379 "src/prebuilt/wast-lexer-gen.cc"
yy1333:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 408 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64ExtendSI32); }
#line 7387 "src/prebuilt/wast-lexer-gen.cc"
yy1335:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 409 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64ExtendUI32); }
#line 7395 "src/prebuilt/wast-lexer-gen.cc"
yy1337:
		yych = *++cursor_;
		if (yych == 'f') goto yy1400;
		goto yy87;
yy1338:
		yych = *++cursor_;
		if (yych == 'f') goto yy1401;
		goto yy87;
yy1339:
		yych = *++cursor_;
		if (yych == 'f') goto yy1402;
		goto yy87;
yy1340:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 541 "src/wast-lexer.cc"
		{ RETURN(AssertExhaustion); }
#line 7415 "src/prebuilt/wast-lexer-gen.cc"
yy1342:
		yych = *++cursor_;
		if (yych == 't') goto yy1403;
		goto yy87;
yy1343:
		yych = *++cursor_;
		if (yych == 'o') goto yy1404;
		goto yy87;
yy1344:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 536 "src/wast-lexer.cc"
		{ RETURN(AssertUnlinkable); }
#line 7431 "src/prebuilt/wast-lexer-gen.cc"
yy1346:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 427 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ConvertSI32); }
#line 7439 "src/prebuilt/wast-lexer-gen.cc"
yy1348:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 429 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ConvertSI64); }
#line 7447 "src/prebuilt/wast-lexer-gen.cc"
yy1350:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 431 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ConvertUI32); }
#line 7455 "src/prebuilt/wast-lexer-gen.cc"
yy1352:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 433 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ConvertUI64); }
#line 7463 "src/prebuilt/wast-lexer-gen.cc"
yy1354:
		yych = *++cursor_;
		if (yych == '3') goto yy1405;
		goto yy87;
yy1355:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 428 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ConvertSI32); }
#line 7475 "src/prebuilt/wast-lexer-gen.cc"
yy1357:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 430 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ConvertSI64); }
#line 7483 "src/prebuilt/wast-lexer-gen.cc"
yy1359:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 432 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ConvertUI32); }
#line 7491 "src/prebuilt/wast-lexer-gen.cc"
yy1361:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 434 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ConvertUI64); }
#line 7499 "src/prebuilt/wast-lexer-gen.cc"
yy1363:
		yych = *++cursor_;
		if (yych == '6') goto yy1406;
		goto yy87;
yy1364:
		yych = *++cursor_;
		if (yych == '_') goto yy1407;
		goto yy87;
yy1365:
		yych = *++cursor_;
		if (yych == 'u') goto yy1408;
		goto yy87;
yy1366:
		yych = *++cursor_;
		if (yych == 'd') goto yy1410;
		goto yy87;
yy1367:
		yych = *++cursor_;
		if (yych == 'd') goto yy1412;
		goto yy87;
yy1368:
		yych = *++cursor_;
		if (yych == 'p') goto yy1414;
		goto yy87;
yy1369:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 484 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwOr); }
#line 7531 "src/prebuilt/wast-lexer-gen.cc"
yy1371:
		yych = *++cursor_;
		if (yych == 'b') goto yy1415;
		goto yy87;
yy1372:
		yych = *++cursor_;
		if (yych == 'h') goto yy1417;
		goto yy87;
yy1373:
		yych = *++cursor_;
		if (yych == 'r') goto yy1418;
		goto yy87;
yy1374:
		yych = *++cursor_;
		if (yych == 'u') goto yy1420;
		goto yy87;
yy1375:
		yych = *++cursor_;
		if (yych == '.') goto yy1421;
		goto yy87;
yy1376:
		yych = *++cursor_;
		if (yych == '6') goto yy1422;
		goto yy87;
yy1377:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 458 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I32AtomicStore8); }
#line 7563 "src/prebuilt/wast-lexer-gen.cc"
yy1379:
		yych = *++cursor_;
		if (yych == '3') goto yy1424;
		goto yy87;
yy1380:
		yych = *++cursor_;
		if (yych == '3') goto yy1425;
		if (yych == '6') goto yy1426;
		goto yy87;
yy1381:
		yych = *++cursor_;
		if (yych == '3') goto yy1427;
		if (yych == '6') goto yy1428;
		goto yy87;
yy1382:
		yych = *++cursor_;
		if (yych == '_') goto yy1429;
		goto yy87;
yy1383:
		yych = *++cursor_;
		if (yych == '_') goto yy1430;
		goto yy87;
yy1384:
		yych = *++cursor_;
		if (yych == 'u') goto yy1431;
		goto yy87;
yy1385:
		yych = *++cursor_;
		if (yych == 'd') goto yy1433;
		goto yy87;
yy1386:
		yych = *++cursor_;
		if (yych == 'd') goto yy1435;
		goto yy87;
yy1387:
		yych = *++cursor_;
		if (yych == 'p') goto yy1437;
		goto yy87;
yy1388:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 485 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwOr); }
#line 7609 "src/prebuilt/wast-lexer-gen.cc"
yy1390:
		yych = *++cursor_;
		if (yych == 'b') goto yy1438;
		goto yy87;
yy1391:
		yych = *++cursor_;
		if (yych == 'h') goto yy1440;
		goto yy87;
yy1392:
		yych = *++cursor_;
		if (yych == 'r') goto yy1441;
		goto yy87;
yy1393:
		yych = *++cursor_;
		if (yych == 'u') goto yy1443;
		goto yy87;
yy1394:
		yych = *++cursor_;
		if (yych == 'u') goto yy1444;
		goto yy87;
yy1395:
		yych = *++cursor_;
		if (yych == '.') goto yy1445;
		goto yy87;
yy1396:
		yych = *++cursor_;
		if (yych == '6') goto yy1446;
		goto yy87;
yy1397:
		yych = *++cursor_;
		if (yych == '2') goto yy1448;
		goto yy87;
yy1398:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 460 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I64AtomicStore8); }
#line 7649 "src/prebuilt/wast-lexer-gen.cc"
yy1400:
		yych = *++cursor_;
		if (yych == '6') goto yy1450;
		goto yy87;
yy1401:
		yych = *++cursor_;
		if (yych == '3') goto yy1451;
		if (yych == '6') goto yy1452;
		goto yy87;
yy1402:
		yych = *++cursor_;
		if (yych == '3') goto yy1453;
		if (yych == '6') goto yy1454;
		goto yy87;
yy1403:
		yych = *++cursor_;
		if (yych == 'h') goto yy1455;
		goto yy87;
yy1404:
		yych = *++cursor_;
		if (yych == 'n') goto yy1456;
		goto yy87;
yy1405:
		yych = *++cursor_;
		if (yych == '2') goto yy1457;
		goto yy87;
yy1406:
		yych = *++cursor_;
		if (yych == '4') goto yy1459;
		goto yy87;
yy1407:
		yych = *++cursor_;
		if (yych == 'u') goto yy1461;
		goto yy87;
yy1408:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 451 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I32AtomicLoad8U); }
#line 7691 "src/prebuilt/wast-lexer-gen.cc"
yy1410:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 463 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwAdd); }
#line 7699 "src/prebuilt/wast-lexer-gen.cc"
yy1412:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 477 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwAnd); }
#line 7707 "src/prebuilt/wast-lexer-gen.cc"
yy1414:
		yych = *++cursor_;
		if (yych == 'x') goto yy1463;
		goto yy87;
yy1415:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 470 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwSub); }
#line 7719 "src/prebuilt/wast-lexer-gen.cc"
yy1417:
		yych = *++cursor_;
		if (yych == 'g') goto yy1464;
		goto yy87;
yy1418:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 491 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwXor); }
#line 7731 "src/prebuilt/wast-lexer-gen.cc"
yy1420:
		yych = *++cursor_;
		if (yych == '.') goto yy1466;
		goto yy87;
yy1421:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1467;
		case 'c':	goto yy1468;
		case 'o':	goto yy1469;
		case 's':	goto yy1470;
		case 'x':	goto yy1471;
		default:	goto yy87;
		}
yy1422:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 459 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I32AtomicStore16); }
#line 7753 "src/prebuilt/wast-lexer-gen.cc"
yy1424:
		yych = *++cursor_;
		if (yych == '2') goto yy1472;
		goto yy87;
yy1425:
		yych = *++cursor_;
		if (yych == '2') goto yy1474;
		goto yy87;
yy1426:
		yych = *++cursor_;
		if (yych == '4') goto yy1476;
		goto yy87;
yy1427:
		yych = *++cursor_;
		if (yych == '2') goto yy1478;
		goto yy87;
yy1428:
		yych = *++cursor_;
		if (yych == '4') goto yy1480;
		goto yy87;
yy1429:
		yych = *++cursor_;
		if (yych == 'u') goto yy1482;
		goto yy87;
yy1430:
		yych = *++cursor_;
		if (yych == 'u') goto yy1484;
		goto yy87;
yy1431:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 453 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I64AtomicLoad8U); }
#line 7789 "src/prebuilt/wast-lexer-gen.cc"
yy1433:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 464 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwAdd); }
#line 7797 "src/prebuilt/wast-lexer-gen.cc"
yy1435:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 478 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwAnd); }
#line 7805 "src/prebuilt/wast-lexer-gen.cc"
yy1437:
		yych = *++cursor_;
		if (yych == 'x') goto yy1486;
		goto yy87;
yy1438:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 471 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwSub); }
#line 7817 "src/prebuilt/wast-lexer-gen.cc"
yy1440:
		yych = *++cursor_;
		if (yych == 'g') goto yy1487;
		goto yy87;
yy1441:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 492 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwXor); }
#line 7829 "src/prebuilt/wast-lexer-gen.cc"
yy1443:
		yych = *++cursor_;
		if (yych == '.') goto yy1489;
		goto yy87;
yy1444:
		yych = *++cursor_;
		if (yych == '.') goto yy1490;
		goto yy87;
yy1445:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1491;
		case 'c':	goto yy1492;
		case 'o':	goto yy1493;
		case 's':	goto yy1494;
		case 'x':	goto yy1495;
		default:	goto yy87;
		}
yy1446:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 461 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I64AtomicStore16); }
#line 7855 "src/prebuilt/wast-lexer-gen.cc"
yy1448:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 462 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I64AtomicStore32); }
#line 7863 "src/prebuilt/wast-lexer-gen.cc"
yy1450:
		yych = *++cursor_;
		if (yych == '4') goto yy1496;
		goto yy87;
yy1451:
		yych = *++cursor_;
		if (yych == '2') goto yy1498;
		goto yy87;
yy1452:
		yych = *++cursor_;
		if (yych == '4') goto yy1500;
		goto yy87;
yy1453:
		yych = *++cursor_;
		if (yych == '2') goto yy1502;
		goto yy87;
yy1454:
		yych = *++cursor_;
		if (yych == '4') goto yy1504;
		goto yy87;
yy1455:
		yych = *++cursor_;
		if (yych == 'm') goto yy1506;
		goto yy87;
yy1456:
		yych = *++cursor_;
		if (yych == 'i') goto yy1507;
		goto yy87;
yy1457:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 437 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ReinterpretI32); }
#line 7899 "src/prebuilt/wast-lexer-gen.cc"
yy1459:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 439 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ReinterpretI64); }
#line 7907 "src/prebuilt/wast-lexer-gen.cc"
yy1461:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 452 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I32AtomicLoad16U); }
#line 7915 "src/prebuilt/wast-lexer-gen.cc"
yy1463:
		yych = *++cursor_;
		if (yych == 'c') goto yy1508;
		goto yy87;
yy1464:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 498 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwXchg); }
#line 7927 "src/prebuilt/wast-lexer-gen.cc"
yy1466:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1509;
		case 'c':	goto yy1510;
		case 'o':	goto yy1511;
		case 's':	goto yy1512;
		case 'x':	goto yy1513;
		default:	goto yy87;
		}
yy1467:
		yych = *++cursor_;
		if (yych == 'd') goto yy1514;
		if (yych == 'n') goto yy1515;
		goto yy87;
yy1468:
		yych = *++cursor_;
		if (yych == 'm') goto yy1516;
		goto yy87;
yy1469:
		yych = *++cursor_;
		if (yych == 'r') goto yy1517;
		goto yy87;
yy1470:
		yych = *++cursor_;
		if (yych == 'u') goto yy1519;
		goto yy87;
yy1471:
		yych = *++cursor_;
		if (yych == 'c') goto yy1520;
		if (yych == 'o') goto yy1521;
		goto yy87;
yy1472:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 438 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32ReinterpretF32); }
#line 7967 "src/prebuilt/wast-lexer-gen.cc"
yy1474:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 419 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncSSatF32); }
#line 7975 "src/prebuilt/wast-lexer-gen.cc"
yy1476:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 421 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncSSatF64); }
#line 7983 "src/prebuilt/wast-lexer-gen.cc"
yy1478:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 423 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncUSatF32); }
#line 7991 "src/prebuilt/wast-lexer-gen.cc"
yy1480:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 425 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncUSatF64); }
#line 7999 "src/prebuilt/wast-lexer-gen.cc"
yy1482:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 454 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I64AtomicLoad16U); }
#line 8007 "src/prebuilt/wast-lexer-gen.cc"
yy1484:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 455 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I64AtomicLoad32U); }
#line 8015 "src/prebuilt/wast-lexer-gen.cc"
yy1486:
		yych = *++cursor_;
		if (yych == 'c') goto yy1522;
		goto yy87;
yy1487:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 499 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwXchg); }
#line 8027 "src/prebuilt/wast-lexer-gen.cc"
yy1489:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1523;
		case 'c':	goto yy1524;
		case 'o':	goto yy1525;
		case 's':	goto yy1526;
		case 'x':	goto yy1527;
		default:	goto yy87;
		}
yy1490:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1528;
		case 'c':	goto yy1529;
		case 'o':	goto yy1530;
		case 's':	goto yy1531;
		case 'x':	goto yy1532;
		default:	goto yy87;
		}
yy1491:
		yych = *++cursor_;
		if (yych == 'd') goto yy1533;
		if (yych == 'n') goto yy1534;
		goto yy87;
yy1492:
		yych = *++cursor_;
		if (yych == 'm') goto yy1535;
		goto yy87;
yy1493:
		yych = *++cursor_;
		if (yych == 'r') goto yy1536;
		goto yy87;
yy1494:
		yych = *++cursor_;
		if (yych == 'u') goto yy1538;
		goto yy87;
yy1495:
		yych = *++cursor_;
		if (yych == 'c') goto yy1539;
		if (yych == 'o') goto yy1540;
		goto yy87;
yy1496:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 440 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64ReinterpretF64); }
#line 8077 "src/prebuilt/wast-lexer-gen.cc"
yy1498:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 420 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncSSatF32); }
#line 8085 "src/prebuilt/wast-lexer-gen.cc"
yy1500:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 422 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncSSatF64); }
#line 8093 "src/prebuilt/wast-lexer-gen.cc"
yy1502:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 424 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncUSatF32); }
#line 8101 "src/prebuilt/wast-lexer-gen.cc"
yy1504:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 426 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncUSatF64); }
#line 8109 "src/prebuilt/wast-lexer-gen.cc"
yy1506:
		yych = *++cursor_;
		if (yych == 'e') goto yy1541;
		goto yy87;
yy1507:
		yych = *++cursor_;
		if (yych == 'c') goto yy1542;
		goto yy87;
yy1508:
		yych = *++cursor_;
		if (yych == 'h') goto yy1543;
		goto yy87;
yy1509:
		yych = *++cursor_;
		if (yych == 'd') goto yy1544;
		if (yych == 'n') goto yy1545;
		goto yy87;
yy1510:
		yych = *++cursor_;
		if (yych == 'm') goto yy1546;
		goto yy87;
yy1511:
		yych = *++cursor_;
		if (yych == 'r') goto yy1547;
		goto yy87;
yy1512:
		yych = *++cursor_;
		if (yych == 'u') goto yy1549;
		goto yy87;
yy1513:
		yych = *++cursor_;
		if (yych == 'c') goto yy1550;
		if (yych == 'o') goto yy1551;
		goto yy87;
yy1514:
		yych = *++cursor_;
		if (yych == 'd') goto yy1552;
		goto yy87;
yy1515:
		yych = *++cursor_;
		if (yych == 'd') goto yy1554;
		goto yy87;
yy1516:
		yych = *++cursor_;
		if (yych == 'p') goto yy1556;
		goto yy87;
yy1517:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 486 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UOr); }
#line 8163 "src/prebuilt/wast-lexer-gen.cc"
yy1519:
		yych = *++cursor_;
		if (yych == 'b') goto yy1557;
		goto yy87;
yy1520:
		yych = *++cursor_;
		if (yych == 'h') goto yy1559;
		goto yy87;
yy1521:
		yych = *++cursor_;
		if (yych == 'r') goto yy1560;
		goto yy87;
yy1522:
		yych = *++cursor_;
		if (yych == 'h') goto yy1562;
		goto yy87;
yy1523:
		yych = *++cursor_;
		if (yych == 'd') goto yy1563;
		if (yych == 'n') goto yy1564;
		goto yy87;
yy1524:
		yych = *++cursor_;
		if (yych == 'm') goto yy1565;
		goto yy87;
yy1525:
		yych = *++cursor_;
		if (yych == 'r') goto yy1566;
		goto yy87;
yy1526:
		yych = *++cursor_;
		if (yych == 'u') goto yy1568;
		goto yy87;
yy1527:
		yych = *++cursor_;
		if (yych == 'c') goto yy1569;
		if (yych == 'o') goto yy1570;
		goto yy87;
yy1528:
		yych = *++cursor_;
		if (yych == 'd') goto yy1571;
		if (yych == 'n') goto yy1572;
		goto yy87;
yy1529:
		yych = *++cursor_;
		if (yych == 'm') goto yy1573;
		goto yy87;
yy1530:
		yych = *++cursor_;
		if (yych == 'r') goto yy1574;
		goto yy87;
yy1531:
		yych = *++cursor_;
		if (yych == 'u') goto yy1576;
		goto yy87;
yy1532:
		yych = *++cursor_;
		if (yych == 'c') goto yy1577;
		if (yych == 'o') goto yy1578;
		goto yy87;
yy1533:
		yych = *++cursor_;
		if (yych == 'd') goto yy1579;
		goto yy87;
yy1534:
		yych = *++cursor_;
		if (yych == 'd') goto yy1581;
		goto yy87;
yy1535:
		yych = *++cursor_;
		if (yych == 'p') goto yy1583;
		goto yy87;
yy1536:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 488 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UOr); }
#line 8243 "src/prebuilt/wast-lexer-gen.cc"
yy1538:
		yych = *++cursor_;
		if (yych == 'b') goto yy1584;
		goto yy87;
yy1539:
		yych = *++cursor_;
		if (yych == 'h') goto yy1586;
		goto yy87;
yy1540:
		yych = *++cursor_;
		if (yych == 'r') goto yy1587;
		goto yy87;
yy1541:
		yych = *++cursor_;
		if (yych == 't') goto yy1589;
		goto yy87;
yy1542:
		yych = *++cursor_;
		if (yych == 'a') goto yy1590;
		goto yy87;
yy1543:
		yych = *++cursor_;
		if (yych == 'g') goto yy1591;
		goto yy87;
yy1544:
		yych = *++cursor_;
		if (yych == 'd') goto yy1593;
		goto yy87;
yy1545:
		yych = *++cursor_;
		if (yych == 'd') goto yy1595;
		goto yy87;
yy1546:
		yych = *++cursor_;
		if (yych == 'p') goto yy1597;
		goto yy87;
yy1547:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 487 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UOr); }
#line 8287 "src/prebuilt/wast-lexer-gen.cc"
yy1549:
		yych = *++cursor_;
		if (yych == 'b') goto yy1598;
		goto yy87;
yy1550:
		yych = *++cursor_;
		if (yych == 'h') goto yy1600;
		goto yy87;
yy1551:
		yych = *++cursor_;
		if (yych == 'r') goto yy1601;
		goto yy87;
yy1552:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 465 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAdd); }
#line 8307 "src/prebuilt/wast-lexer-gen.cc"
yy1554:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 479 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAnd); }
#line 8315 "src/prebuilt/wast-lexer-gen.cc"
yy1556:
		yych = *++cursor_;
		if (yych == 'x') goto yy1603;
		goto yy87;
yy1557:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 472 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8USub); }
#line 8327 "src/prebuilt/wast-lexer-gen.cc"
yy1559:
		yych = *++cursor_;
		if (yych == 'g') goto yy1604;
		goto yy87;
yy1560:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 493 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXor); }
#line 8339 "src/prebuilt/wast-lexer-gen.cc"
yy1562:
		yych = *++cursor_;
		if (yych == 'g') goto yy1606;
		goto yy87;
yy1563:
		yych = *++cursor_;
		if (yych == 'd') goto yy1608;
		goto yy87;
yy1564:
		yych = *++cursor_;
		if (yych == 'd') goto yy1610;
		goto yy87;
yy1565:
		yych = *++cursor_;
		if (yych == 'p') goto yy1612;
		goto yy87;
yy1566:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 489 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UOr); }
#line 8363 "src/prebuilt/wast-lexer-gen.cc"
yy1568:
		yych = *++cursor_;
		if (yych == 'b') goto yy1613;
		goto yy87;
yy1569:
		yych = *++cursor_;
		if (yych == 'h') goto yy1615;
		goto yy87;
yy1570:
		yych = *++cursor_;
		if (yych == 'r') goto yy1616;
		goto yy87;
yy1571:
		yych = *++cursor_;
		if (yych == 'd') goto yy1618;
		goto yy87;
yy1572:
		yych = *++cursor_;
		if (yych == 'd') goto yy1620;
		goto yy87;
yy1573:
		yych = *++cursor_;
		if (yych == 'p') goto yy1622;
		goto yy87;
yy1574:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 490 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UOr); }
#line 8395 "src/prebuilt/wast-lexer-gen.cc"
yy1576:
		yych = *++cursor_;
		if (yych == 'b') goto yy1623;
		goto yy87;
yy1577:
		yych = *++cursor_;
		if (yych == 'h') goto yy1625;
		goto yy87;
yy1578:
		yych = *++cursor_;
		if (yych == 'r') goto yy1626;
		goto yy87;
yy1579:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 467 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAdd); }
#line 8415 "src/prebuilt/wast-lexer-gen.cc"
yy1581:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 481 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAnd); }
#line 8423 "src/prebuilt/wast-lexer-gen.cc"
yy1583:
		yych = *++cursor_;
		if (yych == 'x') goto yy1628;
		goto yy87;
yy1584:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 474 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8USub); }
#line 8435 "src/prebuilt/wast-lexer-gen.cc"
yy1586:
		yych = *++cursor_;
		if (yych == 'g') goto yy1629;
		goto yy87;
yy1587:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 495 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXor); }
#line 8447 "src/prebuilt/wast-lexer-gen.cc"
yy1589:
		yych = *++cursor_;
		if (yych == 'i') goto yy1631;
		goto yy87;
yy1590:
		yych = *++cursor_;
		if (yych == 'l') goto yy1632;
		goto yy87;
yy1591:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 505 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmwCmpxchg); }
#line 8463 "src/prebuilt/wast-lexer-gen.cc"
yy1593:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 466 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAdd); }
#line 8471 "src/prebuilt/wast-lexer-gen.cc"
yy1595:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 480 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAnd); }
#line 8479 "src/prebuilt/wast-lexer-gen.cc"
yy1597:
		yych = *++cursor_;
		if (yych == 'x') goto yy1633;
		goto yy87;
yy1598:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 473 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16USub); }
#line 8491 "src/prebuilt/wast-lexer-gen.cc"
yy1600:
		yych = *++cursor_;
		if (yych == 'g') goto yy1634;
		goto yy87;
yy1601:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 494 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXor); }
#line 8503 "src/prebuilt/wast-lexer-gen.cc"
yy1603:
		yych = *++cursor_;
		if (yych == 'c') goto yy1636;
		goto yy87;
yy1604:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 500 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXchg); }
#line 8515 "src/prebuilt/wast-lexer-gen.cc"
yy1606:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 506 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmwCmpxchg); }
#line 8523 "src/prebuilt/wast-lexer-gen.cc"
yy1608:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 468 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAdd); }
#line 8531 "src/prebuilt/wast-lexer-gen.cc"
yy1610:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 482 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAnd); }
#line 8539 "src/prebuilt/wast-lexer-gen.cc"
yy1612:
		yych = *++cursor_;
		if (yych == 'x') goto yy1637;
		goto yy87;
yy1613:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 475 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16USub); }
#line 8551 "src/prebuilt/wast-lexer-gen.cc"
yy1615:
		yych = *++cursor_;
		if (yych == 'g') goto yy1638;
		goto yy87;
yy1616:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 496 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXor); }
#line 8563 "src/prebuilt/wast-lexer-gen.cc"
yy1618:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 469 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAdd); }
#line 8571 "src/prebuilt/wast-lexer-gen.cc"
yy1620:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 483 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAnd); }
#line 8579 "src/prebuilt/wast-lexer-gen.cc"
yy1622:
		yych = *++cursor_;
		if (yych == 'x') goto yy1640;
		goto yy87;
yy1623:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 476 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32USub); }
#line 8591 "src/prebuilt/wast-lexer-gen.cc"
yy1625:
		yych = *++cursor_;
		if (yych == 'g') goto yy1641;
		goto yy87;
yy1626:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 497 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXor); }
#line 8603 "src/prebuilt/wast-lexer-gen.cc"
yy1628:
		yych = *++cursor_;
		if (yych == 'c') goto yy1643;
		goto yy87;
yy1629:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 502 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXchg); }
#line 8615 "src/prebuilt/wast-lexer-gen.cc"
yy1631:
		yych = *++cursor_;
		if (yych == 'c') goto yy1644;
		goto yy87;
yy1632:
		yych = *++cursor_;
		if (yych == '_') goto yy1645;
		goto yy87;
yy1633:
		yych = *++cursor_;
		if (yych == 'c') goto yy1646;
		goto yy87;
yy1634:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 501 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXchg); }
#line 8635 "src/prebuilt/wast-lexer-gen.cc"
yy1636:
		yych = *++cursor_;
		if (yych == 'h') goto yy1647;
		goto yy87;
yy1637:
		yych = *++cursor_;
		if (yych == 'c') goto yy1648;
		goto yy87;
yy1638:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 503 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXchg); }
#line 8651 "src/prebuilt/wast-lexer-gen.cc"
yy1640:
		yych = *++cursor_;
		if (yych == 'c') goto yy1649;
		goto yy87;
yy1641:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 504 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXchg); }
#line 8663 "src/prebuilt/wast-lexer-gen.cc"
yy1643:
		yych = *++cursor_;
		if (yych == 'h') goto yy1650;
		goto yy87;
yy1644:
		yych = *++cursor_;
		if (yych == '_') goto yy1651;
		goto yy87;
yy1645:
		yych = *++cursor_;
		if (yych == 'n') goto yy1652;
		goto yy87;
yy1646:
		yych = *++cursor_;
		if (yych == 'h') goto yy1653;
		goto yy87;
yy1647:
		yych = *++cursor_;
		if (yych == 'g') goto yy1654;
		goto yy87;
yy1648:
		yych = *++cursor_;
		if (yych == 'h') goto yy1656;
		goto yy87;
yy1649:
		yych = *++cursor_;
		if (yych == 'h') goto yy1657;
		goto yy87;
yy1650:
		yych = *++cursor_;
		if (yych == 'g') goto yy1658;
		goto yy87;
yy1651:
		yych = *++cursor_;
		if (yych == 'n') goto yy1660;
		goto yy87;
yy1652:
		yych = *++cursor_;
		if (yych == 'a') goto yy1661;
		goto yy87;
yy1653:
		yych = *++cursor_;
		if (yych == 'g') goto yy1662;
		goto yy87;
yy1654:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 507 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw8UCmpxchg); }
#line 8715 "src/prebuilt/wast-lexer-gen.cc"
yy1656:
		yych = *++cursor_;
		if (yych == 'g') goto yy1664;
		goto yy87;
yy1657:
		yych = *++cursor_;
		if (yych == 'g') goto yy1666;
		goto yy87;
yy1658:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 509 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw8UCmpxchg); }
#line 8731 "src/prebuilt/wast-lexer-gen.cc"
yy1660:
		yych = *++cursor_;
		if (yych == 'a') goto yy1668;
		goto yy87;
yy1661:
		yych = *++cursor_;
		if (yych == 'n') goto yy1669;
		goto yy87;
yy1662:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 508 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw16UCmpxchg); }
#line 8747 "src/prebuilt/wast-lexer-gen.cc"
yy1664:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 510 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw16UCmpxchg); }
#line 8755 "src/prebuilt/wast-lexer-gen.cc"
yy1666:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 511 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw32UCmpxchg); }
#line 8763 "src/prebuilt/wast-lexer-gen.cc"
yy1668:
		yych = *++cursor_;
		if (yych == 'n') goto yy1671;
		goto yy87;
yy1669:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 538 "src/wast-lexer.cc"
		{ RETURN(AssertReturnCanonicalNan); }
#line 8775 "src/prebuilt/wast-lexer-gen.cc"
yy1671:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 539 "src/wast-lexer.cc"
		{ RETURN(AssertReturnArithmeticNan); }
#line 8783 "src/prebuilt/wast-lexer-gen.cc"
	}
}
#line 566 "src/wast-lexer.cc"

  }
}

}  // namespace wabt
