diff options
Diffstat (limited to 'src/prebuilt/wast-parser-gen.cc')
-rw-r--r-- | src/prebuilt/wast-parser-gen.cc | 1266 |
1 files changed, 627 insertions, 639 deletions
diff --git a/src/prebuilt/wast-parser-gen.cc b/src/prebuilt/wast-parser-gen.cc index aa3055f1..5abfb8de 100644 --- a/src/prebuilt/wast-parser-gen.cc +++ b/src/prebuilt/wast-parser-gen.cc @@ -154,7 +154,7 @@ #define CHECK_ALLOW_EXCEPTIONS(loc, opcode_name) \ do { \ - if (!parser->options->allow_exceptions) { \ + if (!parser->options->allow_future_exceptions) { \ wast_parser_error(loc, lexer, parser, "opcode not allowed: %s", \ opcode_name); \ } \ @@ -173,7 +173,6 @@ static bool is_power_of_two(uint32_t x) { static ExprList join_exprs1(Location* loc, Expr* expr1); static ExprList join_exprs2(Location* loc, ExprList* expr1, Expr* expr2); -static ExprList join_expr_lists(ExprList* expr1, ExprList* expr2); static void append_expr_list(ExprList* expr_list, ExprList* expr); static Result parse_const(Type type, @@ -211,7 +210,7 @@ class BinaryErrorHandlerModule : public BinaryErrorHandler { #define wabt_wast_parser_error wast_parser_error -#line 215 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:339 */ +#line 214 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:339 */ # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus @@ -366,7 +365,7 @@ int wabt_wast_parser_parse (::wabt::WastLexer* lexer, ::wabt::WastParser* parser /* Copy the second part of user declarations. */ -#line 370 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:358 */ +#line 369 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:358 */ #ifdef short # undef short @@ -673,16 +672,16 @@ static const yytype_uint8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 265, 265, 271, 281, 282, 286, 304, 305, 311, - 314, 319, 327, 331, 332, 337, 346, 347, 355, 361, - 367, 372, 379, 385, 396, 400, 404, 411, 415, 423, - 424, 431, 432, 435, 439, 440, 444, 445, 461, 462, - 477, 478, 479, 483, 486, 489, 492, 495, 499, 503, - 507, 510, 514, 518, 522, 526, 530, 534, 538, 541, - 544, 557, 560, 563, 566, 569, 572, 575, 579, 586, - 591, 596, 601, 607, 615, 618, 623, 630, 637, 644, - 645, 649, 650, 656, 660, 663, 668, 673, 679, 687, - 693, 701, 704, 718, 719, 727, 735, 738, 742, 746, + 0, 264, 264, 270, 280, 281, 285, 303, 304, 310, + 313, 318, 326, 330, 331, 336, 345, 346, 354, 360, + 366, 371, 378, 384, 395, 399, 403, 410, 414, 422, + 423, 430, 431, 434, 438, 439, 443, 444, 460, 461, + 476, 477, 478, 482, 485, 488, 491, 494, 498, 502, + 506, 509, 513, 517, 521, 525, 529, 533, 537, 540, + 543, 556, 559, 562, 565, 568, 571, 574, 578, 585, + 590, 595, 600, 606, 615, 618, 623, 630, 637, 644, + 645, 649, 653, 660, 664, 667, 672, 677, 683, 691, + 697, 706, 709, 715, 719, 727, 735, 738, 742, 746, 750, 754, 758, 765, 770, 776, 782, 783, 791, 792, 800, 805, 813, 822, 836, 844, 849, 860, 868, 879, 886, 887, 893, 903, 904, 913, 920, 921, 927, 937, @@ -772,52 +771,52 @@ static const yytype_int16 yypact[] = { 20, 948, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, -400, 55, -400, -400, -400, -400, - -400, -400, 77, -400, 105, 106, 118, 164, 106, 106, - 129, 106, 129, 131, 131, 106, 106, 131, 147, 147, - 165, 165, 165, 183, 183, 183, 193, 183, 100, -400, - 240, -400, -400, -400, 463, -400, -400, -400, -400, 166, - 142, 204, 212, 34, 152, 412, 214, -400, -400, 50, - 214, 257, -400, 131, 219, -400, 51, 147, -400, 131, - 131, 177, 131, 131, 131, -40, -400, 242, 252, 157, - 131, 131, 131, 366, -400, -400, 106, 106, 106, 118, - 118, -400, -400, -400, -400, 118, 118, -400, 118, 118, - 118, 118, 118, 220, 220, 253, -400, -400, -400, -400, - -400, -400, -400, -400, 502, 541, -400, -400, -400, 118, - 118, 106, -400, 271, -400, -400, -400, -400, -400, 285, - 463, -400, 291, -400, 292, 49, -400, 541, 298, 121, - 34, 185, -400, 302, -400, 297, 323, 325, 323, 152, - 106, 106, 106, 541, 327, 328, 106, -400, 233, 170, - -400, -400, 329, 323, 50, 257, -400, 330, 331, 333, - 117, 335, 167, 257, 257, 336, 55, 339, -400, 340, - 344, 345, 346, 279, -400, -400, 347, 349, 353, 118, - 106, -400, 106, 131, 131, -400, 580, 580, 580, -400, - -400, 118, -400, -400, -400, -400, -400, -400, -400, -400, - 289, 289, -400, -400, -400, -400, 697, -400, 947, -400, - -400, -400, 580, -400, 231, 355, -400, -400, -400, -400, - 237, 359, -400, -400, 360, -400, -400, -400, 361, -400, - -400, 299, -400, -400, -400, -400, -400, 580, 368, 580, - 370, 327, -400, -400, 580, 236, -400, -400, 257, -400, - -400, -400, 378, -400, -400, 148, -400, 380, 118, 118, - 118, 118, 118, -400, -400, -400, 189, 223, -400, -400, - 295, -400, -400, -400, -400, 342, -400, -400, -400, -400, - -400, 387, 180, 362, 181, 191, 382, 131, 391, 868, - 580, 392, -400, 24, 402, 238, -400, -400, -400, 275, - 106, -400, 266, -400, 106, -400, -400, 403, -400, -400, - 828, 368, 393, -400, -400, -400, -400, -400, 580, -400, - 294, -400, 415, -400, 106, 106, 106, 106, -400, 420, - 424, 433, 434, 437, -400, -400, -400, 253, -400, 502, - 438, 619, 658, 449, 450, -400, -400, -400, 106, 106, - 106, 106, 118, 541, -400, -400, 275, 448, 200, 455, - 201, 208, 457, 215, -400, 248, 541, -400, 908, 327, - -400, 465, 466, -400, 294, -400, 467, 121, 323, 323, - -400, -400, -400, -400, -400, 468, -400, 502, 742, -400, - 787, -400, 658, -400, 216, -400, -400, 541, -400, 541, - -400, -400, 106, 355, 469, 471, 291, 475, 478, -400, - 484, 541, -400, 446, 456, -400, 235, 485, 488, 489, - 500, 514, -400, -400, -400, -400, 504, -400, -400, -400, - 355, 472, -400, -400, 291, 476, -400, 518, 523, 527, - 539, -400, -400, -400, -400, -400, 106, -400, -400, 538, - 556, -400, -400, -400, 541, 547, 563, 541, -400, 566, + -400, -400, 77, -400, 105, 106, 238, 129, 106, 106, + 168, 106, 168, 141, 141, 106, 106, 141, 147, 147, + 167, 167, 167, 193, 193, 193, 205, 193, 100, -400, + 240, -400, -400, -400, 463, -400, -400, -400, -400, 211, + 165, 220, 226, 34, 152, 412, 241, -400, -400, 50, + 241, 253, -400, 141, 246, -400, 51, 147, -400, 141, + 141, 198, 141, 141, 141, -40, -400, 271, 278, 160, + 141, 141, 141, 366, -400, -400, 106, 106, 106, 238, + 238, -400, -400, -400, -400, 238, 238, -400, 238, 238, + 238, 238, 238, 249, 249, 282, -400, -400, -400, -400, + -400, -400, -400, -400, 502, 541, -400, -400, -400, 238, + 238, 106, -400, 290, -400, -400, -400, -400, -400, 293, + 463, -400, 302, -400, 304, 49, -400, 541, 319, 121, + 34, 103, -400, 324, -400, 320, 325, 328, 325, 152, + 106, 106, 106, 541, 330, 331, 106, -400, 233, 221, + -400, -400, 332, 325, 50, 253, -400, 335, 334, 336, + 117, 340, 135, 253, 253, 344, 55, 345, -400, 346, + 347, 349, 353, 190, -400, -400, 354, 355, 359, 238, + 106, -400, 106, 141, 141, -400, 580, 580, 580, -400, + -400, 238, -400, -400, -400, -400, -400, -400, -400, -400, + 298, 298, -400, -400, -400, -400, 697, -400, 947, -400, + -400, -400, 580, -400, 237, 367, -400, -400, -400, -400, + 179, 368, -400, -400, 361, -400, -400, -400, 362, -400, + -400, 313, -400, -400, -400, -400, -400, 580, 379, 580, + 380, 330, -400, -400, 580, 236, -400, -400, 253, -400, + -400, -400, 381, -400, -400, 148, -400, 387, 238, 238, + 238, 238, 238, -400, -400, -400, 119, 242, -400, -400, + 255, -400, -400, -400, -400, 352, -400, -400, -400, -400, + -400, 388, 187, 386, 191, 200, 397, 141, 404, 868, + 580, 402, -400, 24, 403, 251, -400, -400, -400, 276, + 106, -400, 266, -400, 106, -400, -400, 420, -400, -400, + 828, 379, 425, -400, -400, -400, -400, -400, 580, -400, + 296, -400, 433, -400, 106, 106, 106, 106, -400, 434, + 437, 438, 449, 450, -400, -400, -400, 282, -400, 502, + 460, 619, 658, 461, 464, -400, -400, -400, 106, 106, + 106, 106, 238, 541, -400, -400, -400, 118, 201, 457, + 208, 215, 459, 216, -400, 248, 541, -400, 908, 330, + -400, 467, 468, -400, 296, -400, 469, 121, 325, 325, + -400, -400, -400, -400, -400, 470, -400, 502, 742, -400, + 787, -400, 658, -400, 218, -400, -400, 541, -400, 541, + -400, 106, -400, 367, 475, 478, 302, 484, 479, -400, + 485, 541, -400, 448, 466, -400, 244, 489, 500, 514, + 516, 517, -400, -400, -400, -400, 511, -400, -400, -400, + 367, 472, -400, -400, 302, 476, -400, 528, 539, 553, + 555, -400, -400, -400, -400, -400, 106, -400, -400, 547, + 557, -400, -400, -400, 541, 548, 566, 541, -400, 567, -400 }; @@ -868,7 +867,7 @@ static const yytype_uint8 yydefact[] = 89, 0, 0, 93, 90, 150, 16, 0, 0, 0, 163, 166, 164, 165, 167, 0, 127, 106, 0, 130, 0, 133, 106, 162, 0, 69, 71, 106, 70, 106, - 78, 82, 34, 123, 0, 123, 16, 0, 16, 143, + 78, 34, 82, 123, 0, 123, 16, 0, 16, 143, 0, 106, 101, 0, 0, 94, 0, 0, 0, 0, 0, 0, 212, 128, 134, 74, 0, 77, 73, 121, 123, 0, 124, 14, 16, 0, 17, 98, 0, 0, @@ -880,15 +879,15 @@ static const yytype_uint8 yydefact[] = /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -400, 143, -159, -1, -174, 405, -143, 509, -381, 154, - -150, -160, -62, -134, -52, 239, -12, -92, 31, 21, - -97, 491, 377, -400, -54, -400, -190, -131, 173, 175, - -400, 245, -28, -400, 261, 241, -400, 306, -400, -400, - -400, -46, -122, 383, 447, 459, -400, -400, 505, 413, - -399, 224, 536, -337, 313, -400, -341, 63, -400, -400, - 517, -400, -400, 503, -400, 533, -400, -400, -34, -400, - -400, 39, -400, -400, -5, -400, 608, -400, -400, 53, - 103, 234, -400, 665, -400, -400, 511, -400, -400 + -400, 145, -159, -1, -174, 427, -143, 534, -381, 170, + -150, -160, -62, -134, -52, 252, -12, -92, 31, 21, + -97, 491, 378, -400, -54, -400, -190, -131, 173, 176, + 258, -400, -28, -400, 283, 243, -400, 307, -400, -400, + -400, -46, -122, 383, 482, 481, -400, -400, 508, 414, + -399, 259, 550, -337, 315, -400, -341, 63, -400, -400, + 518, -400, -400, 509, -400, 537, -400, -400, -34, -400, + -400, 39, -400, -400, -5, -400, 612, -400, -400, 53, + 144, 234, -400, 677, -400, -400, 512, -400, -400 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -922,65 +921,65 @@ static const yytype_int16 yytable[] = 197, 198, 80, 212, 213, 71, 214, 215, 216, 217, 218, 319, 150, 159, 253, 52, 156, 156, 174, 342, 312, 171, 171, 203, 204, 53, 149, 230, 231, 183, - 184, 156, 156, 56, 248, 158, 329, 57, 335, 167, - 187, 146, 65, 175, 56, 312, 261, 312, 57, 72, - 173, 331, 340, 82, 83, 84, 378, 380, 338, 90, + 184, 156, 156, 354, 248, 158, 329, 273, 335, 167, + 187, 146, 60, 175, 421, 312, 261, 312, 53, 284, + 173, 331, 340, 372, 373, 285, 378, 380, 338, 72, 381, 383, 25, 26, 27, 151, 78, 56, 28, 29, - 30, 31, 32, 152, 33, 34, 35, 60, 81, 278, - 141, 284, 164, 53, 164, 279, 280, 285, 281, 367, - 166, 49, 166, 282, 359, 361, 85, 301, 312, 150, - 285, 285, 414, 354, 142, 362, 89, 273, 159, 315, - 344, 285, 307, 308, 423, 425, 345, 346, 143, 347, - 285, 285, 426, 174, 35, 60, 340, 65, 285, 428, - 445, 303, 180, 306, 36, 285, 285, 355, 38, 39, - 332, 273, 268, 261, 203, 204, 385, 266, 56, 441, - 341, 56, 57, -30, 36, 57, 194, -30, 440, 203, - 204, 420, 429, 56, 439, 164, 195, 57, 222, 223, - 224, 219, 438, 166, 430, 176, 349, 350, 351, 352, - 353, 415, 416, 417, 418, 233, 164, 86, 87, 88, - 91, 92, 295, 296, 166, 199, 320, 321, 234, 199, - 324, 325, 324, 325, 240, 446, 243, 447, 295, 356, - 372, 373, 247, 332, 389, 251, 364, 36, 152, 458, + 30, 31, 32, 152, 33, 34, 35, 203, 204, 278, + 81, 65, 164, 56, 164, 279, 280, 57, 281, 367, + 166, 49, 166, 282, 82, 83, 84, 301, 312, 150, + 90, 359, 414, 295, 296, 361, 85, 285, 159, 315, + 344, 285, 307, 308, 362, 423, 345, 346, 89, 347, + 285, 285, 425, 174, 35, 141, 340, 142, 285, 426, + 428, 303, 445, 306, 143, 285, 285, 36, 285, 60, + 332, 38, 39, 261, 324, 325, 385, 266, 56, 441, + 341, 56, 57, 56, 65, 57, 355, 57, 440, 180, + 273, 420, 429, 56, 439, 164, -30, 57, 295, 356, + -30, 176, 438, 166, 430, 36, 349, 350, 351, 352, + 353, 415, 416, 417, 418, 194, 164, 86, 87, 88, + 91, 92, 195, 268, 166, 203, 204, 222, 223, 224, + 219, 199, 320, 321, 233, 446, 234, 447, 199, 324, + 325, 372, 373, 332, 389, 240, 364, 36, 243, 458, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 320, 321, 391, 392, 448, 286, 287, 56, 254, - 228, 316, 263, 269, 164, 274, 275, 171, 273, 283, - 288, 379, 166, 289, 291, 382, 156, 156, 292, 293, - 294, 298, 476, 299, 164, 479, 164, 300, 322, 328, - 419, 432, 166, 326, 166, 55, 55, 55, 55, 473, - 327, 330, 360, 244, 336, 396, 397, 398, 399, 94, - 95, 160, 343, 161, 348, 357, 162, 99, 100, 101, - 102, 358, 363, 103, 104, 365, 388, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 384, 368, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 371, 395, - 199, 200, 201, 202, 400, 94, 95, 160, 401, 161, - 203, 204, 162, 99, 100, 101, 102, 402, 403, 103, - 104, 404, 407, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 412, 413, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 422, 424, 93, 427, 433, 434, - 436, 372, 442, 450, 451, 163, 94, 95, 96, 454, - 97, 455, 373, 98, 99, 100, 101, 102, 457, 461, - 103, 104, 462, 463, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 464, 226, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 94, 95, 96, 465, 97, - 466, 469, 98, 99, 100, 101, 102, 470, 321, 103, - 104, 471, 325, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 472, 228, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 94, 95, 96, 474, 97, 475, - 252, 98, 99, 100, 101, 102, 477, 478, 103, 104, - 480, 144, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 456, 309, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 94, 95, 96, 405, 97, 318, 390, - 98, 99, 100, 101, 102, 221, 459, 103, 104, 460, - 260, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 421, 408, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 94, 95, 96, 435, 97, 387, 276, 98, - 99, 100, 101, 102, 337, 239, 103, 104, 323, 452, + 47, 320, 321, 247, 448, 391, 392, 251, 286, 287, + 56, 152, 254, 228, 164, 263, 269, 171, 274, 275, + 316, 379, 166, 273, 283, 382, 156, 156, 288, 289, + 291, 292, 476, 293, 164, 479, 164, 294, 298, 299, + 419, 432, 166, 300, 166, 55, 55, 55, 55, 473, + 322, 327, 326, 328, 244, 396, 397, 398, 399, 94, + 95, 160, 330, 161, 336, 343, 162, 99, 100, 101, + 102, 348, 358, 103, 104, 357, 360, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 363, 365, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 368, 371, + 199, 200, 201, 202, 384, 94, 95, 160, 388, 161, + 203, 204, 162, 99, 100, 101, 102, 395, 400, 103, + 104, 401, 402, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 403, 404, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 407, 412, 93, 424, 413, 427, + 433, 434, 436, 372, 442, 163, 94, 95, 96, 450, + 97, 451, 455, 98, 99, 100, 101, 102, 454, 457, + 103, 104, 373, 461, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 462, 226, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 94, 95, 96, 463, 97, + 464, 465, 98, 99, 100, 101, 102, 466, 321, 103, + 104, 469, 325, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 470, 228, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 94, 95, 96, 471, 97, 472, + 475, 98, 99, 100, 101, 102, 474, 477, 103, 104, + 478, 480, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 252, 309, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 94, 95, 96, 144, 97, 456, 318, + 98, 99, 100, 101, 102, 221, 459, 103, 104, 405, + 460, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 390, 408, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 94, 95, 96, 422, 97, 435, 387, 98, + 99, 100, 101, 102, 337, 260, 103, 104, 239, 323, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 227, 410, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 94, 95, 96, 409, 97, 256, 271, 98, 99, - 100, 101, 102, 250, 186, 103, 104, 51, 0, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 290, - 0, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 276, 410, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 94, 95, 96, 227, 97, 409, 256, 98, 99, + 100, 101, 102, 271, 452, 103, 104, 250, 186, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 51, + 290, 115, 116, 117, 118, 119, 120, 121, 122, 123, 94, 95, 160, 0, 161, 0, 0, 162, 99, 100, 101, 102, 0, 0, 103, 104, 0, 0, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 0, 0, @@ -1029,65 +1028,65 @@ static const yytype_int16 yycheck[] = 91, 92, 39, 105, 106, 32, 108, 109, 110, 111, 112, 232, 63, 64, 156, 0, 158, 159, 69, 268, 232, 173, 174, 64, 65, 9, 150, 129, 130, 68, - 69, 173, 174, 5, 3, 159, 257, 9, 259, 66, - 77, 10, 3, 70, 5, 257, 164, 259, 9, 8, - 174, 331, 264, 40, 41, 42, 320, 321, 338, 46, + 69, 173, 174, 4, 3, 159, 257, 8, 259, 66, + 77, 10, 3, 70, 16, 257, 164, 259, 9, 4, + 174, 331, 264, 25, 26, 10, 320, 321, 338, 8, 324, 325, 52, 53, 54, 3, 9, 5, 58, 59, - 60, 61, 62, 11, 64, 65, 66, 3, 3, 52, - 4, 4, 226, 9, 228, 58, 59, 10, 61, 310, - 226, 186, 228, 66, 4, 4, 3, 199, 310, 150, - 10, 10, 366, 4, 52, 4, 3, 8, 159, 211, - 52, 10, 203, 204, 4, 4, 58, 59, 4, 61, - 10, 10, 4, 174, 66, 3, 338, 3, 10, 4, - 4, 200, 3, 202, 67, 10, 10, 4, 71, 72, - 258, 8, 62, 261, 64, 65, 328, 4, 5, 399, - 4, 5, 9, 5, 67, 9, 4, 9, 398, 64, - 65, 373, 4, 5, 397, 309, 4, 9, 5, 6, - 7, 41, 396, 309, 386, 8, 278, 279, 280, 281, + 60, 61, 62, 11, 64, 65, 66, 64, 65, 52, + 3, 3, 226, 5, 228, 58, 59, 9, 61, 310, + 226, 186, 228, 66, 40, 41, 42, 199, 310, 150, + 46, 4, 366, 3, 4, 4, 3, 10, 159, 211, + 52, 10, 203, 204, 4, 4, 58, 59, 3, 61, + 10, 10, 4, 174, 66, 4, 338, 52, 10, 4, + 4, 200, 4, 202, 4, 10, 10, 67, 10, 3, + 258, 71, 72, 261, 55, 56, 328, 4, 5, 399, + 4, 5, 9, 5, 3, 9, 4, 9, 398, 3, + 8, 373, 4, 5, 397, 309, 5, 9, 3, 4, + 9, 8, 396, 309, 386, 67, 278, 279, 280, 281, 282, 368, 369, 370, 371, 4, 330, 43, 44, 45, - 46, 47, 3, 4, 330, 54, 55, 56, 3, 54, - 55, 56, 55, 56, 3, 417, 4, 419, 3, 4, - 25, 26, 4, 331, 332, 3, 307, 67, 11, 431, + 46, 47, 4, 62, 330, 64, 65, 5, 6, 7, + 41, 54, 55, 56, 4, 417, 3, 419, 54, 55, + 56, 25, 26, 331, 332, 3, 307, 67, 4, 431, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 55, 56, 29, 30, 422, 183, 184, 5, 4, - 3, 42, 4, 4, 388, 4, 3, 399, 8, 4, - 4, 320, 388, 4, 4, 324, 398, 399, 4, 4, - 4, 4, 474, 4, 408, 477, 410, 4, 3, 60, + 80, 55, 56, 4, 421, 29, 30, 3, 183, 184, + 5, 11, 4, 3, 388, 4, 4, 399, 4, 3, + 42, 320, 388, 8, 4, 324, 398, 399, 4, 4, + 4, 4, 474, 4, 408, 477, 410, 4, 4, 4, 372, 389, 408, 4, 410, 344, 345, 346, 347, 466, - 10, 3, 10, 12, 4, 344, 345, 346, 347, 13, - 14, 15, 4, 17, 4, 43, 20, 21, 22, 23, - 24, 4, 10, 27, 28, 4, 3, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 4, 16, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 16, 4, - 54, 55, 56, 57, 4, 13, 14, 15, 4, 17, + 3, 10, 4, 60, 12, 344, 345, 346, 347, 13, + 14, 15, 3, 17, 4, 4, 20, 21, 22, 23, + 24, 4, 4, 27, 28, 43, 10, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 10, 4, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 16, 16, + 54, 55, 56, 57, 4, 13, 14, 15, 3, 17, 64, 65, 20, 21, 22, 23, 24, 4, 4, 27, 28, 4, 4, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 4, 4, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 16, 10, 3, 10, 3, 3, - 3, 25, 4, 4, 3, 63, 13, 14, 15, 4, - 17, 3, 26, 20, 21, 22, 23, 24, 4, 4, - 27, 28, 4, 4, 31, 32, 33, 34, 35, 36, + 48, 49, 50, 51, 4, 4, 3, 10, 4, 10, + 3, 3, 3, 25, 4, 63, 13, 14, 15, 4, + 17, 3, 3, 20, 21, 22, 23, 24, 4, 4, + 27, 28, 26, 4, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 4, 3, 43, 44, 45, 46, 47, 48, 49, 50, 51, 13, 14, 15, 4, 17, - 16, 3, 20, 21, 22, 23, 24, 4, 56, 27, - 28, 4, 56, 31, 32, 33, 34, 35, 36, 37, + 4, 4, 20, 21, 22, 23, 24, 16, 56, 27, + 28, 3, 56, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 4, 3, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 13, 14, 15, 19, 17, 3, - 155, 20, 21, 22, 23, 24, 19, 4, 27, 28, - 4, 62, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 428, 3, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 13, 14, 15, 357, 17, 221, 338, - 20, 21, 22, 23, 24, 114, 433, 27, 28, 434, - 163, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 376, 3, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 13, 14, 15, 394, 17, 331, 179, 20, - 21, 22, 23, 24, 261, 140, 27, 28, 235, 425, + 48, 49, 50, 51, 13, 14, 15, 4, 17, 4, + 3, 20, 21, 22, 23, 24, 19, 19, 27, 28, + 4, 4, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 155, 3, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 13, 14, 15, 62, 17, 428, 221, + 20, 21, 22, 23, 24, 114, 433, 27, 28, 357, + 434, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 338, 3, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 13, 14, 15, 377, 17, 394, 331, 20, + 21, 22, 23, 24, 261, 163, 27, 28, 140, 235, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 124, 3, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 13, 14, 15, 361, 17, 159, 174, 20, 21, - 22, 23, 24, 150, 76, 27, 28, 22, -1, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 188, - -1, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 179, 3, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 13, 14, 15, 124, 17, 361, 159, 20, 21, + 22, 23, 24, 174, 425, 27, 28, 150, 76, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 22, + 188, 43, 44, 45, 46, 47, 48, 49, 50, 51, 13, 14, 15, -1, 17, -1, -1, 20, 21, 22, 23, 24, -1, -1, 27, 28, -1, -1, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, -1, -1, @@ -1168,7 +1167,7 @@ static const yytype_uint8 yystos[] = 116, 29, 30, 117, 118, 4, 100, 100, 100, 100, 4, 4, 4, 4, 4, 97, 135, 4, 3, 136, 3, 138, 4, 4, 86, 102, 102, 102, 102, 98, - 124, 113, 16, 4, 10, 4, 4, 10, 4, 4, + 124, 16, 112, 4, 10, 4, 4, 10, 4, 4, 124, 18, 114, 3, 3, 117, 3, 90, 95, 88, 92, 93, 4, 135, 138, 4, 124, 124, 102, 132, 4, 3, 133, 90, 4, 3, 91, 4, 124, 110, @@ -1725,459 +1724,435 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocatio switch (yytype) { case 5: /* NAT */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ +#line 228 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1731 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1730 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 6: /* INT */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ +#line 228 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1737 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1736 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 7: /* FLOAT */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ +#line 228 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1743 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1742 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 8: /* TEXT */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ +#line 228 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1749 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1748 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 9: /* VAR */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ +#line 228 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1755 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1754 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 41: /* OFFSET_EQ_NAT */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ +#line 228 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1761 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1760 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 42: /* ALIGN_EQ_NAT */ -#line 229 "src/wast-parser.y" /* yacc.c:1257 */ +#line 228 "src/wast-parser.y" /* yacc.c:1257 */ {} -#line 1767 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1766 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 83: /* text_list */ -#line 249 "src/wast-parser.y" /* yacc.c:1257 */ +#line 248 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_text_list(&((*yyvaluep).text_list)); } -#line 1773 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1772 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 84: /* text_list_opt */ -#line 249 "src/wast-parser.y" /* yacc.c:1257 */ +#line 248 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_text_list(&((*yyvaluep).text_list)); } -#line 1779 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1778 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 85: /* quoted_text */ -#line 230 "src/wast-parser.y" /* yacc.c:1257 */ +#line 229 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1785 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1784 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 86: /* value_type_list */ -#line 250 "src/wast-parser.y" /* yacc.c:1257 */ +#line 249 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).types); } -#line 1791 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1790 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 88: /* global_type */ -#line 243 "src/wast-parser.y" /* yacc.c:1257 */ +#line 242 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).global); } -#line 1797 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1796 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 89: /* func_type */ -#line 242 "src/wast-parser.y" /* yacc.c:1257 */ +#line 241 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_sig); } -#line 1803 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1802 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 90: /* func_sig */ -#line 242 "src/wast-parser.y" /* yacc.c:1257 */ +#line 241 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_sig); } -#line 1809 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1808 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 91: /* func_sig_result */ -#line 242 "src/wast-parser.y" /* yacc.c:1257 */ +#line 241 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func_sig); } -#line 1815 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1814 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 93: /* memory_sig */ -#line 245 "src/wast-parser.y" /* yacc.c:1257 */ +#line 244 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).memory); } -#line 1821 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1820 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 95: /* type_use */ -#line 251 "src/wast-parser.y" /* yacc.c:1257 */ +#line 250 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).var); } -#line 1827 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1826 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 97: /* literal */ -#line 231 "src/wast-parser.y" /* yacc.c:1257 */ +#line 230 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).literal).text); } -#line 1833 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1832 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 98: /* var */ -#line 251 "src/wast-parser.y" /* yacc.c:1257 */ +#line 250 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).var); } -#line 1839 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1838 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 99: /* var_list */ -#line 252 "src/wast-parser.y" /* yacc.c:1257 */ +#line 251 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).vars); } -#line 1845 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1844 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 100: /* bind_var_opt */ -#line 230 "src/wast-parser.y" /* yacc.c:1257 */ +#line 229 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1851 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1850 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 101: /* bind_var */ -#line 230 "src/wast-parser.y" /* yacc.c:1257 */ +#line 229 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1857 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1856 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 102: /* labeling_opt */ -#line 230 "src/wast-parser.y" /* yacc.c:1257 */ +#line 229 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_string_slice(&((*yyvaluep).text)); } -#line 1863 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1862 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 105: /* instr */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1869 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1868 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 106: /* plain_instr */ -#line 238 "src/wast-parser.y" /* yacc.c:1257 */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).expr); } -#line 1875 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1874 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 107: /* block_instr */ -#line 238 "src/wast-parser.y" /* yacc.c:1257 */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).expr); } -#line 1881 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1880 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 108: /* block_sig */ -#line 250 "src/wast-parser.y" /* yacc.c:1257 */ +#line 249 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).types); } -#line 1887 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1886 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 109: /* block */ -#line 233 "src/wast-parser.y" /* yacc.c:1257 */ +#line 232 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).block); } -#line 1893 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ - break; - - case 110: /* plain_catch */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ - { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1899 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ - break; - - case 111: /* plain_catch_all */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ - { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1905 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ - break; - - case 112: /* catch_instr */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ - { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1911 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1892 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 113: /* catch_instr_list */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ - { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1917 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ + { delete ((*yyvaluep).expr); } +#line 1898 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 114: /* expr */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1923 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1904 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 115: /* expr1 */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1929 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1910 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 116: /* try_ */ -#line 238 "src/wast-parser.y" /* yacc.c:1257 */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).expr); } -#line 1935 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ - break; - - case 117: /* catch_sexp */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ - { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1941 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1916 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 118: /* catch_sexp_list */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ - { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1947 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 237 "src/wast-parser.y" /* yacc.c:1257 */ + { delete ((*yyvaluep).expr); } +#line 1922 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 119: /* if_block */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1953 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1928 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 120: /* if_ */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1959 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1934 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 124: /* instr_list */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1965 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1940 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 125: /* expr_list */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1971 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 126: /* const_expr */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 1977 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1952 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 129: /* func */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 1983 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1958 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 130: /* func_fields */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 1989 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1964 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 131: /* func_fields_import */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 1995 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1970 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 132: /* func_fields_import1 */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 2001 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1976 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 133: /* func_fields_import_result */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 2007 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1982 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 134: /* func_fields_body */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 2013 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1988 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 135: /* func_fields_body1 */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 2019 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 1994 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 136: /* func_result_body */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 2025 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2000 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 137: /* func_body */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 2031 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2006 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 138: /* func_body1 */ -#line 241 "src/wast-parser.y" /* yacc.c:1257 */ +#line 240 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).func); } -#line 2037 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2012 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 139: /* offset */ -#line 239 "src/wast-parser.y" /* yacc.c:1257 */ +#line 238 "src/wast-parser.y" /* yacc.c:1257 */ { DestroyExprList(((*yyvaluep).expr_list).first); } -#line 2043 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2018 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 141: /* table */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2049 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2024 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 142: /* table_fields */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2055 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2030 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 144: /* memory */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2061 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2036 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 145: /* memory_fields */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2067 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2042 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 146: /* global */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2073 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2048 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 147: /* global_fields */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2079 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2054 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 148: /* import_desc */ -#line 244 "src/wast-parser.y" /* yacc.c:1257 */ +#line 243 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).import); } -#line 2085 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2060 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 150: /* inline_import */ -#line 244 "src/wast-parser.y" /* yacc.c:1257 */ +#line 243 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).import); } -#line 2091 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2066 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 151: /* export_desc */ -#line 237 "src/wast-parser.y" /* yacc.c:1257 */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).export_); } -#line 2097 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2072 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 153: /* inline_export */ -#line 237 "src/wast-parser.y" /* yacc.c:1257 */ +#line 236 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).export_); } -#line 2103 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2078 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 156: /* module_field */ -#line 240 "src/wast-parser.y" /* yacc.c:1257 */ +#line 239 "src/wast-parser.y" /* yacc.c:1257 */ { destroy_module_field_list(&((*yyvaluep).module_fields)); } -#line 2109 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2084 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 157: /* module_fields_opt */ -#line 246 "src/wast-parser.y" /* yacc.c:1257 */ +#line 245 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 2115 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2090 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 158: /* module_fields */ -#line 246 "src/wast-parser.y" /* yacc.c:1257 */ +#line 245 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 2121 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2096 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 159: /* module */ -#line 246 "src/wast-parser.y" /* yacc.c:1257 */ +#line 245 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 2127 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2102 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 160: /* inline_module */ -#line 246 "src/wast-parser.y" /* yacc.c:1257 */ +#line 245 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).module); } -#line 2133 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2108 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 161: /* script_var_opt */ -#line 251 "src/wast-parser.y" /* yacc.c:1257 */ +#line 250 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).var); } -#line 2139 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2114 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 162: /* script_module */ -#line 247 "src/wast-parser.y" /* yacc.c:1257 */ +#line 246 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).script_module); } -#line 2145 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2120 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 163: /* action */ -#line 232 "src/wast-parser.y" /* yacc.c:1257 */ +#line 231 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).action); } -#line 2151 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2126 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 164: /* assertion */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ +#line 233 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).command); } -#line 2157 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2132 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 165: /* cmd */ -#line 234 "src/wast-parser.y" /* yacc.c:1257 */ +#line 233 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).command); } -#line 2163 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2138 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 166: /* cmd_list */ -#line 235 "src/wast-parser.y" /* yacc.c:1257 */ +#line 234 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).commands); } -#line 2169 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2144 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 168: /* const_list */ -#line 236 "src/wast-parser.y" /* yacc.c:1257 */ +#line 235 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).consts); } -#line 2175 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2150 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; case 169: /* script */ -#line 248 "src/wast-parser.y" /* yacc.c:1257 */ +#line 247 "src/wast-parser.y" /* yacc.c:1257 */ { delete ((*yyvaluep).script); } -#line 2181 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ +#line 2156 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1257 */ break; @@ -2469,18 +2444,18 @@ yyreduce: switch (yyn) { case 2: -#line 265 "src/wast-parser.y" /* yacc.c:1646 */ +#line 264 "src/wast-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 2480 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2455 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 3: -#line 271 "src/wast-parser.y" /* yacc.c:1646 */ +#line 270 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.text_list) = (yyvsp[-1].text_list); TextListNode* node = new TextListNode(); @@ -2489,17 +2464,17 @@ yyreduce: (yyval.text_list).last->next = node; (yyval.text_list).last = node; } -#line 2493 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2468 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 4: -#line 281 "src/wast-parser.y" /* yacc.c:1646 */ +#line 280 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.text_list).first = (yyval.text_list).last = nullptr; } -#line 2499 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2474 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 6: -#line 286 "src/wast-parser.y" /* yacc.c:1646 */ +#line 285 "src/wast-parser.y" /* yacc.c:1646 */ { TextListNode node; node.text = (yyvsp[0].text); @@ -2513,139 +2488,139 @@ yyreduce: (yyval.text).start = data; (yyval.text).length = size; } -#line 2517 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2492 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 7: -#line 304 "src/wast-parser.y" /* yacc.c:1646 */ +#line 303 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.types) = new TypeVector(); } -#line 2523 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2498 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 8: -#line 305 "src/wast-parser.y" /* yacc.c:1646 */ +#line 304 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.types) = (yyvsp[-1].types); (yyval.types)->push_back((yyvsp[0].type)); } -#line 2532 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2507 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 9: -#line 311 "src/wast-parser.y" /* yacc.c:1646 */ +#line 310 "src/wast-parser.y" /* yacc.c:1646 */ {} -#line 2538 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2513 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 10: -#line 314 "src/wast-parser.y" /* yacc.c:1646 */ +#line 313 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.global) = new Global(); (yyval.global)->type = (yyvsp[0].type); (yyval.global)->mutable_ = false; } -#line 2548 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2523 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 11: -#line 319 "src/wast-parser.y" /* yacc.c:1646 */ +#line 318 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.global) = new Global(); (yyval.global)->type = (yyvsp[-1].type); (yyval.global)->mutable_ = true; } -#line 2558 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2533 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 12: -#line 327 "src/wast-parser.y" /* yacc.c:1646 */ +#line 326 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[-1].func_sig); } -#line 2564 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2539 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 14: -#line 332 "src/wast-parser.y" /* yacc.c:1646 */ +#line 331 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[0].func_sig); (yyval.func_sig)->param_types.insert((yyval.func_sig)->param_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 2574 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2549 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 15: -#line 337 "src/wast-parser.y" /* yacc.c:1646 */ +#line 336 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[0].func_sig); (yyval.func_sig)->param_types.insert((yyval.func_sig)->param_types.begin(), (yyvsp[-2].type)); // Ignore bind_var. destroy_string_slice(&(yyvsp[-3].text)); } -#line 2585 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2560 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 16: -#line 346 "src/wast-parser.y" /* yacc.c:1646 */ +#line 345 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = new FuncSignature(); } -#line 2591 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2566 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 17: -#line 347 "src/wast-parser.y" /* yacc.c:1646 */ +#line 346 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func_sig) = (yyvsp[0].func_sig); (yyval.func_sig)->result_types.insert((yyval.func_sig)->result_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 2601 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2576 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 18: -#line 355 "src/wast-parser.y" /* yacc.c:1646 */ +#line 354 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.table) = new Table(); (yyval.table)->elem_limits = (yyvsp[-1].limits); } -#line 2610 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2585 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 19: -#line 361 "src/wast-parser.y" /* yacc.c:1646 */ +#line 360 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.memory) = new Memory(); (yyval.memory)->page_limits = (yyvsp[0].limits); } -#line 2619 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2594 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 20: -#line 367 "src/wast-parser.y" /* yacc.c:1646 */ +#line 366 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.limits).has_max = false; (yyval.limits).initial = (yyvsp[0].u64); (yyval.limits).max = 0; } -#line 2629 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2604 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 21: -#line 372 "src/wast-parser.y" /* yacc.c:1646 */ +#line 371 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.limits).has_max = true; (yyval.limits).initial = (yyvsp[-1].u64); (yyval.limits).max = (yyvsp[0].u64); } -#line 2639 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2614 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 22: -#line 379 "src/wast-parser.y" /* yacc.c:1646 */ +#line 378 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.var) = (yyvsp[-1].var); } -#line 2645 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2620 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 23: -#line 385 "src/wast-parser.y" /* yacc.c:1646 */ +#line 384 "src/wast-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)))) { @@ -2654,98 +2629,98 @@ yyreduce: WABT_PRINTF_STRING_SLICE_ARG((yyvsp[0].literal).text)); } } -#line 2658 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2633 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 24: -#line 396 "src/wast-parser.y" /* yacc.c:1646 */ +#line 395 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2667 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2642 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 25: -#line 400 "src/wast-parser.y" /* yacc.c:1646 */ +#line 399 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2676 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2651 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 26: -#line 404 "src/wast-parser.y" /* yacc.c:1646 */ +#line 403 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.literal).type = (yyvsp[0].literal).type; DUPTEXT((yyval.literal).text, (yyvsp[0].literal).text); } -#line 2685 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2660 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 27: -#line 411 "src/wast-parser.y" /* yacc.c:1646 */ +#line 410 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.var) = new Var((yyvsp[0].u64)); (yyval.var)->loc = (yylsp[0]); } -#line 2694 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2669 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 28: -#line 415 "src/wast-parser.y" /* yacc.c:1646 */ +#line 414 "src/wast-parser.y" /* yacc.c:1646 */ { StringSlice name; DUPTEXT(name, (yyvsp[0].text)); (yyval.var) = new Var(name); (yyval.var)->loc = (yylsp[0]); } -#line 2705 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2680 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 29: -#line 423 "src/wast-parser.y" /* yacc.c:1646 */ +#line 422 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.vars) = new VarVector(); } -#line 2711 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2686 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 30: -#line 424 "src/wast-parser.y" /* yacc.c:1646 */ +#line 423 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.vars) = (yyvsp[-1].vars); (yyval.vars)->emplace_back(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2721 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2696 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 31: -#line 431 "src/wast-parser.y" /* yacc.c:1646 */ +#line 430 "src/wast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.text)); } -#line 2727 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2702 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 33: -#line 435 "src/wast-parser.y" /* yacc.c:1646 */ +#line 434 "src/wast-parser.y" /* yacc.c:1646 */ { DUPTEXT((yyval.text), (yyvsp[0].text)); } -#line 2733 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2708 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 34: -#line 439 "src/wast-parser.y" /* yacc.c:1646 */ +#line 438 "src/wast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.text)); } -#line 2739 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2714 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 36: -#line 444 "src/wast-parser.y" /* yacc.c:1646 */ +#line 443 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.u64) = 0; } -#line 2745 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2720 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 37: -#line 445 "src/wast-parser.y" /* yacc.c:1646 */ +#line 444 "src/wast-parser.y" /* yacc.c:1646 */ { uint64_t offset64; if (WABT_FAILED(parse_int64((yyvsp[0].text).start, (yyvsp[0].text).start + (yyvsp[0].text).length, &offset64, @@ -2760,17 +2735,17 @@ yyreduce: } (yyval.u64) = static_cast<uint32_t>(offset64); } -#line 2764 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2739 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 38: -#line 461 "src/wast-parser.y" /* yacc.c:1646 */ +#line 460 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.u32) = USE_NATURAL_ALIGNMENT; } -#line 2770 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2745 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 39: -#line 462 "src/wast-parser.y" /* yacc.c:1646 */ +#line 461 "src/wast-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))) { @@ -2783,169 +2758,169 @@ yyreduce: wast_parser_error(&(yylsp[0]), lexer, parser, "alignment must be power-of-two"); } } -#line 2787 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2762 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 40: -#line 477 "src/wast-parser.y" /* yacc.c:1646 */ +#line 476 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); } -#line 2793 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2768 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 41: -#line 478 "src/wast-parser.y" /* yacc.c:1646 */ +#line 477 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs1(&(yylsp[0]), (yyvsp[0].expr)); } -#line 2799 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2774 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 43: -#line 483 "src/wast-parser.y" /* yacc.c:1646 */ +#line 482 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateUnreachable(); } -#line 2807 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2782 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 44: -#line 486 "src/wast-parser.y" /* yacc.c:1646 */ +#line 485 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateNop(); } -#line 2815 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2790 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 45: -#line 489 "src/wast-parser.y" /* yacc.c:1646 */ +#line 488 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateDrop(); } -#line 2823 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2798 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 46: -#line 492 "src/wast-parser.y" /* yacc.c:1646 */ +#line 491 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSelect(); } -#line 2831 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2806 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 47: -#line 495 "src/wast-parser.y" /* yacc.c:1646 */ +#line 494 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBr(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2840 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2815 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 48: -#line 499 "src/wast-parser.y" /* yacc.c:1646 */ +#line 498 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBrIf(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2849 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2824 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 49: -#line 503 "src/wast-parser.y" /* yacc.c:1646 */ +#line 502 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBrTable((yyvsp[-1].vars), std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2858 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2833 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 50: -#line 507 "src/wast-parser.y" /* yacc.c:1646 */ +#line 506 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateReturn(); } -#line 2866 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2841 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 51: -#line 510 "src/wast-parser.y" /* yacc.c:1646 */ +#line 509 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCall(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2875 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2850 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 52: -#line 514 "src/wast-parser.y" /* yacc.c:1646 */ +#line 513 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCallIndirect(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2884 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2859 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 53: -#line 518 "src/wast-parser.y" /* yacc.c:1646 */ +#line 517 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGetLocal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2893 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2868 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 54: -#line 522 "src/wast-parser.y" /* yacc.c:1646 */ +#line 521 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSetLocal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2902 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2877 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 55: -#line 526 "src/wast-parser.y" /* yacc.c:1646 */ +#line 525 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateTeeLocal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2911 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2886 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 56: -#line 530 "src/wast-parser.y" /* yacc.c:1646 */ +#line 529 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGetGlobal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2920 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2895 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 57: -#line 534 "src/wast-parser.y" /* yacc.c:1646 */ +#line 533 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateSetGlobal(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 2929 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2904 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 58: -#line 538 "src/wast-parser.y" /* yacc.c:1646 */ +#line 537 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateLoad((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64)); } -#line 2937 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2912 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 59: -#line 541 "src/wast-parser.y" /* yacc.c:1646 */ +#line 540 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateStore((yyvsp[-2].opcode), (yyvsp[0].u32), (yyvsp[-1].u64)); } -#line 2945 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2920 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 60: -#line 544 "src/wast-parser.y" /* yacc.c:1646 */ +#line 543 "src/wast-parser.y" /* yacc.c:1646 */ { Const const_; WABT_ZERO_MEMORY(const_); @@ -2959,130 +2934,131 @@ yyreduce: delete [] (yyvsp[0].literal).text.start; (yyval.expr) = Expr::CreateConst(const_); } -#line 2963 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2938 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 61: -#line 557 "src/wast-parser.y" /* yacc.c:1646 */ +#line 556 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateUnary((yyvsp[0].opcode)); } -#line 2971 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 62: -#line 560 "src/wast-parser.y" /* yacc.c:1646 */ +#line 559 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateBinary((yyvsp[0].opcode)); } -#line 2979 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2954 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 63: -#line 563 "src/wast-parser.y" /* yacc.c:1646 */ +#line 562 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCompare((yyvsp[0].opcode)); } -#line 2987 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2962 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 64: -#line 566 "src/wast-parser.y" /* yacc.c:1646 */ +#line 565 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateConvert((yyvsp[0].opcode)); } -#line 2995 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2970 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 65: -#line 569 "src/wast-parser.y" /* yacc.c:1646 */ +#line 568 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateCurrentMemory(); } -#line 3003 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2978 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 66: -#line 572 "src/wast-parser.y" /* yacc.c:1646 */ +#line 571 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateGrowMemory(); } -#line 3011 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2986 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 67: -#line 575 "src/wast-parser.y" /* yacc.c:1646 */ +#line 574 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateThrow(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 3020 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 2995 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 68: -#line 579 "src/wast-parser.y" /* yacc.c:1646 */ +#line 578 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = Expr::CreateRethrow(std::move(*(yyvsp[0].var))); delete (yyvsp[0].var); } -#line 3029 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3004 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 69: -#line 586 "src/wast-parser.y" /* yacc.c:1646 */ +#line 585 "src/wast-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 3039 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3014 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 70: -#line 591 "src/wast-parser.y" /* yacc.c:1646 */ +#line 590 "src/wast-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 3049 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3024 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 71: -#line 596 "src/wast-parser.y" /* yacc.c:1646 */ +#line 595 "src/wast-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 3059 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3034 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 72: -#line 601 "src/wast-parser.y" /* yacc.c:1646 */ +#line 600 "src/wast-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 3070 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3045 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 73: -#line 607 "src/wast-parser.y" /* yacc.c:1646 */ +#line 606 "src/wast-parser.y" /* yacc.c:1646 */ { (yyvsp[-3].block)->label = (yyvsp[-4].text); - (yyval.expr) = Expr::CreateTry((yyvsp[-3].block), (yyvsp[-2].expr_list).first); + (yyval.expr) = (yyvsp[-2].expr); + (yyval.expr)->try_block.block = (yyvsp[-3].block); CHECK_END_LABEL((yylsp[0]), (yyvsp[-3].block)->label, (yyvsp[0].text)); } -#line 3080 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3056 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 74: #line 615 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.types) = (yyvsp[-1].types); } -#line 3086 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3062 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 75: @@ -3092,7 +3068,7 @@ yyreduce: (yyval.block)->sig.insert((yyval.block)->sig.end(), (yyvsp[-1].types)->begin(), (yyvsp[-1].types)->end()); delete (yyvsp[-1].types); } -#line 3096 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3072 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 76: @@ -3101,135 +3077,155 @@ yyreduce: (yyval.block) = new Block(); (yyval.block)->first = (yyvsp[0].expr_list).first; } -#line 3105 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3081 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 77: #line 630 "src/wast-parser.y" /* yacc.c:1646 */ { - Expr* expr = Expr::CreateCatch(std::move(*(yyvsp[-1].var)), (yyvsp[0].expr_list).first); + (yyval.catch_) = new Catch(std::move(*(yyvsp[-1].var)), (yyvsp[0].expr_list).first); + (yyval.catch_)->loc = (yylsp[-2]); delete (yyvsp[-1].var); - (yyval.expr_list) = join_exprs1(&(yylsp[-2]), expr); } -#line 3115 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3091 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 78: #line 637 "src/wast-parser.y" /* yacc.c:1646 */ { - Expr* expr = Expr::CreateCatchAll((yyvsp[0].expr_list).first); - (yyval.expr_list) = join_exprs1(&(yylsp[-1]), expr); + (yyval.catch_) = new Catch((yyvsp[0].expr_list).first); + (yyval.catch_)->loc = (yylsp[-1]); } -#line 3124 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3100 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 81: +#line 649 "src/wast-parser.y" /* yacc.c:1646 */ + { + (yyval.expr) = Expr::CreateTry(); + (yyval.expr)->try_block.catches->push_back((yyvsp[0].catch_)); + } +#line 3109 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 82: -#line 650 "src/wast-parser.y" /* yacc.c:1646 */ +#line 653 "src/wast-parser.y" /* yacc.c:1646 */ { - (yyval.expr_list) = join_expr_lists(&(yyvsp[-1].expr_list), &(yyvsp[0].expr_list)); + (yyval.expr) = (yyvsp[-1].expr); + (yyval.expr)->try_block.catches->push_back((yyvsp[0].catch_)); } -#line 3132 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3118 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 83: -#line 656 "src/wast-parser.y" /* yacc.c:1646 */ +#line 660 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 3138 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3124 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 84: -#line 660 "src/wast-parser.y" /* yacc.c:1646 */ +#line 664 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = join_exprs2(&(yylsp[-1]), &(yyvsp[0].expr_list), (yyvsp[-1].expr)); } -#line 3146 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3132 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 85: -#line 663 "src/wast-parser.y" /* yacc.c:1646 */ +#line 667 "src/wast-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 3156 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3142 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 86: -#line 668 "src/wast-parser.y" /* yacc.c:1646 */ +#line 672 "src/wast-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 3166 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3152 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 87: -#line 673 "src/wast-parser.y" /* yacc.c:1646 */ +#line 677 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr_list) = (yyvsp[0].expr_list); Expr* if_ = (yyvsp[0].expr_list).last; assert(if_->type == ExprType::If); if_->if_.true_->label = (yyvsp[-1].text); } -#line 3177 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3163 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 88: -#line 679 "src/wast-parser.y" /* yacc.c:1646 */ +#line 683 "src/wast-parser.y" /* yacc.c:1646 */ { Block* block = (yyvsp[0].expr)->try_block.block; block->label = (yyvsp[-1].text); (yyval.expr_list) = join_exprs1(&(yylsp[-2]), (yyvsp[0].expr)); } -#line 3187 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3173 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 89: -#line 687 "src/wast-parser.y" /* yacc.c:1646 */ +#line 691 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.expr) = (yyvsp[0].expr); Block* block = (yyval.expr)->try_block.block; block->sig.insert(block->sig.end(), (yyvsp[-1].types)->begin(), (yyvsp[-1].types)->end()); delete (yyvsp[-1].types); } -#line 3198 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3184 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 90: -#line 693 "src/wast-parser.y" /* yacc.c:1646 */ +#line 697 "src/wast-parser.y" /* yacc.c:1646 */ { Block* block = new Block(); block->first = (yyvsp[-1].expr_list).first; - (yyval.expr) = Expr::CreateTry(block, (yyvsp[0].expr_list).first); + (yyval.expr) = (yyvsp[0].expr); + (yyval.expr)->try_block.block = block; } -#line 3208 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3195 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 91: -#line 701 "src/wast-parser.y" /* yacc.c:1646 */ +#line 706 "src/wast-parser.y" /* yacc.c:1646 */ { - (yyval.expr_list) = (yyvsp[-1].expr_list); + (yyval.catch_) = (yyvsp[-1].catch_); } -#line 3216 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3203 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 92: -#line 704 "src/wast-parser.y" /* yacc.c:1646 */ +#line 709 "src/wast-parser.y" /* yacc.c:1646 */ { - (yyval.expr_list) = (yyvsp[-1].expr_list); + (yyval.catch_) = (yyvsp[-1].catch_); } -#line 3224 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3211 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ + break; + + case 93: +#line 715 "src/wast-parser.y" /* yacc.c:1646 */ + { + (yyval.expr) = Expr::CreateTry(); + (yyval.expr)->try_block.catches->push_back((yyvsp[0].catch_)); + } +#line 3220 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 94: #line 719 "src/wast-parser.y" /* yacc.c:1646 */ { - (yyval.expr_list) = (yyvsp[-1].expr_list); - append_expr_list(&(yyvsp[-1].expr_list), &(yyvsp[0].expr_list)); + (yyval.expr) = (yyvsp[-1].expr); + (yyval.expr)->try_block.catches->push_back((yyvsp[0].catch_)); } -#line 3233 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3229 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 95: @@ -3242,7 +3238,7 @@ yyreduce: true_->sig.insert(true_->sig.end(), (yyvsp[-1].types)->begin(), (yyvsp[-1].types)->end()); delete (yyvsp[-1].types); } -#line 3246 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3242 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 97: @@ -3251,7 +3247,7 @@ yyreduce: 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 3255 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3251 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 98: @@ -3260,7 +3256,7 @@ yyreduce: Expr* expr = Expr::CreateIf(new Block((yyvsp[-1].expr_list).first), nullptr); (yyval.expr_list) = join_exprs1(&(yylsp[-3]), expr); } -#line 3264 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3260 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 99: @@ -3269,7 +3265,7 @@ yyreduce: 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 3273 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3269 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 100: @@ -3278,7 +3274,7 @@ yyreduce: 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 3282 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3278 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 101: @@ -3287,7 +3283,7 @@ yyreduce: 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 3291 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3287 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 102: @@ -3296,7 +3292,7 @@ yyreduce: 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 3300 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3296 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 103: @@ -3304,7 +3300,7 @@ yyreduce: { CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "rethrow"); } -#line 3308 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3304 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 104: @@ -3312,7 +3308,7 @@ yyreduce: { CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "throw"); } -#line 3316 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3312 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 105: @@ -3320,13 +3316,13 @@ yyreduce: { CHECK_ALLOW_EXCEPTIONS(&(yylsp[0]), "try"); } -#line 3324 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3320 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 106: #line 782 "src/wast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.expr_list)); } -#line 3330 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3326 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 107: @@ -3337,13 +3333,13 @@ yyreduce: (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 3341 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3337 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 108: #line 791 "src/wast-parser.y" /* yacc.c:1646 */ { WABT_ZERO_MEMORY((yyval.expr_list)); } -#line 3347 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3343 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 109: @@ -3354,7 +3350,7 @@ yyreduce: (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 3358 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3354 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 111: @@ -3365,7 +3361,7 @@ yyreduce: (yyval.exception)->sig = std::move(*(yyvsp[-1].types)); delete (yyvsp[-1].types); } -#line 3369 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3365 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 112: @@ -3375,7 +3371,7 @@ yyreduce: (yyval.module_field)->loc = (yylsp[0]); (yyval.module_field)->except = (yyvsp[0].exception); } -#line 3379 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3375 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 113: @@ -3391,7 +3387,7 @@ yyreduce: main->import->func->name = (yyvsp[-2].text); } } -#line 3395 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3391 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 114: @@ -3404,7 +3400,7 @@ yyreduce: delete (yyvsp[-1].var); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3408 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3404 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 115: @@ -3414,7 +3410,7 @@ yyreduce: field->func = (yyvsp[0].func); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3418 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3414 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 116: @@ -3430,7 +3426,7 @@ yyreduce: delete (yyvsp[-1].var); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3434 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3430 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 117: @@ -3443,7 +3439,7 @@ yyreduce: field->import->func = (yyvsp[0].func); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3447 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3443 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 118: @@ -3456,7 +3452,7 @@ yyreduce: (yyval.module_fields).first = (yyvsp[0].module_fields).first; (yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field; } -#line 3460 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3456 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 119: @@ -3465,7 +3461,7 @@ yyreduce: (yyval.func) = (yyvsp[0].func); reverse_bindings(&(yyval.func)->decl.sig.param_types, &(yyval.func)->param_bindings); } -#line 3469 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3465 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 121: @@ -3476,7 +3472,7 @@ yyreduce: (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3480 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3476 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 122: @@ -3488,13 +3484,13 @@ yyreduce: destroy_string_slice(&(yyvsp[-3].text)); (yyval.func)->decl.sig.param_types.insert((yyval.func)->decl.sig.param_types.begin(), (yyvsp[-2].type)); } -#line 3492 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3488 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 123: #line 903 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.func) = new Func(); } -#line 3498 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3494 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 124: @@ -3505,7 +3501,7 @@ yyreduce: (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3509 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3505 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 125: @@ -3514,7 +3510,7 @@ yyreduce: (yyval.func) = (yyvsp[0].func); reverse_bindings(&(yyval.func)->decl.sig.param_types, &(yyval.func)->param_bindings); } -#line 3518 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3514 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 127: @@ -3525,7 +3521,7 @@ yyreduce: (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3529 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3525 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 128: @@ -3537,7 +3533,7 @@ yyreduce: destroy_string_slice(&(yyvsp[-3].text)); (yyval.func)->decl.sig.param_types.insert((yyval.func)->decl.sig.param_types.begin(), (yyvsp[-2].type)); } -#line 3541 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3537 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 130: @@ -3548,7 +3544,7 @@ yyreduce: (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3552 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3548 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 131: @@ -3557,7 +3553,7 @@ yyreduce: (yyval.func) = (yyvsp[0].func); reverse_bindings(&(yyval.func)->local_types, &(yyval.func)->local_bindings); } -#line 3561 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3557 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 132: @@ -3566,7 +3562,7 @@ yyreduce: (yyval.func) = new Func(); (yyval.func)->first_expr = (yyvsp[0].expr_list).first; } -#line 3570 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3566 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 133: @@ -3576,7 +3572,7 @@ yyreduce: (yyval.func)->local_types.insert((yyval.func)->local_types.begin(), (yyvsp[-2].types)->begin(), (yyvsp[-2].types)->end()); delete (yyvsp[-2].types); } -#line 3580 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3576 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 134: @@ -3588,7 +3584,7 @@ yyreduce: destroy_string_slice(&(yyvsp[-3].text)); (yyval.func)->local_types.insert((yyval.func)->local_types.begin(), (yyvsp[-2].type)); } -#line 3592 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3588 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 135: @@ -3596,7 +3592,7 @@ yyreduce: { (yyval.expr_list) = (yyvsp[-1].expr_list); } -#line 3600 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3596 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 137: @@ -3611,7 +3607,7 @@ yyreduce: (yyval.module_field)->elem_segment->vars = std::move(*(yyvsp[-1].vars)); delete (yyvsp[-1].vars); } -#line 3615 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3611 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 138: @@ -3627,7 +3623,7 @@ yyreduce: (yyval.module_field)->elem_segment->vars = std::move(*(yyvsp[-1].vars)); delete (yyvsp[-1].vars); } -#line 3631 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3627 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 139: @@ -3643,7 +3639,7 @@ yyreduce: main->import->table->name = (yyvsp[-2].text); } } -#line 3647 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3643 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 140: @@ -3654,7 +3650,7 @@ yyreduce: field->table = (yyvsp[0].table); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3658 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3654 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 141: @@ -3667,7 +3663,7 @@ yyreduce: field->import->table = (yyvsp[0].table); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3671 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3667 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 142: @@ -3680,7 +3676,7 @@ yyreduce: (yyval.module_fields).first = (yyvsp[0].module_fields).first; (yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field; } -#line 3684 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3680 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 143: @@ -3702,7 +3698,7 @@ yyreduce: (yyval.module_fields).first = table_field; (yyval.module_fields).last = table_field->next = elem_field; } -#line 3706 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3702 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 144: @@ -3717,7 +3713,7 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.module_field)->data_segment->data, &(yyval.module_field)->data_segment->size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 3721 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3717 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 145: @@ -3733,7 +3729,7 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.module_field)->data_segment->data, &(yyval.module_field)->data_segment->size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 3737 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3733 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 146: @@ -3749,7 +3745,7 @@ yyreduce: main->import->memory->name = (yyvsp[-2].text); } } -#line 3753 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3749 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 147: @@ -3759,7 +3755,7 @@ yyreduce: field->memory = (yyvsp[0].memory); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3763 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3759 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 148: @@ -3772,7 +3768,7 @@ yyreduce: field->import->memory = (yyvsp[0].memory); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3776 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3772 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 149: @@ -3785,7 +3781,7 @@ yyreduce: (yyval.module_fields).first = (yyvsp[0].module_fields).first; (yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field; } -#line 3789 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3785 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 150: @@ -3811,7 +3807,7 @@ yyreduce: (yyval.module_fields).first = memory_field; (yyval.module_fields).last = memory_field->next = data_field; } -#line 3815 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3811 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 151: @@ -3827,7 +3823,7 @@ yyreduce: main->import->global->name = (yyvsp[-2].text); } } -#line 3831 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3827 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 152: @@ -3838,7 +3834,7 @@ yyreduce: field->global->init_expr = (yyvsp[0].expr_list).first; (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3842 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3838 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 153: @@ -3851,7 +3847,7 @@ yyreduce: field->import->global = (yyvsp[0].global); (yyval.module_fields).first = (yyval.module_fields).last = field; } -#line 3855 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3851 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 154: @@ -3864,7 +3860,7 @@ yyreduce: (yyval.module_fields).first = (yyvsp[0].module_fields).first; (yyval.module_fields).last = (yyvsp[0].module_fields).last->next = field; } -#line 3868 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3864 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 155: @@ -3878,7 +3874,7 @@ yyreduce: (yyval.import)->func->decl.type_var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3882 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3878 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 156: @@ -3891,7 +3887,7 @@ yyreduce: (yyval.import)->func->decl.sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 3895 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3891 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 157: @@ -3902,7 +3898,7 @@ yyreduce: (yyval.import)->table = (yyvsp[-1].table); (yyval.import)->table->name = (yyvsp[-2].text); } -#line 3906 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3902 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 158: @@ -3913,7 +3909,7 @@ yyreduce: (yyval.import)->memory = (yyvsp[-1].memory); (yyval.import)->memory->name = (yyvsp[-2].text); } -#line 3917 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3913 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 159: @@ -3924,7 +3920,7 @@ yyreduce: (yyval.import)->global = (yyvsp[-1].global); (yyval.import)->global->name = (yyvsp[-2].text); } -#line 3928 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3924 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 160: @@ -3934,7 +3930,7 @@ yyreduce: (yyval.import)->kind = ExternalKind::Except; (yyval.import)->except = (yyvsp[0].exception); } -#line 3938 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3934 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 161: @@ -3946,7 +3942,7 @@ yyreduce: (yyval.module_field)->import->module_name = (yyvsp[-3].text); (yyval.module_field)->import->field_name = (yyvsp[-2].text); } -#line 3950 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3946 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 162: @@ -3956,7 +3952,7 @@ yyreduce: (yyval.import)->module_name = (yyvsp[-2].text); (yyval.import)->field_name = (yyvsp[-1].text); } -#line 3960 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3956 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 163: @@ -3967,7 +3963,7 @@ yyreduce: (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3971 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3967 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 164: @@ -3978,7 +3974,7 @@ yyreduce: (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3982 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3978 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 165: @@ -3989,7 +3985,7 @@ yyreduce: (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 3993 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 3989 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 166: @@ -4000,7 +3996,7 @@ yyreduce: (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 4004 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4000 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 167: @@ -4011,7 +4007,7 @@ yyreduce: (yyval.export_)->var = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 4015 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4011 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 168: @@ -4022,7 +4018,7 @@ yyreduce: (yyval.module_field)->export_ = (yyvsp[-1].export_); (yyval.module_field)->export_->name = (yyvsp[-2].text); } -#line 4026 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4022 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 169: @@ -4031,7 +4027,7 @@ yyreduce: (yyval.export_) = new Export(); (yyval.export_)->name = (yyvsp[-1].text); } -#line 4035 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4031 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 170: @@ -4043,7 +4039,7 @@ yyreduce: (yyval.module_field)->func_type->sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 4047 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4043 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 171: @@ -4056,7 +4052,7 @@ yyreduce: (yyval.module_field)->func_type->sig = std::move(*(yyvsp[-1].func_sig)); delete (yyvsp[-1].func_sig); } -#line 4060 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4056 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 172: @@ -4067,55 +4063,55 @@ yyreduce: (yyval.module_field)->start = std::move(*(yyvsp[-1].var)); delete (yyvsp[-1].var); } -#line 4071 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4067 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 173: #line 1325 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 4077 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4073 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 178: #line 1330 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 4083 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4079 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 179: #line 1331 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 4089 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4085 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 180: #line 1332 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 4095 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4091 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 181: #line 1333 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 4101 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4097 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 182: #line 1334 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 4107 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4103 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 183: #line 1335 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module_fields).first = (yyval.module_fields).last = (yyvsp[0].module_field); } -#line 4113 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4109 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 184: #line 1339 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.module) = new Module(); } -#line 4119 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4115 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 186: @@ -4125,7 +4121,7 @@ yyreduce: check_import_ordering(&(yylsp[0]), lexer, parser, (yyval.module), (yyvsp[0].module_fields).first); append_module_fields((yyval.module), (yyvsp[0].module_fields).first); } -#line 4129 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4125 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 187: @@ -4135,7 +4131,7 @@ yyreduce: check_import_ordering(&(yylsp[0]), lexer, parser, (yyval.module), (yyvsp[0].module_fields).first); append_module_fields((yyval.module), (yyvsp[0].module_fields).first); } -#line 4139 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4135 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 188: @@ -4157,7 +4153,7 @@ yyreduce: } delete (yyvsp[0].script_module); } -#line 4161 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4157 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 190: @@ -4165,7 +4161,7 @@ yyreduce: { (yyval.var) = new Var(kInvalidIndex); } -#line 4169 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4165 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 191: @@ -4175,7 +4171,7 @@ yyreduce: DUPTEXT(name, (yyvsp[0].text)); (yyval.var) = new Var(name); } -#line 4179 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4175 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 192: @@ -4198,7 +4194,7 @@ yyreduce: } } } -#line 4202 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4198 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 193: @@ -4211,7 +4207,7 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.script_module)->binary.data, &(yyval.script_module)->binary.size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 4215 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4211 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 194: @@ -4224,7 +4220,7 @@ yyreduce: dup_text_list(&(yyvsp[-1].text_list), &(yyval.script_module)->quoted.data, &(yyval.script_module)->quoted.size); destroy_text_list(&(yyvsp[-1].text_list)); } -#line 4228 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4224 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 195: @@ -4240,7 +4236,7 @@ yyreduce: (yyval.action)->invoke->args = std::move(*(yyvsp[-1].consts)); delete (yyvsp[-1].consts); } -#line 4244 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4240 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 196: @@ -4253,7 +4249,7 @@ yyreduce: (yyval.action)->type = ActionType::Get; (yyval.action)->name = (yyvsp[-1].text); } -#line 4257 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4253 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 197: @@ -4264,7 +4260,7 @@ yyreduce: (yyval.command)->assert_malformed.module = (yyvsp[-2].script_module); (yyval.command)->assert_malformed.text = (yyvsp[-1].text); } -#line 4268 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4264 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 198: @@ -4275,7 +4271,7 @@ yyreduce: (yyval.command)->assert_invalid.module = (yyvsp[-2].script_module); (yyval.command)->assert_invalid.text = (yyvsp[-1].text); } -#line 4279 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4275 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 199: @@ -4286,7 +4282,7 @@ yyreduce: (yyval.command)->assert_unlinkable.module = (yyvsp[-2].script_module); (yyval.command)->assert_unlinkable.text = (yyvsp[-1].text); } -#line 4290 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4286 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 200: @@ -4297,7 +4293,7 @@ yyreduce: (yyval.command)->assert_uninstantiable.module = (yyvsp[-2].script_module); (yyval.command)->assert_uninstantiable.text = (yyvsp[-1].text); } -#line 4301 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4297 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 201: @@ -4308,7 +4304,7 @@ yyreduce: (yyval.command)->assert_return.action = (yyvsp[-2].action); (yyval.command)->assert_return.expected = (yyvsp[-1].consts); } -#line 4312 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4308 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 202: @@ -4318,7 +4314,7 @@ yyreduce: (yyval.command)->type = CommandType::AssertReturnCanonicalNan; (yyval.command)->assert_return_canonical_nan.action = (yyvsp[-1].action); } -#line 4322 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4318 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 203: @@ -4328,7 +4324,7 @@ yyreduce: (yyval.command)->type = CommandType::AssertReturnArithmeticNan; (yyval.command)->assert_return_arithmetic_nan.action = (yyvsp[-1].action); } -#line 4332 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4328 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 204: @@ -4339,7 +4335,7 @@ yyreduce: (yyval.command)->assert_trap.action = (yyvsp[-2].action); (yyval.command)->assert_trap.text = (yyvsp[-1].text); } -#line 4343 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4339 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 205: @@ -4350,7 +4346,7 @@ yyreduce: (yyval.command)->assert_trap.action = (yyvsp[-2].action); (yyval.command)->assert_trap.text = (yyvsp[-1].text); } -#line 4354 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4350 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 206: @@ -4360,7 +4356,7 @@ yyreduce: (yyval.command)->type = CommandType::Action; (yyval.command)->action = (yyvsp[0].action); } -#line 4364 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4360 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 208: @@ -4370,7 +4366,7 @@ yyreduce: (yyval.command)->type = CommandType::Module; (yyval.command)->module = (yyvsp[0].module); } -#line 4374 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4370 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 209: @@ -4383,7 +4379,7 @@ yyreduce: delete (yyvsp[-1].var); (yyval.command)->register_.var.loc = (yylsp[-1]); } -#line 4387 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4383 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 210: @@ -4392,7 +4388,7 @@ yyreduce: (yyval.commands) = new CommandPtrVector(); (yyval.commands)->emplace_back((yyvsp[0].command)); } -#line 4396 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4392 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 211: @@ -4401,7 +4397,7 @@ yyreduce: (yyval.commands) = (yyvsp[-1].commands); (yyval.commands)->emplace_back((yyvsp[0].command)); } -#line 4405 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4401 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 212: @@ -4416,13 +4412,13 @@ yyreduce: } delete [] (yyvsp[-1].literal).text.start; } -#line 4420 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4416 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 213: #line 1553 "src/wast-parser.y" /* yacc.c:1646 */ { (yyval.consts) = new ConstVector(); } -#line 4426 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4422 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 214: @@ -4431,7 +4427,7 @@ yyreduce: (yyval.consts) = (yyvsp[-1].consts); (yyval.consts)->push_back((yyvsp[0].const_)); } -#line 4435 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4431 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 215: @@ -4439,7 +4435,7 @@ yyreduce: { (yyval.script) = new Script(); } -#line 4443 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4439 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 216: @@ -4504,7 +4500,7 @@ yyreduce: } } } -#line 4508 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4504 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 217: @@ -4516,17 +4512,17 @@ yyreduce: command->module = (yyvsp[0].module); (yyval.script)->commands.emplace_back(command); } -#line 4520 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4516 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; case 218: #line 1636 "src/wast-parser.y" /* yacc.c:1646 */ { parser->script = (yyvsp[0].script); } -#line 4526 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4522 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ break; -#line 4530 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ +#line 4526 "src/prebuilt/wast-parser-gen.cc" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -4801,14 +4797,6 @@ ExprList join_exprs2(Location* loc, ExprList* expr1, Expr* expr2) { return result; } -ExprList join_expr_lists(ExprList* expr1, ExprList* expr2) { - ExprList result; - WABT_ZERO_MEMORY(result); - append_expr_list(&result, expr1); - append_expr_list(&result, expr2); - return result; -} - Result parse_const(Type type, LiteralType literal_type, const char* s, @@ -5008,7 +4996,7 @@ void append_module_fields(Module* module, ModuleField* first) { name = &field->import->except->name; bindings = &module->except_bindings; index = module->excepts.size(); - module->excepts.push_back(field->except); + module->excepts.push_back(field->import->except); ++module->num_except_imports; break; } |