/* 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, const char* 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(const char* 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(const char* 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 <= 'f') {
			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 yy96;
						goto yy86;
					}
				}
			} else {
				if (yych <= ';') {
					if (yych <= '0') {
						if (yych <= '-') goto yy96;
						if (yych <= '/') goto yy86;
						goto yy97;
					} else {
						if (yych <= '9') goto yy99;
						if (yych <= ':') goto yy86;
						goto yy101;
					}
				} else {
					if (yych <= 'b') {
						if (yych <= '`') goto yy86;
						if (yych <= 'a') goto yy102;
						goto yy103;
					} else {
						if (yych <= 'c') goto yy104;
						if (yych <= 'd') goto yy105;
						if (yych <= 'e') goto yy106;
						goto yy107;
					}
				}
			}
		} else {
			if (yych <= 't') {
				if (yych <= 'm') {
					if (yych <= 'i') {
						if (yych <= 'g') goto yy108;
						if (yych <= 'h') goto yy86;
						goto yy109;
					} else {
						if (yych <= 'k') goto yy86;
						if (yych <= 'l') goto yy110;
						goto yy111;
					}
				} else {
					if (yych <= 'p') {
						if (yych <= 'n') goto yy112;
						if (yych <= 'o') goto yy113;
						goto yy114;
					} else {
						if (yych <= 'q') goto yy115;
						if (yych <= 'r') goto yy116;
						if (yych <= 's') goto yy117;
						goto yy118;
					}
				}
			} else {
				if (yych <= 0xC1) {
					if (yych <= 'w') {
						if (yych <= 'u') goto yy119;
						if (yych <= 'v') goto yy86;
						goto yy120;
					} else {
						if (yych <= '~') goto yy86;
						if (yych >= 0x80) goto yy121;
					}
				} else {
					if (yych <= 0xEF) {
						if (yych <= 0xDF) goto yy123;
						if (yych <= 0xE0) goto yy124;
						goto yy125;
					} else {
						if (yych <= 0xF0) goto yy126;
						if (yych <= 0xF3) goto yy127;
						if (yych <= 0xF4) goto yy128;
						goto yy121;
					}
				}
			}
		}
yy79:
		++cursor_;
yy80:
#line 564 "src/wast-lexer.cc"
		{ ERROR("unexpected char"); continue; }
#line 845 "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 855 "src/prebuilt/wast-lexer-gen.cc"
yy84:
		++cursor_;
#line 561 "src/wast-lexer.cc"
		{ NEWLINE; continue; }
#line 860 "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 872 "src/prebuilt/wast-lexer-gen.cc"
yy89:
		yyaccept = 0;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x1F) goto yy90;
		if (yych <= 0x7F) goto yy130;
		if (yych <= 0xC1) goto yy90;
		if (yych <= 0xF4) goto yy130;
yy90:
		BEGIN(YYCOND_BAD_TEXT);
#line 239 "src/wast-lexer.cc"
		{ continue; }
#line 884 "src/prebuilt/wast-lexer-gen.cc"
yy91:
		yych = *++cursor_;
		if (yych <= '\'') {
			if (yych == '!') goto yy142;
			if (yych <= '"') goto yy88;
			goto yy142;
		} else {
			if (yych <= ':') {
				if (yych <= ')') goto yy88;
				goto yy142;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy142;
				goto yy88;
			}
		}
yy92:
		++cursor_;
		if ((yych = *cursor_) == ';') goto yy144;
#line 230 "src/wast-lexer.cc"
		{ RETURN(Lpar); }
#line 906 "src/prebuilt/wast-lexer-gen.cc"
yy94:
		++cursor_;
#line 231 "src/wast-lexer.cc"
		{ RETURN(Rpar); }
#line 911 "src/prebuilt/wast-lexer-gen.cc"
yy96:
		yych = *++cursor_;
		if (yych <= 'h') {
			if (yych <= '/') goto yy87;
			if (yych <= '0') goto yy146;
			if (yych <= '9') goto yy148;
			goto yy87;
		} else {
			if (yych <= 'i') goto yy150;
			if (yych == 'n') goto yy151;
			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 yy152;
					if (yych <= ':') goto yy86;
				}
			}
		} else {
			if (yych <= 'd') {
				if (yych <= 'E') {
					if (yych <= 'D') goto yy86;
					goto yy154;
				} else {
					if (yych == '_') goto yy155;
					goto yy86;
				}
			} else {
				if (yych <= 'w') {
					if (yych <= 'e') goto yy154;
					goto yy86;
				} else {
					if (yych <= 'x') goto yy156;
					if (yych <= '~') goto yy86;
				}
			}
		}
yy98:
#line 232 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Nat, Int); }
#line 963 "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 yy152;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy98;
				if (yych == 'E') goto yy154;
				goto yy86;
			} else {
				if (yych <= 'd') {
					if (yych <= '_') goto yy155;
					goto yy86;
				} else {
					if (yych <= 'e') goto yy154;
					if (yych <= '~') goto yy86;
					goto yy98;
				}
			}
		}
yy101:
		yych = *++cursor_;
		if (yych == ';') goto yy157;
		goto yy80;
yy102:
		yych = *++cursor_;
		if (yych <= 'm') {
			if (yych == 'l') goto yy159;
			goto yy87;
		} else {
			if (yych <= 'n') goto yy160;
			if (yych == 's') 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:
		yych = *++cursor_;
		if (yych == 'a') goto yy204;
		goto yy87;
yy121:
		++cursor_;
yy122:
#line 565 "src/wast-lexer.cc"
		{ MAYBE_MALFORMED_UTF8(""); }
#line 1149 "src/prebuilt/wast-lexer-gen.cc"
yy123:
		yych = *++cursor_;
		if (yych <= 0x7F) goto yy122;
		if (yych <= 0xBF) goto yy79;
		goto yy122;
yy124:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x9F) goto yy122;
		if (yych <= 0xBF) goto yy205;
		goto yy122;
yy125:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy122;
		if (yych <= 0xBF) goto yy205;
		goto yy122;
yy126:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x8F) goto yy122;
		if (yych <= 0xBF) goto yy206;
		goto yy122;
yy127:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy122;
		if (yych <= 0xBF) goto yy206;
		goto yy122;
yy128:
		yyaccept = 1;
		yych = *(marker_ = ++cursor_);
		if (yych <= 0x7F) goto yy122;
		if (yych <= 0x8F) goto yy206;
		goto yy122;
yy129:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
yy130:
		if (yybm[0+yych] & 32) {
			goto yy129;
		}
		if (yych <= 0xDF) {
			if (yych <= '"') {
				if (yych >= ' ') goto yy132;
			} else {
				if (yych <= '\\') goto yy134;
				if (yych >= 0xC2) goto yy135;
			}
		} else {
			if (yych <= 0xF0) {
				if (yych <= 0xE0) goto yy136;
				if (yych <= 0xEF) goto yy137;
				goto yy138;
			} else {
				if (yych <= 0xF3) goto yy139;
				if (yych <= 0xF4) goto yy140;
			}
		}
yy131:
		cursor_ = marker_;
		if (yyaccept == 0) {
			goto yy90;
		} else {
			goto yy122;
		}
yy132:
		++cursor_;
#line 238 "src/wast-lexer.cc"
		{ RETURN_TEXT(Text); }
#line 1221 "src/prebuilt/wast-lexer-gen.cc"
yy134:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '[') {
			if (yych <= '\'') {
				if (yych == '"') goto yy129;
				if (yych <= '&') goto yy131;
				goto yy129;
			} else {
				if (yych <= '9') {
					if (yych <= '/') goto yy131;
					goto yy207;
				} else {
					if (yych <= '@') goto yy131;
					if (yych <= 'F') goto yy207;
					goto yy131;
				}
			}
		} else {
			if (yych <= 'n') {
				if (yych <= '`') {
					if (yych <= '\\') goto yy129;
					goto yy131;
				} else {
					if (yych <= 'f') goto yy207;
					if (yych <= 'm') goto yy131;
					goto yy129;
				}
			} else {
				if (yych <= 'r') {
					if (yych <= 'q') goto yy131;
					goto yy129;
				} else {
					if (yych == 't') goto yy129;
					goto yy131;
				}
			}
		}
yy135:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy131;
		if (yych <= 0xBF) goto yy129;
		goto yy131;
yy136:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x9F) goto yy131;
		if (yych <= 0xBF) goto yy135;
		goto yy131;
yy137:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy131;
		if (yych <= 0xBF) goto yy135;
		goto yy131;
yy138:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x8F) goto yy131;
		if (yych <= 0xBF) goto yy137;
		goto yy131;
yy139:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy131;
		if (yych <= 0xBF) goto yy137;
		goto yy131;
yy140:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= 0x7F) goto yy131;
		if (yych <= 0x8F) goto yy137;
		goto yy131;
yy141:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
yy142:
		if (yybm[0+yych] & 64) {
			goto yy141;
		}
		if (yych <= ')') goto yy143;
		if (yych <= ',') goto yy86;
		if (yych <= ';') goto yy143;
		if (yych <= '}') goto yy86;
yy143:
#line 547 "src/wast-lexer.cc"
		{ RETURN_TEXT(Var); }
#line 1318 "src/prebuilt/wast-lexer-gen.cc"
yy144:
		++cursor_;
		BEGIN(YYCOND_BLOCK_COMMENT);
#line 553 "src/wast-lexer.cc"
		{ COMMENT_NESTING = 1; continue; }
#line 1324 "src/prebuilt/wast-lexer-gen.cc"
yy146:
		++cursor_;
		if ((yych = *cursor_) <= ':') {
			if (yych <= ')') {
				if (yych <= '!') {
					if (yych >= '!') goto yy86;
				} else {
					if (yych <= '"') goto yy147;
					if (yych <= '\'') goto yy86;
				}
			} else {
				if (yych <= '.') {
					if (yych <= '-') goto yy86;
					goto yy152;
				} else {
					if (yych <= '/') goto yy86;
					if (yych <= '9') goto yy148;
					goto yy86;
				}
			}
		} else {
			if (yych <= '_') {
				if (yych <= 'D') {
					if (yych >= '<') goto yy86;
				} else {
					if (yych <= 'E') goto yy154;
					if (yych <= '^') goto yy86;
					goto yy208;
				}
			} else {
				if (yych <= 'w') {
					if (yych == 'e') goto yy154;
					goto yy86;
				} else {
					if (yych <= 'x') goto yy209;
					if (yych <= '~') goto yy86;
				}
			}
		}
yy147:
#line 233 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Int, Int); }
#line 1367 "src/prebuilt/wast-lexer-gen.cc"
yy148:
		++cursor_;
		if ((limit_ - cursor_) < 3) FILL(3);
		yych = *cursor_;
		if (yych <= '9') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy147;
				goto yy86;
			} else {
				if (yych <= '-') {
					if (yych <= ')') goto yy147;
					goto yy86;
				} else {
					if (yych <= '.') goto yy152;
					if (yych <= '/') goto yy86;
					goto yy148;
				}
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') {
					if (yych <= ':') goto yy86;
					goto yy147;
				} else {
					if (yych == 'E') goto yy154;
					goto yy86;
				}
			} else {
				if (yych <= 'd') {
					if (yych <= '_') goto yy208;
					goto yy86;
				} else {
					if (yych <= 'e') goto yy154;
					if (yych <= '~') goto yy86;
					goto yy147;
				}
			}
		}
yy150:
		yych = *++cursor_;
		if (yych == 'n') goto yy210;
		goto yy87;
yy151:
		yych = *++cursor_;
		if (yych == 'a') goto yy189;
		goto yy87;
yy152:
		++cursor_;
		if ((yych = *cursor_) <= '9') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy153;
				if (yych <= '/') goto yy86;
				goto yy211;
			}
		} else {
			if (yych <= 'E') {
				if (yych == ';') goto yy153;
				if (yych <= 'D') goto yy86;
				goto yy154;
			} else {
				if (yych == 'e') goto yy154;
				if (yych <= '~') goto yy86;
			}
		}
yy153:
#line 234 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Float, Float); }
#line 1439 "src/prebuilt/wast-lexer-gen.cc"
yy154:
		yych = *++cursor_;
		if (yych <= ',') {
			if (yych == '+') goto yy213;
			goto yy87;
		} else {
			if (yych <= '-') goto yy213;
			if (yych <= '/') goto yy87;
			if (yych <= '9') goto yy214;
			goto yy87;
		}
yy155:
		++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;
			}
		}
yy156:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yybm[0+yych] & 128) {
			goto yy216;
		}
		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;
			}
		}
yy157:
		++cursor_;
		BEGIN(YYCOND_LINE_COMMENT);
#line 550 "src/wast-lexer.cc"
		{ continue; }
#line 1498 "src/prebuilt/wast-lexer-gen.cc"
yy159:
		yych = *++cursor_;
		if (yych == 'i') goto yy218;
		goto yy87;
yy160:
		yych = *++cursor_;
		if (yych == 'y') goto yy219;
		goto yy87;
yy161:
		yych = *++cursor_;
		if (yych == 's') 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 == 'k') goto yy280;
		goto yy87;
yy205:
		yych = *++cursor_;
		if (yych <= 0x7F) goto yy131;
		if (yych <= 0xBF) goto yy79;
		goto yy131;
yy206:
		yych = *++cursor_;
		if (yych <= 0x7F) goto yy131;
		if (yych <= 0xBF) goto yy205;
		goto yy131;
yy207:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '@') {
			if (yych <= '/') goto yy131;
			if (yych <= '9') goto yy129;
			goto yy131;
		} else {
			if (yych <= 'F') goto yy129;
			if (yych <= '`') goto yy131;
			if (yych <= 'f') goto yy129;
			goto yy131;
		}
yy208:
		++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 yy148;
				goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy209:
		++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 yy281;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy281;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy281;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy210:
		yych = *++cursor_;
		if (yych == 'f') goto yy249;
		goto yy87;
yy211:
		++cursor_;
		if ((limit_ - cursor_) < 2) FILL(2);
		yych = *cursor_;
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy153;
				goto yy86;
			} else {
				if (yych <= ')') goto yy153;
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy211;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy153;
				if (yych == 'E') goto yy154;
				goto yy86;
			} else {
				if (yych <= 'd') {
					if (yych <= '_') goto yy283;
					goto yy86;
				} else {
					if (yych <= 'e') goto yy154;
					if (yych <= '~') goto yy86;
					goto yy153;
				}
			}
		}
yy213:
		++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;
			}
		}
yy214:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '/') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
				goto yy153;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy153;
				goto yy86;
			}
		} else {
			if (yych <= ';') {
				if (yych <= '9') goto yy214;
				if (yych <= ':') goto yy86;
				goto yy153;
			} else {
				if (yych == '_') goto yy213;
				if (yych <= '~') goto yy86;
				goto yy153;
			}
		}
yy216:
		++cursor_;
		if ((limit_ - cursor_) < 3) FILL(3);
		yych = *cursor_;
		if (yybm[0+yych] & 128) {
			goto yy216;
		}
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy98;
				goto yy86;
			} else {
				if (yych <= ')') goto yy98;
				if (yych == '.') goto yy284;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy98;
				if (yych == 'P') goto yy286;
				goto yy86;
			} else {
				if (yych <= 'o') {
					if (yych <= '_') goto yy156;
					goto yy86;
				} else {
					if (yych <= 'p') goto yy286;
					if (yych <= '~') goto yy86;
					goto yy98;
				}
			}
		}
yy218:
		yych = *++cursor_;
		if (yych == 'g') goto yy287;
		goto yy87;
yy219:
		yych = *++cursor_;
		if (yych == 'f') goto yy288;
		goto yy87;
yy220:
		yych = *++cursor_;
		if (yych == 'e') 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:
		yych = *++cursor_;
		if (yych == 'e') goto yy344;
		goto yy87;
yy281:
		++cursor_;
		if ((limit_ - cursor_) < 3) FILL(3);
		yych = *cursor_;
		if (yych <= ';') {
			if (yych <= ')') {
				if (yych <= '!') {
					if (yych <= ' ') goto yy147;
					goto yy86;
				} else {
					if (yych <= '"') goto yy147;
					if (yych <= '\'') goto yy86;
					goto yy147;
				}
			} else {
				if (yych <= '/') {
					if (yych == '.') goto yy284;
					goto yy86;
				} else {
					if (yych <= '9') goto yy281;
					if (yych <= ':') goto yy86;
					goto yy147;
				}
			}
		} else {
			if (yych <= '_') {
				if (yych <= 'O') {
					if (yych <= '@') goto yy86;
					if (yych <= 'F') goto yy281;
					goto yy86;
				} else {
					if (yych <= 'P') goto yy286;
					if (yych <= '^') goto yy86;
					goto yy209;
				}
			} else {
				if (yych <= 'o') {
					if (yych <= '`') goto yy86;
					if (yych <= 'f') goto yy281;
					goto yy86;
				} else {
					if (yych <= 'p') goto yy286;
					if (yych <= '~') goto yy86;
					goto yy147;
				}
			}
		}
yy283:
		++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 yy211;
				goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy284:
		++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 yy346;
					if (yych <= ':') goto yy86;
				}
			}
		} else {
			if (yych <= '`') {
				if (yych <= 'F') {
					if (yych <= '@') goto yy86;
					goto yy346;
				} else {
					if (yych == 'P') goto yy286;
					goto yy86;
				}
			} else {
				if (yych <= 'o') {
					if (yych <= 'f') goto yy346;
					goto yy86;
				} else {
					if (yych <= 'p') goto yy286;
					if (yych <= '~') goto yy86;
				}
			}
		}
yy285:
#line 235 "src/wast-lexer.cc"
		{ RETURN_LITERAL(Float, Hexfloat); }
#line 2342 "src/prebuilt/wast-lexer-gen.cc"
yy286:
		yych = *++cursor_;
		if (yych <= ',') {
			if (yych == '+') goto yy348;
			goto yy87;
		} else {
			if (yych <= '-') goto yy348;
			if (yych <= '/') goto yy87;
			if (yych <= '9') goto yy349;
			goto yy87;
		}
yy287:
		yych = *++cursor_;
		if (yych == 'n') goto yy351;
		goto yy87;
yy288:
		yych = *++cursor_;
		if (yych == 'u') goto yy352;
		goto yy87;
yy289:
		yych = *++cursor_;
		if (yych == 'r') goto yy353;
		goto yy87;
yy290:
		yych = *++cursor_;
		if (yych == 'r') goto yy354;
		goto yy87;
yy291:
		yych = *++cursor_;
		if (yych == 'k') goto yy355;
		goto yy87;
yy292:
		yych = *++cursor_;
		if (yych == 'f') goto yy357;
		goto yy87;
yy293:
		yych = *++cursor_;
		if (yych == 'a') goto yy359;
		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 yy360;
				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 yy361;
		goto yy87;
yy297:
		yych = *++cursor_;
		if (yych == 'e') goto yy363;
		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 yy364;
		goto yy87;
yy307:
		yych = *++cursor_;
		if (yych == 'r') goto yy365;
		goto yy87;
yy308:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy366;
		case 'c':	goto yy367;
		case 'd':	goto yy368;
		case 'e':	goto yy369;
		case 'f':	goto yy370;
		case 'g':	goto yy371;
		case 'l':	goto yy372;
		case 'm':	goto yy373;
		case 'n':	goto yy374;
		case 'r':	goto yy375;
		case 's':	goto yy376;
		case 't':	goto yy377;
		default:	goto yy87;
		}
yy309:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy378;
		case 'c':	goto yy379;
		case 'd':	goto yy380;
		case 'e':	goto yy381;
		case 'f':	goto yy382;
		case 'g':	goto yy383;
		case 'l':	goto yy384;
		case 'm':	goto yy385;
		case 'n':	goto yy386;
		case 'p':	goto yy387;
		case 'r':	goto yy388;
		case 's':	goto yy389;
		case 't':	goto yy390;
		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 yy391;
		if (yych == 'l') goto yy392;
		goto yy87;
yy313:
		yych = *++cursor_;
		if (yych == 'a') goto yy393;
		goto yy87;
yy314:
		yych = *++cursor_;
		if (yych == '_') goto yy394;
		goto yy87;
yy315:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy395;
		case 'c':	goto yy396;
		case 'd':	goto yy397;
		case 'e':	goto yy398;
		case 'g':	goto yy399;
		case 'l':	goto yy400;
		case 'm':	goto yy401;
		case 'n':	goto yy402;
		case 'o':	goto yy403;
		case 'p':	goto yy404;
		case 'r':	goto yy405;
		case 's':	goto yy406;
		case 't':	goto yy407;
		case 'w':	goto yy408;
		case 'x':	goto yy409;
		default:	goto yy87;
		}
yy316:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy410;
		case 'c':	goto yy411;
		case 'd':	goto yy412;
		case 'e':	goto yy413;
		case 'g':	goto yy414;
		case 'l':	goto yy415;
		case 'm':	goto yy416;
		case 'n':	goto yy417;
		case 'o':	goto yy418;
		case 'p':	goto yy419;
		case 'r':	goto yy420;
		case 's':	goto yy421;
		case 't':	goto yy422;
		case 'w':	goto yy423;
		case 'x':	goto yy424;
		default:	goto yy87;
		}
yy317:
		yych = *++cursor_;
		if (yych == 'r') goto yy425;
		goto yy87;
yy318:
		yych = *++cursor_;
		if (yych == 'k') goto yy426;
		goto yy87;
yy319:
		yych = *++cursor_;
		if (yych == 'l') goto yy427;
		goto yy87;
yy320:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 262 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Loop); }
#line 2566 "src/prebuilt/wast-lexer-gen.cc"
yy322:
		yych = *++cursor_;
		if (yych == 'r') goto yy429;
		goto yy87;
yy323:
		yych = *++cursor_;
		if (yych == 'l') goto yy430;
		goto yy87;
yy324:
		yych = *++cursor_;
		if (yych == '0') goto yy431;
		goto yy87;
yy325:
		yych = *++cursor_;
		if (yych == 'e') goto yy432;
		goto yy87;
yy326:
		yych = *++cursor_;
		if (yych == 'm') goto yy433;
		goto yy87;
yy327:
		yych = *++cursor_;
		if (yych == 'e') goto yy435;
		goto yy87;
yy328:
		yych = *++cursor_;
		if (yych == 's') goto yy437;
		goto yy87;
yy329:
		yych = *++cursor_;
		if (yych == 'l') goto yy438;
		goto yy87;
yy330:
		yych = *++cursor_;
		if (yych == 'r') goto yy439;
		goto yy87;
yy331:
		yych = *++cursor_;
		if (yych == 'r') goto yy440;
		goto yy87;
yy332:
		yych = *++cursor_;
		if (yych == 'c') goto yy441;
		goto yy87;
yy333:
		yych = *++cursor_;
		if (yych == 'g') goto yy442;
		if (yych == 'l') goto yy443;
		goto yy87;
yy334:
		yych = *++cursor_;
		if (yych == 'e') goto yy444;
		goto yy87;
yy335:
		yych = *++cursor_;
		if (yych == 't') goto yy445;
		goto yy87;
yy336:
		yych = *++cursor_;
		if (yych == 'e') goto yy447;
		goto yy87;
yy337:
		yych = *++cursor_;
		if (yych == 'l') goto yy449;
		goto yy87;
yy338:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 260 "src/wast-lexer.cc"
		{ RETURN(Then); }
#line 2639 "src/prebuilt/wast-lexer-gen.cc"
yy340:
		yych = *++cursor_;
		if (yych == 'w') goto yy450;
		goto yy87;
yy341:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 513 "src/wast-lexer.cc"
		{ RETURN(Type); }
#line 2651 "src/prebuilt/wast-lexer-gen.cc"
yy343:
		yych = *++cursor_;
		if (yych == 'a') goto yy452;
		goto yy87;
yy344:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 448 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Wake); }
#line 2663 "src/prebuilt/wast-lexer-gen.cc"
yy346:
		++cursor_;
		if ((limit_ - cursor_) < 2) FILL(2);
		yych = *cursor_;
		if (yych <= '@') {
			if (yych <= ')') {
				if (yych <= '!') {
					if (yych <= ' ') goto yy285;
					goto yy86;
				} else {
					if (yych <= '"') goto yy285;
					if (yych <= '\'') goto yy86;
					goto yy285;
				}
			} else {
				if (yych <= '9') {
					if (yych <= '/') goto yy86;
					goto yy346;
				} else {
					if (yych == ';') goto yy285;
					goto yy86;
				}
			}
		} else {
			if (yych <= '_') {
				if (yych <= 'O') {
					if (yych <= 'F') goto yy346;
					goto yy86;
				} else {
					if (yych <= 'P') goto yy286;
					if (yych <= '^') goto yy86;
					goto yy453;
				}
			} else {
				if (yych <= 'o') {
					if (yych <= '`') goto yy86;
					if (yych <= 'f') goto yy346;
					goto yy86;
				} else {
					if (yych <= 'p') goto yy286;
					if (yych <= '~') goto yy86;
					goto yy285;
				}
			}
		}
yy348:
		++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;
			}
		}
yy349:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '/') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
				goto yy285;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy285;
				goto yy86;
			}
		} else {
			if (yych <= ';') {
				if (yych <= '9') goto yy349;
				if (yych <= ':') goto yy86;
				goto yy285;
			} else {
				if (yych == '_') goto yy348;
				if (yych <= '~') goto yy86;
				goto yy285;
			}
		}
yy351:
		yych = *++cursor_;
		if (yych == '=') goto yy454;
		goto yy87;
yy352:
		yych = *++cursor_;
		if (yych == 'n') goto yy455;
		goto yy87;
yy353:
		yych = *++cursor_;
		if (yych == 't') goto yy456;
		goto yy87;
yy354:
		yych = *++cursor_;
		if (yych == 'y') goto yy457;
		goto yy87;
yy355:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 258 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Block); }
#line 2779 "src/prebuilt/wast-lexer-gen.cc"
yy357:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 264 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(BrIf); }
#line 2787 "src/prebuilt/wast-lexer-gen.cc"
yy359:
		yych = *++cursor_;
		if (yych == 'b') goto yy459;
		goto yy87;
yy360:
		yych = *++cursor_;
		if (yych == 'i') goto yy460;
		goto yy87;
yy361:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy362;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '_') goto yy461;
				if (yych <= '~') goto yy86;
			}
		}
yy362:
#line 543 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Catch); }
#line 2816 "src/prebuilt/wast-lexer-gen.cc"
yy363:
		yych = *++cursor_;
		if (yych == 'n') goto yy462;
		goto yy87;
yy364:
		yych = *++cursor_;
		if (yych == 't') goto yy463;
		goto yy87;
yy365:
		yych = *++cursor_;
		if (yych == 't') goto yy465;
		goto yy87;
yy366:
		yych = *++cursor_;
		if (yych == 'b') goto yy467;
		if (yych == 'd') goto yy468;
		goto yy87;
yy367:
		yych = *++cursor_;
		if (yych == 'e') goto yy469;
		if (yych == 'o') goto yy470;
		goto yy87;
yy368:
		yych = *++cursor_;
		if (yych == 'e') goto yy471;
		if (yych == 'i') goto yy472;
		goto yy87;
yy369:
		yych = *++cursor_;
		if (yych == 'q') goto yy473;
		goto yy87;
yy370:
		yych = *++cursor_;
		if (yych == 'l') goto yy475;
		goto yy87;
yy371:
		yych = *++cursor_;
		if (yych == 'e') goto yy476;
		if (yych == 't') goto yy478;
		goto yy87;
yy372:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy480;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy482;
			if (yych == 't') goto yy483;
			goto yy87;
		}
yy373:
		yych = *++cursor_;
		if (yych <= 'h') {
			if (yych == 'a') goto yy485;
			goto yy87;
		} else {
			if (yych <= 'i') goto yy486;
			if (yych == 'u') goto yy487;
			goto yy87;
		}
yy374:
		yych = *++cursor_;
		if (yych == 'e') goto yy488;
		goto yy87;
yy375:
		yych = *++cursor_;
		if (yych == 'e') goto yy490;
		goto yy87;
yy376:
		yych = *++cursor_;
		if (yych <= 's') {
			if (yych == 'q') goto yy491;
			goto yy87;
		} else {
			if (yych <= 't') goto yy492;
			if (yych <= 'u') goto yy493;
			goto yy87;
		}
yy377:
		yych = *++cursor_;
		if (yych == 'r') goto yy494;
		goto yy87;
yy378:
		yych = *++cursor_;
		if (yych == 'b') goto yy495;
		if (yych == 'd') goto yy496;
		goto yy87;
yy379:
		yych = *++cursor_;
		if (yych == 'e') goto yy497;
		if (yych == 'o') goto yy498;
		goto yy87;
yy380:
		yych = *++cursor_;
		if (yych == 'i') goto yy499;
		goto yy87;
yy381:
		yych = *++cursor_;
		if (yych == 'q') goto yy500;
		goto yy87;
yy382:
		yych = *++cursor_;
		if (yych == 'l') goto yy502;
		goto yy87;
yy383:
		yych = *++cursor_;
		if (yych == 'e') goto yy503;
		if (yych == 't') goto yy505;
		goto yy87;
yy384:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy507;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy509;
			if (yych == 't') goto yy510;
			goto yy87;
		}
yy385:
		yych = *++cursor_;
		if (yych <= 'h') {
			if (yych == 'a') goto yy512;
			goto yy87;
		} else {
			if (yych <= 'i') goto yy513;
			if (yych == 'u') goto yy514;
			goto yy87;
		}
yy386:
		yych = *++cursor_;
		if (yych == 'e') goto yy515;
		goto yy87;
yy387:
		yych = *++cursor_;
		if (yych == 'r') goto yy517;
		goto yy87;
yy388:
		yych = *++cursor_;
		if (yych == 'e') goto yy518;
		goto yy87;
yy389:
		yych = *++cursor_;
		if (yych <= 's') {
			if (yych == 'q') goto yy519;
			goto yy87;
		} else {
			if (yych <= 't') goto yy520;
			if (yych <= 'u') goto yy521;
			goto yy87;
		}
yy390:
		yych = *++cursor_;
		if (yych == 'r') goto yy522;
		goto yy87;
yy391:
		yych = *++cursor_;
		if (yych == 'l') goto yy523;
		goto yy87;
yy392:
		yych = *++cursor_;
		if (yych == 'o') goto yy524;
		goto yy87;
yy393:
		yych = *++cursor_;
		if (yych == 'l') goto yy525;
		goto yy87;
yy394:
		yych = *++cursor_;
		if (yych == 'm') goto yy527;
		goto yy87;
yy395:
		yych = *++cursor_;
		if (yych <= 'm') {
			if (yych == 'd') goto yy528;
			goto yy87;
		} else {
			if (yych <= 'n') goto yy529;
			if (yych == 't') goto yy530;
			goto yy87;
		}
yy396:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'l') goto yy531;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy532;
			if (yych == 't') goto yy533;
			goto yy87;
		}
yy397:
		yych = *++cursor_;
		if (yych == 'i') goto yy534;
		goto yy87;
yy398:
		yych = *++cursor_;
		if (yych == 'q') goto yy535;
		if (yych == 'x') goto yy537;
		goto yy87;
yy399:
		yych = *++cursor_;
		if (yych == 'e') goto yy538;
		if (yych == 't') goto yy539;
		goto yy87;
yy400:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy540;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy541;
			if (yych == 't') goto yy542;
			goto yy87;
		}
yy401:
		yych = *++cursor_;
		if (yych == 'u') goto yy543;
		goto yy87;
yy402:
		yych = *++cursor_;
		if (yych == 'e') goto yy544;
		goto yy87;
yy403:
		yych = *++cursor_;
		if (yych == 'r') goto yy546;
		goto yy87;
yy404:
		yych = *++cursor_;
		if (yych == 'o') goto yy548;
		goto yy87;
yy405:
		yych = *++cursor_;
		if (yych == 'e') goto yy549;
		if (yych == 'o') goto yy550;
		goto yy87;
yy406:
		yych = *++cursor_;
		if (yych <= 's') {
			if (yych == 'h') goto yy551;
			goto yy87;
		} else {
			if (yych <= 't') goto yy552;
			if (yych <= 'u') goto yy553;
			goto yy87;
		}
yy407:
		yych = *++cursor_;
		if (yych == 'r') goto yy554;
		goto yy87;
yy408:
		yych = *++cursor_;
		if (yych == 'a') goto yy555;
		if (yych == 'r') goto yy556;
		goto yy87;
yy409:
		yych = *++cursor_;
		if (yych == 'o') goto yy557;
		goto yy87;
yy410:
		yych = *++cursor_;
		if (yych <= 'm') {
			if (yych == 'd') goto yy558;
			goto yy87;
		} else {
			if (yych <= 'n') goto yy559;
			if (yych == 't') goto yy560;
			goto yy87;
		}
yy411:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'l') goto yy561;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy562;
			if (yych == 't') goto yy563;
			goto yy87;
		}
yy412:
		yych = *++cursor_;
		if (yych == 'i') goto yy564;
		goto yy87;
yy413:
		yych = *++cursor_;
		if (yych == 'q') goto yy565;
		if (yych == 'x') goto yy567;
		goto yy87;
yy414:
		yych = *++cursor_;
		if (yych == 'e') goto yy568;
		if (yych == 't') goto yy569;
		goto yy87;
yy415:
		yych = *++cursor_;
		if (yych <= 'n') {
			if (yych == 'e') goto yy570;
			goto yy87;
		} else {
			if (yych <= 'o') goto yy571;
			if (yych == 't') goto yy572;
			goto yy87;
		}
yy416:
		yych = *++cursor_;
		if (yych == 'u') goto yy573;
		goto yy87;
yy417:
		yych = *++cursor_;
		if (yych == 'e') goto yy574;
		goto yy87;
yy418:
		yych = *++cursor_;
		if (yych == 'r') goto yy576;
		goto yy87;
yy419:
		yych = *++cursor_;
		if (yych == 'o') goto yy578;
		goto yy87;
yy420:
		yych = *++cursor_;
		if (yych == 'e') goto yy579;
		if (yych == 'o') goto yy580;
		goto yy87;
yy421:
		yych = *++cursor_;
		if (yych <= 's') {
			if (yych == 'h') goto yy581;
			goto yy87;
		} else {
			if (yych <= 't') goto yy582;
			if (yych <= 'u') goto yy583;
			goto yy87;
		}
yy422:
		yych = *++cursor_;
		if (yych == 'r') goto yy584;
		goto yy87;
yy423:
		yych = *++cursor_;
		if (yych == 'a') goto yy585;
		goto yy87;
yy424:
		yych = *++cursor_;
		if (yych == 'o') goto yy586;
		goto yy87;
yy425:
		yych = *++cursor_;
		if (yych == 't') goto yy587;
		goto yy87;
yy426:
		yych = *++cursor_;
		if (yych == 'e') goto yy589;
		goto yy87;
yy427:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 517 "src/wast-lexer.cc"
		{ RETURN(Local); }
#line 3178 "src/prebuilt/wast-lexer-gen.cc"
yy429:
		yych = *++cursor_;
		if (yych == 'y') goto yy591;
		goto yy87;
yy430:
		yych = *++cursor_;
		if (yych == 'e') goto yy593;
		goto yy87;
yy431:
		yych = *++cursor_;
		if (yych == 'x') goto yy595;
		goto yy87;
yy432:
		yych = *++cursor_;
		if (yych == 't') goto yy596;
		goto yy87;
yy433:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 515 "src/wast-lexer.cc"
		{ RETURN(Param); }
#line 3202 "src/prebuilt/wast-lexer-gen.cc"
yy435:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 521 "src/wast-lexer.cc"
		{ RETURN(Quote); }
#line 3210 "src/prebuilt/wast-lexer-gen.cc"
yy437:
		yych = *++cursor_;
		if (yych == 't') goto yy598;
		goto yy87;
yy438:
		yych = *++cursor_;
		if (yych == 't') goto yy599;
		goto yy87;
yy439:
		yych = *++cursor_;
		if (yych == 'o') goto yy601;
		goto yy87;
yy440:
		yych = *++cursor_;
		if (yych == 'n') goto yy602;
		goto yy87;
yy441:
		yych = *++cursor_;
		if (yych == 't') goto yy604;
		goto yy87;
yy442:
		yych = *++cursor_;
		if (yych == 'l') goto yy606;
		goto yy87;
yy443:
		yych = *++cursor_;
		if (yych == 'o') goto yy607;
		goto yy87;
yy444:
		yych = *++cursor_;
		if (yych == 'd') goto yy608;
		goto yy87;
yy445:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 524 "src/wast-lexer.cc"
		{ RETURN(Start); }
#line 3250 "src/prebuilt/wast-lexer-gen.cc"
yy447:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 522 "src/wast-lexer.cc"
		{ RETURN(Table); }
#line 3258 "src/prebuilt/wast-lexer-gen.cc"
yy449:
		yych = *++cursor_;
		if (yych == 'o') goto yy610;
		goto yy87;
yy450:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 545 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Throw); }
#line 3270 "src/prebuilt/wast-lexer-gen.cc"
yy452:
		yych = *++cursor_;
		if (yych == 'c') goto yy611;
		goto yy87;
yy453:
		++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 yy346;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy346;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy346;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy454:
		yych = *++cursor_;
		if (yych <= '/') goto yy87;
		if (yych <= '0') goto yy612;
		if (yych <= '9') goto yy614;
		goto yy87;
yy455:
		yych = *++cursor_;
		if (yych == 'c') goto yy616;
		goto yy87;
yy456:
		yych = *++cursor_;
		if (yych == '_') goto yy618;
		goto yy87;
yy457:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 520 "src/wast-lexer.cc"
		{ RETURN(Bin); }
#line 3322 "src/prebuilt/wast-lexer-gen.cc"
yy459:
		yych = *++cursor_;
		if (yych == 'l') goto yy619;
		goto yy87;
yy460:
		yych = *++cursor_;
		if (yych == 'n') goto yy620;
		goto yy87;
yy461:
		yych = *++cursor_;
		if (yych == 'a') goto yy621;
		goto yy87;
yy462:
		yych = *++cursor_;
		if (yych == 't') goto yy622;
		goto yy87;
yy463:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 530 "src/wast-lexer.cc"
		{ RETURN(Except); }
#line 3346 "src/prebuilt/wast-lexer-gen.cc"
yy465:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 529 "src/wast-lexer.cc"
		{ RETURN(Export); }
#line 3354 "src/prebuilt/wast-lexer-gen.cc"
yy467:
		yych = *++cursor_;
		if (yych == 's') goto yy623;
		goto yy87;
yy468:
		yych = *++cursor_;
		if (yych == 'd') goto yy625;
		goto yy87;
yy469:
		yych = *++cursor_;
		if (yych == 'i') goto yy627;
		goto yy87;
yy470:
		yych = *++cursor_;
		if (yych == 'n') goto yy628;
		if (yych == 'p') goto yy629;
		goto yy87;
yy471:
		yych = *++cursor_;
		if (yych == 'm') goto yy630;
		goto yy87;
yy472:
		yych = *++cursor_;
		if (yych == 'v') goto yy631;
		goto yy87;
yy473:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 396 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Eq); }
#line 3387 "src/prebuilt/wast-lexer-gen.cc"
yy475:
		yych = *++cursor_;
		if (yych == 'o') goto yy633;
		goto yy87;
yy476:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 406 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Ge); }
#line 3399 "src/prebuilt/wast-lexer-gen.cc"
yy478:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 404 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Gt); }
#line 3407 "src/prebuilt/wast-lexer-gen.cc"
yy480:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 402 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Le); }
#line 3415 "src/prebuilt/wast-lexer-gen.cc"
yy482:
		yych = *++cursor_;
		if (yych == 'a') goto yy634;
		goto yy87;
yy483:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 400 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Lt); }
#line 3427 "src/prebuilt/wast-lexer-gen.cc"
yy485:
		yych = *++cursor_;
		if (yych == 'x') goto yy635;
		goto yy87;
yy486:
		yych = *++cursor_;
		if (yych == 'n') goto yy637;
		goto yy87;
yy487:
		yych = *++cursor_;
		if (yych == 'l') goto yy639;
		goto yy87;
yy488:
		++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 yy489;
				if (yych <= '`') goto yy86;
				goto yy641;
			} else {
				if (yych == 'g') goto yy642;
				if (yych <= '~') goto yy86;
			}
		}
yy489:
#line 398 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F32Ne); }
#line 3462 "src/prebuilt/wast-lexer-gen.cc"
yy490:
		yych = *++cursor_;
		if (yych == 'i') goto yy644;
		goto yy87;
yy491:
		yych = *++cursor_;
		if (yych == 'r') goto yy645;
		goto yy87;
yy492:
		yych = *++cursor_;
		if (yych == 'o') goto yy646;
		goto yy87;
yy493:
		yych = *++cursor_;
		if (yych == 'b') goto yy647;
		goto yy87;
yy494:
		yych = *++cursor_;
		if (yych == 'u') goto yy649;
		goto yy87;
yy495:
		yych = *++cursor_;
		if (yych == 's') goto yy650;
		goto yy87;
yy496:
		yych = *++cursor_;
		if (yych == 'd') goto yy652;
		goto yy87;
yy497:
		yych = *++cursor_;
		if (yych == 'i') goto yy654;
		goto yy87;
yy498:
		yych = *++cursor_;
		if (yych == 'n') goto yy655;
		if (yych == 'p') goto yy656;
		goto yy87;
yy499:
		yych = *++cursor_;
		if (yych == 'v') goto yy657;
		goto yy87;
yy500:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 397 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Eq); }
#line 3511 "src/prebuilt/wast-lexer-gen.cc"
yy502:
		yych = *++cursor_;
		if (yych == 'o') goto yy659;
		goto yy87;
yy503:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 407 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Ge); }
#line 3523 "src/prebuilt/wast-lexer-gen.cc"
yy505:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 405 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Gt); }
#line 3531 "src/prebuilt/wast-lexer-gen.cc"
yy507:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 403 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Le); }
#line 3539 "src/prebuilt/wast-lexer-gen.cc"
yy509:
		yych = *++cursor_;
		if (yych == 'a') goto yy660;
		goto yy87;
yy510:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 401 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Lt); }
#line 3551 "src/prebuilt/wast-lexer-gen.cc"
yy512:
		yych = *++cursor_;
		if (yych == 'x') goto yy661;
		goto yy87;
yy513:
		yych = *++cursor_;
		if (yych == 'n') goto yy663;
		goto yy87;
yy514:
		yych = *++cursor_;
		if (yych == 'l') goto yy665;
		goto yy87;
yy515:
		++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 yy516;
				if (yych <= '`') goto yy86;
				goto yy667;
			} else {
				if (yych == 'g') goto yy668;
				if (yych <= '~') goto yy86;
			}
		}
yy516:
#line 399 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, F64Ne); }
#line 3586 "src/prebuilt/wast-lexer-gen.cc"
yy517:
		yych = *++cursor_;
		if (yych == 'o') goto yy670;
		goto yy87;
yy518:
		yych = *++cursor_;
		if (yych == 'i') goto yy671;
		goto yy87;
yy519:
		yych = *++cursor_;
		if (yych == 'r') goto yy672;
		goto yy87;
yy520:
		yych = *++cursor_;
		if (yych == 'o') goto yy673;
		goto yy87;
yy521:
		yych = *++cursor_;
		if (yych == 'b') goto yy674;
		goto yy87;
yy522:
		yych = *++cursor_;
		if (yych == 'u') goto yy676;
		goto yy87;
yy523:
		yych = *++cursor_;
		if (yych == 'o') goto yy677;
		goto yy87;
yy524:
		yych = *++cursor_;
		if (yych == 'c') goto yy678;
		goto yy87;
yy525:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 518 "src/wast-lexer.cc"
		{ RETURN(Global); }
#line 3626 "src/prebuilt/wast-lexer-gen.cc"
yy527:
		yych = *++cursor_;
		if (yych == 'e') goto yy679;
		goto yy87;
yy528:
		yych = *++cursor_;
		if (yych == 'd') goto yy680;
		goto yy87;
yy529:
		yych = *++cursor_;
		if (yych == 'd') goto yy682;
		goto yy87;
yy530:
		yych = *++cursor_;
		if (yych == 'o') goto yy684;
		goto yy87;
yy531:
		yych = *++cursor_;
		if (yych == 'z') goto yy685;
		goto yy87;
yy532:
		yych = *++cursor_;
		if (yych == 'n') goto yy687;
		goto yy87;
yy533:
		yych = *++cursor_;
		if (yych == 'z') goto yy688;
		goto yy87;
yy534:
		yych = *++cursor_;
		if (yych == 'v') goto yy690;
		goto yy87;
yy535:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy536;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= 'y') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= 'z') goto yy691;
				if (yych <= '~') goto yy86;
			}
		}
yy536:
#line 376 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32Eq); }
#line 3679 "src/prebuilt/wast-lexer-gen.cc"
yy537:
		yych = *++cursor_;
		if (yych == 't') goto yy693;
		goto yy87;
yy538:
		yych = *++cursor_;
		if (yych == '_') goto yy694;
		goto yy87;
yy539:
		yych = *++cursor_;
		if (yych == '_') goto yy695;
		goto yy87;
yy540:
		yych = *++cursor_;
		if (yych == '_') goto yy696;
		goto yy87;
yy541:
		yych = *++cursor_;
		if (yych == 'a') goto yy697;
		goto yy87;
yy542:
		yych = *++cursor_;
		if (yych == '_') goto yy698;
		goto yy87;
yy543:
		yych = *++cursor_;
		if (yych == 'l') goto yy699;
		goto yy87;
yy544:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 378 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32Ne); }
#line 3715 "src/prebuilt/wast-lexer-gen.cc"
yy546:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 348 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Or); }
#line 3723 "src/prebuilt/wast-lexer-gen.cc"
yy548:
		yych = *++cursor_;
		if (yych == 'p') goto yy701;
		goto yy87;
yy549:
		yych = *++cursor_;
		if (yych == 'i') goto yy702;
		if (yych == 'm') goto yy703;
		goto yy87;
yy550:
		yych = *++cursor_;
		if (yych == 't') goto yy704;
		goto yy87;
yy551:
		yych = *++cursor_;
		if (yych == 'l') goto yy705;
		if (yych == 'r') goto yy707;
		goto yy87;
yy552:
		yych = *++cursor_;
		if (yych == 'o') goto yy708;
		goto yy87;
yy553:
		yych = *++cursor_;
		if (yych == 'b') goto yy709;
		goto yy87;
yy554:
		yych = *++cursor_;
		if (yych == 'u') goto yy711;
		goto yy87;
yy555:
		yych = *++cursor_;
		if (yych == 'i') goto yy712;
		goto yy87;
yy556:
		yych = *++cursor_;
		if (yych == 'a') goto yy713;
		goto yy87;
yy557:
		yych = *++cursor_;
		if (yych == 'r') goto yy714;
		goto yy87;
yy558:
		yych = *++cursor_;
		if (yych == 'd') goto yy716;
		goto yy87;
yy559:
		yych = *++cursor_;
		if (yych == 'd') goto yy718;
		goto yy87;
yy560:
		yych = *++cursor_;
		if (yych == 'o') goto yy720;
		goto yy87;
yy561:
		yych = *++cursor_;
		if (yych == 'z') goto yy721;
		goto yy87;
yy562:
		yych = *++cursor_;
		if (yych == 'n') goto yy723;
		goto yy87;
yy563:
		yych = *++cursor_;
		if (yych == 'z') goto yy724;
		goto yy87;
yy564:
		yych = *++cursor_;
		if (yych == 'v') goto yy726;
		goto yy87;
yy565:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy566;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= 'y') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= 'z') goto yy727;
				if (yych <= '~') goto yy86;
			}
		}
yy566:
#line 377 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64Eq); }
#line 3814 "src/prebuilt/wast-lexer-gen.cc"
yy567:
		yych = *++cursor_;
		if (yych == 't') goto yy729;
		goto yy87;
yy568:
		yych = *++cursor_;
		if (yych == '_') goto yy730;
		goto yy87;
yy569:
		yych = *++cursor_;
		if (yych == '_') goto yy731;
		goto yy87;
yy570:
		yych = *++cursor_;
		if (yych == '_') goto yy732;
		goto yy87;
yy571:
		yych = *++cursor_;
		if (yych == 'a') goto yy733;
		goto yy87;
yy572:
		yych = *++cursor_;
		if (yych == '_') goto yy734;
		goto yy87;
yy573:
		yych = *++cursor_;
		if (yych == 'l') goto yy735;
		goto yy87;
yy574:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 379 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64Ne); }
#line 3850 "src/prebuilt/wast-lexer-gen.cc"
yy576:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 349 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Or); }
#line 3858 "src/prebuilt/wast-lexer-gen.cc"
yy578:
		yych = *++cursor_;
		if (yych == 'p') goto yy737;
		goto yy87;
yy579:
		yych = *++cursor_;
		if (yych == 'i') goto yy738;
		if (yych == 'm') goto yy739;
		goto yy87;
yy580:
		yych = *++cursor_;
		if (yych == 't') goto yy740;
		goto yy87;
yy581:
		yych = *++cursor_;
		if (yych == 'l') goto yy741;
		if (yych == 'r') goto yy743;
		goto yy87;
yy582:
		yych = *++cursor_;
		if (yych == 'o') goto yy744;
		goto yy87;
yy583:
		yych = *++cursor_;
		if (yych == 'b') goto yy745;
		goto yy87;
yy584:
		yych = *++cursor_;
		if (yych == 'u') goto yy747;
		goto yy87;
yy585:
		yych = *++cursor_;
		if (yych == 'i') goto yy748;
		goto yy87;
yy586:
		yych = *++cursor_;
		if (yych == 'r') goto yy749;
		goto yy87;
yy587:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 528 "src/wast-lexer.cc"
		{ RETURN(Import); }
#line 3904 "src/prebuilt/wast-lexer-gen.cc"
yy589:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 532 "src/wast-lexer.cc"
		{ RETURN(Invoke); }
#line 3912 "src/prebuilt/wast-lexer-gen.cc"
yy591:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 523 "src/wast-lexer.cc"
		{ RETURN(Memory); }
#line 3920 "src/prebuilt/wast-lexer-gen.cc"
yy593:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 519 "src/wast-lexer.cc"
		{ RETURN(Module); }
#line 3928 "src/prebuilt/wast-lexer-gen.cc"
yy595:
		++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 yy751;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy751;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy751;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy596:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy597;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '<') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '=') goto yy753;
				if (yych <= '~') goto yy86;
			}
		}
yy597:
#line 527 "src/wast-lexer.cc"
		{ RETURN(Offset); }
#line 3975 "src/prebuilt/wast-lexer-gen.cc"
yy598:
		yych = *++cursor_;
		if (yych == 'e') goto yy754;
		goto yy87;
yy599:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 516 "src/wast-lexer.cc"
		{ RETURN(Result); }
#line 3987 "src/prebuilt/wast-lexer-gen.cc"
yy601:
		yych = *++cursor_;
		if (yych == 'w') goto yy755;
		goto yy87;
yy602:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 270 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Return); }
#line 3999 "src/prebuilt/wast-lexer-gen.cc"
yy604:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 441 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Select); }
#line 4007 "src/prebuilt/wast-lexer-gen.cc"
yy606:
		yych = *++cursor_;
		if (yych == 'o') goto yy757;
		goto yy87;
yy607:
		yych = *++cursor_;
		if (yych == 'c') goto yy758;
		goto yy87;
yy608:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 548 "src/wast-lexer.cc"
		{ RETURN(Shared); }
#line 4023 "src/prebuilt/wast-lexer-gen.cc"
yy610:
		yych = *++cursor_;
		if (yych == 'c') goto yy759;
		goto yy87;
yy611:
		yych = *++cursor_;
		if (yych == 'h') goto yy760;
		goto yy87;
yy612:
		++cursor_;
		if ((yych = *cursor_) <= '9') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy613;
				if (yych <= '/') goto yy86;
				goto yy614;
			}
		} else {
			if (yych <= '_') {
				if (yych == ';') goto yy613;
				if (yych <= '^') goto yy86;
				goto yy761;
			} else {
				if (yych == 'x') goto yy762;
				if (yych <= '~') goto yy86;
			}
		}
yy613:
#line 300 "src/wast-lexer.cc"
		{ RETURN_TEXT_AT(AlignEqNat, 6); }
#line 4056 "src/prebuilt/wast-lexer-gen.cc"
yy614:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '/') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
				goto yy613;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy613;
				goto yy86;
			}
		} else {
			if (yych <= ';') {
				if (yych <= '9') goto yy614;
				if (yych <= ':') goto yy86;
				goto yy613;
			} else {
				if (yych == '_') goto yy761;
				if (yych <= '~') goto yy86;
				goto yy613;
			}
		}
yy616:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 255 "src/wast-lexer.cc"
		{ RETURN(Anyfunc); }
#line 4088 "src/prebuilt/wast-lexer-gen.cc"
yy618:
		yych = *++cursor_;
		switch (yych) {
		case 'e':	goto yy763;
		case 'i':	goto yy764;
		case 'm':	goto yy765;
		case 'r':	goto yy766;
		case 't':	goto yy767;
		case 'u':	goto yy768;
		default:	goto yy87;
		}
yy619:
		yych = *++cursor_;
		if (yych == 'e') goto yy769;
		goto yy87;
yy620:
		yych = *++cursor_;
		if (yych == 'd') goto yy771;
		goto yy87;
yy621:
		yych = *++cursor_;
		if (yych == 'l') goto yy772;
		goto yy87;
yy622:
		yych = *++cursor_;
		if (yych == '_') goto yy773;
		goto yy87;
yy623:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 315 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Abs); }
#line 4123 "src/prebuilt/wast-lexer-gen.cc"
yy625:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 362 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Add); }
#line 4131 "src/prebuilt/wast-lexer-gen.cc"
yy627:
		yych = *++cursor_;
		if (yych == 'l') goto yy774;
		goto yy87;
yy628:
		yych = *++cursor_;
		if (yych == 's') goto yy776;
		if (yych == 'v') goto yy777;
		goto yy87;
yy629:
		yych = *++cursor_;
		if (yych == 'y') goto yy778;
		goto yy87;
yy630:
		yych = *++cursor_;
		if (yych == 'o') goto yy779;
		goto yy87;
yy631:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 368 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Div); }
#line 4156 "src/prebuilt/wast-lexer-gen.cc"
yy633:
		yych = *++cursor_;
		if (yych == 'o') goto yy780;
		goto yy87;
yy634:
		yych = *++cursor_;
		if (yych == 'd') goto yy781;
		goto yy87;
yy635:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 372 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Max); }
#line 4172 "src/prebuilt/wast-lexer-gen.cc"
yy637:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 370 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Min); }
#line 4180 "src/prebuilt/wast-lexer-gen.cc"
yy639:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 366 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Mul); }
#line 4188 "src/prebuilt/wast-lexer-gen.cc"
yy641:
		yych = *++cursor_;
		if (yych == 'r') goto yy783;
		goto yy87;
yy642:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 313 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Neg); }
#line 4200 "src/prebuilt/wast-lexer-gen.cc"
yy644:
		yych = *++cursor_;
		if (yych == 'n') goto yy784;
		goto yy87;
yy645:
		yych = *++cursor_;
		if (yych == 't') goto yy785;
		goto yy87;
yy646:
		yych = *++cursor_;
		if (yych == 'r') goto yy787;
		goto yy87;
yy647:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 364 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Sub); }
#line 4220 "src/prebuilt/wast-lexer-gen.cc"
yy649:
		yych = *++cursor_;
		if (yych == 'n') goto yy788;
		goto yy87;
yy650:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 316 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Abs); }
#line 4232 "src/prebuilt/wast-lexer-gen.cc"
yy652:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 363 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Add); }
#line 4240 "src/prebuilt/wast-lexer-gen.cc"
yy654:
		yych = *++cursor_;
		if (yych == 'l') goto yy789;
		goto yy87;
yy655:
		yych = *++cursor_;
		if (yych == 's') goto yy791;
		if (yych == 'v') goto yy792;
		goto yy87;
yy656:
		yych = *++cursor_;
		if (yych == 'y') goto yy793;
		goto yy87;
yy657:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 369 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Div); }
#line 4261 "src/prebuilt/wast-lexer-gen.cc"
yy659:
		yych = *++cursor_;
		if (yych == 'o') goto yy794;
		goto yy87;
yy660:
		yych = *++cursor_;
		if (yych == 'd') goto yy795;
		goto yy87;
yy661:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 373 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Max); }
#line 4277 "src/prebuilt/wast-lexer-gen.cc"
yy663:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 371 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Min); }
#line 4285 "src/prebuilt/wast-lexer-gen.cc"
yy665:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 367 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Mul); }
#line 4293 "src/prebuilt/wast-lexer-gen.cc"
yy667:
		yych = *++cursor_;
		if (yych == 'r') goto yy797;
		goto yy87;
yy668:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 314 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Neg); }
#line 4305 "src/prebuilt/wast-lexer-gen.cc"
yy670:
		yych = *++cursor_;
		if (yych == 'm') goto yy798;
		goto yy87;
yy671:
		yych = *++cursor_;
		if (yych == 'n') goto yy799;
		goto yy87;
yy672:
		yych = *++cursor_;
		if (yych == 't') goto yy800;
		goto yy87;
yy673:
		yych = *++cursor_;
		if (yych == 'r') goto yy802;
		goto yy87;
yy674:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 365 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Sub); }
#line 4329 "src/prebuilt/wast-lexer-gen.cc"
yy676:
		yych = *++cursor_;
		if (yych == 'n') goto yy803;
		goto yy87;
yy677:
		yych = *++cursor_;
		if (yych == 'b') goto yy804;
		goto yy87;
yy678:
		yych = *++cursor_;
		if (yych == 'a') goto yy805;
		goto yy87;
yy679:
		yych = *++cursor_;
		if (yych == 'm') goto yy806;
		goto yy87;
yy680:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 332 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Add); }
#line 4353 "src/prebuilt/wast-lexer-gen.cc"
yy682:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 346 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32And); }
#line 4361 "src/prebuilt/wast-lexer-gen.cc"
yy684:
		yych = *++cursor_;
		if (yych == 'm') goto yy807;
		goto yy87;
yy685:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 307 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Clz); }
#line 4373 "src/prebuilt/wast-lexer-gen.cc"
yy687:
		yych = *++cursor_;
		if (yych == 's') goto yy808;
		goto yy87;
yy688:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 309 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Ctz); }
#line 4385 "src/prebuilt/wast-lexer-gen.cc"
yy690:
		yych = *++cursor_;
		if (yych == '_') goto yy809;
		goto yy87;
yy691:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 305 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32Eqz); }
#line 4397 "src/prebuilt/wast-lexer-gen.cc"
yy693:
		yych = *++cursor_;
		if (yych == 'e') goto yy810;
		goto yy87;
yy694:
		yych = *++cursor_;
		if (yych == 's') goto yy811;
		if (yych == 'u') goto yy813;
		goto yy87;
yy695:
		yych = *++cursor_;
		if (yych == 's') goto yy815;
		if (yych == 'u') goto yy817;
		goto yy87;
yy696:
		yych = *++cursor_;
		if (yych == 's') goto yy819;
		if (yych == 'u') goto yy821;
		goto yy87;
yy697:
		yych = *++cursor_;
		if (yych == 'd') goto yy823;
		goto yy87;
yy698:
		yych = *++cursor_;
		if (yych == 's') goto yy825;
		if (yych == 'u') goto yy827;
		goto yy87;
yy699:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 336 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Mul); }
#line 4433 "src/prebuilt/wast-lexer-gen.cc"
yy701:
		yych = *++cursor_;
		if (yych == 'c') goto yy829;
		goto yy87;
yy702:
		yych = *++cursor_;
		if (yych == 'n') goto yy830;
		goto yy87;
yy703:
		yych = *++cursor_;
		if (yych == '_') goto yy831;
		goto yy87;
yy704:
		yych = *++cursor_;
		if (yych == 'l') goto yy832;
		if (yych == 'r') goto yy834;
		goto yy87;
yy705:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 352 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Shl); }
#line 4458 "src/prebuilt/wast-lexer-gen.cc"
yy707:
		yych = *++cursor_;
		if (yych == '_') goto yy836;
		goto yy87;
yy708:
		yych = *++cursor_;
		if (yych == 'r') goto yy837;
		goto yy87;
yy709:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 334 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Sub); }
#line 4474 "src/prebuilt/wast-lexer-gen.cc"
yy711:
		yych = *++cursor_;
		if (yych == 'n') goto yy838;
		goto yy87;
yy712:
		yych = *++cursor_;
		if (yych == 't') goto yy839;
		goto yy87;
yy713:
		yych = *++cursor_;
		if (yych == 'p') goto yy841;
		goto yy87;
yy714:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 350 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Xor); }
#line 4494 "src/prebuilt/wast-lexer-gen.cc"
yy716:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 333 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Add); }
#line 4502 "src/prebuilt/wast-lexer-gen.cc"
yy718:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 347 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64And); }
#line 4510 "src/prebuilt/wast-lexer-gen.cc"
yy720:
		yych = *++cursor_;
		if (yych == 'm') goto yy842;
		goto yy87;
yy721:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 308 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Clz); }
#line 4522 "src/prebuilt/wast-lexer-gen.cc"
yy723:
		yych = *++cursor_;
		if (yych == 's') goto yy843;
		goto yy87;
yy724:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 310 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Ctz); }
#line 4534 "src/prebuilt/wast-lexer-gen.cc"
yy726:
		yych = *++cursor_;
		if (yych == '_') goto yy844;
		goto yy87;
yy727:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 306 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64Eqz); }
#line 4546 "src/prebuilt/wast-lexer-gen.cc"
yy729:
		yych = *++cursor_;
		if (yych == 'e') goto yy845;
		goto yy87;
yy730:
		yych = *++cursor_;
		if (yych == 's') goto yy846;
		if (yych == 'u') goto yy848;
		goto yy87;
yy731:
		yych = *++cursor_;
		if (yych == 's') goto yy850;
		if (yych == 'u') goto yy852;
		goto yy87;
yy732:
		yych = *++cursor_;
		if (yych == 's') goto yy854;
		if (yych == 'u') goto yy856;
		goto yy87;
yy733:
		yych = *++cursor_;
		if (yych == 'd') goto yy858;
		goto yy87;
yy734:
		yych = *++cursor_;
		if (yych == 's') goto yy860;
		if (yych == 'u') goto yy862;
		goto yy87;
yy735:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 337 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Mul); }
#line 4582 "src/prebuilt/wast-lexer-gen.cc"
yy737:
		yych = *++cursor_;
		if (yych == 'c') goto yy864;
		goto yy87;
yy738:
		yych = *++cursor_;
		if (yych == 'n') goto yy865;
		goto yy87;
yy739:
		yych = *++cursor_;
		if (yych == '_') goto yy866;
		goto yy87;
yy740:
		yych = *++cursor_;
		if (yych == 'l') goto yy867;
		if (yych == 'r') goto yy869;
		goto yy87;
yy741:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 353 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Shl); }
#line 4607 "src/prebuilt/wast-lexer-gen.cc"
yy743:
		yych = *++cursor_;
		if (yych == '_') goto yy871;
		goto yy87;
yy744:
		yych = *++cursor_;
		if (yych == 'r') goto yy872;
		goto yy87;
yy745:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 335 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Sub); }
#line 4623 "src/prebuilt/wast-lexer-gen.cc"
yy747:
		yych = *++cursor_;
		if (yych == 'n') goto yy873;
		goto yy87;
yy748:
		yych = *++cursor_;
		if (yych == 't') goto yy874;
		goto yy87;
yy749:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 351 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Xor); }
#line 4639 "src/prebuilt/wast-lexer-gen.cc"
yy751:
		++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 yy751;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy259;
				if (yych <= '@') goto yy86;
				if (yych <= 'F') goto yy751;
				goto yy86;
			} else {
				if (yych <= '`') {
					if (yych <= '_') goto yy595;
					goto yy86;
				} else {
					if (yych <= 'f') goto yy751;
					if (yych <= '~') goto yy86;
					goto yy259;
				}
			}
		}
yy753:
		yych = *++cursor_;
		if (yych <= '/') goto yy87;
		if (yych <= '0') goto yy876;
		if (yych <= '9') goto yy878;
		goto yy87;
yy754:
		yych = *++cursor_;
		if (yych == 'r') goto yy880;
		goto yy87;
yy755:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 546 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Rethrow); }
#line 4689 "src/prebuilt/wast-lexer-gen.cc"
yy757:
		yych = *++cursor_;
		if (yych == 'b') goto yy882;
		goto yy87;
yy758:
		yych = *++cursor_;
		if (yych == 'a') goto yy883;
		goto yy87;
yy759:
		yych = *++cursor_;
		if (yych == 'a') goto yy884;
		goto yy87;
yy760:
		yych = *++cursor_;
		if (yych == 'a') goto yy885;
		goto yy87;
yy761:
		++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 yy614;
				goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy762:
		++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 yy886;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy886;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy886;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy763:
		yych = *++cursor_;
		if (yych == 'x') goto yy888;
		goto yy87;
yy764:
		yych = *++cursor_;
		if (yych == 'n') goto yy889;
		goto yy87;
yy765:
		yych = *++cursor_;
		if (yych == 'a') goto yy890;
		goto yy87;
yy766:
		yych = *++cursor_;
		if (yych == 'e') goto yy891;
		goto yy87;
yy767:
		yych = *++cursor_;
		if (yych == 'r') goto yy892;
		goto yy87;
yy768:
		yych = *++cursor_;
		if (yych == 'n') goto yy893;
		goto yy87;
yy769:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 265 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(BrTable); }
#line 4787 "src/prebuilt/wast-lexer-gen.cc"
yy771:
		yych = *++cursor_;
		if (yych == 'i') goto yy894;
		goto yy87;
yy772:
		yych = *++cursor_;
		if (yych == 'l') goto yy895;
		goto yy87;
yy773:
		yych = *++cursor_;
		if (yych == 'm') goto yy897;
		goto yy87;
yy774:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 319 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Ceil); }
#line 4807 "src/prebuilt/wast-lexer-gen.cc"
yy776:
		yych = *++cursor_;
		if (yych == 't') goto yy898;
		goto yy87;
yy777:
		yych = *++cursor_;
		if (yych == 'e') goto yy900;
		goto yy87;
yy778:
		yych = *++cursor_;
		if (yych == 's') goto yy901;
		goto yy87;
yy779:
		yych = *++cursor_;
		if (yych == 't') goto yy902;
		goto yy87;
yy780:
		yych = *++cursor_;
		if (yych == 'r') goto yy903;
		goto yy87;
yy781:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 278 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, F32Load); }
#line 4835 "src/prebuilt/wast-lexer-gen.cc"
yy783:
		yych = *++cursor_;
		if (yych == 'e') goto yy905;
		goto yy87;
yy784:
		yych = *++cursor_;
		if (yych == 't') goto yy906;
		goto yy87;
yy785:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 317 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Sqrt); }
#line 4851 "src/prebuilt/wast-lexer-gen.cc"
yy787:
		yych = *++cursor_;
		if (yych == 'e') goto yy907;
		goto yy87;
yy788:
		yych = *++cursor_;
		if (yych == 'c') goto yy909;
		goto yy87;
yy789:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 320 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Ceil); }
#line 4867 "src/prebuilt/wast-lexer-gen.cc"
yy791:
		yych = *++cursor_;
		if (yych == 't') goto yy911;
		goto yy87;
yy792:
		yych = *++cursor_;
		if (yych == 'e') goto yy913;
		goto yy87;
yy793:
		yych = *++cursor_;
		if (yych == 's') goto yy914;
		goto yy87;
yy794:
		yych = *++cursor_;
		if (yych == 'r') goto yy915;
		goto yy87;
yy795:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 279 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, F64Load); }
#line 4891 "src/prebuilt/wast-lexer-gen.cc"
yy797:
		yych = *++cursor_;
		if (yych == 'e') goto yy917;
		goto yy87;
yy798:
		yych = *++cursor_;
		if (yych == 'o') goto yy918;
		goto yy87;
yy799:
		yych = *++cursor_;
		if (yych == 't') goto yy919;
		goto yy87;
yy800:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 318 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Sqrt); }
#line 4911 "src/prebuilt/wast-lexer-gen.cc"
yy802:
		yych = *++cursor_;
		if (yych == 'e') goto yy920;
		goto yy87;
yy803:
		yych = *++cursor_;
		if (yych == 'c') goto yy922;
		goto yy87;
yy804:
		yych = *++cursor_;
		if (yych == 'a') goto yy924;
		goto yy87;
yy805:
		yych = *++cursor_;
		if (yych == 'l') goto yy925;
		goto yy87;
yy806:
		yych = *++cursor_;
		if (yych == 'o') goto yy927;
		goto yy87;
yy807:
		yych = *++cursor_;
		if (yych == 'i') goto yy928;
		goto yy87;
yy808:
		yych = *++cursor_;
		if (yych == 't') goto yy929;
		goto yy87;
yy809:
		yych = *++cursor_;
		if (yych == 's') goto yy931;
		if (yych == 'u') goto yy933;
		goto yy87;
yy810:
		yych = *++cursor_;
		if (yych == 'n') goto yy935;
		goto yy87;
yy811:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 392 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32GeS); }
#line 4956 "src/prebuilt/wast-lexer-gen.cc"
yy813:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 394 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32GeU); }
#line 4964 "src/prebuilt/wast-lexer-gen.cc"
yy815:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 388 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32GtS); }
#line 4972 "src/prebuilt/wast-lexer-gen.cc"
yy817:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 390 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32GtU); }
#line 4980 "src/prebuilt/wast-lexer-gen.cc"
yy819:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 384 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32LeS); }
#line 4988 "src/prebuilt/wast-lexer-gen.cc"
yy821:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 386 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32LeU); }
#line 4996 "src/prebuilt/wast-lexer-gen.cc"
yy823:
		++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 yy936;
				if (yych <= '7') goto yy86;
				goto yy937;
			} else {
				if (yych == ';') goto yy824;
				if (yych <= '~') goto yy86;
			}
		}
yy824:
#line 276 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load); }
#line 5019 "src/prebuilt/wast-lexer-gen.cc"
yy825:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 380 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32LtS); }
#line 5027 "src/prebuilt/wast-lexer-gen.cc"
yy827:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 382 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I32LtU); }
#line 5035 "src/prebuilt/wast-lexer-gen.cc"
yy829:
		yych = *++cursor_;
		if (yych == 'n') goto yy938;
		goto yy87;
yy830:
		yych = *++cursor_;
		if (yych == 't') goto yy939;
		goto yy87;
yy831:
		yych = *++cursor_;
		if (yych == 's') goto yy940;
		if (yych == 'u') goto yy942;
		goto yy87;
yy832:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 358 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Rotl); }
#line 5056 "src/prebuilt/wast-lexer-gen.cc"
yy834:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 360 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32Rotr); }
#line 5064 "src/prebuilt/wast-lexer-gen.cc"
yy836:
		yych = *++cursor_;
		if (yych == 's') goto yy944;
		if (yych == 'u') goto yy946;
		goto yy87;
yy837:
		yych = *++cursor_;
		if (yych == 'e') goto yy948;
		goto yy87;
yy838:
		yych = *++cursor_;
		if (yych == 'c') goto yy950;
		goto yy87;
yy839:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 446 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Wait, I32Wait); }
#line 5085 "src/prebuilt/wast-lexer-gen.cc"
yy841:
		yych = *++cursor_;
		if (yych == '/') goto yy951;
		goto yy87;
yy842:
		yych = *++cursor_;
		if (yych == 'i') goto yy952;
		goto yy87;
yy843:
		yych = *++cursor_;
		if (yych == 't') goto yy953;
		goto yy87;
yy844:
		yych = *++cursor_;
		if (yych == 's') goto yy955;
		if (yych == 'u') goto yy957;
		goto yy87;
yy845:
		yych = *++cursor_;
		if (yych == 'n') goto yy959;
		goto yy87;
yy846:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 393 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64GeS); }
#line 5114 "src/prebuilt/wast-lexer-gen.cc"
yy848:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 395 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64GeU); }
#line 5122 "src/prebuilt/wast-lexer-gen.cc"
yy850:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 389 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64GtS); }
#line 5130 "src/prebuilt/wast-lexer-gen.cc"
yy852:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 391 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64GtU); }
#line 5138 "src/prebuilt/wast-lexer-gen.cc"
yy854:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 385 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64LeS); }
#line 5146 "src/prebuilt/wast-lexer-gen.cc"
yy856:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 387 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64LeU); }
#line 5154 "src/prebuilt/wast-lexer-gen.cc"
yy858:
		++cursor_;
		if ((yych = *cursor_) <= '1') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy859;
				if (yych <= '0') goto yy86;
				goto yy960;
			}
		} else {
			if (yych <= '8') {
				if (yych == '3') goto yy961;
				if (yych <= '7') goto yy86;
				goto yy962;
			} else {
				if (yych == ';') goto yy859;
				if (yych <= '~') goto yy86;
			}
		}
yy859:
#line 277 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load); }
#line 5179 "src/prebuilt/wast-lexer-gen.cc"
yy860:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 381 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64LtS); }
#line 5187 "src/prebuilt/wast-lexer-gen.cc"
yy862:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 383 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Compare, I64LtU); }
#line 5195 "src/prebuilt/wast-lexer-gen.cc"
yy864:
		yych = *++cursor_;
		if (yych == 'n') goto yy963;
		goto yy87;
yy865:
		yych = *++cursor_;
		if (yych == 't') goto yy964;
		goto yy87;
yy866:
		yych = *++cursor_;
		if (yych == 's') goto yy965;
		if (yych == 'u') goto yy967;
		goto yy87;
yy867:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 359 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Rotl); }
#line 5216 "src/prebuilt/wast-lexer-gen.cc"
yy869:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 361 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64Rotr); }
#line 5224 "src/prebuilt/wast-lexer-gen.cc"
yy871:
		yych = *++cursor_;
		if (yych == 's') goto yy969;
		if (yych == 'u') goto yy971;
		goto yy87;
yy872:
		yych = *++cursor_;
		if (yych == 'e') goto yy973;
		goto yy87;
yy873:
		yych = *++cursor_;
		if (yych == 'c') goto yy975;
		goto yy87;
yy874:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 447 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Wait, I64Wait); }
#line 5245 "src/prebuilt/wast-lexer-gen.cc"
yy876:
		++cursor_;
		if ((yych = *cursor_) <= '9') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy877;
				if (yych <= '/') goto yy86;
				goto yy878;
			}
		} else {
			if (yych <= '_') {
				if (yych == ';') goto yy877;
				if (yych <= '^') goto yy86;
				goto yy976;
			} else {
				if (yych == 'x') goto yy977;
				if (yych <= '~') goto yy86;
			}
		}
yy877:
#line 299 "src/wast-lexer.cc"
		{ RETURN_TEXT_AT(OffsetEqNat, 7); }
#line 5270 "src/prebuilt/wast-lexer-gen.cc"
yy878:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= '/') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
				goto yy877;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy877;
				goto yy86;
			}
		} else {
			if (yych <= ';') {
				if (yych <= '9') goto yy878;
				if (yych <= ':') goto yy86;
				goto yy877;
			} else {
				if (yych == '_') goto yy976;
				if (yych <= '~') goto yy86;
				goto yy877;
			}
		}
yy880:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 531 "src/wast-lexer.cc"
		{ RETURN(Register); }
#line 5302 "src/prebuilt/wast-lexer-gen.cc"
yy882:
		yych = *++cursor_;
		if (yych == 'a') goto yy978;
		goto yy87;
yy883:
		yych = *++cursor_;
		if (yych == 'l') goto yy979;
		goto yy87;
yy884:
		yych = *++cursor_;
		if (yych == 'l') goto yy981;
		goto yy87;
yy885:
		yych = *++cursor_;
		if (yych == 'b') goto yy983;
		goto yy87;
yy886:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy613;
				goto yy86;
			} else {
				if (yych <= ')') goto yy613;
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy886;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy613;
				if (yych <= '@') goto yy86;
				if (yych <= 'F') goto yy886;
				goto yy86;
			} else {
				if (yych <= '`') {
					if (yych <= '_') goto yy762;
					goto yy86;
				} else {
					if (yych <= 'f') goto yy886;
					if (yych <= '~') goto yy86;
					goto yy613;
				}
			}
		}
yy888:
		yych = *++cursor_;
		if (yych == 'h') goto yy984;
		goto yy87;
yy889:
		yych = *++cursor_;
		if (yych == 'v') goto yy985;
		goto yy87;
yy890:
		yych = *++cursor_;
		if (yych == 'l') goto yy986;
		goto yy87;
yy891:
		yych = *++cursor_;
		if (yych == 't') goto yy987;
		goto yy87;
yy892:
		yych = *++cursor_;
		if (yych == 'a') goto yy988;
		goto yy87;
yy893:
		yych = *++cursor_;
		if (yych == 'l') goto yy989;
		goto yy87;
yy894:
		yych = *++cursor_;
		if (yych == 'r') goto yy990;
		goto yy87;
yy895:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 544 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(CatchAll); }
#line 5386 "src/prebuilt/wast-lexer-gen.cc"
yy897:
		yych = *++cursor_;
		if (yych == 'e') goto yy991;
		goto yy87;
yy898:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 303 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Const, F32Const); }
#line 5398 "src/prebuilt/wast-lexer-gen.cc"
yy900:
		yych = *++cursor_;
		if (yych == 'r') goto yy992;
		goto yy87;
yy901:
		yych = *++cursor_;
		if (yych == 'i') goto yy993;
		goto yy87;
yy902:
		yych = *++cursor_;
		if (yych == 'e') goto yy994;
		goto yy87;
yy903:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 321 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Floor); }
#line 5418 "src/prebuilt/wast-lexer-gen.cc"
yy905:
		yych = *++cursor_;
		if (yych == 's') goto yy995;
		goto yy87;
yy906:
		yych = *++cursor_;
		if (yych == 'e') goto yy996;
		goto yy87;
yy907:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 282 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, F32Store); }
#line 5434 "src/prebuilt/wast-lexer-gen.cc"
yy909:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 323 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Trunc); }
#line 5442 "src/prebuilt/wast-lexer-gen.cc"
yy911:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 304 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Const, F64Const); }
#line 5450 "src/prebuilt/wast-lexer-gen.cc"
yy913:
		yych = *++cursor_;
		if (yych == 'r') goto yy997;
		goto yy87;
yy914:
		yych = *++cursor_;
		if (yych == 'i') goto yy998;
		goto yy87;
yy915:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 322 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Floor); }
#line 5466 "src/prebuilt/wast-lexer-gen.cc"
yy917:
		yych = *++cursor_;
		if (yych == 's') goto yy999;
		goto yy87;
yy918:
		yych = *++cursor_;
		if (yych == 't') goto yy1000;
		goto yy87;
yy919:
		yych = *++cursor_;
		if (yych == 'e') goto yy1001;
		goto yy87;
yy920:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 283 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, F64Store); }
#line 5486 "src/prebuilt/wast-lexer-gen.cc"
yy922:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 324 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Trunc); }
#line 5494 "src/prebuilt/wast-lexer-gen.cc"
yy924:
		yych = *++cursor_;
		if (yych == 'l') goto yy1002;
		goto yy87;
yy925:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 271 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(GetLocal); }
#line 5506 "src/prebuilt/wast-lexer-gen.cc"
yy927:
		yych = *++cursor_;
		if (yych == 'r') goto yy1004;
		goto yy87;
yy928:
		yych = *++cursor_;
		if (yych == 'c') goto yy1005;
		goto yy87;
yy929:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 301 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Const, I32Const); }
#line 5522 "src/prebuilt/wast-lexer-gen.cc"
yy931:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 338 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32DivS); }
#line 5530 "src/prebuilt/wast-lexer-gen.cc"
yy933:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 340 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32DivU); }
#line 5538 "src/prebuilt/wast-lexer-gen.cc"
yy935:
		yych = *++cursor_;
		if (yych == 'd') goto yy1006;
		goto yy87;
yy936:
		yych = *++cursor_;
		if (yych == '6') goto yy1007;
		goto yy87;
yy937:
		yych = *++cursor_;
		if (yych == '_') goto yy1008;
		goto yy87;
yy938:
		yych = *++cursor_;
		if (yych == 't') goto yy1009;
		goto yy87;
yy939:
		yych = *++cursor_;
		if (yych == 'e') goto yy1011;
		goto yy87;
yy940:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 342 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32RemS); }
#line 5566 "src/prebuilt/wast-lexer-gen.cc"
yy942:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 344 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32RemU); }
#line 5574 "src/prebuilt/wast-lexer-gen.cc"
yy944:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 354 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32ShrS); }
#line 5582 "src/prebuilt/wast-lexer-gen.cc"
yy946:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 356 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I32ShrU); }
#line 5590 "src/prebuilt/wast-lexer-gen.cc"
yy948:
		++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 yy1012;
				if (yych <= '7') goto yy86;
				goto yy1013;
			} else {
				if (yych == ';') goto yy949;
				if (yych <= '~') goto yy86;
			}
		}
yy949:
#line 280 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I32Store); }
#line 5613 "src/prebuilt/wast-lexer-gen.cc"
yy950:
		yych = *++cursor_;
		if (yych == '_') goto yy1015;
		goto yy87;
yy951:
		yych = *++cursor_;
		if (yych == 'i') goto yy1016;
		goto yy87;
yy952:
		yych = *++cursor_;
		if (yych == 'c') goto yy1017;
		goto yy87;
yy953:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 302 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Const, I64Const); }
#line 5633 "src/prebuilt/wast-lexer-gen.cc"
yy955:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 339 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64DivS); }
#line 5641 "src/prebuilt/wast-lexer-gen.cc"
yy957:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 341 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64DivU); }
#line 5649 "src/prebuilt/wast-lexer-gen.cc"
yy959:
		yych = *++cursor_;
		if (yych == 'd') goto yy1018;
		goto yy87;
yy960:
		yych = *++cursor_;
		if (yych == '6') goto yy1019;
		goto yy87;
yy961:
		yych = *++cursor_;
		if (yych == '2') goto yy1020;
		goto yy87;
yy962:
		yych = *++cursor_;
		if (yych == '_') goto yy1021;
		goto yy87;
yy963:
		yych = *++cursor_;
		if (yych == 't') goto yy1022;
		goto yy87;
yy964:
		yych = *++cursor_;
		if (yych == 'e') goto yy1024;
		goto yy87;
yy965:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 343 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64RemS); }
#line 5681 "src/prebuilt/wast-lexer-gen.cc"
yy967:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 345 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64RemU); }
#line 5689 "src/prebuilt/wast-lexer-gen.cc"
yy969:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 355 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64ShrS); }
#line 5697 "src/prebuilt/wast-lexer-gen.cc"
yy971:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 357 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, I64ShrU); }
#line 5705 "src/prebuilt/wast-lexer-gen.cc"
yy973:
		++cursor_;
		if ((yych = *cursor_) <= '1') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy974;
				if (yych <= '0') goto yy86;
				goto yy1025;
			}
		} else {
			if (yych <= '8') {
				if (yych == '3') goto yy1026;
				if (yych <= '7') goto yy86;
				goto yy1027;
			} else {
				if (yych == ';') goto yy974;
				if (yych <= '~') goto yy86;
			}
		}
yy974:
#line 281 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I64Store); }
#line 5730 "src/prebuilt/wast-lexer-gen.cc"
yy975:
		yych = *++cursor_;
		if (yych == '_') goto yy1029;
		goto yy87;
yy976:
		++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 yy878;
				goto yy86;
			} else {
				if (yych <= ';') goto yy88;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy977:
		++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 yy1030;
			}
		} else {
			if (yych <= 'F') {
				if (yych == ';') goto yy88;
				if (yych <= '@') goto yy86;
				goto yy1030;
			} else {
				if (yych <= '`') goto yy86;
				if (yych <= 'f') goto yy1030;
				if (yych <= '~') goto yy86;
				goto yy88;
			}
		}
yy978:
		yych = *++cursor_;
		if (yych == 'l') goto yy1032;
		goto yy87;
yy979:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 272 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(SetLocal); }
#line 5796 "src/prebuilt/wast-lexer-gen.cc"
yy981:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 273 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(TeeLocal); }
#line 5804 "src/prebuilt/wast-lexer-gen.cc"
yy983:
		yych = *++cursor_;
		if (yych == 'l') goto yy1034;
		goto yy87;
yy984:
		yych = *++cursor_;
		if (yych == 'a') goto yy1035;
		goto yy87;
yy985:
		yych = *++cursor_;
		if (yych == 'a') goto yy1036;
		goto yy87;
yy986:
		yych = *++cursor_;
		if (yych == 'f') goto yy1037;
		goto yy87;
yy987:
		yych = *++cursor_;
		if (yych == 'u') goto yy1038;
		goto yy87;
yy988:
		yych = *++cursor_;
		if (yych == 'p') goto yy1039;
		goto yy87;
yy989:
		yych = *++cursor_;
		if (yych == 'i') goto yy1041;
		goto yy87;
yy990:
		yych = *++cursor_;
		if (yych == 'e') goto yy1042;
		goto yy87;
yy991:
		yych = *++cursor_;
		if (yych == 'm') goto yy1043;
		goto yy87;
yy992:
		yych = *++cursor_;
		if (yych == 't') goto yy1044;
		goto yy87;
yy993:
		yych = *++cursor_;
		if (yych == 'g') goto yy1045;
		goto yy87;
yy994:
		yych = *++cursor_;
		if (yych == '/') goto yy1046;
		goto yy87;
yy995:
		yych = *++cursor_;
		if (yych == 't') goto yy1047;
		goto yy87;
yy996:
		yych = *++cursor_;
		if (yych == 'r') goto yy1049;
		goto yy87;
yy997:
		yych = *++cursor_;
		if (yych == 't') goto yy1050;
		goto yy87;
yy998:
		yych = *++cursor_;
		if (yych == 'g') goto yy1051;
		goto yy87;
yy999:
		yych = *++cursor_;
		if (yych == 't') goto yy1052;
		goto yy87;
yy1000:
		yych = *++cursor_;
		if (yych == 'e') goto yy1054;
		goto yy87;
yy1001:
		yych = *++cursor_;
		if (yych == 'r') goto yy1055;
		goto yy87;
yy1002:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 274 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(GetGlobal); }
#line 5888 "src/prebuilt/wast-lexer-gen.cc"
yy1004:
		yych = *++cursor_;
		if (yych == 'y') goto yy1056;
		goto yy87;
yy1005:
		yych = *++cursor_;
		if (yych == '.') goto yy1058;
		goto yy87;
yy1006:
		yych = *++cursor_;
		if (yych == '1') goto yy1059;
		if (yych == '8') goto yy1060;
		goto yy87;
yy1007:
		yych = *++cursor_;
		if (yych == '_') goto yy1061;
		goto yy87;
yy1008:
		yych = *++cursor_;
		if (yych == 's') goto yy1062;
		if (yych == 'u') goto yy1064;
		goto yy87;
yy1009:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 311 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Popcnt); }
#line 5918 "src/prebuilt/wast-lexer-gen.cc"
yy1011:
		yych = *++cursor_;
		if (yych == 'r') goto yy1066;
		goto yy87;
yy1012:
		yych = *++cursor_;
		if (yych == '6') goto yy1067;
		goto yy87;
yy1013:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 294 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I32Store8); }
#line 5934 "src/prebuilt/wast-lexer-gen.cc"
yy1015:
		yych = *++cursor_;
		if (yych == 's') goto yy1069;
		if (yych == 'u') goto yy1070;
		goto yy87;
yy1016:
		yych = *++cursor_;
		if (yych == '6') goto yy1071;
		goto yy87;
yy1017:
		yych = *++cursor_;
		if (yych == '.') goto yy1072;
		goto yy87;
yy1018:
		yych = *++cursor_;
		if (yych <= '3') {
			if (yych == '1') goto yy1073;
			if (yych <= '2') goto yy87;
			goto yy1074;
		} else {
			if (yych <= '8') {
				if (yych <= '7') goto yy87;
				goto yy1075;
			} else {
				if (yych == '_') goto yy1076;
				goto yy87;
			}
		}
yy1019:
		yych = *++cursor_;
		if (yych == '_') goto yy1077;
		goto yy87;
yy1020:
		yych = *++cursor_;
		if (yych == '_') goto yy1078;
		goto yy87;
yy1021:
		yych = *++cursor_;
		if (yych == 's') goto yy1079;
		if (yych == 'u') goto yy1081;
		goto yy87;
yy1022:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 312 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Popcnt); }
#line 5983 "src/prebuilt/wast-lexer-gen.cc"
yy1024:
		yych = *++cursor_;
		if (yych == 'r') goto yy1083;
		goto yy87;
yy1025:
		yych = *++cursor_;
		if (yych == '6') goto yy1084;
		goto yy87;
yy1026:
		yych = *++cursor_;
		if (yych == '2') goto yy1086;
		goto yy87;
yy1027:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 295 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I64Store8); }
#line 6003 "src/prebuilt/wast-lexer-gen.cc"
yy1029:
		yych = *++cursor_;
		if (yych == 's') goto yy1088;
		if (yych == 'u') goto yy1089;
		goto yy87;
yy1030:
		++cursor_;
		if (limit_ <= cursor_) FILL(1);
		yych = *cursor_;
		if (yych <= ':') {
			if (yych <= '\'') {
				if (yych == '!') goto yy86;
				if (yych <= '"') goto yy877;
				goto yy86;
			} else {
				if (yych <= ')') goto yy877;
				if (yych <= '/') goto yy86;
				if (yych <= '9') goto yy1030;
				goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych <= ';') goto yy877;
				if (yych <= '@') goto yy86;
				if (yych <= 'F') goto yy1030;
				goto yy86;
			} else {
				if (yych <= '`') {
					if (yych <= '_') goto yy977;
					goto yy86;
				} else {
					if (yych <= 'f') goto yy1030;
					if (yych <= '~') goto yy86;
					goto yy877;
				}
			}
		}
yy1032:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 275 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(SetGlobal); }
#line 6048 "src/prebuilt/wast-lexer-gen.cc"
yy1034:
		yych = *++cursor_;
		if (yych == 'e') goto yy1090;
		goto yy87;
yy1035:
		yych = *++cursor_;
		if (yych == 'u') goto yy1092;
		goto yy87;
yy1036:
		yych = *++cursor_;
		if (yych == 'l') goto yy1093;
		goto yy87;
yy1037:
		yych = *++cursor_;
		if (yych == 'o') goto yy1094;
		goto yy87;
yy1038:
		yych = *++cursor_;
		if (yych == 'r') goto yy1095;
		goto yy87;
yy1039:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 540 "src/wast-lexer.cc"
		{ RETURN(AssertTrap); }
#line 6076 "src/prebuilt/wast-lexer-gen.cc"
yy1041:
		yych = *++cursor_;
		if (yych == 'n') goto yy1096;
		goto yy87;
yy1042:
		yych = *++cursor_;
		if (yych == 'c') goto yy1097;
		goto yy87;
yy1043:
		yych = *++cursor_;
		if (yych == 'o') goto yy1098;
		goto yy87;
yy1044:
		yych = *++cursor_;
		if (yych == '_') goto yy1099;
		goto yy87;
yy1045:
		yych = *++cursor_;
		if (yych == 'n') goto yy1100;
		goto yy87;
yy1046:
		yych = *++cursor_;
		if (yych == 'f') goto yy1102;
		goto yy87;
yy1047:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 325 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F32Nearest); }
#line 6108 "src/prebuilt/wast-lexer-gen.cc"
yy1049:
		yych = *++cursor_;
		if (yych == 'p') goto yy1103;
		goto yy87;
yy1050:
		yych = *++cursor_;
		if (yych == '_') goto yy1104;
		goto yy87;
yy1051:
		yych = *++cursor_;
		if (yych == 'n') goto yy1105;
		goto yy87;
yy1052:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 326 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, F64Nearest); }
#line 6128 "src/prebuilt/wast-lexer-gen.cc"
yy1054:
		yych = *++cursor_;
		if (yych == '/') goto yy1107;
		goto yy87;
yy1055:
		yych = *++cursor_;
		if (yych == 'p') goto yy1108;
		goto yy87;
yy1056:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 444 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(GrowMemory); }
#line 6144 "src/prebuilt/wast-lexer-gen.cc"
yy1058:
		yych = *++cursor_;
		if (yych <= 'q') {
			if (yych == 'l') goto yy1109;
			goto yy87;
		} else {
			if (yych <= 'r') goto yy1110;
			if (yych <= 's') goto yy1111;
			goto yy87;
		}
yy1059:
		yych = *++cursor_;
		if (yych == '6') goto yy1112;
		goto yy87;
yy1060:
		yych = *++cursor_;
		if (yych == '_') goto yy1113;
		goto yy87;
yy1061:
		yych = *++cursor_;
		if (yych == 's') goto yy1114;
		if (yych == 'u') goto yy1116;
		goto yy87;
yy1062:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 284 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load8S); }
#line 6175 "src/prebuilt/wast-lexer-gen.cc"
yy1064:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 286 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load8U); }
#line 6183 "src/prebuilt/wast-lexer-gen.cc"
yy1066:
		yych = *++cursor_;
		if (yych == 'p') goto yy1118;
		goto yy87;
yy1067:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 296 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I32Store16); }
#line 6195 "src/prebuilt/wast-lexer-gen.cc"
yy1069:
		yych = *++cursor_;
		if (yych == '/') goto yy1119;
		if (yych == ':') goto yy1120;
		goto yy87;
yy1070:
		yych = *++cursor_;
		if (yych == '/') goto yy1121;
		if (yych == ':') goto yy1122;
		goto yy87;
yy1071:
		yych = *++cursor_;
		if (yych == '4') goto yy1123;
		goto yy87;
yy1072:
		yych = *++cursor_;
		if (yych <= 'q') {
			if (yych == 'l') goto yy1125;
			goto yy87;
		} else {
			if (yych <= 'r') goto yy1126;
			if (yych <= 's') goto yy1127;
			goto yy87;
		}
yy1073:
		yych = *++cursor_;
		if (yych == '6') goto yy1128;
		goto yy87;
yy1074:
		yych = *++cursor_;
		if (yych == '2') goto yy1129;
		goto yy87;
yy1075:
		yych = *++cursor_;
		if (yych == '_') goto yy1130;
		goto yy87;
yy1076:
		yych = *++cursor_;
		if (yych == 's') goto yy1131;
		if (yych == 'u') goto yy1132;
		goto yy87;
yy1077:
		yych = *++cursor_;
		if (yych == 's') goto yy1133;
		if (yych == 'u') goto yy1135;
		goto yy87;
yy1078:
		yych = *++cursor_;
		if (yych == 's') goto yy1137;
		if (yych == 'u') goto yy1139;
		goto yy87;
yy1079:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 285 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load8S); }
#line 6254 "src/prebuilt/wast-lexer-gen.cc"
yy1081:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 287 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load8U); }
#line 6262 "src/prebuilt/wast-lexer-gen.cc"
yy1083:
		yych = *++cursor_;
		if (yych == 'p') goto yy1141;
		goto yy87;
yy1084:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 297 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I64Store16); }
#line 6274 "src/prebuilt/wast-lexer-gen.cc"
yy1086:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 298 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Store, I64Store32); }
#line 6282 "src/prebuilt/wast-lexer-gen.cc"
yy1088:
		yych = *++cursor_;
		if (yych == '/') goto yy1142;
		if (yych == ':') goto yy1143;
		goto yy87;
yy1089:
		yych = *++cursor_;
		if (yych == '/') goto yy1144;
		if (yych == ':') goto yy1145;
		goto yy87;
yy1090:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 442 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(Unreachable); }
#line 6300 "src/prebuilt/wast-lexer-gen.cc"
yy1092:
		yych = *++cursor_;
		if (yych == 's') goto yy1146;
		goto yy87;
yy1093:
		yych = *++cursor_;
		if (yych == 'i') goto yy1147;
		goto yy87;
yy1094:
		yych = *++cursor_;
		if (yych == 'r') goto yy1148;
		goto yy87;
yy1095:
		yych = *++cursor_;
		if (yych == 'n') goto yy1149;
		goto yy87;
yy1096:
		yych = *++cursor_;
		if (yych == 'k') goto yy1151;
		goto yy87;
yy1097:
		yych = *++cursor_;
		if (yych == 't') goto yy1152;
		goto yy87;
yy1098:
		yych = *++cursor_;
		if (yych == 'r') goto yy1154;
		goto yy87;
yy1099:
		yych = *++cursor_;
		if (yych == 's') goto yy1155;
		if (yych == 'u') goto yy1156;
		goto yy87;
yy1100:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 374 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F32Copysign); }
#line 6341 "src/prebuilt/wast-lexer-gen.cc"
yy1102:
		yych = *++cursor_;
		if (yych == '6') goto yy1157;
		goto yy87;
yy1103:
		yych = *++cursor_;
		if (yych == 'r') goto yy1158;
		goto yy87;
yy1104:
		yych = *++cursor_;
		if (yych == 's') goto yy1159;
		if (yych == 'u') goto yy1160;
		goto yy87;
yy1105:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 375 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Binary, F64Copysign); }
#line 6362 "src/prebuilt/wast-lexer-gen.cc"
yy1107:
		yych = *++cursor_;
		if (yych == 'f') goto yy1161;
		goto yy87;
yy1108:
		yych = *++cursor_;
		if (yych == 'r') goto yy1162;
		goto yy87;
yy1109:
		yych = *++cursor_;
		if (yych == 'o') goto yy1163;
		goto yy87;
yy1110:
		yych = *++cursor_;
		if (yych == 'm') goto yy1164;
		goto yy87;
yy1111:
		yych = *++cursor_;
		if (yych == 't') goto yy1165;
		goto yy87;
yy1112:
		yych = *++cursor_;
		if (yych == '_') goto yy1166;
		goto yy87;
yy1113:
		yych = *++cursor_;
		if (yych == 's') goto yy1167;
		goto yy87;
yy1114:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 288 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load16S); }
#line 6398 "src/prebuilt/wast-lexer-gen.cc"
yy1116:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 290 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I32Load16U); }
#line 6406 "src/prebuilt/wast-lexer-gen.cc"
yy1118:
		yych = *++cursor_;
		if (yych == 'r') goto yy1169;
		goto yy87;
yy1119:
		yych = *++cursor_;
		if (yych == 'f') goto yy1170;
		goto yy87;
yy1120:
		yych = *++cursor_;
		if (yych == 's') goto yy1171;
		goto yy87;
yy1121:
		yych = *++cursor_;
		if (yych == 'f') goto yy1172;
		goto yy87;
yy1122:
		yych = *++cursor_;
		if (yych == 's') goto yy1173;
		goto yy87;
yy1123:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 410 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32WrapI64); }
#line 6434 "src/prebuilt/wast-lexer-gen.cc"
yy1125:
		yych = *++cursor_;
		if (yych == 'o') goto yy1174;
		goto yy87;
yy1126:
		yych = *++cursor_;
		if (yych == 'm') goto yy1175;
		goto yy87;
yy1127:
		yych = *++cursor_;
		if (yych == 't') goto yy1176;
		goto yy87;
yy1128:
		yych = *++cursor_;
		if (yych == '_') goto yy1177;
		goto yy87;
yy1129:
		yych = *++cursor_;
		if (yych == '_') goto yy1178;
		goto yy87;
yy1130:
		yych = *++cursor_;
		if (yych == 's') goto yy1179;
		goto yy87;
yy1131:
		yych = *++cursor_;
		if (yych == '/') goto yy1181;
		goto yy87;
yy1132:
		yych = *++cursor_;
		if (yych == '/') goto yy1182;
		goto yy87;
yy1133:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 289 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load16S); }
#line 6474 "src/prebuilt/wast-lexer-gen.cc"
yy1135:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 291 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load16U); }
#line 6482 "src/prebuilt/wast-lexer-gen.cc"
yy1137:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 292 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load32S); }
#line 6490 "src/prebuilt/wast-lexer-gen.cc"
yy1139:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 293 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Load, I64Load32U); }
#line 6498 "src/prebuilt/wast-lexer-gen.cc"
yy1141:
		yych = *++cursor_;
		if (yych == 'r') goto yy1183;
		goto yy87;
yy1142:
		yych = *++cursor_;
		if (yych == 'f') goto yy1184;
		goto yy87;
yy1143:
		yych = *++cursor_;
		if (yych == 's') goto yy1185;
		goto yy87;
yy1144:
		yych = *++cursor_;
		if (yych == 'f') goto yy1186;
		goto yy87;
yy1145:
		yych = *++cursor_;
		if (yych == 's') goto yy1187;
		goto yy87;
yy1146:
		yych = *++cursor_;
		if (yych == 't') goto yy1188;
		goto yy87;
yy1147:
		yych = *++cursor_;
		if (yych == 'd') goto yy1189;
		goto yy87;
yy1148:
		yych = *++cursor_;
		if (yych == 'm') goto yy1191;
		goto yy87;
yy1149:
		++cursor_;
		if ((yych = *cursor_) <= ')') {
			if (yych <= '!') {
				if (yych >= '!') goto yy86;
			} else {
				if (yych <= '"') goto yy1150;
				if (yych <= '\'') goto yy86;
			}
		} else {
			if (yych <= '^') {
				if (yych != ';') goto yy86;
			} else {
				if (yych <= '_') goto yy1192;
				if (yych <= '~') goto yy86;
			}
		}
yy1150:
#line 537 "src/wast-lexer.cc"
		{ RETURN(AssertReturn); }
#line 6551 "src/prebuilt/wast-lexer-gen.cc"
yy1151:
		yych = *++cursor_;
		if (yych == 'a') goto yy1193;
		goto yy87;
yy1152:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 267 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(CallIndirect); }
#line 6563 "src/prebuilt/wast-lexer-gen.cc"
yy1154:
		yych = *++cursor_;
		if (yych == 'y') goto yy1194;
		goto yy87;
yy1155:
		yych = *++cursor_;
		if (yych == '/') goto yy1196;
		goto yy87;
yy1156:
		yych = *++cursor_;
		if (yych == '/') goto yy1197;
		goto yy87;
yy1157:
		yych = *++cursor_;
		if (yych == '4') goto yy1198;
		goto yy87;
yy1158:
		yych = *++cursor_;
		if (yych == 'e') goto yy1200;
		goto yy87;
yy1159:
		yych = *++cursor_;
		if (yych == '/') goto yy1201;
		goto yy87;
yy1160:
		yych = *++cursor_;
		if (yych == '/') goto yy1202;
		goto yy87;
yy1161:
		yych = *++cursor_;
		if (yych == '3') goto yy1203;
		goto yy87;
yy1162:
		yych = *++cursor_;
		if (yych == 'e') goto yy1204;
		goto yy87;
yy1163:
		yych = *++cursor_;
		if (yych == 'a') goto yy1205;
		goto yy87;
yy1164:
		yych = *++cursor_;
		if (yych == 'w') goto yy1206;
		goto yy87;
yy1165:
		yych = *++cursor_;
		if (yych == 'o') goto yy1207;
		goto yy87;
yy1166:
		yych = *++cursor_;
		if (yych == 's') goto yy1208;
		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 yy1210;
		goto yy87;
yy1170:
		yych = *++cursor_;
		if (yych == '3') goto yy1211;
		if (yych == '6') goto yy1212;
		goto yy87;
yy1171:
		yych = *++cursor_;
		if (yych == 'a') goto yy1213;
		goto yy87;
yy1172:
		yych = *++cursor_;
		if (yych == '3') goto yy1214;
		if (yych == '6') goto yy1215;
		goto yy87;
yy1173:
		yych = *++cursor_;
		if (yych == 'a') goto yy1216;
		goto yy87;
yy1174:
		yych = *++cursor_;
		if (yych == 'a') goto yy1217;
		goto yy87;
yy1175:
		yych = *++cursor_;
		if (yych == 'w') goto yy1218;
		goto yy87;
yy1176:
		yych = *++cursor_;
		if (yych == 'o') goto yy1219;
		goto yy87;
yy1177:
		yych = *++cursor_;
		if (yych == 's') goto yy1220;
		goto yy87;
yy1178:
		yych = *++cursor_;
		if (yych == 's') goto yy1222;
		goto yy87;
yy1179:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 329 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Extend8S); }
#line 6673 "src/prebuilt/wast-lexer-gen.cc"
yy1181:
		yych = *++cursor_;
		if (yych == 'i') goto yy1224;
		goto yy87;
yy1182:
		yych = *++cursor_;
		if (yych == 'i') goto yy1225;
		goto yy87;
yy1183:
		yych = *++cursor_;
		if (yych == 'e') goto yy1226;
		goto yy87;
yy1184:
		yych = *++cursor_;
		if (yych == '3') goto yy1227;
		if (yych == '6') goto yy1228;
		goto yy87;
yy1185:
		yych = *++cursor_;
		if (yych == 'a') goto yy1229;
		goto yy87;
yy1186:
		yych = *++cursor_;
		if (yych == '3') goto yy1230;
		if (yych == '6') goto yy1231;
		goto yy87;
yy1187:
		yych = *++cursor_;
		if (yych == 'a') goto yy1232;
		goto yy87;
yy1188:
		yych = *++cursor_;
		if (yych == 'i') goto yy1233;
		goto yy87;
yy1189:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 535 "src/wast-lexer.cc"
		{ RETURN(AssertInvalid); }
#line 6715 "src/prebuilt/wast-lexer-gen.cc"
yy1191:
		yych = *++cursor_;
		if (yych == 'e') goto yy1234;
		goto yy87;
yy1192:
		yych = *++cursor_;
		if (yych == 'a') goto yy1235;
		if (yych == 'c') goto yy1236;
		goto yy87;
yy1193:
		yych = *++cursor_;
		if (yych == 'b') goto yy1237;
		goto yy87;
yy1194:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 443 "src/wast-lexer.cc"
		{ RETURN_OPCODE0(CurrentMemory); }
#line 6736 "src/prebuilt/wast-lexer-gen.cc"
yy1196:
		yych = *++cursor_;
		if (yych == 'i') goto yy1238;
		goto yy87;
yy1197:
		yych = *++cursor_;
		if (yych == 'i') goto yy1239;
		goto yy87;
yy1198:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 436 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32DemoteF64); }
#line 6752 "src/prebuilt/wast-lexer-gen.cc"
yy1200:
		yych = *++cursor_;
		if (yych == 't') goto yy1240;
		goto yy87;
yy1201:
		yych = *++cursor_;
		if (yych == 'i') goto yy1241;
		goto yy87;
yy1202:
		yych = *++cursor_;
		if (yych == 'i') goto yy1242;
		goto yy87;
yy1203:
		yych = *++cursor_;
		if (yych == '2') goto yy1243;
		goto yy87;
yy1204:
		yych = *++cursor_;
		if (yych == 't') goto yy1245;
		goto yy87;
yy1205:
		yych = *++cursor_;
		if (yych == 'd') goto yy1246;
		goto yy87;
yy1206:
		yych = *++cursor_;
		if (yych <= '0') {
			if (yych == '.') goto yy1248;
			goto yy87;
		} else {
			if (yych <= '1') goto yy1249;
			if (yych == '8') goto yy1250;
			goto yy87;
		}
yy1207:
		yych = *++cursor_;
		if (yych == 'r') goto yy1251;
		goto yy87;
yy1208:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 328 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I32Extend16S); }
#line 6798 "src/prebuilt/wast-lexer-gen.cc"
yy1210:
		yych = *++cursor_;
		if (yych == 't') goto yy1252;
		goto yy87;
yy1211:
		yych = *++cursor_;
		if (yych == '2') goto yy1253;
		goto yy87;
yy1212:
		yych = *++cursor_;
		if (yych == '4') goto yy1255;
		goto yy87;
yy1213:
		yych = *++cursor_;
		if (yych == 't') goto yy1257;
		goto yy87;
yy1214:
		yych = *++cursor_;
		if (yych == '2') goto yy1258;
		goto yy87;
yy1215:
		yych = *++cursor_;
		if (yych == '4') goto yy1260;
		goto yy87;
yy1216:
		yych = *++cursor_;
		if (yych == 't') goto yy1262;
		goto yy87;
yy1217:
		yych = *++cursor_;
		if (yych == 'd') goto yy1263;
		goto yy87;
yy1218:
		yych = *++cursor_;
		switch (yych) {
		case '.':	goto yy1265;
		case '1':	goto yy1266;
		case '3':	goto yy1267;
		case '8':	goto yy1268;
		default:	goto yy87;
		}
yy1219:
		yych = *++cursor_;
		if (yych == 'r') goto yy1269;
		goto yy87;
yy1220:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 330 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Extend16S); }
#line 6851 "src/prebuilt/wast-lexer-gen.cc"
yy1222:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 331 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Unary, I64Extend32S); }
#line 6859 "src/prebuilt/wast-lexer-gen.cc"
yy1224:
		yych = *++cursor_;
		if (yych == '3') goto yy1270;
		goto yy87;
yy1225:
		yych = *++cursor_;
		if (yych == '3') goto yy1271;
		goto yy87;
yy1226:
		yych = *++cursor_;
		if (yych == 't') goto yy1272;
		goto yy87;
yy1227:
		yych = *++cursor_;
		if (yych == '2') goto yy1273;
		goto yy87;
yy1228:
		yych = *++cursor_;
		if (yych == '4') goto yy1275;
		goto yy87;
yy1229:
		yych = *++cursor_;
		if (yych == 't') goto yy1277;
		goto yy87;
yy1230:
		yych = *++cursor_;
		if (yych == '2') goto yy1278;
		goto yy87;
yy1231:
		yych = *++cursor_;
		if (yych == '4') goto yy1280;
		goto yy87;
yy1232:
		yych = *++cursor_;
		if (yych == 't') goto yy1282;
		goto yy87;
yy1233:
		yych = *++cursor_;
		if (yych == 'o') goto yy1283;
		goto yy87;
yy1234:
		yych = *++cursor_;
		if (yych == 'd') goto yy1284;
		goto yy87;
yy1235:
		yych = *++cursor_;
		if (yych == 'r') goto yy1286;
		goto yy87;
yy1236:
		yych = *++cursor_;
		if (yych == 'a') goto yy1287;
		goto yy87;
yy1237:
		yych = *++cursor_;
		if (yych == 'l') goto yy1288;
		goto yy87;
yy1238:
		yych = *++cursor_;
		if (yych == '3') goto yy1289;
		if (yych == '6') goto yy1290;
		goto yy87;
yy1239:
		yych = *++cursor_;
		if (yych == '3') goto yy1291;
		if (yych == '6') goto yy1292;
		goto yy87;
yy1240:
		yych = *++cursor_;
		if (yych == '/') goto yy1293;
		goto yy87;
yy1241:
		yych = *++cursor_;
		if (yych == '3') goto yy1294;
		if (yych == '6') goto yy1295;
		goto yy87;
yy1242:
		yych = *++cursor_;
		if (yych == '3') goto yy1296;
		if (yych == '6') goto yy1297;
		goto yy87;
yy1243:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 435 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64PromoteF32); }
#line 6947 "src/prebuilt/wast-lexer-gen.cc"
yy1245:
		yych = *++cursor_;
		if (yych == '/') goto yy1298;
		goto yy87;
yy1246:
		++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 yy1299;
				if (yych <= '7') goto yy86;
				goto yy1300;
			} else {
				if (yych == ';') goto yy1247;
				if (yych <= '~') goto yy86;
			}
		}
yy1247:
#line 449 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I32AtomicLoad); }
#line 6974 "src/prebuilt/wast-lexer-gen.cc"
yy1248:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1301;
		case 'c':	goto yy1302;
		case 'o':	goto yy1303;
		case 's':	goto yy1304;
		case 'x':	goto yy1305;
		default:	goto yy87;
		}
yy1249:
		yych = *++cursor_;
		if (yych == '6') goto yy1306;
		goto yy87;
yy1250:
		yych = *++cursor_;
		if (yych == '_') goto yy1307;
		goto yy87;
yy1251:
		yych = *++cursor_;
		if (yych == 'e') goto yy1308;
		goto yy87;
yy1252:
		yych = *++cursor_;
		if (yych == '/') goto yy1310;
		goto yy87;
yy1253:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 411 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncSF32); }
#line 7008 "src/prebuilt/wast-lexer-gen.cc"
yy1255:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 413 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncSF64); }
#line 7016 "src/prebuilt/wast-lexer-gen.cc"
yy1257:
		yych = *++cursor_;
		if (yych == '/') goto yy1311;
		goto yy87;
yy1258:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 415 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncUF32); }
#line 7028 "src/prebuilt/wast-lexer-gen.cc"
yy1260:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 417 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncUF64); }
#line 7036 "src/prebuilt/wast-lexer-gen.cc"
yy1262:
		yych = *++cursor_;
		if (yych == '/') goto yy1312;
		goto yy87;
yy1263:
		++cursor_;
		if ((yych = *cursor_) <= '1') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy1264;
				if (yych <= '0') goto yy86;
				goto yy1313;
			}
		} else {
			if (yych <= '8') {
				if (yych == '3') goto yy1314;
				if (yych <= '7') goto yy86;
				goto yy1315;
			} else {
				if (yych == ';') goto yy1264;
				if (yych <= '~') goto yy86;
			}
		}
yy1264:
#line 450 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I64AtomicLoad); }
#line 7065 "src/prebuilt/wast-lexer-gen.cc"
yy1265:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1316;
		case 'c':	goto yy1317;
		case 'o':	goto yy1318;
		case 's':	goto yy1319;
		case 'x':	goto yy1320;
		default:	goto yy87;
		}
yy1266:
		yych = *++cursor_;
		if (yych == '6') goto yy1321;
		goto yy87;
yy1267:
		yych = *++cursor_;
		if (yych == '2') goto yy1322;
		goto yy87;
yy1268:
		yych = *++cursor_;
		if (yych == '_') goto yy1323;
		goto yy87;
yy1269:
		yych = *++cursor_;
		if (yych == 'e') goto yy1324;
		goto yy87;
yy1270:
		yych = *++cursor_;
		if (yych == '2') goto yy1326;
		goto yy87;
yy1271:
		yych = *++cursor_;
		if (yych == '2') goto yy1328;
		goto yy87;
yy1272:
		yych = *++cursor_;
		if (yych == '/') goto yy1330;
		goto yy87;
yy1273:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 412 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncSF32); }
#line 7111 "src/prebuilt/wast-lexer-gen.cc"
yy1275:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 414 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncSF64); }
#line 7119 "src/prebuilt/wast-lexer-gen.cc"
yy1277:
		yych = *++cursor_;
		if (yych == '/') goto yy1331;
		goto yy87;
yy1278:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 416 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncUF32); }
#line 7131 "src/prebuilt/wast-lexer-gen.cc"
yy1280:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 418 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncUF64); }
#line 7139 "src/prebuilt/wast-lexer-gen.cc"
yy1282:
		yych = *++cursor_;
		if (yych == '/') goto yy1332;
		goto yy87;
yy1283:
		yych = *++cursor_;
		if (yych == 'n') goto yy1333;
		goto yy87;
yy1284:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 534 "src/wast-lexer.cc"
		{ RETURN(AssertMalformed); }
#line 7155 "src/prebuilt/wast-lexer-gen.cc"
yy1286:
		yych = *++cursor_;
		if (yych == 'i') goto yy1335;
		goto yy87;
yy1287:
		yych = *++cursor_;
		if (yych == 'n') goto yy1336;
		goto yy87;
yy1288:
		yych = *++cursor_;
		if (yych == 'e') goto yy1337;
		goto yy87;
yy1289:
		yych = *++cursor_;
		if (yych == '2') goto yy1339;
		goto yy87;
yy1290:
		yych = *++cursor_;
		if (yych == '4') goto yy1341;
		goto yy87;
yy1291:
		yych = *++cursor_;
		if (yych == '2') goto yy1343;
		goto yy87;
yy1292:
		yych = *++cursor_;
		if (yych == '4') goto yy1345;
		goto yy87;
yy1293:
		yych = *++cursor_;
		if (yych == 'i') goto yy1347;
		goto yy87;
yy1294:
		yych = *++cursor_;
		if (yych == '2') goto yy1348;
		goto yy87;
yy1295:
		yych = *++cursor_;
		if (yych == '4') goto yy1350;
		goto yy87;
yy1296:
		yych = *++cursor_;
		if (yych == '2') goto yy1352;
		goto yy87;
yy1297:
		yych = *++cursor_;
		if (yych == '4') goto yy1354;
		goto yy87;
yy1298:
		yych = *++cursor_;
		if (yych == 'i') goto yy1356;
		goto yy87;
yy1299:
		yych = *++cursor_;
		if (yych == '6') goto yy1357;
		goto yy87;
yy1300:
		yych = *++cursor_;
		if (yych == '_') goto yy1358;
		goto yy87;
yy1301:
		yych = *++cursor_;
		if (yych == 'd') goto yy1359;
		if (yych == 'n') goto yy1360;
		goto yy87;
yy1302:
		yych = *++cursor_;
		if (yych == 'm') goto yy1361;
		goto yy87;
yy1303:
		yych = *++cursor_;
		if (yych == 'r') goto yy1362;
		goto yy87;
yy1304:
		yych = *++cursor_;
		if (yych == 'u') goto yy1364;
		goto yy87;
yy1305:
		yych = *++cursor_;
		if (yych == 'c') goto yy1365;
		if (yych == 'o') goto yy1366;
		goto yy87;
yy1306:
		yych = *++cursor_;
		if (yych == '_') goto yy1367;
		goto yy87;
yy1307:
		yych = *++cursor_;
		if (yych == 'u') goto yy1368;
		goto yy87;
yy1308:
		++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 yy1369;
				if (yych <= '7') goto yy86;
				goto yy1370;
			} else {
				if (yych == ';') goto yy1309;
				if (yych <= '~') goto yy86;
			}
		}
yy1309:
#line 456 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I32AtomicStore); }
#line 7268 "src/prebuilt/wast-lexer-gen.cc"
yy1310:
		yych = *++cursor_;
		if (yych == 'f') goto yy1372;
		goto yy87;
yy1311:
		yych = *++cursor_;
		if (yych == 'f') goto yy1373;
		goto yy87;
yy1312:
		yych = *++cursor_;
		if (yych == 'f') goto yy1374;
		goto yy87;
yy1313:
		yych = *++cursor_;
		if (yych == '6') goto yy1375;
		goto yy87;
yy1314:
		yych = *++cursor_;
		if (yych == '2') goto yy1376;
		goto yy87;
yy1315:
		yych = *++cursor_;
		if (yych == '_') goto yy1377;
		goto yy87;
yy1316:
		yych = *++cursor_;
		if (yych == 'd') goto yy1378;
		if (yych == 'n') goto yy1379;
		goto yy87;
yy1317:
		yych = *++cursor_;
		if (yych == 'm') goto yy1380;
		goto yy87;
yy1318:
		yych = *++cursor_;
		if (yych == 'r') goto yy1381;
		goto yy87;
yy1319:
		yych = *++cursor_;
		if (yych == 'u') goto yy1383;
		goto yy87;
yy1320:
		yych = *++cursor_;
		if (yych == 'c') goto yy1384;
		if (yych == 'o') goto yy1385;
		goto yy87;
yy1321:
		yych = *++cursor_;
		if (yych == '_') goto yy1386;
		goto yy87;
yy1322:
		yych = *++cursor_;
		if (yych == '_') goto yy1387;
		goto yy87;
yy1323:
		yych = *++cursor_;
		if (yych == 'u') goto yy1388;
		goto yy87;
yy1324:
		++cursor_;
		if ((yych = *cursor_) <= '1') {
			if (yych <= '"') {
				if (yych == '!') goto yy86;
			} else {
				if (yych <= '\'') goto yy86;
				if (yych <= ')') goto yy1325;
				if (yych <= '0') goto yy86;
				goto yy1389;
			}
		} else {
			if (yych <= '8') {
				if (yych == '3') goto yy1390;
				if (yych <= '7') goto yy86;
				goto yy1391;
			} else {
				if (yych == ';') goto yy1325;
				if (yych <= '~') goto yy86;
			}
		}
yy1325:
#line 457 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I64AtomicStore); }
#line 7351 "src/prebuilt/wast-lexer-gen.cc"
yy1326:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 408 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64ExtendSI32); }
#line 7359 "src/prebuilt/wast-lexer-gen.cc"
yy1328:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 409 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64ExtendUI32); }
#line 7367 "src/prebuilt/wast-lexer-gen.cc"
yy1330:
		yych = *++cursor_;
		if (yych == 'f') goto yy1393;
		goto yy87;
yy1331:
		yych = *++cursor_;
		if (yych == 'f') goto yy1394;
		goto yy87;
yy1332:
		yych = *++cursor_;
		if (yych == 'f') goto yy1395;
		goto yy87;
yy1333:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 541 "src/wast-lexer.cc"
		{ RETURN(AssertExhaustion); }
#line 7387 "src/prebuilt/wast-lexer-gen.cc"
yy1335:
		yych = *++cursor_;
		if (yych == 't') goto yy1396;
		goto yy87;
yy1336:
		yych = *++cursor_;
		if (yych == 'o') goto yy1397;
		goto yy87;
yy1337:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 536 "src/wast-lexer.cc"
		{ RETURN(AssertUnlinkable); }
#line 7403 "src/prebuilt/wast-lexer-gen.cc"
yy1339:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 427 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ConvertSI32); }
#line 7411 "src/prebuilt/wast-lexer-gen.cc"
yy1341:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 429 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ConvertSI64); }
#line 7419 "src/prebuilt/wast-lexer-gen.cc"
yy1343:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 431 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ConvertUI32); }
#line 7427 "src/prebuilt/wast-lexer-gen.cc"
yy1345:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 433 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ConvertUI64); }
#line 7435 "src/prebuilt/wast-lexer-gen.cc"
yy1347:
		yych = *++cursor_;
		if (yych == '3') goto yy1398;
		goto yy87;
yy1348:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 428 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ConvertSI32); }
#line 7447 "src/prebuilt/wast-lexer-gen.cc"
yy1350:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 430 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ConvertSI64); }
#line 7455 "src/prebuilt/wast-lexer-gen.cc"
yy1352:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 432 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ConvertUI32); }
#line 7463 "src/prebuilt/wast-lexer-gen.cc"
yy1354:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 434 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ConvertUI64); }
#line 7471 "src/prebuilt/wast-lexer-gen.cc"
yy1356:
		yych = *++cursor_;
		if (yych == '6') goto yy1399;
		goto yy87;
yy1357:
		yych = *++cursor_;
		if (yych == '_') goto yy1400;
		goto yy87;
yy1358:
		yych = *++cursor_;
		if (yych == 'u') goto yy1401;
		goto yy87;
yy1359:
		yych = *++cursor_;
		if (yych == 'd') goto yy1403;
		goto yy87;
yy1360:
		yych = *++cursor_;
		if (yych == 'd') goto yy1405;
		goto yy87;
yy1361:
		yych = *++cursor_;
		if (yych == 'p') goto yy1407;
		goto yy87;
yy1362:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 484 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwOr); }
#line 7503 "src/prebuilt/wast-lexer-gen.cc"
yy1364:
		yych = *++cursor_;
		if (yych == 'b') goto yy1408;
		goto yy87;
yy1365:
		yych = *++cursor_;
		if (yych == 'h') goto yy1410;
		goto yy87;
yy1366:
		yych = *++cursor_;
		if (yych == 'r') goto yy1411;
		goto yy87;
yy1367:
		yych = *++cursor_;
		if (yych == 'u') goto yy1413;
		goto yy87;
yy1368:
		yych = *++cursor_;
		if (yych == '.') goto yy1414;
		goto yy87;
yy1369:
		yych = *++cursor_;
		if (yych == '6') goto yy1415;
		goto yy87;
yy1370:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 458 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I32AtomicStore8); }
#line 7535 "src/prebuilt/wast-lexer-gen.cc"
yy1372:
		yych = *++cursor_;
		if (yych == '3') goto yy1417;
		goto yy87;
yy1373:
		yych = *++cursor_;
		if (yych == '3') goto yy1418;
		if (yych == '6') goto yy1419;
		goto yy87;
yy1374:
		yych = *++cursor_;
		if (yych == '3') goto yy1420;
		if (yych == '6') goto yy1421;
		goto yy87;
yy1375:
		yych = *++cursor_;
		if (yych == '_') goto yy1422;
		goto yy87;
yy1376:
		yych = *++cursor_;
		if (yych == '_') goto yy1423;
		goto yy87;
yy1377:
		yych = *++cursor_;
		if (yych == 'u') goto yy1424;
		goto yy87;
yy1378:
		yych = *++cursor_;
		if (yych == 'd') goto yy1426;
		goto yy87;
yy1379:
		yych = *++cursor_;
		if (yych == 'd') goto yy1428;
		goto yy87;
yy1380:
		yych = *++cursor_;
		if (yych == 'p') goto yy1430;
		goto yy87;
yy1381:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 485 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwOr); }
#line 7581 "src/prebuilt/wast-lexer-gen.cc"
yy1383:
		yych = *++cursor_;
		if (yych == 'b') goto yy1431;
		goto yy87;
yy1384:
		yych = *++cursor_;
		if (yych == 'h') goto yy1433;
		goto yy87;
yy1385:
		yych = *++cursor_;
		if (yych == 'r') goto yy1434;
		goto yy87;
yy1386:
		yych = *++cursor_;
		if (yych == 'u') goto yy1436;
		goto yy87;
yy1387:
		yych = *++cursor_;
		if (yych == 'u') goto yy1437;
		goto yy87;
yy1388:
		yych = *++cursor_;
		if (yych == '.') goto yy1438;
		goto yy87;
yy1389:
		yych = *++cursor_;
		if (yych == '6') goto yy1439;
		goto yy87;
yy1390:
		yych = *++cursor_;
		if (yych == '2') goto yy1441;
		goto yy87;
yy1391:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 460 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I64AtomicStore8); }
#line 7621 "src/prebuilt/wast-lexer-gen.cc"
yy1393:
		yych = *++cursor_;
		if (yych == '6') goto yy1443;
		goto yy87;
yy1394:
		yych = *++cursor_;
		if (yych == '3') goto yy1444;
		if (yych == '6') goto yy1445;
		goto yy87;
yy1395:
		yych = *++cursor_;
		if (yych == '3') goto yy1446;
		if (yych == '6') goto yy1447;
		goto yy87;
yy1396:
		yych = *++cursor_;
		if (yych == 'h') goto yy1448;
		goto yy87;
yy1397:
		yych = *++cursor_;
		if (yych == 'n') goto yy1449;
		goto yy87;
yy1398:
		yych = *++cursor_;
		if (yych == '2') goto yy1450;
		goto yy87;
yy1399:
		yych = *++cursor_;
		if (yych == '4') goto yy1452;
		goto yy87;
yy1400:
		yych = *++cursor_;
		if (yych == 'u') goto yy1454;
		goto yy87;
yy1401:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 451 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I32AtomicLoad8U); }
#line 7663 "src/prebuilt/wast-lexer-gen.cc"
yy1403:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 463 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwAdd); }
#line 7671 "src/prebuilt/wast-lexer-gen.cc"
yy1405:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 477 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwAnd); }
#line 7679 "src/prebuilt/wast-lexer-gen.cc"
yy1407:
		yych = *++cursor_;
		if (yych == 'x') goto yy1456;
		goto yy87;
yy1408:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 470 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwSub); }
#line 7691 "src/prebuilt/wast-lexer-gen.cc"
yy1410:
		yych = *++cursor_;
		if (yych == 'g') goto yy1457;
		goto yy87;
yy1411:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 491 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwXor); }
#line 7703 "src/prebuilt/wast-lexer-gen.cc"
yy1413:
		yych = *++cursor_;
		if (yych == '.') goto yy1459;
		goto yy87;
yy1414:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1460;
		case 'c':	goto yy1461;
		case 'o':	goto yy1462;
		case 's':	goto yy1463;
		case 'x':	goto yy1464;
		default:	goto yy87;
		}
yy1415:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 459 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I32AtomicStore16); }
#line 7725 "src/prebuilt/wast-lexer-gen.cc"
yy1417:
		yych = *++cursor_;
		if (yych == '2') goto yy1465;
		goto yy87;
yy1418:
		yych = *++cursor_;
		if (yych == '2') goto yy1467;
		goto yy87;
yy1419:
		yych = *++cursor_;
		if (yych == '4') goto yy1469;
		goto yy87;
yy1420:
		yych = *++cursor_;
		if (yych == '2') goto yy1471;
		goto yy87;
yy1421:
		yych = *++cursor_;
		if (yych == '4') goto yy1473;
		goto yy87;
yy1422:
		yych = *++cursor_;
		if (yych == 'u') goto yy1475;
		goto yy87;
yy1423:
		yych = *++cursor_;
		if (yych == 'u') goto yy1477;
		goto yy87;
yy1424:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 453 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I64AtomicLoad8U); }
#line 7761 "src/prebuilt/wast-lexer-gen.cc"
yy1426:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 464 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwAdd); }
#line 7769 "src/prebuilt/wast-lexer-gen.cc"
yy1428:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 478 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwAnd); }
#line 7777 "src/prebuilt/wast-lexer-gen.cc"
yy1430:
		yych = *++cursor_;
		if (yych == 'x') goto yy1479;
		goto yy87;
yy1431:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 471 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwSub); }
#line 7789 "src/prebuilt/wast-lexer-gen.cc"
yy1433:
		yych = *++cursor_;
		if (yych == 'g') goto yy1480;
		goto yy87;
yy1434:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 492 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwXor); }
#line 7801 "src/prebuilt/wast-lexer-gen.cc"
yy1436:
		yych = *++cursor_;
		if (yych == '.') goto yy1482;
		goto yy87;
yy1437:
		yych = *++cursor_;
		if (yych == '.') goto yy1483;
		goto yy87;
yy1438:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1484;
		case 'c':	goto yy1485;
		case 'o':	goto yy1486;
		case 's':	goto yy1487;
		case 'x':	goto yy1488;
		default:	goto yy87;
		}
yy1439:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 461 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I64AtomicStore16); }
#line 7827 "src/prebuilt/wast-lexer-gen.cc"
yy1441:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 462 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicStore, I64AtomicStore32); }
#line 7835 "src/prebuilt/wast-lexer-gen.cc"
yy1443:
		yych = *++cursor_;
		if (yych == '4') goto yy1489;
		goto yy87;
yy1444:
		yych = *++cursor_;
		if (yych == '2') goto yy1491;
		goto yy87;
yy1445:
		yych = *++cursor_;
		if (yych == '4') goto yy1493;
		goto yy87;
yy1446:
		yych = *++cursor_;
		if (yych == '2') goto yy1495;
		goto yy87;
yy1447:
		yych = *++cursor_;
		if (yych == '4') goto yy1497;
		goto yy87;
yy1448:
		yych = *++cursor_;
		if (yych == 'm') goto yy1499;
		goto yy87;
yy1449:
		yych = *++cursor_;
		if (yych == 'i') goto yy1500;
		goto yy87;
yy1450:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 437 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F32ReinterpretI32); }
#line 7871 "src/prebuilt/wast-lexer-gen.cc"
yy1452:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 439 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, F64ReinterpretI64); }
#line 7879 "src/prebuilt/wast-lexer-gen.cc"
yy1454:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 452 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I32AtomicLoad16U); }
#line 7887 "src/prebuilt/wast-lexer-gen.cc"
yy1456:
		yych = *++cursor_;
		if (yych == 'c') goto yy1501;
		goto yy87;
yy1457:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 498 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmwXchg); }
#line 7899 "src/prebuilt/wast-lexer-gen.cc"
yy1459:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1502;
		case 'c':	goto yy1503;
		case 'o':	goto yy1504;
		case 's':	goto yy1505;
		case 'x':	goto yy1506;
		default:	goto yy87;
		}
yy1460:
		yych = *++cursor_;
		if (yych == 'd') goto yy1507;
		if (yych == 'n') goto yy1508;
		goto yy87;
yy1461:
		yych = *++cursor_;
		if (yych == 'm') goto yy1509;
		goto yy87;
yy1462:
		yych = *++cursor_;
		if (yych == 'r') goto yy1510;
		goto yy87;
yy1463:
		yych = *++cursor_;
		if (yych == 'u') goto yy1512;
		goto yy87;
yy1464:
		yych = *++cursor_;
		if (yych == 'c') goto yy1513;
		if (yych == 'o') goto yy1514;
		goto yy87;
yy1465:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 438 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32ReinterpretF32); }
#line 7939 "src/prebuilt/wast-lexer-gen.cc"
yy1467:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 419 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncSSatF32); }
#line 7947 "src/prebuilt/wast-lexer-gen.cc"
yy1469:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 421 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncSSatF64); }
#line 7955 "src/prebuilt/wast-lexer-gen.cc"
yy1471:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 423 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncUSatF32); }
#line 7963 "src/prebuilt/wast-lexer-gen.cc"
yy1473:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 425 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I32TruncUSatF64); }
#line 7971 "src/prebuilt/wast-lexer-gen.cc"
yy1475:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 454 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I64AtomicLoad16U); }
#line 7979 "src/prebuilt/wast-lexer-gen.cc"
yy1477:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 455 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicLoad, I64AtomicLoad32U); }
#line 7987 "src/prebuilt/wast-lexer-gen.cc"
yy1479:
		yych = *++cursor_;
		if (yych == 'c') goto yy1515;
		goto yy87;
yy1480:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 499 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmwXchg); }
#line 7999 "src/prebuilt/wast-lexer-gen.cc"
yy1482:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1516;
		case 'c':	goto yy1517;
		case 'o':	goto yy1518;
		case 's':	goto yy1519;
		case 'x':	goto yy1520;
		default:	goto yy87;
		}
yy1483:
		yych = *++cursor_;
		switch (yych) {
		case 'a':	goto yy1521;
		case 'c':	goto yy1522;
		case 'o':	goto yy1523;
		case 's':	goto yy1524;
		case 'x':	goto yy1525;
		default:	goto yy87;
		}
yy1484:
		yych = *++cursor_;
		if (yych == 'd') goto yy1526;
		if (yych == 'n') goto yy1527;
		goto yy87;
yy1485:
		yych = *++cursor_;
		if (yych == 'm') goto yy1528;
		goto yy87;
yy1486:
		yych = *++cursor_;
		if (yych == 'r') goto yy1529;
		goto yy87;
yy1487:
		yych = *++cursor_;
		if (yych == 'u') goto yy1531;
		goto yy87;
yy1488:
		yych = *++cursor_;
		if (yych == 'c') goto yy1532;
		if (yych == 'o') goto yy1533;
		goto yy87;
yy1489:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 440 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64ReinterpretF64); }
#line 8049 "src/prebuilt/wast-lexer-gen.cc"
yy1491:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 420 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncSSatF32); }
#line 8057 "src/prebuilt/wast-lexer-gen.cc"
yy1493:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 422 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncSSatF64); }
#line 8065 "src/prebuilt/wast-lexer-gen.cc"
yy1495:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 424 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncUSatF32); }
#line 8073 "src/prebuilt/wast-lexer-gen.cc"
yy1497:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 426 "src/wast-lexer.cc"
		{ RETURN_OPCODE(Convert, I64TruncUSatF64); }
#line 8081 "src/prebuilt/wast-lexer-gen.cc"
yy1499:
		yych = *++cursor_;
		if (yych == 'e') goto yy1534;
		goto yy87;
yy1500:
		yych = *++cursor_;
		if (yych == 'c') goto yy1535;
		goto yy87;
yy1501:
		yych = *++cursor_;
		if (yych == 'h') goto yy1536;
		goto yy87;
yy1502:
		yych = *++cursor_;
		if (yych == 'd') goto yy1537;
		if (yych == 'n') goto yy1538;
		goto yy87;
yy1503:
		yych = *++cursor_;
		if (yych == 'm') goto yy1539;
		goto yy87;
yy1504:
		yych = *++cursor_;
		if (yych == 'r') goto yy1540;
		goto yy87;
yy1505:
		yych = *++cursor_;
		if (yych == 'u') goto yy1542;
		goto yy87;
yy1506:
		yych = *++cursor_;
		if (yych == 'c') goto yy1543;
		if (yych == 'o') goto yy1544;
		goto yy87;
yy1507:
		yych = *++cursor_;
		if (yych == 'd') goto yy1545;
		goto yy87;
yy1508:
		yych = *++cursor_;
		if (yych == 'd') goto yy1547;
		goto yy87;
yy1509:
		yych = *++cursor_;
		if (yych == 'p') goto yy1549;
		goto yy87;
yy1510:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 486 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UOr); }
#line 8135 "src/prebuilt/wast-lexer-gen.cc"
yy1512:
		yych = *++cursor_;
		if (yych == 'b') goto yy1550;
		goto yy87;
yy1513:
		yych = *++cursor_;
		if (yych == 'h') goto yy1552;
		goto yy87;
yy1514:
		yych = *++cursor_;
		if (yych == 'r') goto yy1553;
		goto yy87;
yy1515:
		yych = *++cursor_;
		if (yych == 'h') goto yy1555;
		goto yy87;
yy1516:
		yych = *++cursor_;
		if (yych == 'd') goto yy1556;
		if (yych == 'n') goto yy1557;
		goto yy87;
yy1517:
		yych = *++cursor_;
		if (yych == 'm') goto yy1558;
		goto yy87;
yy1518:
		yych = *++cursor_;
		if (yych == 'r') goto yy1559;
		goto yy87;
yy1519:
		yych = *++cursor_;
		if (yych == 'u') goto yy1561;
		goto yy87;
yy1520:
		yych = *++cursor_;
		if (yych == 'c') goto yy1562;
		if (yych == 'o') goto yy1563;
		goto yy87;
yy1521:
		yych = *++cursor_;
		if (yych == 'd') goto yy1564;
		if (yych == 'n') goto yy1565;
		goto yy87;
yy1522:
		yych = *++cursor_;
		if (yych == 'm') goto yy1566;
		goto yy87;
yy1523:
		yych = *++cursor_;
		if (yych == 'r') goto yy1567;
		goto yy87;
yy1524:
		yych = *++cursor_;
		if (yych == 'u') goto yy1569;
		goto yy87;
yy1525:
		yych = *++cursor_;
		if (yych == 'c') goto yy1570;
		if (yych == 'o') goto yy1571;
		goto yy87;
yy1526:
		yych = *++cursor_;
		if (yych == 'd') goto yy1572;
		goto yy87;
yy1527:
		yych = *++cursor_;
		if (yych == 'd') goto yy1574;
		goto yy87;
yy1528:
		yych = *++cursor_;
		if (yych == 'p') goto yy1576;
		goto yy87;
yy1529:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 488 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UOr); }
#line 8215 "src/prebuilt/wast-lexer-gen.cc"
yy1531:
		yych = *++cursor_;
		if (yych == 'b') goto yy1577;
		goto yy87;
yy1532:
		yych = *++cursor_;
		if (yych == 'h') goto yy1579;
		goto yy87;
yy1533:
		yych = *++cursor_;
		if (yych == 'r') goto yy1580;
		goto yy87;
yy1534:
		yych = *++cursor_;
		if (yych == 't') goto yy1582;
		goto yy87;
yy1535:
		yych = *++cursor_;
		if (yych == 'a') goto yy1583;
		goto yy87;
yy1536:
		yych = *++cursor_;
		if (yych == 'g') goto yy1584;
		goto yy87;
yy1537:
		yych = *++cursor_;
		if (yych == 'd') goto yy1586;
		goto yy87;
yy1538:
		yych = *++cursor_;
		if (yych == 'd') goto yy1588;
		goto yy87;
yy1539:
		yych = *++cursor_;
		if (yych == 'p') goto yy1590;
		goto yy87;
yy1540:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 487 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UOr); }
#line 8259 "src/prebuilt/wast-lexer-gen.cc"
yy1542:
		yych = *++cursor_;
		if (yych == 'b') goto yy1591;
		goto yy87;
yy1543:
		yych = *++cursor_;
		if (yych == 'h') goto yy1593;
		goto yy87;
yy1544:
		yych = *++cursor_;
		if (yych == 'r') goto yy1594;
		goto yy87;
yy1545:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 465 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAdd); }
#line 8279 "src/prebuilt/wast-lexer-gen.cc"
yy1547:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 479 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UAnd); }
#line 8287 "src/prebuilt/wast-lexer-gen.cc"
yy1549:
		yych = *++cursor_;
		if (yych == 'x') goto yy1596;
		goto yy87;
yy1550:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 472 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8USub); }
#line 8299 "src/prebuilt/wast-lexer-gen.cc"
yy1552:
		yych = *++cursor_;
		if (yych == 'g') goto yy1597;
		goto yy87;
yy1553:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 493 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXor); }
#line 8311 "src/prebuilt/wast-lexer-gen.cc"
yy1555:
		yych = *++cursor_;
		if (yych == 'g') goto yy1599;
		goto yy87;
yy1556:
		yych = *++cursor_;
		if (yych == 'd') goto yy1601;
		goto yy87;
yy1557:
		yych = *++cursor_;
		if (yych == 'd') goto yy1603;
		goto yy87;
yy1558:
		yych = *++cursor_;
		if (yych == 'p') goto yy1605;
		goto yy87;
yy1559:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 489 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UOr); }
#line 8335 "src/prebuilt/wast-lexer-gen.cc"
yy1561:
		yych = *++cursor_;
		if (yych == 'b') goto yy1606;
		goto yy87;
yy1562:
		yych = *++cursor_;
		if (yych == 'h') goto yy1608;
		goto yy87;
yy1563:
		yych = *++cursor_;
		if (yych == 'r') goto yy1609;
		goto yy87;
yy1564:
		yych = *++cursor_;
		if (yych == 'd') goto yy1611;
		goto yy87;
yy1565:
		yych = *++cursor_;
		if (yych == 'd') goto yy1613;
		goto yy87;
yy1566:
		yych = *++cursor_;
		if (yych == 'p') goto yy1615;
		goto yy87;
yy1567:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 490 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UOr); }
#line 8367 "src/prebuilt/wast-lexer-gen.cc"
yy1569:
		yych = *++cursor_;
		if (yych == 'b') goto yy1616;
		goto yy87;
yy1570:
		yych = *++cursor_;
		if (yych == 'h') goto yy1618;
		goto yy87;
yy1571:
		yych = *++cursor_;
		if (yych == 'r') goto yy1619;
		goto yy87;
yy1572:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 467 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAdd); }
#line 8387 "src/prebuilt/wast-lexer-gen.cc"
yy1574:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 481 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UAnd); }
#line 8395 "src/prebuilt/wast-lexer-gen.cc"
yy1576:
		yych = *++cursor_;
		if (yych == 'x') goto yy1621;
		goto yy87;
yy1577:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 474 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8USub); }
#line 8407 "src/prebuilt/wast-lexer-gen.cc"
yy1579:
		yych = *++cursor_;
		if (yych == 'g') goto yy1622;
		goto yy87;
yy1580:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 495 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXor); }
#line 8419 "src/prebuilt/wast-lexer-gen.cc"
yy1582:
		yych = *++cursor_;
		if (yych == 'i') goto yy1624;
		goto yy87;
yy1583:
		yych = *++cursor_;
		if (yych == 'l') goto yy1625;
		goto yy87;
yy1584:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 505 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmwCmpxchg); }
#line 8435 "src/prebuilt/wast-lexer-gen.cc"
yy1586:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 466 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAdd); }
#line 8443 "src/prebuilt/wast-lexer-gen.cc"
yy1588:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 480 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UAnd); }
#line 8451 "src/prebuilt/wast-lexer-gen.cc"
yy1590:
		yych = *++cursor_;
		if (yych == 'x') goto yy1626;
		goto yy87;
yy1591:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 473 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16USub); }
#line 8463 "src/prebuilt/wast-lexer-gen.cc"
yy1593:
		yych = *++cursor_;
		if (yych == 'g') goto yy1627;
		goto yy87;
yy1594:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 494 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXor); }
#line 8475 "src/prebuilt/wast-lexer-gen.cc"
yy1596:
		yych = *++cursor_;
		if (yych == 'c') goto yy1629;
		goto yy87;
yy1597:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 500 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw8UXchg); }
#line 8487 "src/prebuilt/wast-lexer-gen.cc"
yy1599:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 506 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmwCmpxchg); }
#line 8495 "src/prebuilt/wast-lexer-gen.cc"
yy1601:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 468 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAdd); }
#line 8503 "src/prebuilt/wast-lexer-gen.cc"
yy1603:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 482 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UAnd); }
#line 8511 "src/prebuilt/wast-lexer-gen.cc"
yy1605:
		yych = *++cursor_;
		if (yych == 'x') goto yy1630;
		goto yy87;
yy1606:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 475 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16USub); }
#line 8523 "src/prebuilt/wast-lexer-gen.cc"
yy1608:
		yych = *++cursor_;
		if (yych == 'g') goto yy1631;
		goto yy87;
yy1609:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 496 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXor); }
#line 8535 "src/prebuilt/wast-lexer-gen.cc"
yy1611:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 469 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAdd); }
#line 8543 "src/prebuilt/wast-lexer-gen.cc"
yy1613:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 483 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UAnd); }
#line 8551 "src/prebuilt/wast-lexer-gen.cc"
yy1615:
		yych = *++cursor_;
		if (yych == 'x') goto yy1633;
		goto yy87;
yy1616:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 476 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32USub); }
#line 8563 "src/prebuilt/wast-lexer-gen.cc"
yy1618:
		yych = *++cursor_;
		if (yych == 'g') goto yy1634;
		goto yy87;
yy1619:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 497 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXor); }
#line 8575 "src/prebuilt/wast-lexer-gen.cc"
yy1621:
		yych = *++cursor_;
		if (yych == 'c') goto yy1636;
		goto yy87;
yy1622:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 502 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw8UXchg); }
#line 8587 "src/prebuilt/wast-lexer-gen.cc"
yy1624:
		yych = *++cursor_;
		if (yych == 'c') goto yy1637;
		goto yy87;
yy1625:
		yych = *++cursor_;
		if (yych == '_') goto yy1638;
		goto yy87;
yy1626:
		yych = *++cursor_;
		if (yych == 'c') goto yy1639;
		goto yy87;
yy1627:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 501 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I32AtomicRmw16UXchg); }
#line 8607 "src/prebuilt/wast-lexer-gen.cc"
yy1629:
		yych = *++cursor_;
		if (yych == 'h') goto yy1640;
		goto yy87;
yy1630:
		yych = *++cursor_;
		if (yych == 'c') goto yy1641;
		goto yy87;
yy1631:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 503 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw16UXchg); }
#line 8623 "src/prebuilt/wast-lexer-gen.cc"
yy1633:
		yych = *++cursor_;
		if (yych == 'c') goto yy1642;
		goto yy87;
yy1634:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 504 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmw, I64AtomicRmw32UXchg); }
#line 8635 "src/prebuilt/wast-lexer-gen.cc"
yy1636:
		yych = *++cursor_;
		if (yych == 'h') goto yy1643;
		goto yy87;
yy1637:
		yych = *++cursor_;
		if (yych == '_') goto yy1644;
		goto yy87;
yy1638:
		yych = *++cursor_;
		if (yych == 'n') goto yy1645;
		goto yy87;
yy1639:
		yych = *++cursor_;
		if (yych == 'h') goto yy1646;
		goto yy87;
yy1640:
		yych = *++cursor_;
		if (yych == 'g') goto yy1647;
		goto yy87;
yy1641:
		yych = *++cursor_;
		if (yych == 'h') goto yy1649;
		goto yy87;
yy1642:
		yych = *++cursor_;
		if (yych == 'h') goto yy1650;
		goto yy87;
yy1643:
		yych = *++cursor_;
		if (yych == 'g') goto yy1651;
		goto yy87;
yy1644:
		yych = *++cursor_;
		if (yych == 'n') goto yy1653;
		goto yy87;
yy1645:
		yych = *++cursor_;
		if (yych == 'a') goto yy1654;
		goto yy87;
yy1646:
		yych = *++cursor_;
		if (yych == 'g') goto yy1655;
		goto yy87;
yy1647:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 507 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw8UCmpxchg); }
#line 8687 "src/prebuilt/wast-lexer-gen.cc"
yy1649:
		yych = *++cursor_;
		if (yych == 'g') goto yy1657;
		goto yy87;
yy1650:
		yych = *++cursor_;
		if (yych == 'g') goto yy1659;
		goto yy87;
yy1651:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 509 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw8UCmpxchg); }
#line 8703 "src/prebuilt/wast-lexer-gen.cc"
yy1653:
		yych = *++cursor_;
		if (yych == 'a') goto yy1661;
		goto yy87;
yy1654:
		yych = *++cursor_;
		if (yych == 'n') goto yy1662;
		goto yy87;
yy1655:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 508 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I32AtomicRmw16UCmpxchg); }
#line 8719 "src/prebuilt/wast-lexer-gen.cc"
yy1657:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 510 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw16UCmpxchg); }
#line 8727 "src/prebuilt/wast-lexer-gen.cc"
yy1659:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 511 "src/wast-lexer.cc"
		{ RETURN_OPCODE(AtomicRmwCmpxchg, I64AtomicRmw32UCmpxchg); }
#line 8735 "src/prebuilt/wast-lexer-gen.cc"
yy1661:
		yych = *++cursor_;
		if (yych == 'n') goto yy1664;
		goto yy87;
yy1662:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 538 "src/wast-lexer.cc"
		{ RETURN(AssertReturnCanonicalNan); }
#line 8747 "src/prebuilt/wast-lexer-gen.cc"
yy1664:
		++cursor_;
		if (yybm[0+(yych = *cursor_)] & 8) {
			goto yy86;
		}
#line 539 "src/wast-lexer.cc"
		{ RETURN(AssertReturnArithmeticNan); }
#line 8755 "src/prebuilt/wast-lexer-gen.cc"
	}
}
#line 566 "src/wast-lexer.cc"

  }
}

}  // namespace wabt
