diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-07-28 18:24:12 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2009-07-28 18:24:12 +0000 |
commit | 5f668efe1a2ee785810c695cbf9a8c8b85cae87e (patch) | |
tree | a74fab17373bee6ac9427f1f1622e49562e5f102 | |
parent | fa86a70311b4358cba1db22ae89a9e95c5b2ea92 (diff) | |
download | ATCD-5f668efe1a2ee785810c695cbf9a8c8b85cae87e.tar.gz |
ChangeLogTag: Tue Jul 28 18:22:19 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | modules/TAO/ChangeLog | 11 | ||||
-rw-r--r-- | modules/TAO/TAO_IDL/fe/idl.yy | 86 | ||||
-rw-r--r-- | modules/TAO/TAO_IDL/fe/y.tab.cpp | 1326 | ||||
-rw-r--r-- | modules/TAO/TAO_IDL/include/idl_global.h | 5 | ||||
-rw-r--r-- | modules/TAO/TAO_IDL/include/utl_err.h | 1 | ||||
-rw-r--r-- | modules/TAO/TAO_IDL/util/utl_err.cpp | 12 |
6 files changed, 830 insertions, 611 deletions
diff --git a/modules/TAO/ChangeLog b/modules/TAO/ChangeLog index 3f37ee46c82..46b1e5b6ad6 100644 --- a/modules/TAO/ChangeLog +++ b/modules/TAO/ChangeLog @@ -1,3 +1,14 @@ +Tue Jul 28 18:22:19 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/fe/idl.yy: + * TAO_IDL/fe/y.tab.cpp: + * TAO_IDL/include/idl_global.h: + * TAO_IDL/include/utl_err.h: + * TAO_IDL/util/utl_err.cpp: + + Added semantic actions and inheritance checking for creation + of connector. + Tue Jul 28 16:46:35 UTC 2009 Jeff Parsons <j.parsons@vanderbilt.edu> * TAO_IDL/be_include/be_connector.h: diff --git a/modules/TAO/TAO_IDL/fe/idl.yy b/modules/TAO/TAO_IDL/fe/idl.yy index f5f79b8762b..2d773af8171 100644 --- a/modules/TAO/TAO_IDL/fe/idl.yy +++ b/modules/TAO/TAO_IDL/fe/idl.yy @@ -89,6 +89,7 @@ trademarks or registered trademarks of Sun Microsystems, Inc. #include "ast_home.h" #include "ast_template_interface.h" #include "ast_porttype.h" +#include "ast_connector.h" #include "ast_uses.h" #include "ast_constant.h" #include "ast_union.h" @@ -6594,11 +6595,92 @@ connector_decl ; connector_header - : IDL_CONNECTOR IDENTIFIER opt_template_params component_inheritance_spec + : IDL_CONNECTOR + { +// connector_header : IDL_CONNECTOR + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSeen); + } + IDENTIFIER + { +// IDENTIFIER + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorIDSeen); + } + opt_template_params + { +// opt_template_params + } + component_inheritance_spec + { +// component_inheritance_spec + UTL_Scope *s = idl_global->scopes ().top_non_null (); + AST_Connector *parent = 0; + bool so_far_so_good = true; + + Identifier id ($3); + ACE::strdelete ($3); + $3 = 0; + + UTL_ScopedName sn (&id, 0); + + if ($7 != 0) + { + AST_Decl *d = s->lookup_by_name ($7, true); + + if (d == 0) + { + idl_global->err ()->lookup_error ($7); + so_far_so_good = false; + } + + parent = + AST_Connector::narrow_from_decl (d); + + if (parent == 0) + { + idl_global->err ()->error1 (UTL_Error::EIDL_CONNECTOR_EXPECTED, + d); + so_far_so_good = false; + } + + $7->destroy (); + delete $7; + $7 = 0; + } + + if (so_far_so_good) + { + AST_Connector *c = + idl_global->gen ()->create_connector (&sn, + parent, + $5); + + (void) s->fe_add_connector (c); + + // Push it on the scopes stack. + idl_global->scopes ().push (c); + } + } ; connector_body - : '{' at_least_one_connector_export '}' + : '{' + { +// connector_body " '{' + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSqSeen); + } + at_least_one_connector_export + { +// at_least_one_connector_export + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorBodySeen); + } + '}' + { +// '} + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorQsSeen); + + // Done with this connector - pop it off the scope stack. + idl_global->scopes ().pop (); + } ; at_least_one_connector_export diff --git a/modules/TAO/TAO_IDL/fe/y.tab.cpp b/modules/TAO/TAO_IDL/fe/y.tab.cpp index 37d480b44aa..a455e6064fd 100644 --- a/modules/TAO/TAO_IDL/fe/y.tab.cpp +++ b/modules/TAO/TAO_IDL/fe/y.tab.cpp @@ -261,6 +261,7 @@ #include "ast_home.h" #include "ast_template_interface.h" #include "ast_porttype.h" +#include "ast_connector.h" #include "ast_uses.h" #include "ast_constant.h" #include "ast_union.h" @@ -599,16 +600,16 @@ union tao_yyalloc /* TAO_YYFINAL -- State number of the termination state. */ #define TAO_YYFINAL 3 /* TAO_YYLAST -- Last index in TAO_YYTABLE. */ -#define TAO_YYLAST 1264 +#define TAO_YYLAST 1236 /* TAO_YYNTOKENS -- Number of terminals. */ #define TAO_YYNTOKENS 107 /* TAO_YYNNTS -- Number of nonterminals. */ -#define TAO_YYNNTS 375 +#define TAO_YYNNTS 380 /* TAO_YYNRULES -- Number of rules. */ -#define TAO_YYNRULES 559 +#define TAO_YYNRULES 564 /* TAO_YYNRULES -- Number of states. */ -#define TAO_YYNSTATES 809 +#define TAO_YYNSTATES 814 /* TAO_YYTRANSLATE(TAO_YYLEX) -- Bison symbol number corresponding to TAO_YYLEX. */ #define TAO_YYUNDEFTOK 2 @@ -716,8 +717,9 @@ static const tao_yytype_uint16 tao_yyprhs[] = 1284, 1289, 1292, 1296, 1297, 1299, 1300, 1301, 1302, 1303, 1304, 1316, 1318, 1319, 1322, 1325, 1326, 1327, 1331, 1332, 1336, 1338, 1342, 1344, 1348, 1350, 1352, 1356, 1360, 1364, - 1368, 1373, 1376, 1381, 1385, 1388, 1391, 1392, 1393, 1397, - 1398, 1402, 1403, 1407, 1408, 1412, 1413, 1417, 1420, 1423 + 1368, 1373, 1376, 1377, 1378, 1379, 1387, 1388, 1389, 1395, + 1398, 1401, 1402, 1403, 1407, 1408, 1412, 1413, 1417, 1418, + 1422, 1423, 1427, 1430, 1433 }; /* TAO_YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -860,73 +862,75 @@ static const tao_yytype_int16 tao_yyrhs[] = 3, -1, 383, -1, 384, 447, 3, -1, 466, -1, 467, -1, 69, 468, 3, -1, 70, 468, 3, -1, 69, 175, 3, -1, 70, 175, 3, -1, 175, 104, - 172, 103, -1, 470, 471, -1, 72, 3, 457, 370, - -1, 87, 472, 88, -1, 474, 473, -1, 473, 474, - -1, -1, -1, 381, 475, 86, -1, -1, 383, 476, - 86, -1, -1, 297, 477, 86, -1, -1, 467, 478, - 86, -1, -1, 480, 479, 86, -1, 69, 481, -1, - 70, 481, -1, 447, 3, -1 + 172, 103, -1, 470, 474, -1, -1, -1, -1, 72, + 471, 3, 472, 457, 473, 370, -1, -1, -1, 87, + 475, 477, 476, 88, -1, 479, 478, -1, 478, 479, + -1, -1, -1, 381, 480, 86, -1, -1, 383, 481, + 86, -1, -1, 297, 482, 86, -1, -1, 467, 483, + 86, -1, -1, 485, 484, 86, -1, 69, 486, -1, + 70, 486, -1, 447, 3, -1 }; /* TAO_YYRLINE[TAO_YYN] -- source line where rule number TAO_YYN was defined. */ static const tao_yytype_uint16 tao_yyrline[] = { - 0, 364, 364, 367, 368, 373, 372, 383, 382, 393, - 392, 403, 402, 413, 412, 423, 422, 433, 432, 443, - 442, 453, 452, 463, 462, 473, 472, 483, 482, 493, - 492, 503, 502, 513, 512, 526, 531, 557, 562, 525, - 578, 579, 584, 623, 628, 583, 646, 645, 659, 697, - 728, 762, 761, 773, 780, 781, 782, 783, 787, 798, - 803, 847, 852, 802, 881, 920, 925, 879, 944, 942, - 982, 981, 995, 1001, 1008, 1015, 1022, 1048, 1075, 1140, - 1141, 1145, 1146, 1147, 1152, 1158, 1167, 1168, 1173, 1172, - 1183, 1182, 1193, 1192, 1203, 1202, 1213, 1212, 1223, 1222, - 1233, 1232, 1243, 1242, 1256, 1269, 1267, 1297, 1304, 1315, - 1314, 1342, 1340, 1367, 1379, 1425, 1453, 1484, 1489, 1494, - 1499, 1483, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1570, - 1575, 1650, 1652, 1654, 1655, 1669, 1670, 1684, 1685, 1698, - 1699, 1709, 1722, 1723, 1733, 1746, 1747, 1757, 1767, 1780, - 1781, 1791, 1801, 1814, 1849, 1850, 1859, 1864, 1871, 1879, - 1884, 1889, 1895, 1900, 1905, 1913, 1985, 1984, 1994, 1999, - 2004, 2009, 2036, 2045, 2044, 2115, 2116, 2120, 2128, 2129, - 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2168, 2169, - 2170, 2174, 2175, 2176, 2180, 2181, 2185, 2198, 2196, 2226, - 2233, 2234, 2238, 2251, 2249, 2279, 2286, 2303, 2322, 2323, - 2327, 2332, 2337, 2345, 2350, 2355, 2363, 2368, 2373, 2381, - 2395, 2400, 2408, 2416, 2424, 2432, 2441, 2440, 2456, 2490, - 2495, 2455, 2514, 2517, 2518, 2522, 2522, 2532, 2537, 2531, - 2600, 2599, 2614, 2613, 2628, 2633, 2638, 2643, 2690, 2695, - 2627, 2719, 2727, 2741, 2751, 2759, 2760, 2868, 2871, 2872, - 2877, 2882, 2876, 2918, 2917, 2931, 2942, 2964, 2972, 2971, - 2987, 2992, 2986, 3009, 3008, 3061, 3085, 3110, 3115, 3148, - 3153, 3109, 3179, 3184, 3182, 3189, 3193, 3230, 3235, 3228, - 3302, 3357, 3367, 3356, 3382, 3387, 3380, 3428, 3454, 3464, - 3469, 3462, 3499, 3524, 3533, 3532, 3568, 3579, 3601, 3609, - 3614, 3608, 3651, 3652, 3657, 3662, 3667, 3672, 3656, 3741, - 3746, 3751, 3756, 3740, 3834, 3839, 3869, 3874, 3833, 3892, - 3897, 3950, 3955, 3890, 3992, 3998, 4005, 4012, 4013, 4025, - 4031, 4073, 4024, 4095, 4094, 4105, 4104, 4117, 4122, 4120, - 4127, 4132, 4137, 4131, 4178, 4177, 4188, 4187, 4200, 4205, - 4203, 4210, 4215, 4220, 4214, 4267, 4275, 4276, 4277, 4365, - 4370, 4375, 4384, 4389, 4383, 4401, 4409, 4414, 4408, 4426, - 4434, 4439, 4433, 4451, 4459, 4464, 4458, 4476, 4483, 4496, - 4494, 4522, 4529, 4558, 4596, 4597, 4601, 4631, 4671, 4676, - 4630, 4695, 4700, 4693, 4742, 4741, 4752, 4759, 4760, 4765, - 4764, 4775, 4774, 4785, 4784, 4795, 4794, 4805, 4804, 4815, - 4814, 4825, 4824, 4836, 4895, 4902, 4926, 5000, 5010, 5016, - 5022, 5069, 5116, 5165, 5164, 5214, 5219, 5224, 5229, 5234, - 5239, 5213, 5293, 5292, 5303, 5310, 5317, 5325, 5330, 5324, - 5342, 5343, 5347, 5349, 5348, 5359, 5358, 5373, 5409, 5371, - 5443, 5479, 5441, 5511, 5512, 5513, 5517, 5518, 5522, 5550, - 5581, 5626, 5631, 5579, 5648, 5658, 5677, 5689, 5688, 5728, - 5778, 5783, 5726, 5800, 5805, 5813, 5818, 5823, 5828, 5833, - 5846, 5851, 5856, 5865, 5887, 5892, 5864, 5909, 5927, 5932, - 5926, 5955, 5954, 5976, 5983, 5997, 6003, 6010, 6029, 6046, - 6053, 6063, 6074, 6098, 6105, 6116, 6121, 6126, 6147, 6152, - 6115, 6167, 6173, 6180, 6187, 6192, 6199, 6198, 6207, 6206, - 6217, 6222, 6276, 6281, 6335, 6336, 6340, 6398, 6459, 6519, - 6582, 6593, 6597, 6601, 6605, 6609, 6610, 6615, 6614, 6625, - 6624, 6635, 6634, 6645, 6644, 6655, 6654, 6671, 6672, 6676 + 0, 365, 365, 368, 369, 374, 373, 384, 383, 394, + 393, 404, 403, 414, 413, 424, 423, 434, 433, 444, + 443, 454, 453, 464, 463, 474, 473, 484, 483, 494, + 493, 504, 503, 514, 513, 527, 532, 558, 563, 526, + 579, 580, 585, 624, 629, 584, 647, 646, 660, 698, + 729, 763, 762, 774, 781, 782, 783, 784, 788, 799, + 804, 848, 853, 803, 882, 921, 926, 880, 945, 943, + 983, 982, 996, 1002, 1009, 1016, 1023, 1049, 1076, 1141, + 1142, 1146, 1147, 1148, 1153, 1159, 1168, 1169, 1174, 1173, + 1184, 1183, 1194, 1193, 1204, 1203, 1214, 1213, 1224, 1223, + 1234, 1233, 1244, 1243, 1257, 1270, 1268, 1298, 1305, 1316, + 1315, 1343, 1341, 1368, 1380, 1426, 1454, 1485, 1490, 1495, + 1500, 1484, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1571, + 1576, 1651, 1653, 1655, 1656, 1670, 1671, 1685, 1686, 1699, + 1700, 1710, 1723, 1724, 1734, 1747, 1748, 1758, 1768, 1781, + 1782, 1792, 1802, 1815, 1850, 1851, 1860, 1865, 1872, 1880, + 1885, 1890, 1896, 1901, 1906, 1914, 1986, 1985, 1995, 2000, + 2005, 2010, 2037, 2046, 2045, 2116, 2117, 2121, 2129, 2130, + 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2169, 2170, + 2171, 2175, 2176, 2177, 2181, 2182, 2186, 2199, 2197, 2227, + 2234, 2235, 2239, 2252, 2250, 2280, 2287, 2304, 2323, 2324, + 2328, 2333, 2338, 2346, 2351, 2356, 2364, 2369, 2374, 2382, + 2396, 2401, 2409, 2417, 2425, 2433, 2442, 2441, 2457, 2491, + 2496, 2456, 2515, 2518, 2519, 2523, 2523, 2533, 2538, 2532, + 2601, 2600, 2615, 2614, 2629, 2634, 2639, 2644, 2691, 2696, + 2628, 2720, 2728, 2742, 2752, 2760, 2761, 2869, 2872, 2873, + 2878, 2883, 2877, 2919, 2918, 2932, 2943, 2965, 2973, 2972, + 2988, 2993, 2987, 3010, 3009, 3062, 3086, 3111, 3116, 3149, + 3154, 3110, 3180, 3185, 3183, 3190, 3194, 3231, 3236, 3229, + 3303, 3358, 3368, 3357, 3383, 3388, 3381, 3429, 3455, 3465, + 3470, 3463, 3500, 3525, 3534, 3533, 3569, 3580, 3602, 3610, + 3615, 3609, 3652, 3653, 3658, 3663, 3668, 3673, 3657, 3742, + 3747, 3752, 3757, 3741, 3835, 3840, 3870, 3875, 3834, 3893, + 3898, 3951, 3956, 3891, 3993, 3999, 4006, 4013, 4014, 4026, + 4032, 4074, 4025, 4096, 4095, 4106, 4105, 4118, 4123, 4121, + 4128, 4133, 4138, 4132, 4179, 4178, 4189, 4188, 4201, 4206, + 4204, 4211, 4216, 4221, 4215, 4268, 4276, 4277, 4278, 4366, + 4371, 4376, 4385, 4390, 4384, 4402, 4410, 4415, 4409, 4427, + 4435, 4440, 4434, 4452, 4460, 4465, 4459, 4477, 4484, 4497, + 4495, 4523, 4530, 4559, 4597, 4598, 4602, 4632, 4672, 4677, + 4631, 4696, 4701, 4694, 4743, 4742, 4753, 4760, 4761, 4766, + 4765, 4776, 4775, 4786, 4785, 4796, 4795, 4806, 4805, 4816, + 4815, 4826, 4825, 4837, 4896, 4903, 4927, 5001, 5011, 5017, + 5023, 5070, 5117, 5166, 5165, 5215, 5220, 5225, 5230, 5235, + 5240, 5214, 5294, 5293, 5304, 5311, 5318, 5326, 5331, 5325, + 5343, 5344, 5348, 5350, 5349, 5360, 5359, 5374, 5410, 5372, + 5444, 5480, 5442, 5512, 5513, 5514, 5518, 5519, 5523, 5551, + 5582, 5627, 5632, 5580, 5649, 5659, 5678, 5690, 5689, 5729, + 5779, 5784, 5727, 5801, 5806, 5814, 5819, 5824, 5829, 5834, + 5847, 5852, 5857, 5866, 5888, 5893, 5865, 5910, 5928, 5933, + 5927, 5956, 5955, 5977, 5984, 5998, 6004, 6011, 6030, 6047, + 6054, 6064, 6075, 6099, 6106, 6117, 6122, 6127, 6148, 6153, + 6116, 6168, 6174, 6181, 6188, 6193, 6200, 6199, 6208, 6207, + 6218, 6223, 6277, 6282, 6336, 6337, 6341, 6399, 6460, 6520, + 6583, 6594, 6599, 6604, 6609, 6598, 6667, 6672, 6666, 6687, + 6691, 6692, 6697, 6696, 6707, 6706, 6717, 6716, 6727, 6726, + 6737, 6736, 6753, 6754, 6758 }; #endif @@ -1028,9 +1032,10 @@ static const char *const tao_yytname[] = "at_least_one_port_export", "port_exports", "port_export", "@175", "@176", "extended_provides_decl", "extended_uses_decl", "extended_port_decl", "template_port_decl", "non_template_port_decl", - "template_inst", "connector_decl", "connector_header", "connector_body", + "template_inst", "connector_decl", "connector_header", "@177", "@178", + "@179", "connector_body", "@180", "@181", "at_least_one_connector_export", "connector_exports", "connector_export", - "@177", "@178", "@179", "@180", "@181", "template_extended_port_decl", + "@182", "@183", "@184", "@185", "@186", "template_extended_port_decl", "template_ref_decl", 0 }; #endif @@ -1111,8 +1116,9 @@ static const tao_yytype_uint16 tao_yyr1[] = 447, 448, 449, 449, 450, 452, 453, 454, 455, 456, 451, 457, 457, 458, 459, 459, 461, 460, 462, 460, 463, 463, 464, 464, 465, 465, 466, 466, 467, 467, - 468, 469, 470, 471, 472, 473, 473, 475, 474, 476, - 474, 477, 474, 478, 474, 479, 474, 480, 480, 481 + 468, 469, 471, 472, 473, 470, 475, 476, 474, 477, + 478, 478, 480, 479, 481, 479, 482, 479, 483, 479, + 484, 479, 485, 485, 486 }; /* TAO_YYR2[TAO_YYN] -- Number of symbols composing right hand side of rule TAO_YYN. */ @@ -1172,8 +1178,9 @@ static const tao_yytype_uint8 tao_yyr2[] = 4, 2, 3, 0, 1, 0, 0, 0, 0, 0, 11, 1, 0, 2, 2, 0, 0, 3, 0, 3, 1, 3, 1, 3, 1, 1, 3, 3, 3, 3, - 4, 2, 4, 3, 2, 2, 0, 0, 3, 0, - 3, 0, 3, 0, 3, 0, 3, 2, 2, 2 + 4, 2, 0, 0, 0, 7, 0, 0, 5, 2, + 2, 0, 0, 3, 0, 3, 0, 3, 0, 3, + 0, 3, 2, 2, 2 }; /* TAO_YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1183,7 +1190,7 @@ static const tao_yytype_uint16 tao_yydefact[] = { 4, 0, 0, 1, 33, 117, 35, 46, 166, 226, 242, 277, 324, 0, 0, 0, 0, 70, 0, 0, - 435, 0, 0, 515, 0, 3, 19, 15, 40, 53, + 435, 0, 0, 515, 542, 3, 19, 15, 40, 53, 42, 21, 54, 59, 55, 60, 53, 56, 57, 41, 11, 5, 172, 228, 168, 276, 169, 194, 195, 170, 13, 7, 9, 23, 395, 394, 397, 25, 433, 27, @@ -1191,77 +1198,78 @@ static const tao_yytype_uint16 tao_yydefact[] = 493, 29, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 206, 171, 53, 0, 53, 64, 53, 0, 58, 53, 0, 401, 476, 0, 109, 0, - 108, 0, 0, 522, 0, 0, 73, 498, 48, 506, + 108, 0, 0, 0, 0, 0, 73, 498, 48, 506, 0, 0, 0, 210, 212, 0, 216, 217, 220, 221, 222, 223, 219, 224, 225, 291, 298, 303, 68, 179, 78, 175, 177, 178, 176, 180, 208, 209, 181, 185, 182, 184, 183, 186, 187, 228, 191, 0, 192, 193, 188, 0, 189, 297, 190, 302, 0, 0, 0, 244, 0, 0, 0, 0, 0, 0, 0, 0, 477, 470, - 479, 0, 0, 0, 0, 0, 541, 34, 130, 118, + 479, 0, 0, 0, 0, 546, 541, 34, 130, 118, 122, 126, 127, 123, 124, 125, 128, 129, 36, 47, 167, 173, 227, 243, 278, 325, 49, 474, 50, 0, - 475, 71, 406, 436, 0, 392, 111, 393, 516, 521, - 406, 20, 16, 72, 51, 0, 0, 497, 43, 22, - 61, 211, 218, 213, 215, 0, 75, 287, 290, 294, - 299, 12, 6, 229, 0, 14, 8, 10, 24, 398, - 26, 447, 434, 28, 75, 0, 0, 18, 494, 30, - 32, 314, 319, 0, 429, 0, 0, 551, 312, 313, - 547, 549, 0, 553, 0, 546, 555, 0, 0, 0, - 0, 0, 65, 404, 402, 444, 110, 0, 522, 542, - 0, 491, 489, 486, 490, 492, 487, 485, 488, 0, - 503, 0, 505, 509, 87, 80, 214, 292, 0, 69, - 0, 0, 0, 235, 245, 408, 451, 478, 471, 480, - 87, 0, 0, 425, 424, 0, 428, 427, 0, 0, - 557, 0, 558, 0, 0, 0, 0, 0, 543, 544, - 0, 119, 37, 206, 174, 199, 200, 201, 207, 279, - 326, 87, 0, 75, 442, 437, 112, 517, 52, 107, - 504, 499, 0, 507, 0, 0, 0, 74, 156, 157, - 158, 160, 162, 163, 164, 161, 159, 0, 0, 0, - 0, 153, 165, 132, 133, 135, 137, 139, 142, 145, - 149, 154, 288, 295, 300, 230, 234, 0, 0, 399, - 0, 87, 80, 0, 315, 368, 365, 366, 367, 320, - 423, 538, 559, 539, 552, 548, 550, 426, 554, 545, - 556, 0, 4, 0, 196, 0, 234, 0, 405, 403, - 0, 75, 0, 104, 501, 0, 514, 0, 513, 0, - 102, 334, 335, 0, 86, 94, 88, 98, 96, 100, - 0, 90, 92, 339, 0, 0, 0, 79, 81, 82, - 0, 293, 150, 151, 152, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 235, 240, 237, 236, 210, 256, 251, 252, 253, 254, - 246, 255, 0, 0, 0, 0, 0, 419, 0, 407, - 409, 411, 413, 415, 417, 421, 534, 535, 0, 0, - 452, 0, 450, 453, 455, 0, 0, 0, 0, 0, - 120, 0, 309, 305, 308, 197, 286, 280, 285, 235, - 0, 443, 438, 518, 105, 0, 500, 510, 511, 508, - 0, 45, 0, 0, 0, 0, 0, 338, 329, 337, - 0, 0, 0, 85, 84, 63, 83, 155, 134, 136, - 138, 140, 141, 143, 144, 146, 147, 148, 289, 296, - 301, 231, 233, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 400, 0, 0, 0, 0, 0, - 0, 457, 460, 449, 0, 0, 0, 0, 496, 316, - 321, 205, 0, 0, 0, 306, 0, 0, 282, 0, - 67, 0, 0, 0, 502, 0, 103, 95, 89, 99, - 97, 101, 0, 91, 93, 340, 241, 238, 247, 432, - 430, 431, 0, 536, 537, 420, 410, 412, 414, 416, - 418, 422, 0, 0, 454, 456, 473, 482, 0, 379, - 202, 121, 131, 39, 310, 307, 198, 281, 283, 328, - 439, 0, 530, 532, 0, 519, 525, 526, 528, 106, - 512, 330, 0, 0, 0, 0, 343, 458, 461, 317, - 376, 322, 203, 0, 0, 0, 424, 0, 0, 0, - 523, 0, 0, 0, 341, 239, 248, 540, 0, 0, - 375, 375, 375, 0, 383, 0, 311, 284, 440, 531, - 533, 520, 524, 527, 529, 356, 331, 375, 0, 344, - 351, 0, 350, 372, 459, 462, 318, 377, 380, 323, - 204, 446, 0, 0, 375, 342, 263, 270, 268, 249, - 259, 260, 267, 0, 346, 347, 0, 0, 0, 0, - 441, 355, 369, 370, 371, 0, 361, 362, 332, 0, - 0, 0, 0, 0, 0, 265, 352, 348, 373, 0, - 381, 445, 357, 358, 0, 387, 264, 271, 269, 250, - 258, 273, 261, 266, 0, 0, 0, 378, 0, 359, - 363, 384, 333, 0, 0, 0, 353, 349, 0, 0, - 0, 0, 0, 272, 274, 262, 374, 382, 360, 364, - 385, 0, 391, 0, 388, 386, 389, 0, 390 + 475, 71, 406, 436, 0, 392, 111, 393, 516, 543, + 20, 16, 72, 51, 0, 0, 497, 43, 22, 61, + 211, 218, 213, 215, 0, 75, 287, 290, 294, 299, + 12, 6, 229, 0, 14, 8, 10, 24, 398, 26, + 447, 434, 28, 75, 0, 0, 18, 494, 30, 32, + 0, 0, 0, 0, 0, 0, 65, 404, 402, 444, + 110, 0, 522, 522, 0, 491, 489, 486, 490, 492, + 487, 485, 488, 0, 503, 0, 505, 509, 87, 80, + 214, 292, 0, 69, 0, 0, 0, 235, 245, 408, + 451, 478, 471, 480, 87, 314, 319, 0, 429, 0, + 0, 556, 312, 313, 552, 554, 0, 558, 547, 551, + 560, 119, 37, 206, 174, 199, 200, 201, 207, 279, + 326, 87, 0, 75, 442, 437, 112, 521, 517, 544, + 52, 107, 504, 499, 0, 507, 0, 0, 0, 74, + 156, 157, 158, 160, 162, 163, 164, 161, 159, 0, + 0, 0, 0, 153, 165, 132, 133, 135, 137, 139, + 142, 145, 149, 154, 288, 295, 300, 230, 234, 0, + 0, 399, 0, 87, 80, 0, 0, 0, 425, 424, + 0, 428, 427, 0, 0, 562, 0, 563, 0, 0, + 0, 0, 0, 0, 549, 0, 0, 4, 0, 196, + 0, 234, 0, 405, 403, 0, 75, 0, 406, 104, + 501, 0, 514, 0, 513, 0, 102, 334, 335, 0, + 86, 94, 88, 98, 96, 100, 0, 90, 92, 339, + 0, 0, 0, 79, 81, 82, 0, 293, 150, 151, + 152, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 240, 237, 236, + 210, 256, 251, 252, 253, 254, 246, 255, 0, 0, + 0, 0, 0, 419, 0, 407, 409, 411, 413, 415, + 417, 421, 534, 535, 0, 0, 452, 0, 450, 453, + 455, 0, 0, 0, 315, 368, 365, 366, 367, 320, + 423, 538, 564, 539, 557, 553, 555, 426, 559, 548, + 550, 561, 120, 0, 309, 305, 308, 197, 286, 280, + 285, 235, 0, 443, 438, 518, 545, 105, 0, 500, + 510, 511, 508, 0, 45, 0, 0, 0, 0, 0, + 338, 329, 337, 0, 0, 0, 85, 84, 63, 83, + 155, 134, 136, 138, 140, 141, 143, 144, 146, 147, + 148, 289, 296, 301, 231, 233, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 400, 0, 0, + 0, 0, 0, 0, 457, 460, 449, 0, 0, 0, + 0, 496, 0, 0, 0, 0, 0, 306, 0, 0, + 282, 0, 67, 0, 0, 0, 502, 0, 103, 95, + 89, 99, 97, 101, 0, 91, 93, 340, 241, 238, + 247, 432, 430, 431, 0, 536, 537, 420, 410, 412, + 414, 416, 418, 422, 0, 0, 454, 456, 473, 482, + 316, 321, 205, 121, 131, 39, 310, 307, 198, 281, + 283, 328, 439, 0, 530, 532, 0, 519, 525, 526, + 528, 106, 512, 330, 0, 0, 0, 0, 343, 458, + 461, 0, 379, 202, 0, 0, 0, 424, 0, 0, + 0, 523, 0, 0, 0, 341, 239, 248, 540, 0, + 0, 375, 375, 317, 376, 322, 203, 311, 284, 440, + 531, 533, 520, 524, 527, 529, 356, 331, 375, 0, + 344, 351, 0, 350, 372, 459, 462, 375, 0, 383, + 0, 446, 0, 0, 375, 342, 263, 270, 268, 249, + 259, 260, 267, 0, 346, 347, 0, 318, 377, 380, + 323, 204, 0, 441, 355, 369, 370, 371, 0, 361, + 362, 332, 0, 0, 0, 0, 0, 0, 265, 352, + 348, 373, 0, 0, 445, 357, 358, 0, 387, 264, + 271, 269, 250, 258, 273, 261, 266, 0, 0, 0, + 0, 381, 359, 363, 384, 333, 0, 0, 0, 353, + 349, 0, 378, 0, 0, 0, 0, 272, 274, 262, + 374, 0, 360, 364, 385, 382, 0, 391, 0, 388, + 386, 389, 0, 390 }; /* TAO_YYDEFGOTO[NTERM-NUM]. */ @@ -1269,173 +1277,174 @@ static const tao_yytype_int16 tao_yydefgoto[] = { -1, 1, 2, 25, 157, 161, 162, 156, 160, 105, 171, 104, 111, 163, 165, 167, 173, 174, 74, 26, - 76, 268, 412, 593, 27, 28, 110, 294, 433, 29, - 77, 30, 128, 280, 31, 32, 33, 112, 295, 446, - 34, 199, 341, 520, 35, 226, 36, 94, 214, 299, - 37, 38, 355, 447, 448, 354, 434, 533, 540, 541, - 532, 535, 534, 536, 530, 348, 423, 603, 371, 204, - 277, 100, 39, 435, 75, 267, 411, 592, 179, 641, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 436, 78, 190, 269, 472, 131, 132, 133, 134, - 42, 334, 414, 596, 335, 590, 640, 695, 336, 337, + 76, 252, 397, 595, 27, 28, 110, 278, 419, 29, + 77, 30, 128, 264, 31, 32, 33, 112, 279, 432, + 34, 199, 321, 522, 35, 225, 36, 94, 213, 283, + 37, 38, 337, 433, 434, 336, 420, 536, 543, 544, + 535, 538, 537, 539, 533, 330, 409, 605, 353, 204, + 261, 100, 39, 421, 75, 251, 396, 594, 179, 643, + 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 422, 78, 190, 253, 458, 131, 132, 133, 134, + 42, 314, 399, 598, 315, 641, 673, 720, 316, 317, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 43, 79, 44, 158, 303, 469, 385, 470, 562, 387, - 473, 564, 663, 563, 45, 80, 46, 234, 388, 565, - 664, 708, 752, 480, 729, 753, 730, 754, 785, 749, - 731, 755, 732, 751, 750, 783, 772, 784, 47, 48, - 49, 81, 270, 415, 597, 517, 598, 674, 518, 150, - 300, 466, 151, 225, 356, 152, 301, 467, 153, 154, - 302, 468, 155, 338, 413, 513, 595, 514, 594, 673, - 437, 258, 311, 508, 638, 692, 259, 312, 509, 639, - 694, 438, 82, 271, 416, 599, 439, 612, 683, 724, - 765, 440, 538, 450, 542, 662, 707, 667, 688, 689, - 711, 735, 775, 712, 733, 774, 706, 722, 723, 745, - 763, 790, 746, 764, 791, 399, 747, 714, 736, 776, - 671, 693, 737, 719, 738, 778, 782, 792, 801, 803, - 804, 807, 441, 442, 53, 54, 55, 164, 305, 488, - 56, 202, 343, 274, 342, 389, 489, 575, 576, 577, - 578, 579, 573, 580, 260, 315, 261, 262, 317, 492, - 493, 494, 57, 166, 58, 97, 275, 421, 601, 675, - 721, 345, 420, 740, 242, 306, 501, 390, 502, 584, - 585, 503, 632, 690, 504, 633, 691, 59, 60, 61, - 62, 63, 245, 391, 586, 64, 65, 66, 169, 244, - 67, 246, 392, 587, 68, 289, 69, 172, 310, 507, - 70, 209, 215, 425, 351, 525, 290, 217, 292, 353, - 319, 427, 528, 428, 71, 102, 278, 422, 602, 679, - 210, 655, 680, 656, 681, 682, 657, 658, 495, 496, - 263, 570, 72, 73, 176, 264, 329, 265, 324, 325, - 323, 327, 330, 266, 320 + 43, 79, 44, 158, 287, 455, 367, 456, 565, 369, + 459, 567, 665, 566, 45, 80, 46, 233, 370, 568, + 666, 709, 755, 466, 729, 756, 730, 757, 788, 752, + 731, 758, 732, 754, 753, 786, 775, 787, 47, 48, + 49, 81, 254, 400, 599, 519, 600, 675, 520, 150, + 284, 452, 151, 224, 338, 152, 285, 453, 153, 154, + 286, 454, 155, 318, 398, 515, 597, 516, 596, 674, + 423, 302, 376, 592, 671, 717, 303, 377, 593, 672, + 719, 424, 82, 255, 401, 601, 425, 614, 684, 724, + 768, 426, 541, 436, 545, 664, 708, 669, 689, 690, + 712, 735, 778, 713, 733, 777, 707, 722, 723, 748, + 766, 794, 749, 767, 795, 499, 750, 715, 736, 779, + 695, 718, 762, 740, 763, 793, 785, 796, 806, 808, + 809, 812, 427, 428, 53, 54, 55, 164, 289, 474, + 56, 202, 323, 258, 322, 371, 475, 578, 579, 580, + 581, 582, 576, 583, 304, 380, 305, 306, 382, 478, + 479, 480, 57, 166, 58, 97, 259, 406, 603, 676, + 721, 325, 405, 743, 241, 290, 487, 372, 488, 587, + 588, 489, 634, 691, 490, 635, 692, 59, 60, 61, + 62, 63, 244, 373, 589, 64, 65, 66, 169, 243, + 67, 245, 374, 590, 68, 273, 69, 172, 294, 493, + 70, 327, 214, 411, 333, 528, 274, 216, 276, 335, + 384, 413, 531, 414, 71, 102, 262, 407, 604, 680, + 328, 657, 681, 658, 682, 683, 659, 660, 481, 482, + 307, 573, 72, 73, 103, 263, 408, 176, 250, 393, + 308, 394, 309, 389, 390, 388, 392, 395, 310, 385 }; /* TAO_YYPACT[STATE-NUM] -- Index in TAO_YYTABLE of the portion describing STATE-NUM. */ -#define TAO_YYPACT_NINF -645 +#define TAO_YYPACT_NINF -636 static const tao_yytype_int16 tao_yypact[] = { - -645, 45, 1192, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, 67, 70, 109, 114, -645, 67, 67, - -645, 39, 39, -645, 103, -645, -645, -645, -645, 136, - -645, -645, -645, -645, -645, -645, 84, -645, -645, -645, - -645, -645, -645, 28, -645, 94, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, 55, -645, -645, -645, 55, -645, - -645, -645, -645, 79, 89, 467, 179, 67, 521, 67, - 67, 67, 67, -645, -645, -645, 48, 67, 143, -645, - 155, 67, -645, 55, 67, 124, 153, 67, -645, 102, - -645, 137, 185, 149, 172, 186, 244, -645, -645, 216, - 221, 223, 224, 249, -645, 46, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, 229, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, 94, -645, -645, - -645, -28, -645, 208, -645, 210, 231, 232, 228, -645, - 235, 236, 239, 241, 242, 245, 243, 246, -645, -645, - -645, 248, 255, 250, 257, 99, -645, -645, 229, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, 259, -645, 261, - -645, -645, 230, -645, 67, -645, -645, -645, -645, -645, - 230, -645, -645, -645, -645, 206, 39, -645, -645, -645, - -645, -645, -645, 320, -645, 253, 286, -645, -645, -645, - -645, -645, -645, -645, 234, -645, -645, -645, -645, -645, - -645, -645, -645, -645, 286, 262, 263, -645, -645, -645, - -645, -645, -645, 58, 288, 39, 39, -645, -645, -645, - -645, -645, 58, -645, 264, -645, -645, 67, 267, 67, - 274, 276, -645, -645, -645, 270, -645, 67, 149, -645, - 39, -645, -645, -645, -645, -645, -645, -645, -645, 348, - -645, 9, -645, -645, -645, -645, -645, -645, 39, -645, - 76, 76, 76, -645, -645, -645, -645, -645, -645, -645, - -645, 333, 636, -645, 229, 67, -645, -645, 31, 362, - -645, 36, -645, 281, 285, 290, 67, 305, -645, 99, - 310, -645, -645, 269, -645, -645, -645, -645, -645, -645, - -645, -645, 39, 286, -645, -645, -645, -645, -645, 229, - -645, 307, 395, 309, 936, 555, 272, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, 47, 47, 47, - 76, 229, -645, 308, 312, 313, 6, 51, 168, -645, - -645, -645, -645, -645, -645, -645, -645, 369, 171, 561, - 854, -645, -645, 971, -645, 229, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, 311, -645, 298, 316, 405, -645, 1053, 229, -645, - 39, 286, 322, 321, -645, 324, -645, 325, -645, 39, - -645, -645, -645, 326, -645, -645, -645, -645, -645, -645, - 190, -645, -645, -645, 369, 369, 341, -645, -645, -645, - 344, -645, -645, -645, -645, 329, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 330, 331, 332, 349, - 350, -645, -645, -645, 424, 229, -645, -645, -645, -645, - -645, -645, 39, 39, 39, 39, 39, -645, 351, -645, - -645, -645, -645, -645, -645, -645, -645, -645, 67, 67, - -645, 352, -645, -645, -645, 1088, 772, 356, 636, 67, - -645, 1138, -645, -645, -645, -645, -645, -645, -645, 357, - 358, 229, -645, -645, -645, 206, -645, -645, 346, -645, - 361, -645, 363, 365, 366, 367, 368, -645, -645, -645, - 370, 372, 445, -645, -645, -645, -645, -645, 312, 313, - 6, 51, 51, 168, 168, -645, -645, -645, -645, -645, - -645, -645, -645, 375, 67, 353, 62, 62, 62, 37, - 459, 38, 465, 383, -645, 385, 386, 388, 401, 402, - 404, -645, -645, -645, 408, 409, 403, 411, -645, -645, - -645, -645, 76, 413, 76, 298, 67, 414, 407, 415, - -645, 438, 173, 39, -645, 395, -645, -645, -645, -645, - -645, -645, 502, -645, -645, -645, -645, -645, -645, -645, - -645, -645, 39, -645, -645, -645, -645, -645, -645, -645, - -645, -645, 406, 406, -645, -645, -645, -645, 67, 451, - 419, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, 58, -645, -645, 58, -645, -645, -645, -645, 229, - -645, -645, 406, 425, 423, 410, 477, -645, -645, -645, - -645, -645, -645, 412, 405, 39, 9, 511, 512, 428, - 173, 431, 433, 420, -645, -645, -645, -645, 418, 491, - 505, 505, 505, 448, 488, 67, -645, -645, 229, -645, - -645, -645, -645, -645, -645, 450, -645, 505, 43, -645, - -645, 455, -645, -645, -645, -645, -645, -645, -645, -645, - -645, 501, 475, 233, 505, -645, -645, -645, -645, -645, - -645, -645, -645, 636, -645, 471, 478, 39, 489, 39, - -645, -645, -645, -645, -645, 492, -645, -645, -645, 507, - 76, 508, 510, 57, 521, 167, -645, -645, -645, 494, - -645, 229, -645, 514, 636, 566, -645, -645, -645, -645, - -645, -645, -645, -645, 67, 491, 39, -645, 39, -645, - -645, -645, -645, 517, 67, 522, -645, -645, 509, 513, - 233, 67, 506, -645, -645, -645, -645, -645, -645, -645, - -645, 533, -645, 515, 520, -645, -645, 538, -645 + -636, 77, 1164, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, 44, 65, 125, 147, -636, 44, 44, + -636, 51, 51, -636, -636, -636, -636, -636, -636, -24, + -636, -636, -636, -636, -636, -636, 84, -636, -636, -636, + -636, -636, -636, 50, -636, 149, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, 58, -636, -636, -636, 58, -636, + -636, -636, -636, 89, 97, 343, 166, 44, 1111, 44, + 44, 44, 44, -636, -636, -636, 66, 44, 112, -636, + 113, 44, -636, 58, 44, 131, 146, 44, -636, 30, + -636, 67, 230, 244, 179, 180, 204, -636, -636, 183, + 181, 187, 182, 195, -636, 82, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, 201, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, 149, -636, -636, + -636, 87, -636, 190, -636, 191, 197, 198, 200, -636, + 205, 210, 213, 215, 216, 218, 219, 225, -636, -636, + -636, 227, 221, 229, 232, -636, -636, -636, 201, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, 235, -636, 236, + -636, -636, 211, -636, 44, -636, -636, -636, -636, -636, + -636, -636, -636, -636, 222, 51, -636, -636, -636, -636, + -636, -636, 268, -636, 220, 258, -636, -636, -636, -636, + -636, -636, -636, 226, -636, -636, -636, -636, -636, -636, + -636, -636, -636, 258, 239, 241, -636, -636, -636, -636, + 228, 44, 242, 44, 246, 254, -636, -636, -636, 233, + -636, 44, 243, 243, 51, -636, -636, -636, -636, -636, + -636, -636, -636, 328, -636, -21, -636, -636, -636, -636, + -636, -636, 51, -636, 49, 49, 49, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, 39, 285, 51, + 51, -636, -636, -636, -636, -636, 39, -636, -636, -636, + -636, -636, -636, 240, -636, -636, -636, -636, -636, -636, + -636, -636, 51, 258, -636, -636, -636, -636, -636, -636, + -636, 201, -636, 259, 359, 275, 483, 610, 450, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, 83, + 83, 83, 49, 201, -636, 274, 278, 279, 71, -40, + 111, -636, -636, -636, -636, -636, -636, -636, -636, 580, + 172, 361, 879, -636, -636, 961, 341, 1135, -636, 201, + 44, -636, -636, 35, 371, -636, 36, -636, 289, 290, + 295, 44, 296, 297, 228, 298, 292, -636, 281, 299, + 385, -636, 996, 201, -636, 51, 258, 303, 211, 304, + -636, 305, -636, 306, -636, 51, -636, -636, -636, 311, + -636, -636, -636, -636, -636, -636, 837, -636, -636, -636, + 580, 580, 312, -636, -636, -636, 307, -636, -636, -636, + -636, 308, 49, 49, 49, 49, 49, 49, 49, 49, + 49, 49, 313, 314, 315, 319, 326, -636, -636, -636, + 412, 201, -636, -636, -636, -636, -636, -636, 51, 51, + 51, 51, 51, -636, 335, -636, -636, -636, -636, -636, + -636, -636, -636, -636, 44, 44, -636, 339, -636, -636, + -636, 1078, 797, 340, -636, 201, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, 214, -636, -636, -636, -636, -636, -636, + -636, 344, 345, 201, -636, -636, -636, -636, 222, -636, + -636, 347, -636, 348, -636, 349, 352, 353, 356, 357, + -636, -636, -636, 358, 360, 426, -636, -636, -636, -636, + -636, 278, 279, 71, -40, -40, 111, 111, -636, -636, + -636, -636, -636, -636, -636, -636, 362, 44, 350, 56, + 56, 56, 37, 442, 38, 444, 363, -636, 364, 365, + 369, 370, 384, 387, -636, -636, -636, 391, 397, 401, + 419, -636, 1135, 44, 49, 423, 49, 281, 44, 424, + 395, 430, -636, 454, 86, 51, -636, 359, -636, -636, + -636, -636, -636, -636, 518, -636, -636, -636, -636, -636, + -636, -636, -636, -636, 51, -636, -636, -636, -636, -636, + -636, -636, -636, -636, 421, 421, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, 39, -636, -636, 39, -636, -636, -636, + -636, 201, -636, -636, 421, 446, 447, 432, 498, -636, + -636, 44, 481, 448, 431, 385, 51, -21, 536, 537, + 453, 86, 456, 457, 443, -636, -636, -636, -636, 449, + 510, 511, 511, -636, -636, -636, -636, -636, -636, 201, + -636, -636, -636, -636, -636, -636, 451, -636, 511, 165, + -636, -636, 458, -636, -636, -636, -636, 511, 460, 486, + 44, 491, 461, 208, 511, -636, -636, -636, -636, -636, + -636, -636, -636, 1135, -636, 462, 464, -636, -636, -636, + -636, -636, 51, -636, -636, -636, -636, -636, 465, -636, + -636, -636, 469, 49, 470, 474, 47, 1111, 93, -636, + -636, -636, 51, 467, 201, -636, 476, 1135, 530, -636, + -636, -636, -636, -636, -636, -636, -636, 44, 510, 51, + 468, -636, -636, -636, -636, -636, 484, 44, 488, -636, + -636, 473, -636, 51, 208, 44, 471, -636, -636, -636, + -636, 475, -636, -636, -636, -636, 500, -636, 477, 492, + -636, -636, 502, -636 }; /* TAO_YYPGOTO[NTERM-NUM]. */ static const tao_yytype_int16 tao_yypgoto[] = { - -645, -645, 204, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, 205, - -645, -645, 163, -645, -645, -645, 604, -645, -645, -645, - -645, -645, -645, -645, 608, -645, 247, -645, -645, -207, - -645, -645, 237, -645, -645, -258, -317, -645, -645, -645, - -645, -645, -645, -645, -645, -278, -645, -645, -19, -645, - -645, -13, -645, 11, -645, -645, -645, -645, -645, -645, - -346, -645, 177, 170, 166, -165, -158, -187, -68, -645, - -270, 12, -645, -645, -645, -35, 278, -291, -645, -645, - -645, 64, -645, -645, -563, 0, -645, -645, -1, -645, - -50, -645, -645, 565, 567, -49, -48, -47, -645, -645, - -29, -645, -27, -645, -645, -645, -645, 225, 354, -645, - -138, -645, -645, -645, -25, -645, -21, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -95, -645, -645, -645, - -645, -645, -96, -645, -645, -645, -645, -645, -645, -645, - -32, -645, -645, -645, -645, -645, -645, -645, -14, -645, - -645, -645, -645, -645, -645, -67, -645, -645, -645, -65, - -645, -645, -645, -645, -645, -645, -645, 68, -645, -645, - -139, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, 14, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -551, -645, -645, - -645, -645, -645, -111, -645, -645, -645, -645, -645, -645, - -645, -645, -125, -645, -645, -417, -645, -644, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, 16, 17, -645, -645, -645, -645, -645, -645, - -645, -645, -645, 457, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -360, -232, -354, -542, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, -645, -645, -645, -645, -645, -645, -645, 601, -645, - -645, -645, -645, -645, -645, -645, -645, -645, -645, -645, - -645, 641, -645, -645, -645, -645, 146, -645, -645, -645, - -194, -645, -645, 69, -645, -645, -645, -645, -645, -645, - 394, -645, -645, -7, -645, -645, -645, -645, -645, -645, - 287, 189, -645, -645, -645, -645, -645, 355, -645, -645, - -645, -645, -645, -645, 421 + -636, -636, 212, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, 98, + -636, -636, 143, -636, -636, -636, 570, -636, -636, -636, + -636, -636, -636, -636, 572, -636, 189, -636, -636, -209, + -636, -636, 234, -636, -636, -258, -300, -636, -636, -636, + -636, -636, -636, -636, -636, -274, -636, -636, 10, -636, + -636, -13, -636, 11, -636, -636, -636, -636, -636, -636, + -334, -636, 168, 164, 188, -232, -224, -200, -70, -636, + -259, 12, -636, -636, -636, -34, 300, -356, -636, -636, + -636, 45, -636, -636, -565, -55, -636, -636, -9, -636, + -53, -636, -636, 564, 571, -51, -50, -45, -636, -636, + -33, -636, -29, -636, -636, -636, -636, 247, 366, -636, + -204, -636, -636, -636, -27, -636, -25, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -111, -636, -636, -636, + -636, -636, -109, -636, -636, -636, -636, -636, -636, -636, + -35, -636, -636, -636, -636, -636, -636, -636, -28, -636, + -636, -636, -636, -636, -636, -65, -636, -636, -636, -63, + -636, -636, -636, -636, -636, -636, -636, 54, -636, -636, + -215, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, 13, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -585, -636, -636, + -636, -636, -636, -126, -636, -636, -636, -636, -636, -636, + -636, -636, -137, -636, -636, -403, -636, -635, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, 15, 17, -636, -636, -636, -636, -636, -636, + -636, -636, -636, 251, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -343, -286, -342, -543, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, -636, -636, -636, -636, -636, -636, 592, -636, + -636, -636, -636, -636, -636, -636, -636, -636, -636, -636, + -636, 635, -636, -636, -636, -636, 137, -636, -636, -636, + -199, -636, -636, 60, -636, -636, -636, -636, -636, -636, + 406, -636, -636, -10, -636, -636, -636, -636, -636, -636, + 301, 203, -636, -636, -636, -636, -636, -636, -636, -636, + -636, -636, 282, -636, -636, -636, -636, -636, -636, 377 }; /* TAO_YYTABLE[TAO_YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1445,264 +1454,258 @@ static const tao_yytype_int16 tao_yypgoto[] = #define TAO_YYTABLE_NINF -496 static const tao_yytype_int16 tao_yytable[] = { - 84, 130, 99, 101, 149, 95, 96, 145, 186, 146, - 187, 147, 85, 40, 41, 148, 50, 129, 51, 52, - 357, 396, 293, 539, 455, 180, 183, 184, 185, 490, - 326, 383, 384, 646, 401, 491, 257, 307, 449, 403, - 401, 403, 83, 191, 726, 3, 149, 715, 716, 145, - 83, 146, 393, 147, 223, 224, 178, 148, 726, 129, - 654, 83, 227, 725, 189, 83, 192, 193, 194, 195, - 83, 727, 728, 500, 197, 228, 7, 313, 200, 83, - 748, 201, 668, 417, 203, 727, 728, 83, 459, 460, - 206, 589, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 9, 10, 103, 11, 125, 126, - 127, 684, 206, 352, -275, 7, 159, 206, 206, 206, - 98, 358, 359, 360, 361, 362, 363, 364, 98, 251, - 252, 365, 366, 505, -115, 352, 419, 106, 654, 98, - 352, 622, 622, 206, 106, -257, 461, 462, 370, 396, - 358, 359, 360, 361, 362, 363, 364, 98, 17, 253, - 365, 366, 87, 17, 254, 98, 175, 91, 255, 256, - -77, 367, 368, 106, 83, 177, 369, 370, 205, 474, - 114, 115, 188, 206, 118, 119, 120, 121, 208, 449, - 257, 276, 108, 83, 11, 727, 728, 291, 113, 114, + 84, 149, 130, 145, 85, 95, 96, 146, 339, 147, + 186, 148, 187, 40, 41, 50, 277, 51, 441, 52, + 391, 496, 180, 542, 183, 184, 365, 366, 476, 477, + 185, 99, 101, 648, 291, 301, 375, 435, 501, 503, + 501, 503, 83, 149, 191, 145, 129, 83, 726, 146, + 670, 147, 83, 148, 83, 447, 448, 716, 378, 83, + 206, 656, -114, 402, 189, 106, 192, 193, 194, 195, + 496, 7, 486, 725, 197, 727, 728, 3, 200, 685, + 107, 201, 737, 334, 203, 178, 83, 83, 129, 751, + 222, 223, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 9, 10, 205, 11, 125, 126, + 127, 206, 86, 88, 404, 491, 206, 206, 206, 206, + 98, 727, 728, 340, 341, 342, 343, 344, 345, 346, + 98, 7, 98, 347, 348, -257, -275, 206, 656, 334, + 334, 624, 624, 207, 349, 350, 653, 106, 206, 351, + 352, 298, -115, 445, 446, 106, 473, 340, 341, 342, + 343, 344, 345, 346, 98, 98, 726, 347, 348, 188, + -77, 159, 108, 106, 17, 83, 175, 226, 87, 301, + 460, 114, 115, 177, 352, 118, 119, 120, 121, 640, + 227, 260, 435, 727, 728, 11, 17, 524, -116, -76, + 91, 106, 106, 220, 90, 93, 221, 168, 449, 450, + 451, 168, 789, 554, 555, 4, 532, -396, 5, 6, + 7, 8, 798, 556, 557, 275, 546, 547, 265, 196, + 803, 198, -468, 208, 9, 10, 496, 11, 311, 266, + 313, 12, 267, 745, 746, 747, 268, 209, 326, 558, + 559, 560, 212, 98, 13, 14, 15, 16, 295, 296, + 644, 654, 655, 17, 18, 210, 211, 19, 217, 219, + 20, 269, 215, 218, 331, 270, 280, 21, 22, 438, + 439, 440, 206, 230, 231, 23, 24, 232, 297, 271, + 272, 234, 331, 298, 228, 229, 235, 299, 300, 236, + 257, 237, -38, 238, 239, 282, 240, 379, 247, 383, + 386, 242, 497, 246, 498, 248, 379, 462, 249, 463, + 464, -469, 324, 256, 281, 465, 292, 288, 293, 312, + 759, 332, 403, 319, 149, 467, 145, 646, 654, 655, + 146, 320, 147, 381, 148, -304, 83, 107, 129, 410, + 667, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 497, 412, 498, 783, 415, 442, 500, 126, 127, + 391, 443, 494, 444, 502, 504, 505, 496, 507, 129, + 461, 506, 508, 512, 511, 509, 514, 495, 518, 517, + 525, 295, 296, 549, 527, 149, 149, 145, 145, 534, + 548, 146, 146, 147, 147, 148, 148, 564, 529, 530, + 550, 496, 468, 469, -232, 523, 561, 562, 563, 770, + 220, 297, 470, 577, 98, 275, 298, 586, 591, 617, + 471, 472, -327, 602, 608, 609, 495, 607, 610, 611, + 129, 129, 612, 613, 615, 625, 616, 626, 618, 627, + 628, 629, 620, 83, 678, 630, 631, 679, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - -396, 786, 281, 207, 522, 126, 127, 396, 206, 86, - 88, 794, -114, 282, 537, 106, 283, 168, 799, -116, - 284, 168, 106, 651, 314, 529, 318, 321, 254, -468, - 107, -76, 652, 314, 106, 397, 642, 398, 653, 196, - 487, 198, 98, 107, 331, 285, 333, 221, 211, 286, - 222, 349, 90, 93, 346, 463, 464, 465, 742, 743, - 744, 98, 212, 287, 288, 83, 555, 556, 557, 349, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 213, 395, 551, 552, 125, 126, 127, 452, - 453, 454, 400, 553, 554, 216, 543, 544, 218, 219, - 206, 220, 229, 407, 230, 233, 756, 231, 232, 273, - 652, 235, 236, 418, 644, 237, 653, 238, 296, 239, - 241, 240, 243, 298, 247, 304, 249, 129, 476, 477, - 478, 479, 248, 250, 665, -469, 316, 780, 272, 308, - 309, 350, 328, 98, 332, 149, 481, 297, 145, 344, - 146, 339, 147, 340, 394, 402, 148, 404, 129, 475, - 471, 405, 83, 397, -304, 398, 406, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 9, - 10, 408, 11, 125, 126, 127, 410, 424, 426, 429, - 456, 521, 510, 512, 767, 457, 515, 458, 516, 523, - 291, 524, 149, 149, 531, 145, 145, 146, 146, 147, - 147, 395, 326, 148, 148, 129, 129, 526, 527, 545, - 546, 547, 221, 558, 559, 560, 605, 561, -232, 574, - 583, 397, 396, 398, 588, -327, 600, 606, 615, 607, - 98, 608, 609, 610, 611, 618, 613, 677, 614, 759, - 678, 616, 623, 566, 567, 568, 569, 571, 624, 625, - 83, 626, 627, 396, 628, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 581, 582, 629, 630, 395, - 631, 636, 126, 127, 634, 635, 84, 648, 788, 637, - 789, 643, 647, 649, 650, 661, 670, 666, 591, 672, - 686, 685, -345, 687, 699, 700, 701, 703, 696, 704, - 709, 705, 40, 41, 83, 50, 710, 51, 52, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 9, 10, 713, 11, 125, 126, 127, 98, 717, - 718, 333, -354, 619, 620, 621, 430, 734, -336, 5, - 739, 757, 8, -336, -336, -336, -336, -336, -336, -336, - -336, -336, -336, -336, -336, 9, 10, 741, 11, 758, - -336, -336, 12, 333, 659, 251, 252, 431, 432, -336, - 760, 251, 252, 766, 762, 13, 777, 768, 769, 443, - 444, 445, 98, 349, 779, 781, 793, 800, 795, 802, - 806, 796, 482, 483, 808, 797, 511, 805, 21, 22, - 92, 253, 484, 89, 550, 84, 254, 549, 617, 506, - 485, 486, 676, 548, 451, 676, -336, 591, 669, 83, - 181, 519, 182, -62, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 698, 386, 770, 773, - 697, 126, 127, 645, 787, 798, 397, 279, 398, 170, - 109, 604, 347, 702, 660, 572, 497, 322, 0, 0, - 0, 0, 84, 0, 409, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 720, 0, 0, 397, 0, 398, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 395, 0, 0, 98, 349, 771, - 761, 0, 149, 0, 0, 145, 0, 146, 0, 147, - 0, 0, 0, 148, 0, 129, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 395, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 349, 0, 349, - 0, 333, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 333, 0, 430, 0, -336, 5, 0, 333, 8, + 632, 584, 585, 633, 125, 126, 127, 636, 569, 570, + 571, 572, 574, 637, 416, 650, -336, 5, 780, 638, + 8, -336, -336, -336, -336, -336, -336, -336, -336, -336, + -336, -336, -336, 9, 10, 791, 11, 639, -336, -336, + 12, 645, 649, 295, 296, 417, 418, -336, 651, 801, + 652, 663, 668, 13, 40, 41, 50, 497, 51, 498, + 52, 98, 686, -345, 687, 688, 694, 697, 696, 700, + 701, 702, 704, 705, 706, 711, 21, 22, 739, 714, + 742, 710, 760, -354, 313, 769, 621, 622, 623, 771, + 734, 738, 772, 744, -336, 761, 782, 765, 781, 784, + 792, -44, 804, 797, 799, 800, 807, 805, 813, 810, + 84, 457, 811, 83, 642, 313, 92, 89, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 9, 10, 495, 11, 125, 126, 127, 552, 492, 513, + 551, 416, 619, -336, 5, 661, 693, 8, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, - -336, -336, 9, 10, 0, 11, 0, -336, -336, 12, - 0, 0, 251, 252, 431, 432, -336, 0, 0, 0, - 0, 0, 13, 0, 0, 0, 443, 444, 445, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 21, 22, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -336, 0, 430, 0, -336, 5, 0, - -481, 8, -336, -336, -336, -336, -336, -336, -336, -336, - -336, -336, -336, -336, 9, 10, 0, 11, 0, -336, - -336, 12, 0, 0, 251, 252, 431, 432, -336, 0, - 0, 0, 0, 0, 13, 0, 0, 0, 498, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 499, 0, - 0, 0, 0, 0, 0, 0, 0, 21, 22, 0, + 9, 10, 553, 11, 331, -336, -336, 12, 437, 181, + 295, 296, 417, 418, -336, 773, 182, 698, 521, 776, + 13, 647, 790, 368, 429, 430, 431, 802, 84, 526, + 170, 98, 642, 677, 109, 606, 677, 662, 497, 329, + 498, 703, 483, 21, 22, 575, 510, 387, 0, 0, + 0, 0, 0, 0, 0, 0, 699, 0, 0, 0, + 0, -336, 0, 0, 0, 0, 0, 0, -62, 0, + 0, 0, 497, 0, 498, 0, 0, 84, 0, 0, + 0, 741, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 149, 774, 145, 0, 0, 0, 146, 0, + 147, 0, 148, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, + 0, 0, 764, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 313, 0, 0, 129, 0, 0, + 0, 0, 331, 0, 313, 0, 0, 495, 0, 0, + 0, 0, 313, 0, 0, 0, 0, 0, 0, 331, + 0, 0, 0, 0, 0, 0, 0, 0, 416, 0, + -336, 5, 0, 331, 8, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, 9, 10, 0, + 11, 0, -336, -336, 12, 0, 0, 295, 296, 417, + 418, -336, 0, 0, 0, 0, 0, 13, 0, 0, + 83, 429, 430, 431, 0, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 0, 0, 0, + 21, 22, 126, 127, 0, 0, 0, 0, 0, 0, + 0, 540, 0, 0, 0, 0, 0, 0, -336, 0, + 416, 0, -336, 5, 0, -481, 8, -336, -336, -336, + -336, -336, -336, -336, -336, -336, -336, -336, -336, 9, + 10, 0, 11, 0, -336, -336, 12, 0, 0, 295, + 296, 417, 418, -336, 0, 0, 0, 0, 98, 13, + 0, 0, 0, 484, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 485, 0, 0, 0, 0, 0, 0, + 0, 0, 21, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -336, 0, 430, 0, -336, - 5, 0, -448, 8, -336, -336, -336, -336, -336, -336, - -336, -336, -336, -336, -336, -336, 9, 10, 0, 11, - 0, -336, -336, 12, 0, 0, 251, 252, 431, 432, - -336, 0, 430, 0, -336, 5, 13, 0, 8, -336, + -336, 0, 416, 0, -336, 5, 0, -448, 8, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, - -336, 9, 10, 0, 11, 0, -336, -336, 12, 21, - 22, 251, 252, 431, 432, -336, 0, 0, 0, 0, - 0, 13, 0, 0, 0, 0, 0, -336, 0, 0, - 0, 0, 0, 0, -44, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 21, 22, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -336, 0, 430, 0, -336, 5, 0, -495, - 8, -336, -336, -336, -336, -336, -336, -336, -336, -336, - -336, -336, -336, 9, 10, 0, 11, 0, -336, -336, - 12, 0, 0, 251, 252, 431, 432, -336, 0, 430, - 0, -336, 5, 13, 0, 8, -336, -336, -336, -336, + -336, 9, 10, 0, 11, 0, -336, -336, 12, 0, + 0, 295, 296, 417, 418, -336, 0, 416, 0, -336, + 5, 13, 0, 8, -336, -336, -336, -336, -336, -336, + -336, -336, -336, -336, -336, -336, 9, 10, 0, 11, + 0, -336, -336, 12, 21, 22, 295, 296, 417, 418, + -336, 0, 0, 0, 0, 0, 13, 0, 0, 0, + 0, 0, -336, 0, 0, 0, 0, 0, 0, -495, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, + 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -336, 0, 416, + 0, -336, 5, 0, -66, 8, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, -336, 9, 10, - 0, 11, 0, -336, -336, 12, 21, 22, 251, 252, - 431, 432, -336, 0, 0, 0, 0, 0, 13, 0, - 0, 0, 0, 0, -336, 0, 0, 0, 0, 4, - 0, -66, 5, 6, 7, 8, 0, 0, 0, 0, - 0, 21, 22, 0, 0, 0, 0, 0, 9, 10, - 0, 11, 0, 0, 0, 12, 0, 0, 0, -336, - 0, 0, 0, 0, 0, 0, -472, 0, 13, 14, - 15, 16, 0, 0, 0, 0, 0, 17, 18, 0, - 0, 19, -2, 4, 20, 0, 5, 6, 7, 8, - 0, 21, 22, 0, 0, 0, 0, 0, 0, 23, - 24, 0, 9, 10, 0, 11, 0, 0, 0, 12, - 0, 0, 0, 0, 0, 0, -38, 0, 0, 0, - 0, 0, 13, 14, 15, 16, 0, 0, 0, 0, - 0, 17, 18, 0, 0, 19, 0, 0, 20, 0, - 0, 0, 0, 0, 0, 21, 22, 0, 0, 0, - 0, 0, 0, 23, 24 + 0, 11, 0, -336, -336, 12, 0, 0, 295, 296, + 417, 418, -336, 0, 83, 0, 0, 0, 13, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 9, 10, 0, 11, 125, 126, 127, 83, 0, + 0, 21, 22, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 0, 0, 0, 0, -336, + 126, 127, 0, 0, -2, 4, -472, 0, 5, 6, + 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 9, 10, 0, 11, 0, 0, + 0, 12, 98, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 0, 0, + 0, 0, 0, 17, 18, 0, 98, 19, 0, 0, + 20, 0, 0, 0, 0, 0, 0, 21, 22, 0, + 0, 0, 0, 0, 0, 23, 24 }; static const tao_yytype_int16 tao_yycheck[] = { - 13, 36, 21, 22, 36, 18, 19, 36, 75, 36, - 75, 36, 13, 2, 2, 36, 2, 36, 2, 2, - 298, 312, 216, 440, 370, 75, 75, 75, 75, 389, - 262, 301, 302, 596, 3, 389, 175, 244, 355, 3, - 3, 3, 3, 78, 1, 0, 78, 691, 692, 78, - 3, 78, 310, 78, 8, 9, 75, 78, 1, 78, - 602, 3, 90, 707, 77, 3, 79, 80, 81, 82, - 3, 28, 29, 390, 87, 103, 6, 19, 91, 3, - 724, 94, 633, 341, 97, 28, 29, 3, 82, 83, - 81, 508, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 3, 23, 24, 25, - 26, 662, 81, 104, 86, 6, 22, 81, 81, 81, - 81, 74, 75, 76, 77, 78, 79, 80, 81, 30, - 31, 84, 85, 391, 86, 104, 343, 89, 680, 81, - 104, 104, 104, 81, 89, 88, 95, 96, 101, 440, - 74, 75, 76, 77, 78, 79, 80, 81, 49, 60, - 84, 85, 53, 49, 65, 81, 87, 53, 69, 70, - 86, 95, 96, 89, 3, 86, 100, 101, 76, 8, - 9, 10, 3, 81, 13, 14, 15, 16, 3, 506, - 329, 204, 29, 3, 23, 28, 29, 216, 8, 9, + 13, 36, 36, 36, 13, 18, 19, 36, 282, 36, + 75, 36, 75, 2, 2, 2, 215, 2, 352, 2, + 306, 377, 75, 426, 75, 75, 285, 286, 371, 371, + 75, 21, 22, 598, 243, 250, 294, 337, 3, 3, + 3, 3, 3, 78, 78, 78, 36, 3, 1, 78, + 635, 78, 3, 78, 3, 95, 96, 692, 19, 3, + 81, 604, 86, 321, 77, 89, 79, 80, 81, 82, + 426, 6, 372, 708, 87, 28, 29, 0, 91, 664, + 104, 94, 717, 104, 97, 75, 3, 3, 78, 724, + 8, 9, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 76, 23, 24, 25, + 26, 81, 14, 15, 323, 373, 81, 81, 81, 81, + 81, 28, 29, 74, 75, 76, 77, 78, 79, 80, + 81, 6, 81, 84, 85, 88, 86, 81, 681, 104, + 104, 104, 104, 76, 95, 96, 60, 89, 81, 100, + 101, 65, 86, 82, 83, 89, 371, 74, 75, 76, + 77, 78, 79, 80, 81, 81, 1, 84, 85, 3, + 86, 22, 29, 89, 49, 3, 87, 90, 53, 394, + 8, 9, 10, 86, 101, 13, 14, 15, 16, 592, + 103, 204, 492, 28, 29, 23, 49, 406, 86, 86, + 53, 89, 89, 8, 15, 16, 11, 64, 97, 98, + 99, 68, 777, 445, 446, 1, 415, 86, 4, 5, + 6, 7, 787, 447, 448, 215, 430, 431, 6, 86, + 795, 88, 86, 3, 20, 21, 592, 23, 251, 17, + 253, 27, 20, 35, 36, 37, 24, 3, 261, 449, + 450, 451, 48, 81, 40, 41, 42, 43, 30, 31, + 594, 604, 604, 49, 50, 86, 86, 53, 87, 87, + 56, 49, 89, 86, 264, 53, 8, 63, 64, 349, + 350, 351, 81, 86, 86, 71, 72, 87, 60, 67, + 68, 86, 282, 65, 104, 104, 86, 69, 70, 86, + 89, 86, 88, 87, 86, 47, 87, 297, 87, 299, + 300, 86, 377, 86, 377, 86, 306, 370, 86, 370, + 370, 86, 89, 87, 104, 370, 87, 101, 87, 87, + 733, 3, 322, 87, 369, 370, 369, 596, 681, 681, + 369, 87, 369, 58, 369, 105, 3, 104, 338, 90, + 624, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 426, 3, 426, 767, 90, 92, 380, 25, 26, + 656, 93, 31, 94, 3, 86, 86, 733, 391, 369, + 370, 86, 86, 91, 86, 88, 105, 377, 3, 90, + 87, 30, 31, 86, 90, 430, 431, 430, 431, 88, + 88, 430, 431, 430, 431, 430, 431, 88, 103, 103, + 102, 767, 51, 52, 88, 405, 103, 103, 103, 753, + 8, 60, 61, 88, 81, 415, 65, 88, 88, 3, + 69, 70, 88, 88, 86, 86, 426, 90, 86, 86, + 430, 431, 86, 86, 86, 3, 86, 3, 86, 86, + 86, 86, 102, 3, 653, 86, 86, 656, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 86, 774, 6, 76, 421, 25, 26, 508, 81, 14, - 15, 784, 86, 17, 34, 89, 20, 64, 791, 86, - 24, 68, 89, 60, 253, 429, 255, 256, 65, 86, - 104, 86, 602, 262, 89, 312, 592, 312, 602, 86, - 389, 88, 81, 104, 267, 49, 269, 8, 86, 53, - 11, 280, 15, 16, 277, 97, 98, 99, 35, 36, - 37, 81, 86, 67, 68, 3, 463, 464, 465, 298, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 48, 312, 459, 460, 24, 25, 26, 367, - 368, 369, 315, 461, 462, 89, 444, 445, 87, 86, - 81, 87, 104, 326, 104, 87, 733, 86, 86, 89, - 680, 86, 86, 342, 594, 86, 680, 86, 8, 87, - 87, 86, 86, 47, 86, 101, 86, 356, 388, 388, - 388, 388, 87, 86, 622, 86, 58, 764, 87, 87, - 87, 3, 88, 81, 87, 387, 388, 104, 387, 89, - 387, 87, 387, 87, 31, 3, 387, 86, 387, 388, - 1, 86, 3, 440, 105, 440, 86, 8, 9, 10, + 86, 484, 485, 86, 24, 25, 26, 86, 468, 469, + 470, 471, 472, 86, 1, 90, 3, 4, 762, 88, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 779, 23, 88, 25, 26, + 27, 88, 88, 30, 31, 32, 33, 34, 88, 793, + 66, 3, 101, 40, 513, 513, 513, 592, 513, 592, + 513, 81, 86, 35, 87, 103, 55, 106, 90, 3, + 3, 88, 86, 86, 101, 35, 63, 64, 62, 38, + 59, 102, 90, 102, 567, 86, 569, 570, 571, 89, + 102, 101, 88, 102, 81, 101, 90, 102, 101, 39, + 102, 88, 101, 89, 86, 102, 76, 102, 76, 102, + 593, 1, 90, 3, 593, 598, 16, 15, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 592, 23, 24, 25, 26, 443, 374, 397, + 442, 1, 567, 3, 4, 605, 671, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 444, 23, 624, 25, 26, 27, 338, 75, + 30, 31, 32, 33, 34, 756, 75, 675, 401, 758, + 40, 597, 778, 287, 44, 45, 46, 794, 671, 408, + 68, 81, 671, 653, 29, 528, 656, 607, 733, 263, + 733, 681, 371, 63, 64, 472, 394, 300, -1, -1, + -1, -1, -1, -1, -1, -1, 676, -1, -1, -1, + -1, 81, -1, -1, -1, -1, -1, -1, 88, -1, + -1, -1, 767, -1, 767, -1, -1, 720, -1, -1, + -1, 720, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 757, 757, 757, -1, -1, -1, 757, -1, + 757, -1, 757, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 733, -1, -1, -1, -1, -1, -1, + -1, -1, 742, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 777, -1, -1, 757, -1, -1, + -1, -1, 762, -1, 787, -1, -1, 767, -1, -1, + -1, -1, 795, -1, -1, -1, -1, -1, -1, 779, + -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, + 3, 4, -1, 793, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + 23, -1, 25, 26, 27, -1, -1, 30, 31, 32, + 33, 34, -1, -1, -1, -1, -1, 40, -1, -1, + 3, 44, 45, 46, -1, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, + 63, 64, 25, 26, -1, -1, -1, -1, -1, -1, + -1, 34, -1, -1, -1, -1, -1, -1, 81, -1, + 1, -1, 3, 4, -1, 88, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 86, 23, 24, 25, 26, 86, 90, 3, 90, - 92, 420, 91, 105, 750, 93, 90, 94, 3, 87, - 429, 90, 444, 445, 88, 444, 445, 444, 445, 444, - 445, 440, 654, 444, 445, 444, 445, 103, 103, 88, - 86, 102, 8, 103, 103, 103, 90, 88, 88, 88, - 88, 508, 733, 508, 88, 88, 88, 86, 3, 86, - 81, 86, 86, 86, 86, 102, 86, 651, 86, 737, - 654, 86, 3, 482, 483, 484, 485, 486, 3, 86, - 3, 86, 86, 764, 86, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 498, 499, 86, 86, 508, - 86, 88, 25, 26, 86, 86, 509, 90, 776, 88, - 778, 88, 88, 88, 66, 3, 55, 101, 509, 90, - 87, 86, 35, 103, 3, 3, 88, 86, 106, 86, - 102, 101, 511, 511, 3, 511, 35, 511, 511, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 38, 23, 24, 25, 26, 81, 101, - 62, 564, 102, 566, 567, 568, 1, 102, 3, 4, - 59, 90, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 102, 23, 101, - 25, 26, 27, 596, 603, 30, 31, 32, 33, 34, - 101, 30, 31, 86, 102, 40, 102, 89, 88, 44, - 45, 46, 81, 622, 90, 39, 89, 101, 86, 76, - 90, 102, 51, 52, 76, 102, 412, 102, 63, 64, - 16, 60, 61, 15, 458, 638, 65, 457, 564, 392, - 69, 70, 651, 456, 356, 654, 81, 638, 638, 3, - 75, 416, 75, 88, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 675, 303, 753, 755, - 674, 25, 26, 595, 775, 790, 733, 210, 733, 68, - 29, 525, 278, 680, 605, 486, 389, 256, -1, -1, - -1, -1, 695, -1, 329, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 695, -1, -1, 764, -1, 764, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 733, -1, -1, 81, 737, 754, - 739, -1, 754, -1, -1, 754, -1, 754, -1, 754, - -1, -1, -1, 754, -1, 754, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 764, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 776, -1, 778, - -1, 774, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 784, -1, 1, -1, 3, 4, -1, 791, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, -1, 23, -1, 25, 26, 27, - -1, -1, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, 40, -1, -1, -1, 44, 45, 46, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 81, -1, 1, -1, 3, 4, -1, - 88, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, -1, 23, -1, 25, - 26, 27, -1, -1, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, 40, -1, -1, -1, 44, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 54, -1, - -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, + 21, -1, 23, -1, 25, 26, 27, -1, -1, 30, + 31, 32, 33, 34, -1, -1, -1, -1, 81, 40, + -1, -1, -1, 44, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 54, -1, -1, -1, -1, -1, -1, + -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 81, -1, 1, -1, 3, - 4, -1, 88, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, - -1, 25, 26, 27, -1, -1, 30, 31, 32, 33, - 34, -1, 1, -1, 3, 4, 40, -1, 7, 8, + 81, -1, 1, -1, 3, 4, -1, 88, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, -1, 23, -1, 25, 26, 27, 63, - 64, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, 40, -1, -1, -1, -1, -1, 81, -1, -1, - -1, -1, -1, -1, 88, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 63, 64, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, -1, 1, -1, 3, 4, -1, 88, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, -1, 23, -1, 25, 26, - 27, -1, -1, 30, 31, 32, 33, 34, -1, 1, - -1, 3, 4, 40, -1, 7, 8, 9, 10, 11, + 19, 20, 21, -1, 23, -1, 25, 26, 27, -1, + -1, 30, 31, 32, 33, 34, -1, 1, -1, 3, + 4, 40, -1, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, + -1, 25, 26, 27, 63, 64, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, 40, -1, -1, -1, + -1, -1, 81, -1, -1, -1, -1, -1, -1, 88, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 81, -1, 1, + -1, 3, 4, -1, 88, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - -1, 23, -1, 25, 26, 27, 63, 64, 30, 31, - 32, 33, 34, -1, -1, -1, -1, -1, 40, -1, - -1, -1, -1, -1, 81, -1, -1, -1, -1, 1, - -1, 88, 4, 5, 6, 7, -1, -1, -1, -1, - -1, 63, 64, -1, -1, -1, -1, -1, 20, 21, - -1, 23, -1, -1, -1, 27, -1, -1, -1, 81, - -1, -1, -1, -1, -1, -1, 88, -1, 40, 41, - 42, 43, -1, -1, -1, -1, -1, 49, 50, -1, - -1, 53, 0, 1, 56, -1, 4, 5, 6, 7, - -1, 63, 64, -1, -1, -1, -1, -1, -1, 71, - 72, -1, 20, 21, -1, 23, -1, -1, -1, 27, - -1, -1, -1, -1, -1, -1, 88, -1, -1, -1, - -1, -1, 40, 41, 42, 43, -1, -1, -1, -1, - -1, 49, 50, -1, -1, 53, -1, -1, 56, -1, - -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, - -1, -1, -1, 71, 72 + -1, 23, -1, 25, 26, 27, -1, -1, 30, 31, + 32, 33, 34, -1, 3, -1, -1, -1, 40, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, -1, 23, 24, 25, 26, 3, -1, + -1, 63, 64, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, -1, -1, -1, -1, 81, + 25, 26, -1, -1, 0, 1, 88, -1, 4, 5, + 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, -1, 23, -1, -1, + -1, 27, 81, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 40, 41, 42, 43, -1, -1, + -1, -1, -1, 49, 50, -1, 81, 53, -1, -1, + 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, + -1, -1, -1, -1, -1, 71, 72 }; /* TAO_YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1719,77 +1722,78 @@ static const tao_yytype_uint16 tao_yystos[] = 437, 451, 469, 470, 125, 181, 127, 137, 199, 228, 242, 268, 309, 3, 178, 215, 136, 53, 136, 151, 153, 53, 143, 153, 154, 178, 178, 392, 81, 175, - 178, 175, 452, 3, 118, 116, 89, 104, 139, 438, + 178, 175, 452, 471, 118, 116, 89, 104, 139, 438, 133, 119, 144, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24, 25, 26, 139, 175, 202, 203, 204, 205, 206, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 229, 241, 243, 267, 276, 279, 282, 285, 286, 289, 114, 111, 230, 22, 115, 112, 113, 120, 364, 121, 390, 122, 139, 425, - 425, 117, 434, 123, 124, 87, 471, 86, 175, 185, + 425, 117, 434, 123, 124, 87, 474, 86, 175, 185, 217, 220, 221, 222, 223, 224, 282, 286, 3, 178, 200, 202, 178, 178, 178, 178, 139, 178, 139, 148, - 178, 178, 368, 178, 176, 76, 81, 76, 3, 438, - 457, 86, 86, 48, 155, 439, 89, 444, 87, 86, - 87, 8, 11, 8, 9, 280, 152, 90, 103, 104, - 104, 86, 86, 87, 244, 86, 86, 86, 86, 87, - 86, 87, 401, 86, 426, 419, 428, 86, 87, 86, - 86, 30, 31, 60, 65, 69, 70, 297, 298, 303, - 381, 383, 384, 467, 472, 474, 480, 182, 128, 201, - 269, 310, 87, 89, 370, 393, 178, 177, 453, 370, - 140, 6, 17, 20, 24, 49, 53, 67, 68, 432, - 443, 175, 445, 447, 134, 145, 8, 104, 47, 156, - 277, 283, 287, 231, 101, 365, 402, 156, 87, 87, - 435, 299, 304, 19, 175, 382, 58, 385, 175, 447, - 481, 175, 481, 477, 475, 476, 382, 478, 88, 473, - 479, 178, 87, 178, 208, 211, 215, 216, 290, 87, - 87, 149, 371, 369, 89, 398, 178, 457, 172, 175, - 3, 441, 104, 446, 162, 159, 281, 172, 74, 75, - 76, 77, 78, 79, 80, 84, 85, 95, 96, 100, - 101, 175, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 197, 197, 233, 235, 236, 245, 372, - 404, 420, 429, 162, 31, 175, 204, 282, 286, 342, - 178, 3, 3, 3, 86, 86, 86, 178, 86, 474, - 86, 183, 129, 291, 209, 270, 311, 162, 175, 156, - 399, 394, 454, 173, 90, 440, 3, 448, 450, 90, - 1, 32, 33, 135, 163, 180, 198, 297, 308, 313, - 318, 359, 360, 44, 45, 46, 146, 160, 161, 163, - 320, 203, 195, 195, 195, 187, 92, 93, 94, 82, - 83, 95, 96, 97, 98, 99, 278, 284, 288, 232, - 234, 1, 202, 237, 8, 175, 217, 222, 223, 224, - 250, 267, 51, 52, 61, 69, 70, 297, 366, 373, - 381, 383, 386, 387, 388, 465, 466, 467, 44, 54, - 163, 403, 405, 408, 411, 162, 159, 436, 300, 305, - 91, 109, 105, 292, 294, 90, 3, 272, 275, 234, - 150, 175, 156, 87, 90, 442, 103, 103, 449, 447, - 171, 88, 167, 164, 169, 168, 170, 34, 319, 342, - 165, 166, 321, 237, 237, 88, 86, 102, 189, 190, - 191, 192, 192, 193, 193, 194, 194, 194, 103, 103, - 103, 88, 235, 240, 238, 246, 175, 175, 175, 175, - 468, 175, 468, 379, 88, 374, 375, 376, 377, 378, - 380, 178, 178, 88, 406, 407, 421, 430, 88, 342, - 212, 215, 184, 130, 295, 293, 210, 271, 273, 312, - 88, 395, 455, 174, 443, 90, 86, 86, 86, 86, - 86, 86, 314, 86, 86, 3, 86, 208, 102, 178, - 178, 178, 104, 3, 3, 86, 86, 86, 86, 86, - 86, 86, 409, 412, 86, 86, 88, 88, 301, 306, - 213, 186, 187, 88, 197, 294, 211, 88, 90, 88, - 66, 60, 381, 383, 384, 458, 460, 463, 464, 175, - 450, 3, 322, 239, 247, 172, 101, 324, 324, 212, - 55, 347, 90, 296, 274, 396, 175, 447, 447, 456, - 459, 461, 462, 315, 324, 86, 87, 103, 325, 326, - 410, 413, 302, 348, 307, 214, 106, 275, 175, 3, - 3, 88, 460, 86, 86, 101, 333, 323, 248, 102, - 35, 327, 330, 38, 344, 344, 344, 101, 62, 350, - 215, 397, 334, 335, 316, 344, 1, 28, 29, 251, - 253, 257, 259, 331, 102, 328, 345, 349, 351, 59, - 400, 102, 35, 36, 37, 336, 339, 343, 344, 256, - 261, 260, 249, 252, 254, 258, 342, 90, 101, 172, - 101, 175, 102, 337, 340, 317, 86, 187, 89, 88, - 253, 202, 263, 259, 332, 329, 346, 102, 352, 90, - 342, 39, 353, 262, 264, 255, 211, 330, 172, 172, - 338, 341, 354, 89, 211, 86, 102, 102, 339, 211, - 101, 355, 76, 356, 357, 102, 90, 358, 76 + 178, 178, 368, 178, 176, 76, 81, 76, 3, 3, + 86, 86, 48, 155, 439, 89, 444, 87, 86, 87, + 8, 11, 8, 9, 280, 152, 90, 103, 104, 104, + 86, 86, 87, 244, 86, 86, 86, 86, 87, 86, + 87, 401, 86, 426, 419, 428, 86, 87, 86, 86, + 475, 182, 128, 201, 269, 310, 87, 89, 370, 393, + 178, 177, 453, 472, 140, 6, 17, 20, 24, 49, + 53, 67, 68, 432, 443, 175, 445, 447, 134, 145, + 8, 104, 47, 156, 277, 283, 287, 231, 101, 365, + 402, 156, 87, 87, 435, 30, 31, 60, 65, 69, + 70, 297, 298, 303, 381, 383, 384, 467, 477, 479, + 485, 178, 87, 178, 208, 211, 215, 216, 290, 87, + 87, 149, 371, 369, 89, 398, 178, 438, 457, 457, + 172, 175, 3, 441, 104, 446, 162, 159, 281, 172, + 74, 75, 76, 77, 78, 79, 80, 84, 85, 95, + 96, 100, 101, 175, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 197, 197, 233, 235, 236, + 245, 372, 404, 420, 429, 162, 299, 304, 19, 175, + 382, 58, 385, 175, 447, 486, 175, 486, 482, 480, + 481, 382, 483, 476, 478, 484, 183, 129, 291, 209, + 270, 311, 162, 175, 156, 399, 394, 454, 473, 173, + 90, 440, 3, 448, 450, 90, 1, 32, 33, 135, + 163, 180, 198, 297, 308, 313, 318, 359, 360, 44, + 45, 46, 146, 160, 161, 163, 320, 203, 195, 195, + 195, 187, 92, 93, 94, 82, 83, 95, 96, 97, + 98, 99, 278, 284, 288, 232, 234, 1, 202, 237, + 8, 175, 217, 222, 223, 224, 250, 267, 51, 52, + 61, 69, 70, 297, 366, 373, 381, 383, 386, 387, + 388, 465, 466, 467, 44, 54, 163, 403, 405, 408, + 411, 162, 159, 436, 31, 175, 204, 282, 286, 342, + 178, 3, 3, 3, 86, 86, 86, 178, 86, 88, + 479, 86, 91, 109, 105, 292, 294, 90, 3, 272, + 275, 234, 150, 175, 156, 87, 370, 90, 442, 103, + 103, 449, 447, 171, 88, 167, 164, 169, 168, 170, + 34, 319, 342, 165, 166, 321, 237, 237, 88, 86, + 102, 189, 190, 191, 192, 192, 193, 193, 194, 194, + 194, 103, 103, 103, 88, 235, 240, 238, 246, 175, + 175, 175, 175, 468, 175, 468, 379, 88, 374, 375, + 376, 377, 378, 380, 178, 178, 88, 406, 407, 421, + 430, 88, 300, 305, 184, 130, 295, 293, 210, 271, + 273, 312, 88, 395, 455, 174, 443, 90, 86, 86, + 86, 86, 86, 86, 314, 86, 86, 3, 86, 208, + 102, 178, 178, 178, 104, 3, 3, 86, 86, 86, + 86, 86, 86, 86, 409, 412, 86, 86, 88, 88, + 342, 212, 215, 186, 187, 88, 197, 294, 211, 88, + 90, 88, 66, 60, 381, 383, 384, 458, 460, 463, + 464, 175, 450, 3, 322, 239, 247, 172, 101, 324, + 324, 301, 306, 213, 296, 274, 396, 175, 447, 447, + 456, 459, 461, 462, 315, 324, 86, 87, 103, 325, + 326, 410, 413, 212, 55, 347, 90, 106, 275, 175, + 3, 3, 88, 460, 86, 86, 101, 333, 323, 248, + 102, 35, 327, 330, 38, 344, 344, 302, 348, 307, + 214, 397, 334, 335, 316, 344, 1, 28, 29, 251, + 253, 257, 259, 331, 102, 328, 345, 344, 101, 62, + 350, 215, 59, 400, 102, 35, 36, 37, 336, 339, + 343, 344, 256, 261, 260, 249, 252, 254, 258, 342, + 90, 101, 349, 351, 175, 102, 337, 340, 317, 86, + 187, 89, 88, 253, 202, 263, 259, 332, 329, 346, + 172, 101, 90, 342, 39, 353, 262, 264, 255, 211, + 330, 172, 102, 352, 338, 341, 354, 89, 211, 86, + 102, 172, 339, 211, 101, 102, 355, 76, 356, 357, + 102, 90, 358, 76 }; #define tao_yyerrok (tao_yyerrstatus = 0) @@ -9494,15 +9498,119 @@ tao_yyreduce: } break; + case 542: + + { +// connector_header : IDL_CONNECTOR + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSeen); + } + break; + + case 543: + + { +// IDENTIFIER + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorIDSeen); + } + break; + + case 544: + + { +// opt_template_params + } + break; + + case 545: + + { +// component_inheritance_spec + UTL_Scope *s = idl_global->scopes ().top_non_null (); + AST_Connector *parent = 0; + bool so_far_so_good = true; + + Identifier id ((tao_yyvsp[(3) - (7)].strval)); + ACE::strdelete ((tao_yyvsp[(3) - (7)].strval)); + (tao_yyvsp[(3) - (7)].strval) = 0; + + UTL_ScopedName sn (&id, 0); + + if ((tao_yyvsp[(7) - (7)].idlist) != 0) + { + AST_Decl *d = s->lookup_by_name ((tao_yyvsp[(7) - (7)].idlist), true); + + if (d == 0) + { + idl_global->err ()->lookup_error ((tao_yyvsp[(7) - (7)].idlist)); + so_far_so_good = false; + } + + parent = + AST_Connector::narrow_from_decl (d); + + if (parent == 0) + { + idl_global->err ()->error1 (UTL_Error::EIDL_CONNECTOR_EXPECTED, + d); + so_far_so_good = false; + } + + (tao_yyvsp[(7) - (7)].idlist)->destroy (); + delete (tao_yyvsp[(7) - (7)].idlist); + (tao_yyvsp[(7) - (7)].idlist) = 0; + } + + if (so_far_so_good) + { + AST_Connector *c = + idl_global->gen ()->create_connector (&sn, + parent, + (tao_yyvsp[(5) - (7)].plval)); + + (void) s->fe_add_connector (c); + + // Push it on the scopes stack. + idl_global->scopes ().push (c); + } + } + break; + + case 546: + + { +// connector_body " '{' + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSqSeen); + } + break; + case 547: { +// at_least_one_connector_export + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorBodySeen); + } + break; + + case 548: + + { +// '} + idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorQsSeen); + + // Done with this connector - pop it off the scope stack. + idl_global->scopes ().pop (); + } + break; + + case 552: + + { // connector_export : provides_decl idl_global->set_parse_state (IDL_GlobalData::PS_ProvidesDeclSeen); } break; - case 548: + case 553: { // ';' @@ -9510,7 +9618,7 @@ tao_yyreduce: } break; - case 549: + case 554: { // | uses_decl @@ -9518,7 +9626,7 @@ tao_yyreduce: } break; - case 550: + case 555: { // ';' @@ -9526,7 +9634,7 @@ tao_yyreduce: } break; - case 551: + case 556: { // | attribute @@ -9534,7 +9642,7 @@ tao_yyreduce: } break; - case 552: + case 557: { // ';' @@ -9542,7 +9650,7 @@ tao_yyreduce: } break; - case 553: + case 558: { // | template_extended_port_decl @@ -9550,7 +9658,7 @@ tao_yyreduce: } break; - case 554: + case 559: { // ';' @@ -9558,7 +9666,7 @@ tao_yyreduce: } break; - case 555: + case 560: { // | template_extended_port_decl @@ -9566,7 +9674,7 @@ tao_yyreduce: } break; - case 556: + case 561: { // ';' diff --git a/modules/TAO/TAO_IDL/include/idl_global.h b/modules/TAO/TAO_IDL/include/idl_global.h index cddb7fa3dfa..7b0063ff432 100644 --- a/modules/TAO/TAO_IDL/include/idl_global.h +++ b/modules/TAO/TAO_IDL/include/idl_global.h @@ -169,6 +169,11 @@ public: , PS_HomeSqSeen // '{' seen for home , PS_HomeQsSeen // '}' seen for home , PS_HomeBodySeen // Seen a home body + , PS_ConnectorSeen // Seen an CONNECTOR keyword + , PS_ConnectorIDSeen // Seen the connector ID + , PS_ConnectorSqSeen // '{' seen for connector + , PS_ConnectorQsSeen // '}' seen for connector + , PS_ConnectorBodySeen // Seen a connector body , PS_SNListCommaSeen // Seen ',' in list of scoped names , PS_ScopedNameSeen // Seen a complete scoped name , PS_SN_IDSeen // Seen an identifier as part of a scoped name diff --git a/modules/TAO/TAO_IDL/include/utl_err.h b/modules/TAO/TAO_IDL/include/utl_err.h index 67e108b512c..33628a29f38 100644 --- a/modules/TAO/TAO_IDL/include/utl_err.h +++ b/modules/TAO/TAO_IDL/include/utl_err.h @@ -119,6 +119,7 @@ public: EIDL_EVENTTYPE_EXPECTED, // We got something else.. EIDL_TMPL_IFACE_EXPECTED, // We got something else.. EIDL_PORTTYPE_EXPECTED, // We got something else.. + EIDL_CONNECTOR_EXPECTED, // We got something else.. EIDL_NAME_CASE_ERROR, // Identifier spellings differ only in case EIDL_NAME_CASE_WARNING, // Same as above, but only a warning EIDL_KEYWORD_ERROR, // Case-insensitive clash with IDL keyword diff --git a/modules/TAO/TAO_IDL/util/utl_err.cpp b/modules/TAO/TAO_IDL/util/utl_err.cpp index eb721dc6089..6e7afcecf21 100644 --- a/modules/TAO/TAO_IDL/util/utl_err.cpp +++ b/modules/TAO/TAO_IDL/util/utl_err.cpp @@ -169,6 +169,8 @@ error_string (UTL_Error::ErrorCode c) return "template interface expected: "; case UTL_Error::EIDL_PORTTYPE_EXPECTED: return "porttype expected: "; + case UTL_Error::EIDL_CONNECTOR_EXPECTED: + return "connector expected: "; case UTL_Error::EIDL_EVAL_ERROR: return "expression evaluation error: "; case UTL_Error::EIDL_INCOMPATIBLE_TYPE: @@ -436,6 +438,16 @@ parse_state_to_error_message (IDL_GlobalData::ParseState ps) return "Illegal syntax following home '}' closer"; case IDL_GlobalData::PS_HomeBodySeen: return "Illegal syntax following home body statement(s)"; + case IDL_GlobalData::PS_ConnectorSeen: + return "Missing connector identifier following CONNECTOR keyword"; + case IDL_GlobalData::PS_ConnectorIDSeen: + return "Missing '{' or illegal syntax following connector identifier"; + case IDL_GlobalData::PS_ConnectorSqSeen: + return "Illegal syntax following connector '{' opener"; + case IDL_GlobalData::PS_ConnectorQsSeen: + return "Illegal syntax following connector '}' closer"; + case IDL_GlobalData::PS_ConnectorBodySeen: + return "Illegal syntax following connector body statement(s)"; case IDL_GlobalData::PS_StructForwardSeen: return "Missing ';' following forward struct declaration"; case IDL_GlobalData::PS_UnionForwardSeen: |