From 303a56ee9d2d4f98ec08311d826bc0411613a39b Mon Sep 17 00:00:00 2001 From: parsons Date: Tue, 28 Jul 2009 15:31:51 +0000 Subject: ChangeLogTag: Tue Jul 28 15:29:46 UTC 2009 Jeff Parsons --- modules/TAO/ChangeLog | 8 + modules/TAO/TAO_IDL/fe/idl.yy | 136 +++-- modules/TAO/TAO_IDL/fe/y.tab.cpp | 1198 +++++++++++++++++++------------------- 3 files changed, 696 insertions(+), 646 deletions(-) diff --git a/modules/TAO/ChangeLog b/modules/TAO/ChangeLog index a7a00ca497b..9d1db7e20a7 100644 --- a/modules/TAO/ChangeLog +++ b/modules/TAO/ChangeLog @@ -1,3 +1,11 @@ +Tue Jul 28 15:29:46 UTC 2009 Jeff Parsons + + * TAO_IDL/fe/idl.yy: + * TAO_IDL/fe/y.tab.cpp: + + Fixed parsing mistake that did not allow non-template + extended ports in a connector. + Tue Jul 28 14:34:46 UTC 2009 Jeff Parsons * TAO_IDL/fe/idl.yy: diff --git a/modules/TAO/TAO_IDL/fe/idl.yy b/modules/TAO/TAO_IDL/fe/idl.yy index e973f2439a9..f5f79b8762b 100644 --- a/modules/TAO/TAO_IDL/fe/idl.yy +++ b/modules/TAO/TAO_IDL/fe/idl.yy @@ -6332,6 +6332,11 @@ extended_uses_decl ; extended_port_decl + : template_port_decl + | non_template_port_decl + ; + +template_port_decl : IDL_PORT template_inst IDENTIFIER { // extended_port_decl : IDL_PORT template_inst IDENTIFIER @@ -6390,7 +6395,68 @@ extended_port_decl delete $2; $2 = 0; } - | IDL_PORT scoped_name IDENTIFIER + | IDL_MIRRORPORT template_inst IDENTIFIER + { +// | IDL_MIRRORPORT template_inst IDENTIFIER + idl_global->set_parse_state (IDL_GlobalData::PS_MirrorPortDeclSeen); + UTL_Scope *s = idl_global->scopes ().top_non_null (); + AST_Decl *d = s->lookup_by_name ($2->name_, true); + AST_PortType *pt = 0; + AST_PortType::T_ARGLIST *args = 0; + bool so_far_so_good = true; + + if (d == 0) + { + idl_global->err ()->lookup_error ($2->name_); + so_far_so_good = false; + } + else + { + pt = AST_PortType::narrow_from_decl (d); + + if (pt == 0) + { + idl_global->err ()->error1 (UTL_Error::EIDL_PORTTYPE_EXPECTED, + d); + so_far_so_good = false; + } + else + { + args = + pt->match_arg_names ($2->args_); + + if (args == 0) + { + so_far_so_good = false; + } + } + } + + if (so_far_so_good) + { + Identifier id ($3); + ACE::strdelete ($3); + $3 = 0; + + UTL_ScopedName sn (&id, + 0); + + AST_Mirror_Port *mp = + idl_global->gen ()->create_mirror_port (&sn, + pt, + args); + + (void) s->fe_add_mirror_port (mp); + } + + $2->destroy (); + delete $2; + $2 = 0; + } + ; + +non_template_port_decl + : IDL_PORT scoped_name IDENTIFIER { // extended_port_decl : IDL_PORT scoped_name IDENTIFIER idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); @@ -6450,64 +6516,6 @@ extended_port_decl delete $2; $2 = 0; } - | IDL_MIRRORPORT template_inst IDENTIFIER - { -// | IDL_MIRRORPORT template_inst IDENTIFIER - idl_global->set_parse_state (IDL_GlobalData::PS_MirrorPortDeclSeen); - UTL_Scope *s = idl_global->scopes ().top_non_null (); - AST_Decl *d = s->lookup_by_name ($2->name_, true); - AST_PortType *pt = 0; - AST_PortType::T_ARGLIST *args = 0; - bool so_far_so_good = true; - - if (d == 0) - { - idl_global->err ()->lookup_error ($2->name_); - so_far_so_good = false; - } - else - { - pt = AST_PortType::narrow_from_decl (d); - - if (pt == 0) - { - idl_global->err ()->error1 (UTL_Error::EIDL_PORTTYPE_EXPECTED, - d); - so_far_so_good = false; - } - else - { - args = - pt->match_arg_names ($2->args_); - - if (args == 0) - { - so_far_so_good = false; - } - } - } - - if (so_far_so_good) - { - Identifier id ($3); - ACE::strdelete ($3); - $3 = 0; - - UTL_ScopedName sn (&id, - 0); - - AST_Mirror_Port *mp = - idl_global->gen ()->create_mirror_port (&sn, - pt, - args); - - (void) s->fe_add_mirror_port (mp); - } - - $2->destroy (); - delete $2; - $2 = 0; - } | IDL_MIRRORPORT scoped_name IDENTIFIER { // | IDL_MIRRORPORT scoped_name IDENTIFIER @@ -6630,6 +6638,16 @@ connector_export } ';' { +// ';' + idl_global->set_parse_state (IDL_GlobalData::PS_NoState); + } + | non_template_port_decl + { +// | template_extended_port_decl + idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); + } + ';' + { // ';' idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } diff --git a/modules/TAO/TAO_IDL/fe/y.tab.cpp b/modules/TAO/TAO_IDL/fe/y.tab.cpp index fabc88005ce..37d480b44aa 100644 --- a/modules/TAO/TAO_IDL/fe/y.tab.cpp +++ b/modules/TAO/TAO_IDL/fe/y.tab.cpp @@ -599,16 +599,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 1239 +#define TAO_YYLAST 1264 /* TAO_YYNTOKENS -- Number of terminals. */ #define TAO_YYNTOKENS 107 /* TAO_YYNNTS -- Number of nonterminals. */ -#define TAO_YYNNTS 372 +#define TAO_YYNNTS 375 /* TAO_YYNRULES -- Number of rules. */ -#define TAO_YYNRULES 555 +#define TAO_YYNRULES 559 /* TAO_YYNRULES -- Number of states. */ -#define TAO_YYNSTATES 802 +#define TAO_YYNSTATES 809 /* TAO_YYTRANSLATE(TAO_YYLEX) -- Bison symbol number corresponding to TAO_YYLEX. */ #define TAO_YYUNDEFTOK 2 @@ -715,9 +715,9 @@ static const tao_yytype_uint16 tao_yyprhs[] = 1255, 1262, 1263, 1268, 1269, 1272, 1275, 1276, 1279, 1283, 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, 1352, 1356, 1360, 1364, 1369, - 1372, 1377, 1381, 1384, 1387, 1388, 1389, 1393, 1394, 1398, - 1399, 1403, 1404, 1408, 1411, 1414 + 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 }; /* TAO_YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -730,7 +730,7 @@ static const tao_yytype_int16 tao_yyrhs[] = 433, 117, 86, -1, -1, 126, 118, 86, -1, -1, 141, 119, 86, -1, -1, 361, 120, 86, -1, -1, 389, 121, 86, -1, -1, 414, 122, 86, -1, -1, - 451, 123, 86, -1, -1, 467, 124, 86, -1, -1, + 451, 123, 86, -1, -1, 469, 124, 86, -1, -1, 1, 125, 86, -1, -1, -1, -1, -1, 5, 127, 3, 128, 87, 129, 109, 130, 88, -1, 132, -1, 179, -1, -1, -1, -1, 138, 133, 87, 134, 162, @@ -857,14 +857,15 @@ static const tao_yytype_int16 tao_yyrhs[] = 87, 455, 458, 456, 88, -1, 438, -1, -1, 460, 459, -1, 459, 460, -1, -1, -1, 463, 461, 86, -1, -1, 464, 462, 86, -1, 381, -1, 60, 447, - 3, -1, 383, -1, 384, 447, 3, -1, 69, 466, - 3, -1, 69, 175, 3, -1, 70, 466, 3, -1, - 70, 175, 3, -1, 175, 104, 172, 103, -1, 468, - 469, -1, 72, 3, 457, 370, -1, 87, 470, 88, - -1, 472, 471, -1, 471, 472, -1, -1, -1, 381, - 473, 86, -1, -1, 383, 474, 86, -1, -1, 297, - 475, 86, -1, -1, 477, 476, 86, -1, 69, 478, - -1, 70, 478, -1, 447, 3, -1 + 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 }; /* TAO_YYRLINE[TAO_YYN] -- source line where rule number TAO_YYN was defined. */ @@ -923,9 +924,9 @@ static const tao_yytype_uint16 tao_yyrline[] = 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, 6393, 6453, 6511, 6574, 6585, - 6589, 6593, 6597, 6601, 6602, 6607, 6606, 6617, 6616, 6627, - 6626, 6637, 6636, 6653, 6654, 6658 + 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 }; #endif @@ -1026,10 +1027,11 @@ static const char *const tao_yytname[] = "@171", "@172", "@173", "@174", "opt_template_params", "at_least_one_port_export", "port_exports", "port_export", "@175", "@176", "extended_provides_decl", "extended_uses_decl", - "extended_port_decl", "template_inst", "connector_decl", - "connector_header", "connector_body", "at_least_one_connector_export", - "connector_exports", "connector_export", "@177", "@178", "@179", "@180", - "template_extended_port_decl", "template_ref_decl", 0 + "extended_port_decl", "template_port_decl", "non_template_port_decl", + "template_inst", "connector_decl", "connector_header", "connector_body", + "at_least_one_connector_export", "connector_exports", "connector_export", + "@177", "@178", "@179", "@180", "@181", "template_extended_port_decl", + "template_ref_decl", 0 }; #endif @@ -1108,9 +1110,9 @@ static const tao_yytype_uint16 tao_yyr1[] = 438, 442, 441, 441, 443, 444, 444, 445, 446, 446, 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, 465, 465, 466, 467, - 468, 469, 470, 471, 471, 473, 472, 474, 472, 475, - 472, 476, 472, 477, 477, 478 + 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 }; /* TAO_YYR2[TAO_YYN] -- Number of symbols composing right hand side of rule TAO_YYN. */ @@ -1169,9 +1171,9 @@ static const tao_yytype_uint8 tao_yyr2[] = 6, 0, 4, 0, 2, 2, 0, 2, 3, 0, 4, 2, 3, 0, 1, 0, 0, 0, 0, 0, 11, 1, 0, 2, 2, 0, 0, 3, 0, 3, - 1, 3, 1, 3, 3, 3, 3, 3, 4, 2, - 4, 3, 2, 2, 0, 0, 3, 0, 3, 0, - 3, 0, 3, 2, 2, 2 + 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 }; /* TAO_YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -1196,7 +1198,7 @@ static const tao_yytype_uint16 tao_yydefact[] = 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, 539, 34, 130, 118, + 479, 0, 0, 0, 0, 0, 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, @@ -1204,62 +1206,62 @@ static const tao_yytype_uint16 tao_yydefact[] = 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, 549, 312, 313, - 545, 547, 0, 0, 544, 551, 0, 0, 0, 0, - 0, 65, 404, 402, 444, 110, 0, 522, 540, 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, 553, 554, - 0, 0, 0, 0, 541, 542, 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, 555, 550, 546, - 548, 426, 543, 552, 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, + 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, - 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, 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, 535, 0, 534, 537, 536, 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, - 538, 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 + 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 }; /* TAO_YYDEFGOTO[NTERM-NUM]. */ @@ -1267,173 +1269,173 @@ 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, 267, 405, 584, 27, 28, 110, 293, 426, 29, - 77, 30, 128, 279, 31, 32, 33, 112, 294, 439, - 34, 199, 337, 511, 35, 226, 36, 94, 214, 298, - 37, 38, 351, 440, 441, 350, 427, 524, 531, 532, - 523, 526, 525, 527, 521, 344, 416, 594, 367, 204, - 276, 100, 39, 428, 75, 266, 404, 583, 179, 634, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 429, 78, 190, 268, 465, 131, 132, 133, 134, - 42, 330, 407, 587, 331, 581, 633, 688, 332, 333, + 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, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 43, 79, 44, 158, 302, 462, 381, 463, 553, 383, - 466, 555, 656, 554, 45, 80, 46, 234, 384, 556, - 657, 701, 745, 473, 722, 746, 723, 747, 778, 742, - 724, 748, 725, 744, 743, 776, 765, 777, 47, 48, - 49, 81, 269, 408, 588, 508, 589, 667, 509, 150, - 299, 459, 151, 225, 352, 152, 300, 460, 153, 154, - 301, 461, 155, 334, 406, 504, 586, 505, 585, 666, - 430, 258, 310, 499, 631, 685, 259, 311, 500, 632, - 687, 431, 82, 270, 409, 590, 432, 603, 676, 717, - 758, 433, 529, 443, 533, 655, 700, 660, 681, 682, - 704, 728, 768, 705, 726, 767, 699, 715, 716, 738, - 756, 783, 739, 757, 784, 395, 740, 707, 729, 769, - 664, 686, 730, 712, 731, 771, 775, 785, 794, 796, - 797, 800, 434, 435, 53, 54, 55, 164, 304, 481, - 56, 202, 339, 273, 338, 385, 482, 566, 567, 568, - 569, 570, 564, 571, 260, 314, 261, 262, 316, 485, - 486, 487, 57, 166, 58, 97, 274, 414, 592, 668, - 714, 341, 413, 733, 242, 305, 492, 386, 493, 575, - 576, 494, 625, 683, 495, 626, 684, 59, 60, 61, - 62, 63, 245, 387, 577, 64, 65, 66, 169, 244, - 67, 246, 388, 578, 68, 288, 69, 172, 309, 498, - 70, 209, 215, 418, 347, 516, 289, 217, 291, 349, - 317, 420, 519, 421, 71, 102, 277, 415, 593, 672, - 210, 648, 673, 649, 674, 675, 650, 651, 488, 561, - 72, 73, 176, 263, 325, 264, 321, 322, 320, 326, - 265, 318 + 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 }; /* TAO_YYPACT[STATE-NUM] -- Index in TAO_YYTABLE of the portion describing STATE-NUM. */ -#define TAO_YYPACT_NINF -585 +#define TAO_YYPACT_NINF -645 static const tao_yytype_int16 tao_yypact[] = { - -585, 65, 1167, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, 52, 77, 55, 5, -585, 52, 52, - -585, 37, 37, -585, 74, -585, -585, -585, -585, 76, - -585, -585, -585, -585, -585, -585, 366, -585, -585, -585, - -585, -585, -585, 19, -585, 63, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, 20, -585, -585, -585, 20, -585, - -585, -585, -585, 28, 59, 591, 164, 52, 512, 52, - 52, 52, 52, -585, -585, -585, 24, 52, 25, -585, - 88, 52, -585, 20, 52, 83, 90, 52, -585, -31, - -585, 22, 170, 78, 101, 124, 150, -585, -585, 116, - 158, 144, 167, 33, -585, 181, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, 177, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, 63, -585, -585, - -585, -28, -585, 160, -585, 172, 176, 188, 190, -585, - 193, 209, 213, 214, 217, 219, 221, 220, -585, -585, - -585, 223, 226, 228, 229, 196, -585, -585, 177, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, 230, -585, 236, - -585, -585, 235, -585, 52, -585, -585, -585, -585, -585, - 235, -585, -585, -585, -585, 155, 37, -585, -585, -585, - -585, -585, -585, 309, -585, 222, 278, -585, -585, -585, - -585, -585, -585, -585, 227, -585, -585, -585, -585, -585, - -585, -585, -585, -585, 278, 240, 243, -585, -585, -585, - -585, -585, -585, 87, 271, 37, 37, -585, -585, -585, - -585, -585, 87, 244, -585, -585, 52, 247, 52, 253, - 254, -585, -585, -585, 255, -585, 52, 78, -585, 37, - -585, -585, -585, -585, -585, -585, -585, -585, 328, -585, - -18, -585, -585, -585, -585, -585, -585, 37, -585, 57, - 57, 57, -585, -585, -585, -585, -585, -585, -585, -585, - 311, 628, -585, 177, 52, -585, -585, 340, -585, -585, - 259, 260, 261, 52, -585, 196, 262, -585, -585, 245, - -585, -585, -585, -585, -585, -585, -585, -585, 37, 278, - -585, -585, -585, -585, -585, 177, -585, 265, 354, 269, - 929, 546, 272, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, 45, 45, 45, 57, 177, -585, 268, - 270, 267, 112, 1, 119, -585, -585, -585, -585, -585, - -585, -585, -585, 1140, 79, 242, 847, -585, -585, 964, - -585, 177, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, 276, -585, 266, 280, 369, -585, - 1046, 177, -585, 37, 278, 286, 298, -585, 290, -585, - 292, -585, 37, -585, -585, -585, 308, -585, -585, -585, - -585, -585, -585, 412, -585, -585, -585, 1140, 1140, 310, - -585, -585, -585, 313, -585, -585, -585, -585, 295, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 297, - 299, 301, 345, 347, -585, -585, -585, 431, 177, -585, - -585, -585, -585, -585, -585, 37, 37, 37, 37, 37, - -585, 352, -585, -585, -585, -585, -585, -585, -585, 52, - 52, -585, 353, -585, -585, -585, 1081, 765, 355, 628, - 52, -585, 143, -585, -585, -585, -585, -585, -585, -585, - 356, 357, 177, -585, -585, -585, 155, -585, -585, 358, - -585, 363, -585, 364, 375, 376, 377, 378, -585, -585, - -585, 379, 380, 439, -585, -585, -585, -585, -585, 270, - 267, 112, 1, 1, 119, 119, -585, -585, -585, -585, - -585, -585, -585, -585, 382, 52, 367, 73, 73, 73, - 35, 467, 36, 468, 386, -585, 387, 388, 389, 392, - 393, 395, -585, -585, -585, 396, 397, 398, 400, -585, - -585, -585, -585, 57, 401, 57, 266, 52, 402, 394, - 403, -585, 419, 47, 37, -585, 354, -585, -585, -585, - -585, -585, -585, 492, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, 37, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, 399, 399, -585, -585, -585, - -585, 52, 441, 407, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, 87, -585, -585, 87, -585, -585, - -585, -585, 177, -585, -585, 399, 415, 411, 404, 469, - -585, -585, -585, -585, -585, -585, 405, 369, 37, -18, - 499, 500, 417, 47, 420, 422, 408, -585, -585, -585, - -585, 410, 475, 479, 479, 479, 433, 477, 52, -585, - -585, 177, -585, -585, -585, -585, -585, -585, 438, -585, - 479, 51, -585, -585, 446, -585, -585, -585, -585, -585, - -585, -585, -585, -585, 482, 449, 212, 479, -585, -585, - -585, -585, -585, -585, -585, -585, 628, -585, 453, 451, - 37, 480, 37, -585, -585, -585, -585, -585, 466, -585, - -585, -585, 484, 57, 493, 495, 71, 512, 173, -585, - -585, -585, 483, -585, 177, -585, 494, 628, 548, -585, - -585, -585, -585, -585, -585, -585, -585, 52, 475, 37, - -585, 37, -585, -585, -585, -585, 507, 52, 502, -585, - -585, 487, 496, 212, 52, 510, -585, -585, -585, -585, - -585, -585, -585, -585, 521, -585, 511, 522, -585, -585, - 538, -585 + -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 }; /* TAO_YYPGOTO[NTERM-NUM]. */ static const tao_yytype_int16 tao_yypgoto[] = { - -585, -585, 210, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, 198, - -585, -585, 171, -585, -585, -585, 603, -585, -585, -585, - -585, -585, -585, -585, 605, -585, 204, -585, -585, -211, - -585, -585, 233, -585, -585, -236, -316, -585, -585, -585, - -585, -585, -585, -585, -585, -277, -585, -585, -19, -585, - -585, -13, -585, 11, -585, -585, -585, -585, -585, -585, - -342, -585, 174, 179, 175, -228, -222, -206, -96, -585, - -264, 12, -585, -585, -585, -35, 281, -290, -585, -585, - -585, 67, -585, -585, -556, -7, -585, -585, -1, -585, - -49, -585, -585, 557, 560, -48, -46, -45, -585, -585, - -29, -585, -27, -585, -585, -585, -585, 239, 348, -585, - -167, -585, -585, -585, -25, -585, -21, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -95, -585, -585, -585, - -585, -585, -93, -585, -585, -585, -585, -585, -585, -585, - -32, -585, -585, -585, -585, -585, -585, -585, -15, -585, - -585, -585, -585, -585, -585, -67, -585, -585, -585, -65, - -585, -585, -585, -585, -585, -585, -585, 70, -585, -585, - -147, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, 14, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -584, -585, -585, - -585, -585, -585, -111, -585, -585, -585, -585, -585, -585, - -585, -585, -125, -585, -585, -408, -585, -529, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, 16, 17, -585, -585, -585, -585, -585, -585, - -585, -585, -585, 450, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -353, -240, -351, -546, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, -585, -585, -585, -585, -585, -585, -585, 594, -585, - -585, -585, -585, -585, -585, -585, -585, -585, -585, -585, - -585, 634, -585, -585, -585, -585, 148, -585, -585, -585, - -193, -585, -585, 69, -585, -585, -585, -585, -585, -585, - 390, -585, -585, -5, -585, -585, -585, -585, -585, 187, - -585, -585, -585, -585, -585, 344, -585, -585, -585, -585, - -585, 414 + -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 }; /* TAO_YYTABLE[TAO_YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -1445,234 +1447,226 @@ 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, - 353, 392, 323, 292, 448, 530, 180, 183, 257, 184, - 185, 639, 483, 306, 484, 442, 379, 380, 613, 616, - 83, 221, 661, 191, 222, 205, 149, 647, 83, 145, - 206, 146, 719, 147, 17, 83, 178, 148, 91, 129, - 83, 7, 227, 206, 189, 3, 192, 193, 194, 195, - 491, 677, 719, 389, 197, 228, 83, 103, 200, 720, - 721, 201, 83, 7, 203, 159, 348, 467, 114, 115, - 83, 580, 118, 119, 120, 121, 454, 455, 207, 720, - 721, 410, 11, 206, 17, -275, 312, 644, 87, 106, - -115, -116, 254, 106, 106, 175, 206, 206, 98, 354, - 355, 356, 357, 358, 359, 360, 98, 647, 412, 361, - 362, 354, 355, 356, 357, 358, 359, 360, 98, 614, - 614, 361, 362, 392, 4, 177, 366, 5, 6, 7, - 8, 496, 363, 364, 206, 708, 709, 365, 366, -257, - 98, 280, -114, 9, 10, 106, 11, 188, 98, -396, - 12, 718, 281, 208, -76, 282, -468, 106, 257, 283, - 107, 442, 107, 13, 14, 15, 16, 211, 741, 223, - 224, 275, 17, 18, 452, 453, 19, 290, 213, 20, - 108, 720, 721, 513, 284, 216, 21, 22, 285, 392, - 212, 779, 86, 88, 23, 24, 456, 457, 458, 90, - 93, 787, 286, 287, 542, 543, 251, 252, 792, 520, - 219, -38, 544, 545, 313, 168, 290, 290, 480, 168, - 645, 635, 646, 313, 393, 218, 394, 735, 736, 737, - 546, 547, 548, 327, 220, 329, 253, 196, 206, 198, - 345, 254, 231, 342, 229, 255, 256, 445, 446, 447, - 534, 535, 251, 252, 232, 83, 230, 233, 345, 235, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 391, 475, 476, 236, 125, 126, 127, 237, - 238, 396, 253, 477, 239, 240, 243, 254, 241, 247, - 401, 478, 479, 248, 249, 250, -469, 295, 749, 411, - 645, 637, 646, 271, 272, 297, 296, 307, 303, 315, - 308, 346, 324, 129, 328, 469, 470, 658, 471, 472, - 335, 336, 390, 397, 340, 398, 399, 400, 403, 773, - -304, 149, 474, 98, 145, 417, 146, 419, 147, 422, - 449, 451, 148, 450, 129, 468, 393, 501, 394, 83, - 506, 503, 507, 514, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 9, 10, 515, 11, - 125, 126, 127, 517, 512, 518, 522, 538, 536, 537, - 549, 760, 550, 290, 551, 149, 149, 323, 145, 145, - 146, 146, 147, 147, 391, 83, 148, 148, 129, 129, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 393, 552, 394, -232, 392, 126, 127, 221, - 565, 574, 606, 579, -327, 591, 528, 98, 596, 597, - 598, 670, -77, 752, 671, 106, 557, 558, 559, 560, - 562, 599, 600, 601, 602, 604, 605, 392, 607, 609, - 615, 617, 618, 619, 620, 621, 572, 573, 622, 623, - 391, 624, 627, 628, 641, 643, 629, 84, 630, 636, - 640, 642, 781, 98, 782, 654, 663, 665, 679, 582, - 659, 678, 692, 693, -345, 694, 696, 680, 697, 698, - 703, 689, 702, 40, 41, 83, 50, 706, 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, + 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, 9, 10, 710, 11, 125, 126, 127, 711, - -354, 732, 329, 750, 610, 611, 612, 423, 727, -336, - 5, 734, 751, 8, -336, -336, -336, -336, -336, -336, - -336, -336, -336, -336, -336, -336, 9, 10, 755, 11, - 759, -336, -336, 12, 329, 652, 251, 252, 424, 425, - -336, 753, 761, 762, 772, 770, 13, 774, 788, 789, - 436, 437, 438, 98, 83, 345, 786, 795, 790, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 21, - 22, 793, 799, 798, 801, 502, 126, 127, 84, 92, - 89, 497, 608, 539, 662, 669, 541, -336, 669, 540, - 582, 83, 181, 444, -62, 182, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 510, 691, - 382, 763, 690, 126, 127, 766, 638, 780, 791, 393, - 278, 394, 170, 109, 595, 653, 563, 343, 695, 402, - 319, 0, 98, 0, 0, 84, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 713, 0, 0, - 393, 0, 394, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 391, 0, 98, - 0, 345, 764, 754, 0, 149, 0, 0, 145, 0, - 146, 0, 147, 0, 0, 0, 148, 0, 129, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, + 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, - 345, 0, 345, 0, 329, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 329, 0, 423, 0, -336, 5, - 0, 329, 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, 424, 425, -336, - 0, 0, 0, 0, 0, 13, 0, 0, 0, 436, - 437, 438, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 21, 22, + 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, + -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, 0, 0, 0, -336, 0, 423, 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, 424, - 425, -336, 0, 0, 0, 0, 0, 13, 0, 0, - 0, 489, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 490, 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, - 423, 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, 424, 425, -336, 0, 423, 0, -336, 5, 13, - 0, 8, -336, -336, -336, -336, -336, -336, -336, -336, + 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, 21, 22, 251, 252, 424, 425, -336, 0, - 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, - -336, 0, 0, 0, 0, 0, 0, -44, 0, 0, + -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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -336, 0, 423, 0, -336, - 5, 0, -495, 8, -336, -336, -336, -336, -336, -336, + 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, 424, 425, - -336, 0, 423, 0, -336, 5, 13, 0, 8, -336, + 0, -336, -336, 12, 0, 0, 251, 252, 431, 432, + -336, 0, 430, 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, 251, 252, 424, 425, -336, 0, 0, 0, 0, + 22, 251, 252, 431, 432, -336, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, -336, 0, 0, - 0, 0, 0, 0, -66, 0, 0, 0, 0, 0, - 0, 464, 0, 83, 21, 22, 0, 0, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 9, 10, -336, 11, 125, 126, 127, -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, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, - 16, 0, 0, 0, 0, 0, 17, 18, 0, 0, - 19, 98, 0, 20, 0, 0, 0, 0, 0, 0, - 21, 22, 0, 0, 0, 0, 0, 0, 23, 24 + 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, -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 }; 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, - 297, 311, 262, 216, 366, 433, 75, 75, 175, 75, - 75, 587, 385, 244, 385, 351, 300, 301, 3, 3, - 3, 8, 626, 78, 11, 76, 78, 593, 3, 78, - 81, 78, 1, 78, 49, 3, 75, 78, 53, 78, - 3, 6, 90, 81, 77, 0, 79, 80, 81, 82, - 386, 655, 1, 309, 87, 103, 3, 3, 91, 28, - 29, 94, 3, 6, 97, 22, 104, 8, 9, 10, - 3, 499, 13, 14, 15, 16, 95, 96, 76, 28, - 29, 337, 23, 81, 49, 86, 19, 60, 53, 89, - 86, 86, 65, 89, 89, 87, 81, 81, 81, 74, - 75, 76, 77, 78, 79, 80, 81, 673, 339, 84, - 85, 74, 75, 76, 77, 78, 79, 80, 81, 104, - 104, 84, 85, 433, 1, 86, 101, 4, 5, 6, - 7, 387, 95, 96, 81, 684, 685, 100, 101, 88, - 81, 6, 86, 20, 21, 89, 23, 3, 81, 86, - 27, 700, 17, 3, 86, 20, 86, 89, 325, 24, - 104, 497, 104, 40, 41, 42, 43, 86, 717, 8, - 9, 204, 49, 50, 82, 83, 53, 216, 48, 56, - 29, 28, 29, 414, 49, 89, 63, 64, 53, 499, - 86, 767, 14, 15, 71, 72, 97, 98, 99, 15, - 16, 777, 67, 68, 452, 453, 30, 31, 784, 422, - 86, 88, 454, 455, 253, 64, 255, 256, 385, 68, - 593, 583, 593, 262, 311, 87, 311, 35, 36, 37, - 456, 457, 458, 266, 87, 268, 60, 86, 81, 88, - 279, 65, 86, 276, 104, 69, 70, 363, 364, 365, - 437, 438, 30, 31, 86, 3, 104, 87, 297, 86, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 311, 51, 52, 86, 24, 25, 26, 86, - 86, 314, 60, 61, 87, 86, 86, 65, 87, 86, - 323, 69, 70, 87, 86, 86, 86, 8, 726, 338, - 673, 585, 673, 87, 89, 47, 104, 87, 101, 58, - 87, 3, 88, 352, 87, 384, 384, 614, 384, 384, - 87, 87, 31, 3, 89, 86, 86, 86, 86, 757, - 105, 383, 384, 81, 383, 90, 383, 3, 383, 90, - 92, 94, 383, 93, 383, 384, 433, 91, 433, 3, - 90, 105, 3, 87, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 90, 23, - 24, 25, 26, 103, 413, 103, 88, 102, 88, 86, - 103, 743, 103, 422, 103, 437, 438, 647, 437, 438, - 437, 438, 437, 438, 433, 3, 437, 438, 437, 438, + 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, + 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, 499, 88, 499, 88, 726, 25, 26, 8, - 88, 88, 3, 88, 88, 88, 34, 81, 90, 86, - 86, 644, 86, 730, 647, 89, 475, 476, 477, 478, - 479, 86, 86, 86, 86, 86, 86, 757, 86, 102, - 3, 3, 86, 86, 86, 86, 489, 490, 86, 86, - 499, 86, 86, 86, 90, 66, 88, 500, 88, 88, - 88, 88, 769, 81, 771, 3, 55, 90, 87, 500, - 101, 86, 3, 3, 35, 88, 86, 103, 86, 101, - 35, 106, 102, 502, 502, 3, 502, 38, 502, 502, + 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, + 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, 101, 23, 24, 25, 26, 62, - 102, 59, 555, 90, 557, 558, 559, 1, 102, 3, - 4, 102, 101, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 102, 23, - 86, 25, 26, 27, 587, 594, 30, 31, 32, 33, - 34, 101, 89, 88, 90, 102, 40, 39, 86, 102, - 44, 45, 46, 81, 3, 614, 89, 76, 102, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 63, - 64, 101, 90, 102, 76, 405, 25, 26, 631, 16, - 15, 388, 555, 449, 631, 644, 451, 81, 647, 450, - 631, 3, 75, 352, 88, 75, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 409, 668, - 302, 746, 667, 25, 26, 748, 586, 768, 783, 726, - 210, 726, 68, 29, 516, 596, 479, 277, 673, 325, - 256, -1, 81, -1, -1, 688, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 688, -1, -1, - 757, -1, 757, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 726, -1, 81, - -1, 730, 747, 732, -1, 747, -1, -1, 747, -1, - 747, -1, 747, -1, -1, -1, 747, -1, 747, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 757, -1, + 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, - 769, -1, 771, -1, 767, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 777, -1, 1, -1, 3, 4, - -1, 784, 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, 63, 64, -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, -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, -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, 12, 13, 14, 15, + -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, -1, -1, + 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, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, -1, 1, -1, 3, @@ -1685,16 +1679,30 @@ static const tao_yytype_int16 tao_yycheck[] = 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, 3, 63, 64, -1, -1, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 81, 23, 24, 25, 26, 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, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 40, 41, 42, - 43, -1, -1, -1, -1, -1, 49, 50, -1, -1, - 53, 81, -1, 56, -1, -1, -1, -1, -1, -1, - 63, 64, -1, -1, -1, -1, -1, -1, 71, 72 + -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, + 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 }; /* TAO_YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1708,7 +1716,7 @@ static const tao_yytype_uint16 tao_yystos[] = 180, 198, 207, 227, 229, 241, 243, 265, 266, 267, 308, 359, 360, 361, 362, 363, 367, 389, 391, 414, 415, 416, 417, 418, 422, 423, 424, 427, 431, 433, - 437, 451, 467, 468, 125, 181, 127, 137, 199, 228, + 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, @@ -1718,7 +1726,7 @@ static const tao_yytype_uint16 tao_yystos[] = 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, 469, 86, 175, 185, + 425, 117, 434, 123, 124, 87, 471, 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, @@ -1727,61 +1735,61 @@ static const tao_yytype_uint16 tao_yystos[] = 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, 470, 472, 477, 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, 447, 478, 478, - 475, 473, 474, 382, 88, 471, 476, 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, 86, 86, - 86, 178, 472, 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, 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, 466, 175, 466, 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, 3, 104, 3, 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 + 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 }; #define tao_yyerrok (tao_yyerrstatus = 0) @@ -9227,7 +9235,7 @@ tao_yyreduce: } break; - case 534: + case 536: { // extended_port_decl : IDL_PORT template_inst IDENTIFIER @@ -9288,7 +9296,68 @@ tao_yyreduce: } break; - case 535: + case 537: + + { +// | IDL_MIRRORPORT template_inst IDENTIFIER + idl_global->set_parse_state (IDL_GlobalData::PS_MirrorPortDeclSeen); + UTL_Scope *s = idl_global->scopes ().top_non_null (); + AST_Decl *d = s->lookup_by_name ((tao_yyvsp[(2) - (3)].tival)->name_, true); + AST_PortType *pt = 0; + AST_PortType::T_ARGLIST *args = 0; + bool so_far_so_good = true; + + if (d == 0) + { + idl_global->err ()->lookup_error ((tao_yyvsp[(2) - (3)].tival)->name_); + so_far_so_good = false; + } + else + { + pt = AST_PortType::narrow_from_decl (d); + + if (pt == 0) + { + idl_global->err ()->error1 (UTL_Error::EIDL_PORTTYPE_EXPECTED, + d); + so_far_so_good = false; + } + else + { + args = + pt->match_arg_names ((tao_yyvsp[(2) - (3)].tival)->args_); + + if (args == 0) + { + so_far_so_good = false; + } + } + } + + if (so_far_so_good) + { + Identifier id ((tao_yyvsp[(3) - (3)].strval)); + ACE::strdelete ((tao_yyvsp[(3) - (3)].strval)); + (tao_yyvsp[(3) - (3)].strval) = 0; + + UTL_ScopedName sn (&id, + 0); + + AST_Mirror_Port *mp = + idl_global->gen ()->create_mirror_port (&sn, + pt, + args); + + (void) s->fe_add_mirror_port (mp); + } + + (tao_yyvsp[(2) - (3)].tival)->destroy (); + delete (tao_yyvsp[(2) - (3)].tival); + (tao_yyvsp[(2) - (3)].tival) = 0; + } + break; + + case 538: { // extended_port_decl : IDL_PORT scoped_name IDENTIFIER @@ -9351,68 +9420,7 @@ tao_yyreduce: } break; - case 536: - - { -// | IDL_MIRRORPORT template_inst IDENTIFIER - idl_global->set_parse_state (IDL_GlobalData::PS_MirrorPortDeclSeen); - UTL_Scope *s = idl_global->scopes ().top_non_null (); - AST_Decl *d = s->lookup_by_name ((tao_yyvsp[(2) - (3)].tival)->name_, true); - AST_PortType *pt = 0; - AST_PortType::T_ARGLIST *args = 0; - bool so_far_so_good = true; - - if (d == 0) - { - idl_global->err ()->lookup_error ((tao_yyvsp[(2) - (3)].tival)->name_); - so_far_so_good = false; - } - else - { - pt = AST_PortType::narrow_from_decl (d); - - if (pt == 0) - { - idl_global->err ()->error1 (UTL_Error::EIDL_PORTTYPE_EXPECTED, - d); - so_far_so_good = false; - } - else - { - args = - pt->match_arg_names ((tao_yyvsp[(2) - (3)].tival)->args_); - - if (args == 0) - { - so_far_so_good = false; - } - } - } - - if (so_far_so_good) - { - Identifier id ((tao_yyvsp[(3) - (3)].strval)); - ACE::strdelete ((tao_yyvsp[(3) - (3)].strval)); - (tao_yyvsp[(3) - (3)].strval) = 0; - - UTL_ScopedName sn (&id, - 0); - - AST_Mirror_Port *mp = - idl_global->gen ()->create_mirror_port (&sn, - pt, - args); - - (void) s->fe_add_mirror_port (mp); - } - - (tao_yyvsp[(2) - (3)].tival)->destroy (); - delete (tao_yyvsp[(2) - (3)].tival); - (tao_yyvsp[(2) - (3)].tival) = 0; - } - break; - - case 537: + case 539: { // | IDL_MIRRORPORT scoped_name IDENTIFIER @@ -9475,7 +9483,7 @@ tao_yyreduce: } break; - case 538: + case 540: { // template_inst : scoped_name '<' at_least_one_scoped_name '>' @@ -9486,7 +9494,7 @@ tao_yyreduce: } break; - case 545: + case 547: { // connector_export : provides_decl @@ -9494,7 +9502,7 @@ tao_yyreduce: } break; - case 546: + case 548: { // ';' @@ -9502,7 +9510,7 @@ tao_yyreduce: } break; - case 547: + case 549: { // | uses_decl @@ -9510,7 +9518,7 @@ tao_yyreduce: } break; - case 548: + case 550: { // ';' @@ -9518,7 +9526,7 @@ tao_yyreduce: } break; - case 549: + case 551: { // | attribute @@ -9526,7 +9534,7 @@ tao_yyreduce: } break; - case 550: + case 552: { // ';' @@ -9534,7 +9542,7 @@ tao_yyreduce: } break; - case 551: + case 553: { // | template_extended_port_decl @@ -9542,7 +9550,23 @@ tao_yyreduce: } break; - case 552: + case 554: + + { +// ';' + idl_global->set_parse_state (IDL_GlobalData::PS_NoState); + } + break; + + case 555: + + { +// | template_extended_port_decl + idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); + } + break; + + case 556: { // ';' -- cgit v1.2.1