summaryrefslogtreecommitdiff
path: root/src/prebuilt/ast-parser-gen.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/prebuilt/ast-parser-gen.cc')
-rw-r--r--src/prebuilt/ast-parser-gen.cc980
1 files changed, 491 insertions, 489 deletions
diff --git a/src/prebuilt/ast-parser-gen.cc b/src/prebuilt/ast-parser-gen.cc
index 1cc209b7..a756c8d2 100644
--- a/src/prebuilt/ast-parser-gen.cc
+++ b/src/prebuilt/ast-parser-gen.cc
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.4. */
+/* A Bison parser, made by GNU Bison 3.0.2. */
/* Bison implementation for Yacc-like parsers in C
- Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "3.0.4"
+#define YYBISON_VERSION "3.0.2"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -82,6 +82,7 @@
#include "ast-parser.h"
#include "ast-parser-lexer-shared.h"
+#include "binary-error-handler.h"
#include "binary-reader-ast.h"
#include "binary-reader.h"
#include "literal.h"
@@ -218,20 +219,22 @@ void append_implicit_func_declaration(Location*,
Module*,
FuncDeclaration*);
-struct BinaryErrorCallbackData {
- Location* loc;
- AstLexer* lexer;
- AstParser* parser;
-};
+class BinaryErrorHandlerModule : public BinaryErrorHandler {
+ public:
+ BinaryErrorHandlerModule(Location* loc, AstLexer* lexer, AstParser* parser);
+ bool OnError(uint32_t offset, const std::string& error) override;
-static bool on_read_binary_error(uint32_t offset, const char* error,
- void* user_data);
+ private:
+ Location* loc_;
+ AstLexer* lexer_;
+ AstParser* parser_;
+};
#define wabt_ast_parser_lex ast_lexer_lex
#define wabt_ast_parser_error ast_parser_error
-#line 235 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:339 */
+#line 238 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:339 */
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
@@ -379,7 +382,7 @@ int wabt_ast_parser_parse (::wabt::AstLexer* lexer, ::wabt::AstParser* parser);
/* Copy the second part of user declarations. */
-#line 383 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:358 */
+#line 386 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:358 */
#ifdef short
# undef short
@@ -685,24 +688,24 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 293, 293, 299, 309, 310, 314, 332, 333, 339,
- 342, 347, 354, 357, 358, 363, 370, 378, 384, 390,
- 395, 402, 408, 419, 423, 427, 434, 439, 446, 447,
- 453, 454, 457, 461, 462, 466, 467, 477, 478, 489,
- 490, 491, 494, 497, 500, 503, 506, 509, 512, 515,
- 518, 521, 524, 527, 530, 533, 536, 539, 542, 545,
- 558, 561, 564, 567, 570, 573, 578, 583, 588, 593,
- 601, 610, 614, 617, 622, 627, 637, 641, 645, 649,
- 653, 657, 664, 665, 673, 674, 682, 687, 688, 694,
- 700, 710, 716, 722, 732, 784, 794, 801, 809, 819,
- 822, 826, 833, 845, 853, 875, 882, 894, 902, 923,
- 945, 953, 966, 974, 982, 988, 994, 1002, 1007, 1015,
- 1023, 1029, 1035, 1044, 1052, 1057, 1062, 1067, 1074, 1081,
- 1085, 1088, 1100, 1105, 1114, 1118, 1121, 1128, 1137, 1154,
- 1171, 1183, 1189, 1195, 1201, 1234, 1244, 1264, 1275, 1303,
- 1308, 1316, 1326, 1336, 1342, 1348, 1354, 1360, 1366, 1371,
- 1376, 1382, 1391, 1396, 1397, 1402, 1411, 1412, 1419, 1431,
- 1432, 1439, 1505
+ 0, 296, 296, 302, 312, 313, 317, 335, 336, 342,
+ 345, 350, 357, 360, 361, 366, 373, 381, 387, 393,
+ 398, 405, 411, 422, 426, 430, 437, 442, 449, 450,
+ 456, 457, 460, 464, 465, 469, 470, 480, 481, 492,
+ 493, 494, 497, 500, 503, 506, 509, 512, 515, 518,
+ 521, 524, 527, 530, 533, 536, 539, 542, 545, 548,
+ 561, 564, 567, 570, 573, 576, 581, 586, 591, 596,
+ 604, 613, 617, 620, 625, 630, 640, 644, 648, 652,
+ 656, 660, 667, 668, 676, 677, 685, 690, 691, 697,
+ 703, 713, 719, 725, 735, 787, 797, 804, 812, 822,
+ 825, 829, 836, 848, 856, 878, 885, 897, 905, 926,
+ 948, 956, 969, 977, 985, 991, 997, 1005, 1010, 1018,
+ 1026, 1032, 1038, 1047, 1055, 1060, 1065, 1070, 1077, 1084,
+ 1088, 1091, 1103, 1108, 1117, 1121, 1124, 1131, 1140, 1157,
+ 1174, 1186, 1192, 1198, 1204, 1237, 1247, 1267, 1278, 1300,
+ 1305, 1313, 1323, 1333, 1339, 1345, 1351, 1357, 1363, 1368,
+ 1373, 1379, 1388, 1393, 1394, 1399, 1408, 1409, 1416, 1428,
+ 1429, 1436, 1502
};
#endif
@@ -1642,363 +1645,363 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio
switch (yytype)
{
case 5: /* NAT */
-#line 250 "src/ast-parser.y" /* yacc.c:1257 */
+#line 253 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1648 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1651 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 6: /* INT */
-#line 250 "src/ast-parser.y" /* yacc.c:1257 */
+#line 253 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1654 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1657 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 7: /* FLOAT */
-#line 250 "src/ast-parser.y" /* yacc.c:1257 */
+#line 253 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1660 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1663 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 8: /* TEXT */
-#line 250 "src/ast-parser.y" /* yacc.c:1257 */
+#line 253 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1666 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1669 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 9: /* VAR */
-#line 250 "src/ast-parser.y" /* yacc.c:1257 */
+#line 253 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1672 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1675 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 35: /* OFFSET_EQ_NAT */
-#line 250 "src/ast-parser.y" /* yacc.c:1257 */
+#line 253 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1678 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1681 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 36: /* ALIGN_EQ_NAT */
-#line 250 "src/ast-parser.y" /* yacc.c:1257 */
+#line 253 "src/ast-parser.y" /* yacc.c:1257 */
{}
-#line 1684 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1687 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 76: /* non_empty_text_list */
-#line 277 "src/ast-parser.y" /* yacc.c:1257 */
+#line 280 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_text_list(&((*yyvaluep).text_list)); }
-#line 1690 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1693 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 77: /* text_list */
-#line 277 "src/ast-parser.y" /* yacc.c:1257 */
+#line 280 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_text_list(&((*yyvaluep).text_list)); }
-#line 1696 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1699 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 78: /* quoted_text */
-#line 251 "src/ast-parser.y" /* yacc.c:1257 */
+#line 254 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).text)); }
-#line 1702 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1705 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 79: /* value_type_list */
-#line 278 "src/ast-parser.y" /* yacc.c:1257 */
+#line 281 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).types); }
-#line 1708 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1711 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 81: /* global_type */
-#line 270 "src/ast-parser.y" /* yacc.c:1257 */
+#line 273 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).global); }
-#line 1714 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1717 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 82: /* func_type */
-#line 268 "src/ast-parser.y" /* yacc.c:1257 */
+#line 271 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func_sig); }
-#line 1720 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1723 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 83: /* func_sig */
-#line 268 "src/ast-parser.y" /* yacc.c:1257 */
+#line 271 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func_sig); }
-#line 1726 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1729 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 85: /* memory_sig */
-#line 273 "src/ast-parser.y" /* yacc.c:1257 */
+#line 276 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).memory); }
-#line 1732 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1735 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 87: /* type_use */
-#line 279 "src/ast-parser.y" /* yacc.c:1257 */
+#line 282 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_var(&((*yyvaluep).var)); }
-#line 1738 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1741 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 89: /* literal */
-#line 252 "src/ast-parser.y" /* yacc.c:1257 */
+#line 255 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).literal).text); }
-#line 1744 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1747 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 90: /* var */
-#line 279 "src/ast-parser.y" /* yacc.c:1257 */
+#line 282 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_var(&((*yyvaluep).var)); }
-#line 1750 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1753 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 91: /* var_list */
-#line 280 "src/ast-parser.y" /* yacc.c:1257 */
+#line 283 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).vars); }
-#line 1756 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1759 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 92: /* bind_var_opt */
-#line 251 "src/ast-parser.y" /* yacc.c:1257 */
+#line 254 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).text)); }
-#line 1762 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1765 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 93: /* bind_var */
-#line 251 "src/ast-parser.y" /* yacc.c:1257 */
+#line 254 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).text)); }
-#line 1768 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1771 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 94: /* labeling_opt */
-#line 251 "src/ast-parser.y" /* yacc.c:1257 */
+#line 254 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_string_slice(&((*yyvaluep).text)); }
-#line 1774 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1777 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 97: /* instr */
-#line 265 "src/ast-parser.y" /* yacc.c:1257 */
+#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1780 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1783 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 98: /* plain_instr */
-#line 264 "src/ast-parser.y" /* yacc.c:1257 */
+#line 267 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr); }
-#line 1786 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1789 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 99: /* block_instr */
-#line 264 "src/ast-parser.y" /* yacc.c:1257 */
+#line 267 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).expr); }
-#line 1792 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1795 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 100: /* block */
-#line 254 "src/ast-parser.y" /* yacc.c:1257 */
+#line 257 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).block); }
-#line 1798 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1801 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 101: /* expr */
-#line 265 "src/ast-parser.y" /* yacc.c:1257 */
+#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1804 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1807 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 102: /* expr1 */
-#line 265 "src/ast-parser.y" /* yacc.c:1257 */
+#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1810 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1813 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 103: /* if_ */
-#line 265 "src/ast-parser.y" /* yacc.c:1257 */
+#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1816 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1819 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 104: /* instr_list */
-#line 265 "src/ast-parser.y" /* yacc.c:1257 */
+#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1822 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1825 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 105: /* expr_list */
-#line 265 "src/ast-parser.y" /* yacc.c:1257 */
+#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1828 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1831 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 106: /* const_expr */
-#line 265 "src/ast-parser.y" /* yacc.c:1257 */
+#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1834 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1837 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 107: /* func_fields */
-#line 266 "src/ast-parser.y" /* yacc.c:1257 */
+#line 269 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_func_fields(((*yyvaluep).func_fields)); }
-#line 1840 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1843 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 108: /* func_body */
-#line 266 "src/ast-parser.y" /* yacc.c:1257 */
+#line 269 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_func_fields(((*yyvaluep).func_fields)); }
-#line 1846 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1849 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 109: /* func_info */
-#line 267 "src/ast-parser.y" /* yacc.c:1257 */
+#line 270 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func); }
-#line 1852 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1855 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 110: /* func */
-#line 261 "src/ast-parser.y" /* yacc.c:1257 */
+#line 264 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).exported_func); }
-#line 1858 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1861 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 111: /* offset */
-#line 265 "src/ast-parser.y" /* yacc.c:1257 */
+#line 268 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_expr_list(((*yyvaluep).expr_list).first); }
-#line 1864 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1867 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 112: /* elem */
-#line 259 "src/ast-parser.y" /* yacc.c:1257 */
+#line 262 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).elem_segment); }
-#line 1870 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1873 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 113: /* table */
-#line 263 "src/ast-parser.y" /* yacc.c:1257 */
+#line 266 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).exported_table); }
-#line 1876 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1879 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 114: /* data */
-#line 258 "src/ast-parser.y" /* yacc.c:1257 */
+#line 261 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).data_segment); }
-#line 1882 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1885 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 115: /* memory */
-#line 262 "src/ast-parser.y" /* yacc.c:1257 */
+#line 265 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).exported_memory); }
-#line 1888 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1891 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 117: /* import_kind */
-#line 271 "src/ast-parser.y" /* yacc.c:1257 */
+#line 274 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).import); }
-#line 1894 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1897 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 118: /* import */
-#line 271 "src/ast-parser.y" /* yacc.c:1257 */
+#line 274 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).import); }
-#line 1900 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1903 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 119: /* inline_import */
-#line 271 "src/ast-parser.y" /* yacc.c:1257 */
+#line 274 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).import); }
-#line 1906 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1909 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 120: /* export_kind */
-#line 260 "src/ast-parser.y" /* yacc.c:1257 */
+#line 263 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).export_); }
-#line 1912 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1915 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 121: /* export */
-#line 260 "src/ast-parser.y" /* yacc.c:1257 */
+#line 263 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).export_); }
-#line 1918 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1921 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 122: /* inline_export_opt */
-#line 272 "src/ast-parser.y" /* yacc.c:1257 */
+#line 275 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).optional_export); }
-#line 1924 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1927 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 123: /* inline_export */
-#line 272 "src/ast-parser.y" /* yacc.c:1257 */
+#line 275 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).optional_export); }
-#line 1930 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1933 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 124: /* type_def */
-#line 269 "src/ast-parser.y" /* yacc.c:1257 */
+#line 272 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).func_type); }
-#line 1936 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1939 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 125: /* start */
-#line 279 "src/ast-parser.y" /* yacc.c:1257 */
+#line 282 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_var(&((*yyvaluep).var)); }
-#line 1942 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1945 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 126: /* module_fields */
-#line 274 "src/ast-parser.y" /* yacc.c:1257 */
+#line 277 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 1948 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1951 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 127: /* raw_module */
-#line 275 "src/ast-parser.y" /* yacc.c:1257 */
+#line 278 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).raw_module); }
-#line 1954 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1957 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 128: /* module */
-#line 274 "src/ast-parser.y" /* yacc.c:1257 */
+#line 277 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).module); }
-#line 1960 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1963 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 129: /* script_var_opt */
-#line 279 "src/ast-parser.y" /* yacc.c:1257 */
+#line 282 "src/ast-parser.y" /* yacc.c:1257 */
{ destroy_var(&((*yyvaluep).var)); }
-#line 1966 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1969 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 130: /* action */
-#line 253 "src/ast-parser.y" /* yacc.c:1257 */
+#line 256 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).action); }
-#line 1972 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1975 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 131: /* assertion */
-#line 255 "src/ast-parser.y" /* yacc.c:1257 */
+#line 258 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).command); }
-#line 1978 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1981 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 132: /* cmd */
-#line 255 "src/ast-parser.y" /* yacc.c:1257 */
+#line 258 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).command); }
-#line 1984 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1987 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 133: /* cmd_list */
-#line 256 "src/ast-parser.y" /* yacc.c:1257 */
+#line 259 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).commands); }
-#line 1990 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1993 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 135: /* const_list */
-#line 257 "src/ast-parser.y" /* yacc.c:1257 */
+#line 260 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).consts); }
-#line 1996 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 1999 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
case 136: /* script */
-#line 276 "src/ast-parser.y" /* yacc.c:1257 */
+#line 279 "src/ast-parser.y" /* yacc.c:1257 */
{ delete ((*yyvaluep).script); }
-#line 2002 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
+#line 2005 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1257 */
break;
@@ -2290,18 +2293,18 @@ yyreduce:
switch (yyn)
{
case 2:
-#line 293 "src/ast-parser.y" /* yacc.c:1646 */
+#line 296 "src/ast-parser.y" /* yacc.c:1646 */
{
TextListNode* node = new TextListNode();
DUPTEXT(node->text, (yyvsp[0].text));
node->next = nullptr;
(yyval.text_list).first = (yyval.text_list).last = node;
}
-#line 2301 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2304 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 3:
-#line 299 "src/ast-parser.y" /* yacc.c:1646 */
+#line 302 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.text_list) = (yyvsp[-1].text_list);
TextListNode* node = new TextListNode();
@@ -2310,17 +2313,17 @@ yyreduce:
(yyval.text_list).last->next = node;
(yyval.text_list).last = node;
}
-#line 2314 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2317 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 4:
-#line 309 "src/ast-parser.y" /* yacc.c:1646 */
+#line 312 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.text_list).first = (yyval.text_list).last = nullptr; }
-#line 2320 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2323 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 6:
-#line 314 "src/ast-parser.y" /* yacc.c:1646 */
+#line 317 "src/ast-parser.y" /* yacc.c:1646 */
{
TextListNode node;
node.text = (yyvsp[0].text);
@@ -2334,74 +2337,74 @@ yyreduce:
(yyval.text).start = data;
(yyval.text).length = size;
}
-#line 2338 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2341 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 7:
-#line 332 "src/ast-parser.y" /* yacc.c:1646 */
+#line 335 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.types) = new TypeVector(); }
-#line 2344 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2347 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 8:
-#line 333 "src/ast-parser.y" /* yacc.c:1646 */
+#line 336 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.types) = (yyvsp[-1].types);
(yyval.types)->push_back((yyvsp[0].type));
}
-#line 2353 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2356 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 9:
-#line 339 "src/ast-parser.y" /* yacc.c:1646 */
+#line 342 "src/ast-parser.y" /* yacc.c:1646 */
{}
-#line 2359 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2362 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 10:
-#line 342 "src/ast-parser.y" /* yacc.c:1646 */
+#line 345 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.global) = new Global();
(yyval.global)->type = (yyvsp[0].type);
(yyval.global)->mutable_ = false;
}
-#line 2369 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2372 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 11:
-#line 347 "src/ast-parser.y" /* yacc.c:1646 */
+#line 350 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.global) = new Global();
(yyval.global)->type = (yyvsp[-1].type);
(yyval.global)->mutable_ = true;
}
-#line 2379 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2382 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 12:
-#line 354 "src/ast-parser.y" /* yacc.c:1646 */
+#line 357 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.func_sig) = (yyvsp[-1].func_sig); }
-#line 2385 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2388 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 13:
-#line 357 "src/ast-parser.y" /* yacc.c:1646 */
+#line 360 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.func_sig) = new FuncSignature(); }
-#line 2391 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2394 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 14:
-#line 358 "src/ast-parser.y" /* yacc.c:1646 */
+#line 361 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = new FuncSignature();
(yyval.func_sig)->param_types = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
}
-#line 2401 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2404 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 15:
-#line 363 "src/ast-parser.y" /* yacc.c:1646 */
+#line 366 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = new FuncSignature();
(yyval.func_sig)->param_types = std::move(*(yyvsp[-5].types));
@@ -2409,65 +2412,65 @@ yyreduce:
(yyval.func_sig)->result_types = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
}
-#line 2413 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2416 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 16:
-#line 370 "src/ast-parser.y" /* yacc.c:1646 */
+#line 373 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_sig) = new FuncSignature();
(yyval.func_sig)->result_types = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
}
-#line 2423 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2426 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 17:
-#line 378 "src/ast-parser.y" /* yacc.c:1646 */
+#line 381 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.table) = new Table();
(yyval.table)->elem_limits = (yyvsp[-1].limits);
}
-#line 2432 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2435 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 18:
-#line 384 "src/ast-parser.y" /* yacc.c:1646 */
+#line 387 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.memory) = new Memory();
(yyval.memory)->page_limits = (yyvsp[0].limits);
}
-#line 2441 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2444 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 19:
-#line 390 "src/ast-parser.y" /* yacc.c:1646 */
+#line 393 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.limits).has_max = false;
(yyval.limits).initial = (yyvsp[0].u64);
(yyval.limits).max = 0;
}
-#line 2451 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2454 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 20:
-#line 395 "src/ast-parser.y" /* yacc.c:1646 */
+#line 398 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.limits).has_max = true;
(yyval.limits).initial = (yyvsp[-1].u64);
(yyval.limits).max = (yyvsp[0].u64);
}
-#line 2461 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2464 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 21:
-#line 402 "src/ast-parser.y" /* yacc.c:1646 */
+#line 405 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.var) = (yyvsp[-1].var); }
-#line 2467 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2470 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 22:
-#line 408 "src/ast-parser.y" /* yacc.c:1646 */
+#line 411 "src/ast-parser.y" /* yacc.c:1646 */
{
if (WABT_FAILED(parse_uint64((yyvsp[0].literal).text.start,
(yyvsp[0].literal).text.start + (yyvsp[0].literal).text.length, &(yyval.u64)))) {
@@ -2476,97 +2479,97 @@ yyreduce:
WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text));
}
}
-#line 2480 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2483 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 23:
-#line 419 "src/ast-parser.y" /* yacc.c:1646 */
+#line 422 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2489 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2492 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 24:
-#line 423 "src/ast-parser.y" /* yacc.c:1646 */
+#line 426 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2498 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2501 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 25:
-#line 427 "src/ast-parser.y" /* yacc.c:1646 */
+#line 430 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.literal).type = (yyvsp[0].literal).type;
DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text);
}
-#line 2507 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2510 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 26:
-#line 434 "src/ast-parser.y" /* yacc.c:1646 */
+#line 437 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.var).loc = (yylsp[0]);
(yyval.var).type = VarType::Index;
(yyval.var).index = (yyvsp[0].u64);
}
-#line 2517 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2520 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 27:
-#line 439 "src/ast-parser.y" /* yacc.c:1646 */
+#line 442 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.var).loc = (yylsp[0]);
(yyval.var).type = VarType::Name;
DUPTEXT((yyval.var).name, (yyvsp[0].text));
}
-#line 2527 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2530 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 28:
-#line 446 "src/ast-parser.y" /* yacc.c:1646 */
+#line 449 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.vars) = new VarVector(); }
-#line 2533 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2536 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 29:
-#line 447 "src/ast-parser.y" /* yacc.c:1646 */
+#line 450 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.vars) = (yyvsp[-1].vars);
(yyval.vars)->push_back((yyvsp[0].var));
}
-#line 2542 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2545 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 30:
-#line 453 "src/ast-parser.y" /* yacc.c:1646 */
+#line 456 "src/ast-parser.y" /* yacc.c:1646 */
{ WABT_ZERO_MEMORY((yyval.text)); }
-#line 2548 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2551 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 32:
-#line 457 "src/ast-parser.y" /* yacc.c:1646 */
+#line 460 "src/ast-parser.y" /* yacc.c:1646 */
{ DUPTEXT((yyval.text), (yyvsp[0].text)); }
-#line 2554 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2557 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 33:
-#line 461 "src/ast-parser.y" /* yacc.c:1646 */
+#line 464 "src/ast-parser.y" /* yacc.c:1646 */
{ WABT_ZERO_MEMORY((yyval.text)); }
-#line 2560 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2563 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 35:
-#line 466 "src/ast-parser.y" /* yacc.c:1646 */
+#line 469 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.u64) = 0; }
-#line 2566 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2569 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 36:
-#line 467 "src/ast-parser.y" /* yacc.c:1646 */
+#line 470 "src/ast-parser.y" /* yacc.c:1646 */
{
if (WABT_FAILED(parse_int64((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u64),
ParseIntType::SignedAndUnsigned))) {
@@ -2575,17 +2578,17 @@ yyreduce:
WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].text)));
}
}
-#line 2579 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2582 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 37:
-#line 477 "src/ast-parser.y" /* yacc.c:1646 */
+#line 480 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.u32) = USE_NATURAL_ALIGNMENT; }
-#line 2585 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2588 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 38:
-#line 478 "src/ast-parser.y" /* yacc.c:1646 */
+#line 481 "src/ast-parser.y" /* yacc.c:1646 */
{
if (WABT_FAILED(parse_int32((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &(yyval.u32),
ParseIntType::UnsignedOnly))) {
@@ -2594,165 +2597,165 @@ yyreduce:
WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].text)));
}
}
-#line 2598 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2601 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 39:
-#line 489 "src/ast-parser.y" /* yacc.c:1646 */
+#line 492 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); }
-#line 2604 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2607 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 40:
-#line 490 "src/ast-parser.y" /* yacc.c:1646 */
+#line 493 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); }
-#line 2610 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2613 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 41:
-#line 491 "src/ast-parser.y" /* yacc.c:1646 */
+#line 494 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = (yyvsp[0].expr_list); }
-#line 2616 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2619 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 42:
-#line 494 "src/ast-parser.y" /* yacc.c:1646 */
+#line 497 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateUnreachable();
}
-#line 2624 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2627 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 43:
-#line 497 "src/ast-parser.y" /* yacc.c:1646 */
+#line 500 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateNop();
}
-#line 2632 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2635 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 44:
-#line 500 "src/ast-parser.y" /* yacc.c:1646 */
+#line 503 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateDrop();
}
-#line 2640 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2643 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 45:
-#line 503 "src/ast-parser.y" /* yacc.c:1646 */
+#line 506 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateSelect();
}
-#line 2648 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2651 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 46:
-#line 506 "src/ast-parser.y" /* yacc.c:1646 */
+#line 509 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBr((yyvsp[0].var));
}
-#line 2656 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2659 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 47:
-#line 509 "src/ast-parser.y" /* yacc.c:1646 */
+#line 512 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBrIf((yyvsp[0].var));
}
-#line 2664 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2667 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 48:
-#line 512 "src/ast-parser.y" /* yacc.c:1646 */
+#line 515 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBrTable((yyvsp[-1].vars), (yyvsp[0].var));
}
-#line 2672 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2675 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 49:
-#line 515 "src/ast-parser.y" /* yacc.c:1646 */
+#line 518 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateReturn();
}
-#line 2680 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2683 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 50:
-#line 518 "src/ast-parser.y" /* yacc.c:1646 */
+#line 521 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateCall((yyvsp[0].var));
}
-#line 2688 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2691 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 51:
-#line 521 "src/ast-parser.y" /* yacc.c:1646 */
+#line 524 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateCallIndirect((yyvsp[0].var));
}
-#line 2696 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2699 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 52:
-#line 524 "src/ast-parser.y" /* yacc.c:1646 */
+#line 527 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateGetLocal((yyvsp[0].var));
}
-#line 2704 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2707 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 53:
-#line 527 "src/ast-parser.y" /* yacc.c:1646 */
+#line 530 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateSetLocal((yyvsp[0].var));
}
-#line 2712 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2715 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 54:
-#line 530 "src/ast-parser.y" /* yacc.c:1646 */
+#line 533 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateTeeLocal((yyvsp[0].var));
}
-#line 2720 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2723 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 55:
-#line 533 "src/ast-parser.y" /* yacc.c:1646 */
+#line 536 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateGetGlobal((yyvsp[0].var));
}
-#line 2728 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2731 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 56:
-#line 536 "src/ast-parser.y" /* yacc.c:1646 */
+#line 539 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateSetGlobal((yyvsp[0].var));
}
-#line 2736 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2739 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 57:
-#line 539 "src/ast-parser.y" /* yacc.c:1646 */
+#line 542 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateLoad((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64));
}
-#line 2744 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2747 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 58:
-#line 542 "src/ast-parser.y" /* yacc.c:1646 */
+#line 545 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateStore((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64));
}
-#line 2752 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2755 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 59:
-#line 545 "src/ast-parser.y" /* yacc.c:1646 */
+#line 548 "src/ast-parser.y" /* yacc.c:1646 */
{
Const const_;
WABT_ZERO_MEMORY(const_);
@@ -2766,145 +2769,145 @@ yyreduce:
delete [] (yyvsp[0].literal).text.start;
(yyval.expr) = Expr::CreateConst(const_);
}
-#line 2770 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2773 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 60:
-#line 558 "src/ast-parser.y" /* yacc.c:1646 */
+#line 561 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateUnary((yyvsp[0].opcode));
}
-#line 2778 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2781 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 61:
-#line 561 "src/ast-parser.y" /* yacc.c:1646 */
+#line 564 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBinary((yyvsp[0].opcode));
}
-#line 2786 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2789 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 62:
-#line 564 "src/ast-parser.y" /* yacc.c:1646 */
+#line 567 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateCompare((yyvsp[0].opcode));
}
-#line 2794 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2797 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 63:
-#line 567 "src/ast-parser.y" /* yacc.c:1646 */
+#line 570 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateConvert((yyvsp[0].opcode));
}
-#line 2802 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2805 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 64:
-#line 570 "src/ast-parser.y" /* yacc.c:1646 */
+#line 573 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateCurrentMemory();
}
-#line 2810 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2813 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 65:
-#line 573 "src/ast-parser.y" /* yacc.c:1646 */
+#line 576 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateGrowMemory();
}
-#line 2818 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2821 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 66:
-#line 578 "src/ast-parser.y" /* yacc.c:1646 */
+#line 581 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateBlock((yyvsp[-2].block));
(yyval.expr)->block->label = (yyvsp[-3].text);
CHECK_END_LABEL((yylsp[0]), (yyval.expr)->block->label, (yyvsp[0].text));
}
-#line 2828 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2831 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 67:
-#line 583 "src/ast-parser.y" /* yacc.c:1646 */
+#line 586 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateLoop((yyvsp[-2].block));
(yyval.expr)->loop->label = (yyvsp[-3].text);
CHECK_END_LABEL((yylsp[0]), (yyval.expr)->loop->label, (yyvsp[0].text));
}
-#line 2838 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2841 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 68:
-#line 588 "src/ast-parser.y" /* yacc.c:1646 */
+#line 591 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateIf((yyvsp[-2].block), nullptr);
(yyval.expr)->if_.true_->label = (yyvsp[-3].text);
CHECK_END_LABEL((yylsp[0]), (yyval.expr)->if_.true_->label, (yyvsp[0].text));
}
-#line 2848 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2851 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 69:
-#line 593 "src/ast-parser.y" /* yacc.c:1646 */
+#line 596 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr) = Expr::CreateIf((yyvsp[-5].block), (yyvsp[-2].expr_list).first);
(yyval.expr)->if_.true_->label = (yyvsp[-6].text);
CHECK_END_LABEL((yylsp[-3]), (yyval.expr)->if_.true_->label, (yyvsp[-3].text));
CHECK_END_LABEL((yylsp[0]), (yyval.expr)->if_.true_->label, (yyvsp[0].text));
}
-#line 2859 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2862 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 70:
-#line 601 "src/ast-parser.y" /* yacc.c:1646 */
+#line 604 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.block) = new Block();
(yyval.block)->sig = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
(yyval.block)->first = (yyvsp[0].expr_list).first;
}
-#line 2870 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2873 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 71:
-#line 610 "src/ast-parser.y" /* yacc.c:1646 */
+#line 613 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.expr_list) = (yyvsp[-1].expr_list); }
-#line 2876 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2879 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 72:
-#line 614 "src/ast-parser.y" /* yacc.c:1646 */
+#line 617 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[0].expr_list), (yyvsp[-1].expr));
}
-#line 2884 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2887 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 73:
-#line 617 "src/ast-parser.y" /* yacc.c:1646 */
+#line 620 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateBlock((yyvsp[0].block));
expr->block->label = (yyvsp[-1].text);
(yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr);
}
-#line 2894 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2897 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 74:
-#line 622 "src/ast-parser.y" /* yacc.c:1646 */
+#line 625 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateLoop((yyvsp[0].block));
expr->loop->label = (yyvsp[-1].text);
(yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr);
}
-#line 2904 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2907 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 75:
-#line 627 "src/ast-parser.y" /* yacc.c:1646 */
+#line 630 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = (yyvsp[0].expr_list);
Expr* if_ = (yyvsp[0].expr_list).last;
@@ -2913,121 +2916,121 @@ yyreduce:
if_->if_.true_->sig = std::move(*(yyvsp[-1].types));
delete (yyvsp[-1].types);
}
-#line 2917 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2920 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 76:
-#line 637 "src/ast-parser.y" /* yacc.c:1646 */
+#line 640 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateIf(new Block((yyvsp[-5].expr_list).first), (yyvsp[-1].expr_list).first);
(yyval.expr_list) = join_exprs1(&(yylsp[-7]), expr);
}
-#line 2926 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2929 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 77:
-#line 641 "src/ast-parser.y" /* yacc.c:1646 */
+#line 644 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateIf(new Block((yyvsp[-1].expr_list).first), nullptr);
(yyval.expr_list) = join_exprs1(&(yylsp[-3]), expr);
}
-#line 2935 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2938 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 78:
-#line 645 "src/ast-parser.y" /* yacc.c:1646 */
+#line 648 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateIf(new Block((yyvsp[-5].expr_list).first), (yyvsp[-1].expr_list).first);
(yyval.expr_list) = join_exprs2(&(yylsp[-8]), &(yyvsp[-8].expr_list), expr);
}
-#line 2944 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2947 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 79:
-#line 649 "src/ast-parser.y" /* yacc.c:1646 */
+#line 652 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateIf(new Block((yyvsp[-1].expr_list).first), nullptr);
(yyval.expr_list) = join_exprs2(&(yylsp[-4]), &(yyvsp[-4].expr_list), expr);
}
-#line 2953 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2956 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 80:
-#line 653 "src/ast-parser.y" /* yacc.c:1646 */
+#line 656 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateIf(new Block((yyvsp[-1].expr_list).first), (yyvsp[0].expr_list).first);
(yyval.expr_list) = join_exprs2(&(yylsp[-2]), &(yyvsp[-2].expr_list), expr);
}
-#line 2962 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2965 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 81:
-#line 657 "src/ast-parser.y" /* yacc.c:1646 */
+#line 660 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateIf(new Block((yyvsp[0].expr_list).first), nullptr);
(yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[-1].expr_list), expr);
}
-#line 2971 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2974 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 82:
-#line 664 "src/ast-parser.y" /* yacc.c:1646 */
+#line 667 "src/ast-parser.y" /* yacc.c:1646 */
{ WABT_ZERO_MEMORY((yyval.expr_list)); }
-#line 2977 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2980 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 83:
-#line 665 "src/ast-parser.y" /* yacc.c:1646 */
+#line 668 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list).first = (yyvsp[-1].expr_list).first;
(yyvsp[-1].expr_list).last->next = (yyvsp[0].expr_list).first;
(yyval.expr_list).last = (yyvsp[0].expr_list).last ? (yyvsp[0].expr_list).last : (yyvsp[-1].expr_list).last;
(yyval.expr_list).size = (yyvsp[-1].expr_list).size + (yyvsp[0].expr_list).size;
}
-#line 2988 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2991 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 84:
-#line 673 "src/ast-parser.y" /* yacc.c:1646 */
+#line 676 "src/ast-parser.y" /* yacc.c:1646 */
{ WABT_ZERO_MEMORY((yyval.expr_list)); }
-#line 2994 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 2997 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 85:
-#line 674 "src/ast-parser.y" /* yacc.c:1646 */
+#line 677 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list).first = (yyvsp[-1].expr_list).first;
(yyvsp[-1].expr_list).last->next = (yyvsp[0].expr_list).first;
(yyval.expr_list).last = (yyvsp[0].expr_list).last ? (yyvsp[0].expr_list).last : (yyvsp[-1].expr_list).last;
(yyval.expr_list).size = (yyvsp[-1].expr_list).size + (yyvsp[0].expr_list).size;
}
-#line 3005 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3008 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 88:
-#line 688 "src/ast-parser.y" /* yacc.c:1646 */
+#line 691 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_fields) = new FuncField();
(yyval.func_fields)->type = FuncFieldType::ResultTypes;
(yyval.func_fields)->types = (yyvsp[-2].types);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3016 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3019 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 89:
-#line 694 "src/ast-parser.y" /* yacc.c:1646 */
+#line 697 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_fields) = new FuncField();
(yyval.func_fields)->type = FuncFieldType::ParamTypes;
(yyval.func_fields)->types = (yyvsp[-2].types);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3027 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3030 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 90:
-#line 700 "src/ast-parser.y" /* yacc.c:1646 */
+#line 703 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_fields) = new FuncField();
(yyval.func_fields)->type = FuncFieldType::BoundParam;
@@ -3036,33 +3039,33 @@ yyreduce:
(yyval.func_fields)->bound_type.type = (yyvsp[-2].type);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3040 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3043 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 91:
-#line 710 "src/ast-parser.y" /* yacc.c:1646 */
+#line 713 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_fields) = new FuncField();
(yyval.func_fields)->type = FuncFieldType::Exprs;
(yyval.func_fields)->first_expr = (yyvsp[0].expr_list).first;
(yyval.func_fields)->next = nullptr;
}
-#line 3051 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3054 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 92:
-#line 716 "src/ast-parser.y" /* yacc.c:1646 */
+#line 719 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_fields) = new FuncField();
(yyval.func_fields)->type = FuncFieldType::LocalTypes;
(yyval.func_fields)->types = (yyvsp[-2].types);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3062 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3065 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 93:
-#line 722 "src/ast-parser.y" /* yacc.c:1646 */
+#line 725 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_fields) = new FuncField();
(yyval.func_fields)->type = FuncFieldType::BoundLocal;
@@ -3071,11 +3074,11 @@ yyreduce:
(yyval.func_fields)->bound_type.type = (yyvsp[-2].type);
(yyval.func_fields)->next = (yyvsp[0].func_fields);
}
-#line 3075 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3078 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 94:
-#line 732 "src/ast-parser.y" /* yacc.c:1646 */
+#line 735 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func) = new Func();
FuncField* field = (yyvsp[0].func_fields);
@@ -3126,11 +3129,11 @@ yyreduce:
field = next;
}
}
-#line 3130 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3133 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 95:
-#line 784 "src/ast-parser.y" /* yacc.c:1646 */
+#line 787 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.exported_func) = new ExportedFunc();
(yyval.exported_func)->func.reset((yyvsp[-1].func));
@@ -3140,11 +3143,11 @@ yyreduce:
(yyval.exported_func)->export_ = std::move(*(yyvsp[-3].optional_export));
delete (yyvsp[-3].optional_export);
}
-#line 3144 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3147 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 96:
-#line 794 "src/ast-parser.y" /* yacc.c:1646 */
+#line 797 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.exported_func) = new ExportedFunc();
(yyval.exported_func)->func.reset((yyvsp[-1].func));
@@ -3152,11 +3155,11 @@ yyreduce:
(yyval.exported_func)->func->decl.type_var = (yyvsp[-2].var);
(yyval.exported_func)->func->name = (yyvsp[-3].text);
}
-#line 3156 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3159 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 97:
-#line 801 "src/ast-parser.y" /* yacc.c:1646 */
+#line 804 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.exported_func) = new ExportedFunc();
(yyval.exported_func)->func.reset((yyvsp[-1].func));
@@ -3164,29 +3167,29 @@ yyreduce:
(yyval.exported_func)->export_ = std::move(*(yyvsp[-2].optional_export));
delete (yyvsp[-2].optional_export);
}
-#line 3168 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3171 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 98:
-#line 809 "src/ast-parser.y" /* yacc.c:1646 */
+#line 812 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.exported_func) = new ExportedFunc();
(yyval.exported_func)->func.reset((yyvsp[-1].func));
(yyval.exported_func)->func->name = (yyvsp[-2].text);
}
-#line 3178 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3181 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 99:
-#line 819 "src/ast-parser.y" /* yacc.c:1646 */
+#line 822 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.expr_list) = (yyvsp[-1].expr_list);
}
-#line 3186 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3189 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 101:
-#line 826 "src/ast-parser.y" /* yacc.c:1646 */
+#line 829 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.elem_segment) = new ElemSegment();
(yyval.elem_segment)->table_var = (yyvsp[-3].var);
@@ -3194,11 +3197,11 @@ yyreduce:
(yyval.elem_segment)->vars = std::move(*(yyvsp[-1].vars));
delete (yyvsp[-1].vars);
}
-#line 3198 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3201 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 102:
-#line 833 "src/ast-parser.y" /* yacc.c:1646 */
+#line 836 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.elem_segment) = new ElemSegment();
(yyval.elem_segment)->table_var.loc = (yylsp[-3]);
@@ -3208,11 +3211,11 @@ yyreduce:
(yyval.elem_segment)->vars = std::move(*(yyvsp[-1].vars));
delete (yyvsp[-1].vars);
}
-#line 3212 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3215 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 103:
-#line 845 "src/ast-parser.y" /* yacc.c:1646 */
+#line 848 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.exported_table) = new ExportedTable();
(yyval.exported_table)->table.reset((yyvsp[-1].table));
@@ -3221,11 +3224,11 @@ yyreduce:
(yyval.exported_table)->export_ = std::move(*(yyvsp[-2].optional_export));
delete (yyvsp[-2].optional_export);
}
-#line 3225 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3228 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 104:
-#line 854 "src/ast-parser.y" /* yacc.c:1646 */
+#line 857 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateConst(Const(Const::I32(), 0));
expr->loc = (yylsp[-8]);
@@ -3244,11 +3247,11 @@ yyreduce:
(yyval.exported_table)->export_ = std::move(*(yyvsp[-6].optional_export));
delete (yyvsp[-6].optional_export);
}
-#line 3248 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3251 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 105:
-#line 875 "src/ast-parser.y" /* yacc.c:1646 */
+#line 878 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.data_segment) = new DataSegment();
(yyval.data_segment)->memory_var = (yyvsp[-3].var);
@@ -3256,11 +3259,11 @@ yyreduce:
dup_text_list(&(yyvsp[-1].text_list), &(yyval.data_segment)->data, &(yyval.data_segment)->size);
destroy_text_list(&(yyvsp[-1].text_list));
}
-#line 3260 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3263 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 106:
-#line 882 "src/ast-parser.y" /* yacc.c:1646 */
+#line 885 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.data_segment) = new DataSegment();
(yyval.data_segment)->memory_var.loc = (yylsp[-3]);
@@ -3270,11 +3273,11 @@ yyreduce:
dup_text_list(&(yyvsp[-1].text_list), &(yyval.data_segment)->data, &(yyval.data_segment)->size);
destroy_text_list(&(yyvsp[-1].text_list));
}
-#line 3274 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3277 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 107:
-#line 894 "src/ast-parser.y" /* yacc.c:1646 */
+#line 897 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.exported_memory) = new ExportedMemory();
(yyval.exported_memory)->memory.reset((yyvsp[-1].memory));
@@ -3283,11 +3286,11 @@ yyreduce:
(yyval.exported_memory)->export_ = std::move(*(yyvsp[-2].optional_export));
delete (yyvsp[-2].optional_export);
}
-#line 3287 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3290 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 108:
-#line 902 "src/ast-parser.y" /* yacc.c:1646 */
+#line 905 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateConst(Const(Const::I32(), 0));
expr->loc = (yylsp[-7]);
@@ -3308,11 +3311,11 @@ yyreduce:
(yyval.exported_memory)->export_ = std::move(*(yyvsp[-5].optional_export));
delete (yyvsp[-5].optional_export);
}
-#line 3312 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3315 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 109:
-#line 923 "src/ast-parser.y" /* yacc.c:1646 */
+#line 926 "src/ast-parser.y" /* yacc.c:1646 */
{
Expr* expr = Expr::CreateConst(Const(Const::I32(), 0));
expr->loc = (yylsp[-6]);
@@ -3332,11 +3335,11 @@ yyreduce:
(yyval.exported_memory)->memory->page_limits.has_max = true;
(yyval.exported_memory)->export_.has_export = false;
}
-#line 3336 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3339 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 110:
-#line 945 "src/ast-parser.y" /* yacc.c:1646 */
+#line 948 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.exported_global) = new ExportedGlobal();
(yyval.exported_global)->global.reset((yyvsp[-2].global));
@@ -3345,11 +3348,11 @@ yyreduce:
(yyval.exported_global)->export_ = std::move(*(yyvsp[-3].optional_export));
delete (yyvsp[-3].optional_export);
}
-#line 3349 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3352 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 111:
-#line 953 "src/ast-parser.y" /* yacc.c:1646 */
+#line 956 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.exported_global) = new ExportedGlobal();
(yyval.exported_global)->global.reset((yyvsp[-2].global));
@@ -3357,11 +3360,11 @@ yyreduce:
(yyval.exported_global)->global->init_expr = (yyvsp[-1].expr_list).first;
(yyval.exported_global)->export_.has_export = false;
}
-#line 3361 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3364 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 112:
-#line 966 "src/ast-parser.y" /* yacc.c:1646 */
+#line 969 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Func;
@@ -3370,11 +3373,11 @@ yyreduce:
(yyval.import)->func->decl.has_func_type = true;
(yyval.import)->func->decl.type_var = (yyvsp[-1].var);
}
-#line 3374 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3377 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 113:
-#line 974 "src/ast-parser.y" /* yacc.c:1646 */
+#line 977 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Func;
@@ -3383,54 +3386,54 @@ yyreduce:
(yyval.import)->func->decl.sig = std::move(*(yyvsp[-1].func_sig));
delete (yyvsp[-1].func_sig);
}
-#line 3387 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3390 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 114:
-#line 982 "src/ast-parser.y" /* yacc.c:1646 */
+#line 985 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Table;
(yyval.import)->table = (yyvsp[-1].table);
(yyval.import)->table->name = (yyvsp[-2].text);
}
-#line 3398 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3401 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 115:
-#line 988 "src/ast-parser.y" /* yacc.c:1646 */
+#line 991 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Memory;
(yyval.import)->memory = (yyvsp[-1].memory);
(yyval.import)->memory->name = (yyvsp[-2].text);
}
-#line 3409 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3412 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 116:
-#line 994 "src/ast-parser.y" /* yacc.c:1646 */
+#line 997 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->kind = ExternalKind::Global;
(yyval.import)->global = (yyvsp[-1].global);
(yyval.import)->global->name = (yyvsp[-2].text);
}
-#line 3420 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3423 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 117:
-#line 1002 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1005 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = (yyvsp[-1].import);
(yyval.import)->module_name = (yyvsp[-3].text);
(yyval.import)->field_name = (yyvsp[-2].text);
}
-#line 3430 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3433 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 118:
-#line 1007 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1010 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = (yyvsp[-2].import);
(yyval.import)->kind = ExternalKind::Func;
@@ -3439,11 +3442,11 @@ yyreduce:
(yyval.import)->func->decl.has_func_type = true;
(yyval.import)->func->decl.type_var = (yyvsp[-1].var);
}
-#line 3443 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3446 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 119:
-#line 1015 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1018 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = (yyvsp[-2].import);
(yyval.import)->kind = ExternalKind::Func;
@@ -3452,158 +3455,158 @@ yyreduce:
(yyval.import)->func->decl.sig = std::move(*(yyvsp[-1].func_sig));
delete (yyvsp[-1].func_sig);
}
-#line 3456 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3459 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 120:
-#line 1023 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1026 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = (yyvsp[-2].import);
(yyval.import)->kind = ExternalKind::Table;
(yyval.import)->table = (yyvsp[-1].table);
(yyval.import)->table->name = (yyvsp[-3].text);
}
-#line 3467 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3470 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 121:
-#line 1029 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1032 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = (yyvsp[-2].import);
(yyval.import)->kind = ExternalKind::Memory;
(yyval.import)->memory = (yyvsp[-1].memory);
(yyval.import)->memory->name = (yyvsp[-3].text);
}
-#line 3478 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3481 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 122:
-#line 1035 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1038 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = (yyvsp[-2].import);
(yyval.import)->kind = ExternalKind::Global;
(yyval.import)->global = (yyvsp[-1].global);
(yyval.import)->global->name = (yyvsp[-3].text);
}
-#line 3489 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3492 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 123:
-#line 1044 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1047 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.import) = new Import();
(yyval.import)->module_name = (yyvsp[-2].text);
(yyval.import)->field_name = (yyvsp[-1].text);
}
-#line 3499 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3502 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 124:
-#line 1052 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1055 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Func;
(yyval.export_)->var = (yyvsp[-1].var);
}
-#line 3509 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3512 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 125:
-#line 1057 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1060 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Table;
(yyval.export_)->var = (yyvsp[-1].var);
}
-#line 3519 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3522 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 126:
-#line 1062 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1065 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Memory;
(yyval.export_)->var = (yyvsp[-1].var);
}
-#line 3529 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3532 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 127:
-#line 1067 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1070 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = new Export();
(yyval.export_)->kind = ExternalKind::Global;
(yyval.export_)->var = (yyvsp[-1].var);
}
-#line 3539 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3542 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 128:
-#line 1074 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1077 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.export_) = (yyvsp[-1].export_);
(yyval.export_)->name = (yyvsp[-2].text);
}
-#line 3548 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3551 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 129:
-#line 1081 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1084 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.optional_export) = new OptionalExport();
(yyval.optional_export)->has_export = false;
}
-#line 3557 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3560 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 131:
-#line 1088 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1091 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.optional_export) = new OptionalExport();
(yyval.optional_export)->has_export = true;
(yyval.optional_export)->export_.reset(new Export());
(yyval.optional_export)->export_->name = (yyvsp[-1].text);
}
-#line 3568 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3571 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 132:
-#line 1100 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1103 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_type) = new FuncType();
(yyval.func_type)->sig = std::move(*(yyvsp[-1].func_sig));
delete (yyvsp[-1].func_sig);
}
-#line 3578 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3581 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 133:
-#line 1105 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1108 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.func_type) = new FuncType();
(yyval.func_type)->name = (yyvsp[-2].text);
(yyval.func_type)->sig = std::move(*(yyvsp[-1].func_sig));
delete (yyvsp[-1].func_sig);
}
-#line 3589 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3592 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 134:
-#line 1114 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1117 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.var) = (yyvsp[-1].var); }
-#line 3595 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3598 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 135:
-#line 1118 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1121 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = new Module();
}
-#line 3603 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3606 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 136:
-#line 1121 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1124 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
@@ -3611,11 +3614,11 @@ yyreduce:
APPEND_ITEM_TO_VECTOR((yyval.module), func_types, field->func_type);
INSERT_BINDING((yyval.module), func_type, func_types, (yylsp[0]), (yyvsp[0].func_type)->name);
}
-#line 3615 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3618 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 137:
-#line 1128 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1131 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
@@ -3625,11 +3628,11 @@ yyreduce:
APPEND_INLINE_EXPORT((yyval.module), Global, (yylsp[0]), (yyvsp[0].exported_global), (yyval.module)->globals.size() - 1);
delete (yyvsp[0].exported_global);
}
-#line 3629 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3632 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 138:
-#line 1137 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1140 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
@@ -3647,11 +3650,11 @@ yyreduce:
}
delete (yyvsp[0].exported_table);
}
-#line 3651 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3654 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 139:
-#line 1154 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1157 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
@@ -3669,11 +3672,11 @@ yyreduce:
}
delete (yyvsp[0].exported_memory);
}
-#line 3673 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3676 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 140:
-#line 1171 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1174 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
@@ -3686,44 +3689,44 @@ yyreduce:
APPEND_INLINE_EXPORT((yyval.module), Func, (yylsp[0]), (yyvsp[0].exported_func), (yyval.module)->funcs.size() - 1);
delete (yyvsp[0].exported_func);
}
-#line 3690 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3693 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 141:
-#line 1183 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1186 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
APPEND_FIELD_TO_LIST((yyval.module), field, ElemSegment, elem_segment, (yylsp[0]), (yyvsp[0].elem_segment));
APPEND_ITEM_TO_VECTOR((yyval.module), elem_segments, field->elem_segment);
}
-#line 3701 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3704 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 142:
-#line 1189 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1192 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
APPEND_FIELD_TO_LIST((yyval.module), field, DataSegment, data_segment, (yylsp[0]), (yyvsp[0].data_segment));
APPEND_ITEM_TO_VECTOR((yyval.module), data_segments, field->data_segment);
}
-#line 3712 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3715 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 143:
-#line 1195 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1198 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
APPEND_FIELD_TO_LIST((yyval.module), field, Start, start, (yylsp[0]), (yyvsp[0].var));
(yyval.module)->start = &field->start;
}
-#line 3723 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3726 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 144:
-#line 1201 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1204 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
@@ -3757,11 +3760,11 @@ yyreduce:
}
APPEND_ITEM_TO_VECTOR((yyval.module), imports, field->import);
}
-#line 3761 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3764 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 145:
-#line 1234 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1237 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.module) = (yyvsp[-1].module);
ModuleField* field;
@@ -3769,11 +3772,11 @@ yyreduce:
APPEND_ITEM_TO_VECTOR((yyval.module), exports, field->export_);
INSERT_BINDING((yyval.module), export, exports, (yylsp[0]), field->export_->name);
}
-#line 3773 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3776 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 146:
-#line 1244 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1247 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.raw_module) = new RawModule();
(yyval.raw_module)->type = RawModuleType::Text;
@@ -3794,11 +3797,11 @@ yyreduce:
}
}
}
-#line 3798 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3801 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 147:
-#line 1264 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1267 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.raw_module) = new RawModule();
(yyval.raw_module)->type = RawModuleType::Binary;
@@ -3807,11 +3810,11 @@ yyreduce:
dup_text_list(&(yyvsp[-1].text_list), &(yyval.raw_module)->binary.data, &(yyval.raw_module)->binary.size);
destroy_text_list(&(yyvsp[-1].text_list));
}
-#line 3811 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3814 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 148:
-#line 1275 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1278 "src/ast-parser.y" /* yacc.c:1646 */
{
if ((yyvsp[0].raw_module)->type == RawModuleType::Text) {
(yyval.module) = (yyvsp[0].raw_module)->text;
@@ -3820,13 +3823,7 @@ yyreduce:
assert((yyvsp[0].raw_module)->type == RawModuleType::Binary);
(yyval.module) = new Module();
ReadBinaryOptions options = WABT_READ_BINARY_OPTIONS_DEFAULT;
- BinaryErrorCallbackData user_data;
- user_data.loc = &(yyvsp[0].raw_module)->binary.loc;
- user_data.lexer = lexer;
- user_data.parser = parser;
- BinaryErrorHandler error_handler;
- error_handler.on_error = on_read_binary_error;
- error_handler.user_data = &user_data;
+ BinaryErrorHandlerModule error_handler(&(yyvsp[0].raw_module)->binary.loc, lexer, parser);
read_binary_ast((yyvsp[0].raw_module)->binary.data, (yyvsp[0].raw_module)->binary.size, &options,
&error_handler, (yyval.module));
(yyval.module)->name = (yyvsp[0].raw_module)->binary.name;
@@ -3835,31 +3832,31 @@ yyreduce:
}
delete (yyvsp[0].raw_module);
}
-#line 3839 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3836 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 149:
-#line 1303 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1300 "src/ast-parser.y" /* yacc.c:1646 */
{
WABT_ZERO_MEMORY((yyval.var));
(yyval.var).type = VarType::Index;
(yyval.var).index = INVALID_VAR_INDEX;
}
-#line 3849 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3846 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 150:
-#line 1308 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1305 "src/ast-parser.y" /* yacc.c:1646 */
{
WABT_ZERO_MEMORY((yyval.var));
(yyval.var).type = VarType::Name;
DUPTEXT((yyval.var).name, (yyvsp[0].text));
}
-#line 3859 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3856 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 151:
-#line 1316 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1313 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.action) = new Action();
(yyval.action)->loc = (yylsp[-4]);
@@ -3870,11 +3867,11 @@ yyreduce:
(yyval.action)->invoke->args = std::move(*(yyvsp[-1].consts));
delete (yyvsp[-1].consts);
}
-#line 3874 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3871 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 152:
-#line 1326 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1323 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.action) = new Action();
(yyval.action)->loc = (yylsp[-3]);
@@ -3882,128 +3879,128 @@ yyreduce:
(yyval.action)->type = ActionType::Get;
(yyval.action)->name = (yyvsp[-1].text);
}
-#line 3886 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3883 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 153:
-#line 1336 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1333 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertMalformed;
(yyval.command)->assert_malformed.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_malformed.text = (yyvsp[-1].text);
}
-#line 3897 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3894 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 154:
-#line 1342 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1339 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertInvalid;
(yyval.command)->assert_invalid.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_invalid.text = (yyvsp[-1].text);
}
-#line 3908 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3905 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 155:
-#line 1348 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1345 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertUnlinkable;
(yyval.command)->assert_unlinkable.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_unlinkable.text = (yyvsp[-1].text);
}
-#line 3919 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3916 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 156:
-#line 1354 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1351 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertUninstantiable;
(yyval.command)->assert_uninstantiable.module = (yyvsp[-2].raw_module);
(yyval.command)->assert_uninstantiable.text = (yyvsp[-1].text);
}
-#line 3930 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3927 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 157:
-#line 1360 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1357 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertReturn;
(yyval.command)->assert_return.action = (yyvsp[-2].action);
(yyval.command)->assert_return.expected = (yyvsp[-1].consts);
}
-#line 3941 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3938 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 158:
-#line 1366 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1363 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertReturnCanonicalNan;
(yyval.command)->assert_return_canonical_nan.action = (yyvsp[-1].action);
}
-#line 3951 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3948 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 159:
-#line 1371 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1368 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertReturnArithmeticNan;
(yyval.command)->assert_return_arithmetic_nan.action = (yyvsp[-1].action);
}
-#line 3961 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3958 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 160:
-#line 1376 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1373 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertTrap;
(yyval.command)->assert_trap.action = (yyvsp[-2].action);
(yyval.command)->assert_trap.text = (yyvsp[-1].text);
}
-#line 3972 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3969 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 161:
-#line 1382 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1379 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::AssertExhaustion;
(yyval.command)->assert_trap.action = (yyvsp[-2].action);
(yyval.command)->assert_trap.text = (yyvsp[-1].text);
}
-#line 3983 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3980 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 162:
-#line 1391 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1388 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::Action;
(yyval.command)->action = (yyvsp[0].action);
}
-#line 3993 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 3990 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 164:
-#line 1397 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1394 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::Module;
(yyval.command)->module = (yyvsp[0].module);
}
-#line 4003 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4000 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 165:
-#line 1402 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1399 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.command) = new Command();
(yyval.command)->type = CommandType::Register;
@@ -4011,26 +4008,26 @@ yyreduce:
(yyval.command)->register_.var = (yyvsp[-1].var);
(yyval.command)->register_.var.loc = (yylsp[-1]);
}
-#line 4015 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4012 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 166:
-#line 1411 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1408 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.commands) = new CommandPtrVector(); }
-#line 4021 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4018 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 167:
-#line 1412 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1409 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.commands) = (yyvsp[-1].commands);
(yyval.commands)->emplace_back((yyvsp[0].command));
}
-#line 4030 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4027 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 168:
-#line 1419 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1416 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.const_).loc = (yylsp[-2]);
if (WABT_FAILED(parse_const((yyvsp[-2].type), (yyvsp[-1].literal).type, (yyvsp[-1].literal).text.start,
@@ -4041,26 +4038,26 @@ yyreduce:
}
delete [] (yyvsp[-1].literal).text.start;
}
-#line 4045 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4042 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 169:
-#line 1431 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1428 "src/ast-parser.y" /* yacc.c:1646 */
{ (yyval.consts) = new ConstVector(); }
-#line 4051 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4048 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 170:
-#line 1432 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1429 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.consts) = (yyvsp[-1].consts);
(yyval.consts)->push_back((yyvsp[0].const_));
}
-#line 4060 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4057 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
case 171:
-#line 1439 "src/ast-parser.y" /* yacc.c:1646 */
+#line 1436 "src/ast-parser.y" /* yacc.c:1646 */
{
(yyval.script) = new Script();
(yyval.script)->commands = std::move(*(yyvsp[0].commands));
@@ -4122,11 +4119,11 @@ yyreduce:
}
parser->script = (yyval.script);
}
-#line 4126 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4123 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
break;
-#line 4130 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
+#line 4127 "src/prebuilt/ast-parser-gen.cc" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -4361,7 +4358,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 1508 "src/ast-parser.y" /* yacc.c:1906 */
+#line 1505 "src/ast-parser.y" /* yacc.c:1906 */
void append_expr_list(ExprList* expr_list, ExprList* expr) {
@@ -4525,14 +4522,19 @@ Result parse_ast(AstLexer* lexer, Script** out_script,
return result == 0 && parser.errors == 0 ? Result::Ok : Result::Error;
}
-bool on_read_binary_error(uint32_t offset, const char* error, void* user_data) {
- BinaryErrorCallbackData* data = (BinaryErrorCallbackData*)user_data;
+BinaryErrorHandlerModule::BinaryErrorHandlerModule(
+ Location* loc, AstLexer* lexer, AstParser* parser)
+ : loc_(loc), lexer_(lexer), parser_(parser) {}
+
+bool BinaryErrorHandlerModule::OnError(uint32_t offset,
+ const std::string& error) {
if (offset == WABT_UNKNOWN_OFFSET) {
- ast_parser_error(data->loc, data->lexer, data->parser,
- "error in binary module: %s", error);
+ ast_parser_error(loc_, lexer_, parser_, "error in binary module: %s",
+ error.c_str());
} else {
- ast_parser_error(data->loc, data->lexer, data->parser,
- "error in binary module: @0x%08x: %s", offset, error);
+ ast_parser_error(loc_, lexer_, parser_,
+ "error in binary module: @0x%08x: %s", offset,
+ error.c_str());
}
return true;
}