summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS9
-rw-r--r--CONTRIBUTORS14
-rw-r--r--Makefile16
-rwxr-xr-xscripts/build-d8.sh16
-rwxr-xr-xscripts/download-d8.sh16
-rwxr-xr-xscripts/upload-d8.sh16
-rw-r--r--src/sexpr-wasm.c16
-rw-r--r--src/wasm-binary-writer.c16
-rw-r--r--src/wasm-check.c16
-rw-r--r--src/wasm-common.h16
-rw-r--r--src/wasm-internal.h16
-rw-r--r--src/wasm-lexer.c471
-rw-r--r--src/wasm-lexer.l16
-rw-r--r--src/wasm-parser.c476
-rw-r--r--src/wasm-parser.y16
-rw-r--r--src/wasm-vector.c16
-rw-r--r--src/wasm-vector.h16
-rw-r--r--src/wasm-writer.c16
-rw-r--r--src/wasm-writer.h16
-rw-r--r--src/wasm.c16
-rw-r--r--src/wasm.h16
-rwxr-xr-xtest/run-d8.py15
-rwxr-xr-xtest/run-tests.py18
-rw-r--r--test/spec.js16
-rw-r--r--test/wasm.js16
25 files changed, 815 insertions, 492 deletions
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index 6ca313d2..00000000
--- a/AUTHORS
+++ /dev/null
@@ -1,9 +0,0 @@
-# This is the official list of authors for copyright purposes.
-# This file is distinct from the CONTRIBUTORS files.
-# See the latter for an explanation.
-
-# Names should be added to this file as:
-# Name or Organization <email address>
-# The email address is not required for organizations.
-
-Google Inc.
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
deleted file mode 100644
index a049a130..00000000
--- a/CONTRIBUTORS
+++ /dev/null
@@ -1,14 +0,0 @@
-# People who have agreed to one of the CLAs and can contribute patches.
-# The AUTHORS file lists the copyright holders; this file
-# lists people. For example, Google employees are listed here
-# but not in AUTHORS, because Google holds the copyright.
-#
-# https://developers.google.com/open-source/cla/individual
-# https://developers.google.com/open-source/cla/corporate
-#
-# Names should be added to this file as:
-# Name <email address>
-
-Ben Smith <binji@chromium.org>
-Derek Schuff <dschuff@chromium.org>
-Katelyn Gadd <kg@luminance.org>
diff --git a/Makefile b/Makefile
index 4a6e55d5..e09e5be4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,19 @@
+#
+# 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.
+#
+
.SUFFIXES:
ALL = sexpr-wasm
diff --git a/scripts/build-d8.sh b/scripts/build-d8.sh
index 13b043d9..7fe095a4 100755
--- a/scripts/build-d8.sh
+++ b/scripts/build-d8.sh
@@ -1,4 +1,20 @@
#!/bin/bash
+#
+# 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.
+#
+
set -o nounset
set -o errexit
diff --git a/scripts/download-d8.sh b/scripts/download-d8.sh
index 8e33e00d..bb9be513 100755
--- a/scripts/download-d8.sh
+++ b/scripts/download-d8.sh
@@ -1,4 +1,20 @@
#!/bin/bash
+#
+# 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.
+#
+
set -o nounset
set -o errexit
diff --git a/scripts/upload-d8.sh b/scripts/upload-d8.sh
index 6d1b5efb..a964835a 100755
--- a/scripts/upload-d8.sh
+++ b/scripts/upload-d8.sh
@@ -1,4 +1,20 @@
#!/bin/bash
+#
+# 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.
+#
+
set -o nounset
set -o errexit
diff --git a/src/sexpr-wasm.c b/src/sexpr-wasm.c
index 921e64a0..1941a565 100644
--- a/src/sexpr-wasm.c
+++ b/src/sexpr-wasm.c
@@ -1,3 +1,19 @@
+/*
+ * 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 <assert.h>
#include <getopt.h>
#include <stdint.h>
diff --git a/src/wasm-binary-writer.c b/src/wasm-binary-writer.c
index ba0bac43..55a2ba4d 100644
--- a/src/wasm-binary-writer.c
+++ b/src/wasm-binary-writer.c
@@ -1,3 +1,19 @@
+/*
+ * 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 <alloca.h>
#include <assert.h>
#include <math.h>
diff --git a/src/wasm-check.c b/src/wasm-check.c
index 2501fe0f..e7aaa6b7 100644
--- a/src/wasm-check.c
+++ b/src/wasm-check.c
@@ -1,3 +1,19 @@
+/*
+ * 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 <assert.h>
#include <memory.h>
#include <stdarg.h>
diff --git a/src/wasm-common.h b/src/wasm-common.h
index 27aa3eb5..7043b3e3 100644
--- a/src/wasm-common.h
+++ b/src/wasm-common.h
@@ -1,3 +1,19 @@
+/*
+ * 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.
+ */
+
#ifndef WASM_COMMON_H_
#define WASM_COMMON_H_
diff --git a/src/wasm-internal.h b/src/wasm-internal.h
index 285b22ca..23c88ebf 100644
--- a/src/wasm-internal.h
+++ b/src/wasm-internal.h
@@ -1,3 +1,19 @@
+/*
+ * 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.
+ */
+
#ifndef WASM_INTERNAL_H
#define WASM_INTERNAL_H
diff --git a/src/wasm-lexer.c b/src/wasm-lexer.c
index 623e3738..104088c9 100644
--- a/src/wasm-lexer.c
+++ b/src/wasm-lexer.c
@@ -1180,7 +1180,22 @@ static yyconst flex_int32_t yy_rule_can_match_eol[219] =
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
#line 1 "src/wasm-lexer.l"
-#line 2 "src/wasm-lexer.l"
+/*
+ * 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.
+ */
+#line 18 "src/wasm-lexer.l"
#include "wasm.h"
#include "wasm-internal.h"
#include "wasm-parser.h"
@@ -1272,7 +1287,7 @@ typedef struct WasmScannerExtra {
-#line 1276 "src/wasm-lexer.c"
+#line 1291 "src/wasm-lexer.c"
#define INITIAL 0
#define LINE_COMMENT 1
@@ -1556,10 +1571,10 @@ YY_DECL
}
{
-#line 125 "src/wasm-lexer.l"
+#line 141 "src/wasm-lexer.l"
-#line 1563 "src/wasm-lexer.c"
+#line 1578 "src/wasm-lexer.c"
while ( 1 ) /* loops until end-of-file is reached */
{
@@ -1630,1128 +1645,1128 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 127 "src/wasm-lexer.l"
+#line 143 "src/wasm-lexer.l"
{ return TOK(LPAR); }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 128 "src/wasm-lexer.l"
+#line 144 "src/wasm-lexer.l"
{ return TOK(RPAR); }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 129 "src/wasm-lexer.l"
+#line 145 "src/wasm-lexer.l"
{ TEXT; return TOK(INT); }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 130 "src/wasm-lexer.l"
+#line 146 "src/wasm-lexer.l"
{ TEXT; return TOK(FLOAT); }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 131 "src/wasm-lexer.l"
+#line 147 "src/wasm-lexer.l"
{ TEXT; return TOK(TEXT); }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 132 "src/wasm-lexer.l"
+#line 148 "src/wasm-lexer.l"
{ BEGIN(BAD_TEXT); }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 133 "src/wasm-lexer.l"
+#line 149 "src/wasm-lexer.l"
{}
YY_BREAK
case 8:
/* rule 8 can match eol */
YY_RULE_SETUP
-#line 134 "src/wasm-lexer.l"
+#line 150 "src/wasm-lexer.l"
{ BEGIN(INITIAL);
RESET_COLUMN(yyscanner);
wasm_error(yylloc, &yyscanner, parser,
"newline in string"); }
YY_BREAK
case YY_STATE_EOF(BAD_TEXT):
-#line 138 "src/wasm-lexer.l"
+#line 154 "src/wasm-lexer.l"
{ wasm_error(yylloc, &yyscanner, parser,
"unexpected EOF");
return TOK(EOF); }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 141 "src/wasm-lexer.l"
+#line 157 "src/wasm-lexer.l"
{ wasm_error(yylloc, &yyscanner, parser,
"bad escape \"%.*s\"", yyleng, yytext); }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 143 "src/wasm-lexer.l"
+#line 159 "src/wasm-lexer.l"
{ BEGIN(INITIAL); TEXT; return TOK(TEXT); }
YY_BREAK
case 11:
/* rule 11 can match eol */
YY_RULE_SETUP
-#line 144 "src/wasm-lexer.l"
+#line 160 "src/wasm-lexer.l"
{ wasm_error(yylloc, &yyscanner, parser,
"illegal character in string"); }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 146 "src/wasm-lexer.l"
+#line 162 "src/wasm-lexer.l"
{ TYPE(I32); return TOK(VALUE_TYPE); }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 147 "src/wasm-lexer.l"
+#line 163 "src/wasm-lexer.l"
{ TYPE(I64); return TOK(VALUE_TYPE); }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 148 "src/wasm-lexer.l"
+#line 164 "src/wasm-lexer.l"
{ TYPE(F32); return TOK(VALUE_TYPE); }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 149 "src/wasm-lexer.l"
+#line 165 "src/wasm-lexer.l"
{ TYPE(F64); return TOK(VALUE_TYPE); }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 150 "src/wasm-lexer.l"
+#line 166 "src/wasm-lexer.l"
{ return TOK(NOP); }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 151 "src/wasm-lexer.l"
+#line 167 "src/wasm-lexer.l"
{ return TOK(BLOCK); }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 152 "src/wasm-lexer.l"
+#line 168 "src/wasm-lexer.l"
{ return TOK(IF); }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 153 "src/wasm-lexer.l"
+#line 169 "src/wasm-lexer.l"
{ return TOK(IF_ELSE); }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 154 "src/wasm-lexer.l"
+#line 170 "src/wasm-lexer.l"
{ return TOK(LOOP); }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 155 "src/wasm-lexer.l"
+#line 171 "src/wasm-lexer.l"
{ return TOK(BR); }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 156 "src/wasm-lexer.l"
+#line 172 "src/wasm-lexer.l"
{ return TOK(BR_IF); }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 157 "src/wasm-lexer.l"
+#line 173 "src/wasm-lexer.l"
{ return TOK(TABLESWITCH); }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 158 "src/wasm-lexer.l"
+#line 174 "src/wasm-lexer.l"
{ return TOK(CASE); }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 159 "src/wasm-lexer.l"
+#line 175 "src/wasm-lexer.l"
{ return TOK(CALL); }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 160 "src/wasm-lexer.l"
+#line 176 "src/wasm-lexer.l"
{ return TOK(CALL_IMPORT); }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 161 "src/wasm-lexer.l"
+#line 177 "src/wasm-lexer.l"
{ return TOK(CALL_INDIRECT); }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 162 "src/wasm-lexer.l"
+#line 178 "src/wasm-lexer.l"
{ return TOK(RETURN); }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 163 "src/wasm-lexer.l"
+#line 179 "src/wasm-lexer.l"
{ return TOK(GET_LOCAL); }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 164 "src/wasm-lexer.l"
+#line 180 "src/wasm-lexer.l"
{ return TOK(SET_LOCAL); }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 165 "src/wasm-lexer.l"
+#line 181 "src/wasm-lexer.l"
{ MEMOP(I32, LOAD, 32); return TOK(LOAD); }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 166 "src/wasm-lexer.l"
+#line 182 "src/wasm-lexer.l"
{ MEMOP(I64, LOAD, 64); return TOK(LOAD); }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 167 "src/wasm-lexer.l"
+#line 183 "src/wasm-lexer.l"
{ MEMOP(F32, LOAD, 32); return TOK(LOAD); }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 168 "src/wasm-lexer.l"
+#line 184 "src/wasm-lexer.l"
{ MEMOP(F64, LOAD, 64); return TOK(LOAD); }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 169 "src/wasm-lexer.l"
+#line 185 "src/wasm-lexer.l"
{ MEMOP(I32, STORE, 32); return TOK(STORE); }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 170 "src/wasm-lexer.l"
+#line 186 "src/wasm-lexer.l"
{ MEMOP(I64, STORE, 64); return TOK(STORE); }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 171 "src/wasm-lexer.l"
+#line 187 "src/wasm-lexer.l"
{ MEMOP(F32, STORE, 32); return TOK(STORE); }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 172 "src/wasm-lexer.l"
+#line 188 "src/wasm-lexer.l"
{ MEMOP(F64, STORE, 64); return TOK(STORE); }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 173 "src/wasm-lexer.l"
+#line 189 "src/wasm-lexer.l"
{ MEMOPSIGN(I32, LOAD, 8, S); return TOK(LOAD); }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 174 "src/wasm-lexer.l"
+#line 190 "src/wasm-lexer.l"
{ MEMOPSIGN(I64, LOAD, 8, S); return TOK(LOAD); }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 175 "src/wasm-lexer.l"
+#line 191 "src/wasm-lexer.l"
{ MEMOPSIGN(I32, LOAD, 8, U); return TOK(LOAD); }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 176 "src/wasm-lexer.l"
+#line 192 "src/wasm-lexer.l"
{ MEMOPSIGN(I64, LOAD, 8, U); return TOK(LOAD); }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 177 "src/wasm-lexer.l"
+#line 193 "src/wasm-lexer.l"
{ MEMOPSIGN(I32, LOAD, 16, S); return TOK(LOAD); }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 178 "src/wasm-lexer.l"
+#line 194 "src/wasm-lexer.l"
{ MEMOPSIGN(I64, LOAD, 16, S); return TOK(LOAD); }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 179 "src/wasm-lexer.l"
+#line 195 "src/wasm-lexer.l"
{ MEMOPSIGN(I32, LOAD, 16, U); return TOK(LOAD); }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 180 "src/wasm-lexer.l"
+#line 196 "src/wasm-lexer.l"
{ MEMOPSIGN(I64, LOAD, 16, U); return TOK(LOAD); }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 181 "src/wasm-lexer.l"
+#line 197 "src/wasm-lexer.l"
{ MEMOPSIGN(I64, LOAD, 32, S); return TOK(LOAD); }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 182 "src/wasm-lexer.l"
+#line 198 "src/wasm-lexer.l"
{ MEMOPSIGN(I64, LOAD, 32, U); return TOK(LOAD); }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 183 "src/wasm-lexer.l"
+#line 199 "src/wasm-lexer.l"
{ MEMOP(I32, STORE, 8); return TOK(STORE); }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 184 "src/wasm-lexer.l"
+#line 200 "src/wasm-lexer.l"
{ MEMOP(I64, STORE, 8); return TOK(STORE); }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 185 "src/wasm-lexer.l"
+#line 201 "src/wasm-lexer.l"
{ MEMOP(I32, STORE, 16); return TOK(STORE); }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 186 "src/wasm-lexer.l"
+#line 202 "src/wasm-lexer.l"
{ MEMOP(I64, STORE, 16); return TOK(STORE); }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 187 "src/wasm-lexer.l"
+#line 203 "src/wasm-lexer.l"
{ MEMOP(I64, STORE, 32); return TOK(STORE); }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 188 "src/wasm-lexer.l"
+#line 204 "src/wasm-lexer.l"
{ TEXT_AT(7); return TOK(OFFSET); }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 189 "src/wasm-lexer.l"
+#line 205 "src/wasm-lexer.l"
{ TEXT_AT(6); return TOK(ALIGN); }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 190 "src/wasm-lexer.l"
+#line 206 "src/wasm-lexer.l"
{ TYPE(I32); return TOK(CONST); }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 191 "src/wasm-lexer.l"
+#line 207 "src/wasm-lexer.l"
{ TYPE(I64); return TOK(CONST); }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 192 "src/wasm-lexer.l"
+#line 208 "src/wasm-lexer.l"
{ TYPE(F32); return TOK(CONST); }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 193 "src/wasm-lexer.l"
+#line 209 "src/wasm-lexer.l"
{ TYPE(F64); return TOK(CONST); }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 194 "src/wasm-lexer.l"
+#line 210 "src/wasm-lexer.l"
{ UNOP(I32, NOT); return TOK(UNARY); }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 195 "src/wasm-lexer.l"
+#line 211 "src/wasm-lexer.l"
{ UNOP(I32, CLZ); return TOK(UNARY); }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 196 "src/wasm-lexer.l"
+#line 212 "src/wasm-lexer.l"
{ UNOP(I64, CLZ); return TOK(UNARY); }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 197 "src/wasm-lexer.l"
+#line 213 "src/wasm-lexer.l"
{ UNOP(I32, CTZ); return TOK(UNARY); }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 198 "src/wasm-lexer.l"
+#line 214 "src/wasm-lexer.l"
{ UNOP(I64, CTZ); return TOK(UNARY); }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 199 "src/wasm-lexer.l"
+#line 215 "src/wasm-lexer.l"
{ UNOP(I32, POPCNT); return TOK(UNARY); }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 200 "src/wasm-lexer.l"
+#line 216 "src/wasm-lexer.l"
{ UNOP(I64, POPCNT); return TOK(UNARY); }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 201 "src/wasm-lexer.l"
+#line 217 "src/wasm-lexer.l"
{ UNOP(F32, NEG); return TOK(UNARY); }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 202 "src/wasm-lexer.l"
+#line 218 "src/wasm-lexer.l"
{ UNOP(F64, NEG); return TOK(UNARY); }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 203 "src/wasm-lexer.l"
+#line 219 "src/wasm-lexer.l"
{ UNOP(F32, ABS); return TOK(UNARY); }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 204 "src/wasm-lexer.l"
+#line 220 "src/wasm-lexer.l"
{ UNOP(F64, ABS); return TOK(UNARY); }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 205 "src/wasm-lexer.l"
+#line 221 "src/wasm-lexer.l"
{ UNOP(F32, SQRT); return TOK(UNARY); }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 206 "src/wasm-lexer.l"
+#line 222 "src/wasm-lexer.l"
{ UNOP(F64, SQRT); return TOK(UNARY); }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 207 "src/wasm-lexer.l"
+#line 223 "src/wasm-lexer.l"
{ UNOP(F32, CEIL); return TOK(UNARY); }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 208 "src/wasm-lexer.l"
+#line 224 "src/wasm-lexer.l"
{ UNOP(F64, CEIL); return TOK(UNARY); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 209 "src/wasm-lexer.l"
+#line 225 "src/wasm-lexer.l"
{ UNOP(F32, FLOOR); return TOK(UNARY); }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 210 "src/wasm-lexer.l"
+#line 226 "src/wasm-lexer.l"
{ UNOP(F64, FLOOR); return TOK(UNARY); }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 211 "src/wasm-lexer.l"
+#line 227 "src/wasm-lexer.l"
{ UNOP(F32, TRUNC); return TOK(UNARY); }
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 212 "src/wasm-lexer.l"
+#line 228 "src/wasm-lexer.l"
{ UNOP(F64, TRUNC); return TOK(UNARY); }
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 213 "src/wasm-lexer.l"
+#line 229 "src/wasm-lexer.l"
{ UNOP(F32, NEAREST); return TOK(UNARY); }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 214 "src/wasm-lexer.l"
+#line 230 "src/wasm-lexer.l"
{ UNOP(F64, NEAREST); return TOK(UNARY); }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 215 "src/wasm-lexer.l"
+#line 231 "src/wasm-lexer.l"
{ BINOP(I32, ADD); return TOK(BINARY); }
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 216 "src/wasm-lexer.l"
+#line 232 "src/wasm-lexer.l"
{ BINOP(I64, ADD); return TOK(BINARY); }
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 217 "src/wasm-lexer.l"
+#line 233 "src/wasm-lexer.l"
{ BINOP(I32, SUB); return TOK(BINARY); }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 218 "src/wasm-lexer.l"
+#line 234 "src/wasm-lexer.l"
{ BINOP(I64, SUB); return TOK(BINARY); }
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 219 "src/wasm-lexer.l"
+#line 235 "src/wasm-lexer.l"
{ BINOP(I32, MUL); return TOK(BINARY); }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 220 "src/wasm-lexer.l"
+#line 236 "src/wasm-lexer.l"
{ BINOP(I64, MUL); return TOK(BINARY); }
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 221 "src/wasm-lexer.l"
+#line 237 "src/wasm-lexer.l"
{ BINOP(I32, DIV_S); return TOK(BINARY); }
YY_BREAK
case 88:
YY_RULE_SETUP
-#line 222 "src/wasm-lexer.l"
+#line 238 "src/wasm-lexer.l"
{ BINOP(I64, DIV_S); return TOK(BINARY); }
YY_BREAK
case 89:
YY_RULE_SETUP
-#line 223 "src/wasm-lexer.l"
+#line 239 "src/wasm-lexer.l"
{ BINOP(I32, DIV_U); return TOK(BINARY); }
YY_BREAK
case 90:
YY_RULE_SETUP
-#line 224 "src/wasm-lexer.l"
+#line 240 "src/wasm-lexer.l"
{ BINOP(I64, DIV_U); return TOK(BINARY); }
YY_BREAK
case 91:
YY_RULE_SETUP
-#line 225 "src/wasm-lexer.l"
+#line 241 "src/wasm-lexer.l"
{ BINOP(I32, REM_S); return TOK(BINARY); }
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 226 "src/wasm-lexer.l"
+#line 242 "src/wasm-lexer.l"
{ BINOP(I64, REM_S); return TOK(BINARY); }
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 227 "src/wasm-lexer.l"
+#line 243 "src/wasm-lexer.l"
{ BINOP(I32, REM_U); return TOK(BINARY); }
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 228 "src/wasm-lexer.l"
+#line 244 "src/wasm-lexer.l"
{ BINOP(I64, REM_U); return TOK(BINARY); }
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 229 "src/wasm-lexer.l"
+#line 245 "src/wasm-lexer.l"
{ BINOP(I32, AND); return TOK(BINARY); }
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 230 "src/wasm-lexer.l"
+#line 246 "src/wasm-lexer.l"
{ BINOP(I64, AND); return TOK(BINARY); }
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 231 "src/wasm-lexer.l"
+#line 247 "src/wasm-lexer.l"
{ BINOP(I32, OR); return TOK(BINARY); }
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 232 "src/wasm-lexer.l"
+#line 248 "src/wasm-lexer.l"
{ BINOP(I64, OR); return TOK(BINARY); }
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 233 "src/wasm-lexer.l"
+#line 249 "src/wasm-lexer.l"
{ BINOP(I32, XOR); return TOK(BINARY); }
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 234 "src/wasm-lexer.l"
+#line 250 "src/wasm-lexer.l"
{ BINOP(I64, XOR); return TOK(BINARY); }
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 235 "src/wasm-lexer.l"
+#line 251 "src/wasm-lexer.l"
{ BINOP(I32, SHL); return TOK(BINARY); }
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 236 "src/wasm-lexer.l"
+#line 252 "src/wasm-lexer.l"
{ BINOP(I64, SHL); return TOK(BINARY); }
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 237 "src/wasm-lexer.l"
+#line 253 "src/wasm-lexer.l"
{ BINOP(I32, SHR_S); return TOK(BINARY); }
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 238 "src/wasm-lexer.l"
+#line 254 "src/wasm-lexer.l"
{ BINOP(I64, SHR_S); return TOK(BINARY); }
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 239 "src/wasm-lexer.l"
+#line 255 "src/wasm-lexer.l"
{ BINOP(I32, SHR_U); return TOK(BINARY); }
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 240 "src/wasm-lexer.l"
+#line 256 "src/wasm-lexer.l"
{ BINOP(I64, SHR_U); return TOK(BINARY); }
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 241 "src/wasm-lexer.l"
+#line 257 "src/wasm-lexer.l"
{ BINOP(F32, ADD); return TOK(BINARY); }
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 242 "src/wasm-lexer.l"
+#line 258 "src/wasm-lexer.l"
{ BINOP(F64, ADD); return TOK(BINARY); }
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 243 "src/wasm-lexer.l"
+#line 259 "src/wasm-lexer.l"
{ BINOP(F32, SUB); return TOK(BINARY); }
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 244 "src/wasm-lexer.l"
+#line 260 "src/wasm-lexer.l"
{ BINOP(F64, SUB); return TOK(BINARY); }
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 245 "src/wasm-lexer.l"
+#line 261 "src/wasm-lexer.l"
{ BINOP(F32, MUL); return TOK(BINARY); }
YY_BREAK
case 112:
YY_RULE_SETUP
-#line 246 "src/wasm-lexer.l"
+#line 262 "src/wasm-lexer.l"
{ BINOP(F64, MUL); return TOK(BINARY); }
YY_BREAK
case 113:
YY_RULE_SETUP
-#line 247 "src/wasm-lexer.l"
+#line 263 "src/wasm-lexer.l"
{ BINOP(F32, DIV); return TOK(BINARY); }
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 248 "src/wasm-lexer.l"
+#line 264 "src/wasm-lexer.l"
{ BINOP(F64, DIV); return TOK(BINARY); }
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 249 "src/wasm-lexer.l"
+#line 265 "src/wasm-lexer.l"
{ BINOP(F32, MIN); return TOK(BINARY); }
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 250 "src/wasm-lexer.l"
+#line 266 "src/wasm-lexer.l"
{ BINOP(F64, MIN); return TOK(BINARY); }
YY_BREAK
case 117:
YY_RULE_SETUP
-#line 251 "src/wasm-lexer.l"
+#line 267 "src/wasm-lexer.l"
{ BINOP(F32, MAX); return TOK(BINARY); }
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 252 "src/wasm-lexer.l"
+#line 268 "src/wasm-lexer.l"
{ BINOP(F64, MAX); return TOK(BINARY); }
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 253 "src/wasm-lexer.l"
+#line 269 "src/wasm-lexer.l"
{ BINOP(F32, COPYSIGN); return TOK(BINARY); }
YY_BREAK
case 120:
YY_RULE_SETUP
-#line 254 "src/wasm-lexer.l"
+#line 270 "src/wasm-lexer.l"
{ BINOP(F64, COPYSIGN); return TOK(BINARY); }
YY_BREAK
case 121:
YY_RULE_SETUP
-#line 255 "src/wasm-lexer.l"
+#line 271 "src/wasm-lexer.l"
{ CMPOP(I32, EQ); return TOK(COMPARE); }
YY_BREAK
case 122:
YY_RULE_SETUP
-#line 256 "src/wasm-lexer.l"
+#line 272 "src/wasm-lexer.l"
{ CMPOP(I64, EQ); return TOK(COMPARE); }
YY_BREAK
case 123:
YY_RULE_SETUP
-#line 257 "src/wasm-lexer.l"
+#line 273 "src/wasm-lexer.l"
{ CMPOP(I32, NE); return TOK(COMPARE); }
YY_BREAK
case 124:
YY_RULE_SETUP
-#line 258 "src/wasm-lexer.l"
+#line 274 "src/wasm-lexer.l"
{ CMPOP(I64, NE); return TOK(COMPARE); }
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 259 "src/wasm-lexer.l"
+#line 275 "src/wasm-lexer.l"
{ CMPOP(I32, LT_S); return TOK(COMPARE); }
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 260 "src/wasm-lexer.l"
+#line 276 "src/wasm-lexer.l"
{ CMPOP(I64, LT_S); return TOK(COMPARE); }
YY_BREAK
case 127:
YY_RULE_SETUP
-#line 261 "src/wasm-lexer.l"
+#line 277 "src/wasm-lexer.l"
{ CMPOP(I32, LT_U); return TOK(COMPARE); }
YY_BREAK
case 128:
YY_RULE_SETUP
-#line 262 "src/wasm-lexer.l"
+#line 278 "src/wasm-lexer.l"
{ CMPOP(I64, LT_U); return TOK(COMPARE); }
YY_BREAK
case 129:
YY_RULE_SETUP
-#line 263 "src/wasm-lexer.l"
+#line 279 "src/wasm-lexer.l"
{ CMPOP(I32, LE_S); return TOK(COMPARE); }
YY_BREAK
case 130:
YY_RULE_SETUP
-#line 264 "src/wasm-lexer.l"
+#line 280 "src/wasm-lexer.l"
{ CMPOP(I64, LE_S); return TOK(COMPARE); }
YY_BREAK
case 131:
YY_RULE_SETUP
-#line 265 "src/wasm-lexer.l"
+#line 281 "src/wasm-lexer.l"
{ CMPOP(I32, LE_U); return TOK(COMPARE); }
YY_BREAK
case 132:
YY_RULE_SETUP
-#line 266 "src/wasm-lexer.l"
+#line 282 "src/wasm-lexer.l"
{ CMPOP(I64, LE_U); return TOK(COMPARE); }
YY_BREAK
case 133:
YY_RULE_SETUP
-#line 267 "src/wasm-lexer.l"
+#line 283 "src/wasm-lexer.l"
{ CMPOP(I32, GT_S); return TOK(COMPARE); }
YY_BREAK
case 134:
YY_RULE_SETUP
-#line 268 "src/wasm-lexer.l"
+#line 284 "src/wasm-lexer.l"
{ CMPOP(I64, GT_S); return TOK(COMPARE); }
YY_BREAK
case 135:
YY_RULE_SETUP
-#line 269 "src/wasm-lexer.l"
+#line 285 "src/wasm-lexer.l"
{ CMPOP(I32, GT_U); return TOK(COMPARE); }
YY_BREAK
case 136:
YY_RULE_SETUP
-#line 270 "src/wasm-lexer.l"
+#line 286 "src/wasm-lexer.l"
{ CMPOP(I64, GT_U); return TOK(COMPARE); }
YY_BREAK
case 137:
YY_RULE_SETUP
-#line 271 "src/wasm-lexer.l"
+#line 287 "src/wasm-lexer.l"
{ CMPOP(I32, GE_S); return TOK(COMPARE); }
YY_BREAK
case 138:
YY_RULE_SETUP
-#line 272 "src/wasm-lexer.l"
+#line 288 "src/wasm-lexer.l"
{ CMPOP(I64, GE_S); return TOK(COMPARE); }
YY_BREAK
case 139:
YY_RULE_SETUP
-#line 273 "src/wasm-lexer.l"
+#line 289 "src/wasm-lexer.l"
{ CMPOP(I32, GE_U); return TOK(COMPARE); }
YY_BREAK
case 140:
YY_RULE_SETUP
-#line 274 "src/wasm-lexer.l"
+#line 290 "src/wasm-lexer.l"
{ CMPOP(I64, GE_U); return TOK(COMPARE); }
YY_BREAK
case 141:
YY_RULE_SETUP
-#line 275 "src/wasm-lexer.l"
+#line 291 "src/wasm-lexer.l"
{ CMPOP(F32, EQ); return TOK(COMPARE); }
YY_BREAK
case 142:
YY_RULE_SETUP
-#line 276 "src/wasm-lexer.l"
+#line 292 "src/wasm-lexer.l"
{ CMPOP(F64, EQ); return TOK(COMPARE); }
YY_BREAK
case 143:
YY_RULE_SETUP
-#line 277 "src/wasm-lexer.l"
+#line 293 "src/wasm-lexer.l"
{ CMPOP(F32, NE); return TOK(COMPARE); }
YY_BREAK
case 144:
YY_RULE_SETUP
-#line 278 "src/wasm-lexer.l"
+#line 294 "src/wasm-lexer.l"
{ CMPOP(F64, NE); return TOK(COMPARE); }
YY_BREAK
case 145:
YY_RULE_SETUP
-#line 279 "src/wasm-lexer.l"
+#line 295 "src/wasm-lexer.l"
{ CMPOP(F32, LT); return TOK(COMPARE); }
YY_BREAK
case 146:
YY_RULE_SETUP
-#line 280 "src/wasm-lexer.l"
+#line 296 "src/wasm-lexer.l"
{ CMPOP(F64, LT); return TOK(COMPARE); }
YY_BREAK
case 147:
YY_RULE_SETUP
-#line 281 "src/wasm-lexer.l"
+#line 297 "src/wasm-lexer.l"
{ CMPOP(F32, LE); return TOK(COMPARE); }
YY_BREAK
case 148:
YY_RULE_SETUP
-#line 282 "src/wasm-lexer.l"
+#line 298 "src/wasm-lexer.l"
{ CMPOP(F64, LE); return TOK(COMPARE); }
YY_BREAK
case 149:
YY_RULE_SETUP
-#line 283 "src/wasm-lexer.l"
+#line 299 "src/wasm-lexer.l"
{ CMPOP(F32, GT); return TOK(COMPARE); }
YY_BREAK
case 150:
YY_RULE_SETUP
-#line 284 "src/wasm-lexer.l"
+#line 300 "src/wasm-lexer.l"
{ CMPOP(F64, GT); return TOK(COMPARE); }
YY_BREAK
case 151:
YY_RULE_SETUP
-#line 285 "src/wasm-lexer.l"
+#line 301 "src/wasm-lexer.l"
{ CMPOP(F32, GE); return TOK(COMPARE); }
YY_BREAK
case 152:
YY_RULE_SETUP
-#line 286 "src/wasm-lexer.l"
+#line 302 "src/wasm-lexer.l"
{ CMPOP(F64, GE); return TOK(COMPARE); }
YY_BREAK
case 153:
YY_RULE_SETUP
-#line 287 "src/wasm-lexer.l"
+#line 303 "src/wasm-lexer.l"
{ CONVTYPE(I64, EXTEND_S, I32); return TOK(CONVERT); }
YY_BREAK
case 154:
YY_RULE_SETUP
-#line 288 "src/wasm-lexer.l"
+#line 304 "src/wasm-lexer.l"
{ CONVTYPE(I64, EXTEND_U, I32); return TOK(CONVERT); }
YY_BREAK
case 155:
YY_RULE_SETUP
-#line 289 "src/wasm-lexer.l"
+#line 305 "src/wasm-lexer.l"
{ CONVTYPE(I32, WRAP, I64); return TOK(CONVERT); }
YY_BREAK
case 156:
YY_RULE_SETUP
-#line 290 "src/wasm-lexer.l"
+#line 306 "src/wasm-lexer.l"
{ CONVTYPE(I32, TRUNC_S, F32); return TOK(CONVERT); }
YY_BREAK
case 157:
YY_RULE_SETUP
-#line 291 "src/wasm-lexer.l"
+#line 307 "src/wasm-lexer.l"
{ CONVTYPE(I64, TRUNC_S, F32); return TOK(CONVERT); }
YY_BREAK
case 158:
YY_RULE_SETUP
-#line 292 "src/wasm-lexer.l"
+#line 308 "src/wasm-lexer.l"
{ CONVTYPE(I32, TRUNC_S, F64); return TOK(CONVERT); }
YY_BREAK
case 159:
YY_RULE_SETUP
-#line 293 "src/wasm-lexer.l"
+#line 309 "src/wasm-lexer.l"
{ CONVTYPE(I64, TRUNC_S, F64); return TOK(CONVERT); }
YY_BREAK
case 160:
YY_RULE_SETUP
-#line 294 "src/wasm-lexer.l"
+#line 310 "src/wasm-lexer.l"
{ CONVTYPE(I32, TRUNC_U, F32); return TOK(CONVERT); }
YY_BREAK
case 161:
YY_RULE_SETUP
-#line 295 "src/wasm-lexer.l"
+#line 311 "src/wasm-lexer.l"
{ CONVTYPE(I64, TRUNC_U, F32); return TOK(CONVERT); }
YY_BREAK
case 162:
YY_RULE_SETUP
-#line 296 "src/wasm-lexer.l"
+#line 312 "src/wasm-lexer.l"
{ CONVTYPE(I32, TRUNC_U, F64); return TOK(CONVERT); }
YY_BREAK
case 163:
YY_RULE_SETUP
-#line 297 "src/wasm-lexer.l"
+#line 313 "src/wasm-lexer.l"
{ CONVTYPE(I64, TRUNC_U, F64); return TOK(CONVERT); }
YY_BREAK
case 164:
YY_RULE_SETUP
-#line 298 "src/wasm-lexer.l"
+#line 314 "src/wasm-lexer.l"
{ CONVTYPE(F32, CONVERT_S, I32); return TOK(CONVERT); }
YY_BREAK
case 165:
YY_RULE_SETUP
-#line 299 "src/wasm-lexer.l"
+#line 315 "src/wasm-lexer.l"
{ CONVTYPE(F64, CONVERT_S, I32); return TOK(CONVERT); }
YY_BREAK
case 166:
YY_RULE_SETUP
-#line 300 "src/wasm-lexer.l"
+#line 316 "src/wasm-lexer.l"
{ CONVTYPE(F32, CONVERT_S, I64); return TOK(CONVERT); }
YY_BREAK
case 167:
YY_RULE_SETUP
-#line 301 "src/wasm-lexer.l"
+#line 317 "src/wasm-lexer.l"
{ CONVTYPE(F64, CONVERT_S, I64); return TOK(CONVERT); }
YY_BREAK
case 168:
YY_RULE_SETUP
-#line 302 "src/wasm-lexer.l"
+#line 318 "src/wasm-lexer.l"
{ CONVTYPE(F32, CONVERT_U, I32); return TOK(CONVERT); }
YY_BREAK
case 169:
YY_RULE_SETUP
-#line 303 "src/wasm-lexer.l"
+#line 319 "src/wasm-lexer.l"
{ CONVTYPE(F64, CONVERT_U, I32); return TOK(CONVERT); }
YY_BREAK
case 170:
YY_RULE_SETUP
-#line 304 "src/wasm-lexer.l"
+#line 320 "src/wasm-lexer.l"
{ CONVTYPE(F32, CONVERT_U, I64); return TOK(CONVERT); }
YY_BREAK
case 171:
YY_RULE_SETUP
-#line 305 "src/wasm-lexer.l"
+#line 321 "src/wasm-lexer.l"
{ CONVTYPE(F64, CONVERT_U, I64); return TOK(CONVERT); }
YY_BREAK
case 172:
YY_RULE_SETUP
-#line 306 "src/wasm-lexer.l"
+#line 322 "src/wasm-lexer.l"
{ CONVTYPE(F64, PROMOTE, F32); return TOK(CONVERT); }
YY_BREAK
case 173:
YY_RULE_SETUP
-#line 307 "src/wasm-lexer.l"
+#line 323 "src/wasm-lexer.l"
{ CONVTYPE(F32, DEMOTE, F64); return TOK(CONVERT); }
YY_BREAK
case 174:
YY_RULE_SETUP
-#line 308 "src/wasm-lexer.l"
+#line 324 "src/wasm-lexer.l"
{ CASTTYPE(F32, I32); return TOK(CAST); }
YY_BREAK
case 175:
YY_RULE_SETUP
-#line 309 "src/wasm-lexer.l"
+#line 325 "src/wasm-lexer.l"
{ CASTTYPE(I32, F32); return TOK(CAST); }
YY_BREAK
case 176:
YY_RULE_SETUP
-#line 310 "src/wasm-lexer.l"
+#line 326 "src/wasm-lexer.l"
{ CASTTYPE(F64, I64); return TOK(CAST); }
YY_BREAK
case 177:
YY_RULE_SETUP
-#line 311 "src/wasm-lexer.l"
+#line 327 "src/wasm-lexer.l"
{ CASTTYPE(I64, F64); return TOK(CAST); }
YY_BREAK
case 178:
YY_RULE_SETUP
-#line 312 "src/wasm-lexer.l"
+#line 328 "src/wasm-lexer.l"
{ TYPE(I32); return TOK(SELECT); }
YY_BREAK
case 179:
YY_RULE_SETUP
-#line 313 "src/wasm-lexer.l"
+#line 329 "src/wasm-lexer.l"
{ TYPE(I64); return TOK(SELECT); }
YY_BREAK
case 180:
YY_RULE_SETUP
-#line 314 "src/wasm-lexer.l"
+#line 330 "src/wasm-lexer.l"
{ TYPE(F32); return TOK(SELECT); }
YY_BREAK
case 181:
YY_RULE_SETUP
-#line 315 "src/wasm-lexer.l"
+#line 331 "src/wasm-lexer.l"
{ TYPE(F64); return TOK(SELECT); }
YY_BREAK
case 182:
YY_RULE_SETUP
-#line 316 "src/wasm-lexer.l"
+#line 332 "src/wasm-lexer.l"
{ return TOK(UNREACHABLE); }
YY_BREAK
case 183:
YY_RULE_SETUP
-#line 317 "src/wasm-lexer.l"
+#line 333 "src/wasm-lexer.l"
{ return TOK(MEMORY_SIZE); }
YY_BREAK
case 184:
YY_RULE_SETUP
-#line 318 "src/wasm-lexer.l"
+#line 334 "src/wasm-lexer.l"
{ return TOK(GROW_MEMORY); }
YY_BREAK
case 185:
YY_RULE_SETUP
-#line 319 "src/wasm-lexer.l"
+#line 335 "src/wasm-lexer.l"
{ return TOK(HAS_FEATURE); }
YY_BREAK
case 186:
YY_RULE_SETUP
-#line 320 "src/wasm-lexer.l"
+#line 336 "src/wasm-lexer.l"
{ return TOK(TYPE); }
YY_BREAK
case 187:
YY_RULE_SETUP
-#line 321 "src/wasm-lexer.l"
+#line 337 "src/wasm-lexer.l"
{ return TOK(FUNC); }
YY_BREAK
case 188:
YY_RULE_SETUP
-#line 322 "src/wasm-lexer.l"
+#line 338 "src/wasm-lexer.l"
{ return TOK(PARAM); }
YY_BREAK
case 189:
YY_RULE_SETUP
-#line 323 "src/wasm-lexer.l"
+#line 339 "src/wasm-lexer.l"
{ return TOK(RESULT); }
YY_BREAK
case 190:
YY_RULE_SETUP
-#line 324 "src/wasm-lexer.l"
+#line 340 "src/wasm-lexer.l"
{ return TOK(LOCAL); }
YY_BREAK
case 191:
YY_RULE_SETUP
-#line 325 "src/wasm-lexer.l"
+#line 341 "src/wasm-lexer.l"
{ return TOK(MODULE); }
YY_BREAK
case 192:
YY_RULE_SETUP
-#line 326 "src/wasm-lexer.l"
+#line 342 "src/wasm-lexer.l"
{ return TOK(MEMORY); }
YY_BREAK
case 193:
YY_RULE_SETUP
-#line 327 "src/wasm-lexer.l"
+#line 343 "src/wasm-lexer.l"
{ return TOK(SEGMENT); }
YY_BREAK
case 194:
YY_RULE_SETUP
-#line 328 "src/wasm-lexer.l"
+#line 344 "src/wasm-lexer.l"
{ return TOK(IMPORT); }
YY_BREAK
case 195:
YY_RULE_SETUP
-#line 329 "src/wasm-lexer.l"
+#line 345 "src/wasm-lexer.l"
{ return TOK(EXPORT); }
YY_BREAK
case 196:
YY_RULE_SETUP
-#line 330 "src/wasm-lexer.l"
+#line 346 "src/wasm-lexer.l"
{ return TOK(TABLE); }
YY_BREAK
case 197:
YY_RULE_SETUP
-#line 331 "src/wasm-lexer.l"
+#line 347 "src/wasm-lexer.l"
{ return TOK(ASSERT_INVALID); }
YY_BREAK
case 198:
YY_RULE_SETUP
-#line 332 "src/wasm-lexer.l"
+#line 348 "src/wasm-lexer.l"
{ return TOK(ASSERT_RETURN); }
YY_BREAK
case 199:
YY_RULE_SETUP
-#line 333 "src/wasm-lexer.l"
+#line 349 "src/wasm-lexer.l"
{ return TOK(ASSERT_RETURN_NAN); }
YY_BREAK
case 200:
YY_RULE_SETUP
-#line 334 "src/wasm-lexer.l"
+#line 350 "src/wasm-lexer.l"
{ return TOK(ASSERT_TRAP); }
YY_BREAK
case 201:
YY_RULE_SETUP
-#line 335 "src/wasm-lexer.l"
+#line 351 "src/wasm-lexer.l"
{ return TOK(INVOKE); }
YY_BREAK
case 202:
YY_RULE_SETUP
-#line 336 "src/wasm-lexer.l"
+#line 352 "src/wasm-lexer.l"
{ TEXT; return TOK(VAR); }
YY_BREAK
case 203:
YY_RULE_SETUP
-#line 338 "src/wasm-lexer.l"
+#line 354 "src/wasm-lexer.l"
{ return TOK(GLOBAL); }
YY_BREAK
case 204:
YY_RULE_SETUP
-#line 339 "src/wasm-lexer.l"
+#line 355 "src/wasm-lexer.l"
{ return TOK(LOAD_GLOBAL); }
YY_BREAK
case 205:
YY_RULE_SETUP
-#line 340 "src/wasm-lexer.l"
+#line 356 "src/wasm-lexer.l"
{ return TOK(STORE_GLOBAL); }
YY_BREAK
case 206:
YY_RULE_SETUP
-#line 342 "src/wasm-lexer.l"
+#line 358 "src/wasm-lexer.l"
{ BEGIN(LINE_COMMENT); }
YY_BREAK
case 207:
/* rule 207 can match eol */
YY_RULE_SETUP
-#line 343 "src/wasm-lexer.l"
+#line 359 "src/wasm-lexer.l"
{ RESET_COLUMN(yyscanner); BEGIN(INITIAL); }
YY_BREAK
case YY_STATE_EOF(LINE_COMMENT):
-#line 344 "src/wasm-lexer.l"
+#line 360 "src/wasm-lexer.l"
{ return TOK(EOF); }
YY_BREAK
case 208:
YY_RULE_SETUP
-#line 345 "src/wasm-lexer.l"
+#line 361 "src/wasm-lexer.l"
YY_BREAK
case 209:
YY_RULE_SETUP
-#line 346 "src/wasm-lexer.l"
+#line 362 "src/wasm-lexer.l"
{ BEGIN(BLOCK_COMMENT); COMMENT_NESTING(yyscanner) = 1; }
YY_BREAK
case 210:
YY_RULE_SETUP
-#line 347 "src/wasm-lexer.l"
+#line 363 "src/wasm-lexer.l"
{ COMMENT_NESTING(yyscanner)++; }
YY_BREAK
case 211:
YY_RULE_SETUP
-#line 348 "src/wasm-lexer.l"
+#line 364 "src/wasm-lexer.l"
{ if (--COMMENT_NESTING(yyscanner) == 0) BEGIN(INITIAL); }
YY_BREAK
case 212:
/* rule 212 can match eol */
YY_RULE_SETUP
-#line 349 "src/wasm-lexer.l"
+#line 365 "src/wasm-lexer.l"
{ RESET_COLUMN(yyscanner); }
YY_BREAK
case YY_STATE_EOF(BLOCK_COMMENT):
-#line 350 "src/wasm-lexer.l"
+#line 366 "src/wasm-lexer.l"
{ wasm_error(yylloc, &yyscanner, parser,
"unexpected EOF");
return TOK(EOF); }
YY_BREAK
case 213:
YY_RULE_SETUP
-#line 353 "src/wasm-lexer.l"
+#line 369 "src/wasm-lexer.l"
YY_BREAK
case 214:
/* rule 214 can match eol */
YY_RULE_SETUP
-#line 354 "src/wasm-lexer.l"
+#line 370 "src/wasm-lexer.l"
{ RESET_COLUMN(yyscanner); }
YY_BREAK
case 215:
YY_RULE_SETUP
-#line 355 "src/wasm-lexer.l"
+#line 371 "src/wasm-lexer.l"
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 356 "src/wasm-lexer.l"
+#line 372 "src/wasm-lexer.l"
{ return TOK(EOF); }
YY_BREAK
case 216:
YY_RULE_SETUP
-#line 357 "src/wasm-lexer.l"
+#line 373 "src/wasm-lexer.l"
{ wasm_error(yylloc, &yyscanner, parser,
"unexpected token \"%.*s\"", yyleng,
yytext); }
YY_BREAK
case 217:
YY_RULE_SETUP
-#line 360 "src/wasm-lexer.l"
+#line 376 "src/wasm-lexer.l"
{ wasm_error(yylloc, &yyscanner, parser,
"unexpected char"); }
YY_BREAK
case 218:
YY_RULE_SETUP
-#line 363 "src/wasm-lexer.l"
+#line 379 "src/wasm-lexer.l"
ECHO;
YY_BREAK
-#line 2755 "src/wasm-lexer.c"
+#line 2770 "src/wasm-lexer.c"
case YY_END_OF_BUFFER:
{
@@ -3937,7 +3952,7 @@ void wasm_free (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 362 "src/wasm-lexer.l"
+#line 378 "src/wasm-lexer.l"
diff --git a/src/wasm-lexer.l b/src/wasm-lexer.l
index f3edc8ab..b5c60896 100644
--- a/src/wasm-lexer.l
+++ b/src/wasm-lexer.l
@@ -1,3 +1,19 @@
+/*
+ * 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 "wasm.h"
#include "wasm-internal.h"
diff --git a/src/wasm-parser.c b/src/wasm-parser.c
index 38f061c2..0047ce5c 100644
--- a/src/wasm-parser.c
+++ b/src/wasm-parser.c
@@ -70,7 +70,7 @@
/* Copy the first part of user declarations. */
-#line 1 "src/wasm-parser.y" /* yacc.c:339 */
+#line 17 "src/wasm-parser.y" /* yacc.c:339 */
#include <assert.h>
#include <errno.h>
@@ -581,25 +581,25 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 173, 173, 174, 180, 181, 185, 189, 196, 197,
- 201, 210, 218, 219, 222, 226, 230, 234, 238, 239,
- 243, 244, 251, 252, 260, 263, 267, 272, 278, 285,
- 291, 297, 304, 311, 318, 326, 332, 337, 359, 365,
- 371, 378, 383, 389, 397, 406, 415, 421, 428, 436,
- 443, 449, 455, 459, 463, 468, 473, 478, 486, 487,
- 490, 494, 500, 501, 505, 509, 515, 516, 522, 523,
- 526, 527, 537, 542, 551, 556, 567, 570, 575, 584,
- 589, 600, 603, 607, 612, 618, 625, 633, 642, 652,
- 661, 669, 678, 686, 693, 701, 710, 718, 725, 733,
- 740, 746, 753, 759, 766, 774, 783, 791, 798, 806,
- 813, 819, 826, 834, 841, 847, 852, 858, 865, 873,
- 882, 890, 897, 905, 912, 918, 925, 933, 940, 946,
- 953, 959, 964, 970, 977, 985, 992, 998, 1005, 1011,
- 1016, 1022, 1029, 1035, 1040, 1046, 1053, 1059, 1070, 1071,
- 1078, 1088, 1099, 1103, 1110, 1114, 1121, 1129, 1136, 1147,
- 1154, 1158, 1170, 1171, 1179, 1187, 1195, 1203, 1211, 1219,
- 1229, 1307, 1308, 1314, 1319, 1326, 1332, 1341, 1342, 1349,
- 1358, 1359, 1362, 1363, 1370, 1376
+ 0, 189, 189, 190, 196, 197, 201, 205, 212, 213,
+ 217, 226, 234, 235, 238, 242, 246, 250, 254, 255,
+ 259, 260, 267, 268, 276, 279, 283, 288, 294, 301,
+ 307, 313, 320, 327, 334, 342, 348, 353, 375, 381,
+ 387, 394, 399, 405, 413, 422, 431, 437, 444, 452,
+ 459, 465, 471, 475, 479, 484, 489, 494, 502, 503,
+ 506, 510, 516, 517, 521, 525, 531, 532, 538, 539,
+ 542, 543, 553, 558, 567, 572, 583, 586, 591, 600,
+ 605, 616, 619, 623, 628, 634, 641, 649, 658, 668,
+ 677, 685, 694, 702, 709, 717, 726, 734, 741, 749,
+ 756, 762, 769, 775, 782, 790, 799, 807, 814, 822,
+ 829, 835, 842, 850, 857, 863, 868, 874, 881, 889,
+ 898, 906, 913, 921, 928, 934, 941, 949, 956, 962,
+ 969, 975, 980, 986, 993, 1001, 1008, 1014, 1021, 1027,
+ 1032, 1038, 1045, 1051, 1056, 1062, 1069, 1075, 1086, 1087,
+ 1094, 1104, 1115, 1119, 1126, 1130, 1137, 1145, 1152, 1163,
+ 1170, 1174, 1186, 1187, 1195, 1203, 1211, 1219, 1227, 1235,
+ 1245, 1323, 1324, 1330, 1335, 1342, 1348, 1357, 1358, 1365,
+ 1374, 1375, 1378, 1379, 1386, 1392
};
#endif
@@ -1496,223 +1496,223 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
switch (yytype)
{
case 61: /* value_type_list */
-#line 138 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 154 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_type_vector(&((*yyvaluep).types)); }
#line 1502 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 62: /* func_type */
-#line 152 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 168 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func_signature(&((*yyvaluep).func_sig)); }
#line 1508 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 63: /* literal */
-#line 137 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 153 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(&((*yyvaluep).text)); }
#line 1514 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 64: /* var */
-#line 139 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 155 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_var(&((*yyvaluep).var)); }
#line 1520 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 65: /* var_list */
-#line 140 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 156 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_var_vector_and_elements(&((*yyvaluep).vars)); }
#line 1526 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 66: /* bind_var */
-#line 137 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 153 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(&((*yyvaluep).text)); }
#line 1532 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 67: /* text */
-#line 137 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 153 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(&((*yyvaluep).text)); }
#line 1538 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 68: /* quoted_text */
-#line 137 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 153 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(&((*yyvaluep).text)); }
#line 1544 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 69: /* string_contents */
-#line 149 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 165 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_segment(&((*yyvaluep).segment)); }
#line 1550 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 70: /* labeling */
-#line 137 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 153 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_string_slice(&((*yyvaluep).text)); }
#line 1556 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 73: /* expr */
-#line 141 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 157 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_ptr(&((*yyvaluep).expr)); }
#line 1562 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 74: /* expr1 */
-#line 141 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 157 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_ptr(&((*yyvaluep).expr)); }
#line 1568 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 75: /* expr_opt */
-#line 141 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 157 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_ptr(&((*yyvaluep).expr)); }
#line 1574 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 76: /* non_empty_expr_list */
-#line 142 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 158 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_ptr_vector_and_elements(&((*yyvaluep).exprs)); }
#line 1580 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 77: /* expr_list */
-#line 142 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 158 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_expr_ptr_vector_and_elements(&((*yyvaluep).exprs)); }
#line 1586 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 78: /* target */
-#line 143 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 159 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_target(&((*yyvaluep).target)); }
#line 1592 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 79: /* target_list */
-#line 144 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 160 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_target_vector_and_elements(&((*yyvaluep).targets)); }
#line 1598 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 80: /* case */
-#line 145 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 161 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_case(&((*yyvaluep).case_)); }
#line 1604 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 81: /* case_list */
-#line 146 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 162 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_case_vector_and_elements(&((*yyvaluep).cases)); }
#line 1610 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 82: /* param_list */
-#line 147 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 163 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_type_bindings(&((*yyvaluep).type_bindings)); }
#line 1616 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 84: /* local_list */
-#line 147 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 163 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_type_bindings(&((*yyvaluep).type_bindings)); }
#line 1622 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 86: /* func_info */
-#line 148 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 164 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func(&((*yyvaluep).func)); }
#line 1628 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 87: /* func */
-#line 148 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 164 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func(&((*yyvaluep).func)); }
#line 1634 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 88: /* segment */
-#line 149 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 165 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_segment(&((*yyvaluep).segment)); }
#line 1640 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 89: /* segment_list */
-#line 150 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 166 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_segment_vector_and_elements(&((*yyvaluep).segments)); }
#line 1646 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 90: /* memory */
-#line 151 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 167 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_memory(&((*yyvaluep).memory)); }
#line 1652 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 91: /* type_def */
-#line 153 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 169 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_func_type(&((*yyvaluep).func_type)); }
#line 1658 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 92: /* table */
-#line 140 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 156 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_var_vector_and_elements(&((*yyvaluep).vars)); }
#line 1664 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 93: /* import */
-#line 154 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 170 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_import(&((*yyvaluep).import)); }
#line 1670 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 94: /* export */
-#line 155 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 171 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_export(&((*yyvaluep).export)); }
#line 1676 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 95: /* global */
-#line 147 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 163 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_type_bindings(&((*yyvaluep).type_bindings)); }
#line 1682 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 96: /* module_fields */
-#line 156 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 172 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_module_field_vector_and_elements(&((*yyvaluep).module_fields)); }
#line 1688 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 97: /* module */
-#line 157 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 173 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_module(&((*yyvaluep).module)); }
#line 1694 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 98: /* cmd */
-#line 159 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 175 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_command(&((*yyvaluep).command)); }
#line 1700 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 99: /* cmd_list */
-#line 160 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 176 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_command_vector_and_elements(&((*yyvaluep).commands)); }
#line 1706 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 102: /* const_list */
-#line 158 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 174 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_const_vector(&((*yyvaluep).consts)); }
#line 1712 "src/wasm-parser.c" /* yacc.c:1257 */
break;
case 103: /* script */
-#line 161 "src/wasm-parser.y" /* yacc.c:1257 */
+#line 177 "src/wasm-parser.y" /* yacc.c:1257 */
{ wasm_destroy_script(&((*yyvaluep).script)); }
#line 1718 "src/wasm-parser.c" /* yacc.c:1257 */
break;
@@ -2006,13 +2006,13 @@ yyreduce:
switch (yyn)
{
case 2:
-#line 173 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 189 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.types)); }
#line 2012 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 3:
-#line 174 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 190 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.types) = (yyvsp[-1].types);
CHECK_ALLOC(wasm_append_type_value(&(yyval.types), &(yyvsp[0].type)));
@@ -2021,13 +2021,13 @@ yyreduce:
break;
case 4:
-#line 180 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 196 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.func_sig)); }
#line 2027 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 5:
-#line 181 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 197 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig).result_type = WASM_TYPE_VOID;
(yyval.func_sig).param_types = (yyvsp[-1].types);
@@ -2036,7 +2036,7 @@ yyreduce:
break;
case 6:
-#line 185 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 201 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig).result_type = (yyvsp[-1].type);
(yyval.func_sig).param_types = (yyvsp[-5].types);
@@ -2045,25 +2045,25 @@ yyreduce:
break;
case 7:
-#line 189 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 205 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.func_sig)); (yyval.func_sig).result_type = (yyvsp[-1].type); }
#line 2051 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 8:
-#line 196 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 212 "src/wasm-parser.y" /* yacc.c:1646 */
{ DUPTEXT((yyval.text), (yyvsp[0].text)); CHECK_ALLOC_STR((yyval.text)); }
#line 2057 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 9:
-#line 197 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 213 "src/wasm-parser.y" /* yacc.c:1646 */
{ DUPTEXT((yyval.text), (yyvsp[0].text)); CHECK_ALLOC_STR((yyval.text)); }
#line 2063 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 10:
-#line 201 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 217 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.var).loc = (yylsp[0]);
(yyval.var).type = WASM_VAR_TYPE_INDEX;
@@ -2077,7 +2077,7 @@ yyreduce:
break;
case 11:
-#line 210 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 226 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.var).loc = (yylsp[0]);
(yyval.var).type = WASM_VAR_TYPE_NAME;
@@ -2088,61 +2088,61 @@ yyreduce:
break;
case 12:
-#line 218 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 234 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.vars)); }
#line 2094 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 13:
-#line 219 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 235 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.vars) = (yyvsp[-1].vars); CHECK_ALLOC(wasm_append_var_value(&(yyval.vars), &(yyvsp[0].var))); }
#line 2100 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 14:
-#line 222 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 238 "src/wasm-parser.y" /* yacc.c:1646 */
{ DUPTEXT((yyval.text), (yyvsp[0].text)); CHECK_ALLOC_STR((yyval.text)); }
#line 2106 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 15:
-#line 226 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 242 "src/wasm-parser.y" /* yacc.c:1646 */
{ DUPTEXT((yyval.text), (yyvsp[0].text)); CHECK_ALLOC_STR((yyval.text)); }
#line 2112 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 16:
-#line 230 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 246 "src/wasm-parser.y" /* yacc.c:1646 */
{ DUPQUOTEDTEXT((yyval.text), (yyvsp[0].text)); CHECK_ALLOC_STR((yyval.text)); }
#line 2118 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 17:
-#line 234 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 250 "src/wasm-parser.y" /* yacc.c:1646 */
{ CHECK_ALLOC(dup_string_contents(&(yyvsp[0].text), &(yyval.segment).data, &(yyval.segment).size)); }
#line 2124 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 18:
-#line 238 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 254 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.text)); }
#line 2130 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 19:
-#line 239 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 255 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.text) = (yyvsp[0].text); }
#line 2136 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 20:
-#line 243 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 259 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.u64) = 0; }
#line 2142 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 21:
-#line 244 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 260 "src/wasm-parser.y" /* yacc.c:1646 */
{
if (!read_int64((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u64)))
wasm_error(&(yylsp[0]), scanner, parser, "invalid offset \"%.*s\"", (yyvsp[0].text).length,
@@ -2152,13 +2152,13 @@ yyreduce:
break;
case 22:
-#line 251 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 267 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.u32) = WASM_USE_NATURAL_ALIGNMENT; }
#line 2158 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 23:
-#line 252 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 268 "src/wasm-parser.y" /* yacc.c:1646 */
{
if (!read_int32((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u32), 0))
wasm_error(&(yylsp[0]), scanner, parser, "invalid alignment \"%.*s\"",
@@ -2168,13 +2168,13 @@ yyreduce:
break;
case 24:
-#line 260 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 276 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.expr) = (yyvsp[-1].expr); (yyval.expr)->loc = (yylsp[-2]); }
#line 2174 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 25:
-#line 263 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 279 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_NOP);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2183,7 +2183,7 @@ yyreduce:
break;
case 26:
-#line 267 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 283 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_BLOCK);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2193,7 +2193,7 @@ yyreduce:
break;
case 27:
-#line 272 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 288 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_BLOCK);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2204,7 +2204,7 @@ yyreduce:
break;
case 28:
-#line 278 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 294 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_IF_ELSE);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2216,7 +2216,7 @@ yyreduce:
break;
case 29:
-#line 285 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 301 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_IF);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2227,7 +2227,7 @@ yyreduce:
break;
case 30:
-#line 291 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 307 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_BR_IF);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2238,7 +2238,7 @@ yyreduce:
break;
case 31:
-#line 297 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 313 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_BR_IF);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2250,7 +2250,7 @@ yyreduce:
break;
case 32:
-#line 304 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 320 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_LOOP);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2262,7 +2262,7 @@ yyreduce:
break;
case 33:
-#line 311 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 327 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_LOOP);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2274,7 +2274,7 @@ yyreduce:
break;
case 34:
-#line 318 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 334 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_BR);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2287,7 +2287,7 @@ yyreduce:
break;
case 35:
-#line 326 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 342 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_BR);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2298,7 +2298,7 @@ yyreduce:
break;
case 36:
-#line 332 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 348 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_RETURN);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2308,7 +2308,7 @@ yyreduce:
break;
case 37:
-#line 337 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 353 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_TABLESWITCH);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2335,7 +2335,7 @@ yyreduce:
break;
case 38:
-#line 359 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 375 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_CALL);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2346,7 +2346,7 @@ yyreduce:
break;
case 39:
-#line 365 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 381 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_CALL_IMPORT);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2357,7 +2357,7 @@ yyreduce:
break;
case 40:
-#line 371 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 387 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_CALL_INDIRECT);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2369,7 +2369,7 @@ yyreduce:
break;
case 41:
-#line 378 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 394 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_GET_LOCAL);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2379,7 +2379,7 @@ yyreduce:
break;
case 42:
-#line 383 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 399 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_SET_LOCAL);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2390,7 +2390,7 @@ yyreduce:
break;
case 43:
-#line 389 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 405 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_LOAD);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2403,7 +2403,7 @@ yyreduce:
break;
case 44:
-#line 397 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 413 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_STORE);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2417,7 +2417,7 @@ yyreduce:
break;
case 45:
-#line 406 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 422 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_CONST);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2431,7 +2431,7 @@ yyreduce:
break;
case 46:
-#line 415 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 431 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_UNARY);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2442,7 +2442,7 @@ yyreduce:
break;
case 47:
-#line 421 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 437 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_BINARY);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2454,7 +2454,7 @@ yyreduce:
break;
case 48:
-#line 428 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 444 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_SELECT);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2467,7 +2467,7 @@ yyreduce:
break;
case 49:
-#line 436 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 452 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_COMPARE);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2479,7 +2479,7 @@ yyreduce:
break;
case 50:
-#line 443 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 459 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_CONVERT);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2490,7 +2490,7 @@ yyreduce:
break;
case 51:
-#line 449 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 465 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_CAST);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2501,7 +2501,7 @@ yyreduce:
break;
case 52:
-#line 455 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 471 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_UNREACHABLE);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2510,7 +2510,7 @@ yyreduce:
break;
case 53:
-#line 459 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 475 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_MEMORY_SIZE);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2519,7 +2519,7 @@ yyreduce:
break;
case 54:
-#line 463 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 479 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_GROW_MEMORY);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2529,7 +2529,7 @@ yyreduce:
break;
case 55:
-#line 468 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 484 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_HAS_FEATURE);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2539,7 +2539,7 @@ yyreduce:
break;
case 56:
-#line 473 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 489 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_LOAD_GLOBAL);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2549,7 +2549,7 @@ yyreduce:
break;
case 57:
-#line 478 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 494 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = wasm_new_expr(WASM_EXPR_TYPE_STORE_GLOBAL);
CHECK_ALLOC_NULL((yyval.expr));
@@ -2560,13 +2560,13 @@ yyreduce:
break;
case 58:
-#line 486 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 502 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.expr) = NULL; }
#line 2566 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 60:
-#line 490 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 506 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.exprs));
CHECK_ALLOC(wasm_append_expr_ptr_value(&(yyval.exprs), &(yyvsp[0].expr)));
@@ -2575,7 +2575,7 @@ yyreduce:
break;
case 61:
-#line 494 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 510 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.exprs) = (yyvsp[-1].exprs);
CHECK_ALLOC(wasm_append_expr_ptr_value(&(yyval.exprs), &(yyvsp[0].expr)));
@@ -2584,13 +2584,13 @@ yyreduce:
break;
case 62:
-#line 500 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 516 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.exprs)); }
#line 2590 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 64:
-#line 505 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 521 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.target).type = WASM_TARGET_TYPE_CASE;
(yyval.target).var = (yyvsp[-1].var);
@@ -2599,7 +2599,7 @@ yyreduce:
break;
case 65:
-#line 509 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 525 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.target).type = WASM_TARGET_TYPE_BR;
(yyval.target).var = (yyvsp[-1].var);
@@ -2608,13 +2608,13 @@ yyreduce:
break;
case 66:
-#line 515 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 531 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.targets)); }
#line 2614 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 67:
-#line 516 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 532 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.targets) = (yyvsp[-1].targets);
CHECK_ALLOC(wasm_append_target_value(&(yyval.targets), &(yyvsp[0].target)));
@@ -2623,25 +2623,25 @@ yyreduce:
break;
case 68:
-#line 522 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 538 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.case_).label); (yyval.case_).exprs = (yyvsp[-1].exprs); }
#line 2629 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 69:
-#line 523 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 539 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.case_).label = (yyvsp[-2].text); (yyval.case_).exprs = (yyvsp[-1].exprs); }
#line 2635 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 70:
-#line 526 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 542 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.cases)); }
#line 2641 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 71:
-#line 527 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 543 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.cases) = (yyvsp[-1].cases);
CHECK_ALLOC(wasm_append_case_value(&(yyval.cases), &(yyvsp[0].case_)));
@@ -2650,7 +2650,7 @@ yyreduce:
break;
case 72:
-#line 537 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 553 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.type_bindings));
CHECK_ALLOC(wasm_extend_types(&(yyval.type_bindings).types, &(yyvsp[-1].types)));
@@ -2660,7 +2660,7 @@ yyreduce:
break;
case 73:
-#line 542 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 558 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.type_bindings));
WasmBinding* binding = wasm_append_binding(&(yyval.type_bindings).bindings);
@@ -2674,7 +2674,7 @@ yyreduce:
break;
case 74:
-#line 551 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 567 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.type_bindings) = (yyvsp[-4].type_bindings);
CHECK_ALLOC(wasm_extend_types(&(yyval.type_bindings).types, &(yyvsp[-1].types)));
@@ -2684,7 +2684,7 @@ yyreduce:
break;
case 75:
-#line 556 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 572 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.type_bindings) = (yyvsp[-5].type_bindings);
WasmBinding* binding = wasm_append_binding(&(yyval.type_bindings).bindings);
@@ -2698,13 +2698,13 @@ yyreduce:
break;
case 76:
-#line 567 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 583 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.type) = (yyvsp[-1].type); }
#line 2704 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 77:
-#line 570 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 586 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.type_bindings));
CHECK_ALLOC(wasm_extend_types(&(yyval.type_bindings).types, &(yyvsp[-1].types)));
@@ -2714,7 +2714,7 @@ yyreduce:
break;
case 78:
-#line 575 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 591 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.type_bindings));
WasmBinding* binding = wasm_append_binding(&(yyval.type_bindings).bindings);
@@ -2728,7 +2728,7 @@ yyreduce:
break;
case 79:
-#line 584 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 600 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.type_bindings) = (yyvsp[-4].type_bindings);
CHECK_ALLOC(wasm_extend_types(&(yyval.type_bindings).types, &(yyvsp[-1].types)));
@@ -2738,7 +2738,7 @@ yyreduce:
break;
case 80:
-#line 589 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 605 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.type_bindings) = (yyvsp[-5].type_bindings);
WasmBinding* binding = wasm_append_binding(&(yyval.type_bindings).bindings);
@@ -2752,13 +2752,13 @@ yyreduce:
break;
case 81:
-#line 600 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 616 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.var) = (yyvsp[-1].var); }
#line 2758 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 82:
-#line 603 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 619 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2767,7 +2767,7 @@ yyreduce:
break;
case 83:
-#line 607 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 623 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2777,7 +2777,7 @@ yyreduce:
break;
case 84:
-#line 612 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 628 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE;
@@ -2788,7 +2788,7 @@ yyreduce:
break;
case 85:
-#line 618 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 634 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2800,7 +2800,7 @@ yyreduce:
break;
case 86:
-#line 625 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 641 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2813,7 +2813,7 @@ yyreduce:
break;
case 87:
-#line 633 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 649 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2827,7 +2827,7 @@ yyreduce:
break;
case 88:
-#line 642 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 658 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2842,7 +2842,7 @@ yyreduce:
break;
case 89:
-#line 652 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 668 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2856,7 +2856,7 @@ yyreduce:
break;
case 90:
-#line 661 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 677 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2869,7 +2869,7 @@ yyreduce:
break;
case 91:
-#line 669 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 685 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2883,7 +2883,7 @@ yyreduce:
break;
case 92:
-#line 678 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 694 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2896,7 +2896,7 @@ yyreduce:
break;
case 93:
-#line 686 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 702 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2908,7 +2908,7 @@ yyreduce:
break;
case 94:
-#line 693 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 709 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2921,7 +2921,7 @@ yyreduce:
break;
case 95:
-#line 701 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 717 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2935,7 +2935,7 @@ yyreduce:
break;
case 96:
-#line 710 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 726 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2948,7 +2948,7 @@ yyreduce:
break;
case 97:
-#line 718 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 734 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE;
@@ -2960,7 +2960,7 @@ yyreduce:
break;
case 98:
-#line 725 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 741 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE;
@@ -2973,7 +2973,7 @@ yyreduce:
break;
case 99:
-#line 733 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 749 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE;
@@ -2985,7 +2985,7 @@ yyreduce:
break;
case 100:
-#line 740 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 756 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -2996,7 +2996,7 @@ yyreduce:
break;
case 101:
-#line 746 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 762 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3008,7 +3008,7 @@ yyreduce:
break;
case 102:
-#line 753 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 769 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3019,7 +3019,7 @@ yyreduce:
break;
case 103:
-#line 759 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 775 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3031,7 +3031,7 @@ yyreduce:
break;
case 104:
-#line 766 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 782 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3044,7 +3044,7 @@ yyreduce:
break;
case 105:
-#line 774 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 790 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3058,7 +3058,7 @@ yyreduce:
break;
case 106:
-#line 783 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 799 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3071,7 +3071,7 @@ yyreduce:
break;
case 107:
-#line 791 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 807 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3083,7 +3083,7 @@ yyreduce:
break;
case 108:
-#line 798 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 814 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3096,7 +3096,7 @@ yyreduce:
break;
case 109:
-#line 806 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 822 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3108,7 +3108,7 @@ yyreduce:
break;
case 110:
-#line 813 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 829 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3119,7 +3119,7 @@ yyreduce:
break;
case 111:
-#line 819 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 835 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3131,7 +3131,7 @@ yyreduce:
break;
case 112:
-#line 826 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 842 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3144,7 +3144,7 @@ yyreduce:
break;
case 113:
-#line 834 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 850 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3156,7 +3156,7 @@ yyreduce:
break;
case 114:
-#line 841 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 857 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3167,7 +3167,7 @@ yyreduce:
break;
case 115:
-#line 847 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 863 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE;
@@ -3177,7 +3177,7 @@ yyreduce:
break;
case 116:
-#line 852 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 868 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3188,7 +3188,7 @@ yyreduce:
break;
case 117:
-#line 858 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 874 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3200,7 +3200,7 @@ yyreduce:
break;
case 118:
-#line 865 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 881 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3213,7 +3213,7 @@ yyreduce:
break;
case 119:
-#line 873 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 889 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3227,7 +3227,7 @@ yyreduce:
break;
case 120:
-#line 882 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 898 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3240,7 +3240,7 @@ yyreduce:
break;
case 121:
-#line 890 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 906 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3252,7 +3252,7 @@ yyreduce:
break;
case 122:
-#line 897 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 913 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3265,7 +3265,7 @@ yyreduce:
break;
case 123:
-#line 905 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 921 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3277,7 +3277,7 @@ yyreduce:
break;
case 124:
-#line 912 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 928 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3288,7 +3288,7 @@ yyreduce:
break;
case 125:
-#line 918 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 934 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3300,7 +3300,7 @@ yyreduce:
break;
case 126:
-#line 925 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 941 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3313,7 +3313,7 @@ yyreduce:
break;
case 127:
-#line 933 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 949 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE | WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3325,7 +3325,7 @@ yyreduce:
break;
case 128:
-#line 940 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 956 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE;
@@ -3336,7 +3336,7 @@ yyreduce:
break;
case 129:
-#line 946 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 962 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE;
@@ -3348,7 +3348,7 @@ yyreduce:
break;
case 130:
-#line 953 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 969 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_FUNC_TYPE;
@@ -3359,7 +3359,7 @@ yyreduce:
break;
case 131:
-#line 959 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 975 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3369,7 +3369,7 @@ yyreduce:
break;
case 132:
-#line 964 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 980 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3380,7 +3380,7 @@ yyreduce:
break;
case 133:
-#line 970 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 986 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3392,7 +3392,7 @@ yyreduce:
break;
case 134:
-#line 977 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 993 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3405,7 +3405,7 @@ yyreduce:
break;
case 135:
-#line 985 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1001 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3417,7 +3417,7 @@ yyreduce:
break;
case 136:
-#line 992 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1008 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3428,7 +3428,7 @@ yyreduce:
break;
case 137:
-#line 998 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1014 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3440,7 +3440,7 @@ yyreduce:
break;
case 138:
-#line 1005 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1021 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3451,7 +3451,7 @@ yyreduce:
break;
case 139:
-#line 1011 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1027 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3461,7 +3461,7 @@ yyreduce:
break;
case 140:
-#line 1016 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1032 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3472,7 +3472,7 @@ yyreduce:
break;
case 141:
-#line 1022 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1038 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3484,7 +3484,7 @@ yyreduce:
break;
case 142:
-#line 1029 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1045 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3495,7 +3495,7 @@ yyreduce:
break;
case 143:
-#line 1035 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1051 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3505,7 +3505,7 @@ yyreduce:
break;
case 144:
-#line 1040 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1056 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3516,7 +3516,7 @@ yyreduce:
break;
case 145:
-#line 1046 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1062 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func));
(yyval.func).flags = WASM_FUNC_FLAG_HAS_SIGNATURE;
@@ -3526,13 +3526,13 @@ yyreduce:
break;
case 146:
-#line 1053 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1069 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.func) = (yyvsp[-1].func); (yyval.func).loc = (yylsp[-2]); }
#line 3532 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 147:
-#line 1059 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1075 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.segment).loc = (yylsp[-3]);
(yyval.segment).data = (yyvsp[-1].segment).data;
@@ -3546,13 +3546,13 @@ yyreduce:
break;
case 148:
-#line 1070 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1086 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.segments)); }
#line 3552 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 149:
-#line 1071 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1087 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.segments) = (yyvsp[-1].segments);
CHECK_ALLOC(wasm_append_segment_value(&(yyval.segments), &(yyvsp[0].segment)));
@@ -3561,7 +3561,7 @@ yyreduce:
break;
case 150:
-#line 1078 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1094 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.memory).loc = (yylsp[-4]);
if (!read_int32((yyvsp[-3].text).start, (yyvsp[-3].text).start + (yyvsp[-3].text).length, &(yyval.memory).initial_size, 0))
@@ -3576,7 +3576,7 @@ yyreduce:
break;
case 151:
-#line 1088 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1104 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.memory).loc = (yylsp[-3]);
if (!read_int32((yyvsp[-2].text).start, (yyvsp[-2].text).start + (yyvsp[-2].text).length, &(yyval.memory).initial_size, 0))
@@ -3589,7 +3589,7 @@ yyreduce:
break;
case 152:
-#line 1099 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1115 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.func_type));
(yyval.func_type).sig = (yyvsp[-2].func_sig);
@@ -3598,7 +3598,7 @@ yyreduce:
break;
case 153:
-#line 1103 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1119 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.func_type).name = (yyvsp[-5].text);
(yyval.func_type).sig = (yyvsp[-2].func_sig);
@@ -3607,13 +3607,13 @@ yyreduce:
break;
case 154:
-#line 1110 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1126 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.vars) = (yyvsp[-1].vars); }
#line 3613 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 155:
-#line 1114 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1130 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.import));
(yyval.import).import_type = WASM_IMPORT_HAS_TYPE;
@@ -3625,7 +3625,7 @@ yyreduce:
break;
case 156:
-#line 1121 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1137 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.import));
(yyval.import).import_type = WASM_IMPORT_HAS_TYPE;
@@ -3638,7 +3638,7 @@ yyreduce:
break;
case 157:
-#line 1129 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1145 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.import));
(yyval.import).import_type = WASM_IMPORT_HAS_FUNC_SIGNATURE;
@@ -3650,7 +3650,7 @@ yyreduce:
break;
case 158:
-#line 1136 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1152 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.import));
(yyval.import).import_type = WASM_IMPORT_HAS_FUNC_SIGNATURE;
@@ -3663,7 +3663,7 @@ yyreduce:
break;
case 159:
-#line 1147 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1163 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.export).name = (yyvsp[-2].text);
(yyval.export).var = (yyvsp[-1].var);
@@ -3672,7 +3672,7 @@ yyreduce:
break;
case 160:
-#line 1154 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1170 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.type_bindings));
(yyval.type_bindings).types = (yyvsp[-1].types);
@@ -3681,7 +3681,7 @@ yyreduce:
break;
case 161:
-#line 1158 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1174 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.type_bindings));
WasmBinding* binding = wasm_append_binding(&(yyval.type_bindings).bindings);
@@ -3695,13 +3695,13 @@ yyreduce:
break;
case 162:
-#line 1170 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1186 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.module_fields)); }
#line 3701 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 163:
-#line 1171 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1187 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
WasmModuleField* field = wasm_append_module_field(&(yyval.module_fields));
@@ -3714,7 +3714,7 @@ yyreduce:
break;
case 164:
-#line 1179 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1195 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
WasmModuleField* field = wasm_append_module_field(&(yyval.module_fields));
@@ -3727,7 +3727,7 @@ yyreduce:
break;
case 165:
-#line 1187 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1203 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
WasmModuleField* field = wasm_append_module_field(&(yyval.module_fields));
@@ -3740,7 +3740,7 @@ yyreduce:
break;
case 166:
-#line 1195 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1211 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
WasmModuleField* field = wasm_append_module_field(&(yyval.module_fields));
@@ -3753,7 +3753,7 @@ yyreduce:
break;
case 167:
-#line 1203 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1219 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
WasmModuleField* field = wasm_append_module_field(&(yyval.module_fields));
@@ -3766,7 +3766,7 @@ yyreduce:
break;
case 168:
-#line 1211 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1227 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
WasmModuleField* field = wasm_append_module_field(&(yyval.module_fields));
@@ -3779,7 +3779,7 @@ yyreduce:
break;
case 169:
-#line 1219 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1235 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.module_fields) = (yyvsp[-1].module_fields);
WasmModuleField* field = wasm_append_module_field(&(yyval.module_fields));
@@ -3792,7 +3792,7 @@ yyreduce:
break;
case 170:
-#line 1229 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1245 "src/wasm-parser.y" /* yacc.c:1646 */
{
ZEROMEM((yyval.module));
(yyval.module).loc = (yylsp[-2]);
@@ -3869,13 +3869,13 @@ yyreduce:
break;
case 171:
-#line 1307 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1323 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.command).type = WASM_COMMAND_TYPE_MODULE; (yyval.command).module = (yyvsp[0].module); }
#line 3875 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 172:
-#line 1308 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1324 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.command).type = WASM_COMMAND_TYPE_INVOKE;
(yyval.command).invoke.loc = (yylsp[-3]);
@@ -3886,7 +3886,7 @@ yyreduce:
break;
case 173:
-#line 1314 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1330 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.command).type = WASM_COMMAND_TYPE_ASSERT_INVALID;
(yyval.command).assert_invalid.module = (yyvsp[-2].module);
@@ -3896,7 +3896,7 @@ yyreduce:
break;
case 174:
-#line 1319 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1335 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.command).type = WASM_COMMAND_TYPE_ASSERT_RETURN;
(yyval.command).assert_return.invoke.loc = (yylsp[-5]);
@@ -3908,7 +3908,7 @@ yyreduce:
break;
case 175:
-#line 1326 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1342 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.command).type = WASM_COMMAND_TYPE_ASSERT_RETURN_NAN;
(yyval.command).assert_return_nan.invoke.loc = (yylsp[-4]);
@@ -3919,7 +3919,7 @@ yyreduce:
break;
case 176:
-#line 1332 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1348 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.command).type = WASM_COMMAND_TYPE_ASSERT_TRAP;
(yyval.command).assert_trap.invoke.loc = (yylsp[-5]);
@@ -3931,13 +3931,13 @@ yyreduce:
break;
case 177:
-#line 1341 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1357 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.commands)); }
#line 3937 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 178:
-#line 1342 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1358 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.commands) = (yyvsp[-1].commands);
CHECK_ALLOC(wasm_append_command_value(&(yyval.commands), &(yyvsp[0].command)));
@@ -3946,7 +3946,7 @@ yyreduce:
break;
case 179:
-#line 1349 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1365 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.const_).loc = (yylsp[-2]);
if (!read_const((yyvsp[-2].type), (yyvsp[-1].text).start, (yyvsp[-1].text).start + (yyvsp[-1].text).length, &(yyval.const_)))
@@ -3958,19 +3958,19 @@ yyreduce:
break;
case 180:
-#line 1358 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1374 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.const_).type = WASM_TYPE_VOID; }
#line 3964 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 182:
-#line 1362 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1378 "src/wasm-parser.y" /* yacc.c:1646 */
{ ZEROMEM((yyval.consts)); }
#line 3970 "src/wasm-parser.c" /* yacc.c:1646 */
break;
case 183:
-#line 1363 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1379 "src/wasm-parser.y" /* yacc.c:1646 */
{
(yyval.consts) = (yyvsp[-1].consts);
CHECK_ALLOC(wasm_append_const_value(&(yyval.consts), &(yyvsp[0].const_)));
@@ -3979,7 +3979,7 @@ yyreduce:
break;
case 184:
-#line 1370 "src/wasm-parser.y" /* yacc.c:1646 */
+#line 1386 "src/wasm-parser.y" /* yacc.c:1646 */
{ (yyval.script).commands = (yyvsp[0].commands); parser->script = (yyval.script); }
#line 3985 "src/wasm-parser.c" /* yacc.c:1646 */
break;
@@ -4220,7 +4220,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 1379 "src/wasm-parser.y" /* yacc.c:1906 */
+#line 1395 "src/wasm-parser.y" /* yacc.c:1906 */
void wasm_error(WasmLocation* loc,
diff --git a/src/wasm-parser.y b/src/wasm-parser.y
index 84a3101e..1785308c 100644
--- a/src/wasm-parser.y
+++ b/src/wasm-parser.y
@@ -1,3 +1,19 @@
+/*
+ * 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 <assert.h>
#include <errno.h>
diff --git a/src/wasm-vector.c b/src/wasm-vector.c
index 52982da6..c8808775 100644
--- a/src/wasm-vector.c
+++ b/src/wasm-vector.c
@@ -1,3 +1,19 @@
+/*
+ * 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 "wasm-vector.h"
#include <memory.h>
diff --git a/src/wasm-vector.h b/src/wasm-vector.h
index 13fbdff0..f3ec87d9 100644
--- a/src/wasm-vector.h
+++ b/src/wasm-vector.h
@@ -1,3 +1,19 @@
+/*
+ * 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.
+ */
+
#ifndef WASM_VECTOR_H_
#define WASM_VECTOR_H_
diff --git a/src/wasm-writer.c b/src/wasm-writer.c
index b2f28feb..f878aff1 100644
--- a/src/wasm-writer.c
+++ b/src/wasm-writer.c
@@ -1,3 +1,19 @@
+/*
+ * 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 "wasm-writer.h"
#include <errno.h>
diff --git a/src/wasm-writer.h b/src/wasm-writer.h
index e036d32b..c53e8b4a 100644
--- a/src/wasm-writer.h
+++ b/src/wasm-writer.h
@@ -1,3 +1,19 @@
+/*
+ * 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.
+ */
+
#ifndef WASM_WRITER_H_
#define WASM_WRITER_H_
diff --git a/src/wasm.c b/src/wasm.c
index 1014836a..906fb078 100644
--- a/src/wasm.c
+++ b/src/wasm.c
@@ -1,3 +1,19 @@
+/*
+ * 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 "wasm.h"
#include <assert.h>
diff --git a/src/wasm.h b/src/wasm.h
index 527a29c0..b068c6af 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -1,3 +1,19 @@
+/*
+ * 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.
+ */
+
#ifndef WASM_H_
#define WASM_H_
diff --git a/test/run-d8.py b/test/run-d8.py
index cf3a2827..738e7e84 100755
--- a/test/run-d8.py
+++ b/test/run-d8.py
@@ -1,4 +1,19 @@
#!/usr/bin/env python
+#
+# 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.
+#
import argparse
import os
diff --git a/test/run-tests.py b/test/run-tests.py
index 64bae20f..543c0806 100755
--- a/test/run-tests.py
+++ b/test/run-tests.py
@@ -1,7 +1,19 @@
#!/usr/bin/env python
-# Copyright 2015 The Native Client Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
+#
+# 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.
+#
import argparse
import difflib
diff --git a/test/spec.js b/test/spec.js
index 8accb5cb..210ece7a 100644
--- a/test/spec.js
+++ b/test/spec.js
@@ -1,3 +1,19 @@
+/*
+ * 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.
+ */
+
var quiet; /* global, defined by output from sexpr-wasm */
var passed = 0;
var failed = 0;
diff --git a/test/wasm.js b/test/wasm.js
index eaec352b..ba6232a2 100644
--- a/test/wasm.js
+++ b/test/wasm.js
@@ -1,3 +1,19 @@
+/*
+ * 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.
+ */
+
if (arguments.length != 1) {
print('usage: d8 wasm.js -- <filename>');
quit(0);