From 323facbd261a7f7fc7ba57251e71a8e1581b169c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Xenxo=20Espasand=C3=ADn?= Date: Sat, 21 Sep 2024 12:46:50 +0200 Subject: [PATCH] fix(parser): allow wait as field identifier (#223) --- gen/gsc/parser.ypp | 2 + include/xsk/gsc/parser.hpp | 2 +- src/gsc/parser.cpp | 1189 ++++++++++++++++++------------------ 3 files changed, 607 insertions(+), 586 deletions(-) diff --git a/gen/gsc/parser.ypp b/gen/gsc/parser.ypp index 5aecb4d6..8e189e56 100644 --- a/gen/gsc/parser.ypp +++ b/gen/gsc/parser.ypp @@ -920,6 +920,8 @@ expr_animtree expr_identifier_nosize : IDENTIFIER { $$ = expr_identifier::make(@$, $1); }; + | WAIT + { $$ = expr_identifier::make(@$, "wait"); }; ; expr_identifier diff --git a/include/xsk/gsc/parser.hpp b/include/xsk/gsc/parser.hpp index af624834..609f3676 100644 --- a/include/xsk/gsc/parser.hpp +++ b/include/xsk/gsc/parser.hpp @@ -4981,7 +4981,7 @@ switch (yykind) /// Constants. enum { - yylast_ = 2377, ///< Last index in yytable_. + yylast_ = 2429, ///< Last index in yytable_. yynnts_ = 92, ///< Number of nonterminal symbols. yyfinal_ = 23 ///< Termination state number. }; diff --git a/src/gsc/parser.cpp b/src/gsc/parser.cpp index 8a5b7bbf..2112982d 100644 --- a/src/gsc/parser.cpp +++ b/src/gsc/parser.cpp @@ -3553,86 +3553,92 @@ namespace xsk { namespace gsc { #line 3561 "parser.cpp" break; - case 237: // expr_identifier: "identifier" -#line 927 "parser.ypp" - { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); } + case 237: // expr_identifier_nosize: "wait" +#line 924 "parser.ypp" + { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, "wait"); } #line 3567 "parser.cpp" break; - case 238: // expr_identifier: "size" + case 238: // expr_identifier: "identifier" #line 929 "parser.ypp" - { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, "size"); } + { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, yystack_[0].value.as < std::string > ()); } #line 3573 "parser.cpp" break; - case 239: // expr_path: "identifier" -#line 934 "parser.ypp" - { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } + case 239: // expr_identifier: "size" +#line 931 "parser.ypp" + { yylhs.value.as < expr_identifier::ptr > () = expr_identifier::make(yylhs.location, "size"); } #line 3579 "parser.cpp" break; - case 240: // expr_path: "path" + case 240: // expr_path: "identifier" #line 936 "parser.ypp" { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } #line 3585 "parser.cpp" break; - case 241: // expr_istring: "localized string" -#line 941 "parser.ypp" - { yylhs.value.as < expr_istring::ptr > () = expr_istring::make(yylhs.location, yystack_[0].value.as < std::string > ()); } + case 241: // expr_path: "path" +#line 938 "parser.ypp" + { yylhs.value.as < expr_path::ptr > () = expr_path::make(yylhs.location, yystack_[0].value.as < std::string > ()); } #line 3591 "parser.cpp" break; - case 242: // expr_string: "string literal" -#line 946 "parser.ypp" - { yylhs.value.as < expr_string::ptr > () = expr_string::make(yylhs.location, yystack_[0].value.as < std::string > ()); } + case 242: // expr_istring: "localized string" +#line 943 "parser.ypp" + { yylhs.value.as < expr_istring::ptr > () = expr_istring::make(yylhs.location, yystack_[0].value.as < std::string > ()); } #line 3597 "parser.cpp" break; - case 243: // expr_vector: "(" expr "," expr "," expr ")" -#line 951 "parser.ypp" - { yylhs.value.as < expr_vector::ptr > () = expr_vector::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } + case 243: // expr_string: "string literal" +#line 948 "parser.ypp" + { yylhs.value.as < expr_string::ptr > () = expr_string::make(yylhs.location, yystack_[0].value.as < std::string > ()); } #line 3603 "parser.cpp" break; - case 244: // expr_float: "-" "float" -#line 956 "parser.ypp" - { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } + case 244: // expr_vector: "(" expr "," expr "," expr ")" +#line 953 "parser.ypp" + { yylhs.value.as < expr_vector::ptr > () = expr_vector::make(yylhs.location, std::move(yystack_[5].value.as < expr::ptr > ()), std::move(yystack_[3].value.as < expr::ptr > ()), std::move(yystack_[1].value.as < expr::ptr > ())); } #line 3609 "parser.cpp" break; - case 245: // expr_float: "float" + case 245: // expr_float: "-" "float" #line 958 "parser.ypp" - { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, yystack_[0].value.as < std::string > ()); } + { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } #line 3615 "parser.cpp" break; - case 246: // expr_integer: "-" "integer" -#line 963 "parser.ypp" - { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } + case 246: // expr_float: "float" +#line 960 "parser.ypp" + { yylhs.value.as < expr_float::ptr > () = expr_float::make(yylhs.location, yystack_[0].value.as < std::string > ()); } #line 3621 "parser.cpp" break; - case 247: // expr_integer: "integer" + case 247: // expr_integer: "-" "integer" #line 965 "parser.ypp" - { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, yystack_[0].value.as < std::string > ()); } + { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, "-" + yystack_[0].value.as < std::string > ()); } #line 3627 "parser.cpp" break; - case 248: // expr_false: "false" -#line 970 "parser.ypp" - { yylhs.value.as < expr_false::ptr > () = expr_false::make(yylhs.location); } + case 248: // expr_integer: "integer" +#line 967 "parser.ypp" + { yylhs.value.as < expr_integer::ptr > () = expr_integer::make(yylhs.location, yystack_[0].value.as < std::string > ()); } #line 3633 "parser.cpp" break; - case 249: // expr_true: "true" -#line 975 "parser.ypp" - { yylhs.value.as < expr_true::ptr > () = expr_true::make(yylhs.location); } + case 249: // expr_false: "false" +#line 972 "parser.ypp" + { yylhs.value.as < expr_false::ptr > () = expr_false::make(yylhs.location); } #line 3639 "parser.cpp" break; + case 250: // expr_true: "true" +#line 977 "parser.ypp" + { yylhs.value.as < expr_true::ptr > () = expr_true::make(yylhs.location); } +#line 3645 "parser.cpp" + break; -#line 3643 "parser.cpp" + +#line 3649 "parser.cpp" default: break; @@ -4120,82 +4126,82 @@ namespace xsk { namespace gsc { } - const short parser::yypact_ninf_ = -309; + const short parser::yypact_ninf_ = -311; - const short parser::yytable_ninf_ = -240; + const short parser::yytable_ninf_ = -241; const short parser::yypact_[] = { - 17, -309, -309, -62, -62, -46, -309, -309, -309, 20, - 26, -309, -309, -309, -309, -309, -309, -4, -309, -309, - -1, 4, -31, -309, -309, -309, -309, -309, -26, 1214, - -309, -309, -309, 22, -12, -309, -309, -35, -27, -309, - 23, -309, -309, -309, -309, -309, -309, -309, 31, 37, - 1214, 1076, -26, 1214, 1214, 39, 2, 51, -309, -309, - -309, 2157, -309, -309, -309, -309, -309, -309, 55, 245, - -309, -309, -309, -309, -309, -309, 496, 641, -309, -309, - 688, -309, -309, -309, 885, 1241, 1318, 1406, -309, -309, - 403, 59, -309, 53, -309, -309, -309, -309, -309, 70, - 86, -26, 93, 119, 90, 118, 153, 127, 151, 1214, - 1214, 1449, 1076, -309, 2240, 150, 152, -309, -309, -309, - 1214, 154, -309, -309, -309, -309, 496, 641, -309, 1416, - -309, -309, -309, -309, 403, 155, -309, -309, 1214, 1214, - 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, - 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1283, -3, -309, - -309, 160, 1214, -26, 168, -309, 745, -309, -309, 1214, - 1214, -26, 1214, 1214, -26, 1214, 1600, 1634, -309, 1214, - 1877, 1214, -309, 1647, 1214, 114, -26, 2122, 138, 138, - 1275, 1482, 1066, 1066, 50, 50, 50, 50, 1528, 2281, - 2271, 66, 66, -309, -309, -309, 1919, -309, -309, -309, - -2, -309, 166, -309, 989, 1214, 156, -9, 167, 1374, - 171, 172, 175, 176, 28, 174, 165, 178, 1145, 179, - 187, 193, 194, 195, 197, -309, 60, -309, 552, 552, - -309, -309, 933, -309, -309, -309, -309, -309, -309, -309, - -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, - -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, - -309, -309, 189, 191, 192, 196, 198, 184, -309, -309, - 815, 160, 1961, 57, 207, 2003, 67, 215, 2045, -309, - -309, 2086, 173, 2240, 1877, 166, 1214, -309, -309, 1214, - -309, -309, -309, 1045, 2192, -309, 218, -309, 1214, 252, - 1214, 1172, -26, 1214, 185, 212, 216, -309, -309, -309, - -309, 2227, -309, 1214, 1214, 1214, 1214, 1214, 1283, -13, - -309, 79, 144, 1, 1416, 1416, -309, -309, -309, -309, - -309, -309, -309, -309, 1214, 228, 241, 242, 243, -309, - -309, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, - 1214, 1214, 239, -309, 1214, 246, -309, 1214, 250, 1214, - 247, 2240, 69, -309, -309, -309, -309, 248, 1681, 257, - 1694, 253, -309, -309, -309, 1397, -11, 1728, -309, -309, - -309, 75, 77, 98, 100, 108, -309, 552, 2240, 1214, - 1214, 1214, 1214, 2240, 2240, 2240, 2240, 2240, 2240, 2240, - 2240, 2240, 2240, 2240, 258, 122, 259, 133, 267, 1741, - 1214, -309, -309, 1374, 1214, 1374, 1214, 1214, -26, 86, - 256, 260, 261, 262, 263, -309, 1775, 1495, 1541, 1587, - 1214, -309, 1214, -309, 1214, -309, 134, 302, 1788, -309, - 2240, 264, 1822, 305, -309, -309, -309, -309, -309, -309, - 275, 276, 1214, 284, 1214, 285, 1214, 137, 140, 146, - -309, 1374, 286, 1172, 1374, 1214, -309, -309, 278, -309, - 303, -309, 306, -309, -309, -309, -309, -309, 329, -309, - 1835, 294, 320, 321, 1374, 1374, -309, -309, -309, -309, - -309 + 13, -311, -311, -73, -73, -39, -311, -311, -311, 46, + 35, -311, -311, -311, -311, -311, -311, -19, -311, -311, + -5, 6, -30, -311, -311, -311, -311, -311, -31, 1415, + -311, -311, -311, 28, 40, -311, -311, -10, 7, -311, + 29, -311, -311, -311, -311, -311, -311, -311, 32, 39, + 1415, 1277, -31, 1415, 1415, 410, -3, 50, -311, -311, + -311, 2209, -311, -311, -311, -311, -311, -311, 27, 489, + -311, -311, -311, -311, -311, -311, 629, 771, -311, -311, + 801, -311, -311, -311, 893, 903, 930, 935, -311, -311, + 287, 54, -311, 65, -311, -311, -311, -311, -311, 41, + 67, -31, 69, 90, 95, 102, 108, 112, 119, 1415, + 1415, 1585, 1277, -311, 2292, 126, 120, -311, -311, -311, + 1415, 135, -311, -311, -311, -311, 629, 771, -311, 980, + -311, -311, -311, -311, 287, 130, -311, -311, 1415, 1415, + 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, + 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1484, 17, -311, + -311, 149, 1415, -31, 154, -311, 1078, -311, -311, 1415, + 1415, -31, 1415, 1415, -31, 1415, 1736, 1770, -311, 1415, + 1411, 1415, -311, 1783, 1415, -4, -31, 2174, 139, 139, + 2323, 1618, 1267, 1267, 42, 42, 42, 42, 1664, 969, + 2333, 36, 36, -311, -311, -311, 1480, -311, -311, -311, + -311, 56, -311, 150, -311, 1190, 1415, 142, -28, 157, + 1575, 176, 177, 191, 192, -48, 183, 186, 190, 1346, + 193, 204, 206, 207, 211, 212, -311, 617, -311, 722, + 722, -311, -311, 1134, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, 205, 208, 209, 215, 216, 138, -311, + -311, 63, 149, 2013, 62, 218, 2055, 70, 219, 2097, + -311, -311, 2138, 224, 2292, 1411, 150, 1415, -311, -311, + 1415, -311, -311, -311, 1246, 2244, -311, 234, -311, 1415, + 246, 1415, 148, -31, 1415, 171, 227, 228, -311, -311, + -311, -311, 2279, -311, 1415, 1415, 1415, 1415, 1415, 1484, + 16, -311, 30, 37, -20, 980, 980, -311, -311, -311, + -311, -311, -311, -311, -311, 1415, 240, 242, 243, 245, + -311, -311, 1415, 1415, 1415, 1415, 1415, 1415, 1415, 1415, + 1415, 1415, 1415, 244, -311, 1415, 247, -311, 1415, 248, + 1415, 251, 2292, 101, -311, -311, -311, -311, 235, 1817, + 256, 1830, 238, -311, -311, -311, 837, -7, 1864, -311, + -311, -311, 103, 111, 114, 132, 145, -311, 722, 2292, + 1415, 1415, 1415, 1415, 2292, 2292, 2292, 2292, 2292, 2292, + 2292, 2292, 2292, 2292, 2292, 259, 147, 267, 155, 268, + 1877, 1415, -311, -311, 1575, 1415, 1575, 1415, 1415, -31, + 67, 249, 257, 258, 263, 265, -311, 1911, 1631, 1677, + 1723, 1415, -311, 1415, -311, 1415, -311, 163, 303, 1924, + -311, 2292, 266, 1958, 306, -311, -311, -311, -311, -311, + -311, 276, 277, 1415, 278, 1415, 281, 1415, 166, 172, + 173, -311, 1575, 286, 148, 1575, 1415, -311, -311, 298, + -311, 299, -311, 300, -311, -311, -311, -311, -311, 301, + -311, 1971, 291, 292, 294, 1575, 1575, -311, -311, -311, + -311, -311 }; const unsigned char parser::yydefact_[] = { - 3, 14, 15, 0, 0, 0, 238, 8, 237, 0, - 2, 9, 10, 11, 16, 17, 18, 0, 240, 239, + 3, 14, 15, 0, 0, 0, 239, 8, 238, 0, + 2, 9, 10, 11, 16, 17, 18, 0, 241, 240, 0, 0, 0, 1, 4, 5, 6, 7, 198, 0, - 12, 13, 242, 0, 0, 197, 235, 0, 0, 227, - 0, 249, 248, 229, 230, 231, 232, 233, 0, 0, - 0, 200, 0, 0, 0, 0, 0, 237, 241, 245, - 247, 0, 105, 106, 107, 145, 146, 147, 148, 149, + 12, 13, 243, 0, 0, 197, 235, 0, 0, 227, + 0, 250, 249, 229, 230, 231, 232, 233, 0, 0, + 0, 200, 0, 0, 0, 0, 0, 238, 242, 246, + 248, 0, 105, 106, 107, 145, 146, 147, 148, 149, 181, 182, 150, 151, 152, 153, 154, 155, 156, 157, 0, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 0, 168, 169, 170, 171, 172, 173, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 200, 228, 202, 0, 199, 205, 180, 175, - 0, 0, 244, 246, 218, 219, 178, 179, 177, 0, + 0, 0, 245, 247, 218, 219, 178, 179, 177, 0, 222, 223, 224, 225, 176, 0, 234, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, @@ -4203,480 +4209,508 @@ namespace xsk { namespace gsc { 200, 0, 0, 200, 0, 0, 0, 0, 217, 0, 202, 0, 195, 0, 0, 0, 0, 0, 138, 139, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 140, 141, 142, 143, 144, 0, 215, 236, 214, - 0, 199, 206, 216, 0, 0, 0, 0, 0, 0, + 137, 140, 141, 142, 143, 144, 0, 237, 215, 236, + 214, 0, 199, 206, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 63, 0, 59, 0, 0, - 50, 57, 0, 51, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 0, 0, 0, 218, 219, 0, 220, 221, - 0, 226, 0, 0, 0, 0, 0, 0, 0, 203, - 204, 0, 0, 201, 0, 0, 0, 213, 185, 200, - 61, 55, 53, 0, 0, 81, 0, 82, 0, 0, - 0, 67, 0, 0, 0, 0, 0, 94, 95, 96, - 98, 0, 99, 200, 200, 200, 200, 200, 0, 0, - 209, 220, 221, 226, 110, 112, 62, 58, 56, 71, - 72, 70, 68, 69, 0, 0, 0, 0, 0, 111, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 187, 200, 0, 189, 200, 0, 0, - 0, 126, 0, 60, 54, 52, 76, 0, 0, 0, - 0, 0, 65, 66, 64, 0, 0, 0, 93, 92, - 97, 0, 0, 0, 0, 0, 207, 0, 114, 0, - 0, 0, 0, 115, 121, 122, 123, 124, 125, 116, - 117, 118, 120, 119, 0, 0, 0, 0, 0, 0, - 200, 186, 83, 0, 0, 0, 109, 0, 0, 0, - 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, - 200, 188, 200, 190, 200, 243, 0, 84, 0, 86, - 108, 0, 0, 0, 91, 100, 101, 102, 103, 104, - 0, 0, 200, 0, 200, 0, 200, 0, 0, 0, - 191, 0, 0, 67, 0, 0, 73, 75, 199, 78, - 199, 80, 199, 192, 193, 194, 85, 87, 0, 89, - 0, 0, 0, 0, 0, 0, 74, 77, 79, 88, - 90 + 0, 0, 0, 0, 0, 0, 63, 0, 59, 0, + 0, 50, 57, 0, 51, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 0, 0, 0, 218, 219, 0, 220, + 221, 0, 226, 0, 0, 0, 0, 0, 0, 0, + 203, 204, 0, 0, 201, 0, 0, 0, 213, 185, + 200, 61, 55, 53, 0, 0, 81, 0, 82, 0, + 0, 0, 67, 0, 0, 0, 0, 0, 94, 95, + 96, 98, 0, 99, 200, 200, 200, 200, 200, 0, + 0, 209, 220, 221, 226, 110, 112, 62, 58, 56, + 71, 72, 70, 68, 69, 0, 0, 0, 0, 0, + 111, 113, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 187, 200, 0, 189, 200, 0, + 0, 0, 126, 0, 60, 54, 52, 76, 0, 0, + 0, 0, 0, 65, 66, 64, 0, 0, 0, 93, + 92, 97, 0, 0, 0, 0, 0, 207, 0, 114, + 0, 0, 0, 0, 115, 121, 122, 123, 124, 125, + 116, 117, 118, 120, 119, 0, 0, 0, 0, 0, + 0, 200, 186, 83, 0, 0, 0, 109, 0, 0, + 0, 0, 0, 0, 0, 0, 208, 0, 0, 0, + 0, 200, 188, 200, 190, 200, 244, 0, 84, 0, + 86, 108, 0, 0, 0, 91, 100, 101, 102, 103, + 104, 0, 0, 200, 0, 200, 0, 200, 0, 0, + 0, 191, 0, 0, 67, 0, 0, 73, 75, 199, + 78, 199, 80, 199, 192, 193, 194, 85, 87, 0, + 89, 0, 0, 0, 0, 0, 0, 74, 77, 79, + 88, 90 }; const short parser::yypgoto_[] = { - -309, -309, -309, 374, 376, 377, -309, -309, -309, -155, - 147, -309, -309, -309, -93, -85, -309, -309, -309, -309, - -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, - -309, -309, -309, -309, -309, -309, -309, -309, -309, -309, - -309, -309, -309, 221, -309, -308, -306, -296, -309, -309, - -309, -309, -309, -309, -44, 47, -79, -71, -309, -309, - -144, -45, -309, -309, -309, -309, -309, -6, 113, 240, - -309, 337, 249, -309, -309, -309, 390, 397, 437, 452, - -309, -309, -309, 0, 10, -309, -20, -309, -309, 170, - -309, -309 + -311, -311, -311, 347, 348, 349, -311, -311, -311, -188, + 137, -311, -311, -311, -97, -93, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, -311, -311, -311, -311, -311, -311, -311, + -311, -311, -311, 222, -311, -310, -306, -305, -311, -311, + -311, -311, -311, -311, 43, 250, -76, -71, -311, -311, + -147, -50, -311, -311, -311, -311, -311, -16, 261, 376, + -311, 328, 389, -311, -311, -311, 469, 480, 584, 596, + -311, -311, -311, 0, 10, -311, -17, -311, -311, 162, + -311, -311 }; const short parser::yydefgoto_[] = { - 0, 9, 10, 11, 12, 13, 14, 15, 16, 240, - 241, 303, 242, 243, 244, 381, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 114, 451, 272, 273, 274, 62, 63, + 0, 9, 10, 11, 12, 13, 14, 15, 16, 241, + 242, 304, 243, 244, 245, 382, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 114, 452, 273, 274, 275, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 34, - 115, 211, 73, 74, 75, 277, 329, 330, 76, 77, + 115, 212, 73, 74, 75, 278, 330, 331, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 209, 90, 91, 92, 93, 94, 95, 96, + 88, 89, 210, 90, 91, 92, 93, 94, 95, 96, 97, 98 }; const short parser::yytable_[] = { - 17, 159, 33, 382, 22, 383, 116, 167, 6, 160, - 17, 124, 427, 20, 21, 384, 6, 6, 210, 102, - 23, 1, 2, 3, 4, 5, 283, 105, 35, 286, - 1, 2, 3, 4, 5, 18, 19, 103, 106, 100, - 207, 306, 396, 397, 101, 428, 28, 104, 107, 298, - 159, 162, 117, 307, 181, 134, -212, -212, 160, 302, - 6, 30, 18, 57, 309, 135, 31, 116, 32, 6, - 18, 57, 8, 99, 29, 37, 38, 108, 40, 7, - 161, 109, 6, 44, 45, 46, 47, 110, 24, 120, - 135, -218, -218, 121, -218, 208, 37, 38, -218, 40, - 136, 168, 125, 6, 44, 45, 46, 47, 363, -218, - 164, -239, -218, 181, 328, 8, 139, 140, 366, 163, - 421, 314, 275, 181, 8, 181, 430, 32, 431, 161, - 60, 181, 165, 181, -210, -210, 18, 57, 166, 135, - 122, 123, 152, 153, 154, 155, 156, 169, 375, 432, - 171, 433, -218, -218, 181, 372, 181, 18, 57, 434, - 154, 155, 156, 212, 181, 382, 281, 383, 126, 170, - 275, 284, 172, 441, 287, 275, 135, 384, 181, 391, - 392, 393, 394, 395, 443, 470, 295, 174, 483, 181, - 181, 484, 124, 181, 124, 124, 181, 485, 275, -211, - -211, 159, 181, 173, 315, 175, 181, 182, 184, 160, - 162, 213, 208, 276, 281, 186, 299, 308, 305, 281, - 415, 310, 311, 417, 135, 312, 313, 318, 370, 135, - 152, 153, 154, 155, 156, 317, 333, 323, 281, 281, - 319, 322, 281, 324, 325, 326, 135, 327, 135, 135, - 61, 339, 135, 340, 341, 159, 159, 364, 342, 275, - 343, 276, 344, 160, 160, 367, 276, 124, 447, 377, - 449, 111, 379, 388, 118, 119, 446, 389, 399, 278, - 161, -219, -219, 125, -219, 125, 125, 123, -219, 276, - 135, 400, 401, 402, 414, 127, 467, 420, 468, -219, - 469, 416, -219, 281, 129, 418, 159, 424, 440, 442, - 422, 281, 386, 135, 160, 426, 486, 444, 455, 489, - 471, 135, 456, 457, 458, 459, 473, 278, 475, 491, - 176, 177, 278, 180, 161, 161, 454, 476, 477, 499, - 500, 183, -219, -219, 135, 135, 479, 481, 487, 331, - 276, 278, 278, 124, 492, 278, 496, 493, 125, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 275, - 494, 275, 497, 498, 25, 161, 26, 27, 488, 338, - 282, 435, 128, 285, 316, 135, 288, 333, 0, 0, - 291, 0, 293, 0, 0, 294, 279, 135, 0, 0, - 0, 0, 0, 0, 0, 280, 278, 478, 0, 480, - 0, 482, 0, 281, 278, 281, 0, 275, 453, 124, - 275, 0, 0, 135, 0, 135, 304, 0, 0, -226, - -226, 0, -226, 0, 125, 130, -226, 0, 0, 321, - 275, 275, 131, 162, 279, 0, 0, -226, 0, 279, - -226, 0, 0, 280, 0, 0, 0, 0, 280, 0, - 276, 281, 276, 281, 281, 0, 332, 0, 279, 279, - 0, 135, 279, 135, 135, 129, 0, 334, 335, 0, - 0, 280, 132, 0, 281, 281, 0, 0, 0, 0, - -226, -226, 0, 0, 135, 135, 0, 133, 0, 0, - 331, 0, 0, 0, 0, 0, 0, 371, 276, 0, - 125, 276, 0, 0, 0, 0, 0, 0, 0, 378, - 0, 380, -220, -220, 387, -220, 278, 0, 278, -220, - 0, 276, 276, 279, 0, 0, 0, 0, 0, 294, - -220, 279, 280, -220, 0, 0, 130, 0, 0, 0, - 385, 0, 0, 131, 0, 398, 0, 0, 0, 0, - 0, 0, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 0, 278, 0, 278, 278, 37, 38, - 419, 40, 0, -220, -220, 6, 44, 45, 46, 47, - 0, 0, 0, 132, 130, 0, 121, 278, 278, 130, - 0, 131, 0, 0, 0, 0, 131, 0, 133, 0, - 436, 437, 438, 439, 0, 0, 130, 0, 130, 130, - 0, 0, 130, 131, 0, 131, 131, 332, 0, 131, - 0, 0, 0, 0, 0, 448, 129, 450, 452, 18, - 57, 132, 0, 0, 0, 0, 132, 0, 0, 0, - 0, 0, 0, 279, 0, 279, 133, 0, 0, 0, - 0, 133, 280, 132, 280, 132, 132, -221, -221, 132, - -221, 0, 0, 0, -221, 0, 0, 0, 133, 0, - 133, 133, 0, 130, 133, -221, 490, 0, -221, 0, - 131, 130, 0, 0, 0, 0, 0, 0, 131, 0, - 0, 279, 0, 279, 279, 0, 0, 0, 0, 0, - 280, 0, 385, 280, 37, 38, 0, 40, 0, 0, - 0, 6, 0, 0, 279, 279, 0, 0, -221, -221, - 132, 0, 157, 280, 280, 158, 0, 0, 132, 214, - 0, 0, 0, 0, 0, 133, 0, 215, 0, 0, - 216, 217, 218, 133, 219, 220, 221, 222, 0, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 37, 38, 0, 40, 18, 57, 130, 6, 44, - 45, 46, 47, 0, 131, 0, 0, 166, 235, 236, - 0, 0, 0, 0, 0, 0, 0, 237, 0, 238, - 239, 0, 0, 130, 0, 130, 0, 0, 0, 0, - 131, 0, 131, 0, 0, 345, 346, 0, 347, 348, - 0, 0, 0, 0, 132, 0, 0, 0, 0, 0, - 0, 0, 18, 57, 0, 0, 0, 0, 0, 133, - 0, 37, 38, 0, 40, 0, 0, 0, 6, 0, - 132, 130, 132, 130, 130, 0, 0, 0, 131, 157, - 131, 131, 185, 0, 0, 133, 0, 133, 0, 349, - 350, 0, 0, 0, 130, 130, 0, 0, 0, 0, - 0, 131, 131, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 0, 0, 0, 0, 132, 0, - 132, 132, 18, 57, 0, 0, 0, 0, 0, 0, - 0, -222, -222, 133, -222, 133, 133, 0, -222, 0, - 0, 132, 132, 0, 0, 0, 0, 214, 0, -222, - 0, 0, -222, 0, 0, 215, 133, 133, 216, 217, - 218, 0, 219, 220, 221, 222, 0, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 37, - 38, 0, 40, 0, 0, 0, 6, 44, 45, 46, - 47, 0, -222, -222, 0, 166, 336, 236, 0, 0, - 0, 0, 0, 0, 300, 337, 0, 238, 239, 0, - 0, 215, 0, 0, 216, 217, 218, 0, 219, 220, - 221, 222, 0, 223, 224, 225, 226, 227, 228, 229, - 230, 231, 232, 233, 234, 37, 38, 0, 40, 0, - 18, 57, 6, 44, 45, 46, 47, 0, 0, 0, - 0, 166, 0, 236, 0, 0, 0, 0, 0, 0, - 373, 301, 0, 238, 239, 0, 0, 215, 0, 0, - 216, 217, 218, 0, 219, 220, 221, 222, 0, 223, + 17, 116, 383, 167, 159, 33, 384, 385, 207, 160, + 17, 22, 6, 20, 21, 211, 428, 1, 2, 3, + 4, 5, 307, 284, 18, 19, 287, 303, 35, 207, + 162, 28, 310, 6, 308, -212, -212, 103, 106, 1, + 2, 3, 4, 5, 102, 315, 23, 104, 107, 429, + 6, 32, 117, 159, 60, 134, 6, 30, 160, 29, + 208, 105, 116, -218, -218, 135, -218, 8, 31, 32, + -218, 397, 398, 346, 347, 7, 348, 349, 6, 99, + 161, -218, 109, 108, -218, -210, -210, 18, 57, 110, + 135, 100, -211, -211, 209, 136, 101, 24, 124, 37, + 38, 168, 40, 165, 18, 57, 6, 299, 139, 140, + -240, 8, 181, 364, 163, 209, 376, 157, 181, 166, + 185, 367, 164, 169, -218, -218, 181, 350, 351, 161, + 154, 155, 156, 8, 152, 153, 154, 155, 156, 135, + 170, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 422, 373, 431, 171, 172, 181, 173, 181, + 18, 57, 432, 213, 383, 433, 282, 181, 384, 385, + 181, 285, 174, 175, 288, 182, 135, 392, 393, 394, + 395, 396, 181, 434, 37, 38, 296, 40, 181, 184, + 186, 6, 44, 45, 46, 47, 435, 214, 442, 162, + 300, 181, 237, 181, 306, 159, 444, 309, 316, 276, + 160, 181, 239, 240, 471, 282, 345, 484, 416, 181, + 282, 418, 181, 485, 486, 135, 311, 312, 181, 181, + 135, 152, 153, 154, 155, 156, 448, 334, 450, 282, + 282, 313, 314, 282, 318, 18, 57, 135, 319, 135, + 135, 61, 320, 135, 324, 323, 325, 326, 276, 159, + 159, 327, 328, 276, 160, 160, 380, 340, 365, 368, + 341, 342, 111, 123, 447, 118, 119, 343, 344, 371, + 124, 161, 124, 124, 487, 378, 276, 490, 389, 390, + 400, 135, 401, 402, 468, 403, 469, 423, 470, 415, + 427, 421, 417, 419, 282, 125, 425, 500, 501, 441, + 159, 456, 282, 387, 135, 160, 126, 443, 445, 457, + 458, 472, 135, -226, -226, 459, -226, 460, 474, 476, + -226, 176, 177, 455, 180, 161, 161, 162, 477, 478, + 480, -226, 183, 482, -226, 135, 135, 276, 488, 492, + 493, 494, 495, 497, 498, 124, 499, 25, 26, 27, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 339, 489, 436, 128, -226, -226, 161, 317, 0, 0, + 0, 283, 0, 0, 286, 0, 135, 289, 334, 0, + 0, 292, 0, 294, 0, 0, 295, 0, 135, 0, + 0, 0, 0, 479, 0, 481, 277, 483, 0, 0, + 0, 0, 0, 0, 282, 0, 282, 279, 0, 454, + 0, 127, 0, 0, 135, 0, 135, 0, 305, 0, + 0, 124, 0, 0, 129, 0, 37, 38, 0, 40, + 0, 322, 0, 6, 44, 45, 46, 47, 0, 0, + 120, 0, 0, 0, 121, 277, 0, 276, 0, 276, + 277, 0, 282, 0, 282, 282, 279, 0, 0, 0, + 0, 279, 135, 0, 135, 135, 0, 125, 0, 125, + 125, 0, 0, 277, 0, 282, 282, 0, 332, 0, + 279, 279, 0, 0, 279, 135, 135, 18, 57, 0, + 0, 122, 123, 0, 0, 276, 0, 124, 276, 372, + 0, 0, 0, 0, 130, -219, -219, 0, -219, 0, + 0, 379, -219, 381, 0, 131, 388, 0, 276, 276, + 0, 0, 280, -219, 0, 0, -219, 0, 0, 0, + 0, 295, 0, 0, 277, 281, 0, 0, 0, 0, + 0, 0, 125, 0, 0, 279, 0, 399, 0, 0, + 0, 0, 0, 279, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 0, -219, -219, 0, 0, + 0, 280, 420, 0, 0, 0, 280, 0, 0, 0, + 0, 0, 0, 0, 281, 0, 0, 0, 0, 281, + 0, 0, 0, 333, 0, 280, 280, 0, 0, 280, + 0, 0, 437, 438, 439, 440, 129, 0, 335, 336, + 0, 0, 281, 0, 0, 130, 0, 0, 0, 132, + 0, 0, 0, 0, 0, 0, 131, 449, 125, 451, + 453, 133, 0, 37, 38, 0, 40, 0, 0, 332, + 6, 44, 45, 46, 47, -220, -220, 0, -220, 0, + 0, 329, -220, 0, 277, 0, 277, 0, 0, 0, + 280, 0, 0, -220, 130, 279, -220, 279, 280, 130, + 0, 0, 0, 281, 0, 131, 0, 0, 491, 0, + 131, 386, 0, 0, 0, 0, 130, 0, 130, 130, + 0, 0, 130, 0, 18, 57, 0, 131, 0, 131, + 131, 0, 277, 131, 125, 277, -220, -220, 0, 0, + 0, 0, 0, 279, 0, 279, 279, 0, 0, 0, + 0, 0, 0, 0, 0, 277, 277, 0, 0, 0, + 132, 0, 0, 0, 0, 0, 279, 279, 37, 38, + 0, 40, 133, 0, 0, 6, 44, 45, 46, 47, + 0, 0, 0, 130, 333, 0, 121, 0, 0, 0, + 0, 130, 0, 0, 131, 0, 0, 129, 0, 0, + 0, 0, 131, 0, 0, 0, 0, 0, 0, 132, + 280, 0, 280, 0, 132, 0, 0, -221, -221, 0, + -221, 133, 0, 281, -221, 281, 133, 0, 0, 18, + 57, 132, 0, 132, 132, -221, 0, 132, -221, 0, + 0, 0, 0, 133, 0, 133, 133, 37, 38, 133, + 40, 0, 0, 0, 6, 0, 0, 0, 280, 0, + 280, 280, 0, 0, 0, 157, 0, 0, 158, 0, + 0, 281, 0, 386, 281, 0, 0, 130, -221, -221, + 0, 280, 280, 37, 38, 0, 40, 0, 131, 0, + 6, 0, 0, 0, 281, 281, 0, 0, 132, 0, + 0, 157, 0, 130, 185, 130, 132, 0, 18, 57, + 133, 350, 351, 0, 131, 0, 131, 0, 133, 0, + 0, 0, 0, 0, 0, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 0, 0, 0, -222, + -222, 0, -222, 0, 18, 57, -222, 0, 0, -223, + -223, 130, -223, 130, 130, 0, -223, -222, 0, 0, + -222, 0, 131, 0, 131, 131, 0, -223, 0, 0, + -223, 0, 0, 0, 130, 130, -224, -224, 0, -224, + 0, -225, -225, -224, -225, 131, 131, 0, -225, 0, + 0, 0, 132, 0, -224, 0, 0, -224, 0, -225, + -222, -222, -225, 0, 133, 0, 0, 0, 0, 0, + -223, -223, 0, 0, 0, 0, 0, 0, 132, 0, + 132, 0, 0, 0, 0, 0, 37, 38, 0, 40, + 133, 0, 133, 6, 0, 0, 0, -224, -224, 0, + 0, 0, -225, -225, 157, 139, 140, 185, 0, 143, + 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 0, 132, 132, + 0, 152, 153, 154, 155, 156, 0, 0, 133, 0, + 133, 133, 0, 0, 0, 0, 0, 18, 57, 132, + 132, 0, 215, 0, 0, 0, 0, 0, 0, 0, + 216, 133, 133, 217, 218, 219, 0, 220, 221, 222, + 223, 0, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 37, 38, 0, 40, 0, 0, + 0, 6, 44, 45, 46, 47, 0, 0, 0, 0, + 166, 236, 237, 0, 0, 0, 0, 0, 215, 0, + 238, 0, 239, 240, 0, 0, 216, 0, 0, 217, + 218, 219, 0, 220, 221, 222, 223, 0, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 37, 38, 0, 40, 0, 18, 57, 6, 44, 45, + 46, 47, 0, 0, 0, 0, 166, 337, 237, 0, + 0, 0, 0, 0, 0, 301, 338, 0, 239, 240, + 0, 0, 216, 0, 0, 217, 218, 219, 0, 220, + 221, 222, 223, 0, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 37, 38, 0, 40, + 0, 18, 57, 6, 44, 45, 46, 47, 0, 0, + 0, 0, 166, 0, 237, 0, 0, 0, 0, 0, + 0, 374, 302, 0, 239, 240, 0, 0, 216, 0, + 0, 217, 218, 219, 0, 220, 221, 222, 223, 0, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 37, 38, 0, 40, 36, 18, 57, 6, 44, - 45, 46, 47, 0, 0, 0, 0, 166, 0, 236, - 0, 0, 0, 0, 0, 0, 0, 374, 0, 238, - 239, 0, 37, 38, 39, 40, 41, 42, 43, 6, + 234, 235, 37, 38, 0, 40, 36, 18, 57, 6, + 44, 45, 46, 47, 0, 0, 0, 0, 166, 0, + 237, 0, 0, 0, 0, 0, 0, 0, 375, 0, + 239, 240, 0, 37, 38, 39, 40, 41, 42, 43, + 6, 44, 45, 46, 47, 48, 49, 50, 0, 0, + 0, 112, 113, 139, 140, 0, 0, 52, 0, 145, + 146, 147, 148, 18, 57, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 54, 36, 0, 0, 0, 152, + 153, 154, 155, 156, 0, 0, 0, 0, 0, 0, + 55, 0, 0, 56, 18, 57, 32, 58, 59, 60, + 0, 0, 37, 38, 39, 40, 41, 42, 43, 6, 44, 45, 46, 47, 48, 49, 50, 0, 0, 0, - 112, 113, 139, 140, 0, 0, 52, 0, 145, 146, - 147, 148, 18, 57, 0, 0, 0, 0, 0, 0, - 0, 0, 53, 54, 36, 0, 0, 0, 152, 153, - 154, 155, 156, 0, 0, 0, 0, 0, 0, 55, + 51, 0, 0, 0, 0, 0, 52, 0, 321, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 54, 36, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 56, 18, 57, 32, 58, 59, 60, 0, 0, 37, 38, 39, 40, 41, 42, 43, 6, 44, - 45, 46, 47, 48, 49, 50, 0, 0, 0, 51, - 0, 0, 0, 0, 0, 52, 0, 320, 37, 38, - 0, 40, 0, 0, 0, 6, 44, 45, 46, 47, - 0, 53, 54, 36, 0, 0, 236, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 238, 239, 55, 0, + 45, 46, 47, 48, 49, 50, 293, 0, 0, 51, + 0, 0, 0, 0, 138, 52, 0, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, + 0, 53, 54, 36, 0, 0, 0, 0, 0, 0, + 149, 150, 151, 152, 153, 154, 155, 156, 55, 0, 0, 56, 18, 57, 32, 58, 59, 60, 0, 0, 37, 38, 39, 40, 41, 42, 43, 6, 44, 45, - 46, 47, 48, 49, 50, 0, 0, 0, 51, 18, - 57, 0, 0, 0, 52, 0, 0, -223, -223, 0, - -223, 0, 0, 0, -223, 0, 0, 0, 0, 0, - 53, 54, 36, 0, 0, -223, 0, 0, -223, 0, - 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, - 56, 18, 57, 32, 58, 59, 60, 0, 0, 37, - 38, 39, 40, 41, 42, 43, 6, 44, 45, 46, - 47, 48, 49, 50, 0, 0, 0, 112, -223, -223, - 0, 139, 140, 52, 142, 143, 144, 145, 146, 147, - 148, 0, 0, 0, -224, -224, 0, -224, 0, 53, - 54, -224, 0, 0, 149, 150, 151, 152, 153, 154, - 155, 156, -224, 0, 0, -224, 55, 0, 0, 56, - 18, 57, 32, 58, 59, 60, 215, 0, 0, 216, - 217, 218, 0, 219, 220, 221, 222, 0, 223, 224, + 46, 47, 48, 49, 50, 298, 0, 0, 112, 0, + 0, 0, 0, 138, 52, 0, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, + 53, 54, 0, 0, 0, 0, 0, 0, 0, 149, + 150, 151, 152, 153, 154, 155, 156, 55, 0, 0, + 56, 18, 57, 32, 58, 59, 60, 216, 0, 0, + 217, 218, 219, 0, 220, 221, 222, 223, 0, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 37, 38, 0, 40, 0, -224, -224, 6, 44, 45, - 46, 47, 0, 0, 0, 0, 166, 0, 236, 0, - 0, 0, 0, 37, 38, 0, 40, 0, 238, 239, - 6, 0, -225, -225, 0, -225, 0, 0, 0, -225, - 0, 157, 37, 38, 185, 40, 0, 0, 0, 6, - -225, 349, 350, -225, 0, 0, 0, 0, 0, 0, - 157, 18, 57, 185, 0, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, - 0, 0, 0, 0, 18, 57, 0, 0, 0, 0, - 178, 0, 0, -225, -225, 179, 0, 0, 0, 0, - 0, 0, 138, 18, 57, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, - 151, 152, 153, 154, 155, 156, 461, 0, 139, 140, - 0, 462, 143, 144, 145, 146, 147, 148, 138, 0, + 235, 37, 38, 0, 40, 0, 0, 0, 6, 44, + 45, 46, 47, 0, 0, 0, 0, 166, 0, 237, + 0, 0, 0, 0, 0, 0, 178, 0, 0, 239, + 240, 179, 0, 0, 0, 0, 0, 0, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 0, - 0, 0, 0, 0, 149, 150, 151, 152, 153, 154, - 155, 156, 463, 0, 139, 140, 0, 464, 143, 144, + 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 18, 57, 149, 150, 151, 152, 153, 154, + 155, 156, 462, 0, 139, 140, 0, 463, 143, 144, 145, 146, 147, 148, 138, 0, 0, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 0, 150, 151, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 0, 0, 0, 0, 0, - 149, 150, 151, 152, 153, 154, 155, 156, 465, 0, - 0, 0, 0, 466, 0, 0, 0, 0, 0, 0, - 138, 289, 0, 139, 140, 141, 142, 143, 144, 145, + 149, 150, 151, 152, 153, 154, 155, 156, 464, 0, + 139, 140, 0, 465, 143, 144, 145, 146, 147, 148, + 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 0, 150, 151, 152, 153, 154, 155, + 156, 0, 0, 0, 0, 0, 149, 150, 151, 152, + 153, 154, 155, 156, 466, 0, 0, 0, 0, 467, + 0, 0, 0, 0, 0, 0, 138, 290, 0, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 138, + 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 0, 291, 0, 0, 0, 149, 150, 151, 152, 153, + 154, 155, 156, 138, 178, 0, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 138, 0, 0, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 0, 424, 0, + 0, 0, 149, 150, 151, 152, 153, 154, 155, 156, + 138, 426, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 0, 290, 0, 0, 0, 149, - 150, 151, 152, 153, 154, 155, 156, 138, 178, 0, + 153, 154, 155, 156, 0, 430, 0, 0, 0, 149, + 150, 151, 152, 153, 154, 155, 156, 138, 446, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 0, 423, 0, 0, 0, 149, 150, 151, 152, - 153, 154, 155, 156, 138, 425, 0, 139, 140, 141, + 156, 0, 461, 0, 0, 0, 149, 150, 151, 152, + 153, 154, 155, 156, 138, 473, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 0, 429, + 149, 150, 151, 152, 153, 154, 155, 156, 0, 475, 0, 0, 0, 149, 150, 151, 152, 153, 154, 155, - 156, 138, 445, 0, 139, 140, 141, 142, 143, 144, + 156, 138, 496, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 0, 460, 0, 0, 0, - 149, 150, 151, 152, 153, 154, 155, 156, 138, 472, - 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 138, 0, 0, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 0, 474, 0, 0, 0, 149, 150, 151, - 152, 153, 154, 155, 156, 138, 495, 0, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 138, 0, - 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 0, - 0, 0, 0, 0, 149, 150, 151, 152, 153, 154, - 155, 156, 292, 0, 0, 0, 0, 0, 0, 0, - 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 150, 151, 152, - 153, 154, 155, 156, 297, 0, 0, 0, 0, 0, - 0, 0, 138, 0, 0, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, - 151, 152, 153, 154, 155, 156, 362, 0, 0, 0, - 0, 0, 0, 0, 138, 0, 0, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 149, 150, 151, 152, 153, 154, 155, 156, 365, 0, + 152, 153, 154, 155, 156, 0, 0, 0, 0, 0, + 149, 150, 151, 152, 153, 154, 155, 156, 363, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, 152, 153, 154, 155, 156, - 368, 0, 0, 0, 0, 0, 0, 0, 138, 0, + 366, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, 152, 153, 154, - 155, 156, 369, 0, 0, 0, 0, 0, 0, 138, - 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 149, 150, 151, 152, 153, - 154, 155, 156, 296, 0, 138, 0, 0, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 149, 150, 151, 152, 153, 154, 155, 156, 137, + 155, 156, 369, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, 152, - 153, 154, 155, 156, 376, 138, 0, 0, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, + 153, 154, 155, 156, 370, 0, 0, 0, 0, 0, + 0, 138, 0, 0, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 149, 150, 151, + 152, 153, 154, 155, 156, 297, 0, 138, 0, 0, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 149, 150, 151, 152, 153, 154, 155, 156, 390, - 138, 0, 0, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 138, 0, 0, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 0, 0, 0, 0, 0, 149, - 150, 151, 152, 153, 154, 155, 156, 139, 140, 0, - 0, 143, 144, 145, 146, 147, 148, 139, 140, 0, - 0, 143, 144, 145, 146, 147, 148, 0, 0, 0, - 0, 150, 0, 152, 153, 154, 155, 156, 0, 0, - 0, 0, 0, 152, 153, 154, 155, 156 + 0, 0, 0, 149, 150, 151, 152, 153, 154, 155, + 156, 137, 138, 0, 0, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, + 151, 152, 153, 154, 155, 156, 377, 138, 0, 0, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 149, 150, 151, 152, 153, 154, 155, + 156, 391, 138, 0, 0, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 138, 0, 0, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 0, 0, 0, 0, + 0, 149, 150, 151, 152, 153, 154, 155, 156, 139, + 140, 0, 142, 143, 144, 145, 146, 147, 148, 139, + 140, 0, 0, 143, 144, 145, 146, 147, 148, 0, + 0, 0, 149, 150, 151, 152, 153, 154, 155, 156, + 0, 0, 0, 150, 0, 152, 153, 154, 155, 156 }; const short parser::yycheck_[] = { - 0, 80, 22, 311, 50, 311, 51, 100, 43, 80, - 10, 55, 23, 3, 4, 311, 43, 43, 162, 54, - 0, 4, 5, 6, 7, 8, 170, 54, 28, 173, - 4, 5, 6, 7, 8, 97, 98, 37, 38, 51, - 43, 50, 55, 56, 56, 56, 50, 37, 38, 51, - 129, 50, 52, 62, 56, 55, 55, 56, 129, 214, - 43, 62, 97, 98, 219, 55, 62, 112, 99, 43, - 97, 98, 98, 51, 78, 36, 37, 54, 39, 62, - 80, 50, 43, 44, 45, 46, 47, 50, 62, 50, - 80, 36, 37, 54, 39, 98, 36, 37, 43, 39, - 98, 101, 55, 43, 44, 45, 46, 47, 51, 54, - 57, 60, 57, 56, 54, 98, 66, 67, 51, 60, - 51, 93, 166, 56, 98, 56, 51, 99, 51, 129, - 102, 56, 62, 56, 55, 56, 97, 98, 52, 129, - 101, 102, 92, 93, 94, 95, 96, 54, 303, 51, - 60, 51, 97, 98, 56, 299, 56, 97, 98, 51, - 94, 95, 96, 163, 56, 473, 166, 473, 55, 50, - 214, 171, 54, 51, 174, 219, 166, 473, 56, 323, - 324, 325, 326, 327, 51, 51, 186, 60, 51, 56, - 56, 51, 236, 56, 238, 239, 56, 51, 242, 55, - 56, 280, 56, 50, 224, 54, 56, 55, 54, 280, - 50, 43, 98, 166, 214, 60, 50, 50, 62, 219, - 364, 50, 50, 367, 214, 50, 50, 62, 55, 219, - 92, 93, 94, 95, 96, 61, 236, 50, 238, 239, - 62, 62, 242, 50, 50, 50, 236, 50, 238, 239, - 29, 62, 242, 62, 62, 334, 335, 50, 62, 303, - 62, 214, 78, 334, 335, 50, 219, 311, 423, 51, - 425, 50, 20, 61, 53, 54, 420, 61, 50, 166, - 280, 36, 37, 236, 39, 238, 239, 102, 43, 242, - 280, 50, 50, 50, 55, 55, 440, 50, 442, 54, - 444, 55, 57, 303, 55, 55, 385, 50, 50, 50, - 62, 311, 312, 303, 385, 62, 471, 50, 62, 474, - 18, 311, 62, 62, 62, 62, 62, 214, 23, 51, - 109, 110, 219, 112, 334, 335, 429, 62, 62, 494, - 495, 120, 97, 98, 334, 335, 62, 62, 62, 236, - 303, 238, 239, 397, 51, 242, 62, 51, 311, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 423, - 51, 425, 62, 62, 10, 385, 10, 10, 473, 242, - 169, 397, 55, 172, 224, 385, 175, 397, -1, -1, - 179, -1, 181, -1, -1, 184, 166, 397, -1, -1, - -1, -1, -1, -1, -1, 166, 303, 462, -1, 464, - -1, 466, -1, 423, 311, 425, -1, 471, 428, 473, - 474, -1, -1, 423, -1, 425, 215, -1, -1, 36, - 37, -1, 39, -1, 397, 55, 43, -1, -1, 228, - 494, 495, 55, 50, 214, -1, -1, 54, -1, 219, - 57, -1, -1, 214, -1, -1, -1, -1, 219, -1, - 423, 471, 425, 473, 474, -1, 236, -1, 238, 239, - -1, 471, 242, 473, 474, 236, -1, 238, 239, -1, - -1, 242, 55, -1, 494, 495, -1, -1, -1, -1, - 97, 98, -1, -1, 494, 495, -1, 55, -1, -1, - 397, -1, -1, -1, -1, -1, -1, 296, 471, -1, - 473, 474, -1, -1, -1, -1, -1, -1, -1, 308, - -1, 310, 36, 37, 313, 39, 423, -1, 425, 43, - -1, 494, 495, 303, -1, -1, -1, -1, -1, 328, - 54, 311, 303, 57, -1, -1, 166, -1, -1, -1, - 311, -1, -1, 166, -1, 344, -1, -1, -1, -1, - -1, -1, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, -1, 471, -1, 473, 474, 36, 37, - 369, 39, -1, 97, 98, 43, 44, 45, 46, 47, - -1, -1, -1, 166, 214, -1, 54, 494, 495, 219, - -1, 214, -1, -1, -1, -1, 219, -1, 166, -1, - 399, 400, 401, 402, -1, -1, 236, -1, 238, 239, - -1, -1, 242, 236, -1, 238, 239, 397, -1, 242, - -1, -1, -1, -1, -1, 424, 397, 426, 427, 97, - 98, 214, -1, -1, -1, -1, 219, -1, -1, -1, - -1, -1, -1, 423, -1, 425, 214, -1, -1, -1, - -1, 219, 423, 236, 425, 238, 239, 36, 37, 242, - 39, -1, -1, -1, 43, -1, -1, -1, 236, -1, - 238, 239, -1, 303, 242, 54, 475, -1, 57, -1, - 303, 311, -1, -1, -1, -1, -1, -1, 311, -1, - -1, 471, -1, 473, 474, -1, -1, -1, -1, -1, - 471, -1, 473, 474, 36, 37, -1, 39, -1, -1, - -1, 43, -1, -1, 494, 495, -1, -1, 97, 98, - 303, -1, 54, 494, 495, 57, -1, -1, 311, 4, - -1, -1, -1, -1, -1, 303, -1, 12, -1, -1, - 15, 16, 17, 311, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, -1, 39, 97, 98, 397, 43, 44, - 45, 46, 47, -1, 397, -1, -1, 52, 53, 54, - -1, -1, -1, -1, -1, -1, -1, 62, -1, 64, - 65, -1, -1, 423, -1, 425, -1, -1, -1, -1, - 423, -1, 425, -1, -1, 10, 11, -1, 13, 14, - -1, -1, -1, -1, 397, -1, -1, -1, -1, -1, - -1, -1, 97, 98, -1, -1, -1, -1, -1, 397, - -1, 36, 37, -1, 39, -1, -1, -1, 43, -1, - 423, 471, 425, 473, 474, -1, -1, -1, 471, 54, - 473, 474, 57, -1, -1, 423, -1, 425, -1, 64, - 65, -1, -1, -1, 494, 495, -1, -1, -1, -1, - -1, 494, 495, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, -1, -1, -1, -1, 471, -1, - 473, 474, 97, 98, -1, -1, -1, -1, -1, -1, - -1, 36, 37, 471, 39, 473, 474, -1, 43, -1, - -1, 494, 495, -1, -1, -1, -1, 4, -1, 54, - -1, -1, 57, -1, -1, 12, 494, 495, 15, 16, - 17, -1, 19, 20, 21, 22, -1, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, -1, 39, -1, -1, -1, 43, 44, 45, 46, - 47, -1, 97, 98, -1, 52, 53, 54, -1, -1, - -1, -1, -1, -1, 5, 62, -1, 64, 65, -1, - -1, 12, -1, -1, 15, 16, 17, -1, 19, 20, - 21, 22, -1, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, -1, 39, -1, - 97, 98, 43, 44, 45, 46, 47, -1, -1, -1, - -1, 52, -1, 54, -1, -1, -1, -1, -1, -1, - 5, 62, -1, 64, 65, -1, -1, 12, -1, -1, - 15, 16, 17, -1, 19, 20, 21, 22, -1, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, -1, 39, 9, 97, 98, 43, 44, - 45, 46, 47, -1, -1, -1, -1, 52, -1, 54, - -1, -1, -1, -1, -1, -1, -1, 62, -1, 64, - 65, -1, 36, 37, 38, 39, 40, 41, 42, 43, + 0, 51, 312, 100, 80, 22, 312, 312, 12, 80, + 10, 50, 43, 3, 4, 162, 23, 4, 5, 6, + 7, 8, 50, 170, 97, 98, 173, 215, 28, 12, + 50, 50, 220, 43, 62, 55, 56, 37, 38, 4, + 5, 6, 7, 8, 54, 93, 0, 37, 38, 56, + 43, 99, 52, 129, 102, 55, 43, 62, 129, 78, + 43, 54, 112, 36, 37, 55, 39, 98, 62, 99, + 43, 55, 56, 10, 11, 62, 13, 14, 43, 51, + 80, 54, 50, 54, 57, 55, 56, 97, 98, 50, + 80, 51, 55, 56, 98, 98, 56, 62, 55, 36, + 37, 101, 39, 62, 97, 98, 43, 51, 66, 67, + 60, 98, 56, 51, 60, 98, 304, 54, 56, 52, + 57, 51, 57, 54, 97, 98, 56, 64, 65, 129, + 94, 95, 96, 98, 92, 93, 94, 95, 96, 129, + 50, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 51, 300, 51, 60, 54, 56, 50, 56, + 97, 98, 51, 163, 474, 51, 166, 56, 474, 474, + 56, 171, 60, 54, 174, 55, 166, 324, 325, 326, + 327, 328, 56, 51, 36, 37, 186, 39, 56, 54, + 60, 43, 44, 45, 46, 47, 51, 43, 51, 50, + 50, 56, 54, 56, 62, 281, 51, 50, 225, 166, + 281, 56, 64, 65, 51, 215, 78, 51, 365, 56, + 220, 368, 56, 51, 51, 215, 50, 50, 56, 56, + 220, 92, 93, 94, 95, 96, 424, 237, 426, 239, + 240, 50, 50, 243, 61, 97, 98, 237, 62, 239, + 240, 29, 62, 243, 50, 62, 50, 50, 215, 335, + 336, 50, 50, 220, 335, 336, 20, 62, 50, 50, + 62, 62, 50, 102, 421, 53, 54, 62, 62, 55, + 237, 281, 239, 240, 472, 51, 243, 475, 61, 61, + 50, 281, 50, 50, 441, 50, 443, 62, 445, 55, + 62, 50, 55, 55, 304, 55, 50, 495, 496, 50, + 386, 62, 312, 313, 304, 386, 55, 50, 50, 62, + 62, 18, 312, 36, 37, 62, 39, 62, 62, 23, + 43, 109, 110, 430, 112, 335, 336, 50, 62, 62, + 62, 54, 120, 62, 57, 335, 336, 304, 62, 51, + 51, 51, 51, 62, 62, 312, 62, 10, 10, 10, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 243, 474, 398, 55, 97, 98, 386, 225, -1, -1, + -1, 169, -1, -1, 172, -1, 386, 175, 398, -1, + -1, 179, -1, 181, -1, -1, 184, -1, 398, -1, + -1, -1, -1, 463, -1, 465, 166, 467, -1, -1, + -1, -1, -1, -1, 424, -1, 426, 166, -1, 429, + -1, 55, -1, -1, 424, -1, 426, -1, 216, -1, + -1, 398, -1, -1, 55, -1, 36, 37, -1, 39, + -1, 229, -1, 43, 44, 45, 46, 47, -1, -1, + 50, -1, -1, -1, 54, 215, -1, 424, -1, 426, + 220, -1, 472, -1, 474, 475, 215, -1, -1, -1, + -1, 220, 472, -1, 474, 475, -1, 237, -1, 239, + 240, -1, -1, 243, -1, 495, 496, -1, 237, -1, + 239, 240, -1, -1, 243, 495, 496, 97, 98, -1, + -1, 101, 102, -1, -1, 472, -1, 474, 475, 297, + -1, -1, -1, -1, 55, 36, 37, -1, 39, -1, + -1, 309, 43, 311, -1, 55, 314, -1, 495, 496, + -1, -1, 166, 54, -1, -1, 57, -1, -1, -1, + -1, 329, -1, -1, 304, 166, -1, -1, -1, -1, + -1, -1, 312, -1, -1, 304, -1, 345, -1, -1, + -1, -1, -1, 312, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, -1, 97, 98, -1, -1, + -1, 215, 370, -1, -1, -1, 220, -1, -1, -1, + -1, -1, -1, -1, 215, -1, -1, -1, -1, 220, + -1, -1, -1, 237, -1, 239, 240, -1, -1, 243, + -1, -1, 400, 401, 402, 403, 237, -1, 239, 240, + -1, -1, 243, -1, -1, 166, -1, -1, -1, 55, + -1, -1, -1, -1, -1, -1, 166, 425, 398, 427, + 428, 55, -1, 36, 37, -1, 39, -1, -1, 398, + 43, 44, 45, 46, 47, 36, 37, -1, 39, -1, + -1, 54, 43, -1, 424, -1, 426, -1, -1, -1, + 304, -1, -1, 54, 215, 424, 57, 426, 312, 220, + -1, -1, -1, 304, -1, 215, -1, -1, 476, -1, + 220, 312, -1, -1, -1, -1, 237, -1, 239, 240, + -1, -1, 243, -1, 97, 98, -1, 237, -1, 239, + 240, -1, 472, 243, 474, 475, 97, 98, -1, -1, + -1, -1, -1, 472, -1, 474, 475, -1, -1, -1, + -1, -1, -1, -1, -1, 495, 496, -1, -1, -1, + 166, -1, -1, -1, -1, -1, 495, 496, 36, 37, + -1, 39, 166, -1, -1, 43, 44, 45, 46, 47, + -1, -1, -1, 304, 398, -1, 54, -1, -1, -1, + -1, 312, -1, -1, 304, -1, -1, 398, -1, -1, + -1, -1, 312, -1, -1, -1, -1, -1, -1, 215, + 424, -1, 426, -1, 220, -1, -1, 36, 37, -1, + 39, 215, -1, 424, 43, 426, 220, -1, -1, 97, + 98, 237, -1, 239, 240, 54, -1, 243, 57, -1, + -1, -1, -1, 237, -1, 239, 240, 36, 37, 243, + 39, -1, -1, -1, 43, -1, -1, -1, 472, -1, + 474, 475, -1, -1, -1, 54, -1, -1, 57, -1, + -1, 472, -1, 474, 475, -1, -1, 398, 97, 98, + -1, 495, 496, 36, 37, -1, 39, -1, 398, -1, + 43, -1, -1, -1, 495, 496, -1, -1, 304, -1, + -1, 54, -1, 424, 57, 426, 312, -1, 97, 98, + 304, 64, 65, -1, 424, -1, 426, -1, 312, -1, + -1, -1, -1, -1, -1, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, -1, -1, -1, 36, + 37, -1, 39, -1, 97, 98, 43, -1, -1, 36, + 37, 472, 39, 474, 475, -1, 43, 54, -1, -1, + 57, -1, 472, -1, 474, 475, -1, 54, -1, -1, + 57, -1, -1, -1, 495, 496, 36, 37, -1, 39, + -1, 36, 37, 43, 39, 495, 496, -1, 43, -1, + -1, -1, 398, -1, 54, -1, -1, 57, -1, 54, + 97, 98, 57, -1, 398, -1, -1, -1, -1, -1, + 97, 98, -1, -1, -1, -1, -1, -1, 424, -1, + 426, -1, -1, -1, -1, -1, 36, 37, -1, 39, + 424, -1, 426, 43, -1, -1, -1, 97, 98, -1, + -1, -1, 97, 98, 54, 66, 67, 57, -1, 70, + 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 472, -1, 474, 475, + -1, 92, 93, 94, 95, 96, -1, -1, 472, -1, + 474, 475, -1, -1, -1, -1, -1, 97, 98, 495, + 496, -1, 4, -1, -1, -1, -1, -1, -1, -1, + 12, 495, 496, 15, 16, 17, -1, 19, 20, 21, + 22, -1, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, -1, 39, -1, -1, + -1, 43, 44, 45, 46, 47, -1, -1, -1, -1, + 52, 53, 54, -1, -1, -1, -1, -1, 4, -1, + 62, -1, 64, 65, -1, -1, 12, -1, -1, 15, + 16, 17, -1, 19, 20, 21, 22, -1, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, -1, 39, -1, 97, 98, 43, 44, 45, + 46, 47, -1, -1, -1, -1, 52, 53, 54, -1, + -1, -1, -1, -1, -1, 5, 62, -1, 64, 65, + -1, -1, 12, -1, -1, 15, 16, 17, -1, 19, + 20, 21, 22, -1, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, -1, 39, + -1, 97, 98, 43, 44, 45, 46, 47, -1, -1, + -1, -1, 52, -1, 54, -1, -1, -1, -1, -1, + -1, 5, 62, -1, 64, 65, -1, -1, 12, -1, + -1, 15, 16, 17, -1, 19, 20, 21, 22, -1, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, -1, 39, 9, 97, 98, 43, + 44, 45, 46, 47, -1, -1, -1, -1, 52, -1, + 54, -1, -1, -1, -1, -1, -1, -1, 62, -1, + 64, 65, -1, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, + -1, 54, 55, 66, 67, -1, -1, 60, -1, 72, + 73, 74, 75, 97, 98, -1, -1, -1, -1, -1, + -1, -1, -1, 76, 77, 9, -1, -1, -1, 92, + 93, 94, 95, 96, -1, -1, -1, -1, -1, -1, + 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, + -1, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, -1, -1, -1, - 54, 55, 66, 67, -1, -1, 60, -1, 72, 73, - 74, 75, 97, 98, -1, -1, -1, -1, -1, -1, - -1, -1, 76, 77, 9, -1, -1, -1, 92, 93, - 94, 95, 96, -1, -1, -1, -1, -1, -1, 93, + 54, -1, -1, -1, -1, -1, 60, -1, 62, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 76, 77, 9, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, -1, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, -1, -1, -1, 54, - -1, -1, -1, -1, -1, 60, -1, 62, 36, 37, - -1, 39, -1, -1, -1, 43, 44, 45, 46, 47, - -1, 76, 77, 9, -1, -1, 54, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 64, 65, 93, -1, + 45, 46, 47, 48, 49, 50, 55, -1, -1, 54, + -1, -1, -1, -1, 63, 60, -1, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, + -1, 76, 77, 9, -1, -1, -1, -1, -1, -1, + 89, 90, 91, 92, 93, 94, 95, 96, 93, -1, -1, 96, 97, 98, 99, 100, 101, 102, -1, -1, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, -1, -1, -1, 54, 97, - 98, -1, -1, -1, 60, -1, -1, 36, 37, -1, - 39, -1, -1, -1, 43, -1, -1, -1, -1, -1, - 76, 77, 9, -1, -1, 54, -1, -1, 57, -1, - -1, -1, -1, -1, -1, -1, -1, 93, -1, -1, - 96, 97, 98, 99, 100, 101, 102, -1, -1, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, -1, -1, -1, 54, 97, 98, - -1, 66, 67, 60, 69, 70, 71, 72, 73, 74, - 75, -1, -1, -1, 36, 37, -1, 39, -1, 76, - 77, 43, -1, -1, 89, 90, 91, 92, 93, 94, - 95, 96, 54, -1, -1, 57, 93, -1, -1, 96, - 97, 98, 99, 100, 101, 102, 12, -1, -1, 15, - 16, 17, -1, 19, 20, 21, 22, -1, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, -1, 39, -1, 97, 98, 43, 44, 45, - 46, 47, -1, -1, -1, -1, 52, -1, 54, -1, - -1, -1, -1, 36, 37, -1, 39, -1, 64, 65, - 43, -1, 36, 37, -1, 39, -1, -1, -1, 43, - -1, 54, 36, 37, 57, 39, -1, -1, -1, 43, - 54, 64, 65, 57, -1, -1, -1, -1, -1, -1, - 54, 97, 98, 57, -1, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, -1, -1, -1, -1, - -1, -1, -1, -1, 97, 98, -1, -1, -1, -1, - 51, -1, -1, 97, 98, 56, -1, -1, -1, -1, - -1, -1, 63, 97, 98, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, 51, -1, 66, 67, - -1, 56, 70, 71, 72, 73, 74, 75, 63, -1, + 46, 47, 48, 49, 50, 55, -1, -1, 54, -1, + -1, -1, -1, 63, 60, -1, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, + 76, 77, -1, -1, -1, -1, -1, -1, -1, 89, + 90, 91, 92, 93, 94, 95, 96, 93, -1, -1, + 96, 97, 98, 99, 100, 101, 102, 12, -1, -1, + 15, 16, 17, -1, 19, 20, 21, 22, -1, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, -1, 39, -1, -1, -1, 43, 44, + 45, 46, 47, -1, -1, -1, -1, 52, -1, 54, + -1, -1, -1, -1, -1, -1, 51, -1, -1, 64, + 65, 56, -1, -1, -1, -1, -1, -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 89, 90, 91, 92, 93, 94, 95, 96, -1, - -1, -1, -1, -1, 89, 90, 91, 92, 93, 94, + 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 97, 98, 89, 90, 91, 92, 93, 94, 95, 96, 51, -1, 66, 67, -1, 56, 70, 71, 72, 73, 74, 75, 63, -1, -1, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, -1, 90, 91, + 69, 70, 71, 72, 73, 74, 75, 89, 90, 91, 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, 51, -1, - -1, -1, -1, 56, -1, -1, -1, -1, -1, -1, + 66, 67, -1, 56, 70, 71, 72, 73, 74, 75, + 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, -1, 90, 91, 92, 93, 94, 95, + 96, -1, -1, -1, -1, -1, 89, 90, 91, 92, + 93, 94, 95, 96, 51, -1, -1, -1, -1, 56, + -1, -1, -1, -1, -1, -1, 63, 51, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 63, + -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 89, 90, 91, 92, 93, 94, 95, 96, + -1, 51, -1, -1, -1, 89, 90, 91, 92, 93, + 94, 95, 96, 63, 51, -1, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 63, -1, -1, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 89, + 90, 91, 92, 93, 94, 95, 96, -1, 51, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, 63, 51, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, 91, 92, @@ -4694,29 +4728,7 @@ namespace xsk { namespace gsc { 96, 63, 51, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, 91, - 92, 93, 94, 95, 96, -1, 51, -1, -1, -1, - 89, 90, 91, 92, 93, 94, 95, 96, 63, 51, - -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 63, -1, -1, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 89, 90, 91, 92, 93, 94, - 95, 96, -1, 51, -1, -1, -1, 89, 90, 91, - 92, 93, 94, 95, 96, 63, 51, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 63, -1, - -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 89, 90, 91, 92, 93, 94, 95, 96, -1, - -1, -1, -1, -1, 89, 90, 91, 92, 93, 94, - 95, 96, 55, -1, -1, -1, -1, -1, -1, -1, - 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 89, 90, 91, 92, - 93, 94, 95, 96, 55, -1, -1, -1, -1, -1, - -1, -1, 63, -1, -1, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, - 91, 92, 93, 94, 95, 96, 55, -1, -1, -1, - -1, -1, -1, -1, 63, -1, -1, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 92, 93, 94, 95, 96, -1, -1, -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, 55, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, @@ -4726,30 +4738,34 @@ namespace xsk { namespace gsc { -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, 92, 93, 94, - 95, 96, 56, -1, -1, -1, -1, -1, -1, 63, - -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 89, 90, 91, 92, 93, - 94, 95, 96, 61, -1, 63, -1, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 89, 90, 91, 92, 93, 94, 95, 96, 62, + 95, 96, 55, -1, -1, -1, -1, -1, -1, -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, 92, - 93, 94, 95, 96, 62, 63, -1, -1, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, + 93, 94, 95, 96, 56, -1, -1, -1, -1, -1, + -1, 63, -1, -1, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, + 92, 93, 94, 95, 96, 61, -1, 63, -1, -1, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 89, 90, 91, 92, 93, 94, 95, 96, 62, - 63, -1, -1, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 63, -1, -1, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 89, 90, 91, 92, - 93, 94, 95, 96, -1, -1, -1, -1, -1, 89, - 90, 91, 92, 93, 94, 95, 96, 66, 67, -1, - -1, 70, 71, 72, 73, 74, 75, 66, 67, -1, - -1, 70, 71, 72, 73, 74, 75, -1, -1, -1, - -1, 90, -1, 92, 93, 94, 95, 96, -1, -1, - -1, -1, -1, 92, 93, 94, 95, 96 + -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, + 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 89, 90, + 91, 92, 93, 94, 95, 96, 62, 63, -1, -1, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 89, 90, 91, 92, 93, 94, 95, + 96, 62, 63, -1, -1, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 63, -1, -1, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 89, 90, + 91, 92, 93, 94, 95, 96, -1, -1, -1, -1, + -1, 89, 90, 91, 92, 93, 94, 95, 96, 66, + 67, -1, 69, 70, 71, 72, 73, 74, 75, 66, + 67, -1, -1, 70, 71, 72, 73, 74, 75, -1, + -1, -1, 89, 90, 91, 92, 93, 94, 95, 96, + -1, -1, -1, 90, -1, 92, 93, 94, 95, 96 }; const unsigned char @@ -4775,37 +4791,37 @@ namespace xsk { namespace gsc { 50, 60, 54, 50, 60, 54, 156, 156, 51, 56, 156, 56, 55, 156, 54, 57, 60, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 156, 156, 43, 98, 195, - 173, 174, 196, 43, 4, 12, 15, 16, 17, 19, - 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 53, 54, 62, 64, 65, - 122, 123, 125, 126, 127, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 158, 159, 160, 167, 168, 178, 181, 182, - 185, 196, 156, 173, 196, 156, 173, 196, 156, 51, - 51, 156, 55, 156, 156, 196, 61, 55, 51, 50, - 5, 62, 122, 124, 156, 62, 50, 62, 50, 122, - 50, 50, 50, 50, 93, 199, 202, 61, 62, 62, - 62, 156, 62, 50, 50, 50, 50, 50, 54, 179, - 180, 181, 182, 196, 185, 185, 53, 62, 123, 62, - 62, 62, 62, 62, 78, 10, 11, 13, 14, 64, - 65, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 55, 51, 50, 55, 51, 50, 55, 56, - 55, 156, 173, 5, 62, 122, 62, 51, 156, 20, - 156, 128, 158, 159, 160, 185, 196, 156, 61, 61, - 62, 173, 173, 173, 173, 173, 55, 56, 156, 50, - 50, 50, 50, 156, 156, 156, 156, 156, 156, 156, - 156, 156, 156, 156, 55, 173, 55, 173, 55, 156, - 50, 51, 62, 51, 50, 51, 62, 23, 56, 51, - 51, 51, 51, 51, 51, 180, 156, 156, 156, 156, - 50, 51, 50, 51, 50, 51, 173, 122, 156, 122, - 156, 157, 156, 196, 127, 62, 62, 62, 62, 62, - 51, 51, 56, 51, 56, 51, 56, 173, 173, 173, - 51, 18, 51, 62, 51, 23, 62, 62, 174, 62, - 174, 62, 174, 51, 51, 51, 122, 62, 128, 122, - 156, 51, 51, 51, 51, 51, 62, 62, 62, 122, - 122 + 156, 156, 156, 156, 156, 156, 156, 12, 43, 98, + 195, 173, 174, 196, 43, 4, 12, 15, 16, 17, + 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 53, 54, 62, 64, + 65, 122, 123, 125, 126, 127, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 158, 159, 160, 167, 168, 178, 181, + 182, 185, 196, 156, 173, 196, 156, 173, 196, 156, + 51, 51, 156, 55, 156, 156, 196, 61, 55, 51, + 50, 5, 62, 122, 124, 156, 62, 50, 62, 50, + 122, 50, 50, 50, 50, 93, 199, 202, 61, 62, + 62, 62, 156, 62, 50, 50, 50, 50, 50, 54, + 179, 180, 181, 182, 196, 185, 185, 53, 62, 123, + 62, 62, 62, 62, 62, 78, 10, 11, 13, 14, + 64, 65, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 55, 51, 50, 55, 51, 50, 55, + 56, 55, 156, 173, 5, 62, 122, 62, 51, 156, + 20, 156, 128, 158, 159, 160, 185, 196, 156, 61, + 61, 62, 173, 173, 173, 173, 173, 55, 56, 156, + 50, 50, 50, 50, 156, 156, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 55, 173, 55, 173, 55, + 156, 50, 51, 62, 51, 50, 51, 62, 23, 56, + 51, 51, 51, 51, 51, 51, 180, 156, 156, 156, + 156, 50, 51, 50, 51, 50, 51, 173, 122, 156, + 122, 156, 157, 156, 196, 127, 62, 62, 62, 62, + 62, 51, 51, 56, 51, 56, 51, 56, 173, 173, + 173, 51, 18, 51, 62, 51, 23, 62, 62, 174, + 62, 174, 62, 174, 51, 51, 51, 122, 62, 128, + 122, 156, 51, 51, 51, 51, 51, 62, 62, 62, + 122, 122 }; const unsigned char @@ -4834,8 +4850,9 @@ namespace xsk { namespace gsc { 173, 174, 174, 175, 176, 177, 177, 178, 179, 179, 180, 180, 180, 181, 182, 183, 183, 184, 185, 185, 185, 185, 185, 185, 185, 185, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 196, 197, - 197, 198, 199, 200, 201, 201, 202, 202, 203, 204 + 189, 190, 191, 192, 193, 194, 195, 195, 196, 196, + 197, 197, 198, 199, 200, 201, 201, 202, 202, 203, + 204 }; const signed char @@ -4865,7 +4882,8 @@ namespace xsk { namespace gsc { 1, 1, 1, 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, - 1, 1, 1, 7, 2, 1, 2, 1, 1, 1 + 1, 1, 1, 1, 7, 2, 1, 2, 1, 1, + 1 }; @@ -4898,8 +4916,9 @@ namespace xsk { namespace gsc { 793, 797, 799, 804, 809, 814, 816, 821, 829, 831, 836, 837, 838, 842, 847, 852, 854, 859, 864, 865, 866, 867, 868, 869, 870, 871, 872, 876, 881, 886, - 891, 896, 901, 906, 911, 916, 921, 926, 928, 933, - 935, 940, 945, 950, 955, 957, 962, 964, 969, 974 + 891, 896, 901, 906, 911, 916, 921, 923, 928, 930, + 935, 937, 942, 947, 952, 957, 959, 964, 966, 971, + 976 }; void @@ -4932,9 +4951,9 @@ namespace xsk { namespace gsc { #line 13 "parser.ypp" } } // xsk::gsc -#line 4943 "parser.cpp" +#line 4962 "parser.cpp" -#line 978 "parser.ypp" +#line 980 "parser.ypp" namespace xsk::gsc