diff --git a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/Dump.cpp b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/Dump.cpp index 031bfdd..f69687f 100644 --- a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/Dump.cpp +++ b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/Dump.cpp @@ -1301,7 +1301,10 @@ void Statement::dumpStatement(bool processBrother) { } } else { // Finally hasFinally = true; - tab(); printf("FINALLY\n"); + if (!firstCatch) { + // This line should not be executed for try-finally (no catches) pattern. + tab(); printf("FINALLY\n"); + } } p->m_pChild->dumpStatement(); diff --git a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharp.y b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharp.y index 87478ab..cea0329 100644 --- a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharp.y +++ b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharp.y @@ -53,6 +53,7 @@ // Prototypes to keep the compiler happy void yyerror (const char *error); + const char* makeUniqueId(const char* body); extern "C" { int yyparse(void); @@ -697,11 +698,84 @@ statement_expression_list ; foreach_statement : FOREACH '(' type IDENTIFIER IN expression ')' embedded_statement - { R(); $$.statement = CreateStatement(STM_FOREACH, NULL, NULL) - ->setExpression($6.expr) - ->addType($3.type) - ->addChild($8.statement); - compilerError(ERR_NOT_SUPPORTED_YET, "Foreach not supported yet. Please use 'for' with array or list."); + { + R(); + const char* enumVar = makeUniqueId("enumerator"); + PushGenericType(GetGenericType()); + addGenericType($3.type); + // NOTE: Requires System.Collections.Generic; + TypeObject* enumType = + TypeObject::getTypeObject("IEnumerator", TYPE_UNRESOLVED) + ->setGeneric(GetGenericType()); + PopGenericType(); + + $$.statement = + /* IEnumerator enumerator = $6.GetEnumerator() */ + CreateVarStatement( + STM_LOCALVAR, + NULL, // next + NULL, // child + CreateVarInstance( + enumVar + )->setInitializer( + CreateDoubleExpr( + EXPR_INVOKE, + CreateSingleExpr(EXPR_DOT, $6.expr)->setIdentifier("GetEnumerator"), + NULL + )->patchSubInvoke() + ), + enumType + ) ->addNext( + CreateStatement(STM_TRY, NULL, NULL) + ->addChild( + CreateStatement( + STM_BLOCK, + NULL, + CreateStatement( + STM_WHILE, + NULL, + CreateStatement( + STM_BLOCK, + NULL, + CreateVarStatement( + STM_LOCALVAR, + $8.statement, // next + NULL, // child + CreateVarInstance( + $4.text + )->setInitializer( + CreateSingleExpr(EXPR_DOT, CreateLeafExpr(EXPR_IDENT, enumVar))->setIdentifier("Current") + ), + $3.type + ) + ) + ) -> setExpression( + /* enumerator.MoveNext() */ + CreateDoubleExpr( + EXPR_INVOKE, + CreateSingleExpr(EXPR_DOT, CreateLeafExpr(EXPR_IDENT, enumVar))->setIdentifier("MoveNext"), + NULL // no args + )->patchSubInvoke() + ) + ) + ) -> addNext ( + CreateStatement(STM_FINALLY, NULL, NULL) + ->addChild( + CreateStatement( + STM_BLOCK, + NULL, + CreateStatement(STM_WRAP_EXP, NULL, NULL) -> setExpression( + /* enumerator.Dispose() */ + CreateDoubleExpr( + EXPR_INVOKE, + CreateSingleExpr(EXPR_DOT, CreateLeafExpr(EXPR_IDENT, enumVar))->setIdentifier("Dispose"), + NULL // no args + )->patchSubInvoke() + ) + ) + ) + ) + ); } ; jump_statement @@ -1525,3 +1599,10 @@ void error (const char* msg,...) { printf(log); } + +int uniqueIdCount = 0; +const char* makeUniqueId(const char* body) { + char buf[10]; + _itoa(uniqueIdCount++, buf, 10); + return concat3("__", body, buf); +} diff --git a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharpcompiler.cpp b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharpcompiler.cpp index 00e1cea..1fde2dc 100644 --- a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharpcompiler.cpp +++ b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharpcompiler.cpp @@ -19,72 +19,72 @@ #define YYBISON 1 /* Identify Bison output. */ -#define RANK_SPECIFIER 258 -#define IDENTIFIER 259 -#define INTEGER_LITERAL 260 -#define REAL_LITERAL 261 -#define CHARACTER_LITERAL 262 -#define STRING_LITERAL 263 -#define ABSTRACT 264 -#define AS 265 -#define BASE 266 -#define BOOL 267 -#define BREAK 268 -#define BYTE 269 -#define CASE 270 -#define CATCH 271 -#define CHAR 272 -#define CHECKED 273 -#define CLASS 274 -#define CONST 275 -#define CONTINUE 276 -#define DECIMAL 277 -#define DEFAULT 278 -#define DELEGATE 279 -#define DO 280 -#define DOUBLE 281 -#define ELSE 282 -#define ENUM 283 -#define EVENT 284 -#define EXPLICIT 285 -#define EXTERN 286 -#define FALSE 287 -#define FINALLY 288 -#define FIXED 289 -#define FLOAT 290 -#define FOR 291 -#define FOREACH 292 -#define GOTO 293 -#define IF 294 -#define IMPLICIT 295 -#define IN 296 -#define INT 297 -#define INTERFACE 298 -#define INTERNAL 299 -#define IS 300 -#define LOCK 301 -#define LONG 302 -#define NAMESPACE 303 -#define NEW 304 -#define NULL_LITERAL 305 -#define OBJECT 306 +#define THEN 258 +#define ELSE 259 +#define RANK_SPECIFIER 260 +#define IDENTIFIER 261 +#define INTEGER_LITERAL 262 +#define REAL_LITERAL 263 +#define CHARACTER_LITERAL 264 +#define STRING_LITERAL 265 +#define ABSTRACT 266 +#define AS 267 +#define BASE 268 +#define BOOL 269 +#define BREAK 270 +#define BYTE 271 +#define CASE 272 +#define CATCH 273 +#define CHAR 274 +#define CHECKED 275 +#define CLASS 276 +#define CONST 277 +#define CONTINUE 278 +#define DECIMAL 279 +#define DEFAULT 280 +#define DELEGATE 281 +#define DO 282 +#define DOUBLE 283 +#define ENUM 284 +#define EVENT 285 +#define EXPLICIT 286 +#define EXTERN 287 +#define FALSE 288 +#define FINALLY 289 +#define FIXED 290 +#define FLOAT 291 +#define FOR 292 +#define FOREACH 293 +#define GOTO 294 +#define IF 295 +#define IMPLICIT 296 +#define IN 297 +#define INT 298 +#define INTERFACE 299 +#define INTERNAL 300 +#define IS 301 +#define LOCK 302 +#define LONG 303 +#define NAMESPACE 304 +#define NEW 305 +#define NULL_LITERAL 306 #define OPERATOR 307 #define OUT 308 #define OVERRIDE 309 #define PARAMS 310 -#define PRIVATE 311 -#define PROTECTED 312 -#define PUBLIC 313 -#define READONLY 314 -#define REF 315 -#define RETURN 316 -#define SBYTE 317 -#define SEALED 318 -#define SHORT 319 -#define SIZEOF 320 -#define STACKALLOC 321 -#define STATIC 322 -#define STRING 323 +#define PARTIAL 311 +#define PRIVATE 312 +#define PROTECTED 313 +#define PUBLIC 314 +#define READONLY 315 +#define REF 316 +#define RETURN 317 +#define SBYTE 318 +#define SEALED 319 +#define SHORT 320 +#define SIZEOF 321 +#define STACKALLOC 322 +#define STATIC 323 #define STRUCT 324 #define SWITCH 325 #define THIS 326 @@ -102,41 +102,47 @@ #define VOID 338 #define VOLATILE 339 #define WHILE 340 -#define ASSEMBLY 341 -#define FIELD 342 -#define METHOD 343 -#define MODULE 344 -#define PARAM 345 -#define PROPERTY 346 -#define TYPE 347 -#define GET 348 -#define SET 349 -#define ADD 350 -#define REMOVE 351 -#define COMMA 352 -#define LEFT_BRACKET 353 -#define RIGHT_BRACKET 354 -#define GT 355 -#define PLUSEQ 356 -#define MINUSEQ 357 -#define STAREQ 358 -#define DIVEQ 359 -#define MODEQ 360 -#define XOREQ 361 -#define ANDEQ 362 -#define OREQ 363 -#define LTLT 364 -#define GTGTEQ 365 -#define LTLTEQ 366 -#define EQEQ 367 -#define NOTEQ 368 -#define LEQ 369 -#define GEQ 370 -#define ANDAND 371 -#define OROR 372 -#define PLUSPLUS 373 -#define MINUSMINUS 374 -#define ARROW 375 +#define STRING 341 +#define OBJECT 342 +#define GEN_LT 343 +#define GEN_GT 344 +#define ASSEMBLY 345 +#define FIELD 346 +#define METHOD 347 +#define MODULE 348 +#define PARAM 349 +#define PROPERTY 350 +#define TYPE 351 +#define GET 352 +#define SET 353 +#define ADD 354 +#define REMOVE 355 +#define COMMA 356 +#define LEFT_BRACKET 357 +#define RIGHT_BRACKET 358 +#define GT 359 +#define GTGT 360 +#define LT 361 +#define PLUSEQ 362 +#define MINUSEQ 363 +#define STAREQ 364 +#define DIVEQ 365 +#define MODEQ 366 +#define XOREQ 367 +#define ANDEQ 368 +#define OREQ 369 +#define LTLT 370 +#define GTGTEQ 371 +#define LTLTEQ 372 +#define EQEQ 373 +#define NOTEQ 374 +#define LEQ 375 +#define GEQ 376 +#define ANDAND 377 +#define OROR 378 +#define PLUSPLUS 379 +#define MINUSMINUS 380 +#define ARROW 381 #line 32 "csharp.y" @@ -163,6 +169,7 @@ // Prototypes to keep the compiler happy void yyerror (const char *error); + const char* makeUniqueId(const char* body); extern "C" { int yyparse(void); @@ -205,26 +212,26 @@ typedef -#define YYFINAL 932 +#define YYFINAL 941 #define YYFLAG -32768 -#define YYNTBASE 142 +#define YYNTBASE 146 -#define YYTRANSLATE(x) ((unsigned)(x) <= 375 ? yytranslate[x] : 396) +#define YYTRANSLATE(x) ((unsigned)(x) <= 381 ? yytranslate[x] : 406) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 127, 2, 2, 2, 132, 126, 2, 123, - 124, 122, 129, 2, 130, 125, 131, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 137, 141, 121, - 138, 133, 136, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 133, 2, 2, 2, 138, 132, 2, 129, + 130, 127, 135, 2, 136, 131, 137, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 128, 145, 2, + 142, 2, 141, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 134, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 139, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 139, 135, 140, 128, 2, 2, 2, 2, + 2, 2, 143, 140, 144, 134, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -249,335 +256,338 @@ static const short yytranslate[] = { 0, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120 + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, - 21, 22, 25, 29, 32, 36, 37, 38, 40, 42, + 20, 21, 22, 27, 28, 32, 34, 35, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, - 84, 86, 88, 91, 94, 97, 100, 103, 104, 107, - 109, 111, 113, 117, 119, 122, 125, 127, 129, 131, - 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, - 153, 157, 161, 165, 169, 174, 179, 180, 182, 187, - 192, 193, 195, 197, 201, 203, 207, 212, 215, 218, - 220, 226, 234, 238, 239, 241, 246, 251, 256, 261, - 265, 268, 273, 275, 277, 279, 281, 283, 285, 288, - 291, 293, 296, 299, 301, 304, 307, 310, 312, 314, - 316, 321, 327, 334, 340, 346, 352, 353, 355, 357, - 360, 362, 364, 366, 370, 374, 378, 380, 384, 388, - 390, 394, 396, 400, 404, 408, 412, 416, 420, 422, - 426, 430, 432, 436, 438, 442, 444, 448, 450, 454, - 456, 460, 462, 468, 472, 474, 476, 478, 480, 482, - 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, - 504, 506, 508, 510, 512, 514, 516, 518, 520, 522, - 524, 526, 528, 530, 532, 534, 538, 539, 541, 543, - 546, 548, 552, 555, 558, 561, 563, 567, 569, 573, - 575, 577, 579, 585, 589, 591, 595, 599, 602, 604, - 606, 608, 610, 612, 614, 616, 618, 620, 626, 634, - 640, 644, 645, 647, 649, 652, 655, 657, 660, 664, - 667, 669, 671, 673, 675, 678, 684, 692, 702, 703, - 705, 706, 708, 709, 711, 713, 715, 717, 719, 721, - 725, 734, 736, 738, 740, 742, 744, 747, 750, 754, - 759, 763, 767, 768, 770, 774, 778, 782, 787, 789, - 792, 799, 806, 809, 810, 812, 815, 818, 821, 827, - 833, 835, 837, 844, 846, 850, 854, 857, 860, 861, - 863, 864, 866, 867, 869, 870, 877, 878, 880, 882, - 885, 888, 892, 897, 899, 902, 904, 906, 912, 916, - 918, 921, 923, 925, 927, 929, 931, 933, 935, 936, - 938, 940, 943, 945, 947, 949, 951, 953, 955, 957, - 959, 961, 963, 965, 967, 969, 971, 972, 981, 982, - 984, 987, 990, 995, 997, 1001, 1005, 1006, 1008, 1010, - 1013, 1015, 1017, 1019, 1021, 1023, 1025, 1027, 1029, 1031, - 1033, 1040, 1046, 1049, 1057, 1065, 1066, 1068, 1070, 1072, - 1074, 1076, 1078, 1082, 1084, 1086, 1092, 1093, 1096, 1097, - 1099, 1101, 1106, 1116, 1119, 1122, 1123, 1124, 1126, 1127, - 1129, 1135, 1141, 1143, 1145, 1152, 1163, 1166, 1169, 1175, - 1181, 1182, 1192, 1198, 1204, 1207, 1212, 1214, 1216, 1224, - 1235, 1237, 1239, 1241, 1243, 1245, 1247, 1249, 1251, 1253, - 1255, 1257, 1259, 1261, 1263, 1265, 1267, 1269, 1272, 1274, - 1276, 1278, 1280, 1281, 1289, 1297, 1302, 1308, 1309, 1311, - 1317, 1323, 1331, 1333, 1335, 1337, 1339, 1340, 1349, 1350, - 1352, 1355, 1359, 1360, 1362, 1364, 1367, 1369, 1371, 1373, - 1375, 1377, 1379, 1381, 1383, 1385, 1389, 1394, 1395, 1397, - 1399, 1403, 1404, 1413, 1414, 1416, 1419, 1423, 1424, 1426, - 1428, 1431, 1433, 1435, 1437, 1439, 1448, 1457, 1458, 1460, - 1470, 1483, 1487, 1491, 1498, 1505, 1512, 1514, 1517, 1518, - 1527, 1528, 1530, 1533, 1537, 1542, 1543, 1545, 1547, 1551, - 1554, 1559, 1569, 1571, 1573, 1576, 1583, 1591, 1592, 1594, - 1597, 1599, 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615, - 1617, 1621, 1624, 1625, 1627, 1629, 1633, 1634, 1635, 1636, - 1637, 1638 + 84, 87, 90, 93, 96, 99, 100, 103, 105, 107, + 109, 113, 115, 118, 121, 125, 127, 129, 131, 133, + 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, + 155, 161, 165, 169, 173, 174, 181, 186, 187, 189, + 194, 199, 200, 202, 204, 208, 210, 214, 219, 222, + 225, 227, 233, 241, 245, 246, 248, 253, 258, 263, + 268, 272, 275, 280, 282, 284, 286, 288, 290, 292, + 295, 298, 300, 303, 306, 308, 311, 314, 317, 319, + 321, 323, 328, 334, 341, 347, 353, 354, 356, 358, + 361, 363, 365, 367, 371, 375, 379, 381, 385, 389, + 391, 395, 399, 401, 405, 409, 413, 417, 421, 425, + 427, 431, 435, 437, 441, 443, 447, 449, 453, 455, + 459, 461, 465, 467, 473, 477, 479, 481, 483, 485, + 487, 489, 491, 493, 495, 497, 499, 501, 503, 505, + 507, 509, 511, 513, 515, 517, 519, 521, 523, 525, + 527, 529, 531, 533, 535, 537, 539, 543, 544, 546, + 548, 551, 553, 557, 560, 563, 566, 568, 572, 574, + 578, 580, 582, 584, 590, 594, 596, 600, 604, 607, + 609, 611, 613, 615, 617, 619, 621, 623, 625, 629, + 634, 637, 638, 644, 648, 649, 651, 653, 656, 659, + 661, 664, 668, 671, 673, 675, 677, 679, 682, 688, + 696, 706, 707, 709, 710, 712, 713, 715, 717, 719, + 721, 723, 725, 729, 738, 740, 742, 744, 746, 748, + 751, 754, 758, 763, 767, 771, 772, 774, 778, 782, + 786, 791, 793, 796, 803, 806, 807, 809, 812, 815, + 818, 824, 830, 832, 834, 841, 843, 847, 851, 854, + 857, 858, 860, 861, 863, 864, 866, 867, 874, 875, + 877, 879, 882, 885, 889, 894, 896, 899, 901, 903, + 909, 913, 915, 918, 920, 922, 924, 926, 928, 930, + 932, 933, 935, 937, 940, 942, 944, 946, 948, 950, + 952, 954, 956, 958, 960, 962, 964, 966, 968, 970, + 971, 981, 982, 984, 987, 989, 993, 997, 998, 1000, + 1002, 1005, 1007, 1009, 1011, 1013, 1015, 1017, 1019, 1021, + 1023, 1025, 1032, 1038, 1041, 1050, 1059, 1061, 1065, 1066, + 1070, 1071, 1073, 1075, 1077, 1079, 1081, 1083, 1087, 1089, + 1091, 1097, 1098, 1101, 1102, 1104, 1106, 1111, 1121, 1124, + 1127, 1128, 1129, 1131, 1132, 1134, 1140, 1146, 1148, 1150, + 1157, 1168, 1171, 1174, 1180, 1186, 1195, 1201, 1207, 1210, + 1215, 1217, 1219, 1227, 1238, 1240, 1242, 1244, 1246, 1248, + 1250, 1252, 1254, 1256, 1258, 1260, 1262, 1264, 1266, 1268, + 1270, 1272, 1274, 1276, 1278, 1280, 1282, 1290, 1298, 1303, + 1309, 1310, 1312, 1318, 1324, 1332, 1334, 1336, 1338, 1340, + 1341, 1350, 1351, 1353, 1356, 1360, 1361, 1363, 1365, 1368, + 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384, 1386, 1387, + 1392, 1393, 1396, 1398, 1399, 1401, 1405, 1406, 1415, 1416, + 1418, 1421, 1425, 1426, 1428, 1430, 1433, 1435, 1437, 1439, + 1441, 1450, 1459, 1460, 1462, 1472, 1485, 1489, 1493, 1500, + 1507, 1514, 1516, 1519, 1520, 1529, 1530, 1532, 1535, 1539, + 1544, 1545, 1547, 1549, 1553, 1556, 1561, 1572, 1574, 1576, + 1579, 1586, 1594, 1595, 1597, 1600, 1602, 1604, 1606, 1608, + 1610, 1612, 1614, 1616, 1618, 1620, 1624, 1627, 1628, 1630, + 1632, 1636, 1637, 1638, 1639, 1640, 1641 }; -static const short yyrhs[] = { 143, - 0, 5, 0, 6, 0, 7, 0, 8, 0, 50, - 0, 73, 0, 32, 0, 281, 0, 281, 146, 0, - 0, 121, 147, 0, 151, 149, 148, 0, 100, 150, - 0, 97, 150, 147, 0, 0, 0, 152, 0, 160, - 0, 153, 0, 145, 0, 154, 0, 158, 0, 159, - 0, 155, 0, 12, 0, 156, 0, 157, 0, 22, - 0, 62, 0, 14, 0, 64, 0, 80, 0, 42, - 0, 76, 0, 47, 0, 77, 0, 17, 0, 35, - 0, 26, 0, 51, 0, 68, 0, 151, 122, 0, - 83, 122, 0, 160, 162, 0, 153, 162, 0, 281, - 162, 0, 0, 162, 161, 0, 3, 0, 211, 0, - 165, 0, 164, 97, 165, 0, 211, 0, 60, 163, - 0, 53, 163, 0, 168, 0, 167, 0, 142, 0, - 181, 0, 169, 0, 170, 0, 172, 0, 175, 0, - 176, 0, 179, 0, 183, 0, 188, 0, 184, 0, - 185, 0, 123, 211, 124, 0, 166, 125, 4, 0, - 154, 125, 4, 0, 158, 125, 4, 0, 167, 123, - 171, 124, 0, 281, 123, 171, 124, 0, 0, 164, - 0, 166, 98, 174, 99, 0, 281, 98, 174, 99, - 0, 0, 174, 0, 211, 0, 174, 97, 211, 0, - 71, 0, 11, 125, 4, 0, 11, 98, 174, 99, - 0, 189, 118, 0, 189, 119, 0, 180, 0, 49, - 151, 123, 171, 124, 0, 49, 152, 98, 174, 99, - 161, 182, 0, 49, 160, 352, 0, 0, 352, 0, - 75, 123, 151, 124, 0, 75, 123, 83, 124, 0, - 18, 123, 211, 124, 0, 78, 123, 211, 124, 0, - 189, 120, 4, 0, 126, 193, 0, 65, 123, 151, - 124, 0, 166, 0, 281, 0, 177, 0, 178, 0, - 186, 0, 189, 0, 127, 193, 0, 128, 193, 0, - 194, 0, 118, 193, 0, 119, 193, 0, 190, 0, - 129, 193, 0, 130, 193, 0, 122, 193, 0, 191, - 0, 192, 0, 187, 0, 123, 211, 124, 190, 0, - 123, 198, 122, 124, 193, 0, 123, 281, 162, 195, - 124, 193, 0, 123, 154, 195, 124, 193, 0, 123, - 158, 195, 124, 193, 0, 123, 83, 195, 124, 193, - 0, 0, 196, 0, 197, 0, 196, 197, 0, 162, - 0, 122, 0, 193, 0, 198, 122, 193, 0, 198, - 131, 193, 0, 198, 132, 193, 0, 198, 0, 199, - 129, 198, 0, 199, 130, 198, 0, 199, 0, 200, - 109, 199, 0, 200, 0, 201, 121, 200, 0, 201, - 133, 200, 0, 201, 114, 200, 0, 201, 115, 200, - 0, 201, 45, 151, 0, 201, 10, 151, 0, 201, - 0, 202, 112, 201, 0, 202, 113, 201, 0, 202, - 0, 203, 126, 202, 0, 203, 0, 204, 134, 203, - 0, 204, 0, 205, 135, 204, 0, 205, 0, 206, - 116, 205, 0, 206, 0, 207, 117, 206, 0, 207, - 0, 207, 136, 211, 137, 211, 0, 193, 210, 211, - 0, 138, 0, 101, 0, 102, 0, 103, 0, 104, - 0, 105, 0, 106, 0, 107, 0, 108, 0, 110, - 0, 111, 0, 208, 0, 209, 0, 211, 0, 211, - 0, 220, 0, 221, 0, 215, 0, 216, 0, 219, - 0, 230, 0, 232, 0, 241, 0, 254, 0, 261, - 0, 266, 0, 267, 0, 268, 0, 269, 0, 242, - 0, 271, 0, 139, 217, 140, 0, 0, 218, 0, - 214, 0, 218, 214, 0, 141, 0, 4, 137, 214, - 0, 222, 141, 0, 227, 141, 0, 151, 223, 0, - 224, 0, 223, 97, 224, 0, 4, 0, 4, 138, - 225, 0, 211, 0, 352, 0, 226, 0, 66, 151, - 98, 211, 99, 0, 20, 151, 228, 0, 229, 0, - 228, 97, 229, 0, 4, 138, 212, 0, 231, 141, - 0, 170, 0, 180, 0, 209, 0, 177, 0, 178, - 0, 191, 0, 192, 0, 233, 0, 234, 0, 39, - 123, 213, 124, 215, 0, 39, 123, 213, 124, 215, - 27, 215, 0, 70, 123, 211, 124, 235, 0, 139, - 236, 140, 0, 0, 237, 0, 238, 0, 237, 238, - 0, 239, 218, 0, 240, 0, 239, 240, 0, 15, - 212, 137, 0, 23, 137, 0, 243, 0, 244, 0, - 245, 0, 253, 0, 79, 216, 0, 85, 123, 213, - 124, 215, 0, 25, 215, 85, 123, 213, 124, 141, - 0, 36, 123, 246, 141, 247, 141, 248, 124, 215, - 0, 0, 249, 0, 0, 250, 0, 0, 251, 0, - 222, 0, 252, 0, 213, 0, 252, 0, 231, 0, - 252, 97, 231, 0, 37, 123, 151, 4, 41, 211, - 124, 215, 0, 255, 0, 256, 0, 257, 0, 258, - 0, 260, 0, 13, 141, 0, 21, 141, 0, 38, - 4, 141, 0, 38, 15, 212, 141, 0, 38, 23, - 141, 0, 61, 259, 141, 0, 0, 211, 0, 72, - 259, 141, 0, 74, 216, 262, 0, 74, 216, 265, - 0, 74, 216, 262, 265, 0, 263, 0, 262, 263, - 0, 16, 123, 158, 264, 124, 216, 0, 16, 123, - 145, 264, 124, 216, 0, 16, 216, 0, 0, 4, - 0, 33, 216, 0, 18, 216, 0, 78, 216, 0, - 46, 123, 211, 124, 215, 0, 81, 123, 270, 124, - 215, 0, 222, 0, 211, 0, 34, 123, 151, 272, - 124, 215, 0, 273, 0, 272, 97, 273, 0, 4, - 138, 211, 0, 275, 276, 0, 275, 288, 0, 0, - 284, 0, 0, 379, 0, 0, 288, 0, 0, 276, - 48, 281, 279, 283, 280, 0, 0, 141, 0, 4, - 0, 282, 4, 0, 4, 125, 0, 282, 4, 125, - 0, 139, 275, 277, 140, 0, 285, 0, 284, 285, - 0, 286, 0, 287, 0, 81, 4, 138, 281, 141, - 0, 81, 144, 141, 0, 289, 0, 288, 289, 0, - 278, 0, 290, 0, 294, 0, 344, 0, 355, 0, - 370, 0, 378, 0, 0, 292, 0, 293, 0, 292, - 293, 0, 9, 0, 31, 0, 44, 0, 49, 0, - 54, 0, 56, 0, 57, 0, 58, 0, 59, 0, - 63, 0, 67, 0, 79, 0, 82, 0, 84, 0, - 0, 276, 291, 19, 4, 295, 296, 299, 280, 0, - 0, 297, 0, 137, 158, 0, 137, 298, 0, 137, - 158, 97, 298, 0, 145, 0, 298, 97, 145, 0, - 139, 300, 140, 0, 0, 301, 0, 302, 0, 301, - 302, 0, 303, 0, 304, 0, 305, 0, 316, 0, - 323, 0, 327, 0, 331, 0, 337, 0, 341, 0, - 290, 0, 276, 291, 20, 151, 228, 141, 0, 276, - 291, 151, 223, 141, 0, 306, 309, 0, 276, 291, - 151, 281, 123, 307, 124, 0, 276, 291, 83, 281, - 123, 307, 124, 0, 0, 310, 0, 151, 0, 83, - 0, 216, 0, 141, 0, 311, 0, 310, 97, 311, - 0, 312, 0, 315, 0, 276, 314, 151, 4, 313, - 0, 0, 138, 142, 0, 0, 60, 0, 53, 0, - 276, 55, 151, 4, 0, 276, 291, 151, 281, 394, - 139, 317, 140, 395, 0, 320, 318, 0, 321, 319, - 0, 0, 0, 321, 0, 0, 320, 0, 276, 93, - 395, 322, 394, 0, 276, 94, 395, 322, 394, 0, - 216, 0, 141, 0, 276, 291, 29, 151, 223, 141, - 0, 276, 291, 29, 151, 281, 392, 139, 324, 140, - 393, 0, 325, 326, 0, 326, 325, 0, 276, 95, - 393, 216, 392, 0, 276, 96, 393, 216, 392, 0, - 0, 276, 291, 329, 328, 394, 139, 317, 140, 395, - 0, 151, 71, 98, 310, 99, 0, 151, 330, 98, - 310, 99, 0, 282, 71, 0, 276, 291, 332, 342, - 0, 333, 0, 336, 0, 151, 52, 334, 123, 151, - 4, 124, 0, 151, 52, 334, 123, 151, 4, 97, - 151, 4, 124, 0, 129, 0, 130, 0, 127, 0, - 128, 0, 118, 0, 119, 0, 73, 0, 32, 0, - 122, 0, 131, 0, 132, 0, 126, 0, 135, 0, - 134, 0, 109, 0, 112, 0, 113, 0, 133, 335, - 0, 121, 0, 115, 0, 114, 0, 100, 0, 0, - 40, 52, 151, 123, 151, 4, 124, 0, 30, 52, - 151, 123, 151, 4, 124, 0, 276, 291, 338, 343, - 0, 4, 123, 307, 124, 339, 0, 0, 340, 0, - 137, 11, 123, 171, 124, 0, 137, 71, 123, 171, - 124, 0, 276, 291, 128, 4, 123, 124, 216, 0, - 216, 0, 141, 0, 216, 0, 141, 0, 0, 276, - 291, 69, 4, 345, 346, 348, 280, 0, 0, 347, - 0, 137, 298, 0, 139, 349, 140, 0, 0, 350, - 0, 351, 0, 350, 351, 0, 303, 0, 304, 0, - 305, 0, 316, 0, 323, 0, 327, 0, 331, 0, - 337, 0, 290, 0, 139, 353, 140, 0, 139, 354, - 97, 140, 0, 0, 354, 0, 225, 0, 354, 97, - 225, 0, 0, 276, 291, 43, 4, 356, 357, 359, - 280, 0, 0, 358, 0, 137, 298, 0, 139, 360, - 140, 0, 0, 361, 0, 362, 0, 361, 362, 0, - 363, 0, 365, 0, 368, 0, 366, 0, 276, 364, - 151, 4, 123, 307, 124, 369, 0, 276, 364, 83, - 4, 123, 307, 124, 369, 0, 0, 49, 0, 276, - 364, 151, 4, 394, 139, 367, 140, 395, 0, 276, - 364, 151, 71, 98, 310, 99, 394, 139, 367, 140, - 395, 0, 276, 93, 369, 0, 276, 94, 369, 0, - 276, 93, 369, 276, 94, 369, 0, 276, 94, 369, - 276, 93, 369, 0, 276, 364, 29, 151, 4, 369, - 0, 141, 0, 139, 140, 0, 0, 276, 291, 28, - 4, 372, 371, 374, 280, 0, 0, 373, 0, 137, - 156, 0, 139, 375, 140, 0, 139, 376, 97, 140, - 0, 0, 376, 0, 377, 0, 376, 97, 377, 0, - 276, 4, 0, 276, 4, 138, 212, 0, 276, 291, - 24, 308, 4, 123, 307, 124, 141, 0, 380, 0, - 381, 0, 380, 381, 0, 390, 98, 382, 385, 99, - 391, 0, 390, 98, 382, 385, 97, 99, 391, 0, - 0, 383, 0, 384, 137, 0, 86, 0, 87, 0, - 29, 0, 88, 0, 89, 0, 90, 0, 91, 0, - 61, 0, 92, 0, 386, 0, 385, 97, 386, 0, - 388, 387, 0, 0, 389, 0, 145, 0, 123, 173, - 124, 0, 0, 0, 0, 0, 0, 0 +static const short yyrhs[] = { 147, + 0, 7, 0, 8, 0, 9, 0, 10, 0, 51, + 0, 73, 0, 33, 0, 289, 0, 152, 0, 0, + 0, 88, 151, 154, 89, 0, 0, 289, 153, 150, + 0, 156, 0, 0, 156, 101, 155, 154, 0, 157, + 0, 164, 0, 158, 0, 149, 0, 159, 0, 163, + 0, 160, 0, 14, 0, 161, 0, 162, 0, 24, + 0, 63, 0, 16, 0, 65, 0, 80, 0, 43, + 0, 76, 0, 48, 0, 77, 0, 19, 0, 36, + 0, 28, 0, 156, 127, 0, 83, 127, 0, 164, + 166, 0, 158, 166, 0, 289, 166, 0, 0, 166, + 165, 0, 5, 0, 217, 0, 169, 0, 168, 101, + 169, 0, 217, 0, 61, 167, 0, 53, 167, 0, + 6, 128, 169, 0, 173, 0, 171, 0, 146, 0, + 187, 0, 174, 0, 175, 0, 178, 0, 181, 0, + 182, 0, 185, 0, 172, 0, 189, 0, 194, 0, + 190, 0, 191, 0, 26, 129, 317, 130, 222, 0, + 129, 217, 130, 0, 170, 131, 6, 0, 159, 131, + 6, 0, 0, 171, 150, 129, 176, 177, 130, 0, + 152, 129, 177, 130, 0, 0, 168, 0, 170, 102, + 180, 103, 0, 289, 102, 180, 103, 0, 0, 180, + 0, 217, 0, 180, 101, 217, 0, 71, 0, 13, + 131, 6, 0, 13, 102, 180, 103, 0, 195, 124, + 0, 195, 125, 0, 186, 0, 50, 156, 129, 177, + 130, 0, 50, 157, 102, 180, 103, 165, 188, 0, + 50, 164, 360, 0, 0, 360, 0, 75, 129, 156, + 130, 0, 75, 129, 83, 130, 0, 20, 129, 217, + 130, 0, 78, 129, 217, 130, 0, 195, 126, 6, + 0, 132, 199, 0, 66, 129, 156, 130, 0, 170, + 0, 289, 0, 183, 0, 184, 0, 192, 0, 195, + 0, 133, 199, 0, 134, 199, 0, 200, 0, 124, + 199, 0, 125, 199, 0, 196, 0, 135, 199, 0, + 136, 199, 0, 127, 199, 0, 197, 0, 198, 0, + 193, 0, 129, 217, 130, 196, 0, 129, 204, 127, + 130, 199, 0, 129, 289, 166, 201, 130, 199, 0, + 129, 159, 201, 130, 199, 0, 129, 83, 201, 130, + 199, 0, 0, 202, 0, 203, 0, 202, 203, 0, + 166, 0, 127, 0, 199, 0, 204, 127, 199, 0, + 204, 137, 199, 0, 204, 138, 199, 0, 204, 0, + 205, 135, 204, 0, 205, 136, 204, 0, 205, 0, + 206, 115, 205, 0, 206, 105, 205, 0, 206, 0, + 207, 106, 206, 0, 207, 104, 206, 0, 207, 120, + 206, 0, 207, 121, 206, 0, 207, 46, 156, 0, + 207, 12, 156, 0, 207, 0, 208, 118, 207, 0, + 208, 119, 207, 0, 208, 0, 209, 132, 208, 0, + 209, 0, 210, 139, 209, 0, 210, 0, 211, 140, + 210, 0, 211, 0, 212, 122, 211, 0, 212, 0, + 213, 123, 212, 0, 213, 0, 213, 141, 217, 128, + 217, 0, 199, 216, 217, 0, 142, 0, 107, 0, + 108, 0, 109, 0, 110, 0, 111, 0, 112, 0, + 113, 0, 114, 0, 116, 0, 117, 0, 214, 0, + 215, 0, 217, 0, 217, 0, 226, 0, 227, 0, + 221, 0, 222, 0, 225, 0, 236, 0, 238, 0, + 249, 0, 262, 0, 269, 0, 274, 0, 275, 0, + 276, 0, 277, 0, 250, 0, 279, 0, 143, 223, + 144, 0, 0, 224, 0, 220, 0, 224, 220, 0, + 145, 0, 6, 128, 220, 0, 228, 145, 0, 233, + 145, 0, 156, 229, 0, 230, 0, 229, 101, 230, + 0, 6, 0, 6, 142, 231, 0, 217, 0, 360, + 0, 232, 0, 67, 156, 102, 217, 103, 0, 22, + 156, 234, 0, 235, 0, 234, 101, 235, 0, 6, + 142, 218, 0, 237, 145, 0, 175, 0, 186, 0, + 215, 0, 183, 0, 184, 0, 197, 0, 198, 0, + 239, 0, 242, 0, 40, 240, 241, 0, 129, 219, + 130, 221, 0, 4, 221, 0, 0, 70, 129, 217, + 130, 243, 0, 143, 244, 144, 0, 0, 245, 0, + 246, 0, 245, 246, 0, 247, 224, 0, 248, 0, + 247, 248, 0, 17, 218, 128, 0, 25, 128, 0, + 251, 0, 252, 0, 253, 0, 261, 0, 79, 222, + 0, 85, 129, 219, 130, 221, 0, 27, 221, 85, + 129, 219, 130, 145, 0, 37, 129, 254, 145, 255, + 145, 256, 130, 221, 0, 0, 257, 0, 0, 258, + 0, 0, 259, 0, 228, 0, 260, 0, 219, 0, + 260, 0, 237, 0, 260, 101, 237, 0, 38, 129, + 156, 6, 42, 217, 130, 221, 0, 263, 0, 264, + 0, 265, 0, 266, 0, 268, 0, 15, 145, 0, + 23, 145, 0, 39, 6, 145, 0, 39, 17, 218, + 145, 0, 39, 25, 145, 0, 62, 267, 145, 0, + 0, 217, 0, 72, 267, 145, 0, 74, 222, 270, + 0, 74, 222, 273, 0, 74, 222, 270, 273, 0, + 271, 0, 270, 271, 0, 18, 129, 149, 272, 130, + 222, 0, 18, 222, 0, 0, 6, 0, 34, 222, + 0, 20, 222, 0, 78, 222, 0, 47, 129, 217, + 130, 221, 0, 81, 129, 278, 130, 221, 0, 228, + 0, 217, 0, 35, 129, 156, 280, 130, 221, 0, + 281, 0, 280, 101, 281, 0, 6, 142, 217, 0, + 283, 284, 0, 283, 296, 0, 0, 292, 0, 0, + 389, 0, 0, 296, 0, 0, 284, 49, 289, 287, + 291, 288, 0, 0, 145, 0, 6, 0, 290, 6, + 0, 6, 131, 0, 290, 6, 131, 0, 143, 283, + 285, 144, 0, 293, 0, 292, 293, 0, 294, 0, + 295, 0, 81, 6, 142, 289, 145, 0, 81, 148, + 145, 0, 297, 0, 296, 297, 0, 286, 0, 298, + 0, 302, 0, 352, 0, 365, 0, 380, 0, 388, + 0, 0, 300, 0, 301, 0, 300, 301, 0, 11, + 0, 32, 0, 45, 0, 50, 0, 54, 0, 57, + 0, 58, 0, 59, 0, 60, 0, 64, 0, 68, + 0, 79, 0, 82, 0, 84, 0, 56, 0, 0, + 284, 299, 21, 6, 316, 303, 304, 307, 288, 0, + 0, 305, 0, 128, 306, 0, 149, 0, 306, 101, + 149, 0, 143, 308, 144, 0, 0, 309, 0, 310, + 0, 309, 310, 0, 311, 0, 312, 0, 313, 0, + 326, 0, 333, 0, 337, 0, 340, 0, 345, 0, + 349, 0, 298, 0, 284, 299, 22, 156, 234, 145, + 0, 284, 299, 156, 229, 145, 0, 314, 319, 0, + 284, 299, 156, 289, 316, 129, 317, 130, 0, 284, + 299, 83, 289, 316, 129, 317, 130, 0, 6, 0, + 315, 101, 6, 0, 0, 88, 315, 89, 0, 0, + 320, 0, 156, 0, 83, 0, 222, 0, 145, 0, + 321, 0, 320, 101, 321, 0, 322, 0, 325, 0, + 284, 324, 156, 6, 323, 0, 0, 142, 217, 0, + 0, 61, 0, 53, 0, 284, 55, 156, 6, 0, + 284, 299, 156, 289, 404, 143, 327, 144, 405, 0, + 330, 328, 0, 331, 329, 0, 0, 0, 331, 0, + 0, 330, 0, 284, 97, 405, 332, 404, 0, 284, + 98, 405, 332, 404, 0, 222, 0, 145, 0, 284, + 299, 30, 156, 229, 145, 0, 284, 299, 30, 156, + 289, 402, 143, 334, 144, 403, 0, 335, 336, 0, + 336, 335, 0, 284, 99, 403, 222, 402, 0, 284, + 100, 403, 222, 402, 0, 284, 299, 338, 404, 143, + 327, 144, 405, 0, 156, 71, 102, 320, 103, 0, + 156, 339, 102, 320, 103, 0, 290, 71, 0, 284, + 299, 341, 350, 0, 342, 0, 344, 0, 156, 52, + 343, 129, 156, 6, 130, 0, 156, 52, 343, 129, + 156, 6, 101, 156, 6, 130, 0, 135, 0, 136, + 0, 133, 0, 134, 0, 124, 0, 125, 0, 73, + 0, 33, 0, 127, 0, 137, 0, 138, 0, 132, + 0, 140, 0, 139, 0, 115, 0, 105, 0, 118, + 0, 119, 0, 104, 0, 106, 0, 121, 0, 120, + 0, 41, 52, 156, 129, 156, 6, 130, 0, 31, + 52, 156, 129, 156, 6, 130, 0, 284, 299, 346, + 351, 0, 6, 129, 317, 130, 347, 0, 0, 348, + 0, 128, 13, 129, 177, 130, 0, 128, 71, 129, + 177, 130, 0, 284, 299, 134, 6, 129, 130, 222, + 0, 222, 0, 145, 0, 222, 0, 145, 0, 0, + 284, 299, 69, 6, 353, 354, 356, 288, 0, 0, + 355, 0, 128, 306, 0, 143, 357, 144, 0, 0, + 358, 0, 359, 0, 358, 359, 0, 311, 0, 312, + 0, 313, 0, 326, 0, 333, 0, 337, 0, 340, + 0, 345, 0, 298, 0, 0, 143, 361, 362, 144, + 0, 0, 364, 363, 0, 101, 0, 0, 231, 0, + 364, 101, 231, 0, 0, 284, 299, 44, 6, 366, + 367, 369, 288, 0, 0, 368, 0, 128, 306, 0, + 143, 370, 144, 0, 0, 371, 0, 372, 0, 371, + 372, 0, 373, 0, 375, 0, 378, 0, 376, 0, + 284, 374, 156, 6, 129, 317, 130, 379, 0, 284, + 374, 83, 6, 129, 317, 130, 379, 0, 0, 50, + 0, 284, 374, 156, 6, 404, 143, 377, 144, 405, + 0, 284, 374, 156, 71, 102, 320, 103, 404, 143, + 377, 144, 405, 0, 284, 97, 379, 0, 284, 98, + 379, 0, 284, 97, 379, 284, 98, 379, 0, 284, + 98, 379, 284, 97, 379, 0, 284, 374, 30, 156, + 6, 379, 0, 145, 0, 143, 144, 0, 0, 284, + 299, 29, 6, 382, 381, 384, 288, 0, 0, 383, + 0, 128, 161, 0, 143, 385, 144, 0, 143, 386, + 101, 144, 0, 0, 386, 0, 387, 0, 386, 101, + 387, 0, 284, 6, 0, 284, 6, 142, 218, 0, + 284, 299, 26, 318, 6, 316, 129, 317, 130, 145, + 0, 390, 0, 391, 0, 390, 391, 0, 400, 102, + 392, 395, 103, 401, 0, 400, 102, 392, 395, 101, + 103, 401, 0, 0, 393, 0, 394, 128, 0, 90, + 0, 91, 0, 30, 0, 92, 0, 93, 0, 94, + 0, 95, 0, 62, 0, 96, 0, 396, 0, 395, + 101, 396, 0, 398, 397, 0, 0, 399, 0, 149, + 0, 129, 179, 130, 0, 0, 0, 0, 0, 0, + 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 121, 122, 123, 124, 125, 126, 129, 130, 140, 143, - 146, 147, 151, 154, 155, 158, 159, 163, 164, 167, - 168, 171, 172, 173, 176, 177, 180, 181, 182, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 196, 197, - 200, 201, 204, 205, 208, 209, 210, 214, 215, 219, - 227, 231, 232, 235, 236, 237, 240, 241, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 258, 261, 262, 263, 266, 267, 272, 273, 276, 277, - 281, 282, 286, 287, 290, 293, 294, 297, 300, 303, - 306, 309, 311, 314, 315, 318, 319, 322, 325, 328, - 331, 334, 337, 338, 339, 340, 341, 344, 345, 346, - 347, 350, 353, 356, 357, 358, 359, 360, 361, 362, - 370, 371, 372, 376, 380, 384, 391, 392, 395, 396, - 399, 400, 404, 405, 406, 407, 410, 411, 412, 415, - 416, 420, 421, 422, 423, 424, 425, 426, 429, 430, - 431, 434, 435, 438, 439, 442, 443, 446, 447, 450, - 451, 454, 455, 457, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 474, 475, 478, 481, 496, - 497, 498, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 516, 519, 520, 524, 525, - 528, 531, 534, 535, 538, 541, 542, 545, 546, 549, - 550, 551, 554, 557, 560, 561, 564, 567, 570, 571, - 572, 573, 574, 575, 576, 579, 580, 583, 584, 587, - 590, 593, 594, 597, 598, 601, 605, 606, 609, 610, - 613, 614, 615, 616, 619, 622, 626, 630, 637, 638, - 641, 642, 645, 646, 649, 650, 653, 656, 659, 660, - 663, 671, 672, 673, 674, 675, 678, 681, 684, 685, - 686, 689, 692, 693, 696, 699, 702, 705, 711, 712, - 715, 718, 721, 724, 725, 728, 731, 734, 737, 742, - 746, 747, 751, 755, 756, 759, 768, 769, 772, 773, - 776, 777, 780, 781, 784, 784, 789, 790, 799, 800, - 803, 804, 808, 811, 812, 815, 816, 819, 822, 825, - 826, 829, 830, 833, 834, 835, 836, 837, 848, 849, - 852, 853, 856, 857, 858, 859, 860, 861, 862, 863, - 864, 865, 866, 867, 868, 869, 873, 881, 884, 885, - 888, 889, 890, 893, 894, 897, 900, 901, 904, 905, - 908, 909, 910, 911, 912, 913, 914, 915, 916, 918, - 921, 924, 927, 939, 945, 953, 954, 957, 958, 961, - 962, 965, 966, 969, 970, 973, 981, 982, 985, 986, - 987, 991, 998, 1004, 1005, 1006, 1009, 1010, 1013, 1014, - 1017, 1023, 1029, 1030, 1033, 1034, 1040, 1041, 1044, 1050, - 1056, 1060, 1064, 1066, 1069, 1073, 1076, 1077, 1080, 1081, - 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, - 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, - 1104, 1106, 1107, 1111, 1112, 1115, 1126, 1133, 1134, 1137, - 1138, 1154, 1164, 1165, 1168, 1169, 1174, 1179, 1182, 1183, - 1186, 1189, 1192, 1193, 1196, 1197, 1200, 1201, 1202, 1203, - 1204, 1205, 1206, 1207, 1209, 1214, 1215, 1218, 1219, 1222, - 1223, 1228, 1232, 1236, 1237, 1240, 1243, 1246, 1247, 1250, - 1251, 1254, 1255, 1256, 1257, 1261, 1271, 1283, 1284, 1287, - 1293, 1301, 1302, 1303, 1304, 1307, 1312, 1313, 1318, 1320, - 1325, 1326, 1329, 1332, 1333, 1336, 1337, 1340, 1341, 1344, - 1345, 1350, 1356, 1359, 1360, 1363, 1365, 1369, 1370, 1373, - 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1387, - 1388, 1391, 1394, 1395, 1398, 1401, 1408, 1411, 1414, 1417, - 1420, 1423 + 127, 128, 129, 130, 131, 132, 135, 136, 146, 149, + 156, 157, 159, 165, 165, 169, 170, 171, 183, 184, + 187, 188, 191, 192, 195, 196, 199, 200, 201, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 215, 216, + 219, 220, 223, 224, 225, 229, 230, 234, 242, 246, + 247, 250, 251, 252, 253, 256, 257, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 276, 280, 283, 284, 287, 287, 288, 291, 292, 295, + 296, 300, 301, 305, 306, 309, 312, 313, 316, 319, + 322, 325, 328, 330, 333, 334, 337, 338, 341, 344, + 347, 350, 353, 356, 357, 358, 359, 360, 363, 364, + 365, 366, 369, 372, 375, 376, 377, 378, 379, 380, + 381, 389, 392, 395, 399, 404, 411, 412, 415, 416, + 419, 420, 424, 425, 426, 427, 430, 431, 432, 435, + 436, 437, 440, 441, 442, 443, 444, 445, 446, 449, + 450, 451, 454, 455, 458, 459, 462, 463, 466, 467, + 470, 471, 474, 475, 477, 480, 481, 482, 483, 484, + 485, 486, 487, 488, 489, 490, 494, 495, 498, 501, + 516, 517, 518, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 536, 539, 540, 544, + 545, 548, 551, 554, 555, 558, 561, 562, 565, 566, + 569, 570, 571, 574, 577, 580, 581, 584, 587, 590, + 591, 592, 593, 594, 595, 596, 599, 600, 605, 617, + 620, 621, 625, 628, 631, 632, 635, 636, 639, 642, + 643, 646, 647, 650, 651, 652, 653, 656, 659, 663, + 667, 674, 675, 678, 679, 682, 683, 686, 687, 690, + 693, 696, 697, 700, 790, 791, 792, 793, 794, 797, + 800, 803, 804, 805, 808, 811, 812, 815, 818, 821, + 824, 830, 831, 834, 837, 840, 841, 844, 847, 850, + 853, 858, 862, 863, 867, 871, 872, 875, 884, 885, + 888, 889, 892, 893, 896, 897, 900, 900, 905, 906, + 915, 916, 919, 920, 924, 927, 928, 931, 932, 935, + 938, 941, 942, 945, 946, 949, 950, 951, 952, 953, + 964, 965, 968, 969, 972, 973, 974, 975, 976, 977, + 978, 979, 980, 981, 982, 983, 984, 985, 986, 990, + 997, 1001, 1002, 1005, 1008, 1009, 1012, 1015, 1016, 1019, + 1020, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, + 1033, 1036, 1041, 1044, 1057, 1063, 1072, 1073, 1076, 1077, + 1081, 1082, 1085, 1086, 1089, 1090, 1093, 1094, 1097, 1098, + 1101, 1109, 1110, 1113, 1114, 1115, 1119, 1127, 1133, 1134, + 1135, 1138, 1139, 1142, 1143, 1146, 1152, 1158, 1159, 1162, + 1163, 1169, 1170, 1173, 1179, 1185, 1195, 1197, 1200, 1204, + 1207, 1208, 1211, 1212, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, + 1231, 1232, 1233, 1234, 1235, 1236, 1240, 1241, 1244, 1257, + 1264, 1265, 1268, 1269, 1285, 1295, 1296, 1299, 1300, 1305, + 1310, 1313, 1314, 1317, 1320, 1323, 1324, 1327, 1328, 1331, + 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1340, 1345, 1345, + 1348, 1349, 1352, 1353, 1357, 1358, 1363, 1367, 1371, 1372, + 1375, 1378, 1381, 1382, 1385, 1386, 1389, 1390, 1391, 1392, + 1396, 1406, 1418, 1419, 1422, 1428, 1436, 1437, 1438, 1439, + 1442, 1447, 1448, 1453, 1455, 1460, 1461, 1464, 1467, 1468, + 1471, 1472, 1475, 1476, 1479, 1480, 1485, 1491, 1494, 1495, + 1498, 1500, 1504, 1505, 1508, 1511, 1512, 1513, 1514, 1515, + 1516, 1517, 1518, 1519, 1522, 1523, 1526, 1529, 1530, 1533, + 1536, 1543, 1546, 1549, 1552, 1555, 1558 }; -static const char * const yytname[] = { "$","error","$undefined.","RANK_SPECIFIER", -"IDENTIFIER","INTEGER_LITERAL","REAL_LITERAL","CHARACTER_LITERAL","STRING_LITERAL", -"ABSTRACT","AS","BASE","BOOL","BREAK","BYTE","CASE","CATCH","CHAR","CHECKED", -"CLASS","CONST","CONTINUE","DECIMAL","DEFAULT","DELEGATE","DO","DOUBLE","ELSE", -"ENUM","EVENT","EXPLICIT","EXTERN","FALSE","FINALLY","FIXED","FLOAT","FOR","FOREACH", -"GOTO","IF","IMPLICIT","IN","INT","INTERFACE","INTERNAL","IS","LOCK","LONG", -"NAMESPACE","NEW","NULL_LITERAL","OBJECT","OPERATOR","OUT","OVERRIDE","PARAMS", -"PRIVATE","PROTECTED","PUBLIC","READONLY","REF","RETURN","SBYTE","SEALED","SHORT", -"SIZEOF","STACKALLOC","STATIC","STRING","STRUCT","SWITCH","THIS","THROW","TRUE", +static const char * const yytname[] = { "$","error","$undefined.","THEN","ELSE", +"RANK_SPECIFIER","IDENTIFIER","INTEGER_LITERAL","REAL_LITERAL","CHARACTER_LITERAL", +"STRING_LITERAL","ABSTRACT","AS","BASE","BOOL","BREAK","BYTE","CASE","CATCH", +"CHAR","CHECKED","CLASS","CONST","CONTINUE","DECIMAL","DEFAULT","DELEGATE","DO", +"DOUBLE","ENUM","EVENT","EXPLICIT","EXTERN","FALSE","FINALLY","FIXED","FLOAT", +"FOR","FOREACH","GOTO","IF","IMPLICIT","IN","INT","INTERFACE","INTERNAL","IS", +"LOCK","LONG","NAMESPACE","NEW","NULL_LITERAL","OPERATOR","OUT","OVERRIDE","PARAMS", +"PARTIAL","PRIVATE","PROTECTED","PUBLIC","READONLY","REF","RETURN","SBYTE","SEALED", +"SHORT","SIZEOF","STACKALLOC","STATIC","STRUCT","SWITCH","THIS","THROW","TRUE", "TRY","TYPEOF","UINT","ULONG","UNCHECKED","UNSAFE","USHORT","USING","VIRTUAL", -"VOID","VOLATILE","WHILE","ASSEMBLY","FIELD","METHOD","MODULE","PARAM","PROPERTY", -"TYPE","GET","SET","ADD","REMOVE","COMMA","LEFT_BRACKET","RIGHT_BRACKET","GT", -"PLUSEQ","MINUSEQ","STAREQ","DIVEQ","MODEQ","XOREQ","ANDEQ","OREQ","LTLT","GTGTEQ", -"LTLTEQ","EQEQ","NOTEQ","LEQ","GEQ","ANDAND","OROR","PLUSPLUS","MINUSMINUS", -"ARROW","'<'","'*'","'('","')'","'.'","'&'","'!'","'~'","'+'","'-'","'/'","'%'", -"'>'","'^'","'|'","'?'","':'","'='","'{'","'}'","';'","literal","boolean_literal", -"namespace_name","type_name","opt_generic","genericlist","continuity","ENTER_generic", -"END_generic","type","non_array_type","simple_type","primitive_type","numeric_type", -"integral_type","floating_point_type","class_type","pointer_type","array_type", -"rank_specifiers_opt","rank_specifier","variable_reference","argument_list", -"argument","primary_expression","primary_expression_no_parenthesis","parenthesized_expression", -"member_access","invocation_expression","argument_list_opt","element_access", -"expression_list_opt","expression_list","this_access","base_access","post_increment_expression", -"post_decrement_expression","new_expression","object_creation_expression","array_creation_expression", -"array_initializer_opt","typeof_expression","checked_expression","unchecked_expression", -"pointer_member_access","addressof_expression","sizeof_expression","postfix_expression", -"unary_expression_not_plusminus","pre_increment_expression","pre_decrement_expression", -"unary_expression","cast_expression","type_quals_opt","type_quals","type_qual", -"multiplicative_expression","additive_expression","shift_expression","relational_expression", -"equality_expression","and_expression","exclusive_or_expression","inclusive_or_expression", -"conditional_and_expression","conditional_or_expression","conditional_expression", -"assignment","assignment_operator","expression","constant_expression","boolean_expression", -"statement","embedded_statement","block","statement_list_opt","statement_list", -"empty_statement","labeled_statement","declaration_statement","local_variable_declaration", -"variable_declarators","variable_declarator","variable_initializer","stackalloc_initializer", -"local_constant_declaration","constant_declarators","constant_declarator","expression_statement", -"statement_expression","selection_statement","if_statement","switch_statement", +"VOID","VOLATILE","WHILE","STRING","OBJECT","GEN_LT","GEN_GT","ASSEMBLY","FIELD", +"METHOD","MODULE","PARAM","PROPERTY","TYPE","GET","SET","ADD","REMOVE","COMMA", +"LEFT_BRACKET","RIGHT_BRACKET","GT","GTGT","LT","PLUSEQ","MINUSEQ","STAREQ", +"DIVEQ","MODEQ","XOREQ","ANDEQ","OREQ","LTLT","GTGTEQ","LTLTEQ","EQEQ","NOTEQ", +"LEQ","GEQ","ANDAND","OROR","PLUSPLUS","MINUSMINUS","ARROW","'*'","':'","'('", +"')'","'.'","'&'","'!'","'~'","'+'","'-'","'/'","'%'","'^'","'|'","'?'","'='", +"'{'","'}'","';'","literal","boolean_literal","namespace_name","type_name","opt_generic", +"@1","qualified_identifier_opt_generic","@2","genericlist","@3","type","non_array_type", +"simple_type","primitive_type","numeric_type","integral_type","floating_point_type", +"pointer_type","array_type","rank_specifiers_opt","rank_specifier","variable_reference", +"argument_list","argument","primary_expression","primary_expression_no_parenthesis", +"delegate_expression","parenthesized_expression","member_access","invocation_expression", +"@4","argument_list_opt","element_access","expression_list_opt","expression_list", +"this_access","base_access","post_increment_expression","post_decrement_expression", +"new_expression","object_creation_expression","array_creation_expression","array_initializer_opt", +"typeof_expression","checked_expression","unchecked_expression","pointer_member_access", +"addressof_expression","sizeof_expression","postfix_expression","unary_expression_not_plusminus", +"pre_increment_expression","pre_decrement_expression","unary_expression","cast_expression", +"type_quals_opt","type_quals","type_qual","multiplicative_expression","additive_expression", +"shift_expression","relational_expression","equality_expression","and_expression", +"exclusive_or_expression","inclusive_or_expression","conditional_and_expression", +"conditional_or_expression","conditional_expression","assignment","assignment_operator", +"expression","constant_expression","boolean_expression","statement","embedded_statement", +"block","statement_list_opt","statement_list","empty_statement","labeled_statement", +"declaration_statement","local_variable_declaration","variable_declarators", +"variable_declarator","variable_initializer","stackalloc_initializer","local_constant_declaration", +"constant_declarators","constant_declarator","expression_statement","statement_expression", +"selection_statement","if_statement","ifpart","opt_else","switch_statement", "switch_block","switch_sections_opt","switch_sections","switch_section","switch_labels", "switch_label","iteration_statement","unsafe_statement","while_statement","do_statement", "for_statement","for_initializer_opt","for_condition_opt","for_iterator_opt", @@ -588,975 +598,934 @@ static const char * const yytname[] = { "$","error","$undefined.","RANK_SPECIF "unchecked_statement","lock_statement","using_statement","resource_acquisition", "fixed_statement","fixed_pointer_declarators","fixed_pointer_declarator","compilation_unit", "using_directives_opt","attributes_opt","namespace_member_declarations_opt", -"namespace_declaration","@1","comma_opt","qualified_identifier","qualifier", +"namespace_declaration","@5","comma_opt","qualified_identifier","qualifier", "namespace_body","using_directives","using_directive","using_alias_directive", "using_namespace_directive","namespace_member_declarations","namespace_member_declaration", "type_declaration","modifiers_opt","modifiers","modifier","class_declaration", -"@2","class_base_opt","class_base","interface_type_list","class_body","class_member_declarations_opt", +"@6","class_base_opt","class_base","interface_type_list","class_body","class_member_declarations_opt", "class_member_declarations","class_member_declaration","constant_declaration", -"field_declaration","method_declaration","method_header","formal_parameter_list_opt", -"return_type","method_body","formal_parameter_list","formal_parameter","fixed_parameter", -"fixed_parameter_opt_default","parameter_modifier_opt","parameter_array","property_declaration", -"accessor_declarations","set_accessor_declaration_opt","get_accessor_declaration_opt", -"get_accessor_declaration","set_accessor_declaration","accessor_body","event_declaration", -"event_accessor_declarations","add_accessor_declaration","remove_accessor_declaration", -"indexer_declaration","@3","indexer_declarator","qualified_this","operator_declaration", -"operator_declarator","overloadable_operator_declarator","overloadable_operator", -"optGT","conversion_operator_declarator","constructor_declaration","constructor_declarator", -"constructor_initializer_opt","constructor_initializer","destructor_declaration", -"operator_body","constructor_body","struct_declaration","@4","struct_interfaces_opt", -"struct_interfaces","struct_body","struct_member_declarations_opt","struct_member_declarations", -"struct_member_declaration","array_initializer","variable_initializer_list_opt", -"variable_initializer_list","interface_declaration","@5","interface_base_opt", -"interface_base","interface_body","interface_member_declarations_opt","interface_member_declarations", -"interface_member_declaration","interface_method_declaration","new_opt","interface_property_declaration", -"interface_indexer_declaration","interface_accessors","interface_event_declaration", -"interface_empty_body","enum_declaration","@6","enum_base_opt","enum_base","enum_body", -"enum_member_declarations_opt","enum_member_declarations","enum_member_declaration", -"delegate_declaration","attributes","attribute_sections","attribute_section", -"attribute_target_specifier_opt","attribute_target_specifier","attribute_target", -"attribute_list","attribute","attribute_arguments_opt","attribute_name","attribute_arguments", -"ENTER_attrib","EXIT_attrib","ENTER_accessor_decl","EXIT_accessor_decl","ENTER_getset", -"EXIT_getset","" +"field_declaration","method_declaration","method_header","name_list","opt_generic_fct", +"formal_parameter_list_opt","return_type","method_body","formal_parameter_list", +"formal_parameter","fixed_parameter","fixed_parameter_opt_default","parameter_modifier_opt", +"parameter_array","property_declaration","accessor_declarations","set_accessor_declaration_opt", +"get_accessor_declaration_opt","get_accessor_declaration","set_accessor_declaration", +"accessor_body","event_declaration","event_accessor_declarations","add_accessor_declaration", +"remove_accessor_declaration","indexer_declaration","indexer_declarator","qualified_this", +"operator_declaration","operator_declarator","overloadable_operator_declarator", +"overloadable_operator","conversion_operator_declarator","constructor_declaration", +"constructor_declarator","constructor_initializer_opt","constructor_initializer", +"destructor_declaration","operator_body","constructor_body","struct_declaration", +"@7","struct_interfaces_opt","struct_interfaces","struct_body","struct_member_declarations_opt", +"struct_member_declarations","struct_member_declaration","array_initializer", +"@8","variable_initializer_list_opt","opt_comma","variable_initializer_list", +"interface_declaration","@9","interface_base_opt","interface_base","interface_body", +"interface_member_declarations_opt","interface_member_declarations","interface_member_declaration", +"interface_method_declaration","new_opt","interface_property_declaration","interface_indexer_declaration", +"interface_accessors","interface_event_declaration","interface_empty_body","enum_declaration", +"@10","enum_base_opt","enum_base","enum_body","enum_member_declarations_opt", +"enum_member_declarations","enum_member_declaration","delegate_declaration", +"attributes","attribute_sections","attribute_section","attribute_target_specifier_opt", +"attribute_target_specifier","attribute_target","attribute_list","attribute", +"attribute_arguments_opt","attribute_name","attribute_arguments","ENTER_attrib", +"EXIT_attrib","ENTER_accessor_decl","EXIT_accessor_decl","ENTER_getset","EXIT_getset", +"" }; #endif static const short yyr1[] = { 0, - 142, 142, 142, 142, 142, 142, 143, 143, 144, 145, - 146, 146, 147, 148, 148, 149, 150, 151, 151, 152, - 152, 153, 153, 153, 154, 154, 155, 155, 155, 156, - 156, 156, 156, 156, 156, 156, 156, 156, 157, 157, - 158, 158, 159, 159, 160, 160, 160, 161, 161, 162, - 163, 164, 164, 165, 165, 165, 166, 166, 167, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 167, 167, - 168, 169, 169, 169, 170, 170, 171, 171, 172, 172, - 173, 173, 174, 174, 175, 176, 176, 177, 178, 179, - 180, 181, 181, 182, 182, 183, 183, 184, 185, 186, - 187, 188, 189, 189, 189, 189, 189, 190, 190, 190, - 190, 191, 192, 193, 193, 193, 193, 193, 193, 193, - 194, 194, 194, 194, 194, 194, 195, 195, 196, 196, - 197, 197, 198, 198, 198, 198, 199, 199, 199, 200, - 200, 201, 201, 201, 201, 201, 201, 201, 202, 202, - 202, 203, 203, 204, 204, 205, 205, 206, 206, 207, - 207, 208, 208, 209, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 211, 211, 212, 213, 214, - 214, 214, 215, 215, 215, 215, 215, 215, 215, 215, - 215, 215, 215, 215, 215, 216, 217, 217, 218, 218, - 219, 220, 221, 221, 222, 223, 223, 224, 224, 225, - 225, 225, 226, 227, 228, 228, 229, 230, 231, 231, - 231, 231, 231, 231, 231, 232, 232, 233, 233, 234, - 235, 236, 236, 237, 237, 238, 239, 239, 240, 240, - 241, 241, 241, 241, 242, 243, 244, 245, 246, 246, - 247, 247, 248, 248, 249, 249, 250, 251, 252, 252, - 253, 254, 254, 254, 254, 254, 255, 256, 257, 257, - 257, 258, 259, 259, 260, 261, 261, 261, 262, 262, - 263, 263, 263, 264, 264, 265, 266, 267, 268, 269, - 270, 270, 271, 272, 272, 273, 274, 274, 275, 275, - 276, 276, 277, 277, 279, 278, 280, 280, 281, 281, - 282, 282, 283, 284, 284, 285, 285, 286, 287, 288, - 288, 289, 289, 290, 290, 290, 290, 290, 291, 291, - 292, 292, 293, 293, 293, 293, 293, 293, 293, 293, - 293, 293, 293, 293, 293, 293, 295, 294, 296, 296, - 297, 297, 297, 298, 298, 299, 300, 300, 301, 301, - 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, - 303, 304, 305, 306, 306, 307, 307, 308, 308, 309, - 309, 310, 310, 311, 311, 312, 313, 313, 314, 314, - 314, 315, 316, 317, 317, 317, 318, 318, 319, 319, - 320, 321, 322, 322, 323, 323, 324, 324, 325, 326, - 328, 327, 329, 329, 330, 331, 332, 332, 333, 333, - 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, - 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, - 334, 335, 335, 336, 336, 337, 338, 339, 339, 340, - 340, 341, 342, 342, 343, 343, 345, 344, 346, 346, - 347, 348, 349, 349, 350, 350, 351, 351, 351, 351, - 351, 351, 351, 351, 351, 352, 352, 353, 353, 354, - 354, 356, 355, 357, 357, 358, 359, 360, 360, 361, - 361, 362, 362, 362, 362, 363, 363, 364, 364, 365, - 366, 367, 367, 367, 367, 368, 369, 369, 371, 370, - 372, 372, 373, 374, 374, 375, 375, 376, 376, 377, - 377, 378, 379, 380, 380, 381, 381, 382, 382, 383, - 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, - 385, 386, 387, 387, 388, 389, 390, 391, 392, 393, - 394, 395 + 146, 146, 146, 146, 146, 146, 147, 147, 148, 149, + 150, 151, 150, 153, 152, 154, 155, 154, 156, 156, + 157, 157, 158, 158, 159, 159, 160, 160, 160, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 162, 162, + 163, 163, 164, 164, 164, 165, 165, 166, 167, 168, + 168, 169, 169, 169, 169, 170, 170, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, + 172, 173, 174, 174, 176, 175, 175, 177, 177, 178, + 178, 179, 179, 180, 180, 181, 182, 182, 183, 184, + 185, 186, 187, 187, 188, 188, 189, 189, 190, 191, + 192, 193, 194, 195, 195, 195, 195, 195, 196, 196, + 196, 196, 197, 198, 199, 199, 199, 199, 199, 199, + 199, 200, 200, 200, 200, 200, 201, 201, 202, 202, + 203, 203, 204, 204, 204, 204, 205, 205, 205, 206, + 206, 206, 207, 207, 207, 207, 207, 207, 207, 208, + 208, 208, 209, 209, 210, 210, 211, 211, 212, 212, + 213, 213, 214, 214, 215, 216, 216, 216, 216, 216, + 216, 216, 216, 216, 216, 216, 217, 217, 218, 219, + 220, 220, 220, 221, 221, 221, 221, 221, 221, 221, + 221, 221, 221, 221, 221, 221, 222, 223, 223, 224, + 224, 225, 226, 227, 227, 228, 229, 229, 230, 230, + 231, 231, 231, 232, 233, 234, 234, 235, 236, 237, + 237, 237, 237, 237, 237, 237, 238, 238, 239, 240, + 241, 241, 242, 243, 244, 244, 245, 245, 246, 247, + 247, 248, 248, 249, 249, 249, 249, 250, 251, 252, + 253, 254, 254, 255, 255, 256, 256, 257, 257, 258, + 259, 260, 260, 261, 262, 262, 262, 262, 262, 263, + 264, 265, 265, 265, 266, 267, 267, 268, 269, 269, + 269, 270, 270, 271, 271, 272, 272, 273, 274, 275, + 276, 277, 278, 278, 279, 280, 280, 281, 282, 282, + 283, 283, 284, 284, 285, 285, 287, 286, 288, 288, + 289, 289, 290, 290, 291, 292, 292, 293, 293, 294, + 295, 296, 296, 297, 297, 298, 298, 298, 298, 298, + 299, 299, 300, 300, 301, 301, 301, 301, 301, 301, + 301, 301, 301, 301, 301, 301, 301, 301, 301, 303, + 302, 304, 304, 305, 306, 306, 307, 308, 308, 309, + 309, 310, 310, 310, 310, 310, 310, 310, 310, 310, + 310, 311, 312, 313, 314, 314, 315, 315, 316, 316, + 317, 317, 318, 318, 319, 319, 320, 320, 321, 321, + 322, 323, 323, 324, 324, 324, 325, 326, 327, 327, + 327, 328, 328, 329, 329, 330, 331, 332, 332, 333, + 333, 334, 334, 335, 336, 337, 338, 338, 339, 340, + 341, 341, 342, 342, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, + 343, 343, 343, 343, 343, 343, 344, 344, 345, 346, + 347, 347, 348, 348, 349, 350, 350, 351, 351, 353, + 352, 354, 354, 355, 356, 357, 357, 358, 358, 359, + 359, 359, 359, 359, 359, 359, 359, 359, 361, 360, + 362, 362, 363, 363, 364, 364, 366, 365, 367, 367, + 368, 369, 370, 370, 371, 371, 372, 372, 372, 372, + 373, 373, 374, 374, 375, 376, 377, 377, 377, 377, + 378, 379, 379, 381, 380, 382, 382, 383, 384, 384, + 385, 385, 386, 386, 387, 387, 388, 389, 390, 390, + 391, 391, 392, 392, 393, 394, 394, 394, 394, 394, + 394, 394, 394, 394, 395, 395, 396, 397, 397, 398, + 399, 400, 401, 402, 403, 404, 405 }; static const short yyr2[] = { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 0, 2, 3, 2, 3, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 0, 0, 4, 0, 3, 1, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 2, 2, 2, 0, 2, 1, - 1, 1, 3, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 3, 3, 3, 4, 4, 0, 1, 4, 4, - 0, 1, 1, 3, 1, 3, 4, 2, 2, 1, - 5, 7, 3, 0, 1, 4, 4, 4, 4, 3, - 2, 4, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 2, 2, 1, 2, 2, 2, 1, 1, 1, - 4, 5, 6, 5, 5, 5, 0, 1, 1, 2, - 1, 1, 1, 3, 3, 3, 1, 3, 3, 1, - 3, 1, 3, 3, 3, 3, 3, 3, 1, 3, - 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, - 3, 1, 5, 3, 1, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 2, 0, 2, 1, 1, 1, + 3, 1, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 5, 3, 3, 3, 0, 6, 4, 0, 1, 4, + 4, 0, 1, 1, 3, 1, 3, 4, 2, 2, + 1, 5, 7, 3, 0, 1, 4, 4, 4, 4, + 3, 2, 4, 1, 1, 1, 1, 1, 1, 2, + 2, 1, 2, 2, 1, 2, 2, 2, 1, 1, + 1, 4, 5, 6, 5, 5, 0, 1, 1, 2, + 1, 1, 1, 3, 3, 3, 1, 3, 3, 1, + 3, 3, 1, 3, 3, 3, 3, 3, 3, 1, + 3, 3, 1, 3, 1, 3, 1, 3, 1, 3, + 1, 3, 1, 5, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 0, 1, 1, 2, - 1, 3, 2, 2, 2, 1, 3, 1, 3, 1, - 1, 1, 5, 3, 1, 3, 3, 2, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 5, 7, 5, - 3, 0, 1, 1, 2, 2, 1, 2, 3, 2, - 1, 1, 1, 1, 2, 5, 7, 9, 0, 1, - 0, 1, 0, 1, 1, 1, 1, 1, 1, 3, - 8, 1, 1, 1, 1, 1, 2, 2, 3, 4, - 3, 3, 0, 1, 3, 3, 3, 4, 1, 2, - 6, 6, 2, 0, 1, 2, 2, 2, 5, 5, - 1, 1, 6, 1, 3, 3, 2, 2, 0, 1, - 0, 1, 0, 1, 0, 6, 0, 1, 1, 2, - 2, 3, 4, 1, 2, 1, 1, 5, 3, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 0, 1, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 8, 0, 1, - 2, 2, 4, 1, 3, 3, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 6, 5, 2, 7, 7, 0, 1, 1, 1, 1, - 1, 1, 3, 1, 1, 5, 0, 2, 0, 1, - 1, 4, 9, 2, 2, 0, 0, 1, 0, 1, - 5, 5, 1, 1, 6, 10, 2, 2, 5, 5, - 0, 9, 5, 5, 2, 4, 1, 1, 7, 10, + 1, 1, 1, 1, 1, 1, 3, 0, 1, 1, + 2, 1, 3, 2, 2, 2, 1, 3, 1, 3, + 1, 1, 1, 5, 3, 1, 3, 3, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, + 2, 0, 5, 3, 0, 1, 1, 2, 2, 1, + 2, 3, 2, 1, 1, 1, 1, 2, 5, 7, + 9, 0, 1, 0, 1, 0, 1, 1, 1, 1, + 1, 1, 3, 8, 1, 1, 1, 1, 1, 2, + 2, 3, 4, 3, 3, 0, 1, 3, 3, 3, + 4, 1, 2, 6, 2, 0, 1, 2, 2, 2, + 5, 5, 1, 1, 6, 1, 3, 3, 2, 2, + 0, 1, 0, 1, 0, 1, 0, 6, 0, 1, + 1, 2, 2, 3, 4, 1, 2, 1, 1, 5, + 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, + 9, 0, 1, 2, 1, 3, 3, 0, 1, 1, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 6, 5, 2, 8, 8, 1, 3, 0, 3, + 0, 1, 1, 1, 1, 1, 1, 3, 1, 1, + 5, 0, 2, 0, 1, 1, 4, 9, 2, 2, + 0, 0, 1, 0, 1, 5, 5, 1, 1, 6, + 10, 2, 2, 5, 5, 8, 5, 5, 2, 4, + 1, 1, 7, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, - 1, 1, 0, 7, 7, 4, 5, 0, 1, 5, - 5, 7, 1, 1, 1, 1, 0, 8, 0, 1, + 1, 1, 1, 1, 1, 1, 7, 7, 4, 5, + 0, 1, 5, 5, 7, 1, 1, 1, 1, 0, + 8, 0, 1, 2, 3, 0, 1, 1, 2, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, + 0, 2, 1, 0, 1, 3, 0, 8, 0, 1, 2, 3, 0, 1, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 4, 0, 1, 1, - 3, 0, 8, 0, 1, 2, 3, 0, 1, 1, - 2, 1, 1, 1, 1, 8, 8, 0, 1, 9, - 12, 3, 3, 6, 6, 6, 1, 2, 0, 8, - 0, 1, 2, 3, 4, 0, 1, 1, 3, 2, - 4, 9, 1, 1, 2, 6, 7, 0, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 2, 0, 1, 1, 3, 0, 0, 0, 0, - 0, 0 + 8, 8, 0, 1, 9, 12, 3, 3, 6, 6, + 6, 1, 2, 0, 8, 0, 1, 2, 3, 4, + 0, 1, 1, 3, 2, 4, 10, 1, 1, 2, + 6, 7, 0, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 2, 0, 1, 1, + 3, 0, 0, 0, 0, 0, 0 }; -static const short yydefact[] = { 299, - 0, 301, 300, 314, 316, 317, 309, 0, 9, 0, - 329, 322, 301, 320, 323, 324, 325, 326, 327, 328, - 302, 523, 524, 0, 315, 311, 0, 319, 310, 333, - 334, 335, 0, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 0, 330, 331, 329, 321, 525, - 528, 309, 0, 312, 305, 0, 0, 0, 0, 0, - 332, 533, 538, 531, 532, 534, 535, 536, 537, 539, - 0, 529, 0, 318, 0, 347, 26, 31, 38, 29, - 40, 39, 34, 36, 41, 30, 32, 42, 35, 37, - 33, 379, 21, 378, 18, 20, 22, 25, 27, 28, - 23, 24, 19, 11, 0, 511, 482, 457, 545, 11, - 0, 540, 543, 530, 299, 307, 349, 44, 43, 50, - 46, 45, 0, 10, 47, 0, 0, 509, 512, 484, - 459, 0, 548, 81, 542, 544, 301, 308, 306, 0, - 0, 350, 0, 12, 16, 301, 513, 0, 0, 0, - 485, 0, 0, 460, 548, 541, 526, 2, 3, 4, - 5, 0, 0, 8, 0, 6, 0, 85, 7, 0, +static const short yydefact[] = { 301, + 0, 303, 302, 316, 318, 319, 311, 0, 9, 0, + 331, 324, 303, 322, 325, 326, 327, 328, 329, 330, + 304, 528, 529, 0, 317, 313, 0, 321, 312, 335, + 336, 337, 0, 338, 339, 349, 340, 341, 342, 343, + 344, 345, 346, 347, 348, 0, 332, 333, 331, 323, + 530, 533, 311, 0, 314, 307, 0, 0, 0, 0, + 0, 334, 538, 543, 536, 537, 539, 540, 541, 542, + 544, 0, 534, 0, 320, 0, 379, 26, 31, 38, + 29, 40, 39, 34, 36, 30, 32, 35, 37, 33, + 384, 22, 10, 383, 19, 21, 23, 25, 27, 28, + 24, 20, 14, 0, 516, 487, 460, 550, 14, 0, + 545, 548, 535, 301, 309, 0, 350, 42, 41, 48, + 44, 43, 11, 45, 379, 0, 514, 517, 489, 462, + 0, 553, 82, 547, 549, 303, 310, 308, 377, 0, + 352, 12, 15, 0, 518, 0, 0, 0, 490, 0, + 0, 463, 553, 546, 531, 2, 3, 4, 5, 0, + 0, 0, 8, 0, 6, 0, 86, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, + 1, 0, 0, 104, 57, 66, 56, 60, 61, 62, + 0, 83, 63, 64, 106, 107, 65, 91, 59, 67, + 69, 70, 108, 121, 68, 109, 115, 119, 120, 133, + 112, 137, 140, 143, 150, 153, 155, 157, 159, 161, + 163, 177, 178, 84, 105, 0, 303, 380, 0, 0, + 0, 353, 0, 303, 303, 309, 355, 491, 303, 309, + 464, 303, 309, 532, 0, 0, 0, 303, 0, 0, + 19, 20, 0, 0, 0, 113, 114, 118, 127, 127, + 137, 0, 105, 102, 110, 111, 116, 117, 78, 0, + 0, 0, 0, 551, 0, 89, 90, 0, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 59, 1, 0, 0, 103, 58, 57, 61, 62, 63, - 0, 82, 64, 65, 105, 106, 66, 90, 60, 67, - 69, 70, 107, 120, 68, 108, 114, 118, 119, 133, - 111, 137, 140, 142, 149, 152, 154, 156, 158, 160, - 162, 176, 177, 83, 104, 0, 301, 354, 351, 352, - 301, 307, 0, 389, 0, 377, 382, 384, 385, 301, - 307, 486, 301, 307, 461, 301, 307, 527, 0, 0, - 0, 0, 18, 19, 0, 0, 0, 112, 113, 117, - 127, 127, 127, 137, 0, 104, 101, 109, 110, 115, - 116, 0, 0, 0, 0, 77, 546, 0, 88, 89, - 0, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 77, 313, 0, 0, 329, 370, - 0, 301, 359, 361, 362, 363, 0, 364, 365, 366, - 367, 368, 369, 348, 17, 17, 13, 391, 0, 390, - 0, 0, 301, 0, 0, 517, 518, 510, 498, 0, - 301, 490, 492, 493, 495, 494, 483, 329, 475, 467, - 468, 469, 470, 471, 472, 473, 474, 0, 301, 465, - 458, 0, 86, 0, 77, 0, 478, 93, 0, 0, - 0, 0, 132, 131, 0, 128, 129, 0, 0, 0, - 71, 127, 73, 74, 0, 72, 0, 0, 78, 52, - 0, 54, 84, 100, 164, 134, 135, 136, 133, 138, - 139, 141, 148, 147, 145, 146, 143, 144, 150, 151, - 153, 155, 157, 159, 161, 0, 0, 0, 353, 355, - 0, 356, 360, 197, 381, 380, 373, 0, 14, 0, - 0, 522, 383, 520, 514, 301, 499, 0, 487, 491, - 0, 462, 466, 87, 98, 0, 0, 0, 210, 480, - 212, 211, 0, 479, 102, 97, 96, 99, 0, 130, - 0, 0, 0, 121, 0, 79, 56, 51, 55, 0, - 75, 0, 80, 76, 309, 0, 0, 0, 0, 0, - 0, 0, 411, 0, 417, 418, 0, 309, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, - 0, 273, 0, 0, 0, 0, 0, 201, 0, 22, - 23, 62, 105, 106, 90, 118, 119, 0, 221, 199, - 182, 183, 0, 198, 184, 180, 181, 0, 0, 185, - 0, 186, 226, 227, 187, 194, 241, 242, 243, 244, - 188, 262, 263, 264, 265, 266, 189, 190, 191, 192, - 193, 195, 104, 15, 392, 387, 0, 515, 519, 0, - 0, 0, 91, 48, 0, 476, 0, 126, 124, 125, - 122, 0, 53, 163, 301, 0, 0, 0, 0, 0, - 0, 208, 0, 0, 0, 206, 551, 0, 0, 551, - 454, 453, 416, 456, 455, 446, 0, 267, 287, 0, - 268, 0, 0, 249, 0, 0, 0, 0, 0, 0, - 274, 0, 0, 0, 0, 288, 245, 0, 0, 208, - 205, 196, 200, 203, 204, 218, 0, 386, 178, 521, - 0, 0, 551, 0, 94, 48, 0, 477, 481, 123, - 0, 0, 0, 215, 0, 549, 0, 0, 301, 0, - 0, 428, 427, 435, 436, 437, 441, 440, 425, 426, - 439, 429, 432, 423, 424, 421, 422, 430, 431, 443, - 434, 433, 0, 301, 0, 372, 301, 0, 415, 301, - 0, 202, 214, 0, 0, 255, 259, 0, 250, 256, - 0, 269, 0, 271, 179, 0, 0, 272, 0, 275, - 0, 0, 276, 279, 277, 292, 291, 0, 0, 388, - 0, 301, 301, 0, 301, 92, 95, 49, 0, 448, - 0, 0, 371, 405, 0, 0, 0, 0, 0, 209, - 442, 438, 0, 0, 207, 0, 301, 0, 301, 0, - 0, 0, 294, 251, 0, 0, 270, 0, 0, 0, - 0, 283, 286, 280, 278, 0, 0, 0, 507, 506, - 0, 0, 301, 0, 213, 0, 447, 449, 217, 216, - 301, 0, 0, 375, 452, 0, 413, 374, 0, 0, - 301, 301, 414, 0, 0, 0, 0, 0, 257, 0, - 252, 260, 0, 228, 289, 232, 230, 284, 284, 290, - 246, 508, 0, 0, 0, 0, 551, 0, 0, 0, - 0, 301, 301, 0, 0, 0, 552, 552, 552, 0, - 394, 398, 0, 395, 400, 552, 0, 296, 295, 293, - 253, 0, 0, 0, 0, 0, 233, 234, 0, 237, - 285, 0, 0, 497, 496, 0, 0, 552, 0, 77, - 77, 550, 550, 550, 0, 407, 0, 408, 445, 444, - 0, 419, 0, 0, 393, 412, 247, 0, 254, 258, - 0, 229, 0, 240, 231, 235, 236, 238, 0, 0, - 301, 301, 500, 301, 0, 0, 0, 0, 406, 0, - 404, 403, 551, 551, 0, 261, 239, 282, 281, 0, - 0, 0, 450, 451, 549, 549, 0, 401, 402, 248, - 0, 0, 552, 409, 410, 420, 504, 505, 501, 0, - 0, 0 + 0, 0, 315, 378, 354, 303, 309, 0, 16, 394, + 0, 382, 387, 389, 390, 0, 0, 522, 523, 515, + 0, 503, 0, 303, 495, 497, 498, 500, 499, 488, + 331, 478, 470, 471, 472, 0, 473, 474, 475, 476, + 477, 0, 303, 468, 461, 0, 87, 0, 0, 78, + 0, 479, 94, 0, 0, 0, 0, 132, 131, 0, + 128, 129, 0, 0, 72, 127, 311, 0, 0, 79, + 50, 0, 52, 74, 0, 73, 75, 85, 101, 165, + 134, 135, 136, 133, 138, 139, 142, 141, 149, 148, + 145, 144, 146, 147, 151, 152, 154, 156, 158, 160, + 162, 0, 0, 331, 371, 0, 303, 360, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 351, 13, 17, + 396, 0, 395, 0, 0, 303, 525, 519, 303, 356, + 504, 0, 492, 496, 0, 198, 386, 385, 374, 465, + 469, 88, 99, 0, 0, 0, 481, 103, 98, 97, + 100, 0, 130, 0, 0, 122, 0, 0, 54, 49, + 53, 0, 77, 80, 78, 0, 81, 0, 357, 361, + 0, 0, 0, 527, 388, 0, 520, 524, 0, 0, + 0, 311, 0, 0, 0, 0, 0, 0, 556, 0, + 421, 422, 0, 311, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 276, 0, 276, 0, 0, + 0, 0, 0, 202, 10, 0, 23, 61, 106, 107, + 91, 119, 120, 0, 222, 200, 183, 184, 0, 199, + 185, 181, 182, 0, 0, 186, 0, 187, 227, 228, + 188, 195, 244, 245, 246, 247, 189, 265, 266, 267, + 268, 269, 190, 191, 192, 193, 194, 196, 105, 71, + 92, 46, 0, 211, 485, 213, 212, 0, 484, 126, + 125, 123, 0, 55, 51, 0, 164, 0, 18, 397, + 392, 179, 526, 0, 0, 556, 0, 303, 0, 0, + 0, 0, 379, 311, 0, 0, 0, 207, 379, 0, + 0, 0, 457, 456, 420, 459, 458, 449, 0, 270, + 289, 0, 271, 0, 0, 252, 0, 0, 0, 0, + 0, 232, 0, 277, 0, 0, 0, 0, 290, 248, + 0, 0, 209, 206, 197, 201, 204, 205, 219, 95, + 46, 0, 480, 483, 482, 124, 76, 0, 0, 391, + 0, 303, 303, 0, 303, 0, 0, 0, 216, 0, + 554, 0, 0, 0, 0, 432, 431, 443, 440, 444, + 439, 441, 442, 446, 445, 429, 430, 433, 436, 427, + 428, 425, 426, 434, 435, 438, 437, 0, 303, 0, + 373, 0, 0, 419, 303, 303, 203, 215, 0, 0, + 258, 262, 0, 253, 259, 0, 272, 0, 274, 180, + 0, 0, 229, 0, 275, 0, 278, 0, 0, 279, + 282, 280, 294, 293, 0, 0, 93, 96, 47, 0, + 486, 0, 393, 0, 512, 511, 0, 0, 303, 0, + 451, 0, 0, 372, 410, 0, 0, 0, 303, 210, + 0, 0, 208, 303, 303, 0, 0, 0, 303, 303, + 0, 0, 0, 296, 254, 0, 0, 273, 0, 231, + 0, 0, 0, 285, 288, 283, 281, 0, 0, 0, + 0, 513, 0, 0, 0, 0, 556, 0, 450, 452, + 218, 217, 303, 0, 0, 0, 0, 417, 0, 0, + 418, 557, 557, 557, 0, 399, 403, 0, 400, 405, + 0, 0, 0, 0, 260, 0, 255, 263, 0, 230, + 291, 235, 233, 286, 292, 249, 214, 455, 502, 501, + 0, 0, 557, 0, 0, 0, 0, 0, 303, 303, + 0, 0, 376, 0, 375, 557, 0, 0, 416, 0, + 298, 297, 295, 256, 0, 0, 0, 0, 236, 237, + 0, 240, 287, 0, 303, 303, 505, 303, 78, 78, + 555, 555, 555, 0, 412, 0, 413, 448, 447, 0, + 423, 398, 409, 408, 556, 556, 250, 0, 257, 261, + 0, 0, 243, 234, 238, 239, 241, 0, 0, 0, + 0, 0, 0, 0, 0, 411, 0, 406, 407, 0, + 264, 242, 284, 0, 0, 557, 453, 454, 554, 554, + 0, 251, 509, 510, 506, 414, 415, 424, 0, 0, + 0 }; -static const short yydefgoto[] = { 181, - 182, 8, 93, 124, 144, 337, 233, 438, 519, 95, - 96, 183, 98, 99, 100, 184, 102, 103, 645, 384, - 477, 399, 400, 185, 186, 187, 188, 189, 401, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 726, - 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 385, 386, 387, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 293, 402, 640, - 706, 530, 531, 532, 533, 534, 535, 536, 537, 538, - 595, 596, 460, 461, 539, 653, 654, 540, 541, 542, - 543, 544, 807, 846, 847, 848, 849, 850, 545, 546, - 547, 548, 549, 698, 800, 878, 699, 801, 879, 700, - 550, 551, 552, 553, 554, 555, 622, 556, 557, 713, - 714, 852, 715, 558, 559, 560, 561, 718, 562, 752, - 753, 930, 2, 234, 226, 12, 75, 139, 225, 10, - 116, 3, 4, 5, 6, 13, 14, 15, 45, 46, - 47, 16, 117, 141, 142, 230, 232, 321, 322, 323, - 324, 325, 326, 327, 235, 105, 437, 236, 237, 238, - 638, 341, 239, 328, 790, 831, 834, 791, 792, 903, - 329, 821, 822, 823, 330, 600, 493, 599, 331, 494, - 495, 683, 742, 496, 332, 497, 777, 778, 333, 603, - 606, 17, 131, 153, 154, 247, 368, 369, 370, 462, - 463, 464, 18, 130, 150, 151, 244, 350, 351, 352, - 353, 448, 354, 355, 816, 356, 770, 19, 148, 128, - 129, 241, 345, 346, 347, 20, 21, 22, 23, 71, - 72, 73, 111, 112, 135, 113, 136, 24, 157, 735, - 897, 688, 873 +static const short yydefgoto[] = { 180, + 181, 8, 92, 143, 233, 182, 123, 318, 481, 526, + 95, 96, 183, 98, 99, 100, 101, 102, 650, 369, + 469, 380, 381, 184, 185, 186, 187, 188, 189, 475, + 382, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 737, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 370, 371, 372, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 290, + 383, 593, 721, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 607, 608, 575, 576, 545, 668, 669, 546, + 547, 548, 549, 632, 723, 550, 833, 868, 869, 870, + 871, 872, 551, 552, 553, 554, 555, 713, 826, 898, + 714, 827, 899, 715, 556, 557, 558, 559, 560, 561, + 635, 562, 563, 730, 731, 874, 732, 564, 565, 566, + 567, 735, 568, 773, 774, 939, 2, 320, 226, 12, + 76, 138, 225, 10, 115, 3, 4, 5, 6, 13, + 14, 15, 46, 47, 48, 16, 141, 231, 232, 238, + 317, 416, 417, 418, 343, 344, 345, 346, 140, 117, + 321, 104, 449, 322, 323, 324, 660, 434, 325, 347, + 768, 816, 819, 769, 770, 895, 348, 848, 849, 850, + 349, 499, 611, 350, 500, 501, 698, 502, 351, 503, + 799, 800, 427, 615, 618, 17, 130, 151, 152, 243, + 352, 353, 354, 577, 457, 578, 655, 579, 18, 129, + 148, 149, 240, 333, 334, 335, 336, 442, 337, 338, + 796, 339, 746, 19, 146, 127, 128, 236, 327, 328, + 329, 20, 21, 22, 23, 72, 73, 74, 110, 111, + 134, 112, 135, 24, 155, 756, 914, 612, 857 }; -static const short yypact[] = { -30, - 83, 20, -30,-32768,-32768,-32768, 205, -4,-32768, 203, - 2508,-32768, 28,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 20,-32768, 113,-32768,-32768, 253,-32768, 171,-32768, --32768,-32768, 253,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 200, 1247,-32768, 2702,-32768,-32768, - 407, 204, 101,-32768,-32768, 286, 343, 340, 369, 391, +static const short yypact[] = { -8, + 94, 89, -8,-32768,-32768,-32768, 132, 69,-32768, 125, + 1085,-32768, 33,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 89,-32768, 99,-32768,-32768, 262,-32768, 180,-32768, +-32768,-32768, 262,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 281, 1278,-32768, 1422,-32768, +-32768, 194, 253, 269,-32768,-32768, 428, 1003, 436, 467, + 472,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 262,-32768, 297,-32768, 338, 398,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 364,-32768,-32768, 404,-32768, 504,-32768,-32768,-32768,-32768, +-32768, 504, 504, 526, 405,-32768,-32768,-32768,-32768, 230, +-32768, 408,-32768, -8, 389, 532,-32768,-32768,-32768,-32768, +-32768,-32768, 452,-32768, 398, 178,-32768,-32768, 413, 414, + 35,-32768, 2250,-32768,-32768, -50,-32768,-32768,-32768, 225, + 415,-32768,-32768, 416,-32768, 403, 262, 406,-32768, 262, + 409,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 107, + 421, 422,-32768, 2434,-32768, 424,-32768,-32768, 425, 432, + 2250, 2250, 2250, 1995, 2250, 2250, 2250, 2250, 2250,-32768, +-32768, 437, 417, 142, -23,-32768,-32768,-32768,-32768,-32768, + 435, 466,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 312,-32768,-32768,-32768, 630, +-32768, 255, -14, -35, 171, 301, 438, 429, 431, 453, + 172,-32768,-32768,-32768, -16, 430, -10,-32768, 570, 262, + 434,-32768, 2434, -39, 120, 389,-32768, 489, 157, 389, + 489, 168, 389,-32768, 2250, 585, 2250, -39, 364, 271, + 490, 11, 2434, 2479, 2250,-32768,-32768,-32768, 18, 20, + 268, 464, 13,-32768,-32768,-32768,-32768,-32768, 1915, 589, + 2250, 590, 468,-32768, 2250,-32768,-32768, 598,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 2250, + 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2434, 2434, 2250, + 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, 2250, + 2250, 2250,-32768,-32768, 489, 177, 389, 516, 85, 348, + 476, 507,-32768,-32768,-32768, 603, 471, 510,-32768,-32768, + 262, 562, 473, 179,-32768,-32768,-32768,-32768,-32768,-32768, + 1278,-32768,-32768,-32768,-32768, 287,-32768,-32768,-32768,-32768, +-32768, 475, 215,-32768,-32768, 345,-32768, 486, 491, 1915, + 2250,-32768,-32768, 81, 202, 288, 492,-32768,-32768, 493, + 18,-32768, 498, 2075, 2330, 18, 293, 2250, 2250, 519, +-32768, 499,-32768,-32768, 346,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 255, 255, -14, -14, 404, 404, + -35, -35, -35, -35, 171, 171, 301, 438, 429, 431, + 453, 505, 349, 1278,-32768, 488, 222,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 253,-32768, 264,-32768, 259,-32768,-32768,-32768,-32768,-32768, +-32768, 2434,-32768, 2434, 496, 89, 494,-32768, 234,-32768, +-32768, 1196,-32768,-32768, 1800, 1504,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 495, 513, 356, 1784,-32768,-32768,-32768, +-32768, 2250,-32768, 2250, 2250,-32768, 514, 1915,-32768,-32768, +-32768, 1915,-32768,-32768, 1915, 2250,-32768, 2403,-32768,-32768, + 2434, 16, 30,-32768,-32768, 2250,-32768,-32768, 2434, 40, + 25, 329, 2434, 2434, 582, 583, 41, 31,-32768, 319, +-32768,-32768, 322, 298, 500, -62, 2434, 501, 1644, 508, + 518, 520, 374, 521, 523, 2250, 524, 2250, 495, 206, + 495, 528, 529,-32768, 437, 42, 417, -25, 127, 135, + 170, 207, 217, 630,-32768,-32768,-32768,-32768, 515, 1504, +-32768,-32768,-32768, 517, 530,-32768, 531,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 287,-32768, 293,-32768, 426,-32768,-32768,-32768,-32768, --32768,-32768, 426, 65, 442, 295,-32768,-32768,-32768, 297, - 328,-32768, 337,-32768, -30, 339, 351,-32768,-32768,-32768, --32768,-32768, 1695,-32768,-32768, 368, 274,-32768,-32768, 370, - 383, 34,-32768, 2308,-32768,-32768, -33,-32768,-32768, 185, - 388,-32768, 287,-32768, 293, 221,-32768, 396, 253, 403, --32768, 253, 419,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 18, 410,-32768, 1695,-32768, 437,-32768,-32768, 438, - 439, 2308, 2308, 2308, 2031, 2308, 2308, 2308, 2308, 2308, --32768,-32768, 440, 443, 210, 441,-32768,-32768,-32768,-32768, - 445, 466,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 261,-32768,-32768,-32768, 611, --32768, 244, 117, 462, 15, 279, 446, 444, 447, 460, - -81,-32768,-32768,-32768, 104, 450, -29,-32768, 480, 487, - 47, 339, -47, 67, 461, 489,-32768,-32768,-32768, 80, - 339, 487, 119, 339, 487, 125, 339,-32768, 2308, 587, - 2308, 211, 494, 19, 1695, 2662, 2308,-32768,-32768,-32768, - 51, 59, 60, 281, 471, 21,-32768,-32768,-32768,-32768, --32768, 592, 593, 2308, 594, 1942,-32768, 2308,-32768,-32768, - 595,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 1695, - 1695, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, 2308, - 2308, 2308, 2308, 2308, 1942,-32768, 253, 253, 1247,-32768, - 463, 137,-32768,-32768,-32768,-32768, 289,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1695,-32768, - 1695, 464, 20, 598, 468, 507,-32768,-32768, 557, 469, - 142,-32768,-32768,-32768,-32768,-32768,-32768, 1247,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 470, 153,-32768, --32768, 336,-32768, 492, 1942, 2308, 1843,-32768, 315, 323, - 341, 493,-32768,-32768, 497, 51,-32768, 498, 499, 2120, - 2397, 51,-32768,-32768, 373,-32768, 2308, 2308, 527,-32768, - 501,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 244, - 244, 117, 293, 293, 462, 462, 462, 462, 15, 15, - 279, 446, 444, 447, 460, 490, 378, 502, 487,-32768, - 2467,-32768,-32768, 1468,-32768,-32768,-32768, 1695,-32768, 72, - 73,-32768,-32768, 491,-32768, 154,-32768, 2618,-32768,-32768, - 2574,-32768,-32768,-32768,-32768, 509, 379, 1695,-32768,-32768, --32768,-32768, 495, 537,-32768,-32768,-32768,-32768, 2308,-32768, - 2308, 2308, 2308,-32768, 516,-32768,-32768,-32768,-32768, 1942, --32768, 2308,-32768,-32768, 360, 1695, 1695, 589, 590, 75, - 639, 57,-32768, 325,-32768,-32768, 363, 246, 504, 217, - 1695, 506, 1606, 525, 526, 530, 359, 531, 532, 2308, - 533, 2308, 511, 238, 511, 534, 535,-32768, 78, 440, - 443, 151, 157, 165, 173, 186, 187, 611,-32768,-32768, --32768,-32768, 520, 1468,-32768,-32768,-32768, 539, 540,-32768, - 541,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 37,-32768, +-32768, 504, 2434,-32768,-32768,-32768,-32768, 522, 559,-32768, +-32768,-32768, 2250,-32768,-32768, 533,-32768, 658,-32768,-32768, + 527,-32768,-32768, 44, 536, 542, 571, -39, 45, 47, + 2434, 2434, 398, 103, 236, 572, -22,-32768, -29, 62, + 575, 535,-32768,-32768,-32768,-32768,-32768,-32768, 1504,-32768, +-32768, 45,-32768, 595, 2434, 2170, 2434, 537, 2250, 538, + 2250, 677, 2250,-32768, 539, 2250, 540, 304,-32768,-32768, + 2170, 2250, 544, 586,-32768,-32768,-32768,-32768,-32768, 545, + 504, 86,-32768, 1784,-32768,-32768,-32768, 560, 2250,-32768, + 323, -39, -39, 551, 89, 565, 554, 88,-32768, 122, +-32768, 343, 355, 568, 1784,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 82,-32768,-32768, 529, 2308,-32768,-32768, 1695, - 79, 71,-32768, 426, 163,-32768, 1744,-32768,-32768,-32768, --32768, 2308,-32768,-32768, 221, 86, 87, 1695, 1695, 545, - 561, 283, 950, 588, -39,-32768, 564, 44, 591,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1468,-32768,-32768, 86, --32768, 603, 1695, 2219, 1695, 549, 2308, 550, 2308, 2308, --32768, 551, 2308, 553, 326,-32768,-32768, 2219, 2308, 558, - 600,-32768,-32768,-32768,-32768,-32768, 226,-32768,-32768,-32768, - 88, 572, 575, 601, 562, 426, 2308,-32768,-32768,-32768, - 576, 567, -31,-32768, -27,-32768, 327, 333, 221, 582, - 1843,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 607, --32768,-32768, 585, 20, 706,-32768, 221, 581,-32768, 20, - 584,-32768, 627, 602, 90,-32768,-32768, 597,-32768, 629, - 91,-32768, 599,-32768,-32768, 604, 605,-32768, 606,-32768, - 245, 511, 326,-32768,-32768,-32768,-32768, 608, 610,-32768, - 364, 221, 221, 609, 20,-32768,-32768,-32768, 632, 613, - 2308, 735,-32768,-32768, 612, 1695, 1695, 618, 511,-32768, --32768,-32768, 1695, 409,-32768, 620, 162, 414, 162, 2308, - 614, 228,-32768, 2308, 2308, 705,-32768, 1606, 1606, 616, - 185,-32768,-32768,-32768,-32768, 1606, 1606, 624,-32768,-32768, - 641, 645, 20, 415,-32768, 30,-32768,-32768,-32768,-32768, - 20, 92, 93,-32768,-32768, 94,-32768,-32768, 422, 630, - 175, 182,-32768, 633, 648, 2308, 749, 1606,-32768, 634, --32768,-32768, 2308, 751,-32768, 102,-32768, 772, 772,-32768, --32768,-32768, 364, 364, 429, 642,-32768, 658, 663, 430, - 647, 20, 20, 664, 669, 229,-32768,-32768,-32768, 700, --32768,-32768, 702,-32768,-32768,-32768, 655,-32768,-32768,-32768, - 2308, 675, 1606, 2308, 665, 660, 102,-32768, 1330,-32768, --32768, 679, 680,-32768,-32768, 364, 364,-32768, 666, 1942, - 1942,-32768,-32768,-32768, 710,-32768, 712,-32768,-32768,-32768, - 1695,-32768, 380, 380,-32768,-32768,-32768, 684,-32768, 629, - 1606,-32768, 672,-32768,-32768,-32768, 1468,-32768, 511, 511, - 197, 206,-32768, 20, 686, 687, 511, 511,-32768, 96, --32768,-32768,-32768,-32768, 1606,-32768,-32768,-32768,-32768, 718, - 720, 674,-32768,-32768,-32768,-32768, 692,-32768,-32768,-32768, - 364, 364,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 817, - 818,-32768 +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 596, 89, 720, +-32768, 599, 584,-32768, 89, 241,-32768, 628, 601, 48, +-32768,-32768, 588,-32768, 633, 49,-32768, 605,-32768,-32768, + 621, 1644,-32768, 623,-32768, 624,-32768, 238, 495, 304, +-32768,-32768,-32768,-32768, 625, 629,-32768,-32768,-32768, 2250, +-32768, 631,-32768, 587,-32768,-32768, 632, 634, 89, 384, + 607, 2250, 752,-32768,-32768, 620, 2434, 2434, -39,-32768, + 2434, 400,-32768, -39, 241, 412, 397, 622, 242, 243, + 2250, 626, 146,-32768, 2250, 2250, 731,-32768, 1644,-32768, + 1644, 636, 262,-32768,-32768,-32768,-32768, 1644, 1644, 671, + 495,-32768, 323, 323, 419, 639,-32768, 56,-32768,-32768, +-32768,-32768, 89, 50, 52, 646, 54,-32768, 647, 640, +-32768,-32768,-32768,-32768, 682,-32768,-32768, 688,-32768,-32768, + 661, 2250, 786, 1644,-32768, 648,-32768,-32768, 2250,-32768, +-32768, 372,-32768, 788,-32768,-32768,-32768,-32768,-32768,-32768, + 323, 323,-32768, 652, 667, 668, 354, 654, 89, 89, + 669, 672,-32768, 148,-32768,-32768, 369, 369,-32768, 656, +-32768,-32768,-32768, 2250, 674, 2250, 678, 664, 372,-32768, + 1364,-32768,-32768, 675, 244, 246,-32768, 89, 1915, 1915, +-32768,-32768,-32768, 709,-32768, 711,-32768,-32768,-32768, 2434, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 681,-32768, 633, + 1644, 684,-32768,-32768,-32768, 1504,-32768, 495, 715, 717, + 673, 686, 689, 495, 495,-32768, 55,-32768,-32768, 1644, +-32768,-32768,-32768, 323, 323,-32768,-32768,-32768,-32768,-32768, + 690,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 818, 821, +-32768 }; -static const short yypgoto[] = { 188, --32768,-32768, -68,-32768, 381,-32768,-32768, 486, 31, 659, --32768, 23,-32768, 699,-32768, -34,-32768, 662, 183, -90, - 432,-32768, 352,-32768,-32768,-32768,-32768, 25, -308,-32768, --32768, -215,-32768,-32768, 97, 149,-32768, 251,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 452, 394, 408, - 367,-32768, -242,-32768, 448, -138, 536, 138, 223, 523, - 524, 538, 543, 547,-32768,-32768, 428,-32768, 484, -607, - -603, -529, -495, -323,-32768, -8,-32768,-32768,-32768, -572, - -484, 159, -548,-32768,-32768, 235, 114,-32768, -602,-32768, --32768,-32768,-32768,-32768,-32768, 4,-32768, 1,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 6, --32768,-32768,-32768,-32768,-32768,-32768, 345,-32768,-32768,-32768, - 156, 58, 160,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 81,-32768, 760, -2,-32768,-32768,-32768, 155, 0, 384, --32768,-32768, 874,-32768,-32768, 742, 3, -214, -113,-32768, - 834,-32768,-32768,-32768,-32768, -134,-32768,-32768,-32768, 563, - -207, -206, -203,-32768, -566,-32768,-32768, -416, 548,-32768, --32768,-32768,-32768, -202, 134,-32768,-32768, 106, 95, 10, - -201,-32768, 70, 66, -200,-32768,-32768,-32768, -199,-32768, --32768,-32768,-32768,-32768, -197,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 544, -252, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 552, --32768,-32768,-32768,-32768, 2,-32768, -783,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 453,-32768,-32768,-32768, 878,-32768, --32768,-32768,-32768, 773,-32768,-32768,-32768,-32768, 754, -378, - -315, -591, -724 +static const short yypgoto[] = {-32768, +-32768,-32768, -65, 641,-32768, -38,-32768, 344,-32768, 66, + 666,-32768, 29,-32768, 705,-32768,-32768, 676, 184, -93, + 457,-32768, -89,-32768,-32768,-32768,-32768,-32768, 53,-32768, + -359,-32768,-32768, -183,-32768,-32768, 152, 181,-32768, 196, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 469, + 382, 411, 407,-32768, -196,-32768, 474, -139, 208, 110, + 221, 541, 547, 543, 534, 548,-32768,-32768, 462,-32768, + 477, -615, -627, -529, -485, -301,-32768, -34,-32768,-32768, +-32768, -416, -482, 139, -556,-32768,-32768, 224, 95,-32768, + -614,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -9, +-32768, -12,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, -3,-32768,-32768,-32768,-32768,-32768,-32768, + 347,-32768,-32768,-32768, 133,-32768, 134,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 39,-32768, 753, 0,-32768,-32768, +-32768, -133, -1, 368,-32768,-32768, 870,-32768,-32768, 743, + 4, -221, -303,-32768, 833,-32768,-32768,-32768,-32768, -122, +-32768,-32768,-32768, 465, -289, -277, -276,-32768,-32768, -120, + -240,-32768,-32768, -459, 445,-32768,-32768,-32768,-32768, -267, + 118,-32768,-32768, 114, 116, 28, -232,-32768, 38, 43, + -227,-32768,-32768, -219,-32768,-32768,-32768,-32768, -217,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 546, -248,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768, 553,-32768,-32768,-32768,-32768, + 12,-32768, -764,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + 454,-32768,-32768,-32768, 872,-32768,-32768,-32768,-32768, 764, +-32768,-32768,-32768,-32768, 744, -402, -353, -590, -739 }; -#define YYLAST 2786 - - -static const short yytable[] = { 11, - 9, 378, 109, 436, 633, 121, 428, 612, 691, 703, - 48, 697, 122, 125, 242, 49, 320, 245, 651, 388, - 389, 120, 101, 120, 300, 719, 53, -298, 649, 854, - 855, 359, 55, 372, 631, 312, 264, 52, 360, 361, - 818, 696, 362, 363, 364, 365, 366, 29, 367, 335, - 1, 724, 336, 120, 313, 717, 104, 685, 395, 301, - 592, 120, 120, 109, -547, 732, 456, 120, -547, 685, - 110, 228, 891, 892, 643, 565, 566, 692, 52, 97, - 228, 630, 642, 228, 120, -11, 7, 94, 101, 652, - 592, 721, 738, 751, 756, 824, 825, 826, 427, 917, - 819, 686, 655, 874, 875, 229, -303, 320, 593, 733, - -304, 876, 740, 734, 689, 249, 844, -547, 314, 338, - 746, 339, 104, 779, 845, -547, 340, 594, 302, 303, - 101, 110, 155, 893, 48, 304, 28, 927, 928, 110, - 263, 644, 250, 315, -547, 97, 795, 305, 110, 475, - 799, 110, 802, 145, 359, 771, 772, 377, 410, 411, - 457, 360, 361, 122, 104, 362, 363, 364, 365, 366, - 602, 367, 383, 605, 266, 392, 609, -547, 119, 314, - 383, 383, 429, 272, 273, 123, -357, 97, 52, 625, - 626, 627, 119, 119, 119, 252, 118, 262, 929, 119, - 118, 314, 123, -11, 315, 431, 29, 119, 119, 119, - 51, 119, 119, 119, 119, 119, -547, 119, 56, -516, - 101, 101, -547, 57, 48, 859, 315, 58, 319, 49, - 158, 159, 160, 161, -547, 85, 883, 344, 697, -547, - 349, 74, 59, 358, 451, 297, 298, -219, 228, 430, - -547, -547, 88, -222, 104, 104, 52, 164, -488, -547, - 647, -223, 804, 805, -463, 101, 101, 744, 60, -220, - 810, 811, -547, 748, -219, 166, -358, 97, 97, -547, - -222, -489, -224, -225, 119, 379, 381, 78, -223, 76, - 79, -219, -464, 568, -547, 54, -220, -222, 169, 104, - 104, -396, 840, -547, 101, -223, 101, 274, 774, -224, - -225, 918, 919, -220, -397, 83, 110, 110, -547, 319, - 84, -399, 97, 97, 797, 871, -224, -225, 26, 26, - 413, 414, 119, 375, 275, 86, -502, 87, 104, 251, - 104, 711, 27, 106, -376, -503, 52, 882, 349, 89, - 90, 798, 872, 91, 77, 434, 78, 633, 712, 79, - 257, 97, 616, 97, 80, 294, 358, 761, 81, 440, - 26, 441, 107, 617, 295, 296, 434, 82, 279, 280, - 281, 618, 607, 434, 83, 906, 334, 762, 763, 84, - 306, 307, 727, 85, 108, 348, 101, 115, 357, 521, - 114, 371, 390, 101, 86, -309, 87, 26, 118, 920, - 88, 295, 296, 101, 119, 785, 101, 123, 89, 90, - 661, -309, 91, 101, 132, 92, 133, 434, 120, 435, - 104, 127, 278, 563, 454, 62, 119, 104, 465, 415, - 416, 417, 418, 344, 118, 126, 466, 104, 119, 736, - 104, 101, 101, 97, 119, 737, 520, 104, 522, 134, - 97, 492, 119, 434, 467, 601, 101, 63, 145, 278, - 97, 476, 125, 97, 278, 278, 483, 574, 572, 138, - 97, 492, 585, 646, 26, 104, 104, 140, 575, 590, - 146, 597, 64, 65, 66, 67, 68, 69, 70, 521, - 104, 434, 768, 604, 769, 343, 149, 787, 97, 97, - 343, 343, 793, 817, 827, 828, 586, 587, 434, 152, - 901, 856, 857, 97, 862, 863, 231, 522, 419, 420, - 523, 610, 251, 563, 240, 101, 924, 925, 258, 259, - 260, 243, 267, 268, 269, 270, 271, 898, 899, 902, - 902, 895, 896, 101, 101, 646, 520, 246, 522, 255, - 256, 257, 278, 276, 272, 908, 909, 273, 277, 104, - 299, 308, 521, 915, 916, 311, 317, 309, 101, 521, - 101, 310, 524, 318, 342, 343, 656, 104, 104, 316, - 373, 376, 97, 521, 391, 393, 394, 396, 404, 523, - 641, 444, 432, 446, 442, 447, 563, 445, 449, 452, - 97, 97, 104, 563, 104, 455, 468, 224, 657, 658, - 469, 471, 472, 480, 481, 484, 482, 563, 567, 520, - 523, 522, 573, 577, 576, 97, 520, 97, 522, 582, - 588, 589, 591, 695, 608, 701, 611, 613, 614, 434, - 520, 524, 615, 619, 620, 623, 628, 629, 265, 632, - 406, 407, 408, 409, 409, 409, 637, 659, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 409, 409, 634, - 635, 636, 524, 660, 525, 684, 687, 694, 690, 702, - 704, 708, 808, 710, 722, 661, 685, 723, 725, 730, - 377, 101, 101, 523, 731, 739, 741, 743, 101, 630, - 523, 282, 283, 284, 285, 286, 287, 288, 289, 747, - 290, 291, 749, 732, 750, 755, 809, 758, 759, 760, - 775, 766, 224, 767, 374, 104, 104, 754, 652, 757, - 382, 784, 104, 788, 789, 803, 789, 773, 292, 776, - 781, 796, 751, 525, 806, 524, 406, 224, 97, 97, - 110, 403, 524, 812, 813, 97, 782, 783, 814, 829, - 815, 837, 836, 786, 841, 851, 405, 843, 820, 522, - 860, 858, 522, 522, 525, 861, 864, 869, 830, 833, - 522, 522, 870, 828, 827, 877, 426, 224, 881, 885, - 528, 884, 889, 890, 894, 863, 862, 905, 907, 913, - 914, 921, 922, 923, 521, 926, 931, 932, 564, 865, - 867, 439, 522, 253, 720, 147, 254, 526, 728, 479, - 421, 583, 422, 470, 412, 578, 101, 579, 580, 581, - 887, 527, 474, 745, 693, 780, 880, 423, 563, 888, - 886, 523, 521, 424, 523, 523, 624, 525, 425, 224, - 459, 529, 523, 523, 525, 522, 853, 522, 764, 528, - 104, 520, 765, 522, 137, 598, 25, 839, 227, 61, - 478, 478, 794, 904, 433, 832, 563, 866, 910, 911, - 443, 815, 868, 97, 523, 912, 526, 835, 569, 50, - 528, 900, 450, 524, 156, 522, 524, 524, 248, 520, - 527, 522, 453, 0, 524, 524, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 526, 0, 522, - 529, 0, 0, 0, 0, 0, 0, 523, 0, 523, - 0, 527, 0, 0, 0, 523, 524, 0, 650, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 529, 0, 0, 0, 584, 0, 0, 0, 0, - 0, 0, 0, 528, 0, 0, 0, 523, 0, 0, - 528, 662, 0, 523, 0, 0, 0, 0, 0, 524, - 0, 524, 0, 621, 0, 621, 0, 524, 0, 0, - 526, 523, 0, 0, 0, 525, 0, 526, 525, 525, - 0, 0, 0, 0, 527, 0, 525, 525, 0, 0, - 0, 527, 663, 0, 0, 0, 0, 0, 0, 524, - 0, 0, 0, 0, 529, 524, 0, 0, 0, 0, - 0, 529, 0, 0, 0, 0, 0, 0, 525, 0, - 639, 0, 0, 524, 0, 0, 0, 0, 664, 0, - 459, 665, 666, 667, 668, 0, 0, 669, 670, 0, - 671, 672, 0, 0, 0, 673, 674, 675, 676, 677, - 678, 679, 680, 681, 682, 0, 0, 0, 0, 0, - 0, 525, 0, 525, 0, 0, 0, 0, 0, 525, - 639, 0, 705, 707, 0, 0, 709, 0, 0, 0, - 0, 716, 705, 0, 0, 0, 0, 0, 0, 0, - 0, 528, 0, 0, 528, 528, 0, 0, 0, 0, - 729, 525, 528, 528, 0, 0, 0, 525, 0, 0, - 0, 0, 0, 0, 459, 0, 0, 0, 526, 0, - 0, 526, 526, 0, 0, 525, 0, 0, 0, 526, - 526, 0, 527, 0, 528, 527, 527, 0, 0, 0, - 0, 0, 0, 527, 527, 0, 0, 0, 0, 0, - 0, 0, 529, 0, 0, 529, 529, 0, 0, 0, - 0, 526, 0, 529, 529, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 527, 0, 528, 0, 528, - 0, 0, 0, 0, 639, 528, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, - 0, 0, 0, 705, 526, 0, 526, 705, 0, 0, - 0, 0, 526, 0, 0, 0, 0, 528, 527, 0, - 527, 0, 0, 528, 0, 30, 527, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 529, 0, - 529, 528, 0, 0, 526, 0, 529, 31, 0, 838, - 526, 0, 0, 0, 0, 0, 842, 0, 527, 0, - 32, 0, 0, 0, 527, 34, 0, 0, 526, 0, - 35, 0, 36, 37, 38, 39, 0, 0, 529, 40, - 0, 0, 527, 41, 529, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 42, 0, 639, 43, 0, - 44, 0, 529, 498, 158, 159, 160, 161, 0, 0, - 162, 77, 499, 78, 844, 0, 79, 500, 0, 501, - 502, 80, 845, 0, 503, 81, 0, 0, 0, 0, - 0, 164, 0, 504, 82, 505, 506, 507, 508, 0, - 0, 83, 0, 0, 0, 509, 84, 0, 165, 166, - 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 510, 86, 0, 87, 167, 0, 0, 88, 0, 511, - 168, 512, 169, 513, 170, 89, 90, 514, 515, 91, - 516, 0, 143, 0, 517, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 0, - 0, 174, 175, 0, 0, 176, 177, 178, 179, 180, - 0, 0, 0, 0, 0, 0, 0, 0, 434, 0, - 518, 498, 158, 159, 160, 161, 0, 0, 162, 77, - 499, 78, 0, 0, 79, 500, 0, 501, 502, 80, - 0, 0, 503, 81, 0, 0, 0, 0, 0, 164, - 0, 504, 82, 505, 506, 507, 508, 0, 0, 83, - 0, 0, 0, 509, 84, 0, 165, 166, 85, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 510, 86, - 0, 87, 167, 0, 0, 88, 0, 511, 168, 512, - 169, 513, 170, 89, 90, 514, 515, 91, 516, 0, - 143, 0, 517, 0, 0, 0, 0, 0, 0, 0, +#define YYLAST 2562 + + +static const short yytable[] = { 9, + 455, 11, 121, 363, 144, 664, 108, 359, 122, 124, + 646, 712, 49, 718, 736, 120, 50, 120, 703, 93, + 342, 590, 120, 624, 120, 54, 419, 241, 839, 840, + 596, 56, -300, 93, 261, 591, 604, 445, 420, 421, + 53, 120, -14, 644, 448, 595, 53, 643, 422, 661, + 667, -552, 604, 772, 777, 851, 103, 852, 116, 854, + 931, 356, -552, 373, 142, 108, 247, 29, 845, 296, + 109, -14, 1, 858, 859, -220, 875, 876, 700, 297, + 446, 237, 605, 423, 237, 312, 97, 385, 424, 707, + -381, -552, 93, -305, 415, 597, 425, 741, 426, 7, + -14, 606, 330, 877, -220, -11, 340, 315, 93, 355, + 478, 93, -14, -556, 312, 586, 892, 670, 760, -220, + 294, 295, 701, 94, -14, 93, 846, 419, 413, 109, + 29, 342, 704, -306, -552, 49, 801, 153, 312, 420, + 421, -14, 119, 821, 368, 109, 368, 825, 109, 422, + 270, 119, 570, 362, 395, 396, 119, 119, 122, 933, + 934, 828, 103, -14, 237, -14, 118, 118, 119, 376, + 119, 119, 263, 119, 119, 119, 119, 456, 119, 467, + 119, 119, 298, 428, 423, 430, 935, 740, 753, 424, + -552, 93, 97, 79, 93, 415, 80, 425, 614, 426, + 52, 617, 260, -209, 621, 750, 844, 119, 245, 711, + 458, 119, 119, 28, 93, 93, 299, 638, 639, 640, + 84, -552, 700, 63, 734, 85, 49, -223, 109, 250, + 50, 103, 754, 26, 326, -224, 780, 246, 332, 762, + 86, 341, 87, 271, 675, 766, 823, -209, 890, 712, + 902, 103, 103, 88, 89, 64, -223, 90, -552, 93, + 93, 97, 26, -521, -224, 440, 755, 53, 676, -552, + -221, -223, 272, 27, 300, 824, 301, 891, -552, -224, + -552, 97, 97, 65, 66, 67, 68, 69, 70, 71, + 302, 303, 93, 830, 310, 831, 103, 103, 319, -221, + -493, 57, 835, 836, 918, 919, 58, -225, 677, 59, + 55, -466, 311, 228, -221, 414, -552, -226, 364, 366, + -358, 728, -494, -552, 60, 229, 97, 97, 118, 109, + 131, 459, 132, 332, 255, -552, -225, 729, 863, 678, + 679, 680, -552, -552, -552, -552, -226, -552, 446, 61, + 681, -225, 341, 682, 683, 684, 685, 666, -467, 686, + 687, -226, 688, 399, 400, -359, 783, 689, 690, 691, + 692, 693, 694, 695, 696, 697, 646, 487, 584, 628, + 446, 291, 585, 26, -401, -402, -404, -507, 866, -508, + 629, 292, 293, 93, 374, 93, 867, 119, 630, 360, + 431, 738, 432, 93, 292, 293, 93, 525, 433, 401, + 402, 403, 404, 75, 119, 921, 414, 460, 304, 305, + 468, 747, 748, 26, 113, 619, 784, 785, 26, 446, + 103, 447, 103, 77, 932, 276, 277, 278, 326, 93, + 103, 105, 93, 103, 569, 275, 275, 452, 474, 275, + 93, 477, 881, 882, 93, 93, 275, 598, 572, 26, + 97, 446, 97, 613, 446, 744, 616, 745, 93, 119, + 97, 757, 106, 97, 527, 124, 103, 107, 651, 103, + 114, 119, 674, 758, 436, 116, 797, 103, 702, 838, + 118, 103, 103, 812, 813, 603, 609, 482, 528, 483, + 436, 525, 808, 397, 398, 103, 97, 491, 120, 97, + 498, 446, 436, 893, 811, 841, 842, 97, 806, 912, + 913, 97, 97, 809, 405, 406, 936, 937, 915, 916, + 119, 125, 126, 137, 93, 97, 133, 139, 569, 142, + 147, 150, 230, 498, 234, 235, 319, 270, 239, 247, + 248, 242, 253, 254, 594, 894, 894, 651, 599, 600, + 255, 528, 93, 93, 274, 269, 275, 307, 527, 306, + 308, 103, 622, 313, 309, 314, 316, 256, 257, 258, + 525, 264, 265, 266, 267, 268, 93, 525, 93, 331, + 357, 361, 528, 375, 384, 386, 387, 529, 671, 103, + 103, 97, 525, 389, 429, 435, 923, 436, 437, 224, + 439, 441, 929, 930, 438, 453, 443, 569, 450, 472, + 454, 461, 462, 103, 569, 103, 530, 464, 473, 97, + 97, 479, 476, 601, 602, 486, 625, 446, 652, 569, + 484, 531, 571, 583, 620, 623, 626, 527, 627, 631, + 262, 633, 636, 97, 527, 97, 641, 642, 645, 654, + 529, 647, 657, 658, 662, 653, 672, 673, 659, 527, + 663, 528, 665, 699, 648, 649, 705, 706, 528, 709, + 722, 717, 719, 725, 727, 675, 700, 362, 742, 530, + 710, 529, 716, 749, 751, 752, 759, 391, 392, 393, + 394, 394, 394, 394, 531, 767, 394, 394, 394, 394, + 394, 394, 394, 394, 394, 394, 394, 834, 93, 93, + 530, 224, 93, 358, 761, 643, 765, 764, 753, 771, + 792, 367, 775, 776, 798, 531, 279, 280, 281, 282, + 283, 284, 285, 286, 93, 287, 288, 224, 795, 778, + 779, 388, 781, 782, 788, 103, 103, 667, 789, 103, + 791, 793, 803, 794, 767, 814, 390, 822, 815, 818, + 529, 289, 829, 837, 528, 853, 855, 529, 832, 813, + 391, 109, 843, 856, 812, 97, 97, 412, 224, 97, + 860, 772, 864, 873, 878, 879, 880, 883, 888, 530, + 897, 889, 847, 901, 908, 903, 530, 904, 882, 881, + 920, 922, 924, 925, 531, 927, 926, 940, 928, 938, + 941, 531, 804, 805, 589, 273, 807, 532, 528, 251, + 145, 528, 525, 528, 739, 471, 906, 224, 763, 252, + 528, 528, 410, 466, 463, 708, 407, 802, 884, 886, + 409, 93, 534, 408, 470, 470, 533, 411, 907, 905, + 900, 862, 786, 787, 637, 610, 136, 525, 580, 569, + 581, 582, 25, 529, 909, 910, 528, 795, 227, 62, + 485, 480, 810, 820, 817, 896, 444, 887, 103, 911, + 532, 885, 488, 51, 154, 0, 244, 0, 451, 527, + 0, 0, 530, 0, 569, 0, 0, 535, 0, 0, + 0, 0, 0, 0, 0, 534, 528, 531, 97, 533, + 0, 532, 0, 528, 0, 0, 0, 529, 0, 0, + 529, 0, 529, 574, 527, 0, 0, 0, 0, 529, + 529, 0, 0, 0, 0, 0, 534, 0, 0, 0, + 533, 0, 587, 528, 0, 917, 530, 0, 528, 530, + 0, 530, 592, 0, 0, 0, 0, 0, 530, 530, + 535, 531, 528, 0, 531, 529, 531, 0, 0, 0, + 0, 0, 0, 531, 531, 0, 0, 0, 0, 656, + 0, 0, 634, 0, 634, 0, 0, 0, 0, 0, + 532, 535, 0, 0, 530, 0, 0, 532, 53, 0, + 0, 0, 0, 0, 0, 529, 78, 0, 79, 531, + 0, 80, 529, 0, 0, 534, 81, 0, 0, 533, + 82, 0, 534, 0, 0, 0, 533, 0, 83, 0, + 0, 0, 0, 0, 530, 84, 0, 0, 0, 0, + 85, 530, 529, 0, 0, 0, 0, 529, 0, 531, + 0, 0, 0, 0, 0, 86, 531, 87, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 88, 89, + 535, 530, 90, 0, -299, 91, 530, 535, 0, 0, + 0, 0, 0, 0, 0, 30, 531, 0, 0, 0, + 530, 531, 0, 532, 0, 592, 0, 720, 0, 724, + 0, 0, 726, 0, 0, 531, 31, 733, 720, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 534, 32, + 574, 0, 533, 33, 34, 743, 0, 0, 35, 0, + 36, 37, 38, 39, 40, 0, 0, 0, 41, 0, + 0, 574, 42, 0, 0, 0, 0, 532, 0, 0, + 532, 0, 532, 43, 0, 0, 44, 0, 45, 532, + 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 534, 535, 0, 534, 533, 534, 0, 533, + 0, 533, 0, 0, 534, 534, 0, 0, 533, 533, + 0, 53, 0, 0, 0, 532, 0, 0, 0, 78, + 0, 79, 0, 0, 80, 0, 790, 0, 0, 81, + 0, 0, 0, 82, 0, 489, 0, 0, 592, 0, + 534, 83, 0, 0, 533, 0, 0, 535, 84, 0, + 535, 0, 535, 85, 0, 532, 0, 720, 0, 535, + 535, 720, 532, 0, 0, 0, 0, 0, 86, 0, + 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 534, 88, 89, 0, 533, 90, 0, 534, 490, 0, + 0, 533, 532, 0, 0, 535, 0, 532, 30, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 861, 0, + 0, 532, 0, 0, 0, 865, 0, 534, 0, 31, + 0, 533, 534, 0, 0, 0, 533, 0, 0, 0, + 0, 0, 32, 0, 0, 535, 534, 34, 0, 0, + 533, 35, 535, 36, 37, 38, 39, 40, 0, 0, + 0, 41, 592, 0, 0, 42, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 43, 0, 0, 44, + 0, 45, 535, 0, 0, 0, 0, 535, 0, 504, + 156, 157, 158, 159, 0, 0, 160, 78, 505, 79, + 866, 535, 80, 506, 0, 507, 508, 81, 867, 162, + 509, 82, 0, 0, 0, 0, 163, 0, 510, 83, + 511, 512, 513, 514, 0, 0, 84, 0, 0, 0, + 515, 85, 0, 164, 165, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 516, 86, 0, 87, 166, + 0, 0, 30, 517, 167, 518, 168, 519, 169, 88, + 89, 520, 521, 90, 522, 0, 249, 0, 523, 0, + 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, + 33, 34, 0, 0, 0, 35, 0, 36, 37, 38, + 39, 40, 0, 0, 0, 41, 0, 171, 172, 42, + 173, 0, 174, 0, 0, 175, 176, 177, 178, 179, + 43, 0, 0, 44, 0, 45, 446, 0, 524, 504, + 156, 157, 158, 159, 0, 0, 160, 78, 505, 79, + 0, 0, 80, 506, 0, 507, 508, 81, 0, 162, + 509, 82, 0, 0, 0, 0, 163, 0, 510, 83, + 511, 512, 513, 514, 0, 0, 84, 0, 0, 0, + 515, 85, 0, 164, 165, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 516, 86, 0, 87, 166, + 0, 0, 0, 517, 167, 518, 168, 519, 169, 88, + 89, 520, 521, 90, 522, 0, 249, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 0, 0, 174, - 175, 0, 0, 176, 177, 178, 179, 180, 0, 0, - 0, 0, 0, 0, 0, 0, 434, 0, 518, 52, - 158, 159, 160, 161, 0, 0, 162, 77, 499, 78, - 0, 0, 79, 500, 0, 0, 502, 80, 0, 0, - 503, 81, 0, 0, 0, 0, 0, 164, 0, 504, - 82, 505, 506, 507, 508, 0, 0, 83, 0, 0, - 0, 509, 84, 0, 165, 166, 85, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 510, 86, 0, 87, - 167, 0, 0, 88, 0, 511, 168, 512, 169, 513, - 170, 89, 90, 514, 515, 91, 516, 0, 0, 0, - 517, 0, 0, 0, 0, 0, 0, 0, 52, 0, - 0, 0, 0, 0, 0, 0, 77, 0, 78, 0, - 0, 79, 0, 0, 0, 0, 80, 0, 0, 0, - 81, 0, 0, 172, 173, 0, 0, 174, 175, 82, - 0, 176, 177, 178, 179, 180, 83, 0, 0, 0, - 0, 84, 0, 0, 434, 85, 518, 52, 158, 159, - 160, 161, 0, 0, 162, 77, 86, 78, 87, 0, - 79, 163, 88, 0, 0, 80, 0, 0, 0, 81, - 89, 90, 0, 0, 91, 164, 0, 143, 82, 0, - 0, 0, 0, 0, 0, 83, 0, 0, 0, 0, - 84, 0, 165, 166, 85, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 87, 167, 458, - 0, 88, 0, 0, 168, 0, 169, 0, 170, 89, - 90, 171, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 52, 158, 159, 160, - 161, 0, 0, 162, 77, 0, 78, 0, 0, 79, - 163, 172, 173, 0, 80, 174, 175, 0, 81, 176, - 177, 178, 179, 180, 164, 0, 0, 82, 0, 0, - 0, 0, 377, 648, 83, 0, 0, 0, 0, 84, - 0, 165, 166, 85, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 86, 0, 87, 167, 458, 0, - 88, 0, 0, 168, 0, 169, 0, 170, 89, 90, - 171, 0, 91, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 171, 172, 0, + 173, 0, 174, 0, 0, 175, 176, 177, 178, 179, + 0, 0, 0, 0, 0, 0, 446, 0, 524, 53, + 156, 157, 158, 159, 0, 0, 160, 78, 505, 79, + 0, 0, 80, 506, 0, 0, 508, 81, 0, 162, + 509, 82, 0, 0, 0, 0, 163, 0, 510, 83, + 511, 512, 513, 514, 0, 0, 84, 0, 0, 0, + 515, 85, 0, 164, 165, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 516, 86, 0, 87, 166, + 0, 0, 0, 517, 167, 518, 168, 519, 169, 88, + 89, 520, 521, 90, 522, 0, 0, 0, 523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 158, 159, 160, 161, - 0, 0, 162, 77, 0, 78, 0, 0, 79, 163, - 172, 173, 0, 80, 174, 175, 0, 81, 176, 177, - 178, 179, 180, 164, 0, 0, 82, 0, 0, 0, - 0, 377, 0, 83, 0, 0, 0, 0, 84, 0, - 165, 166, 85, 0, 397, 0, 0, 0, 0, 0, - 0, 398, 0, 86, 0, 87, 167, 0, 0, 88, - 0, 0, 168, 0, 169, 0, 170, 89, 90, 171, - 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 52, 158, 159, 160, 161, 0, - 0, 162, 77, 0, 78, 0, 0, 79, 163, 0, - 0, 0, 80, 0, 0, 0, 81, 0, 0, 172, - 173, 0, 164, 174, 175, 82, 0, 176, 177, 178, - 179, 180, 83, 0, 0, 0, 0, 84, 0, 165, - 166, 85, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 86, 0, 87, 167, 0, 0, 88, 0, - 0, 168, 0, 169, 0, 170, 89, 90, 171, 0, - 91, 0, 0, 261, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 52, 158, 159, 160, 161, 0, 0, - 162, 77, 0, 78, 0, 0, 79, 163, 0, 0, - 0, 80, 0, 0, 0, 81, 0, 0, 172, 173, - 0, 164, 174, 175, 82, 0, 176, 177, 178, 179, - 180, 83, 0, 0, 0, 0, 84, 0, 165, 166, - 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 86, 0, 87, 167, 0, 0, 88, 0, 0, - 168, 0, 169, 0, 170, 89, 90, 171, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 52, 158, 159, 160, 161, 0, 0, 162, - 77, 0, 78, 0, 0, 79, 163, 172, 173, 0, - 80, 174, 175, 473, 81, 176, 177, 178, 179, 180, - 164, 0, 0, 82, 0, 0, 0, 0, 0, 0, - 83, 0, 0, 0, 0, 84, 0, 165, 166, 85, + 0, 0, 0, 0, 0, 0, 0, 171, 172, 0, + 173, 0, 174, 0, 0, 175, 176, 177, 178, 179, + 0, 0, 0, 0, 0, 0, 446, 0, 524, 53, + 156, 157, 158, 159, 0, 0, 160, 78, 0, 79, + 0, 0, 80, 161, 0, 492, 0, 81, 0, 162, + 0, 82, 0, 78, 0, 79, 163, 0, 80, 83, + 57, 493, 0, 81, 0, 58, 84, 82, 59, 494, + 495, 85, 0, 164, 165, 83, 0, 0, 0, 0, + 496, 0, 84, 60, 0, 0, 86, 85, 87, 166, + 573, 0, 0, 0, 167, 0, 168, 0, 169, 88, + 89, 170, 86, 90, 87, 0, 0, 0, 61, 0, + 0, 0, 0, 0, 0, 88, 89, 0, 0, 90, + 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 86, 0, 87, 167, 0, 0, 88, 0, 0, 168, - 0, 169, 0, 170, 89, 90, 171, 0, 91, 0, - 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 52, 158, 159, 160, 161, 0, 0, 162, 77, - 0, 78, 0, 0, 79, 163, 0, 0, 0, 80, - 0, 0, 0, 81, 0, 0, 172, 173, 0, 164, - 174, 175, 82, 0, 176, 177, 178, 179, 180, 83, - 0, 0, 0, 0, 84, 0, 165, 166, 85, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, - 0, 87, 167, 0, 0, 88, 0, 0, 168, 0, - 169, 0, 170, 89, 90, 171, 0, 91, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 171, 172, 0, + 173, 0, 174, 0, 0, 175, 176, 177, 178, 179, + 377, 156, 157, 158, 159, 0, 362, 160, 78, 0, + 79, 0, 0, 80, 161, 0, 0, 0, 81, 0, + 162, 0, 82, 0, 0, 0, 0, 163, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 84, 0, 0, + 0, 0, 85, 0, 164, 165, 0, 378, 0, 0, + 0, 0, 0, 0, 0, 379, 0, 86, 0, 87, + 166, 0, 0, 0, 0, 167, 0, 168, 0, 169, + 88, 89, 170, 0, 90, 0, 0, 0, 0, 0, + 53, 156, 157, 158, 159, 0, 0, 160, 78, 0, + 79, 0, 0, 80, 161, 0, 0, 0, 81, 0, + 162, 0, 82, 0, 0, 0, 0, 163, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 84, 171, 172, + 0, 173, 85, 174, 164, 165, 175, 176, 177, 178, + 179, 0, 0, 0, 0, 0, 0, 86, 0, 87, + 166, 0, 0, 0, 0, 167, 0, 168, 0, 169, + 88, 89, 170, 0, 90, 0, 0, 259, 0, 0, + 53, 156, 157, 158, 159, 0, 0, 160, 78, 0, + 79, 0, 0, 80, 161, 0, 0, 0, 81, 0, + 162, 0, 82, 0, 0, 0, 0, 163, 0, 0, + 83, 0, 0, 0, 0, 0, 0, 84, 171, 172, + 0, 173, 85, 174, 164, 165, 175, 176, 177, 178, + 179, 0, 0, 0, 0, 0, 0, 86, 0, 87, + 166, 0, 0, 0, 0, 167, 0, 168, 0, 169, + 88, 89, 170, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 52, 158, 159, 160, 161, 0, 0, 162, 77, 0, - 78, 0, 0, 79, 163, 0, 0, 0, 80, 0, - 0, 0, 81, 0, 0, 172, 173, 0, 164, 174, - 175, 82, 0, 176, 177, 178, 179, 180, 83, 0, - 0, 0, 0, 84, 0, 165, 166, 85, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, - 87, 167, 0, 0, 88, 0, 0, 168, 0, 169, - 485, 170, 89, 90, 171, 0, 91, 0, 77, 0, - 78, 0, 0, 79, 0, 56, 486, 0, 80, 0, - 57, 0, 81, 0, 58, 487, 488, 0, 0, 0, - 0, 82, 0, 0, 0, 0, 489, -297, 83, 59, - 0, 0, 0, 84, 0, 0, 30, 85, 0, 175, - 0, 0, 0, 177, 178, 0, 0, 0, 86, 0, - 87, 0, 0, 0, 88, 60, 0, 0, 31, 0, - 0, 0, 89, 90, 0, 0, 91, 0, 0, 490, - 0, 32, 0, 0, 0, 33, 34, 0, 0, 0, - 0, 35, 0, 36, 37, 38, 39, 0, 0, 0, - 40, 0, 0, 0, 41, 0, 0, 485, 0, 0, - 0, 0, 0, 0, 0, 77, 42, 78, 0, 43, - 79, 44, 56, 486, 491, 80, 0, 57, 0, 81, - 0, 58, 487, 488, 0, 0, 0, 0, 82, 0, - 0, 0, 0, 489, 0, 83, 59, 0, 0, 0, - 84, 52, 0, 0, 85, 0, 0, 0, 0, 77, - 0, 78, 0, 0, 79, 86, 0, 87, 0, 80, - 0, 88, 60, 81, 0, 0, 570, 0, 0, 89, - 90, 0, 82, 91, 0, 0, 490, 0, 0, 83, - 0, 0, 0, 0, 84, 52, 0, 0, 85, 0, - 0, 0, 0, 77, 0, 78, 0, 0, 79, 86, - 0, 87, 0, 80, 0, 88, 0, 81, 0, 0, - 0, 0, 0, 89, 90, 0, 82, 91, 0, 0, - 571, 0, 0, 83, 0, 0, 0, 0, 84, 0, - 30, 0, 85, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 86, 0, 87, 0, 0, 0, 88, - 0, 0, 31, 0, 0, 0, 0, 89, 90, 0, - 0, 91, 0, 0, 380, 32, 0, 0, 0, 33, - 34, 0, 0, 0, 0, 35, 0, 36, 37, 38, - 39, 0, 0, 0, 40, 0, 0, 0, 41, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 42, 0, 0, 43, 0, 44 + 0, 0, 0, 0, 0, 53, 156, 157, 158, 159, + 0, 0, 160, 78, 0, 79, 0, 0, 80, 161, + 0, 0, 0, 81, 0, 162, 0, 82, 171, 172, + 0, 173, 163, 174, 465, 83, 175, 176, 177, 178, + 179, 0, 84, 0, 0, 0, 0, 85, 0, 164, + 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 86, 0, 87, 166, 0, 0, 0, 0, + 167, 0, 168, 0, 169, 88, 89, 170, 0, 90, + 0, 0, 249, 0, 0, 53, 156, 157, 158, 159, + 0, 0, 160, 78, 0, 79, 0, 0, 80, 161, + 0, 0, 0, 81, 0, 162, 0, 82, 0, 0, + 0, 0, 163, 0, 0, 83, 0, 0, 0, 0, + 0, 0, 84, 171, 172, 0, 173, 85, 174, 164, + 165, 175, 176, 177, 178, 179, 0, 0, 0, 0, + 0, 0, 86, 0, 87, 166, 0, 0, 0, 0, + 167, 0, 168, 0, 169, 88, 89, 170, 0, 90, + 0, 0, 0, 0, 0, 53, 156, 157, 158, 159, + 0, 0, 160, 78, 0, 79, 0, 0, 80, 161, + 0, 0, 0, 81, 0, 162, 0, 82, 0, 0, + 0, 0, 163, 0, 0, 83, 0, 0, 0, 0, + 0, 0, 84, 171, 172, 0, 173, 85, 174, 164, + 165, 175, 176, 177, 178, 179, 0, 0, 0, 0, + 0, 0, 86, 0, 87, 166, 0, 0, 0, 0, + 167, 0, 168, 0, 169, 88, 89, 170, 492, 90, + 0, 0, 0, 0, 0, 0, 78, 0, 79, 0, + 0, 80, 0, 57, 493, 0, 81, 0, 58, 0, + 82, 59, 494, 495, 0, 0, 0, 0, 83, 53, + 0, 0, 0, 496, 0, 84, 60, 78, 0, 79, + 85, 0, 80, 0, 0, 0, 0, 81, 174, 0, + 0, 82, 176, 177, 0, 86, 0, 87, 0, 83, + 0, 61, 0, 0, 0, 0, 84, 0, 88, 89, + 0, 85, 90, 0, 53, 497, 0, 0, 0, 0, + 0, 0, 78, 0, 79, 0, 86, 80, 87, 0, + 0, 0, 81, 0, 0, 0, 82, 0, 0, 88, + 89, 0, 0, 90, 83, 0, 249, 0, 0, 0, + 0, 84, 0, 0, 0, 0, 85, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 588, 0, 0, 0, + 0, 86, 0, 87, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 88, 89, 0, 0, 90, 0, + 0, 365 }; -static const short yycheck[] = { 2, - 1, 254, 71, 327, 534, 96, 315, 503, 600, 617, - 13, 614, 103, 104, 149, 13, 231, 152, 585, 262, - 263, 3, 57, 3, 10, 629, 27, 0, 577, 813, - 814, 246, 33, 249, 519, 117, 175, 4, 246, 246, - 11, 614, 246, 246, 246, 246, 246, 4, 246, 97, - 81, 643, 100, 3, 136, 628, 57, 97, 274, 45, - 4, 3, 3, 132, 98, 97, 375, 3, 98, 97, - 71, 140, 856, 857, 4, 4, 4, 607, 4, 57, - 149, 4, 4, 152, 3, 4, 4, 57, 123, 4, - 4, 4, 659, 4, 4, 4, 4, 4, 314, 4, - 71, 141, 587, 828, 829, 140, 140, 322, 52, 141, - 140, 836, 661, 141, 71, 98, 15, 98, 98, 53, - 687, 55, 123, 731, 23, 98, 60, 71, 114, 115, - 165, 132, 99, 858, 137, 121, 141, 921, 922, 140, - 175, 71, 125, 123, 98, 123, 750, 133, 149, 392, - 754, 152, 755, 123, 369, 722, 723, 139, 297, 298, - 376, 369, 369, 254, 165, 369, 369, 369, 369, 369, - 494, 369, 122, 497, 175, 266, 500, 98, 122, 98, - 122, 122, 317, 125, 125, 121, 140, 165, 4, 513, - 514, 515, 122, 122, 122, 165, 122, 175, 923, 122, - 122, 98, 121, 122, 123, 319, 4, 122, 122, 122, - 98, 122, 122, 122, 122, 122, 98, 122, 19, 140, - 255, 256, 98, 24, 227, 817, 123, 28, 231, 227, - 5, 6, 7, 8, 98, 51, 844, 240, 841, 98, - 243, 141, 43, 246, 358, 129, 130, 97, 317, 318, - 98, 98, 68, 97, 255, 256, 4, 32, 140, 98, - 98, 97, 758, 759, 140, 300, 301, 684, 69, 97, - 766, 767, 98, 690, 124, 50, 140, 255, 256, 98, - 124, 140, 97, 97, 122, 255, 256, 14, 124, 4, - 17, 141, 140, 140, 98, 125, 124, 141, 73, 300, - 301, 140, 798, 98, 339, 141, 341, 98, 725, 124, - 124, 903, 904, 141, 140, 42, 317, 318, 98, 322, - 47, 140, 300, 301, 97, 97, 141, 141, 125, 125, - 300, 301, 122, 123, 125, 62, 140, 64, 339, 123, - 341, 16, 138, 4, 124, 140, 4, 843, 351, 76, - 77, 124, 124, 80, 12, 139, 14, 887, 33, 17, - 123, 339, 4, 341, 22, 122, 369, 123, 26, 339, - 125, 341, 4, 15, 131, 132, 139, 35, 118, 119, - 120, 23, 137, 139, 42, 881, 232, 711, 712, 47, - 112, 113, 645, 51, 4, 241, 431, 139, 244, 434, - 137, 247, 122, 438, 62, 123, 64, 125, 122, 905, - 68, 131, 132, 448, 122, 739, 451, 121, 76, 77, - 138, 139, 80, 458, 97, 83, 99, 139, 3, 141, - 431, 137, 97, 434, 99, 29, 122, 438, 124, 302, - 303, 304, 305, 446, 122, 4, 124, 448, 122, 123, - 451, 486, 487, 431, 122, 123, 434, 458, 434, 123, - 438, 431, 122, 139, 124, 141, 501, 61, 438, 97, - 448, 99, 563, 451, 97, 97, 99, 99, 448, 141, - 458, 451, 123, 574, 125, 486, 487, 137, 458, 490, - 123, 492, 86, 87, 88, 89, 90, 91, 92, 534, - 501, 139, 139, 141, 141, 97, 137, 99, 486, 487, - 97, 97, 99, 99, 93, 94, 486, 487, 139, 137, - 141, 93, 94, 501, 95, 96, 139, 503, 306, 307, - 434, 501, 123, 534, 139, 570, 915, 916, 172, 173, - 174, 139, 176, 177, 178, 179, 180, 863, 864, 873, - 874, 860, 861, 588, 589, 646, 534, 139, 534, 123, - 123, 123, 97, 123, 125, 889, 890, 125, 124, 570, - 109, 126, 607, 897, 898, 116, 97, 134, 613, 614, - 615, 135, 434, 97, 124, 97, 587, 588, 589, 140, - 4, 98, 570, 628, 124, 4, 4, 4, 4, 503, - 570, 4, 140, 97, 141, 49, 607, 140, 140, 140, - 588, 589, 613, 614, 615, 124, 124, 134, 588, 589, - 124, 124, 124, 97, 124, 124, 137, 628, 138, 607, - 534, 607, 124, 97, 140, 613, 614, 615, 614, 124, - 52, 52, 4, 613, 141, 615, 141, 123, 123, 139, - 628, 503, 123, 123, 123, 123, 123, 123, 175, 140, - 294, 295, 296, 297, 298, 299, 138, 123, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 141, - 141, 141, 534, 123, 434, 98, 123, 85, 98, 141, - 141, 141, 761, 141, 123, 138, 97, 123, 98, 124, - 139, 736, 737, 607, 138, 124, 100, 123, 743, 4, - 614, 101, 102, 103, 104, 105, 106, 107, 108, 139, - 110, 111, 139, 97, 123, 97, 761, 124, 124, 124, - 99, 124, 249, 124, 251, 736, 737, 141, 4, 141, - 257, 124, 743, 124, 747, 41, 749, 139, 138, 137, - 139, 138, 4, 503, 139, 607, 390, 274, 736, 737, - 761, 278, 614, 140, 124, 743, 736, 737, 124, 140, - 773, 124, 140, 743, 141, 4, 293, 27, 781, 755, - 123, 140, 758, 759, 534, 123, 140, 124, 791, 792, - 766, 767, 124, 94, 93, 141, 313, 314, 124, 140, - 434, 137, 124, 124, 139, 96, 95, 124, 137, 124, - 124, 94, 93, 140, 849, 124, 0, 0, 438, 822, - 823, 336, 798, 165, 637, 127, 165, 434, 646, 398, - 308, 480, 309, 386, 299, 469, 871, 471, 472, 473, - 849, 434, 391, 685, 610, 732, 841, 310, 849, 849, - 847, 755, 887, 311, 758, 759, 512, 607, 312, 376, - 377, 434, 766, 767, 614, 841, 809, 843, 713, 503, - 871, 849, 713, 849, 115, 492, 3, 797, 137, 46, - 397, 398, 749, 874, 322, 791, 887, 822, 891, 892, - 343, 894, 823, 871, 798, 894, 503, 792, 446, 22, - 534, 871, 351, 755, 132, 881, 758, 759, 155, 887, - 503, 887, 369, -1, 766, 767, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 534, -1, 905, - 503, -1, -1, -1, -1, -1, -1, 841, -1, 843, - -1, 534, -1, -1, -1, 849, 798, -1, 582, -1, +static const short yycheck[] = { 1, + 360, 2, 96, 252, 125, 596, 72, 248, 102, 103, + 540, 626, 13, 629, 642, 5, 13, 5, 609, 58, + 242, 6, 5, 509, 5, 27, 316, 150, 793, 794, + 6, 33, 0, 72, 174, 6, 6, 341, 316, 316, + 6, 5, 6, 526, 346, 6, 6, 6, 316, 6, + 6, 102, 6, 6, 6, 6, 58, 6, 88, 6, + 6, 245, 102, 260, 88, 131, 129, 6, 13, 105, + 72, 88, 81, 813, 814, 101, 841, 842, 101, 115, + 143, 147, 52, 316, 150, 102, 58, 271, 316, 619, + 130, 102, 131, 144, 316, 71, 316, 654, 316, 6, + 88, 71, 236, 843, 130, 129, 240, 230, 147, 243, + 414, 150, 129, 143, 102, 475, 856, 600, 675, 145, + 135, 136, 145, 58, 88, 164, 71, 417, 312, 131, + 6, 353, 71, 144, 102, 136, 752, 103, 102, 417, + 417, 129, 127, 771, 127, 147, 127, 775, 150, 417, + 131, 127, 454, 143, 294, 295, 127, 127, 252, 924, + 925, 776, 164, 127, 230, 129, 127, 127, 127, 263, + 127, 127, 174, 127, 127, 127, 127, 361, 127, 376, + 127, 127, 12, 317, 417, 101, 926, 102, 101, 417, + 102, 230, 164, 16, 233, 417, 19, 417, 500, 417, + 102, 503, 174, 101, 506, 665, 797, 127, 102, 626, + 130, 127, 127, 145, 253, 254, 46, 519, 520, 521, + 43, 102, 101, 30, 641, 48, 227, 101, 230, 164, + 227, 233, 145, 131, 235, 101, 722, 131, 239, 699, + 63, 242, 65, 102, 142, 705, 101, 145, 101, 864, + 866, 253, 254, 76, 77, 62, 130, 80, 102, 298, + 299, 233, 131, 144, 130, 331, 145, 6, 33, 102, + 101, 145, 131, 142, 104, 130, 106, 130, 102, 145, + 102, 253, 254, 90, 91, 92, 93, 94, 95, 96, + 120, 121, 331, 779, 123, 781, 298, 299, 233, 130, + 144, 21, 788, 789, 895, 896, 26, 101, 73, 29, + 131, 144, 141, 89, 145, 316, 102, 101, 253, 254, + 144, 18, 144, 102, 44, 101, 298, 299, 127, 331, + 101, 130, 103, 334, 129, 102, 130, 34, 824, 104, + 105, 106, 102, 102, 102, 102, 130, 102, 143, 69, + 115, 145, 353, 118, 119, 120, 121, 598, 144, 124, + 125, 145, 127, 298, 299, 144, 129, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 906, 144, 468, 6, + 143, 127, 472, 131, 144, 144, 144, 144, 17, 144, + 17, 137, 138, 432, 127, 434, 25, 127, 25, 129, + 53, 650, 55, 442, 137, 138, 445, 446, 61, 300, + 301, 302, 303, 145, 127, 901, 417, 130, 118, 119, + 128, 662, 663, 131, 128, 128, 728, 729, 131, 143, + 432, 145, 434, 6, 920, 124, 125, 126, 439, 478, + 442, 6, 481, 445, 446, 101, 101, 103, 103, 101, + 489, 103, 99, 100, 493, 494, 101, 129, 103, 131, + 432, 143, 434, 145, 143, 143, 145, 145, 507, 127, + 442, 129, 6, 445, 446, 569, 478, 6, 572, 481, + 143, 127, 603, 129, 101, 88, 103, 489, 609, 791, + 127, 493, 494, 97, 98, 497, 498, 432, 446, 434, + 101, 540, 103, 296, 297, 507, 478, 442, 5, 481, + 445, 143, 101, 145, 103, 97, 98, 489, 759, 879, + 880, 493, 494, 764, 304, 305, 929, 930, 882, 883, + 127, 6, 128, 145, 573, 507, 129, 6, 540, 88, + 128, 128, 128, 478, 129, 143, 481, 131, 143, 129, + 129, 143, 129, 129, 489, 857, 858, 651, 493, 494, + 129, 509, 601, 602, 130, 129, 101, 139, 540, 132, + 140, 573, 507, 144, 122, 6, 143, 171, 172, 173, + 619, 175, 176, 177, 178, 179, 625, 626, 627, 101, + 6, 102, 540, 130, 6, 6, 129, 446, 600, 601, + 602, 573, 641, 6, 89, 130, 908, 101, 6, 133, + 101, 50, 914, 915, 144, 130, 144, 619, 144, 101, + 130, 130, 130, 625, 626, 627, 446, 130, 130, 601, + 602, 144, 128, 52, 52, 142, 129, 143, 573, 641, + 145, 446, 130, 130, 145, 145, 129, 619, 129, 129, + 174, 129, 129, 625, 626, 627, 129, 129, 144, 101, + 509, 145, 130, 6, 129, 144, 601, 602, 142, 641, + 129, 619, 102, 102, 145, 145, 102, 143, 626, 85, + 4, 145, 145, 145, 145, 142, 101, 143, 129, 509, + 625, 540, 627, 143, 130, 142, 129, 291, 292, 293, + 294, 295, 296, 297, 509, 706, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 783, 757, 758, + 540, 245, 761, 247, 129, 6, 143, 129, 101, 129, + 144, 255, 145, 101, 128, 540, 107, 108, 109, 110, + 111, 112, 113, 114, 783, 116, 117, 271, 749, 145, + 130, 275, 130, 130, 130, 757, 758, 6, 130, 761, + 130, 130, 143, 130, 765, 144, 290, 142, 769, 770, + 619, 142, 42, 103, 722, 130, 130, 626, 143, 98, + 374, 783, 144, 144, 97, 757, 758, 311, 312, 761, + 130, 6, 145, 6, 143, 129, 129, 144, 130, 619, + 145, 130, 803, 130, 130, 128, 626, 144, 100, 99, + 130, 128, 98, 97, 619, 130, 144, 0, 130, 130, + 0, 626, 757, 758, 481, 185, 761, 446, 776, 164, + 126, 779, 871, 781, 651, 379, 871, 361, 700, 164, + 788, 789, 309, 375, 371, 622, 306, 753, 849, 850, + 308, 890, 446, 307, 378, 379, 446, 310, 871, 869, + 864, 823, 730, 730, 518, 498, 114, 906, 462, 871, + 464, 465, 3, 722, 875, 876, 824, 878, 136, 47, + 436, 417, 765, 770, 769, 858, 334, 850, 890, 878, + 509, 849, 439, 22, 131, -1, 153, -1, 353, 871, + -1, -1, 722, -1, 906, -1, -1, 446, -1, -1, + -1, -1, -1, -1, -1, 509, 864, 722, 890, 509, + -1, 540, -1, 871, -1, -1, -1, 776, -1, -1, + 779, -1, 781, 457, 906, -1, -1, -1, -1, 788, + 789, -1, -1, -1, -1, -1, 540, -1, -1, -1, + 540, -1, 476, 901, -1, 890, 776, -1, 906, 779, + -1, 781, 486, -1, -1, -1, -1, -1, 788, 789, + 509, 776, 920, -1, 779, 824, 781, -1, -1, -1, + -1, -1, -1, 788, 789, -1, -1, -1, -1, 583, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 619, 540, -1, -1, 824, -1, -1, 626, 6, -1, + -1, -1, -1, -1, -1, 864, 14, -1, 16, 824, + -1, 19, 871, -1, -1, 619, 24, -1, -1, 619, + 28, -1, 626, -1, -1, -1, 626, -1, 36, -1, + -1, -1, -1, -1, 864, 43, -1, -1, -1, -1, + 48, 871, 901, -1, -1, -1, -1, 906, -1, 864, + -1, -1, -1, -1, -1, 63, 871, 65, -1, -1, + -1, 920, -1, -1, -1, -1, -1, -1, 76, 77, + 619, 901, 80, -1, 0, 83, 906, 626, -1, -1, + -1, -1, -1, -1, -1, 11, 901, -1, -1, -1, + 920, 906, -1, 722, -1, 629, -1, 631, -1, 633, + -1, -1, 636, -1, -1, 920, 32, 641, 642, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 722, 45, + 654, -1, 722, 49, 50, 659, -1, -1, 54, -1, + 56, 57, 58, 59, 60, -1, -1, -1, 64, -1, + -1, 675, 68, -1, -1, -1, -1, 776, -1, -1, + 779, -1, 781, 79, -1, -1, 82, -1, 84, 788, + 789, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 776, 722, -1, 779, 776, 781, -1, 779, + -1, 781, -1, -1, 788, 789, -1, -1, 788, 789, + -1, 6, -1, -1, -1, 824, -1, -1, -1, 14, + -1, 16, -1, -1, 19, -1, 740, -1, -1, 24, + -1, -1, -1, 28, -1, 30, -1, -1, 752, -1, + 824, 36, -1, -1, 824, -1, -1, 776, 43, -1, + 779, -1, 781, 48, -1, 864, -1, 771, -1, 788, + 789, 775, 871, -1, -1, -1, -1, -1, 63, -1, + 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 864, 76, 77, -1, 864, 80, -1, 871, 83, -1, + -1, 871, 901, -1, -1, 824, -1, 906, 11, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 822, -1, + -1, 920, -1, -1, -1, 829, -1, 901, -1, 32, + -1, 901, 906, -1, -1, -1, 906, -1, -1, -1, + -1, -1, 45, -1, -1, 864, 920, 50, -1, -1, + 920, 54, 871, 56, 57, 58, 59, 60, -1, -1, + -1, 64, 866, -1, -1, 68, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 79, -1, -1, 82, + -1, 84, 901, -1, -1, -1, -1, 906, -1, 6, + 7, 8, 9, 10, -1, -1, 13, 14, 15, 16, + 17, 920, 19, 20, -1, 22, 23, 24, 25, 26, + 27, 28, -1, -1, -1, -1, 33, -1, 35, 36, + 37, 38, 39, 40, -1, -1, 43, -1, -1, -1, + 47, 48, -1, 50, 51, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 62, 63, -1, 65, 66, + -1, -1, 11, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, -1, 83, -1, 85, -1, + -1, -1, -1, 32, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, + 49, 50, -1, -1, -1, 54, -1, 56, 57, 58, + 59, 60, -1, -1, -1, 64, -1, 124, 125, 68, + 127, -1, 129, -1, -1, 132, 133, 134, 135, 136, + 79, -1, -1, 82, -1, 84, 143, -1, 145, 6, + 7, 8, 9, 10, -1, -1, 13, 14, 15, 16, + -1, -1, 19, 20, -1, 22, 23, 24, -1, 26, + 27, 28, -1, -1, -1, -1, 33, -1, 35, 36, + 37, 38, 39, 40, -1, -1, 43, -1, -1, -1, + 47, 48, -1, 50, 51, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 62, 63, -1, 65, 66, + -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, -1, 83, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 534, -1, -1, -1, 482, -1, -1, -1, -1, - -1, -1, -1, 607, -1, -1, -1, 881, -1, -1, - 614, 32, -1, 887, -1, -1, -1, -1, -1, 841, - -1, 843, -1, 510, -1, 512, -1, 849, -1, -1, - 607, 905, -1, -1, -1, 755, -1, 614, 758, 759, - -1, -1, -1, -1, 607, -1, 766, 767, -1, -1, - -1, 614, 73, -1, -1, -1, -1, -1, -1, 881, - -1, -1, -1, -1, 607, 887, -1, -1, -1, -1, - -1, 614, -1, -1, -1, -1, -1, -1, 798, -1, - 567, -1, -1, 905, -1, -1, -1, -1, 109, -1, - 577, 112, 113, 114, 115, -1, -1, 118, 119, -1, - 121, 122, -1, -1, -1, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, -1, -1, -1, -1, -1, - -1, 841, -1, 843, -1, -1, -1, -1, -1, 849, - 617, -1, 619, 620, -1, -1, 623, -1, -1, -1, - -1, 628, 629, -1, -1, -1, -1, -1, -1, -1, - -1, 755, -1, -1, 758, 759, -1, -1, -1, -1, - 647, 881, 766, 767, -1, -1, -1, 887, -1, -1, - -1, -1, -1, -1, 661, -1, -1, -1, 755, -1, - -1, 758, 759, -1, -1, 905, -1, -1, -1, 766, - 767, -1, 755, -1, 798, 758, 759, -1, -1, -1, - -1, -1, -1, 766, 767, -1, -1, -1, -1, -1, - -1, -1, 755, -1, -1, 758, 759, -1, -1, -1, - -1, 798, -1, 766, 767, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 798, -1, 841, -1, 843, - -1, -1, -1, -1, 731, 849, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 798, -1, -1, -1, -1, - -1, -1, -1, 750, 841, -1, 843, 754, -1, -1, - -1, -1, 849, -1, -1, -1, -1, 881, 841, -1, - 843, -1, -1, 887, -1, 9, 849, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 841, -1, - 843, 905, -1, -1, 881, -1, 849, 31, -1, 796, - 887, -1, -1, -1, -1, -1, 803, -1, 881, -1, - 44, -1, -1, -1, 887, 49, -1, -1, 905, -1, - 54, -1, 56, 57, 58, 59, -1, -1, 881, 63, - -1, -1, 905, 67, 887, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 79, -1, 844, 82, -1, - 84, -1, 905, 4, 5, 6, 7, 8, -1, -1, - 11, 12, 13, 14, 15, -1, 17, 18, -1, 20, - 21, 22, 23, -1, 25, 26, -1, -1, -1, -1, - -1, 32, -1, 34, 35, 36, 37, 38, 39, -1, - -1, 42, -1, -1, -1, 46, 47, -1, 49, 50, - 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 61, 62, -1, 64, 65, -1, -1, 68, -1, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, -1, 83, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 118, 119, -1, - -1, 122, 123, -1, -1, 126, 127, 128, 129, 130, - -1, -1, -1, -1, -1, -1, -1, -1, 139, -1, - 141, 4, 5, 6, 7, 8, -1, -1, 11, 12, - 13, 14, -1, -1, 17, 18, -1, 20, 21, 22, - -1, -1, 25, 26, -1, -1, -1, -1, -1, 32, - -1, 34, 35, 36, 37, 38, 39, -1, -1, 42, - -1, -1, -1, 46, 47, -1, 49, 50, 51, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 61, 62, - -1, 64, 65, -1, -1, 68, -1, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, -1, - 83, -1, 85, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, + 127, -1, 129, -1, -1, 132, 133, 134, 135, 136, + -1, -1, -1, -1, -1, -1, 143, -1, 145, 6, + 7, 8, 9, 10, -1, -1, 13, 14, 15, 16, + -1, -1, 19, 20, -1, -1, 23, 24, -1, 26, + 27, 28, -1, -1, -1, -1, 33, -1, 35, 36, + 37, 38, 39, 40, -1, -1, 43, -1, -1, -1, + 47, 48, -1, 50, 51, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 62, 63, -1, 65, 66, + -1, -1, -1, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 118, 119, -1, -1, 122, - 123, -1, -1, 126, 127, 128, 129, 130, -1, -1, - -1, -1, -1, -1, -1, -1, 139, -1, 141, 4, - 5, 6, 7, 8, -1, -1, 11, 12, 13, 14, - -1, -1, 17, 18, -1, -1, 21, 22, -1, -1, - 25, 26, -1, -1, -1, -1, -1, 32, -1, 34, - 35, 36, 37, 38, 39, -1, -1, 42, -1, -1, - -1, 46, 47, -1, 49, 50, 51, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, 62, -1, 64, - 65, -1, -1, 68, -1, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, -1, -1, -1, - 85, -1, -1, -1, -1, -1, -1, -1, 4, -1, - -1, -1, -1, -1, -1, -1, 12, -1, 14, -1, - -1, 17, -1, -1, -1, -1, 22, -1, -1, -1, - 26, -1, -1, 118, 119, -1, -1, 122, 123, 35, - -1, 126, 127, 128, 129, 130, 42, -1, -1, -1, - -1, 47, -1, -1, 139, 51, 141, 4, 5, 6, - 7, 8, -1, -1, 11, 12, 62, 14, 64, -1, - 17, 18, 68, -1, -1, 22, -1, -1, -1, 26, - 76, 77, -1, -1, 80, 32, -1, 83, 35, -1, - -1, -1, -1, -1, -1, 42, -1, -1, -1, -1, - 47, -1, 49, 50, 51, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 62, -1, 64, 65, 66, - -1, 68, -1, -1, 71, -1, 73, -1, 75, 76, - 77, 78, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4, 5, 6, 7, - 8, -1, -1, 11, 12, -1, 14, -1, -1, 17, - 18, 118, 119, -1, 22, 122, 123, -1, 26, 126, - 127, 128, 129, 130, 32, -1, -1, 35, -1, -1, - -1, -1, 139, 140, 42, -1, -1, -1, -1, 47, - -1, 49, 50, 51, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 62, -1, 64, 65, 66, -1, - 68, -1, -1, 71, -1, 73, -1, 75, 76, 77, - 78, -1, 80, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, + 127, -1, 129, -1, -1, 132, 133, 134, 135, 136, + -1, -1, -1, -1, -1, -1, 143, -1, 145, 6, + 7, 8, 9, 10, -1, -1, 13, 14, -1, 16, + -1, -1, 19, 20, -1, 6, -1, 24, -1, 26, + -1, 28, -1, 14, -1, 16, 33, -1, 19, 36, + 21, 22, -1, 24, -1, 26, 43, 28, 29, 30, + 31, 48, -1, 50, 51, 36, -1, -1, -1, -1, + 41, -1, 43, 44, -1, -1, 63, 48, 65, 66, + 67, -1, -1, -1, 71, -1, 73, -1, 75, 76, + 77, 78, 63, 80, 65, -1, -1, -1, 69, -1, + -1, -1, -1, -1, -1, 76, 77, -1, -1, 80, + -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4, 5, 6, 7, 8, - -1, -1, 11, 12, -1, 14, -1, -1, 17, 18, - 118, 119, -1, 22, 122, 123, -1, 26, 126, 127, - 128, 129, 130, 32, -1, -1, 35, -1, -1, -1, - -1, 139, -1, 42, -1, -1, -1, -1, 47, -1, - 49, 50, 51, -1, 53, -1, -1, -1, -1, -1, - -1, 60, -1, 62, -1, 64, 65, -1, -1, 68, - -1, -1, 71, -1, 73, -1, 75, 76, 77, 78, - -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 4, 5, 6, 7, 8, -1, - -1, 11, 12, -1, 14, -1, -1, 17, 18, -1, - -1, -1, 22, -1, -1, -1, 26, -1, -1, 118, - 119, -1, 32, 122, 123, 35, -1, 126, 127, 128, - 129, 130, 42, -1, -1, -1, -1, 47, -1, 49, - 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 62, -1, 64, 65, -1, -1, 68, -1, - -1, 71, -1, 73, -1, 75, 76, 77, 78, -1, - 80, -1, -1, 83, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4, 5, 6, 7, 8, -1, -1, - 11, 12, -1, 14, -1, -1, 17, 18, -1, -1, - -1, 22, -1, -1, -1, 26, -1, -1, 118, 119, - -1, 32, 122, 123, 35, -1, 126, 127, 128, 129, - 130, 42, -1, -1, -1, -1, 47, -1, 49, 50, + -1, -1, -1, -1, -1, -1, -1, 124, 125, -1, + 127, -1, 129, -1, -1, 132, 133, 134, 135, 136, + 6, 7, 8, 9, 10, -1, 143, 13, 14, -1, + 16, -1, -1, 19, 20, -1, -1, -1, 24, -1, + 26, -1, 28, -1, -1, -1, -1, 33, -1, -1, + 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, + -1, -1, 48, -1, 50, 51, -1, 53, -1, -1, + -1, -1, -1, -1, -1, 61, -1, 63, -1, 65, + 66, -1, -1, -1, -1, 71, -1, 73, -1, 75, + 76, 77, 78, -1, 80, -1, -1, -1, -1, -1, + 6, 7, 8, 9, 10, -1, -1, 13, 14, -1, + 16, -1, -1, 19, 20, -1, -1, -1, 24, -1, + 26, -1, 28, -1, -1, -1, -1, 33, -1, -1, + 36, -1, -1, -1, -1, -1, -1, 43, 124, 125, + -1, 127, 48, 129, 50, 51, 132, 133, 134, 135, + 136, -1, -1, -1, -1, -1, -1, 63, -1, 65, + 66, -1, -1, -1, -1, 71, -1, 73, -1, 75, + 76, 77, 78, -1, 80, -1, -1, 83, -1, -1, + 6, 7, 8, 9, 10, -1, -1, 13, 14, -1, + 16, -1, -1, 19, 20, -1, -1, -1, 24, -1, + 26, -1, 28, -1, -1, -1, -1, 33, -1, -1, + 36, -1, -1, -1, -1, -1, -1, 43, 124, 125, + -1, 127, 48, 129, 50, 51, 132, 133, 134, 135, + 136, -1, -1, -1, -1, -1, -1, 63, -1, 65, + 66, -1, -1, -1, -1, 71, -1, 73, -1, 75, + 76, 77, 78, -1, 80, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 6, 7, 8, 9, 10, + -1, -1, 13, 14, -1, 16, -1, -1, 19, 20, + -1, -1, -1, 24, -1, 26, -1, 28, 124, 125, + -1, 127, 33, 129, 130, 36, 132, 133, 134, 135, + 136, -1, 43, -1, -1, -1, -1, 48, -1, 50, 51, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 62, -1, 64, 65, -1, -1, 68, -1, -1, + -1, -1, 63, -1, 65, 66, -1, -1, -1, -1, 71, -1, 73, -1, 75, 76, 77, 78, -1, 80, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, 5, 6, 7, 8, -1, -1, 11, - 12, -1, 14, -1, -1, 17, 18, 118, 119, -1, - 22, 122, 123, 124, 26, 126, 127, 128, 129, 130, - 32, -1, -1, 35, -1, -1, -1, -1, -1, -1, - 42, -1, -1, -1, -1, 47, -1, 49, 50, 51, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 62, -1, 64, 65, -1, -1, 68, -1, -1, 71, - -1, 73, -1, 75, 76, 77, 78, -1, 80, -1, - -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, 5, 6, 7, 8, -1, -1, 11, 12, - -1, 14, -1, -1, 17, 18, -1, -1, -1, 22, - -1, -1, -1, 26, -1, -1, 118, 119, -1, 32, - 122, 123, 35, -1, 126, 127, 128, 129, 130, 42, - -1, -1, -1, -1, 47, -1, 49, 50, 51, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, - -1, 64, 65, -1, -1, 68, -1, -1, 71, -1, - 73, -1, 75, 76, 77, 78, -1, 80, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4, 5, 6, 7, 8, -1, -1, 11, 12, -1, - 14, -1, -1, 17, 18, -1, -1, -1, 22, -1, - -1, -1, 26, -1, -1, 118, 119, -1, 32, 122, - 123, 35, -1, 126, 127, 128, 129, 130, 42, -1, - -1, -1, -1, 47, -1, 49, 50, 51, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, - 64, 65, -1, -1, 68, -1, -1, 71, -1, 73, - 4, 75, 76, 77, 78, -1, 80, -1, 12, -1, - 14, -1, -1, 17, -1, 19, 20, -1, 22, -1, - 24, -1, 26, -1, 28, 29, 30, -1, -1, -1, - -1, 35, -1, -1, -1, -1, 40, 0, 42, 43, - -1, -1, -1, 47, -1, -1, 9, 51, -1, 123, - -1, -1, -1, 127, 128, -1, -1, -1, 62, -1, - 64, -1, -1, -1, 68, 69, -1, -1, 31, -1, - -1, -1, 76, 77, -1, -1, 80, -1, -1, 83, - -1, 44, -1, -1, -1, 48, 49, -1, -1, -1, - -1, 54, -1, 56, 57, 58, 59, -1, -1, -1, - 63, -1, -1, -1, 67, -1, -1, 4, -1, -1, - -1, -1, -1, -1, -1, 12, 79, 14, -1, 82, - 17, 84, 19, 20, 128, 22, -1, 24, -1, 26, - -1, 28, 29, 30, -1, -1, -1, -1, 35, -1, - -1, -1, -1, 40, -1, 42, 43, -1, -1, -1, - 47, 4, -1, -1, 51, -1, -1, -1, -1, 12, - -1, 14, -1, -1, 17, 62, -1, 64, -1, 22, - -1, 68, 69, 26, -1, -1, 29, -1, -1, 76, - 77, -1, 35, 80, -1, -1, 83, -1, -1, 42, - -1, -1, -1, -1, 47, 4, -1, -1, 51, -1, - -1, -1, -1, 12, -1, 14, -1, -1, 17, 62, - -1, 64, -1, 22, -1, 68, -1, 26, -1, -1, - -1, -1, -1, 76, 77, -1, 35, 80, -1, -1, - 83, -1, -1, 42, -1, -1, -1, -1, 47, -1, - 9, -1, 51, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 62, -1, 64, -1, -1, -1, 68, - -1, -1, 31, -1, -1, -1, -1, 76, 77, -1, - -1, 80, -1, -1, 83, 44, -1, -1, -1, 48, - 49, -1, -1, -1, -1, 54, -1, 56, 57, 58, - 59, -1, -1, -1, 63, -1, -1, -1, 67, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 79, -1, -1, 82, -1, 84 + -1, -1, 83, -1, -1, 6, 7, 8, 9, 10, + -1, -1, 13, 14, -1, 16, -1, -1, 19, 20, + -1, -1, -1, 24, -1, 26, -1, 28, -1, -1, + -1, -1, 33, -1, -1, 36, -1, -1, -1, -1, + -1, -1, 43, 124, 125, -1, 127, 48, 129, 50, + 51, 132, 133, 134, 135, 136, -1, -1, -1, -1, + -1, -1, 63, -1, 65, 66, -1, -1, -1, -1, + 71, -1, 73, -1, 75, 76, 77, 78, -1, 80, + -1, -1, -1, -1, -1, 6, 7, 8, 9, 10, + -1, -1, 13, 14, -1, 16, -1, -1, 19, 20, + -1, -1, -1, 24, -1, 26, -1, 28, -1, -1, + -1, -1, 33, -1, -1, 36, -1, -1, -1, -1, + -1, -1, 43, 124, 125, -1, 127, 48, 129, 50, + 51, 132, 133, 134, 135, 136, -1, -1, -1, -1, + -1, -1, 63, -1, 65, 66, -1, -1, -1, -1, + 71, -1, 73, -1, 75, 76, 77, 78, 6, 80, + -1, -1, -1, -1, -1, -1, 14, -1, 16, -1, + -1, 19, -1, 21, 22, -1, 24, -1, 26, -1, + 28, 29, 30, 31, -1, -1, -1, -1, 36, 6, + -1, -1, -1, 41, -1, 43, 44, 14, -1, 16, + 48, -1, 19, -1, -1, -1, -1, 24, 129, -1, + -1, 28, 133, 134, -1, 63, -1, 65, -1, 36, + -1, 69, -1, -1, -1, -1, 43, -1, 76, 77, + -1, 48, 80, -1, 6, 83, -1, -1, -1, -1, + -1, -1, 14, -1, 16, -1, 63, 19, 65, -1, + -1, -1, 24, -1, -1, -1, 28, -1, -1, 76, + 77, -1, -1, 80, 36, -1, 83, -1, -1, -1, + -1, 43, -1, -1, -1, -1, 48, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 134, -1, -1, -1, + -1, 63, -1, 65, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 76, 77, -1, -1, 80, -1, + -1, 83 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "bison.simple" @@ -2051,1504 +2020,1624 @@ yyparse(YYPARSE_PARAM) switch (yyn) { case 1: -#line 121 "csharp.y" +#line 127 "csharp.y" { R(); yyval.value = yyvsp[0].value; ; break;} case 2: -#line 122 "csharp.y" +#line 128 "csharp.y" { R(); yyval.value = yyvsp[0].value; ; break;} case 3: -#line 123 "csharp.y" +#line 129 "csharp.y" { R(); yyval.value = yyvsp[0].value; ; break;} case 4: -#line 124 "csharp.y" +#line 130 "csharp.y" { R(); yyval.value = yyvsp[0].value; ; break;} case 5: -#line 125 "csharp.y" -{ R(); yyval.value = yyvsp[0].value; ; +#line 131 "csharp.y" +{ R(); yyval.value = registerString(yyvsp[0].value);; break;} case 6: -#line 126 "csharp.y" +#line 132 "csharp.y" { R(); yyval.value = yyvsp[0].value; ; break;} case 7: -#line 129 "csharp.y" +#line 135 "csharp.y" { R(); yyval.value.type = TYPE_BOOL; yyval.value.v.i = 1; ; break;} case 8: -#line 130 "csharp.y" +#line 136 "csharp.y" { R(); yyval.value.type = TYPE_BOOL; yyval.value.v.i = 0; ; break;} case 9: -#line 140 "csharp.y" +#line 146 "csharp.y" { R(); yyval.text = yyvsp[0].text; ; break;} case 10: -#line 143 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(yyvsp[-1].text, TYPE_UNRESOLVED); /* TODO : generic here -> Sub type*/ ; +#line 149 "csharp.y" +{ + + R(); yyval.type = TypeObject::getTypeObject(yyvsp[0].text, TYPE_UNRESOLVED)->setGeneric(GetGenericType()); + PopGenericType(); + ; break;} case 11: -#line 146 "csharp.y" -{ R(); yyval.type = NULL; ; +#line 156 "csharp.y" +{ R(); ; break;} case 12: -#line 147 "csharp.y" -{ R(); yyval.type = yyvsp[0].type; ; +#line 157 "csharp.y" +{ + lex_in_generic(); + ; break;} case 13: -#line 151 "csharp.y" -{ R(); yyval.type = yyvsp[-2].type; ; +#line 159 "csharp.y" +{ + lex_out_generic(); R(); + ; break;} case 14: -#line 154 "csharp.y" -{ R(); ; +#line 165 "csharp.y" +{ PushGenericType(GetGenericType()); ; break;} case 15: -#line 155 "csharp.y" +#line 165 "csharp.y" { R(); ; break;} case 16: -#line 158 "csharp.y" -{ R(); lex_in_generic(); ; +#line 169 "csharp.y" +{ R(); addGenericType(yyvsp[0].type); ; break;} case 17: -#line 159 "csharp.y" -{ R(); lex_out_generic(); ; - break;} -case 18: -#line 163 "csharp.y" -{ R(); yyval.type = yyvsp[0].type; ; +#line 170 "csharp.y" +{ R(); addGenericType(yyvsp[-1].type); ; break;} case 19: -#line 164 "csharp.y" +#line 183 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} case 20: -#line 167 "csharp.y" +#line 184 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} case 21: -#line 168 "csharp.y" +#line 187 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} case 22: -#line 171 "csharp.y" +#line 188 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} case 23: -#line 172 "csharp.y" +#line 191 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} case 24: -#line 173 "csharp.y" +#line 192 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} case 25: -#line 176 "csharp.y" +#line 195 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} case 26: -#line 177 "csharp.y" -{ R(); yyval.type = yyvsp[0].type; ; +#line 196 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_BOOL); ; break;} case 27: -#line 180 "csharp.y" +#line 199 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} case 28: -#line 181 "csharp.y" +#line 200 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} +case 29: +#line 201 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"Unsupported decimal/Decimal type"); ; + break;} case 30: -#line 185 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_SBYTE); ; +#line 204 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_SBYTE ); ; break;} case 31: -#line 186 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_BYTE); ; +#line 205 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_BYTE ); ; break;} case 32: -#line 187 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_SHORT); ; +#line 206 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_SHORT ); ; break;} case 33: -#line 188 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_USHORT); ; +#line 207 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_USHORT ); ; break;} case 34: -#line 189 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_INT); ; +#line 208 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_INT ); ; break;} case 35: -#line 190 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_UINT); ; +#line 209 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_UINT ); ; break;} case 36: -#line 191 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_LONG); ; +#line 210 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_LONG ); ; break;} case 37: -#line 192 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_ULONG); ; +#line 211 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_ULONG ); ; break;} case 38: -#line 193 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_CHAR); ; +#line 212 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_CHAR ); ; break;} case 39: -#line 196 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_FLOAT); ; +#line 215 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_FLOAT); ; break;} case 40: -#line 197 "csharp.y" +#line 216 "csharp.y" { R(); yyval.type = TypeObject::getTypeObject(TYPE_DOUBLE); ; break;} case 41: -#line 200 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_OBJECT); ; +#line 219 "csharp.y" +{ R(); yyval.type = yyvsp[-1].type->addPointer(); ; break;} case 42: -#line 201 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_STRING); ; +#line 220 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_VOID)->addPointer(); ; break;} case 43: -#line 204 "csharp.y" -{ R(); yyval.type = yyvsp[-1].type->addPointer(); ; +#line 223 "csharp.y" +{ R(); yyval.type = yyvsp[-1].type->addRank(yyvsp[0].tmpValue); ; break;} case 44: -#line 205 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_VOID)->addPointer(); ; +#line 224 "csharp.y" +{ R(); yyval.type = yyvsp[-1].type->addRank(yyvsp[0].tmpValue); ; break;} case 45: -#line 208 "csharp.y" -{ R(); yyval.type = yyvsp[-1].type->addRank(yyvsp[0].tmpValue); ; +#line 226 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(yyvsp[-1].text, TYPE_UNRESOLVED)->addRank(yyvsp[0].tmpValue); ; break;} case 46: -#line 209 "csharp.y" -{ R(); yyval.type = yyvsp[-1].type->addRank(yyvsp[0].tmpValue); ; +#line 229 "csharp.y" +{ R(); yyval.tmpValue = 0; ; break;} case 47: -#line 211 "csharp.y" -{ R(); yyval.type = yyvsp[-1].type->addRank(yyvsp[0].tmpValue); ; +#line 231 "csharp.y" +{ R(); yyval.tmpValue = yyvsp[-1].tmpValue; ; break;} case 48: -#line 214 "csharp.y" -{ R(); yyval.tmpValue = 0; ; +#line 234 "csharp.y" +{ R(); yyval.tmpValue = yyvsp[0].tmpValue; ; break;} case 49: -#line 216 "csharp.y" -{ R(); yyval.tmpValue = yyvsp[-1].tmpValue; ; +#line 242 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 50: -#line 219 "csharp.y" -{ R(); yyval.tmpValue = yyvsp[0].tmpValue; ; +#line 246 "csharp.y" +{ R(); yyval.expr = CreateMultipleExpr(yyvsp[0].expr); ; break;} case 51: -#line 227 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 247 "csharp.y" +{ R(); yyval.expr = yyvsp[-2].expr->addExpression(yyvsp[0].expr); ; break;} case 52: -#line 231 "csharp.y" -{ R(); yyval.expr = CreateMultipleExpr(yyvsp[0].expr); ; +#line 250 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 53: -#line 232 "csharp.y" -{ R(); yyval.expr = yyvsp[-2].expr->addExpression(yyvsp[-1].expr); ; +#line 251 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_REF, yyvsp[0].expr); ; break;} case 54: -#line 235 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 252 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_REF, yyvsp[0].expr); ; break;} case 55: -#line 236 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_REF, yyvsp[-1].expr); ; +#line 253 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET, "Named arguments are not supported yet"); ; break;} case 56: -#line 237 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_OUT, yyvsp[-1].expr); ; +#line 256 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 57: -#line 240 "csharp.y" +#line 257 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 58: -#line 241 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 260 "csharp.y" +{ R(); yyval.expr = CreateLeafExpr(EXPR_CTE)->setValue(yyvsp[0].value); ; break;} case 59: -#line 244 "csharp.y" -{ R(); yyval.expr = CreateLeafExpr(EXPR_CTE)->setValue(yyvsp[0].value); ; +#line 261 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 60: -#line 245 "csharp.y" +#line 262 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 61: -#line 246 "csharp.y" +#line 263 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 62: -#line 247 "csharp.y" +#line 264 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 63: -#line 248 "csharp.y" +#line 265 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 64: -#line 249 "csharp.y" +#line 266 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 65: -#line 250 "csharp.y" +#line 267 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 66: -#line 251 "csharp.y" +#line 268 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 67: -#line 252 "csharp.y" +#line 269 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 68: -#line 253 "csharp.y" +#line 270 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 69: -#line 254 "csharp.y" +#line 271 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 70: -#line 255 "csharp.y" +#line 272 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 71: -#line 258 "csharp.y" -{ R(); yyval.expr = yyvsp[-1].expr->addParenthesis(); ; +#line 276 "csharp.y" +{ R(); yyval.expr = CreateDelegateExpr(yyvsp[-2].variable, yyvsp[0].statement); ; break;} case 72: -#line 261 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_DOT, yyvsp[-2].expr, yyvsp[-1].expr); ; +#line 280 "csharp.y" +{ R(); yyval.expr = yyvsp[-1].expr->addParenthesis(); ; break;} case 73: -#line 262 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_DOT, yyvsp[-2].expr, yyvsp[-1].expr); ; +#line 283 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_DOT, yyvsp[-2].expr)->setIdentifier(yyvsp[0].text); ; break;} case 74: -#line 263 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_DOT, yyvsp[-2].expr, yyvsp[-1].expr); ; +#line 284 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_DOT, CreateLeafExpr(EXPR_IDENT,yyvsp[-2].type->m_definitionAC->m_name))->setIdentifier(yyvsp[0].text); ; break;} case 75: -#line 266 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_INVOKE, yyvsp[-3].expr, yyvsp[-1].expr); ; +#line 287 "csharp.y" +{ PushGenericType(GetGenericType()); ; break;} case 76: -#line 267 "csharp.y" -{ R(); - yyval.expr = CreateDoubleExpr(EXPR_INVOKE, NULL, yyvsp[-1].expr)->setIdentifier(yyvsp[-3].text); - ; +#line 287 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_INVOKE, yyvsp[-5].expr, yyvsp[-1].expr)->addGenericType(PopGenericType())->patchSubInvoke(); ; break;} case 77: -#line 272 "csharp.y" -{ R(); yyval.expr = NULL; ; +#line 288 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_INVOKE, CreateLeafExpr(EXPR_IDENT,yyvsp[-3].text), yyvsp[-1].expr)->addGenericType(GetGenericType())->patchSubInvoke(); PopGenericType(); ; break;} case 78: -#line 273 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 291 "csharp.y" +{ R(); yyval.expr = NULL; ; break;} case 79: -#line 276 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_ACCESS, yyvsp[-3].expr, yyvsp[-1].expr); ; +#line 292 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 80: -#line 277 "csharp.y" +#line 295 "csharp.y" { R(); yyval.expr = CreateDoubleExpr(EXPR_ACCESS, yyvsp[-3].expr, yyvsp[-1].expr); ; break;} case 81: -#line 281 "csharp.y" -{ R(); yyval.expr = NULL; ; +#line 296 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_ACCESS, CreateLeafExpr(EXPR_IDENT,yyvsp[-3].text), yyvsp[-1].expr); ; break;} case 82: -#line 282 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 300 "csharp.y" +{ R(); yyval.expr = NULL; ; break;} case 83: -#line 286 "csharp.y" -{ R(); yyval.expr = CreateMultipleExpr(yyvsp[0].expr); ; +#line 301 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 84: -#line 287 "csharp.y" -{ R(); yyval.expr = yyvsp[-2].expr->addExpression(yyvsp[0].expr); ; +#line 305 "csharp.y" +{ R(); yyval.expr = CreateMultipleExpr(yyvsp[0].expr); ; break;} case 85: -#line 290 "csharp.y" -{ R(); yyval.expr = CreateLeafExpr(EXPR_THIS); ; +#line 306 "csharp.y" +{ R(); yyval.expr = yyvsp[-2].expr->addExpression(yyvsp[0].expr); ; break;} case 86: -#line 293 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_ACCESS, CreateLeafExpr(EXPR_BASE))->setIdentifier(yyvsp[0].text); ; +#line 309 "csharp.y" +{ R(); yyval.expr = CreateLeafExpr(EXPR_THIS); ; break;} case 87: -#line 294 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_ACCESS, CreateLeafExpr(EXPR_BASE), yyvsp[-1].expr);; +#line 312 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_DOT, CreateLeafExpr(EXPR_BASE))->setIdentifier(yyvsp[0].text); ; break;} case 88: -#line 297 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_PLUSPLUS, yyvsp[-1].expr); ; +#line 313 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_ACCESS, CreateLeafExpr(EXPR_BASE), yyvsp[-1].expr);; break;} case 89: -#line 300 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_MINUSMINUS, yyvsp[-1].expr);; +#line 316 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_PLUSPLUS, yyvsp[-1].expr); ; break;} case 90: -#line 303 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 319 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_MINUSMINUS, yyvsp[-1].expr);; break;} case 91: -#line 306 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_NEW, yyvsp[-1].expr)->setType(yyvsp[-3].type); ; +#line 322 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 92: -#line 310 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_NEW, yyvsp[-3].expr, yyvsp[0].expr)->setType(yyvsp[-5].type)->setRank(yyvsp[-1].tmpValue)->setArrayNew(); ; +#line 325 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_NEW, yyvsp[-1].expr)->setType(yyvsp[-3].type); ; break;} case 93: -#line 311 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_NEW, NULL, yyvsp[0].expr)->setArrayNew(); ; +#line 329 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_NEW, yyvsp[-3].expr, yyvsp[0].expr)->setType(yyvsp[-5].type)->setRank(yyvsp[-1].tmpValue)->setArrayNew(true); ; break;} case 94: -#line 314 "csharp.y" -{ R(); yyval.expr = NULL; ; +#line 330 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_NEW, NULL, yyvsp[0].expr)->setType(yyvsp[-1].type)->setArrayNew(false); ; break;} case 95: -#line 315 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 333 "csharp.y" +{ R(); yyval.expr = NULL; ; break;} case 96: -#line 318 "csharp.y" -{ R(); yyval.expr = CreateLeafExpr(EXPR_TYPEOF)->setType(yyvsp[-1].type); ; +#line 334 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 97: -#line 319 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"typeof(void)"); ; +#line 337 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET,"typeof()"); yyval.expr = CreateLeafExpr(EXPR_TYPEOF)->setType(yyvsp[-1].type); ; break;} case 98: -#line 322 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_CHECKED, yyvsp[-1].expr); ; +#line 338 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET,"typeof(void)"); ; break;} case 99: -#line 325 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_UNCHECKED, yyvsp[-1].expr); ; +#line 341 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"checked"); yyval.expr = CreateSingleExpr(EXPR_CHECKED, yyvsp[-1].expr); ; break;} case 100: -#line 328 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_ARROW, yyvsp[-2].expr)->setIdentifier(yyvsp[0].text); ; +#line 344 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"unchecked"); yyval.expr = CreateSingleExpr(EXPR_UNCHECKED, yyvsp[-1].expr); ; break;} case 101: -#line 331 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_ADRESSOF, yyvsp[-1].expr); ; +#line 347 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET, "-> operator not supported yet"); yyval.expr = CreateSingleExpr(EXPR_ARROW, yyvsp[-2].expr)->setIdentifier(yyvsp[0].text); ; break;} case 102: -#line 334 "csharp.y" -{ R(); yyval.expr = CreateLeafExpr(EXPR_SIZEOF)->setType(yyvsp[-1].type); ; +#line 350 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET, "& adress operator not supported yet."); yyval.expr = CreateSingleExpr(EXPR_ADRESSOF, yyvsp[-1].expr); ; break;} case 103: -#line 337 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 353 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET, "sizeof() operator not supported yet"); yyval.expr = CreateLeafExpr(EXPR_SIZEOF)->setType(yyvsp[-1].type); ; break;} case 104: -#line 338 "csharp.y" +#line 356 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 105: -#line 339 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 357 "csharp.y" +{ R(); yyval.expr = CreateLeafExpr(EXPR_IDENT,yyvsp[0].text); ; break;} case 106: -#line 340 "csharp.y" +#line 358 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 107: -#line 341 "csharp.y" +#line 359 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 108: -#line 344 "csharp.y" +#line 360 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 109: -#line 345 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_NOT, yyvsp[0].expr); ; +#line 363 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 110: -#line 346 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_LNOT, yyvsp[0].expr); ; +#line 364 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_NOT, yyvsp[0].expr); ; break;} case 111: -#line 347 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 365 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_LNOT, yyvsp[0].expr); ; break;} case 112: -#line 350 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_PREINCR, yyvsp[0].expr); ; +#line 366 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 113: -#line 353 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_PREDECR, yyvsp[0].expr); ; +#line 369 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_PREINCR, yyvsp[0].expr); ; break;} case 114: -#line 356 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 372 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_PREDECR, yyvsp[0].expr); ; break;} case 115: -#line 357 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_UNARYPLUS, yyvsp[0].expr); ; +#line 375 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 116: -#line 358 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_UNARYMINUS, yyvsp[0].expr); ; +#line 376 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_UNARYPLUS, yyvsp[0].expr); ; break;} case 117: -#line 359 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_UNARYMULT, yyvsp[0].expr); ; +#line 377 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_UNARYMINUS, yyvsp[0].expr); ; break;} case 118: -#line 360 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 378 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET,"Unary * operator"); yyval.expr = CreateSingleExpr(EXPR_UNARYMULT, yyvsp[0].expr); ; break;} case 119: -#line 361 "csharp.y" +#line 379 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 120: -#line 362 "csharp.y" +#line 380 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 121: -#line 370 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_CAST, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 381 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 122: -#line 371 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_CAST_PTR, yyvsp[-3].expr, yyvsp[-1].expr); ; +#line 389 "csharp.y" +{ + R(); yyval.expr = CreateDoubleExpr(EXPR_CAST, yyvsp[-2].expr, yyvsp[0].expr); + ; break;} case 123: -#line 373 "csharp.y" -{ R(); - // TODO Cast D +#line 392 "csharp.y" +{ + R(); yyval.expr = CreateDoubleExpr(EXPR_CAST_PTR, yyvsp[-3].expr, yyvsp[0].expr); ; break;} case 124: -#line 377 "csharp.y" -{ R(); - // TODO Cast E +#line 396 "csharp.y" +{ + yyval.expr = CreateSingleExpr(EXPR_CAST, yyvsp[0].expr)->setType(TypeObject::getTypeObject(yyvsp[-4].text, TYPE_UNRESOLVED)->addRank(yyvsp[-3].tmpValue),yyvsp[-2].quals); ; break;} case 125: -#line 381 "csharp.y" -{ R(); - // TODO Cast F +#line 400 "csharp.y" +{ R(); + // $2.type, $3.quals, $5.expr + yyval.expr = CreateSingleExpr(EXPR_CAST, yyvsp[0].expr)->setType(yyvsp[-3].type,yyvsp[-2].quals); ; break;} case 126: -#line 385 "csharp.y" -{ R(); - // TODO Cast G +#line 405 "csharp.y" +{ R(); + // $3.quals, $5.expr + yyval.expr = CreateSingleExpr(EXPR_CAST, yyvsp[0].expr)->setType(TypeObject::getTypeObject(TYPE_VOID),yyvsp[-2].quals); ; break;} +case 127: +#line 411 "csharp.y" +{ R(); yyval.quals = NULL; ; + break;} +case 128: +#line 412 "csharp.y" +{ R(); yyval.quals = yyvsp[0].quals; ; + break;} +case 129: +#line 415 "csharp.y" +{ R(); yyval.quals = new Quals(yyvsp[0].tmpValue); ; + break;} +case 130: +#line 416 "csharp.y" +{ R(); yyval.quals = yyvsp[-1].quals->addQuals(yyvsp[0].tmpValue); ; + break;} +case 131: +#line 419 "csharp.y" +{ yyval.tmpValue = yyvsp[0].tmpValue; ; + break;} +case 132: +#line 420 "csharp.y" +{ yyval.tmpValue = -1; ; + break;} case 133: -#line 404 "csharp.y" +#line 424 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 134: -#line 405 "csharp.y" +#line 425 "csharp.y" { R(); yyval.expr = CreateDoubleExpr(EXPR_MULT, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 135: -#line 406 "csharp.y" +#line 426 "csharp.y" { R(); yyval.expr = CreateDoubleExpr(EXPR_DIV, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 136: -#line 407 "csharp.y" +#line 427 "csharp.y" { R(); yyval.expr = CreateDoubleExpr(EXPR_MOD, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 137: -#line 410 "csharp.y" +#line 430 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 138: -#line 411 "csharp.y" +#line 431 "csharp.y" { R(); yyval.expr = CreateDoubleExpr(EXPR_PLUS, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 139: -#line 412 "csharp.y" +#line 432 "csharp.y" { R(); yyval.expr = CreateDoubleExpr(EXPR_MINUS, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 140: -#line 415 "csharp.y" +#line 435 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 141: -#line 416 "csharp.y" +#line 436 "csharp.y" { R(); yyval.expr = CreateDoubleExpr(EXPR_LSHFT, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 142: -#line 420 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 437 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_RSHFT, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 143: -#line 421 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_LESS, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 440 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 144: -#line 422 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_MORE, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 441 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_LESS, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 145: -#line 423 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_LESSEQ, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 442 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_MORE, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 146: -#line 424 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_MOREEQ, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 443 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_LESSEQ, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 147: -#line 425 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_IS, yyvsp[-2].expr)->setType(yyvsp[0].type); ; +#line 444 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_MOREEQ, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 148: -#line 426 "csharp.y" -{ R(); yyval.expr = CreateSingleExpr(EXPR_AS, yyvsp[-2].expr)->setType(yyvsp[0].type); ; +#line 445 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_IS, yyvsp[-2].expr)->setType(yyvsp[0].type); ; break;} case 149: -#line 429 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 446 "csharp.y" +{ R(); yyval.expr = CreateSingleExpr(EXPR_AS, yyvsp[-2].expr)->setType(yyvsp[0].type); ; break;} case 150: -#line 430 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_EQUTST, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 449 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 151: -#line 431 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_DIFFTST, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 450 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_EQUTST, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 152: -#line 434 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 451 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_DIFFTST, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 153: -#line 435 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_LAND, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 454 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 154: -#line 438 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 455 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_LAND, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 155: -#line 439 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_LXOR, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 458 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 156: -#line 442 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 459 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_LXOR, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 157: -#line 443 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_LOR, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 462 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 158: -#line 446 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 463 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_LOR, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 159: -#line 447 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_AND, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 466 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 160: -#line 450 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 467 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_AND, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 161: -#line 451 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr(EXPR_OR, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 470 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 162: -#line 454 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 471 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr(EXPR_OR, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 163: -#line 455 "csharp.y" -{ R(); yyval.expr = CreateTripleExpr(EXPR_COND, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 474 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 164: -#line 457 "csharp.y" -{ R(); yyval.expr = CreateDoubleExpr((EnumExpressionType)yyvsp[-1].tmpValue, yyvsp[-2].expr, yyvsp[0].expr); ; +#line 475 "csharp.y" +{ R(); yyval.expr = CreateTripleExpr(EXPR_COND, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 165: -#line 460 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_EQ; ; +#line 477 "csharp.y" +{ R(); yyval.expr = CreateDoubleExpr((EnumExpressionType)yyvsp[-1].tmpValue, yyvsp[-2].expr, yyvsp[0].expr); ; break;} case 166: -#line 461 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_PLUSEQ; ; +#line 480 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_EQ; ; break;} case 167: -#line 462 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_MINUSEQ; ; +#line 481 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_PLUSEQ; ; break;} case 168: -#line 463 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_STAREQ; ; +#line 482 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_MINUSEQ; ; break;} case 169: -#line 464 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_DIVEQ; ; +#line 483 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_STAREQ; ; break;} case 170: -#line 465 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_MODEQ; ; +#line 484 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_DIVEQ; ; break;} case 171: -#line 466 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_XOREQ; ; +#line 485 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_MODEQ; ; break;} case 172: -#line 467 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_ANDEQ; ; +#line 486 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_XOREQ; ; break;} case 173: -#line 468 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_OREQ; ; +#line 487 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_ANDEQ; ; break;} case 174: -#line 469 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_RSHFTEQ; ; +#line 488 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_OREQ; ; break;} case 175: -#line 470 "csharp.y" -{ R(); yyval.tmpValue = EXPR_ASS_LSHFTEQ; ; +#line 489 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_RSHFTEQ; ; break;} case 176: -#line 474 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 490 "csharp.y" +{ R(); yyval.tmpValue = EXPR_ASS_LSHFTEQ; ; break;} case 177: -#line 475 "csharp.y" +#line 494 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 178: -#line 478 "csharp.y" +#line 495 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 179: -#line 481 "csharp.y" +#line 498 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 180: -#line 496 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 501 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 181: -#line 497 "csharp.y" +#line 516 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 182: -#line 498 "csharp.y" +#line 517 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 183: -#line 501 "csharp.y" +#line 518 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 184: -#line 502 "csharp.y" +#line 521 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 185: -#line 503 "csharp.y" +#line 522 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 186: -#line 504 "csharp.y" +#line 523 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 187: -#line 505 "csharp.y" +#line 524 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 188: -#line 506 "csharp.y" +#line 525 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 189: -#line 507 "csharp.y" +#line 526 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 190: -#line 508 "csharp.y" +#line 527 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 191: -#line 509 "csharp.y" +#line 528 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 192: -#line 510 "csharp.y" +#line 529 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 193: -#line 511 "csharp.y" +#line 530 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 194: -#line 512 "csharp.y" +#line 531 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 195: -#line 513 "csharp.y" +#line 532 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 196: -#line 516 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_BLOCK, NULL, yyvsp[-1].statement); ; +#line 533 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 197: -#line 519 "csharp.y" -{ R(); yyval.statement = NULL; ; +#line 536 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_BLOCK, NULL, yyvsp[-1].statement); ; break;} case 198: -#line 520 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 539 "csharp.y" +{ R(); yyval.statement = NULL; ; break;} case 199: -#line 524 "csharp.y" +#line 540 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 200: -#line 525 "csharp.y" -{ R(); yyval.statement = yyvsp[-1].statement ? yyvsp[-1].statement->addNext(yyvsp[0].statement) : yyvsp[0].statement; ; +#line 544 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 201: -#line 528 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_NULL, NULL, NULL); ; +#line 545 "csharp.y" +{ R(); yyval.statement = yyvsp[-1].statement ? yyvsp[-1].statement->addNext(yyvsp[0].statement) : yyvsp[0].statement; ; break;} case 202: -#line 531 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_LABEL, yyvsp[0].statement, NULL)->addLabel(yyvsp[-2].text); ; +#line 548 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_NULL, NULL, NULL); ; break;} case 203: -#line 534 "csharp.y" -{ R(); yyval.statement = yyvsp[-1].statement; ; +#line 551 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_LABEL, NULL, yyvsp[0].statement)->addLabel(yyvsp[-2].text); ; break;} case 204: -#line 535 "csharp.y" +#line 554 "csharp.y" { R(); yyval.statement = yyvsp[-1].statement; ; break;} case 205: -#line 538 "csharp.y" -{ R(); yyval.statement = CreateVarStatement(STM_LOCALVAR, NULL, NULL, yyvsp[0].variable, yyvsp[-1].type); ; +#line 555 "csharp.y" +{ R(); yyval.statement = yyvsp[-1].statement; ; break;} case 206: -#line 541 "csharp.y" -{ R(); yyval.variable = yyvsp[0].variable; ; +#line 558 "csharp.y" +{ R(); yyval.statement = CreateVarStatement(STM_LOCALVAR, NULL, NULL, yyvsp[0].variable, yyvsp[-1].type); ; break;} case 207: -#line 542 "csharp.y" -{ R(); yyval.variable = yyvsp[-2].variable->addVariable(yyvsp[0].variable); ; +#line 561 "csharp.y" +{ R(); yyval.variable = yyvsp[0].variable; ; break;} case 208: -#line 545 "csharp.y" -{ R(); yyval.variable = CreateVarInstance(yyvsp[0].text); ; +#line 562 "csharp.y" +{ R(); yyval.variable = yyvsp[-2].variable->addVariable(yyvsp[0].variable); ; break;} case 209: -#line 546 "csharp.y" -{ R(); yyval.variable = CreateVarInstance(yyvsp[-2].text)->setInitializer(yyvsp[0].expr); ; +#line 565 "csharp.y" +{ R(); yyval.variable = CreateVarInstance(yyvsp[0].text); ; break;} case 210: -#line 549 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 566 "csharp.y" +{ R(); yyval.variable = CreateVarInstance(yyvsp[-2].text)->setInitializer(yyvsp[0].expr); ; break;} case 211: -#line 550 "csharp.y" +#line 569 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 212: -#line 551 "csharp.y" +#line 570 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} case 213: -#line 554 "csharp.y" -{ R(); /* Only in unsafe code from spec */compilerError(UNSUPPORTED,"stackalloc"); ; +#line 571 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 214: -#line 557 "csharp.y" -{ R(); yyval.statement = CreateVarStatement(STM_LOCALVAR, NULL, NULL, yyvsp[0].variable, yyvsp[-1].type)->setConstant(); ; +#line 574 "csharp.y" +{ R(); /* Only in unsafe code from spec */compilerError(ERR_NOT_SUPPORTED_YET,"stackalloc"); ; break;} case 215: -#line 560 "csharp.y" -{ R(); yyval.variable = yyvsp[0].variable; ; +#line 577 "csharp.y" +{ R(); yyval.statement = CreateVarStatement(STM_LOCALVAR, NULL, NULL, yyvsp[0].variable, yyvsp[-1].type)->setConstant(); ; break;} case 216: -#line 561 "csharp.y" -{ R(); yyval.variable = yyvsp[-2].variable->addVariable(yyvsp[0].variable); ; +#line 580 "csharp.y" +{ R(); yyval.variable = yyvsp[0].variable; ; break;} case 217: -#line 564 "csharp.y" -{ R(); yyval.variable = CreateVarInstance(yyvsp[-2].text)->setInitializer(yyvsp[0].expr); ; +#line 581 "csharp.y" +{ R(); yyval.variable = yyvsp[-2].variable->addVariable(yyvsp[0].variable); ; break;} case 218: -#line 567 "csharp.y" -{ R(); yyval.statement = yyvsp[-1].statement; ; +#line 584 "csharp.y" +{ R(); yyval.variable = CreateVarInstance(yyvsp[-2].text)->setInitializer(yyvsp[0].expr); ; break;} case 219: -#line 570 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 587 "csharp.y" +{ R(); yyval.statement = yyvsp[-1].statement; ; break;} case 220: -#line 571 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 590 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_WRAP_EXP, NULL, NULL)->setExpression(yyvsp[0].expr); ; break;} case 221: -#line 572 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 591 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_WRAP_EXP, NULL, NULL)->setExpression(yyvsp[0].expr); ; break;} case 222: -#line 573 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_WRAPPER_POSTINCR,NULL,NULL)->setExpression(yyvsp[0].expr); ; +#line 592 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_ASSIGN_EXPR, NULL, NULL)->setExpression(yyvsp[0].expr); ; break;} case 223: -#line 574 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_WRAPPER_POSTDECR,NULL,NULL)->setExpression(yyvsp[0].expr); ; +#line 593 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_WRAPPER_POSTINCR,NULL,NULL)->setExpression(yyvsp[0].expr); ; break;} case 224: -#line 575 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_WRAPPER_PREINCR ,NULL,NULL)->setExpression(yyvsp[0].expr); ; +#line 594 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_WRAPPER_POSTDECR,NULL,NULL)->setExpression(yyvsp[0].expr); ; break;} case 225: -#line 576 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_WRAPPER_PREDECR ,NULL,NULL)->setExpression(yyvsp[0].expr); ; +#line 595 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_WRAPPER_PREINCR ,NULL,NULL)->setExpression(yyvsp[0].expr); ; break;} case 226: -#line 579 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 596 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_WRAPPER_PREDECR ,NULL,NULL)->setExpression(yyvsp[0].expr); ; break;} case 227: -#line 580 "csharp.y" +#line 599 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 228: -#line 583 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_IF, NULL, yyvsp[0].statement)->setExpression(yyvsp[-2].expr); ; +#line 600 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 229: -#line 584 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_IF, NULL, yyvsp[-2].statement)->addChild(yyvsp[0].statement)->setExpression(yyvsp[-4].expr); ; +#line 605 "csharp.y" +{ + R(); + if (yyvsp[0].statement) { + // IF-ELSE + yyval.statement = CreateStatement(STM_IF, NULL, yyvsp[-1].statement)->addChild(yyvsp[0].statement)->setExpression(yyvsp[-1].expr); + } else { + // IF + yyval.statement = CreateStatement(STM_IF, NULL, yyvsp[-1].statement)->setExpression(yyvsp[-1].expr); + } + ; break;} case 230: -#line 587 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_SWITCH, NULL, yyvsp[0].statement)->setExpression(yyvsp[-2].expr); ; +#line 617 "csharp.y" +{ yyval.expr = yyvsp[-2].expr; yyval.statement = yyvsp[0].statement; ; break;} case 231: -#line 590 "csharp.y" -{ R(); yyval.statement = yyvsp[-1].statement; ; +#line 620 "csharp.y" +{ yyval.statement = yyvsp[0].statement; ; break;} case 232: -#line 593 "csharp.y" -{ R(); yyval.statement = NULL; ; +#line 621 "csharp.y" +{ yyval.statement = NULL; ; break;} case 233: -#line 594 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 625 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_SWITCH, NULL, yyvsp[0].statement)->setExpression(yyvsp[-2].expr); ; break;} case 234: -#line 597 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 628 "csharp.y" +{ R(); yyval.statement = yyvsp[-1].statement; ; break;} case 235: -#line 598 "csharp.y" -{ R(); yyval.statement = yyvsp[-1].statement->addNext(yyvsp[0].statement); ; +#line 631 "csharp.y" +{ R(); yyval.statement = NULL; ; break;} case 236: -#line 601 "csharp.y" -{ R(); yyval.statement = yyvsp[-1].statement->addChild(yyvsp[0].statement); ; +#line 632 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 237: -#line 605 "csharp.y" +#line 635 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 238: -#line 606 "csharp.y" +#line 636 "csharp.y" { R(); yyval.statement = yyvsp[-1].statement->addNext(yyvsp[0].statement); ; break;} case 239: -#line 609 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_CASE, NULL, NULL )->setExpression(yyvsp[-1].expr); ; +#line 639 "csharp.y" +{ R(); yyval.statement = yyvsp[-1].statement->addChild(yyvsp[0].statement); ; break;} case 240: -#line 610 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_CASEDEFAULT, NULL, NULL); ; +#line 642 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 241: -#line 613 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 643 "csharp.y" +{ R(); yyval.statement = yyvsp[-1].statement->addNext(yyvsp[0].statement); ; break;} case 242: -#line 614 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 646 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_CASE, NULL, NULL )->setExpression(yyvsp[-1].expr); ; break;} case 243: -#line 615 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 647 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_CASEDEFAULT, NULL, NULL); ; break;} case 244: -#line 616 "csharp.y" +#line 650 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} case 245: -#line 619 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_UNSAFE, NULL, yyvsp[0].statement); ; +#line 651 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 246: -#line 623 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_WHILE, NULL, yyvsp[0].statement)->setExpression(yyvsp[-2].expr); ; +#line 652 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 247: -#line 627 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_DOWHILE, NULL, yyvsp[-5].statement)->setExpression(yyvsp[-2].expr); ; +#line 653 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 248: -#line 631 "csharp.y" +#line 656 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_UNSAFE, NULL, yyvsp[0].statement); ; + break;} +case 249: +#line 660 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_WHILE, NULL, yyvsp[0].statement)->setExpression(yyvsp[-2].expr); ; + break;} +case 250: +#line 664 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_DOWHILE, NULL, yyvsp[-5].statement)->setExpression(yyvsp[-2].expr); ; + break;} +case 251: +#line 668 "csharp.y" { R(); yyval.statement = CreateStatement(STM_FOR, NULL, yyvsp[-7].statement) ->setExpression (yyvsp[-4].expr) ->addChildNilWrap(yyvsp[-6].statement) ->addChildNilWrap(yyvsp[-2].statement) ->addChildNilWrap(yyvsp[0].statement); ; break;} -case 249: -#line 637 "csharp.y" +case 252: +#line 674 "csharp.y" { R(); yyval.statement = NULL; ; break;} -case 250: -#line 638 "csharp.y" +case 253: +#line 675 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 251: -#line 641 "csharp.y" +case 254: +#line 678 "csharp.y" { R(); yyval.expr = NULL; ; break;} -case 252: -#line 642 "csharp.y" +case 255: +#line 679 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} -case 253: -#line 645 "csharp.y" +case 256: +#line 682 "csharp.y" { R(); yyval.statement = NULL; ; break;} -case 254: -#line 646 "csharp.y" +case 257: +#line 683 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 255: -#line 649 "csharp.y" +case 258: +#line 686 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 256: -#line 650 "csharp.y" +case 259: +#line 687 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 257: -#line 653 "csharp.y" +case 260: +#line 690 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} -case 258: -#line 656 "csharp.y" +case 261: +#line 693 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 259: -#line 659 "csharp.y" +case 262: +#line 696 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 260: -#line 660 "csharp.y" +case 263: +#line 697 "csharp.y" { R(); yyval.statement = yyvsp[-2].statement->addNext(yyvsp[0].statement); ; break;} -case 261: -#line 664 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_FOREACH, NULL, NULL) - ->setExpression(yyvsp[-2].expr) - ->addType(yyvsp[-5].type) - ->addChild(yyvsp[0].statement); +case 264: +#line 709 "csharp.y" +{ + R(); + const char* enumVar = makeUniqueId("enumerator"); + PushGenericType(GetGenericType()); + addGenericType(yyvsp[-5].type); + // NOTE: Requires System.Collections.Generic; + TypeObject* enumType = + TypeObject::getTypeObject("IEnumerator", TYPE_UNRESOLVED) + ->setGeneric(GetGenericType()); + PopGenericType(); + + yyval.statement = + /* IEnumerator enumerator = $6.GetEnumerator() */ + CreateVarStatement( + STM_LOCALVAR, + NULL, // next + NULL, // child + CreateVarInstance( + enumVar + )->setInitializer( + CreateDoubleExpr( + EXPR_INVOKE, + CreateSingleExpr(EXPR_DOT, yyvsp[-2].expr)->setIdentifier("GetEnumerator"), + NULL + )->patchSubInvoke() + ), + enumType + ) ->addNext( + CreateStatement(STM_TRY, NULL, NULL) + ->addChild( + CreateStatement( + STM_BLOCK, + NULL, + CreateStatement( + STM_WHILE, + NULL, + CreateStatement( + STM_BLOCK, + NULL, + CreateVarStatement( + STM_LOCALVAR, + yyvsp[0].statement, // next + NULL, // child + CreateVarInstance( + yyvsp[-4].text + )->setInitializer( + CreateSingleExpr(EXPR_DOT, CreateLeafExpr(EXPR_IDENT, enumVar))->setIdentifier("Current") + ), + yyvsp[-5].type + ) + ) + ) -> setExpression( + /* enumerator.MoveNext() */ + CreateDoubleExpr( + EXPR_INVOKE, + CreateSingleExpr(EXPR_DOT, CreateLeafExpr(EXPR_IDENT, enumVar))->setIdentifier("MoveNext"), + NULL // no args + )->patchSubInvoke() + ) + ) + ) -> addNext ( + CreateStatement(STM_FINALLY, NULL, NULL) + ->addChild( + CreateStatement( + STM_BLOCK, + NULL, + CreateStatement(STM_WRAP_EXP, NULL, NULL) -> setExpression( + /* enumerator.Dispose() */ + CreateDoubleExpr( + EXPR_INVOKE, + CreateSingleExpr(EXPR_DOT, CreateLeafExpr(EXPR_IDENT, enumVar))->setIdentifier("Dispose"), + NULL // no args + )->patchSubInvoke() + ) + ) + ) + ) + ); ; break;} -case 262: -#line 671 "csharp.y" +case 265: +#line 790 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 263: -#line 672 "csharp.y" +case 266: +#line 791 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 264: -#line 673 "csharp.y" +case 267: +#line 792 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 265: -#line 674 "csharp.y" +case 268: +#line 793 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 266: -#line 675 "csharp.y" +case 269: +#line 794 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 267: -#line 678 "csharp.y" +case 270: +#line 797 "csharp.y" { R(); yyval.statement = CreateStatement(STM_BREAK, NULL, NULL); ; break;} -case 268: -#line 681 "csharp.y" +case 271: +#line 800 "csharp.y" { R(); yyval.statement = CreateStatement(STM_CONTINUE, NULL, NULL); ; break;} -case 269: -#line 684 "csharp.y" +case 272: +#line 803 "csharp.y" { R(); yyval.statement = CreateStatement(STM_GOTO, NULL,NULL)->addLabel(yyvsp[-1].text); ; break;} -case 270: -#line 685 "csharp.y" +case 273: +#line 804 "csharp.y" { R(); yyval.statement = CreateStatement(STM_GOTOCASE, NULL, NULL)->setExpression(yyvsp[-1].expr); ; break;} -case 271: -#line 686 "csharp.y" +case 274: +#line 805 "csharp.y" { R(); yyval.statement = CreateStatement(STM_GOTODEFAULT, NULL,NULL); ; break;} -case 272: -#line 689 "csharp.y" +case 275: +#line 808 "csharp.y" { R(); yyval.statement = CreateStatement(STM_RETURN, NULL, NULL)->setExpression(yyvsp[-1].expr); ; break;} -case 273: -#line 692 "csharp.y" +case 276: +#line 811 "csharp.y" { R(); yyval.expr = NULL; ; break;} -case 274: -#line 693 "csharp.y" +case 277: +#line 812 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; ; break;} -case 275: -#line 696 "csharp.y" +case 278: +#line 815 "csharp.y" { R(); yyval.statement = CreateStatement(STM_THROW, NULL, NULL)->setExpression(yyvsp[-1].expr); ; break;} -case 276: -#line 699 "csharp.y" +case 279: +#line 818 "csharp.y" { R(); yyval.statement = CreateStatement(STM_TRY, NULL, NULL) ->addChild(yyvsp[-1].statement)->addNext(yyvsp[0].statement); ; break;} -case 277: -#line 702 "csharp.y" +case 280: +#line 821 "csharp.y" { R(); yyval.statement = CreateStatement(STM_TRY, NULL, NULL) ->addChild(yyvsp[-1].statement)->addNext(yyvsp[0].statement); ; break;} -case 278: -#line 706 "csharp.y" +case 281: +#line 825 "csharp.y" { R(); yyval.statement = CreateStatement(STM_TRY, NULL, NULL) ->addChild(yyvsp[-2].statement)->addNext(yyvsp[-1].statement)->addNext(yyvsp[0].statement); ; break;} -case 279: -#line 711 "csharp.y" +case 282: +#line 830 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 280: -#line 712 "csharp.y" +case 283: +#line 831 "csharp.y" { R(); yyval.statement = yyvsp[-1].statement->addNext(yyvsp[0].statement); ; break;} -case 281: -#line 715 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_CATCH, NULL, NULL) - ->addChild(yyvsp[0].statement)->addLabel(yyvsp[-2].text)->addType(yyvsp[-3].type); - ; - break;} -case 282: -#line 718 "csharp.y" +case 284: +#line 834 "csharp.y" { R(); yyval.statement = CreateStatement(STM_CATCH, NULL, NULL) ->addChild(yyvsp[0].statement)->addLabel(yyvsp[-2].text)->addType(yyvsp[-3].type); ; break;} -case 283: -#line 721 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_CATCH, NULL, NULL)->addChild(yyvsp[0].statement); ; - break;} -case 284: -#line 724 "csharp.y" -{ R(); yyval.text = NULL; ; - break;} case 285: -#line 725 "csharp.y" -{ R(); yyval.text = yyvsp[0].text; ; +#line 837 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_CATCH, NULL, NULL)->addChild(yyvsp[0].statement); ; break;} case 286: -#line 728 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_FINALLY, NULL, NULL)->addChild(yyvsp[0].statement); ; +#line 840 "csharp.y" +{ R(); yyval.text = NULL; ; break;} case 287: -#line 731 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_CHECKED, NULL, NULL)->addChild(yyvsp[0].statement); ; +#line 841 "csharp.y" +{ R(); yyval.text = yyvsp[0].text; ; break;} case 288: -#line 734 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_UNCHECKED, NULL, NULL)->addChild(yyvsp[0].statement); ; +#line 844 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_FINALLY, NULL, NULL)->addChild(yyvsp[0].statement); ; break;} case 289: -#line 737 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_LOCK, NULL, NULL) - ->addChild(yyvsp[0].statement)->setExpression(yyvsp[-2].expr); - ; +#line 847 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"Unsupported 'checked' statement"); yyval.statement = CreateStatement(STM_CHECKED, NULL, NULL)->addChild(yyvsp[0].statement); ; break;} case 290: -#line 743 "csharp.y" -{ R(); yyval.statement = CreateStatement(STM_USING, NULL, NULL)->addChild(yyvsp[-2].statement)->addChild(yyvsp[0].statement); ; +#line 850 "csharp.y" +{ R(); yyval.statement = CreateStatement(STM_UNCHECKED, NULL, NULL)->addChild(yyvsp[0].statement); ; break;} case 291: -#line 746 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement ; +#line 853 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"Unsupported 'lock' statement"); yyval.statement = CreateStatement(STM_LOCK, NULL, NULL) + ->addChild(yyvsp[0].statement)->setExpression(yyvsp[-2].expr); + ; break;} case 292: -#line 747 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement ; +#line 859 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET,"Unsupported 'using' statement"); yyval.statement = CreateStatement(STM_USING, NULL, NULL)->addChild(yyvsp[-2].statement)->addChild(yyvsp[0].statement); ; break;} case 293: -#line 752 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"FIXED not supported."); ; +#line 862 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement ; break;} case 294: -#line 755 "csharp.y" -{ R(); /* When FIXED Support */ ; +#line 863 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement ; break;} case 295: -#line 756 "csharp.y" -{ R(); /* When FIXED Support */ ; +#line 868 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET,"FIXED not supported."); ; break;} case 296: -#line 759 "csharp.y" +#line 871 "csharp.y" { R(); /* When FIXED Support */ ; break;} case 297: -#line 768 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 872 "csharp.y" +{ R(); /* When FIXED Support */ ; break;} case 298: -#line 769 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 875 "csharp.y" +{ R(); /* When FIXED Support */ ; break;} case 299: -#line 772 "csharp.y" +#line 884 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 300: -#line 773 "csharp.y" +#line 885 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 301: -#line 776 "csharp.y" -{ R(); yyval.attribute = NULL; ; +#line 888 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 302: -#line 777 "csharp.y" -{ R(); yyval.attribute = yyvsp[0].attribute; ; +#line 889 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 303: -#line 780 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 892 "csharp.y" +{ R(); yyval.attribute = NULL; ; break;} case 304: -#line 781 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 893 "csharp.y" +{ R(); yyval.attribute = yyvsp[0].attribute; ; break;} case 305: -#line 784 "csharp.y" -{ R(); useOrCreateNameSpace(yyvsp[-2].attribute, yyvsp[0].text); ; +#line 896 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 306: -#line 785 "csharp.y" -{ R(); // Unstack. - unuseNameSpace(); ; +#line 897 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 307: -#line 789 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 900 "csharp.y" +{ R(); useOrCreateNameSpace(yyvsp[-2].attribute, yyvsp[0].text); ; break;} case 308: -#line 790 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 901 "csharp.y" +{ R(); // Unstack. + unuseNameSpace(); ; break;} case 309: -#line 799 "csharp.y" -{ R(); yyval.text = yyvsp[0].text; display(yyvsp[0].text); ; +#line 905 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 310: -#line 800 "csharp.y" -{ R(); yyval.text = concat(yyvsp[-1].text, yyvsp[0].text); ; +#line 906 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 311: -#line 803 "csharp.y" -{ R(); yyval.text = concat(yyvsp[-1].text, "."); ; +#line 915 "csharp.y" +{ R(); yyval.text = yyvsp[0].text; display(yyvsp[0].text); ; break;} case 312: -#line 804 "csharp.y" -{ R(); yyval.text = concat(yyvsp[-2].text, yyvsp[-1].text, "."); ; +#line 916 "csharp.y" +{ R(); yyval.text = concat2(yyvsp[-1].text, yyvsp[0].text); ; break;} case 313: -#line 808 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 919 "csharp.y" +{ R(); yyval.text = concat2(yyvsp[-1].text, "."); ; break;} case 314: -#line 811 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 920 "csharp.y" +{ R(); yyval.text = concat3(yyvsp[-2].text, yyvsp[-1].text, "."); ; break;} case 315: -#line 812 "csharp.y" +#line 924 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 316: -#line 815 "csharp.y" +#line 927 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 317: -#line 816 "csharp.y" +#line 928 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 318: -#line 819 "csharp.y" -{ R(); createAlias(yyvsp[-3].text, yyvsp[-1].text); ; +#line 931 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 319: -#line 822 "csharp.y" -{ R(); addUsingNameSpace(yyvsp[-1].text); ; +#line 932 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 320: -#line 825 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 935 "csharp.y" +{ R(); createAlias(yyvsp[-3].text, yyvsp[-1].text); ; break;} case 321: -#line 826 "csharp.y" -{ R(); /* Nothing to do here */ ; +#line 938 "csharp.y" +{ R(); addUsingNameSpace(yyvsp[-1].text); ; break;} case 322: -#line 829 "csharp.y" +#line 941 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 323: -#line 830 "csharp.y" +#line 942 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 324: -#line 833 "csharp.y" +#line 945 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 325: -#line 834 "csharp.y" +#line 946 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 326: -#line 835 "csharp.y" +#line 949 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 327: -#line 836 "csharp.y" +#line 950 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 328: -#line 837 "csharp.y" +#line 951 "csharp.y" { R(); /* Nothing to do here */ ; break;} case 329: -#line 848 "csharp.y" -{ R(); yyval.tmpValue = 0; ; +#line 952 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 330: -#line 849 "csharp.y" -{ R(); yyval.tmpValue = yyvsp[0].tmpValue; ; +#line 953 "csharp.y" +{ R(); /* Nothing to do here */ ; break;} case 331: -#line 852 "csharp.y" -{ R(); yyval.tmpValue = yyvsp[0].tmpValue; ; +#line 964 "csharp.y" +{ R(); yyval.tmpValue = 0; ; break;} case 332: -#line 853 "csharp.y" -{ R(); yyval.tmpValue = yyvsp[0].tmpValue | yyvsp[-1].tmpValue; ; +#line 965 "csharp.y" +{ R(); yyval.tmpValue = yyvsp[0].tmpValue; ; break;} case 333: -#line 856 "csharp.y" -{ R(); yyval.tmpValue = ATT_ABSTRACT; ; +#line 968 "csharp.y" +{ R(); yyval.tmpValue = yyvsp[0].tmpValue; ; break;} case 334: -#line 857 "csharp.y" -{ R(); yyval.tmpValue = ATT_EXTERN; ; +#line 969 "csharp.y" +{ R(); yyval.tmpValue = yyvsp[0].tmpValue | yyvsp[-1].tmpValue; ; break;} case 335: -#line 858 "csharp.y" -{ R(); yyval.tmpValue = ATT_INTERNAL; ; +#line 972 "csharp.y" +{ R(); yyval.tmpValue = ATT_ABSTRACT; ; break;} case 336: -#line 859 "csharp.y" -{ R(); yyval.tmpValue = ATT_NEW; ; +#line 973 "csharp.y" +{ R(); yyval.tmpValue = ATT_EXTERN; ; break;} case 337: -#line 860 "csharp.y" -{ R(); yyval.tmpValue = ATT_VIRTUAL; ; +#line 974 "csharp.y" +{ R(); yyval.tmpValue = ATT_INTERNAL; ; break;} case 338: -#line 861 "csharp.y" -{ R(); yyval.tmpValue = ATT_PRIVATE; ; +#line 975 "csharp.y" +{ R(); yyval.tmpValue = ATT_NEW; ; break;} case 339: -#line 862 "csharp.y" -{ R(); yyval.tmpValue = ATT_PROTECTED; ; +#line 976 "csharp.y" +{ R(); yyval.tmpValue = ATT_VIRTUAL; ; break;} case 340: -#line 863 "csharp.y" -{ R(); yyval.tmpValue = ATT_PUBLIC; ; +#line 977 "csharp.y" +{ R(); yyval.tmpValue = ATT_PRIVATE; ; break;} case 341: -#line 864 "csharp.y" -{ R(); yyval.tmpValue = ATT_READONLY; ; +#line 978 "csharp.y" +{ R(); yyval.tmpValue = ATT_PROTECTED; ; break;} case 342: -#line 865 "csharp.y" -{ R(); yyval.tmpValue = ATT_SEALED; ; +#line 979 "csharp.y" +{ R(); yyval.tmpValue = ATT_PUBLIC; ; break;} case 343: -#line 866 "csharp.y" -{ R(); yyval.tmpValue = ATT_STATIC; ; +#line 980 "csharp.y" +{ R(); yyval.tmpValue = ATT_READONLY; ; break;} case 344: -#line 867 "csharp.y" -{ R(); yyval.tmpValue = ATT_UNSAFE; ; +#line 981 "csharp.y" +{ R(); yyval.tmpValue = ATT_SEALED; ; break;} case 345: -#line 868 "csharp.y" -{ R(); yyval.tmpValue = ATT_VIRTUAL; ; +#line 982 "csharp.y" +{ R(); yyval.tmpValue = ATT_STATIC; ; break;} case 346: -#line 869 "csharp.y" -{ R(); yyval.tmpValue = ATT_VOLATILE; ; +#line 983 "csharp.y" +{ R(); yyval.tmpValue = ATT_UNSAFE; ; break;} case 347: -#line 874 "csharp.y" -{ R(); - // modify gCurrentNameSpace - useOrCreateNameSpace(yyvsp[-3].attribute,yyvsp[0].text); - gCurrentAC = CreateClass( yyvsp[-3].attribute, - yyvsp[-2].tmpValue, - yyvsp[0].text); - - ; +#line 984 "csharp.y" +{ R(); yyval.tmpValue = ATT_VIRTUAL; ; break;} case 348: -#line 881 "csharp.y" -{ R(); unuseNameSpace(); ; +#line 985 "csharp.y" +{ R(); yyval.tmpValue = ATT_VOLATILE; ; break;} case 349: -#line 884 "csharp.y" -{ R(); /* Do nothing */ ; +#line 986 "csharp.y" +{ R(); yyval.tmpValue = ATT_PARTIAL; ; break;} case 350: -#line 885 "csharp.y" -{ R(); /* Do nothing */ ; +#line 991 "csharp.y" +{ R(); + gCurrentAC = CreateClass( yyvsp[-4].attribute, + yyvsp[-3].tmpValue, + yyvsp[-1].text); + + gCurrentAC->setGenericParam(); + ; break;} case 351: -#line 888 "csharp.y" -{ R(); gCurrentAC->setAncestor(yyvsp[0].type); ; +#line 997 "csharp.y" +{ R(); unuseNameSpace(); ; break;} case 352: -#line 889 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1001 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 353: -#line 890 "csharp.y" -{ R(); gCurrentAC->setAncestor(yyvsp[-2].type); ; +#line 1002 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 354: -#line 893 "csharp.y" -{ R(); gCurrentAC->addInterface(yyvsp[0].type); ; +#line 1005 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 355: -#line 894 "csharp.y" -{ R(); gCurrentAC->addInterface(yyvsp[0].type); ; +#line 1008 "csharp.y" +{ R(); gCurrentAC->addInheritance(yyvsp[0].type); ; break;} case 356: -#line 897 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1009 "csharp.y" +{ R(); gCurrentAC->addInheritance(yyvsp[0].type); ; break;} case 357: -#line 900 "csharp.y" +#line 1012 "csharp.y" { R(); /* Do nothing */ ; break;} case 358: -#line 901 "csharp.y" +#line 1015 "csharp.y" { R(); /* Do nothing */ ; break;} case 359: -#line 904 "csharp.y" +#line 1016 "csharp.y" { R(); /* Do nothing */ ; break;} case 360: -#line 905 "csharp.y" +#line 1019 "csharp.y" { R(); /* Do nothing */ ; break;} case 361: -#line 908 "csharp.y" +#line 1020 "csharp.y" { R(); /* Do nothing */ ; break;} case 362: -#line 909 "csharp.y" +#line 1023 "csharp.y" { R(); /* Do nothing */ ; break;} case 363: -#line 910 "csharp.y" +#line 1024 "csharp.y" { R(); /* Do nothing */ ; break;} case 364: -#line 911 "csharp.y" +#line 1025 "csharp.y" { R(); /* Do nothing */ ; break;} case 365: -#line 912 "csharp.y" +#line 1026 "csharp.y" { R(); /* Do nothing */ ; break;} case 366: -#line 913 "csharp.y" +#line 1027 "csharp.y" { R(); /* Do nothing */ ; break;} case 367: -#line 914 "csharp.y" +#line 1028 "csharp.y" { R(); /* Do nothing */ ; break;} case 368: -#line 915 "csharp.y" +#line 1029 "csharp.y" { R(); /* Do nothing */ ; break;} case 369: -#line 916 "csharp.y" +#line 1030 "csharp.y" { R(); /* Do nothing */ ; break;} case 370: -#line 918 "csharp.y" +#line 1031 "csharp.y" { R(); /* Do nothing */ ; break;} case 371: -#line 921 "csharp.y" -{ R(); gCurrentAC->addVariable(yyvsp[-5].attribute, yyvsp[-4].tmpValue, yyvsp[-2].type, yyvsp[-1].variable )->setConst(); ; +#line 1033 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 372: -#line 924 "csharp.y" -{ R(); gCurrentAC->addVariable(yyvsp[-4].attribute, yyvsp[-3].tmpValue, yyvsp[-2].type, yyvsp[-1].variable ); ; +#line 1036 "csharp.y" +{ R(); + // Trick : CONST C# is STATIC member in C++ to match C# behavior. + gCurrentAC->addVariable(yyvsp[-5].attribute, (yyvsp[-4].tmpValue & ~ATT_CONST) | ATT_STATIC, yyvsp[-2].type, yyvsp[-1].variable ); ; break;} case 373: -#line 927 "csharp.y" +#line 1041 "csharp.y" +{ R(); gCurrentAC->addVariable(yyvsp[-4].attribute, yyvsp[-3].tmpValue, yyvsp[-2].type, yyvsp[-1].variable ); ; + break;} +case 374: +#line 1044 "csharp.y" { R(); gCurrentMethod = gCurrentAC->addMethod( yyvsp[-1].attribute, // Attributes yyvsp[-1].tmpValue, // Modified REF/OUT @@ -3557,538 +3646,555 @@ case 373: yyvsp[0].statement, // Code yyvsp[-1].type // Return value. ); + gCurrentMethod->setGenericParam(); ; break;} -case 374: -#line 940 "csharp.y" -{ R(); yyval.attribute = yyvsp[-6].attribute; - yyval.tmpValue = yyvsp[-5].tmpValue; - yyval.text = yyvsp[-3].text; - yyval.variable = yyvsp[-1].variable; - yyval.type = yyvsp[-4].type; ; - break;} case 375: -#line 946 "csharp.y" -{ R(); yyval.attribute = yyvsp[-6].attribute; - yyval.tmpValue = yyvsp[-5].tmpValue; - yyval.text = yyvsp[-3].text; +#line 1058 "csharp.y" +{ R(); yyval.attribute = yyvsp[-7].attribute; + yyval.tmpValue = yyvsp[-6].tmpValue; + yyval.text = yyvsp[-4].text; yyval.variable = yyvsp[-1].variable; - yyval.type = TypeObject::getTypeObject(TYPE_VOID); ; + yyval.type = yyvsp[-5].type; ; break;} case 376: -#line 953 "csharp.y" -{ R(); yyval.variable = NULL; ; +#line 1064 "csharp.y" +{ R(); yyval.attribute = yyvsp[-7].attribute; + yyval.tmpValue = yyvsp[-6].tmpValue; + yyval.text = yyvsp[-4].text; + yyval.variable = yyvsp[-1].variable; + yyval.type = TypeObject::getTypeObject(TYPE_VOID); ; break;} case 377: -#line 954 "csharp.y" -{ R(); yyval.variable = yyvsp[0].variable; ; +#line 1072 "csharp.y" +{ R(); addGenericName(yyvsp[0].text); ; break;} case 378: -#line 957 "csharp.y" -{ R(); yyval.type = yyvsp[0].type; ; +#line 1073 "csharp.y" +{ R(); addGenericName(yyvsp[0].text); ; break;} case 379: -#line 958 "csharp.y" -{ R(); yyval.type = TypeObject::getTypeObject(TYPE_VOID); ; +#line 1076 "csharp.y" +{ R(); ; break;} case 380: -#line 961 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 1077 "csharp.y" +{ R(); ; break;} case 381: -#line 962 "csharp.y" -{ R(); yyval.statement = NULL; ; +#line 1081 "csharp.y" +{ R(); yyval.variable = NULL; ; break;} case 382: -#line 965 "csharp.y" -{ R(); yyval.variable = yyvsp[0].variable; ; +#line 1082 "csharp.y" +{ R(); yyval.variable = yyvsp[0].variable; ; break;} case 383: -#line 966 "csharp.y" -{ R(); yyval.variable = yyvsp[-2].variable->addVariable(yyvsp[-1].variable); ; +#line 1085 "csharp.y" +{ R(); yyval.type = yyvsp[0].type; ; break;} case 384: -#line 969 "csharp.y" -{ R(); yyval.variable = yyvsp[0].variable ; ; +#line 1086 "csharp.y" +{ R(); yyval.type = TypeObject::getTypeObject(TYPE_VOID); ; break;} case 385: -#line 970 "csharp.y" -{ R(); yyval.variable = yyvsp[0].variable ; ; +#line 1089 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 386: -#line 974 "csharp.y" -{ R(); yyval.variable = CreateVarInstance(yyvsp[-1].text) - ->setAttribute(yyvsp[-4].attribute) - ->setModifier(yyvsp[-3].tmpValue) - ->setType(yyvsp[-2].type) - ->setValue(yyvsp[0].value); ; +#line 1090 "csharp.y" +{ R(); yyval.statement = NULL; ; break;} case 387: -#line 981 "csharp.y" -{ R(); yyval.value.type = TYPE_UNRESOLVED; ; +#line 1093 "csharp.y" +{ R(); yyval.variable = yyvsp[0].variable; ; break;} case 388: -#line 982 "csharp.y" -{ R(); yyval.value = yyvsp[0].value; ; +#line 1094 "csharp.y" +{ R(); yyval.variable = yyvsp[-2].variable->addVariable(yyvsp[0].variable); ; break;} case 389: -#line 985 "csharp.y" -{ R(); yyval.tmpValue = 0; ; +#line 1097 "csharp.y" +{ R(); yyval.variable = yyvsp[0].variable ; ; break;} case 390: -#line 986 "csharp.y" -{ R(); yyval.tmpValue = ATT_REF; ; +#line 1098 "csharp.y" +{ R(); yyval.variable = yyvsp[0].variable ; ; break;} case 391: -#line 987 "csharp.y" -{ R(); yyval.tmpValue = ATT_OUT; ; +#line 1102 "csharp.y" +{ R(); yyval.variable = CreateVarInstance(yyvsp[-1].text) + ->setAttribute(yyvsp[-4].attribute) + ->setModifier(yyvsp[-3].tmpValue) + ->setType(yyvsp[-2].type) + ->setInitializer(yyvsp[0].expr); ; break;} case 392: -#line 991 "csharp.y" -{ R(); yyval.variable = CreateVarInstance(yyvsp[0].text) - ->setType(yyvsp[-1].type) - ->setAttribute(yyvsp[-3].attribute) - ->setIsEndLessParam(); - ; +#line 1109 "csharp.y" +{ R(); yyval.expr = NULL; ; break;} case 393: -#line 1001 "csharp.y" -{ R(); gCurrentAC->addProperty(yyvsp[-8].attribute, yyvsp[-7].tmpValue, yyvsp[-6].type, yyvsp[-5].text, yyvsp[-2].accessor); ; +#line 1110 "csharp.y" +{ R(); yyval.expr = yyvsp[0].expr; ; break;} case 394: -#line 1004 "csharp.y" -{ R(); yyval.accessor = CreateAccessor(yyvsp[-1].accessor, yyvsp[0].accessor); ; +#line 1113 "csharp.y" +{ R(); yyval.tmpValue = 0; ; break;} case 395: -#line 1005 "csharp.y" -{ R(); yyval.accessor = CreateAccessor(yyvsp[0].accessor, yyvsp[-1].accessor); ; +#line 1114 "csharp.y" +{ R(); yyval.tmpValue = ATT_REF; ; break;} case 396: -#line 1006 "csharp.y" -{ R(); yyval.accessor = CreateAccessor((Accessor*)NULL,(Accessor*)NULL); ; +#line 1115 "csharp.y" +{ R(); yyval.tmpValue = ATT_REF; ; break;} case 397: -#line 1009 "csharp.y" -{ R(); yyval.accessor = NULL; ; +#line 1119 "csharp.y" +{ R(); yyval.variable = CreateVarInstance(yyvsp[0].text) + ->setType(yyvsp[-1].type) + ->setAttribute(yyvsp[-3].attribute) + ->setIsEndLessParam(); + compilerError(ERR_NOT_SUPPORTED_YET, "params keyword is not supported"); + ; break;} case 398: -#line 1010 "csharp.y" -{ R(); yyval.accessor = yyvsp[0].accessor; ; +#line 1130 "csharp.y" +{ R(); gCurrentAC->addProperty(yyvsp[-8].attribute, yyvsp[-7].tmpValue, yyvsp[-6].type, yyvsp[-5].text, yyvsp[-2].accessor); ; break;} case 399: -#line 1013 "csharp.y" -{ R(); yyval.accessor = NULL; ; +#line 1133 "csharp.y" +{ R(); yyval.accessor = CreateAccessor(yyvsp[-1].accessor, yyvsp[0].accessor); ; break;} case 400: -#line 1014 "csharp.y" -{ R(); yyval.accessor = yyvsp[0].accessor; ; +#line 1134 "csharp.y" +{ R(); yyval.accessor = CreateAccessor(yyvsp[0].accessor, yyvsp[-1].accessor); ; break;} case 401: -#line 1020 "csharp.y" -{ R(); yyval.accessor = CreateAccessor(yyvsp[-4].attribute, yyvsp[-1].statement); ; +#line 1135 "csharp.y" +{ R(); yyval.accessor = CreateAccessor((Accessor*)NULL,(Accessor*)NULL); ; break;} case 402: -#line 1026 "csharp.y" -{ R(); yyval.accessor = CreateAccessor(yyvsp[-4].attribute, yyvsp[-1].statement); ; +#line 1138 "csharp.y" +{ R(); yyval.accessor = NULL; ; break;} case 403: -#line 1029 "csharp.y" -{ R(); yyval.statement = yyvsp[0].statement; ; +#line 1139 "csharp.y" +{ R(); yyval.accessor = yyvsp[0].accessor; ; break;} case 404: -#line 1030 "csharp.y" -{ R(); yyval.statement = NULL; ; +#line 1142 "csharp.y" +{ R(); yyval.accessor = NULL; ; break;} case 405: -#line 1033 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"event not supported"); ; +#line 1143 "csharp.y" +{ R(); yyval.accessor = yyvsp[0].accessor; ; break;} case 406: -#line 1037 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"event not supported"); ; +#line 1149 "csharp.y" +{ R(); yyval.accessor = CreateAccessor(yyvsp[-4].attribute, yyvsp[-1].statement); ; break;} case 407: -#line 1040 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"event not supported"); ; +#line 1155 "csharp.y" +{ R(); yyval.accessor = CreateAccessor(yyvsp[-4].attribute, yyvsp[-1].statement); ; break;} case 408: -#line 1041 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"event not supported"); ; +#line 1158 "csharp.y" +{ R(); yyval.statement = yyvsp[0].statement; ; break;} case 409: -#line 1047 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"event not supported"); ; +#line 1159 "csharp.y" +{ R(); yyval.statement = NULL; ; break;} case 410: -#line 1053 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"event not supported"); ; +#line 1162 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"event not supported"); ; break;} case 411: -#line 1056 "csharp.y" -{ R(); - gCurrentAC->addProperty(yyvsp[-2].attribute, yyvsp[-1].tmpValue, yyvsp[0].indexer); - ; +#line 1166 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"event not supported"); ; + break;} +case 412: +#line 1169 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"event not supported"); ; break;} case 413: -#line 1064 "csharp.y" -{ R(); yyval.indexer = CreateIndexer(yyvsp[-4].type, yyvsp[-1].variable); ; +#line 1170 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"event not supported"); ; break;} case 414: -#line 1066 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"qualified this[] accessor property not supported."); ; +#line 1176 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"event not supported"); ; break;} case 415: -#line 1069 "csharp.y" -{ R(); yyval.text = concat(yyvsp[-1].text, "this"); ; +#line 1182 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"event not supported"); ; break;} case 416: -#line 1073 "csharp.y" -{ R(); /* TODO When support operator */ ; +#line 1189 "csharp.y" +{ R(); + yyvsp[-2].accessor->setAsIndexer(yyvsp[-5].type, yyvsp[-5].variable); + gCurrentAC->addProperty(yyvsp[-7].attribute, yyvsp[-6].tmpValue, yyvsp[-2].accessor); + ; break;} case 417: -#line 1076 "csharp.y" -{ R(); /* TODO When support operator */ ; +#line 1195 "csharp.y" +{ R(); yyval.variable = yyvsp[-1].variable; yyval.type = yyvsp[-4].type; ; break;} case 418: -#line 1077 "csharp.y" -{ R(); /* TODO When support operator */ ; +#line 1197 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET,"Explicit implementation of an interface indexer is not supported yet"); ; break;} case 419: -#line 1080 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"Overloading operator not supported."); ; +#line 1200 "csharp.y" +{ R(); yyval.text = concat2(yyvsp[-1].text, "this"); ; break;} case 420: -#line 1081 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"Overloading operator not supported."); ; +#line 1204 "csharp.y" +{ R(); /* TODO When support operator */ ; break;} case 421: -#line 1084 "csharp.y" -{ R(); yyval.tmpValue = OP_PLUS; ; +#line 1207 "csharp.y" +{ R(); /* TODO When support operator */ ; break;} case 422: -#line 1085 "csharp.y" -{ R(); yyval.tmpValue = OP_MINUS; ; +#line 1208 "csharp.y" +{ R(); /* TODO When support operator */ ; break;} case 423: -#line 1086 "csharp.y" -{ R(); yyval.tmpValue = OP_LNOT; ; +#line 1211 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET,"Overloading operator not supported."); ; break;} case 424: -#line 1087 "csharp.y" -{ R(); yyval.tmpValue = OP_NOT; ; +#line 1212 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED_YET,"Overloading operator not supported."); ; break;} case 425: -#line 1088 "csharp.y" -{ R(); yyval.tmpValue = OP_PLUSPLUS; ; +#line 1215 "csharp.y" +{ R(); yyval.tmpValue = OP_PLUS; ; break;} case 426: -#line 1089 "csharp.y" -{ R(); yyval.tmpValue = OP_MINUSMINUS; ; +#line 1216 "csharp.y" +{ R(); yyval.tmpValue = OP_MINUS; ; break;} case 427: -#line 1090 "csharp.y" -{ R(); yyval.tmpValue = OP_TRUE; ; +#line 1217 "csharp.y" +{ R(); yyval.tmpValue = OP_LNOT; ; break;} case 428: -#line 1091 "csharp.y" -{ R(); yyval.tmpValue = OP_FALSE; ; +#line 1218 "csharp.y" +{ R(); yyval.tmpValue = OP_NOT; ; break;} case 429: -#line 1092 "csharp.y" -{ R(); yyval.tmpValue = OP_MULT; ; +#line 1219 "csharp.y" +{ R(); yyval.tmpValue = OP_PLUSPLUS; ; break;} case 430: -#line 1093 "csharp.y" -{ R(); yyval.tmpValue = OP_DIV; ; +#line 1220 "csharp.y" +{ R(); yyval.tmpValue = OP_MINUSMINUS; ; break;} case 431: -#line 1094 "csharp.y" -{ R(); yyval.tmpValue = OP_MOD; ; +#line 1221 "csharp.y" +{ R(); yyval.tmpValue = OP_TRUE; ; break;} case 432: -#line 1095 "csharp.y" -{ R(); yyval.tmpValue = OP_AND; ; +#line 1222 "csharp.y" +{ R(); yyval.tmpValue = OP_FALSE; ; break;} case 433: -#line 1096 "csharp.y" -{ R(); yyval.tmpValue = OP_OR; ; +#line 1223 "csharp.y" +{ R(); yyval.tmpValue = OP_MULT; ; break;} case 434: -#line 1097 "csharp.y" -{ R(); yyval.tmpValue = OP_XOR; ; +#line 1224 "csharp.y" +{ R(); yyval.tmpValue = OP_DIV; ; break;} case 435: -#line 1098 "csharp.y" -{ R(); yyval.tmpValue = OP_LSHFT; ; +#line 1225 "csharp.y" +{ R(); yyval.tmpValue = OP_MOD; ; break;} case 436: -#line 1099 "csharp.y" -{ R(); yyval.tmpValue = OP_EQUAL; ; +#line 1226 "csharp.y" +{ R(); yyval.tmpValue = OP_AND; ; break;} case 437: -#line 1100 "csharp.y" -{ R(); yyval.tmpValue = OP_DIFF; ; +#line 1227 "csharp.y" +{ R(); yyval.tmpValue = OP_OR; ; break;} case 438: -#line 1101 "csharp.y" -{ R(); yyval.tmpValue = yyvsp[0].tmpValue; ; +#line 1228 "csharp.y" +{ R(); yyval.tmpValue = OP_XOR; ; break;} case 439: -#line 1102 "csharp.y" -{ R(); yyval.tmpValue = OP_LESS; ; +#line 1229 "csharp.y" +{ R(); yyval.tmpValue = OP_LSHFT; ; break;} case 440: -#line 1103 "csharp.y" -{ R(); yyval.tmpValue = OP_MOREEQ;; +#line 1230 "csharp.y" +{ R(); yyval.tmpValue = OP_RSHFT; ; break;} case 441: -#line 1104 "csharp.y" -{ R(); yyval.tmpValue = OP_LESSEQ;; +#line 1231 "csharp.y" +{ R(); yyval.tmpValue = OP_EQUAL; ; break;} case 442: -#line 1106 "csharp.y" -{ yyval.tmpValue = OP_RSHFT; ; +#line 1232 "csharp.y" +{ R(); yyval.tmpValue = OP_DIFF; ; break;} case 443: -#line 1107 "csharp.y" -{ yyval.tmpValue = OP_MORE; ; +#line 1233 "csharp.y" +{ R(); yyval.tmpValue = OP_MORE; ; break;} case 444: -#line 1111 "csharp.y" -{ R(); /* TODO When support operator */ ; +#line 1234 "csharp.y" +{ R(); yyval.tmpValue = OP_LESS; ; break;} case 445: -#line 1112 "csharp.y" -{ R(); /* TODO When support operator */ ; +#line 1235 "csharp.y" +{ R(); yyval.tmpValue = OP_MOREEQ;; break;} case 446: -#line 1115 "csharp.y" +#line 1236 "csharp.y" +{ R(); yyval.tmpValue = OP_LESSEQ;; + break;} +case 447: +#line 1240 "csharp.y" +{ R(); /* TODO When support operator */ ; + break;} +case 448: +#line 1241 "csharp.y" +{ R(); /* TODO When support operator */ ; + break;} +case 449: +#line 1244 "csharp.y" { R(); gCurrentMethod = gCurrentAC->addConstructor( yyvsp[-3].attribute, // Attributes yyvsp[-2].tmpValue, // Modifier yyvsp[-1].text, // Func Name yyvsp[-1].variable, // Link list of variable - yyvsp[0].statement // Code + yyvsp[0].statement, // Code + yyvsp[-1].expr, // Call to Base or this with arguments. + yyvsp[-1].tmpValue // -1 : Nothing, 0 : Base Call, 1 : This Call. ); ; break;} -case 447: -#line 1126 "csharp.y" +case 450: +#line 1257 "csharp.y" { R(); yyval.text = yyvsp[-4].text; yyval.variable = yyvsp[-2].variable; yyval.expr = yyvsp[0].expr; yyval.tmpValue = yyvsp[0].tmpValue; ; break;} -case 448: -#line 1133 "csharp.y" +case 451: +#line 1264 "csharp.y" { R(); yyval.expr = NULL; yyval.tmpValue = -1; ; break;} -case 449: -#line 1134 "csharp.y" +case 452: +#line 1265 "csharp.y" { R(); yyval.expr = yyvsp[0].expr; yyval.tmpValue = yyvsp[0].tmpValue; ; break;} -case 450: -#line 1137 "csharp.y" +case 453: +#line 1268 "csharp.y" { R(); yyval.expr = yyvsp[-1].expr; yyval.tmpValue = 0; ; break;} -case 451: -#line 1138 "csharp.y" -{ R(); yyval.expr = yyvsp[-1].expr; yyval.tmpValue = 1; ; +case 454: +#line 1269 "csharp.y" +{ R(); yyval.expr = yyvsp[-1].expr; yyval.tmpValue = 1; compilerError(ERR_NOT_SUPPORTED_YET,"'this' access in constructor initialization is not supported yet."); ; break;} -case 452: -#line 1154 "csharp.y" +case 455: +#line 1285 "csharp.y" { R(); gCurrentMethod = gCurrentAC->addDestructor( yyvsp[-6].attribute, // Attributes - yyvsp[-6].tmpValue, // Modifier - yyvsp[-4].text, // Func Name + yyvsp[-5].tmpValue, // Modifier + yyvsp[-3].text, // Func Name yyvsp[0].statement ); ; break;} -case 453: -#line 1164 "csharp.y" +case 456: +#line 1295 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 454: -#line 1165 "csharp.y" +case 457: +#line 1296 "csharp.y" { R(); yyval.statement = NULL; ; break;} -case 455: -#line 1168 "csharp.y" +case 458: +#line 1299 "csharp.y" { R(); yyval.statement = yyvsp[0].statement; ; break;} -case 456: -#line 1169 "csharp.y" +case 459: +#line 1300 "csharp.y" { R(); yyval.statement = NULL; ; break;} -case 457: -#line 1174 "csharp.y" +case 460: +#line 1305 "csharp.y" { R(); gCurrentAC = CreateStruct( yyvsp[-3].attribute, yyvsp[-2].tmpValue, yyvsp[0].text ); ; break;} -case 458: -#line 1179 "csharp.y" -{ R(); unuseNameSpace(); ; - break;} -case 459: -#line 1182 "csharp.y" -{ R(); /* Do nothing */ ; - break;} -case 460: -#line 1183 "csharp.y" -{ R(); /* Do nothing */ ; - break;} case 461: -#line 1186 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1310 "csharp.y" +{ R(); unuseNameSpace(); ; break;} case 462: -#line 1189 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1313 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 463: -#line 1192 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1314 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 464: -#line 1193 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1317 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 465: -#line 1196 "csharp.y" +#line 1320 "csharp.y" { R(); /* Do nothing */ ; break;} case 466: -#line 1197 "csharp.y" +#line 1323 "csharp.y" { R(); /* Do nothing */ ; break;} case 467: -#line 1200 "csharp.y" +#line 1324 "csharp.y" { R(); /* Do nothing */ ; break;} case 468: -#line 1201 "csharp.y" +#line 1327 "csharp.y" { R(); /* Do nothing */ ; break;} case 469: -#line 1202 "csharp.y" +#line 1328 "csharp.y" { R(); /* Do nothing */ ; break;} case 470: -#line 1203 "csharp.y" +#line 1331 "csharp.y" { R(); /* Do nothing */ ; break;} case 471: -#line 1204 "csharp.y" +#line 1332 "csharp.y" { R(); /* Do nothing */ ; break;} case 472: -#line 1205 "csharp.y" +#line 1333 "csharp.y" { R(); /* Do nothing */ ; break;} case 473: -#line 1206 "csharp.y" +#line 1334 "csharp.y" { R(); /* Do nothing */ ; break;} case 474: -#line 1207 "csharp.y" +#line 1335 "csharp.y" { R(); /* Do nothing */ ; break;} case 475: -#line 1209 "csharp.y" +#line 1336 "csharp.y" { R(); /* Do nothing */ ; break;} case 476: -#line 1214 "csharp.y" -{ R(); yyval.expr = yyvsp[-1].expr; ; +#line 1337 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 477: -#line 1215 "csharp.y" -{ R(); yyval.expr = yyvsp[-2].expr; ; +#line 1338 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 478: -#line 1218 "csharp.y" -{ R(); yyval.expr = NULL; ; +#line 1340 "csharp.y" +{ R(); /* Do nothing */ ; break;} case 479: -#line 1219 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 1345 "csharp.y" +{ GenerateInitList(); ; break;} case 480: -#line 1222 "csharp.y" -{ R(); yyval.expr = yyvsp[0].expr; ; +#line 1345 "csharp.y" +{ R(); PopInitList(); yyval.expr = yyvsp[-1].expr; ; break;} case 481: -#line 1223 "csharp.y" -{ R(); yyval.expr = yyvsp[-2].expr->addExpression(yyvsp[-1].expr); ; +#line 1348 "csharp.y" +{ R(); yyval.expr = NULL; ; break;} case 482: -#line 1228 "csharp.y" -{ R(); gCurrentAC = CreateInterface( yyvsp[-3].attribute, - yyvsp[-2].tmpValue, - yyvsp[0].text); - ; - break;} -case 483: -#line 1233 "csharp.y" -{ R(); unuseNameSpace(); ; - break;} -case 484: -#line 1236 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1349 "csharp.y" +{ R(); yyval.expr = yyvsp[-1].expr; ; break;} case 485: -#line 1237 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1357 "csharp.y" +{ R(); yyval.expr = getInitList()->addExpression(yyvsp[0].expr); ; break;} case 486: -#line 1240 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1358 "csharp.y" +{ R(); yyval.expr = yyvsp[-2].expr->addExpression(yyvsp[0].expr); ; break;} case 487: -#line 1243 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1363 "csharp.y" +{ R(); gCurrentAC = CreateInterface( yyvsp[-3].attribute, + yyvsp[-2].tmpValue, + yyvsp[0].text); + ; break;} case 488: -#line 1246 "csharp.y" -{ R(); /* Do nothing */ ; +#line 1368 "csharp.y" +{ R(); unuseNameSpace(); ; break;} case 489: -#line 1247 "csharp.y" +#line 1371 "csharp.y" { R(); /* Do nothing */ ; break;} case 490: -#line 1250 "csharp.y" +#line 1372 "csharp.y" { R(); /* Do nothing */ ; break;} case 491: -#line 1251 "csharp.y" +#line 1375 "csharp.y" { R(); /* Do nothing */ ; break;} case 492: -#line 1254 "csharp.y" +#line 1378 "csharp.y" { R(); /* Do nothing */ ; break;} case 493: -#line 1255 "csharp.y" +#line 1381 "csharp.y" { R(); /* Do nothing */ ; break;} case 494: -#line 1256 "csharp.y" +#line 1382 "csharp.y" { R(); /* Do nothing */ ; break;} case 495: -#line 1257 "csharp.y" +#line 1385 "csharp.y" { R(); /* Do nothing */ ; break;} case 496: -#line 1261 "csharp.y" +#line 1386 "csharp.y" +{ R(); /* Do nothing */ ; + break;} +case 497: +#line 1389 "csharp.y" +{ R(); /* Do nothing */ ; + break;} +case 498: +#line 1390 "csharp.y" +{ R(); /* Do nothing */ ; + break;} +case 499: +#line 1391 "csharp.y" +{ R(); /* Do nothing */ ; + break;} +case 500: +#line 1392 "csharp.y" +{ R(); /* Do nothing */ ; + break;} +case 501: +#line 1396 "csharp.y" { R(); gCurrentMethod = gCurrentAC->addMethod( yyvsp[-7].attribute, // Attributes @@ -4100,8 +4206,8 @@ case 496: ); ; break;} -case 497: -#line 1271 "csharp.y" +case 502: +#line 1406 "csharp.y" { R(); gCurrentMethod = gCurrentAC->addMethod( yyvsp[-7].attribute, // Attributes @@ -4113,224 +4219,224 @@ case 497: ); ; break;} -case 498: -#line 1283 "csharp.y" +case 503: +#line 1418 "csharp.y" { R(); yyval.tmpValue = 0; ; break;} -case 499: -#line 1284 "csharp.y" +case 504: +#line 1419 "csharp.y" { R(); yyval.tmpValue = ATTR_NEW; ; break;} -case 500: -#line 1290 "csharp.y" +case 505: +#line 1425 "csharp.y" { R(); gCurrentAC->addProperty(yyvsp[-8].attribute, yyvsp[-7].tmpValue, yyvsp[-6].type, yyvsp[-5].text, yyvsp[-2].accessor); ; break;} -case 501: -#line 1297 "csharp.y" -{ R(); gCurrentAC->addProperty(yyvsp[-11].attribute, yyvsp[-10].tmpValue, yyvsp[-9].type, yyvsp[-8].text, yyvsp[-5].accessor); ; +case 506: +#line 1432 "csharp.y" +{ R(); yyvsp[-2].accessor->setAsIndexer(yyvsp[-9].type, yyvsp[-6].variable); gCurrentAC->addProperty(yyvsp[-11].attribute, yyvsp[-10].tmpValue, yyvsp[-2].accessor); ; break;} -case 502: -#line 1301 "csharp.y" +case 507: +#line 1436 "csharp.y" { R(); yyval.accessor = CreateAccessor(CreateAccessor(yyvsp[-2].attribute,NULL), NULL); ; break;} -case 503: -#line 1302 "csharp.y" +case 508: +#line 1437 "csharp.y" { R(); yyval.accessor = CreateAccessor(NULL, CreateAccessor(yyvsp[-2].attribute,NULL)); ; break;} -case 504: -#line 1303 "csharp.y" +case 509: +#line 1438 "csharp.y" { R(); yyval.accessor = CreateAccessor(CreateAccessor(yyvsp[-5].attribute,NULL), CreateAccessor(yyvsp[-2].attribute,NULL)); ; break;} -case 505: -#line 1304 "csharp.y" +case 510: +#line 1439 "csharp.y" { R(); yyval.accessor = CreateAccessor(CreateAccessor(yyvsp[-2].attribute,NULL), CreateAccessor(yyvsp[-5].attribute,NULL)); ; break;} -case 506: -#line 1307 "csharp.y" -{ R(); compilerError(UNSUPPORTED,"event not supported"); ; +case 511: +#line 1442 "csharp.y" +{ R(); compilerError(ERR_NOT_SUPPORTED,"event not supported"); ; break;} -case 507: -#line 1312 "csharp.y" +case 512: +#line 1447 "csharp.y" { R(); yyval.statement = NULL; ; break;} -case 508: -#line 1313 "csharp.y" +case 513: +#line 1448 "csharp.y" { R(); yyval.statement = NULL; ; break;} -case 509: -#line 1318 "csharp.y" +case 514: +#line 1453 "csharp.y" { R(); gCurrEnum = CreateEnum(yyvsp[-4].attribute, yyvsp[-3].tmpValue, yyvsp[-1].text, yyvsp[0].type); ; break;} -case 510: -#line 1320 "csharp.y" +case 515: +#line 1455 "csharp.y" { R(); // Do nothing. ; break;} -case 511: -#line 1325 "csharp.y" +case 516: +#line 1460 "csharp.y" { R(); yyval.type = NULL; ; break;} -case 512: -#line 1326 "csharp.y" +case 517: +#line 1461 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} -case 513: -#line 1329 "csharp.y" -{ R(); yyval.type = yyvsp[-1].type; ; +case 518: +#line 1464 "csharp.y" +{ R(); yyval.type = yyvsp[0].type; ; break;} -case 514: -#line 1332 "csharp.y" +case 519: +#line 1467 "csharp.y" { R(); /* Do nothing */ ; break;} -case 515: -#line 1333 "csharp.y" +case 520: +#line 1468 "csharp.y" { R(); /* Do nothing */ ; break;} -case 517: -#line 1337 "csharp.y" +case 522: +#line 1472 "csharp.y" { R(); /* Do nothing */ ; break;} -case 518: -#line 1340 "csharp.y" +case 523: +#line 1475 "csharp.y" { R(); /* Do nothing */ ; break;} -case 519: -#line 1341 "csharp.y" +case 524: +#line 1476 "csharp.y" { R(); /* Do nothing */ ; break;} -case 520: -#line 1344 "csharp.y" +case 525: +#line 1479 "csharp.y" { R(); gCurrEnum->addEntry(yyvsp[-1].attribute, yyvsp[0].text, NULL); ; break;} -case 521: -#line 1345 "csharp.y" +case 526: +#line 1480 "csharp.y" { R(); gCurrEnum->addEntry(yyvsp[-3].attribute, yyvsp[-2].text, yyvsp[0].expr); ; break;} -case 522: -#line 1351 "csharp.y" -{ R(); /* TODO V Delegate */ ; +case 527: +#line 1486 "csharp.y" +{ R(); CreateDelegate(yyvsp[-9].attribute, yyvsp[-8].tmpValue, yyvsp[-6].type, yyvsp[-5].text, yyvsp[-2].variable)->setGenericParam(); ; break;} -case 523: -#line 1356 "csharp.y" +case 528: +#line 1491 "csharp.y" { R(); yyval.attribute = yyvsp[0].attribute; ; break;} -case 524: -#line 1359 "csharp.y" +case 529: +#line 1494 "csharp.y" { R(); yyval.attribute = CreateAttributeWithChild(yyvsp[0].attribute); ; break;} -case 525: -#line 1360 "csharp.y" +case 530: +#line 1495 "csharp.y" { R(); yyval.attribute = yyvsp[-1].attribute->addChildAttribute(yyvsp[0].attribute); ; break;} -case 526: -#line 1364 "csharp.y" +case 531: +#line 1499 "csharp.y" { R(); yyval.attribute = yyvsp[-2].attribute->setSpecifier(yyvsp[-3].tmpValue); ; break;} -case 527: -#line 1366 "csharp.y" +case 532: +#line 1501 "csharp.y" { R(); yyval.attribute = yyvsp[-3].attribute->setSpecifier(yyvsp[-4].tmpValue); ; break;} -case 528: -#line 1369 "csharp.y" +case 533: +#line 1504 "csharp.y" { R(); yyval.tmpValue = 0; ; break;} -case 529: -#line 1370 "csharp.y" +case 534: +#line 1505 "csharp.y" { R(); yyval.tmpValue = yyvsp[0].tmpValue; ; break;} -case 530: -#line 1373 "csharp.y" +case 535: +#line 1508 "csharp.y" { R(); yyval.tmpValue = yyvsp[-1].tmpValue; ; break;} -case 531: -#line 1376 "csharp.y" +case 536: +#line 1511 "csharp.y" { R(); yyval.tmpValue = ATTRB_ASSEMBLY ; ; break;} -case 532: -#line 1377 "csharp.y" +case 537: +#line 1512 "csharp.y" { R(); yyval.tmpValue = ATTRB_FIELD; ; break;} -case 533: -#line 1378 "csharp.y" +case 538: +#line 1513 "csharp.y" { R(); yyval.tmpValue = ATTRB_EVENT; ; break;} -case 534: -#line 1379 "csharp.y" +case 539: +#line 1514 "csharp.y" { R(); yyval.tmpValue = ATTRB_METHOD; ; break;} -case 535: -#line 1380 "csharp.y" +case 540: +#line 1515 "csharp.y" { R(); yyval.tmpValue = ATTRB_MODULE; ; break;} -case 536: -#line 1381 "csharp.y" +case 541: +#line 1516 "csharp.y" { R(); yyval.tmpValue = ATTRB_PARAM; ; break;} -case 537: -#line 1382 "csharp.y" +case 542: +#line 1517 "csharp.y" { R(); yyval.tmpValue = ATTRB_PROPERTY; ; break;} -case 538: -#line 1383 "csharp.y" +case 543: +#line 1518 "csharp.y" { R(); yyval.tmpValue = ATTRB_RETURN; ; break;} -case 539: -#line 1384 "csharp.y" +case 544: +#line 1519 "csharp.y" { R(); yyval.tmpValue = ATTRB_TYPE; ; break;} -case 540: -#line 1387 "csharp.y" +case 545: +#line 1522 "csharp.y" { R(); yyval.attribute = CreateAttribute(yyvsp[0].type, yyvsp[0].expr); ; break;} -case 541: -#line 1388 "csharp.y" +case 546: +#line 1523 "csharp.y" { R(); yyval.attribute = yyvsp[-2].attribute->addAttribute(yyvsp[0].type, yyvsp[0].expr); ; break;} -case 542: -#line 1391 "csharp.y" +case 547: +#line 1526 "csharp.y" { R(); yyval.type = yyvsp[-1].type; yyval.expr= yyvsp[0].expr; ; break;} -case 543: -#line 1394 "csharp.y" +case 548: +#line 1529 "csharp.y" { R(); yyval.expr = NULL; ; break;} -case 544: -#line 1395 "csharp.y" +case 549: +#line 1530 "csharp.y" { R(); yyval.expr = yyvsp[0].expr ; ; break;} -case 545: -#line 1398 "csharp.y" +case 550: +#line 1533 "csharp.y" { R(); yyval.type = yyvsp[0].type; ; break;} -case 546: -#line 1401 "csharp.y" -{ R(); yyval.expr = yyvsp[-2].expr ; ; +case 551: +#line 1536 "csharp.y" +{ R(); yyval.expr = yyvsp[-1].expr ; ; break;} -case 547: -#line 1408 "csharp.y" +case 552: +#line 1543 "csharp.y" { R(); lex_enter_attrib(); /*Do nothing*/ ; break;} -case 548: -#line 1411 "csharp.y" +case 553: +#line 1546 "csharp.y" { R(); lex_exit_attrib(); /*Do nothing*/ ; break;} -case 549: -#line 1414 "csharp.y" +case 554: +#line 1549 "csharp.y" { R(); lex_enter_accessor(); /*Do nothing*/ ; break;} -case 550: -#line 1417 "csharp.y" +case 555: +#line 1552 "csharp.y" { R(); lex_exit_accessor(); /*Do nothing*/ ; break;} -case 551: -#line 1420 "csharp.y" +case 556: +#line 1555 "csharp.y" { R(); lex_enter_getset(); /*Do nothing*/ ; break;} -case 552: -#line 1423 "csharp.y" +case 557: +#line 1558 "csharp.y" { R(); lex_exit_getset(); /*Do nothing*/ ; break;} } @@ -4531,7 +4637,7 @@ case 552: yystate = yyn; goto yynewstate; } -#line 1427 "csharp.y" +#line 1562 "csharp.y" #include @@ -4580,3 +4686,10 @@ void error (const char* msg,...) { printf(log); } + +int uniqueIdCount = 0; +const char* makeUniqueId(const char* body) { + char buf[10]; + _itoa(uniqueIdCount++, buf, 10); + return concat3("__", body, buf); +} diff --git a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharpcompiler.cpp.output b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharpcompiler.cpp.output index 0349784..85a8334 100644 --- a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharpcompiler.cpp.output +++ b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/csharpcompiler.cpp.output @@ -1,5 +1,13 @@ -State 515 contains 1 reduce/reduce conflict. -State 793 contains 1 shift/reduce conflict. + + +Terminals which are not used: + + STRING + OBJECT + + +Conflict in state 632 between rule 232 and token ELSE resolved as shift. +State 569 contains 1 reduce/reduce conflict. Grammar rule 1 literal -> boolean_literal @@ -11,1196 +19,1258 @@ rule 6 literal -> NULL_LITERAL rule 7 boolean_literal -> TRUE rule 8 boolean_literal -> FALSE rule 9 namespace_name -> qualified_identifier -rule 10 type_name -> qualified_identifier -rule 11 type -> non_array_type -rule 12 type -> array_type -rule 13 non_array_type -> simple_type -rule 14 non_array_type -> type_name -rule 15 simple_type -> primitive_type -rule 16 simple_type -> class_type -rule 17 simple_type -> pointer_type -rule 18 primitive_type -> numeric_type -rule 19 primitive_type -> BOOL -rule 20 numeric_type -> integral_type -rule 21 numeric_type -> floating_point_type -rule 22 numeric_type -> DECIMAL -rule 23 integral_type -> SBYTE -rule 24 integral_type -> BYTE -rule 25 integral_type -> SHORT -rule 26 integral_type -> USHORT -rule 27 integral_type -> INT -rule 28 integral_type -> UINT -rule 29 integral_type -> LONG -rule 30 integral_type -> ULONG -rule 31 integral_type -> CHAR -rule 32 floating_point_type -> FLOAT -rule 33 floating_point_type -> DOUBLE -rule 34 class_type -> OBJECT -rule 35 class_type -> STRING -rule 36 pointer_type -> type '*' -rule 37 pointer_type -> VOID '*' -rule 38 array_type -> array_type rank_specifier -rule 39 array_type -> simple_type rank_specifier -rule 40 array_type -> qualified_identifier rank_specifier -rule 41 rank_specifiers_opt -> /* empty */ -rule 42 rank_specifiers_opt -> rank_specifier rank_specifiers_opt -rule 43 rank_specifier -> RANK_SPECIFIER -rule 44 variable_reference -> expression -rule 45 argument_list -> argument -rule 46 argument_list -> argument_list COMMA argument -rule 47 argument -> expression -rule 48 argument -> REF variable_reference -rule 49 argument -> OUT variable_reference -rule 50 primary_expression -> parenthesized_expression -rule 51 primary_expression -> primary_expression_no_parenthesis -rule 52 primary_expression_no_parenthesis -> literal -rule 53 primary_expression_no_parenthesis -> array_creation_expression -rule 54 primary_expression_no_parenthesis -> member_access -rule 55 primary_expression_no_parenthesis -> invocation_expression -rule 56 primary_expression_no_parenthesis -> element_access -rule 57 primary_expression_no_parenthesis -> this_access -rule 58 primary_expression_no_parenthesis -> base_access -rule 59 primary_expression_no_parenthesis -> new_expression -rule 60 primary_expression_no_parenthesis -> typeof_expression -rule 61 primary_expression_no_parenthesis -> sizeof_expression -rule 62 primary_expression_no_parenthesis -> checked_expression -rule 63 primary_expression_no_parenthesis -> unchecked_expression -rule 64 parenthesized_expression -> '(' expression ')' -rule 65 member_access -> primary_expression '.' IDENTIFIER -rule 66 member_access -> primitive_type '.' IDENTIFIER -rule 67 member_access -> class_type '.' IDENTIFIER -rule 68 invocation_expression -> primary_expression_no_parenthesis '(' argument_list_opt ')' -rule 69 invocation_expression -> qualified_identifier '(' argument_list_opt ')' -rule 70 argument_list_opt -> /* empty */ -rule 71 argument_list_opt -> argument_list -rule 72 element_access -> primary_expression LEFT_BRACKET expression_list RIGHT_BRACKET -rule 73 element_access -> qualified_identifier LEFT_BRACKET expression_list RIGHT_BRACKET -rule 74 expression_list_opt -> /* empty */ -rule 75 expression_list_opt -> expression_list -rule 76 expression_list -> expression -rule 77 expression_list -> expression_list COMMA expression -rule 78 this_access -> THIS -rule 79 base_access -> BASE '.' IDENTIFIER -rule 80 base_access -> BASE LEFT_BRACKET expression_list RIGHT_BRACKET -rule 81 post_increment_expression -> postfix_expression PLUSPLUS -rule 82 post_decrement_expression -> postfix_expression MINUSMINUS -rule 83 new_expression -> object_creation_expression -rule 84 object_creation_expression -> NEW type '(' argument_list_opt ')' -rule 85 array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt -rule 86 array_creation_expression -> NEW array_type array_initializer -rule 87 array_initializer_opt -> /* empty */ -rule 88 array_initializer_opt -> array_initializer -rule 89 typeof_expression -> TYPEOF '(' type ')' -rule 90 typeof_expression -> TYPEOF '(' VOID ')' -rule 91 checked_expression -> CHECKED '(' expression ')' -rule 92 unchecked_expression -> UNCHECKED '(' expression ')' -rule 93 pointer_member_access -> postfix_expression ARROW IDENTIFIER -rule 94 addressof_expression -> '&' unary_expression -rule 95 sizeof_expression -> SIZEOF '(' type ')' -rule 96 postfix_expression -> primary_expression -rule 97 postfix_expression -> qualified_identifier -rule 98 postfix_expression -> post_increment_expression -rule 99 postfix_expression -> post_decrement_expression -rule 100 postfix_expression -> pointer_member_access -rule 101 unary_expression_not_plusminus -> postfix_expression -rule 102 unary_expression_not_plusminus -> '!' unary_expression -rule 103 unary_expression_not_plusminus -> '~' unary_expression -rule 104 unary_expression_not_plusminus -> cast_expression -rule 105 pre_increment_expression -> PLUSPLUS unary_expression -rule 106 pre_decrement_expression -> MINUSMINUS unary_expression -rule 107 unary_expression -> unary_expression_not_plusminus -rule 108 unary_expression -> '+' unary_expression -rule 109 unary_expression -> '-' unary_expression -rule 110 unary_expression -> '*' unary_expression -rule 111 unary_expression -> pre_increment_expression -rule 112 unary_expression -> pre_decrement_expression -rule 113 unary_expression -> addressof_expression -rule 114 cast_expression -> '(' expression ')' unary_expression_not_plusminus -rule 115 cast_expression -> '(' multiplicative_expression '*' ')' unary_expression -rule 116 cast_expression -> '(' qualified_identifier rank_specifier type_quals_opt ')' unary_expression -rule 117 cast_expression -> '(' primitive_type type_quals_opt ')' unary_expression -rule 118 cast_expression -> '(' class_type type_quals_opt ')' unary_expression -rule 119 cast_expression -> '(' VOID type_quals_opt ')' unary_expression -rule 120 type_quals_opt -> /* empty */ -rule 121 type_quals_opt -> type_quals -rule 122 type_quals -> type_qual -rule 123 type_quals -> type_quals type_qual -rule 124 type_qual -> rank_specifier -rule 125 type_qual -> '*' -rule 126 multiplicative_expression -> unary_expression -rule 127 multiplicative_expression -> multiplicative_expression '*' unary_expression -rule 128 multiplicative_expression -> multiplicative_expression '/' unary_expression -rule 129 multiplicative_expression -> multiplicative_expression '%' unary_expression -rule 130 additive_expression -> multiplicative_expression -rule 131 additive_expression -> additive_expression '+' multiplicative_expression -rule 132 additive_expression -> additive_expression '-' multiplicative_expression -rule 133 shift_expression -> additive_expression -rule 134 shift_expression -> shift_expression LTLT additive_expression -rule 135 shift_expression -> shift_expression GTGT additive_expression -rule 136 relational_expression -> shift_expression -rule 137 relational_expression -> relational_expression '<' shift_expression -rule 138 relational_expression -> relational_expression '>' shift_expression -rule 139 relational_expression -> relational_expression LEQ shift_expression -rule 140 relational_expression -> relational_expression GEQ shift_expression -rule 141 relational_expression -> relational_expression IS type -rule 142 relational_expression -> relational_expression AS type -rule 143 equality_expression -> relational_expression -rule 144 equality_expression -> equality_expression EQEQ relational_expression -rule 145 equality_expression -> equality_expression NOTEQ relational_expression -rule 146 and_expression -> equality_expression -rule 147 and_expression -> and_expression '&' equality_expression -rule 148 exclusive_or_expression -> and_expression -rule 149 exclusive_or_expression -> exclusive_or_expression '^' and_expression -rule 150 inclusive_or_expression -> exclusive_or_expression -rule 151 inclusive_or_expression -> inclusive_or_expression '|' exclusive_or_expression -rule 152 conditional_and_expression -> inclusive_or_expression -rule 153 conditional_and_expression -> conditional_and_expression ANDAND inclusive_or_expression -rule 154 conditional_or_expression -> conditional_and_expression -rule 155 conditional_or_expression -> conditional_or_expression OROR conditional_and_expression -rule 156 conditional_expression -> conditional_or_expression -rule 157 conditional_expression -> conditional_or_expression '?' expression ':' expression -rule 158 assignment -> unary_expression assignment_operator expression -rule 159 assignment_operator -> '=' -rule 160 assignment_operator -> PLUSEQ -rule 161 assignment_operator -> MINUSEQ -rule 162 assignment_operator -> STAREQ -rule 163 assignment_operator -> DIVEQ -rule 164 assignment_operator -> MODEQ -rule 165 assignment_operator -> XOREQ -rule 166 assignment_operator -> ANDEQ -rule 167 assignment_operator -> OREQ -rule 168 assignment_operator -> GTGTEQ -rule 169 assignment_operator -> LTLTEQ -rule 170 expression -> conditional_expression -rule 171 expression -> assignment -rule 172 constant_expression -> expression -rule 173 boolean_expression -> expression -rule 174 statement -> labeled_statement -rule 175 statement -> declaration_statement -rule 176 statement -> embedded_statement -rule 177 embedded_statement -> block -rule 178 embedded_statement -> empty_statement -rule 179 embedded_statement -> expression_statement -rule 180 embedded_statement -> selection_statement -rule 181 embedded_statement -> iteration_statement -rule 182 embedded_statement -> jump_statement -rule 183 embedded_statement -> try_statement -rule 184 embedded_statement -> checked_statement -rule 185 embedded_statement -> unchecked_statement -rule 186 embedded_statement -> lock_statement -rule 187 embedded_statement -> using_statement -rule 188 embedded_statement -> unsafe_statement -rule 189 embedded_statement -> fixed_statement -rule 190 block -> '{' statement_list_opt '}' -rule 191 statement_list_opt -> /* empty */ -rule 192 statement_list_opt -> statement_list -rule 193 statement_list -> statement -rule 194 statement_list -> statement_list statement -rule 195 empty_statement -> ';' -rule 196 labeled_statement -> IDENTIFIER ':' statement -rule 197 declaration_statement -> local_variable_declaration ';' -rule 198 declaration_statement -> local_constant_declaration ';' -rule 199 local_variable_declaration -> type variable_declarators -rule 200 variable_declarators -> variable_declarator -rule 201 variable_declarators -> variable_declarators COMMA variable_declarator -rule 202 variable_declarator -> IDENTIFIER -rule 203 variable_declarator -> IDENTIFIER '=' variable_initializer -rule 204 variable_initializer -> expression -rule 205 variable_initializer -> array_initializer -rule 206 variable_initializer -> stackalloc_initializer -rule 207 stackalloc_initializer -> STACKALLOC type LEFT_BRACKET expression RIGHT_BRACKET -rule 208 local_constant_declaration -> CONST type constant_declarators -rule 209 constant_declarators -> constant_declarator -rule 210 constant_declarators -> constant_declarators COMMA constant_declarator -rule 211 constant_declarator -> IDENTIFIER '=' constant_expression -rule 212 expression_statement -> statement_expression ';' -rule 213 statement_expression -> invocation_expression -rule 214 statement_expression -> object_creation_expression -rule 215 statement_expression -> assignment -rule 216 statement_expression -> post_increment_expression -rule 217 statement_expression -> post_decrement_expression -rule 218 statement_expression -> pre_increment_expression -rule 219 statement_expression -> pre_decrement_expression -rule 220 selection_statement -> if_statement -rule 221 selection_statement -> switch_statement -rule 222 if_statement -> IF '(' boolean_expression ')' embedded_statement -rule 223 if_statement -> IF '(' boolean_expression ')' embedded_statement ELSE embedded_statement -rule 224 switch_statement -> SWITCH '(' expression ')' switch_block -rule 225 switch_block -> '{' switch_sections_opt '}' -rule 226 switch_sections_opt -> /* empty */ -rule 227 switch_sections_opt -> switch_sections -rule 228 switch_sections -> switch_section -rule 229 switch_sections -> switch_sections switch_section -rule 230 switch_section -> switch_labels statement_list -rule 231 switch_labels -> switch_label -rule 232 switch_labels -> switch_labels switch_label -rule 233 switch_label -> CASE constant_expression ':' -rule 234 switch_label -> DEFAULT ':' -rule 235 iteration_statement -> while_statement -rule 236 iteration_statement -> do_statement -rule 237 iteration_statement -> for_statement -rule 238 iteration_statement -> foreach_statement -rule 239 unsafe_statement -> UNSAFE block -rule 240 while_statement -> WHILE '(' boolean_expression ')' embedded_statement -rule 241 do_statement -> DO embedded_statement WHILE '(' boolean_expression ')' ';' -rule 242 for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement -rule 243 for_initializer_opt -> /* empty */ -rule 244 for_initializer_opt -> for_initializer -rule 245 for_condition_opt -> /* empty */ -rule 246 for_condition_opt -> for_condition -rule 247 for_iterator_opt -> /* empty */ -rule 248 for_iterator_opt -> for_iterator -rule 249 for_initializer -> local_variable_declaration -rule 250 for_initializer -> statement_expression_list -rule 251 for_condition -> boolean_expression -rule 252 for_iterator -> statement_expression_list -rule 253 statement_expression_list -> statement_expression -rule 254 statement_expression_list -> statement_expression_list COMMA statement_expression -rule 255 foreach_statement -> FOREACH '(' type IDENTIFIER IN expression ')' embedded_statement -rule 256 jump_statement -> break_statement -rule 257 jump_statement -> continue_statement -rule 258 jump_statement -> goto_statement -rule 259 jump_statement -> return_statement -rule 260 jump_statement -> throw_statement -rule 261 break_statement -> BREAK ';' -rule 262 continue_statement -> CONTINUE ';' -rule 263 goto_statement -> GOTO IDENTIFIER ';' -rule 264 goto_statement -> GOTO CASE constant_expression ';' -rule 265 goto_statement -> GOTO DEFAULT ';' -rule 266 return_statement -> RETURN expression_opt ';' -rule 267 expression_opt -> /* empty */ -rule 268 expression_opt -> expression -rule 269 throw_statement -> THROW expression_opt ';' -rule 270 try_statement -> TRY block catch_clauses -rule 271 try_statement -> TRY block finally_clause -rule 272 try_statement -> TRY block catch_clauses finally_clause -rule 273 catch_clauses -> catch_clause -rule 274 catch_clauses -> catch_clauses catch_clause -rule 275 catch_clause -> CATCH '(' class_type identifier_opt ')' block -rule 276 catch_clause -> CATCH '(' type_name identifier_opt ')' block -rule 277 catch_clause -> CATCH block -rule 278 identifier_opt -> /* empty */ -rule 279 identifier_opt -> IDENTIFIER -rule 280 finally_clause -> FINALLY block -rule 281 checked_statement -> CHECKED block -rule 282 unchecked_statement -> UNCHECKED block -rule 283 lock_statement -> LOCK '(' expression ')' embedded_statement -rule 284 using_statement -> USING '(' resource_acquisition ')' embedded_statement -rule 285 resource_acquisition -> local_variable_declaration -rule 286 resource_acquisition -> expression -rule 287 fixed_statement -> FIXED '(' type fixed_pointer_declarators ')' embedded_statement -rule 288 fixed_pointer_declarators -> fixed_pointer_declarator -rule 289 fixed_pointer_declarators -> fixed_pointer_declarators COMMA fixed_pointer_declarator -rule 290 fixed_pointer_declarator -> IDENTIFIER '=' expression -rule 291 compilation_unit -> using_directives_opt attributes_opt -rule 292 compilation_unit -> using_directives_opt namespace_member_declarations -rule 293 using_directives_opt -> /* empty */ -rule 294 using_directives_opt -> using_directives -rule 295 attributes_opt -> /* empty */ -rule 296 attributes_opt -> attributes -rule 297 namespace_member_declarations_opt -> /* empty */ -rule 298 namespace_member_declarations_opt -> namespace_member_declarations -rule 299 namespace_declaration -> attributes_opt NAMESPACE qualified_identifier namespace_body comma_opt -rule 300 comma_opt -> /* empty */ -rule 301 comma_opt -> ';' -rule 302 qualified_identifier -> IDENTIFIER -rule 303 qualified_identifier -> qualifier IDENTIFIER -rule 304 qualifier -> IDENTIFIER '.' -rule 305 qualifier -> qualifier IDENTIFIER '.' -rule 306 namespace_body -> '{' using_directives_opt namespace_member_declarations_opt '}' -rule 307 using_directives -> using_directive -rule 308 using_directives -> using_directives using_directive -rule 309 using_directive -> using_alias_directive -rule 310 using_directive -> using_namespace_directive -rule 311 using_alias_directive -> USING IDENTIFIER '=' qualified_identifier ';' -rule 312 using_namespace_directive -> USING namespace_name ';' -rule 313 namespace_member_declarations -> namespace_member_declaration -rule 314 namespace_member_declarations -> namespace_member_declarations namespace_member_declaration -rule 315 namespace_member_declaration -> namespace_declaration -rule 316 namespace_member_declaration -> type_declaration -rule 317 type_declaration -> class_declaration -rule 318 type_declaration -> struct_declaration -rule 319 type_declaration -> interface_declaration -rule 320 type_declaration -> enum_declaration -rule 321 type_declaration -> delegate_declaration -rule 322 modifiers_opt -> /* empty */ -rule 323 modifiers_opt -> modifiers -rule 324 modifiers -> modifier -rule 325 modifiers -> modifiers modifier -rule 326 modifier -> ABSTRACT -rule 327 modifier -> EXTERN -rule 328 modifier -> INTERNAL -rule 329 modifier -> NEW -rule 330 modifier -> OVERRIDE -rule 331 modifier -> PRIVATE -rule 332 modifier -> PROTECTED -rule 333 modifier -> PUBLIC -rule 334 modifier -> READONLY -rule 335 modifier -> SEALED -rule 336 modifier -> STATIC -rule 337 modifier -> UNSAFE -rule 338 modifier -> VIRTUAL -rule 339 modifier -> VOLATILE -rule 340 class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER class_base_opt class_body comma_opt -rule 341 class_base_opt -> /* empty */ -rule 342 class_base_opt -> class_base -rule 343 class_base -> ':' class_type -rule 344 class_base -> ':' interface_type_list -rule 345 class_base -> ':' class_type COMMA interface_type_list -rule 346 interface_type_list -> type_name -rule 347 interface_type_list -> interface_type_list COMMA type_name -rule 348 class_body -> '{' class_member_declarations_opt '}' -rule 349 class_member_declarations_opt -> /* empty */ -rule 350 class_member_declarations_opt -> class_member_declarations -rule 351 class_member_declarations -> class_member_declaration -rule 352 class_member_declarations -> class_member_declarations class_member_declaration -rule 353 class_member_declaration -> constant_declaration -rule 354 class_member_declaration -> field_declaration -rule 355 class_member_declaration -> method_declaration -rule 356 class_member_declaration -> property_declaration -rule 357 class_member_declaration -> event_declaration -rule 358 class_member_declaration -> indexer_declaration -rule 359 class_member_declaration -> operator_declaration -rule 360 class_member_declaration -> constructor_declaration -rule 361 class_member_declaration -> destructor_declaration -rule 362 class_member_declaration -> type_declaration -rule 363 constant_declaration -> attributes_opt modifiers_opt CONST type constant_declarators ';' -rule 364 field_declaration -> attributes_opt modifiers_opt type variable_declarators ';' -rule 365 method_declaration -> method_header method_body -rule 366 method_header -> attributes_opt modifiers_opt type qualified_identifier '(' formal_parameter_list_opt ')' -rule 367 method_header -> attributes_opt modifiers_opt VOID qualified_identifier '(' formal_parameter_list_opt ')' -rule 368 formal_parameter_list_opt -> /* empty */ -rule 369 formal_parameter_list_opt -> formal_parameter_list -rule 370 return_type -> type -rule 371 return_type -> VOID -rule 372 method_body -> block -rule 373 method_body -> ';' -rule 374 formal_parameter_list -> formal_parameter -rule 375 formal_parameter_list -> formal_parameter_list COMMA formal_parameter -rule 376 formal_parameter -> fixed_parameter -rule 377 formal_parameter -> parameter_array -rule 378 fixed_parameter -> attributes_opt parameter_modifier_opt type IDENTIFIER -rule 379 parameter_modifier_opt -> /* empty */ -rule 380 parameter_modifier_opt -> REF -rule 381 parameter_modifier_opt -> OUT -rule 382 parameter_array -> attributes_opt PARAMS type IDENTIFIER -rule 383 property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset -rule 384 accessor_declarations -> get_accessor_declaration set_accessor_declaration_opt -rule 385 accessor_declarations -> set_accessor_declaration get_accessor_declaration_opt -rule 386 set_accessor_declaration_opt -> /* empty */ -rule 387 set_accessor_declaration_opt -> set_accessor_declaration -rule 388 get_accessor_declaration_opt -> /* empty */ -rule 389 get_accessor_declaration_opt -> get_accessor_declaration -rule 390 get_accessor_declaration -> attributes_opt GET EXIT_getset accessor_body ENTER_getset -rule 391 set_accessor_declaration -> attributes_opt SET EXIT_getset accessor_body ENTER_getset -rule 392 accessor_body -> block -rule 393 accessor_body -> ';' -rule 394 event_declaration -> attributes_opt modifiers_opt EVENT type variable_declarators ';' -rule 395 event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl -rule 396 event_accessor_declarations -> add_accessor_declaration remove_accessor_declaration -rule 397 event_accessor_declarations -> remove_accessor_declaration add_accessor_declaration -rule 398 add_accessor_declaration -> attributes_opt ADD EXIT_accessor_decl block ENTER_accessor_decl -rule 399 remove_accessor_declaration -> attributes_opt REMOVE EXIT_accessor_decl block ENTER_accessor_decl -rule 400 indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset -rule 401 indexer_declarator -> type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET -rule 402 indexer_declarator -> type qualified_this LEFT_BRACKET formal_parameter_list RIGHT_BRACKET -rule 403 qualified_this -> qualifier THIS -rule 404 operator_declaration -> attributes_opt modifiers_opt operator_declarator operator_body -rule 405 operator_declarator -> overloadable_operator_declarator -rule 406 operator_declarator -> conversion_operator_declarator -rule 407 overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER ')' -rule 408 overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER ')' -rule 409 overloadable_operator -> '+' -rule 410 overloadable_operator -> '-' -rule 411 overloadable_operator -> '!' -rule 412 overloadable_operator -> '~' -rule 413 overloadable_operator -> PLUSPLUS -rule 414 overloadable_operator -> MINUSMINUS -rule 415 overloadable_operator -> TRUE -rule 416 overloadable_operator -> FALSE -rule 417 overloadable_operator -> '*' -rule 418 overloadable_operator -> '/' -rule 419 overloadable_operator -> '%' -rule 420 overloadable_operator -> '&' -rule 421 overloadable_operator -> '|' -rule 422 overloadable_operator -> '^' -rule 423 overloadable_operator -> LTLT -rule 424 overloadable_operator -> GTGT -rule 425 overloadable_operator -> EQEQ -rule 426 overloadable_operator -> NOTEQ -rule 427 overloadable_operator -> '>' -rule 428 overloadable_operator -> '<' -rule 429 overloadable_operator -> GEQ -rule 430 overloadable_operator -> LEQ -rule 431 conversion_operator_declarator -> IMPLICIT OPERATOR type '(' type IDENTIFIER ')' -rule 432 conversion_operator_declarator -> EXPLICIT OPERATOR type '(' type IDENTIFIER ')' -rule 433 constructor_declaration -> attributes_opt modifiers_opt constructor_declarator constructor_body -rule 434 constructor_declarator -> IDENTIFIER '(' formal_parameter_list_opt ')' constructor_initializer_opt -rule 435 constructor_initializer_opt -> /* empty */ -rule 436 constructor_initializer_opt -> constructor_initializer -rule 437 constructor_initializer -> ':' BASE '(' argument_list_opt ')' -rule 438 constructor_initializer -> ':' THIS '(' argument_list_opt ')' -rule 439 destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER '(' ')' block -rule 440 operator_body -> block -rule 441 operator_body -> ';' -rule 442 constructor_body -> block -rule 443 constructor_body -> ';' -rule 444 struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt -rule 445 struct_interfaces_opt -> /* empty */ -rule 446 struct_interfaces_opt -> struct_interfaces -rule 447 struct_interfaces -> ':' interface_type_list -rule 448 struct_body -> '{' struct_member_declarations_opt '}' -rule 449 struct_member_declarations_opt -> /* empty */ -rule 450 struct_member_declarations_opt -> struct_member_declarations -rule 451 struct_member_declarations -> struct_member_declaration -rule 452 struct_member_declarations -> struct_member_declarations struct_member_declaration -rule 453 struct_member_declaration -> constant_declaration -rule 454 struct_member_declaration -> field_declaration -rule 455 struct_member_declaration -> method_declaration -rule 456 struct_member_declaration -> property_declaration -rule 457 struct_member_declaration -> event_declaration -rule 458 struct_member_declaration -> indexer_declaration -rule 459 struct_member_declaration -> operator_declaration -rule 460 struct_member_declaration -> constructor_declaration -rule 461 struct_member_declaration -> type_declaration -rule 462 array_initializer -> '{' variable_initializer_list_opt '}' -rule 463 array_initializer -> '{' variable_initializer_list COMMA '}' -rule 464 variable_initializer_list_opt -> /* empty */ -rule 465 variable_initializer_list_opt -> variable_initializer_list -rule 466 variable_initializer_list -> variable_initializer -rule 467 variable_initializer_list -> variable_initializer_list COMMA variable_initializer -rule 468 interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt -rule 469 interface_base_opt -> /* empty */ -rule 470 interface_base_opt -> interface_base -rule 471 interface_base -> ':' interface_type_list -rule 472 interface_body -> '{' interface_member_declarations_opt '}' -rule 473 interface_member_declarations_opt -> /* empty */ -rule 474 interface_member_declarations_opt -> interface_member_declarations -rule 475 interface_member_declarations -> interface_member_declaration -rule 476 interface_member_declarations -> interface_member_declarations interface_member_declaration -rule 477 interface_member_declaration -> interface_method_declaration -rule 478 interface_member_declaration -> interface_property_declaration -rule 479 interface_member_declaration -> interface_event_declaration -rule 480 interface_member_declaration -> interface_indexer_declaration -rule 481 interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body -rule 482 interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body -rule 483 new_opt -> /* empty */ -rule 484 new_opt -> NEW -rule 485 interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset -rule 486 interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset -rule 487 interface_accessors -> attributes_opt GET interface_empty_body -rule 488 interface_accessors -> attributes_opt SET interface_empty_body -rule 489 interface_accessors -> attributes_opt GET interface_empty_body attributes_opt SET interface_empty_body -rule 490 interface_accessors -> attributes_opt SET interface_empty_body attributes_opt GET interface_empty_body -rule 491 interface_event_declaration -> attributes_opt new_opt EVENT type IDENTIFIER interface_empty_body -rule 492 interface_empty_body -> ';' -rule 493 interface_empty_body -> '{' '}' -rule 494 enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt enum_body comma_opt -rule 495 enum_base_opt -> /* empty */ -rule 496 enum_base_opt -> enum_base -rule 497 enum_base -> ':' integral_type -rule 498 enum_body -> '{' enum_member_declarations_opt '}' -rule 499 enum_body -> '{' enum_member_declarations COMMA '}' -rule 500 enum_member_declarations_opt -> /* empty */ -rule 501 enum_member_declarations_opt -> enum_member_declarations -rule 502 enum_member_declarations -> enum_member_declaration -rule 503 enum_member_declarations -> enum_member_declarations COMMA enum_member_declaration -rule 504 enum_member_declaration -> attributes_opt IDENTIFIER -rule 505 enum_member_declaration -> attributes_opt IDENTIFIER '=' constant_expression -rule 506 delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' -rule 507 attributes -> attribute_sections -rule 508 attribute_sections -> attribute_section -rule 509 attribute_sections -> attribute_sections attribute_section -rule 510 attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list RIGHT_BRACKET EXIT_attrib -rule 511 attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET EXIT_attrib -rule 512 attribute_target_specifier_opt -> /* empty */ -rule 513 attribute_target_specifier_opt -> attribute_target_specifier -rule 514 attribute_target_specifier -> attribute_target ':' -rule 515 attribute_target -> ASSEMBLY -rule 516 attribute_target -> FIELD -rule 517 attribute_target -> EVENT -rule 518 attribute_target -> METHOD -rule 519 attribute_target -> MODULE -rule 520 attribute_target -> PARAM -rule 521 attribute_target -> PROPERTY -rule 522 attribute_target -> RETURN -rule 523 attribute_target -> TYPE -rule 524 attribute_list -> attribute -rule 525 attribute_list -> attribute_list COMMA attribute -rule 526 attribute -> attribute_name attribute_arguments_opt -rule 527 attribute_arguments_opt -> /* empty */ -rule 528 attribute_arguments_opt -> attribute_arguments -rule 529 attribute_name -> type_name -rule 530 attribute_arguments -> '(' expression_list_opt ')' -rule 531 ENTER_attrib -> /* empty */ -rule 532 EXIT_attrib -> /* empty */ -rule 533 ENTER_accessor_decl -> /* empty */ -rule 534 EXIT_accessor_decl -> /* empty */ -rule 535 ENTER_getset -> /* empty */ -rule 536 EXIT_getset -> /* empty */ +rule 10 type_name -> qualified_identifier_opt_generic +rule 11 opt_generic -> /* empty */ +rule 12 @1 -> /* empty */ +rule 13 opt_generic -> GEN_LT @1 genericlist GEN_GT +rule 14 @2 -> /* empty */ +rule 15 qualified_identifier_opt_generic -> qualified_identifier @2 opt_generic +rule 16 genericlist -> type +rule 17 @3 -> /* empty */ +rule 18 genericlist -> type COMMA @3 genericlist +rule 19 type -> non_array_type +rule 20 type -> array_type +rule 21 non_array_type -> simple_type +rule 22 non_array_type -> type_name +rule 23 simple_type -> primitive_type +rule 24 simple_type -> pointer_type +rule 25 primitive_type -> numeric_type +rule 26 primitive_type -> BOOL +rule 27 numeric_type -> integral_type +rule 28 numeric_type -> floating_point_type +rule 29 numeric_type -> DECIMAL +rule 30 integral_type -> SBYTE +rule 31 integral_type -> BYTE +rule 32 integral_type -> SHORT +rule 33 integral_type -> USHORT +rule 34 integral_type -> INT +rule 35 integral_type -> UINT +rule 36 integral_type -> LONG +rule 37 integral_type -> ULONG +rule 38 integral_type -> CHAR +rule 39 floating_point_type -> FLOAT +rule 40 floating_point_type -> DOUBLE +rule 41 pointer_type -> type '*' +rule 42 pointer_type -> VOID '*' +rule 43 array_type -> array_type rank_specifier +rule 44 array_type -> simple_type rank_specifier +rule 45 array_type -> qualified_identifier rank_specifier +rule 46 rank_specifiers_opt -> /* empty */ +rule 47 rank_specifiers_opt -> rank_specifier rank_specifiers_opt +rule 48 rank_specifier -> RANK_SPECIFIER +rule 49 variable_reference -> expression +rule 50 argument_list -> argument +rule 51 argument_list -> argument_list COMMA argument +rule 52 argument -> expression +rule 53 argument -> REF variable_reference +rule 54 argument -> OUT variable_reference +rule 55 argument -> IDENTIFIER ':' argument +rule 56 primary_expression -> parenthesized_expression +rule 57 primary_expression -> primary_expression_no_parenthesis +rule 58 primary_expression_no_parenthesis -> literal +rule 59 primary_expression_no_parenthesis -> array_creation_expression +rule 60 primary_expression_no_parenthesis -> member_access +rule 61 primary_expression_no_parenthesis -> invocation_expression +rule 62 primary_expression_no_parenthesis -> element_access +rule 63 primary_expression_no_parenthesis -> this_access +rule 64 primary_expression_no_parenthesis -> base_access +rule 65 primary_expression_no_parenthesis -> new_expression +rule 66 primary_expression_no_parenthesis -> delegate_expression +rule 67 primary_expression_no_parenthesis -> typeof_expression +rule 68 primary_expression_no_parenthesis -> sizeof_expression +rule 69 primary_expression_no_parenthesis -> checked_expression +rule 70 primary_expression_no_parenthesis -> unchecked_expression +rule 71 delegate_expression -> DELEGATE '(' formal_parameter_list_opt ')' block +rule 72 parenthesized_expression -> '(' expression ')' +rule 73 member_access -> primary_expression '.' IDENTIFIER +rule 74 member_access -> primitive_type '.' IDENTIFIER +rule 75 @4 -> /* empty */ +rule 76 invocation_expression -> primary_expression_no_parenthesis opt_generic '(' @4 argument_list_opt ')' +rule 77 invocation_expression -> qualified_identifier_opt_generic '(' argument_list_opt ')' +rule 78 argument_list_opt -> /* empty */ +rule 79 argument_list_opt -> argument_list +rule 80 element_access -> primary_expression LEFT_BRACKET expression_list RIGHT_BRACKET +rule 81 element_access -> qualified_identifier LEFT_BRACKET expression_list RIGHT_BRACKET +rule 82 expression_list_opt -> /* empty */ +rule 83 expression_list_opt -> expression_list +rule 84 expression_list -> expression +rule 85 expression_list -> expression_list COMMA expression +rule 86 this_access -> THIS +rule 87 base_access -> BASE '.' IDENTIFIER +rule 88 base_access -> BASE LEFT_BRACKET expression_list RIGHT_BRACKET +rule 89 post_increment_expression -> postfix_expression PLUSPLUS +rule 90 post_decrement_expression -> postfix_expression MINUSMINUS +rule 91 new_expression -> object_creation_expression +rule 92 object_creation_expression -> NEW type '(' argument_list_opt ')' +rule 93 array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt +rule 94 array_creation_expression -> NEW array_type array_initializer +rule 95 array_initializer_opt -> /* empty */ +rule 96 array_initializer_opt -> array_initializer +rule 97 typeof_expression -> TYPEOF '(' type ')' +rule 98 typeof_expression -> TYPEOF '(' VOID ')' +rule 99 checked_expression -> CHECKED '(' expression ')' +rule 100 unchecked_expression -> UNCHECKED '(' expression ')' +rule 101 pointer_member_access -> postfix_expression ARROW IDENTIFIER +rule 102 addressof_expression -> '&' unary_expression +rule 103 sizeof_expression -> SIZEOF '(' type ')' +rule 104 postfix_expression -> primary_expression +rule 105 postfix_expression -> qualified_identifier +rule 106 postfix_expression -> post_increment_expression +rule 107 postfix_expression -> post_decrement_expression +rule 108 postfix_expression -> pointer_member_access +rule 109 unary_expression_not_plusminus -> postfix_expression +rule 110 unary_expression_not_plusminus -> '!' unary_expression +rule 111 unary_expression_not_plusminus -> '~' unary_expression +rule 112 unary_expression_not_plusminus -> cast_expression +rule 113 pre_increment_expression -> PLUSPLUS unary_expression +rule 114 pre_decrement_expression -> MINUSMINUS unary_expression +rule 115 unary_expression -> unary_expression_not_plusminus +rule 116 unary_expression -> '+' unary_expression +rule 117 unary_expression -> '-' unary_expression +rule 118 unary_expression -> '*' unary_expression +rule 119 unary_expression -> pre_increment_expression +rule 120 unary_expression -> pre_decrement_expression +rule 121 unary_expression -> addressof_expression +rule 122 cast_expression -> '(' expression ')' unary_expression_not_plusminus +rule 123 cast_expression -> '(' multiplicative_expression '*' ')' unary_expression +rule 124 cast_expression -> '(' qualified_identifier rank_specifier type_quals_opt ')' unary_expression +rule 125 cast_expression -> '(' primitive_type type_quals_opt ')' unary_expression +rule 126 cast_expression -> '(' VOID type_quals_opt ')' unary_expression +rule 127 type_quals_opt -> /* empty */ +rule 128 type_quals_opt -> type_quals +rule 129 type_quals -> type_qual +rule 130 type_quals -> type_quals type_qual +rule 131 type_qual -> rank_specifier +rule 132 type_qual -> '*' +rule 133 multiplicative_expression -> unary_expression +rule 134 multiplicative_expression -> multiplicative_expression '*' unary_expression +rule 135 multiplicative_expression -> multiplicative_expression '/' unary_expression +rule 136 multiplicative_expression -> multiplicative_expression '%' unary_expression +rule 137 additive_expression -> multiplicative_expression +rule 138 additive_expression -> additive_expression '+' multiplicative_expression +rule 139 additive_expression -> additive_expression '-' multiplicative_expression +rule 140 shift_expression -> additive_expression +rule 141 shift_expression -> shift_expression LTLT additive_expression +rule 142 shift_expression -> shift_expression GTGT additive_expression +rule 143 relational_expression -> shift_expression +rule 144 relational_expression -> relational_expression LT shift_expression +rule 145 relational_expression -> relational_expression GT shift_expression +rule 146 relational_expression -> relational_expression LEQ shift_expression +rule 147 relational_expression -> relational_expression GEQ shift_expression +rule 148 relational_expression -> relational_expression IS type +rule 149 relational_expression -> relational_expression AS type +rule 150 equality_expression -> relational_expression +rule 151 equality_expression -> equality_expression EQEQ relational_expression +rule 152 equality_expression -> equality_expression NOTEQ relational_expression +rule 153 and_expression -> equality_expression +rule 154 and_expression -> and_expression '&' equality_expression +rule 155 exclusive_or_expression -> and_expression +rule 156 exclusive_or_expression -> exclusive_or_expression '^' and_expression +rule 157 inclusive_or_expression -> exclusive_or_expression +rule 158 inclusive_or_expression -> inclusive_or_expression '|' exclusive_or_expression +rule 159 conditional_and_expression -> inclusive_or_expression +rule 160 conditional_and_expression -> conditional_and_expression ANDAND inclusive_or_expression +rule 161 conditional_or_expression -> conditional_and_expression +rule 162 conditional_or_expression -> conditional_or_expression OROR conditional_and_expression +rule 163 conditional_expression -> conditional_or_expression +rule 164 conditional_expression -> conditional_or_expression '?' expression ':' expression +rule 165 assignment -> unary_expression assignment_operator expression +rule 166 assignment_operator -> '=' +rule 167 assignment_operator -> PLUSEQ +rule 168 assignment_operator -> MINUSEQ +rule 169 assignment_operator -> STAREQ +rule 170 assignment_operator -> DIVEQ +rule 171 assignment_operator -> MODEQ +rule 172 assignment_operator -> XOREQ +rule 173 assignment_operator -> ANDEQ +rule 174 assignment_operator -> OREQ +rule 175 assignment_operator -> GTGTEQ +rule 176 assignment_operator -> LTLTEQ +rule 177 expression -> conditional_expression +rule 178 expression -> assignment +rule 179 constant_expression -> expression +rule 180 boolean_expression -> expression +rule 181 statement -> labeled_statement +rule 182 statement -> declaration_statement +rule 183 statement -> embedded_statement +rule 184 embedded_statement -> block +rule 185 embedded_statement -> empty_statement +rule 186 embedded_statement -> expression_statement +rule 187 embedded_statement -> selection_statement +rule 188 embedded_statement -> iteration_statement +rule 189 embedded_statement -> jump_statement +rule 190 embedded_statement -> try_statement +rule 191 embedded_statement -> checked_statement +rule 192 embedded_statement -> unchecked_statement +rule 193 embedded_statement -> lock_statement +rule 194 embedded_statement -> using_statement +rule 195 embedded_statement -> unsafe_statement +rule 196 embedded_statement -> fixed_statement +rule 197 block -> '{' statement_list_opt '}' +rule 198 statement_list_opt -> /* empty */ +rule 199 statement_list_opt -> statement_list +rule 200 statement_list -> statement +rule 201 statement_list -> statement_list statement +rule 202 empty_statement -> ';' +rule 203 labeled_statement -> IDENTIFIER ':' statement +rule 204 declaration_statement -> local_variable_declaration ';' +rule 205 declaration_statement -> local_constant_declaration ';' +rule 206 local_variable_declaration -> type variable_declarators +rule 207 variable_declarators -> variable_declarator +rule 208 variable_declarators -> variable_declarators COMMA variable_declarator +rule 209 variable_declarator -> IDENTIFIER +rule 210 variable_declarator -> IDENTIFIER '=' variable_initializer +rule 211 variable_initializer -> expression +rule 212 variable_initializer -> array_initializer +rule 213 variable_initializer -> stackalloc_initializer +rule 214 stackalloc_initializer -> STACKALLOC type LEFT_BRACKET expression RIGHT_BRACKET +rule 215 local_constant_declaration -> CONST type constant_declarators +rule 216 constant_declarators -> constant_declarator +rule 217 constant_declarators -> constant_declarators COMMA constant_declarator +rule 218 constant_declarator -> IDENTIFIER '=' constant_expression +rule 219 expression_statement -> statement_expression ';' +rule 220 statement_expression -> invocation_expression +rule 221 statement_expression -> object_creation_expression +rule 222 statement_expression -> assignment +rule 223 statement_expression -> post_increment_expression +rule 224 statement_expression -> post_decrement_expression +rule 225 statement_expression -> pre_increment_expression +rule 226 statement_expression -> pre_decrement_expression +rule 227 selection_statement -> if_statement +rule 228 selection_statement -> switch_statement +rule 229 if_statement -> IF ifpart opt_else +rule 230 ifpart -> '(' boolean_expression ')' embedded_statement +rule 231 opt_else -> ELSE embedded_statement +rule 232 opt_else -> /* empty */ +rule 233 switch_statement -> SWITCH '(' expression ')' switch_block +rule 234 switch_block -> '{' switch_sections_opt '}' +rule 235 switch_sections_opt -> /* empty */ +rule 236 switch_sections_opt -> switch_sections +rule 237 switch_sections -> switch_section +rule 238 switch_sections -> switch_sections switch_section +rule 239 switch_section -> switch_labels statement_list +rule 240 switch_labels -> switch_label +rule 241 switch_labels -> switch_labels switch_label +rule 242 switch_label -> CASE constant_expression ':' +rule 243 switch_label -> DEFAULT ':' +rule 244 iteration_statement -> while_statement +rule 245 iteration_statement -> do_statement +rule 246 iteration_statement -> for_statement +rule 247 iteration_statement -> foreach_statement +rule 248 unsafe_statement -> UNSAFE block +rule 249 while_statement -> WHILE '(' boolean_expression ')' embedded_statement +rule 250 do_statement -> DO embedded_statement WHILE '(' boolean_expression ')' ';' +rule 251 for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement +rule 252 for_initializer_opt -> /* empty */ +rule 253 for_initializer_opt -> for_initializer +rule 254 for_condition_opt -> /* empty */ +rule 255 for_condition_opt -> for_condition +rule 256 for_iterator_opt -> /* empty */ +rule 257 for_iterator_opt -> for_iterator +rule 258 for_initializer -> local_variable_declaration +rule 259 for_initializer -> statement_expression_list +rule 260 for_condition -> boolean_expression +rule 261 for_iterator -> statement_expression_list +rule 262 statement_expression_list -> statement_expression +rule 263 statement_expression_list -> statement_expression_list COMMA statement_expression +rule 264 foreach_statement -> FOREACH '(' type IDENTIFIER IN expression ')' embedded_statement +rule 265 jump_statement -> break_statement +rule 266 jump_statement -> continue_statement +rule 267 jump_statement -> goto_statement +rule 268 jump_statement -> return_statement +rule 269 jump_statement -> throw_statement +rule 270 break_statement -> BREAK ';' +rule 271 continue_statement -> CONTINUE ';' +rule 272 goto_statement -> GOTO IDENTIFIER ';' +rule 273 goto_statement -> GOTO CASE constant_expression ';' +rule 274 goto_statement -> GOTO DEFAULT ';' +rule 275 return_statement -> RETURN expression_opt ';' +rule 276 expression_opt -> /* empty */ +rule 277 expression_opt -> expression +rule 278 throw_statement -> THROW expression_opt ';' +rule 279 try_statement -> TRY block catch_clauses +rule 280 try_statement -> TRY block finally_clause +rule 281 try_statement -> TRY block catch_clauses finally_clause +rule 282 catch_clauses -> catch_clause +rule 283 catch_clauses -> catch_clauses catch_clause +rule 284 catch_clause -> CATCH '(' type_name identifier_opt ')' block +rule 285 catch_clause -> CATCH block +rule 286 identifier_opt -> /* empty */ +rule 287 identifier_opt -> IDENTIFIER +rule 288 finally_clause -> FINALLY block +rule 289 checked_statement -> CHECKED block +rule 290 unchecked_statement -> UNCHECKED block +rule 291 lock_statement -> LOCK '(' expression ')' embedded_statement +rule 292 using_statement -> USING '(' resource_acquisition ')' embedded_statement +rule 293 resource_acquisition -> local_variable_declaration +rule 294 resource_acquisition -> expression +rule 295 fixed_statement -> FIXED '(' type fixed_pointer_declarators ')' embedded_statement +rule 296 fixed_pointer_declarators -> fixed_pointer_declarator +rule 297 fixed_pointer_declarators -> fixed_pointer_declarators COMMA fixed_pointer_declarator +rule 298 fixed_pointer_declarator -> IDENTIFIER '=' expression +rule 299 compilation_unit -> using_directives_opt attributes_opt +rule 300 compilation_unit -> using_directives_opt namespace_member_declarations +rule 301 using_directives_opt -> /* empty */ +rule 302 using_directives_opt -> using_directives +rule 303 attributes_opt -> /* empty */ +rule 304 attributes_opt -> attributes +rule 305 namespace_member_declarations_opt -> /* empty */ +rule 306 namespace_member_declarations_opt -> namespace_member_declarations +rule 307 @5 -> /* empty */ +rule 308 namespace_declaration -> attributes_opt NAMESPACE qualified_identifier @5 namespace_body comma_opt +rule 309 comma_opt -> /* empty */ +rule 310 comma_opt -> ';' +rule 311 qualified_identifier -> IDENTIFIER +rule 312 qualified_identifier -> qualifier IDENTIFIER +rule 313 qualifier -> IDENTIFIER '.' +rule 314 qualifier -> qualifier IDENTIFIER '.' +rule 315 namespace_body -> '{' using_directives_opt namespace_member_declarations_opt '}' +rule 316 using_directives -> using_directive +rule 317 using_directives -> using_directives using_directive +rule 318 using_directive -> using_alias_directive +rule 319 using_directive -> using_namespace_directive +rule 320 using_alias_directive -> USING IDENTIFIER '=' qualified_identifier ';' +rule 321 using_namespace_directive -> USING namespace_name ';' +rule 322 namespace_member_declarations -> namespace_member_declaration +rule 323 namespace_member_declarations -> namespace_member_declarations namespace_member_declaration +rule 324 namespace_member_declaration -> namespace_declaration +rule 325 namespace_member_declaration -> type_declaration +rule 326 type_declaration -> class_declaration +rule 327 type_declaration -> struct_declaration +rule 328 type_declaration -> interface_declaration +rule 329 type_declaration -> enum_declaration +rule 330 type_declaration -> delegate_declaration +rule 331 modifiers_opt -> /* empty */ +rule 332 modifiers_opt -> modifiers +rule 333 modifiers -> modifier +rule 334 modifiers -> modifiers modifier +rule 335 modifier -> ABSTRACT +rule 336 modifier -> EXTERN +rule 337 modifier -> INTERNAL +rule 338 modifier -> NEW +rule 339 modifier -> OVERRIDE +rule 340 modifier -> PRIVATE +rule 341 modifier -> PROTECTED +rule 342 modifier -> PUBLIC +rule 343 modifier -> READONLY +rule 344 modifier -> SEALED +rule 345 modifier -> STATIC +rule 346 modifier -> UNSAFE +rule 347 modifier -> VIRTUAL +rule 348 modifier -> VOLATILE +rule 349 modifier -> PARTIAL +rule 350 @6 -> /* empty */ +rule 351 class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt +rule 352 class_base_opt -> /* empty */ +rule 353 class_base_opt -> class_base +rule 354 class_base -> ':' interface_type_list +rule 355 interface_type_list -> type_name +rule 356 interface_type_list -> interface_type_list COMMA type_name +rule 357 class_body -> '{' class_member_declarations_opt '}' +rule 358 class_member_declarations_opt -> /* empty */ +rule 359 class_member_declarations_opt -> class_member_declarations +rule 360 class_member_declarations -> class_member_declaration +rule 361 class_member_declarations -> class_member_declarations class_member_declaration +rule 362 class_member_declaration -> constant_declaration +rule 363 class_member_declaration -> field_declaration +rule 364 class_member_declaration -> method_declaration +rule 365 class_member_declaration -> property_declaration +rule 366 class_member_declaration -> event_declaration +rule 367 class_member_declaration -> indexer_declaration +rule 368 class_member_declaration -> operator_declaration +rule 369 class_member_declaration -> constructor_declaration +rule 370 class_member_declaration -> destructor_declaration +rule 371 class_member_declaration -> type_declaration +rule 372 constant_declaration -> attributes_opt modifiers_opt CONST type constant_declarators ';' +rule 373 field_declaration -> attributes_opt modifiers_opt type variable_declarators ';' +rule 374 method_declaration -> method_header method_body +rule 375 method_header -> attributes_opt modifiers_opt type qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' +rule 376 method_header -> attributes_opt modifiers_opt VOID qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' +rule 377 name_list -> IDENTIFIER +rule 378 name_list -> name_list COMMA IDENTIFIER +rule 379 opt_generic_fct -> /* empty */ +rule 380 opt_generic_fct -> GEN_LT name_list GEN_GT +rule 381 formal_parameter_list_opt -> /* empty */ +rule 382 formal_parameter_list_opt -> formal_parameter_list +rule 383 return_type -> type +rule 384 return_type -> VOID +rule 385 method_body -> block +rule 386 method_body -> ';' +rule 387 formal_parameter_list -> formal_parameter +rule 388 formal_parameter_list -> formal_parameter_list COMMA formal_parameter +rule 389 formal_parameter -> fixed_parameter +rule 390 formal_parameter -> parameter_array +rule 391 fixed_parameter -> attributes_opt parameter_modifier_opt type IDENTIFIER fixed_parameter_opt_default +rule 392 fixed_parameter_opt_default -> /* empty */ +rule 393 fixed_parameter_opt_default -> '=' expression +rule 394 parameter_modifier_opt -> /* empty */ +rule 395 parameter_modifier_opt -> REF +rule 396 parameter_modifier_opt -> OUT +rule 397 parameter_array -> attributes_opt PARAMS type IDENTIFIER +rule 398 property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset +rule 399 accessor_declarations -> get_accessor_declaration set_accessor_declaration_opt +rule 400 accessor_declarations -> set_accessor_declaration get_accessor_declaration_opt +rule 401 accessor_declarations -> /* empty */ +rule 402 set_accessor_declaration_opt -> /* empty */ +rule 403 set_accessor_declaration_opt -> set_accessor_declaration +rule 404 get_accessor_declaration_opt -> /* empty */ +rule 405 get_accessor_declaration_opt -> get_accessor_declaration +rule 406 get_accessor_declaration -> attributes_opt GET EXIT_getset accessor_body ENTER_getset +rule 407 set_accessor_declaration -> attributes_opt SET EXIT_getset accessor_body ENTER_getset +rule 408 accessor_body -> block +rule 409 accessor_body -> ';' +rule 410 event_declaration -> attributes_opt modifiers_opt EVENT type variable_declarators ';' +rule 411 event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl +rule 412 event_accessor_declarations -> add_accessor_declaration remove_accessor_declaration +rule 413 event_accessor_declarations -> remove_accessor_declaration add_accessor_declaration +rule 414 add_accessor_declaration -> attributes_opt ADD EXIT_accessor_decl block ENTER_accessor_decl +rule 415 remove_accessor_declaration -> attributes_opt REMOVE EXIT_accessor_decl block ENTER_accessor_decl +rule 416 indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset +rule 417 indexer_declarator -> type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET +rule 418 indexer_declarator -> type qualified_this LEFT_BRACKET formal_parameter_list RIGHT_BRACKET +rule 419 qualified_this -> qualifier THIS +rule 420 operator_declaration -> attributes_opt modifiers_opt operator_declarator operator_body +rule 421 operator_declarator -> overloadable_operator_declarator +rule 422 operator_declarator -> conversion_operator_declarator +rule 423 overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER ')' +rule 424 overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER ')' +rule 425 overloadable_operator -> '+' +rule 426 overloadable_operator -> '-' +rule 427 overloadable_operator -> '!' +rule 428 overloadable_operator -> '~' +rule 429 overloadable_operator -> PLUSPLUS +rule 430 overloadable_operator -> MINUSMINUS +rule 431 overloadable_operator -> TRUE +rule 432 overloadable_operator -> FALSE +rule 433 overloadable_operator -> '*' +rule 434 overloadable_operator -> '/' +rule 435 overloadable_operator -> '%' +rule 436 overloadable_operator -> '&' +rule 437 overloadable_operator -> '|' +rule 438 overloadable_operator -> '^' +rule 439 overloadable_operator -> LTLT +rule 440 overloadable_operator -> GTGT +rule 441 overloadable_operator -> EQEQ +rule 442 overloadable_operator -> NOTEQ +rule 443 overloadable_operator -> GT +rule 444 overloadable_operator -> LT +rule 445 overloadable_operator -> GEQ +rule 446 overloadable_operator -> LEQ +rule 447 conversion_operator_declarator -> IMPLICIT OPERATOR type '(' type IDENTIFIER ')' +rule 448 conversion_operator_declarator -> EXPLICIT OPERATOR type '(' type IDENTIFIER ')' +rule 449 constructor_declaration -> attributes_opt modifiers_opt constructor_declarator constructor_body +rule 450 constructor_declarator -> IDENTIFIER '(' formal_parameter_list_opt ')' constructor_initializer_opt +rule 451 constructor_initializer_opt -> /* empty */ +rule 452 constructor_initializer_opt -> constructor_initializer +rule 453 constructor_initializer -> ':' BASE '(' argument_list_opt ')' +rule 454 constructor_initializer -> ':' THIS '(' argument_list_opt ')' +rule 455 destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER '(' ')' block +rule 456 operator_body -> block +rule 457 operator_body -> ';' +rule 458 constructor_body -> block +rule 459 constructor_body -> ';' +rule 460 @7 -> /* empty */ +rule 461 struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt +rule 462 struct_interfaces_opt -> /* empty */ +rule 463 struct_interfaces_opt -> struct_interfaces +rule 464 struct_interfaces -> ':' interface_type_list +rule 465 struct_body -> '{' struct_member_declarations_opt '}' +rule 466 struct_member_declarations_opt -> /* empty */ +rule 467 struct_member_declarations_opt -> struct_member_declarations +rule 468 struct_member_declarations -> struct_member_declaration +rule 469 struct_member_declarations -> struct_member_declarations struct_member_declaration +rule 470 struct_member_declaration -> constant_declaration +rule 471 struct_member_declaration -> field_declaration +rule 472 struct_member_declaration -> method_declaration +rule 473 struct_member_declaration -> property_declaration +rule 474 struct_member_declaration -> event_declaration +rule 475 struct_member_declaration -> indexer_declaration +rule 476 struct_member_declaration -> operator_declaration +rule 477 struct_member_declaration -> constructor_declaration +rule 478 struct_member_declaration -> type_declaration +rule 479 @8 -> /* empty */ +rule 480 array_initializer -> '{' @8 variable_initializer_list_opt '}' +rule 481 variable_initializer_list_opt -> /* empty */ +rule 482 variable_initializer_list_opt -> variable_initializer_list opt_comma +rule 483 opt_comma -> COMMA +rule 484 opt_comma -> /* empty */ +rule 485 variable_initializer_list -> variable_initializer +rule 486 variable_initializer_list -> variable_initializer_list COMMA variable_initializer +rule 487 @9 -> /* empty */ +rule 488 interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt +rule 489 interface_base_opt -> /* empty */ +rule 490 interface_base_opt -> interface_base +rule 491 interface_base -> ':' interface_type_list +rule 492 interface_body -> '{' interface_member_declarations_opt '}' +rule 493 interface_member_declarations_opt -> /* empty */ +rule 494 interface_member_declarations_opt -> interface_member_declarations +rule 495 interface_member_declarations -> interface_member_declaration +rule 496 interface_member_declarations -> interface_member_declarations interface_member_declaration +rule 497 interface_member_declaration -> interface_method_declaration +rule 498 interface_member_declaration -> interface_property_declaration +rule 499 interface_member_declaration -> interface_event_declaration +rule 500 interface_member_declaration -> interface_indexer_declaration +rule 501 interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body +rule 502 interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body +rule 503 new_opt -> /* empty */ +rule 504 new_opt -> NEW +rule 505 interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset +rule 506 interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset +rule 507 interface_accessors -> attributes_opt GET interface_empty_body +rule 508 interface_accessors -> attributes_opt SET interface_empty_body +rule 509 interface_accessors -> attributes_opt GET interface_empty_body attributes_opt SET interface_empty_body +rule 510 interface_accessors -> attributes_opt SET interface_empty_body attributes_opt GET interface_empty_body +rule 511 interface_event_declaration -> attributes_opt new_opt EVENT type IDENTIFIER interface_empty_body +rule 512 interface_empty_body -> ';' +rule 513 interface_empty_body -> '{' '}' +rule 514 @10 -> /* empty */ +rule 515 enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt +rule 516 enum_base_opt -> /* empty */ +rule 517 enum_base_opt -> enum_base +rule 518 enum_base -> ':' integral_type +rule 519 enum_body -> '{' enum_member_declarations_opt '}' +rule 520 enum_body -> '{' enum_member_declarations COMMA '}' +rule 521 enum_member_declarations_opt -> /* empty */ +rule 522 enum_member_declarations_opt -> enum_member_declarations +rule 523 enum_member_declarations -> enum_member_declaration +rule 524 enum_member_declarations -> enum_member_declarations COMMA enum_member_declaration +rule 525 enum_member_declaration -> attributes_opt IDENTIFIER +rule 526 enum_member_declaration -> attributes_opt IDENTIFIER '=' constant_expression +rule 527 delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' +rule 528 attributes -> attribute_sections +rule 529 attribute_sections -> attribute_section +rule 530 attribute_sections -> attribute_sections attribute_section +rule 531 attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list RIGHT_BRACKET EXIT_attrib +rule 532 attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET EXIT_attrib +rule 533 attribute_target_specifier_opt -> /* empty */ +rule 534 attribute_target_specifier_opt -> attribute_target_specifier +rule 535 attribute_target_specifier -> attribute_target ':' +rule 536 attribute_target -> ASSEMBLY +rule 537 attribute_target -> FIELD +rule 538 attribute_target -> EVENT +rule 539 attribute_target -> METHOD +rule 540 attribute_target -> MODULE +rule 541 attribute_target -> PARAM +rule 542 attribute_target -> PROPERTY +rule 543 attribute_target -> RETURN +rule 544 attribute_target -> TYPE +rule 545 attribute_list -> attribute +rule 546 attribute_list -> attribute_list COMMA attribute +rule 547 attribute -> attribute_name attribute_arguments_opt +rule 548 attribute_arguments_opt -> /* empty */ +rule 549 attribute_arguments_opt -> attribute_arguments +rule 550 attribute_name -> type_name +rule 551 attribute_arguments -> '(' expression_list_opt ')' +rule 552 ENTER_attrib -> /* empty */ +rule 553 EXIT_attrib -> /* empty */ +rule 554 ENTER_accessor_decl -> /* empty */ +rule 555 EXIT_accessor_decl -> /* empty */ +rule 556 ENTER_getset -> /* empty */ +rule 557 EXIT_getset -> /* empty */ Terminals, with rules where they appear $ (-1) -'!' (33) 102 411 -'%' (37) 129 419 -'&' (38) 94 147 420 -'(' (40) 64 68 69 84 89 90 91 92 95 114 115 116 117 118 119 222 223 - 224 240 241 242 255 275 276 283 284 287 366 367 407 408 431 432 - 434 437 438 439 481 482 506 530 -')' (41) 64 68 69 84 89 90 91 92 95 114 115 116 117 118 119 222 223 - 224 240 241 242 255 275 276 283 284 287 366 367 407 408 431 432 - 434 437 438 439 481 482 506 530 -'*' (42) 36 37 110 115 125 127 417 -'+' (43) 108 131 409 -'-' (45) 109 132 410 -'.' (46) 65 66 67 79 304 305 -'/' (47) 128 418 -':' (58) 157 196 233 234 343 344 345 437 438 447 471 497 514 -';' (59) 195 197 198 212 241 242 261 262 263 264 265 266 269 301 311 - 312 363 364 373 393 394 441 443 492 506 -'<' (60) 137 428 -'=' (61) 159 203 211 290 311 505 -'>' (62) 138 427 -'?' (63) 157 -'^' (94) 149 422 -'{' (123) 190 225 306 348 383 395 400 448 462 463 472 485 486 493 498 - 499 -'|' (124) 151 421 -'}' (125) 190 225 306 348 383 395 400 448 462 463 472 485 486 493 498 - 499 -'~' (126) 103 412 439 +'!' (33) 110 427 +'%' (37) 136 435 +'&' (38) 102 154 436 +'(' (40) 71 72 76 77 92 97 98 99 100 103 122 123 124 125 126 230 233 + 249 250 251 264 284 291 292 295 375 376 423 424 447 448 450 453 + 454 455 501 502 527 551 +')' (41) 71 72 76 77 92 97 98 99 100 103 122 123 124 125 126 230 233 + 249 250 251 264 284 291 292 295 375 376 423 424 447 448 450 453 + 454 455 501 502 527 551 +'*' (42) 41 42 118 123 132 134 433 +'+' (43) 116 138 425 +'-' (45) 117 139 426 +'.' (46) 73 74 87 313 314 +'/' (47) 135 434 +':' (58) 55 164 203 242 243 354 453 454 464 491 518 535 +';' (59) 202 204 205 219 250 251 270 271 272 273 274 275 278 310 320 + 321 372 373 386 409 410 457 459 512 527 +'=' (61) 166 210 218 298 320 393 526 +'?' (63) 164 +'^' (94) 156 438 +'{' (123) 197 234 315 357 398 411 416 465 480 492 505 506 513 519 520 +'|' (124) 158 437 +'}' (125) 197 234 315 357 398 411 416 465 480 492 505 506 513 519 520 +'~' (126) 111 428 455 error (256) -RANK_SPECIFIER (258) 43 -IDENTIFIER (259) 65 66 67 79 93 196 202 203 211 255 263 279 290 302 - 303 304 305 311 340 378 382 407 408 431 432 434 439 444 468 481 - 482 485 491 494 504 505 506 -INTEGER_LITERAL (260) 2 -REAL_LITERAL (261) 3 -CHARACTER_LITERAL (262) 4 -STRING_LITERAL (263) 5 -ABSTRACT (264) 326 -AS (265) 142 -BASE (266) 79 80 437 -BOOL (267) 19 -BREAK (268) 261 -BYTE (269) 24 -CASE (270) 233 264 -CATCH (271) 275 276 277 -CHAR (272) 31 -CHECKED (273) 91 281 -CLASS (274) 340 -CONST (275) 208 363 -CONTINUE (276) 262 -DECIMAL (277) 22 -DEFAULT (278) 234 265 -DELEGATE (279) 506 -DO (280) 241 -DOUBLE (281) 33 -ELSE (282) 223 -ENUM (283) 494 -EVENT (284) 394 395 491 517 -EXPLICIT (285) 432 -EXTERN (286) 327 -FALSE (287) 8 416 -FINALLY (288) 280 -FIXED (289) 287 -FLOAT (290) 32 -FOR (291) 242 -FOREACH (292) 255 -GOTO (293) 263 264 265 -IF (294) 222 223 -IMPLICIT (295) 431 -IN (296) 255 -INT (297) 27 -INTERFACE (298) 468 -INTERNAL (299) 328 -IS (300) 141 -LOCK (301) 283 -LONG (302) 29 -NAMESPACE (303) 299 -NEW (304) 84 85 86 329 484 -NULL_LITERAL (305) 6 -OBJECT (306) 34 -OPERATOR (307) 407 408 431 432 -OUT (308) 49 381 -OVERRIDE (309) 330 -PARAMS (310) 382 -PRIVATE (311) 331 -PROTECTED (312) 332 -PUBLIC (313) 333 -READONLY (314) 334 -REF (315) 48 380 -RETURN (316) 266 522 -SBYTE (317) 23 -SEALED (318) 335 -SHORT (319) 25 -SIZEOF (320) 95 -STACKALLOC (321) 207 -STATIC (322) 336 -STRING (323) 35 -STRUCT (324) 444 -SWITCH (325) 224 -THIS (326) 78 401 403 438 486 -THROW (327) 269 -TRUE (328) 7 415 -TRY (329) 270 271 272 -TYPEOF (330) 89 90 -UINT (331) 28 -ULONG (332) 30 -UNCHECKED (333) 92 282 -UNSAFE (334) 239 337 -USHORT (335) 26 -USING (336) 284 311 312 -VIRTUAL (337) 338 -VOID (338) 37 90 119 367 371 482 -VOLATILE (339) 339 -WHILE (340) 240 241 -ASSEMBLY (341) 515 -FIELD (342) 516 -METHOD (343) 518 -MODULE (344) 519 -PARAM (345) 520 -PROPERTY (346) 521 -TYPE (347) 523 -GET (348) 390 487 489 490 -SET (349) 391 488 489 490 -ADD (350) 398 -REMOVE (351) 399 -COMMA (352) 46 77 201 210 254 289 345 347 375 408 463 467 499 503 511 - 525 -LEFT_BRACKET (353) 72 73 80 85 207 401 402 486 510 511 -RIGHT_BRACKET (354) 72 73 80 85 207 401 402 486 510 511 -PLUSEQ (355) 160 -MINUSEQ (356) 161 -STAREQ (357) 162 -DIVEQ (358) 163 -MODEQ (359) 164 -XOREQ (360) 165 -ANDEQ (361) 166 -OREQ (362) 167 -LTLT (363) 134 423 -GTGT (364) 135 424 -GTGTEQ (365) 168 -LTLTEQ (366) 169 -EQEQ (367) 144 425 -NOTEQ (368) 145 426 -LEQ (369) 139 430 -GEQ (370) 140 429 -ANDAND (371) 153 -OROR (372) 155 -PLUSPLUS (373) 81 105 413 -MINUSMINUS (374) 82 106 414 -ARROW (375) 93 +THEN (258) +ELSE (259) 231 +RANK_SPECIFIER (260) 48 +IDENTIFIER (261) 55 73 74 87 101 203 209 210 218 264 272 287 298 311 + 312 313 314 320 351 377 378 391 397 423 424 447 448 450 455 461 + 488 501 502 505 511 515 525 526 527 +INTEGER_LITERAL (262) 2 +REAL_LITERAL (263) 3 +CHARACTER_LITERAL (264) 4 +STRING_LITERAL (265) 5 +ABSTRACT (266) 335 +AS (267) 149 +BASE (268) 87 88 453 +BOOL (269) 26 +BREAK (270) 270 +BYTE (271) 31 +CASE (272) 242 273 +CATCH (273) 284 285 +CHAR (274) 38 +CHECKED (275) 99 289 +CLASS (276) 351 +CONST (277) 215 372 +CONTINUE (278) 271 +DECIMAL (279) 29 +DEFAULT (280) 243 274 +DELEGATE (281) 71 527 +DO (282) 250 +DOUBLE (283) 40 +ENUM (284) 515 +EVENT (285) 410 411 511 538 +EXPLICIT (286) 448 +EXTERN (287) 336 +FALSE (288) 8 432 +FINALLY (289) 288 +FIXED (290) 295 +FLOAT (291) 39 +FOR (292) 251 +FOREACH (293) 264 +GOTO (294) 272 273 274 +IF (295) 229 +IMPLICIT (296) 447 +IN (297) 264 +INT (298) 34 +INTERFACE (299) 488 +INTERNAL (300) 337 +IS (301) 148 +LOCK (302) 291 +LONG (303) 36 +NAMESPACE (304) 308 +NEW (305) 92 93 94 338 504 +NULL_LITERAL (306) 6 +OPERATOR (307) 423 424 447 448 +OUT (308) 54 396 +OVERRIDE (309) 339 +PARAMS (310) 397 +PARTIAL (311) 349 +PRIVATE (312) 340 +PROTECTED (313) 341 +PUBLIC (314) 342 +READONLY (315) 343 +REF (316) 53 395 +RETURN (317) 275 543 +SBYTE (318) 30 +SEALED (319) 344 +SHORT (320) 32 +SIZEOF (321) 103 +STACKALLOC (322) 214 +STATIC (323) 345 +STRUCT (324) 461 +SWITCH (325) 233 +THIS (326) 86 417 419 454 506 +THROW (327) 278 +TRUE (328) 7 431 +TRY (329) 279 280 281 +TYPEOF (330) 97 98 +UINT (331) 35 +ULONG (332) 37 +UNCHECKED (333) 100 290 +UNSAFE (334) 248 346 +USHORT (335) 33 +USING (336) 292 320 321 +VIRTUAL (337) 347 +VOID (338) 42 98 126 376 384 502 +VOLATILE (339) 348 +WHILE (340) 249 250 +STRING (341) +OBJECT (342) +GEN_LT (343) 13 380 +GEN_GT (344) 13 380 +ASSEMBLY (345) 536 +FIELD (346) 537 +METHOD (347) 539 +MODULE (348) 540 +PARAM (349) 541 +PROPERTY (350) 542 +TYPE (351) 544 +GET (352) 406 507 509 510 +SET (353) 407 508 509 510 +ADD (354) 414 +REMOVE (355) 415 +COMMA (356) 18 51 85 208 217 263 297 356 378 388 424 483 486 520 524 + 532 546 +LEFT_BRACKET (357) 80 81 88 93 214 417 418 506 531 532 +RIGHT_BRACKET (358) 80 81 88 93 214 417 418 506 531 532 +GT (359) 145 443 +GTGT (360) 142 440 +LT (361) 144 444 +PLUSEQ (362) 167 +MINUSEQ (363) 168 +STAREQ (364) 169 +DIVEQ (365) 170 +MODEQ (366) 171 +XOREQ (367) 172 +ANDEQ (368) 173 +OREQ (369) 174 +LTLT (370) 141 439 +GTGTEQ (371) 175 +LTLTEQ (372) 176 +EQEQ (373) 151 441 +NOTEQ (374) 152 442 +LEQ (375) 146 446 +GEQ (376) 147 445 +ANDAND (377) 160 +OROR (378) 162 +PLUSPLUS (379) 89 113 429 +MINUSMINUS (380) 90 114 430 +ARROW (381) 101 Nonterminals, with rules where they appear -literal (142) - on left: 1 2 3 4 5 6, on right: 52 -boolean_literal (143) +literal (146) + on left: 1 2 3 4 5 6, on right: 58 +boolean_literal (147) on left: 7 8, on right: 1 -namespace_name (144) - on left: 9, on right: 312 -type_name (145) - on left: 10, on right: 14 276 346 347 529 -type (146) - on left: 11 12, on right: 36 84 89 95 141 142 199 207 208 255 287 - 363 364 366 370 378 382 383 394 395 401 402 407 408 431 432 481 - 485 486 491 -non_array_type (147) - on left: 13 14, on right: 11 85 -simple_type (148) - on left: 15 16 17, on right: 13 39 -primitive_type (149) - on left: 18 19, on right: 15 66 117 -numeric_type (150) - on left: 20 21 22, on right: 18 -integral_type (151) - on left: 23 24 25 26 27 28 29 30 31, on right: 20 497 -floating_point_type (152) - on left: 32 33, on right: 21 -class_type (153) - on left: 34 35, on right: 16 67 118 275 343 345 -pointer_type (154) - on left: 36 37, on right: 17 -array_type (155) - on left: 38 39 40, on right: 12 38 86 -rank_specifiers_opt (156) - on left: 41 42, on right: 42 85 -rank_specifier (157) - on left: 43, on right: 38 39 40 42 116 124 -variable_reference (158) - on left: 44, on right: 48 49 -argument_list (159) - on left: 45 46, on right: 46 71 -argument (160) - on left: 47 48 49, on right: 45 46 -primary_expression (161) - on left: 50 51, on right: 65 72 96 -primary_expression_no_parenthesis (162) - on left: 52 53 54 55 56 57 58 59 60 61 62 63, on right: 51 68 -parenthesized_expression (163) - on left: 64, on right: 50 -member_access (164) - on left: 65 66 67, on right: 54 -invocation_expression (165) - on left: 68 69, on right: 55 213 -argument_list_opt (166) - on left: 70 71, on right: 68 69 84 437 438 -element_access (167) - on left: 72 73, on right: 56 -expression_list_opt (168) - on left: 74 75, on right: 530 -expression_list (169) - on left: 76 77, on right: 72 73 75 77 80 85 -this_access (170) - on left: 78, on right: 57 -base_access (171) - on left: 79 80, on right: 58 -post_increment_expression (172) - on left: 81, on right: 98 216 -post_decrement_expression (173) - on left: 82, on right: 99 217 -new_expression (174) - on left: 83, on right: 59 -object_creation_expression (175) - on left: 84, on right: 83 214 -array_creation_expression (176) - on left: 85 86, on right: 53 -array_initializer_opt (177) - on left: 87 88, on right: 85 -typeof_expression (178) - on left: 89 90, on right: 60 -checked_expression (179) - on left: 91, on right: 62 -unchecked_expression (180) - on left: 92, on right: 63 -pointer_member_access (181) - on left: 93, on right: 100 -addressof_expression (182) - on left: 94, on right: 113 -sizeof_expression (183) - on left: 95, on right: 61 -postfix_expression (184) - on left: 96 97 98 99 100, on right: 81 82 93 101 -unary_expression_not_plusminus (185) - on left: 101 102 103 104, on right: 107 114 -pre_increment_expression (186) - on left: 105, on right: 111 218 -pre_decrement_expression (187) - on left: 106, on right: 112 219 -unary_expression (188) - on left: 107 108 109 110 111 112 113, on right: 94 102 103 105 - 106 108 109 110 115 116 117 118 119 126 127 128 129 158 -cast_expression (189) - on left: 114 115 116 117 118 119, on right: 104 -type_quals_opt (190) - on left: 120 121, on right: 116 117 118 119 -type_quals (191) - on left: 122 123, on right: 121 123 -type_qual (192) - on left: 124 125, on right: 122 123 -multiplicative_expression (193) - on left: 126 127 128 129, on right: 115 127 128 129 130 131 132 -additive_expression (194) - on left: 130 131 132, on right: 131 132 133 134 135 -shift_expression (195) - on left: 133 134 135, on right: 134 135 136 137 138 139 140 -relational_expression (196) - on left: 136 137 138 139 140 141 142, on right: 137 138 139 140 - 141 142 143 144 145 -equality_expression (197) - on left: 143 144 145, on right: 144 145 146 147 -and_expression (198) - on left: 146 147, on right: 147 148 149 -exclusive_or_expression (199) - on left: 148 149, on right: 149 150 151 -inclusive_or_expression (200) - on left: 150 151, on right: 151 152 153 -conditional_and_expression (201) - on left: 152 153, on right: 153 154 155 -conditional_or_expression (202) - on left: 154 155, on right: 155 156 157 -conditional_expression (203) - on left: 156 157, on right: 170 -assignment (204) - on left: 158, on right: 171 215 -assignment_operator (205) - on left: 159 160 161 162 163 164 165 166 167 168 169, - on right: 158 -expression (206) - on left: 170 171, on right: 44 47 64 76 77 91 92 114 157 158 172 - 173 204 207 224 255 268 283 286 290 -constant_expression (207) - on left: 172, on right: 211 233 264 505 -boolean_expression (208) - on left: 173, on right: 222 223 240 241 251 -statement (209) - on left: 174 175 176, on right: 193 194 196 -embedded_statement (210) - on left: 177 178 179 180 181 182 183 184 185 186 187 188 189, - on right: 176 222 223 240 241 242 255 283 284 287 -block (211) - on left: 190, on right: 177 239 270 271 272 275 276 277 280 281 - 282 372 392 398 399 439 440 442 -statement_list_opt (212) - on left: 191 192, on right: 190 -statement_list (213) - on left: 193 194, on right: 192 194 230 -empty_statement (214) - on left: 195, on right: 178 -labeled_statement (215) - on left: 196, on right: 174 -declaration_statement (216) - on left: 197 198, on right: 175 -local_variable_declaration (217) - on left: 199, on right: 197 249 285 -variable_declarators (218) - on left: 200 201, on right: 199 201 364 394 -variable_declarator (219) - on left: 202 203, on right: 200 201 -variable_initializer (220) - on left: 204 205 206, on right: 203 466 467 -stackalloc_initializer (221) - on left: 207, on right: 206 -local_constant_declaration (222) - on left: 208, on right: 198 -constant_declarators (223) - on left: 209 210, on right: 208 210 363 -constant_declarator (224) - on left: 211, on right: 209 210 -expression_statement (225) - on left: 212, on right: 179 -statement_expression (226) - on left: 213 214 215 216 217 218 219, on right: 212 253 254 -selection_statement (227) - on left: 220 221, on right: 180 -if_statement (228) - on left: 222 223, on right: 220 -switch_statement (229) - on left: 224, on right: 221 -switch_block (230) - on left: 225, on right: 224 -switch_sections_opt (231) - on left: 226 227, on right: 225 -switch_sections (232) - on left: 228 229, on right: 227 229 -switch_section (233) - on left: 230, on right: 228 229 -switch_labels (234) - on left: 231 232, on right: 230 232 -switch_label (235) - on left: 233 234, on right: 231 232 -iteration_statement (236) - on left: 235 236 237 238, on right: 181 -unsafe_statement (237) - on left: 239, on right: 188 -while_statement (238) - on left: 240, on right: 235 -do_statement (239) - on left: 241, on right: 236 -for_statement (240) - on left: 242, on right: 237 -for_initializer_opt (241) - on left: 243 244, on right: 242 -for_condition_opt (242) - on left: 245 246, on right: 242 -for_iterator_opt (243) - on left: 247 248, on right: 242 -for_initializer (244) - on left: 249 250, on right: 244 -for_condition (245) +namespace_name (148) + on left: 9, on right: 321 +type_name (149) + on left: 10, on right: 22 284 355 356 550 +opt_generic (150) + on left: 11 13, on right: 15 76 +@1 (151) + on left: 12, on right: 13 +qualified_identifier_opt_generic (152) + on left: 15, on right: 10 77 +@2 (153) + on left: 14, on right: 15 +genericlist (154) + on left: 16 18, on right: 13 18 +@3 (155) + on left: 17, on right: 18 +type (156) + on left: 19 20, on right: 16 18 41 92 97 103 148 149 206 214 215 + 264 295 372 373 375 383 391 397 398 410 411 417 418 423 424 447 + 448 501 505 506 511 +non_array_type (157) + on left: 21 22, on right: 19 93 +simple_type (158) + on left: 23 24, on right: 21 44 +primitive_type (159) + on left: 25 26, on right: 23 74 125 +numeric_type (160) + on left: 27 28 29, on right: 25 +integral_type (161) + on left: 30 31 32 33 34 35 36 37 38, on right: 27 518 +floating_point_type (162) + on left: 39 40, on right: 28 +pointer_type (163) + on left: 41 42, on right: 24 +array_type (164) + on left: 43 44 45, on right: 20 43 94 +rank_specifiers_opt (165) + on left: 46 47, on right: 47 93 +rank_specifier (166) + on left: 48, on right: 43 44 45 47 124 131 +variable_reference (167) + on left: 49, on right: 53 54 +argument_list (168) + on left: 50 51, on right: 51 79 +argument (169) + on left: 52 53 54 55, on right: 50 51 55 +primary_expression (170) + on left: 56 57, on right: 73 80 104 +primary_expression_no_parenthesis (171) + on left: 58 59 60 61 62 63 64 65 66 67 68 69 70, + on right: 57 76 +delegate_expression (172) + on left: 71, on right: 66 +parenthesized_expression (173) + on left: 72, on right: 56 +member_access (174) + on left: 73 74, on right: 60 +invocation_expression (175) + on left: 76 77, on right: 61 220 +@4 (176) + on left: 75, on right: 76 +argument_list_opt (177) + on left: 78 79, on right: 76 77 92 453 454 +element_access (178) + on left: 80 81, on right: 62 +expression_list_opt (179) + on left: 82 83, on right: 551 +expression_list (180) + on left: 84 85, on right: 80 81 83 85 88 93 +this_access (181) + on left: 86, on right: 63 +base_access (182) + on left: 87 88, on right: 64 +post_increment_expression (183) + on left: 89, on right: 106 223 +post_decrement_expression (184) + on left: 90, on right: 107 224 +new_expression (185) + on left: 91, on right: 65 +object_creation_expression (186) + on left: 92, on right: 91 221 +array_creation_expression (187) + on left: 93 94, on right: 59 +array_initializer_opt (188) + on left: 95 96, on right: 93 +typeof_expression (189) + on left: 97 98, on right: 67 +checked_expression (190) + on left: 99, on right: 69 +unchecked_expression (191) + on left: 100, on right: 70 +pointer_member_access (192) + on left: 101, on right: 108 +addressof_expression (193) + on left: 102, on right: 121 +sizeof_expression (194) + on left: 103, on right: 68 +postfix_expression (195) + on left: 104 105 106 107 108, on right: 89 90 101 109 +unary_expression_not_plusminus (196) + on left: 109 110 111 112, on right: 115 122 +pre_increment_expression (197) + on left: 113, on right: 119 225 +pre_decrement_expression (198) + on left: 114, on right: 120 226 +unary_expression (199) + on left: 115 116 117 118 119 120 121, on right: 102 110 111 113 + 114 116 117 118 123 124 125 126 133 134 135 136 165 +cast_expression (200) + on left: 122 123 124 125 126, on right: 112 +type_quals_opt (201) + on left: 127 128, on right: 124 125 126 +type_quals (202) + on left: 129 130, on right: 128 130 +type_qual (203) + on left: 131 132, on right: 129 130 +multiplicative_expression (204) + on left: 133 134 135 136, on right: 123 134 135 136 137 138 139 +additive_expression (205) + on left: 137 138 139, on right: 138 139 140 141 142 +shift_expression (206) + on left: 140 141 142, on right: 141 142 143 144 145 146 147 +relational_expression (207) + on left: 143 144 145 146 147 148 149, on right: 144 145 146 147 + 148 149 150 151 152 +equality_expression (208) + on left: 150 151 152, on right: 151 152 153 154 +and_expression (209) + on left: 153 154, on right: 154 155 156 +exclusive_or_expression (210) + on left: 155 156, on right: 156 157 158 +inclusive_or_expression (211) + on left: 157 158, on right: 158 159 160 +conditional_and_expression (212) + on left: 159 160, on right: 160 161 162 +conditional_or_expression (213) + on left: 161 162, on right: 162 163 164 +conditional_expression (214) + on left: 163 164, on right: 177 +assignment (215) + on left: 165, on right: 178 222 +assignment_operator (216) + on left: 166 167 168 169 170 171 172 173 174 175 176, + on right: 165 +expression (217) + on left: 177 178, on right: 49 52 72 84 85 99 100 122 164 165 179 + 180 211 214 233 264 277 291 294 298 393 +constant_expression (218) + on left: 179, on right: 218 242 273 526 +boolean_expression (219) + on left: 180, on right: 230 249 250 260 +statement (220) + on left: 181 182 183, on right: 200 201 203 +embedded_statement (221) + on left: 184 185 186 187 188 189 190 191 192 193 194 195 196, + on right: 183 230 231 249 250 251 264 291 292 295 +block (222) + on left: 197, on right: 71 184 248 279 280 281 284 285 288 289 + 290 385 408 414 415 455 456 458 +statement_list_opt (223) + on left: 198 199, on right: 197 +statement_list (224) + on left: 200 201, on right: 199 201 239 +empty_statement (225) + on left: 202, on right: 185 +labeled_statement (226) + on left: 203, on right: 181 +declaration_statement (227) + on left: 204 205, on right: 182 +local_variable_declaration (228) + on left: 206, on right: 204 258 293 +variable_declarators (229) + on left: 207 208, on right: 206 208 373 410 +variable_declarator (230) + on left: 209 210, on right: 207 208 +variable_initializer (231) + on left: 211 212 213, on right: 210 485 486 +stackalloc_initializer (232) + on left: 214, on right: 213 +local_constant_declaration (233) + on left: 215, on right: 205 +constant_declarators (234) + on left: 216 217, on right: 215 217 372 +constant_declarator (235) + on left: 218, on right: 216 217 +expression_statement (236) + on left: 219, on right: 186 +statement_expression (237) + on left: 220 221 222 223 224 225 226, on right: 219 262 263 +selection_statement (238) + on left: 227 228, on right: 187 +if_statement (239) + on left: 229, on right: 227 +ifpart (240) + on left: 230, on right: 229 +opt_else (241) + on left: 231 232, on right: 229 +switch_statement (242) + on left: 233, on right: 228 +switch_block (243) + on left: 234, on right: 233 +switch_sections_opt (244) + on left: 235 236, on right: 234 +switch_sections (245) + on left: 237 238, on right: 236 238 +switch_section (246) + on left: 239, on right: 237 238 +switch_labels (247) + on left: 240 241, on right: 239 241 +switch_label (248) + on left: 242 243, on right: 240 241 +iteration_statement (249) + on left: 244 245 246 247, on right: 188 +unsafe_statement (250) + on left: 248, on right: 195 +while_statement (251) + on left: 249, on right: 244 +do_statement (252) + on left: 250, on right: 245 +for_statement (253) on left: 251, on right: 246 -for_iterator (246) - on left: 252, on right: 248 -statement_expression_list (247) - on left: 253 254, on right: 250 252 254 -foreach_statement (248) - on left: 255, on right: 238 -jump_statement (249) - on left: 256 257 258 259 260, on right: 182 -break_statement (250) - on left: 261, on right: 256 -continue_statement (251) - on left: 262, on right: 257 -goto_statement (252) - on left: 263 264 265, on right: 258 -return_statement (253) - on left: 266, on right: 259 -expression_opt (254) - on left: 267 268, on right: 266 269 -throw_statement (255) - on left: 269, on right: 260 -try_statement (256) - on left: 270 271 272, on right: 183 -catch_clauses (257) - on left: 273 274, on right: 270 272 274 -catch_clause (258) - on left: 275 276 277, on right: 273 274 -identifier_opt (259) - on left: 278 279, on right: 275 276 -finally_clause (260) - on left: 280, on right: 271 272 -checked_statement (261) - on left: 281, on right: 184 -unchecked_statement (262) - on left: 282, on right: 185 -lock_statement (263) - on left: 283, on right: 186 -using_statement (264) - on left: 284, on right: 187 -resource_acquisition (265) - on left: 285 286, on right: 284 -fixed_statement (266) - on left: 287, on right: 189 -fixed_pointer_declarators (267) - on left: 288 289, on right: 287 289 -fixed_pointer_declarator (268) - on left: 290, on right: 288 289 -compilation_unit (269) - on left: 291 292 -using_directives_opt (270) - on left: 293 294, on right: 291 292 306 -attributes_opt (271) - on left: 295 296, on right: 291 299 340 363 364 366 367 378 382 - 383 390 391 394 395 398 399 400 404 433 439 444 468 481 482 485 - 486 487 488 489 490 491 494 504 505 506 -namespace_member_declarations_opt (272) - on left: 297 298, on right: 306 -namespace_declaration (273) - on left: 299, on right: 315 -comma_opt (274) - on left: 300 301, on right: 299 340 444 468 494 -qualified_identifier (275) - on left: 302 303, on right: 9 10 40 69 73 97 116 299 311 366 367 - 383 395 -qualifier (276) - on left: 304 305, on right: 303 305 403 -namespace_body (277) - on left: 306, on right: 299 -using_directives (278) - on left: 307 308, on right: 294 308 -using_directive (279) - on left: 309 310, on right: 307 308 -using_alias_directive (280) - on left: 311, on right: 309 -using_namespace_directive (281) - on left: 312, on right: 310 -namespace_member_declarations (282) - on left: 313 314, on right: 292 298 314 -namespace_member_declaration (283) - on left: 315 316, on right: 313 314 -type_declaration (284) - on left: 317 318 319 320 321, on right: 316 362 461 -modifiers_opt (285) - on left: 322 323, on right: 340 363 364 366 367 383 394 395 400 - 404 433 439 444 468 494 506 -modifiers (286) - on left: 324 325, on right: 323 325 -modifier (287) - on left: 326 327 328 329 330 331 332 333 334 335 336 337 338 339 - , on right: 324 325 -class_declaration (288) - on left: 340, on right: 317 -class_base_opt (289) - on left: 341 342, on right: 340 -class_base (290) - on left: 343 344 345, on right: 342 -interface_type_list (291) - on left: 346 347, on right: 344 345 347 447 471 -class_body (292) - on left: 348, on right: 340 -class_member_declarations_opt (293) - on left: 349 350, on right: 348 -class_member_declarations (294) - on left: 351 352, on right: 350 352 -class_member_declaration (295) - on left: 353 354 355 356 357 358 359 360 361 362, - on right: 351 352 -constant_declaration (296) - on left: 363, on right: 353 453 -field_declaration (297) - on left: 364, on right: 354 454 -method_declaration (298) - on left: 365, on right: 355 455 -method_header (299) - on left: 366 367, on right: 365 -formal_parameter_list_opt (300) - on left: 368 369, on right: 366 367 434 481 482 506 -return_type (301) - on left: 370 371, on right: 506 -method_body (302) - on left: 372 373, on right: 365 -formal_parameter_list (303) - on left: 374 375, on right: 369 375 401 402 486 -formal_parameter (304) - on left: 376 377, on right: 374 375 -fixed_parameter (305) - on left: 378, on right: 376 -parameter_modifier_opt (306) - on left: 379 380 381, on right: 378 -parameter_array (307) - on left: 382, on right: 377 -property_declaration (308) - on left: 383, on right: 356 456 -accessor_declarations (309) - on left: 384 385, on right: 383 400 -set_accessor_declaration_opt (310) - on left: 386 387, on right: 384 -get_accessor_declaration_opt (311) - on left: 388 389, on right: 385 -get_accessor_declaration (312) - on left: 390, on right: 384 389 -set_accessor_declaration (313) - on left: 391, on right: 385 387 -accessor_body (314) - on left: 392 393, on right: 390 391 -event_declaration (315) - on left: 394 395, on right: 357 457 -event_accessor_declarations (316) - on left: 396 397, on right: 395 -add_accessor_declaration (317) - on left: 398, on right: 396 397 -remove_accessor_declaration (318) - on left: 399, on right: 396 397 -indexer_declaration (319) - on left: 400, on right: 358 458 -indexer_declarator (320) - on left: 401 402, on right: 400 -qualified_this (321) - on left: 403, on right: 402 -operator_declaration (322) - on left: 404, on right: 359 459 -operator_declarator (323) - on left: 405 406, on right: 404 -overloadable_operator_declarator (324) - on left: 407 408, on right: 405 -overloadable_operator (325) - on left: 409 410 411 412 413 414 415 416 417 418 419 420 421 422 - 423 424 425 426 427 428 429 430, on right: 407 408 -conversion_operator_declarator (326) - on left: 431 432, on right: 406 -constructor_declaration (327) - on left: 433, on right: 360 460 -constructor_declarator (328) - on left: 434, on right: 433 -constructor_initializer_opt (329) - on left: 435 436, on right: 434 -constructor_initializer (330) - on left: 437 438, on right: 436 -destructor_declaration (331) - on left: 439, on right: 361 -operator_body (332) - on left: 440 441, on right: 404 -constructor_body (333) - on left: 442 443, on right: 433 -struct_declaration (334) - on left: 444, on right: 318 -struct_interfaces_opt (335) - on left: 445 446, on right: 444 -struct_interfaces (336) - on left: 447, on right: 446 -struct_body (337) - on left: 448, on right: 444 -struct_member_declarations_opt (338) - on left: 449 450, on right: 448 -struct_member_declarations (339) - on left: 451 452, on right: 450 452 -struct_member_declaration (340) - on left: 453 454 455 456 457 458 459 460 461, on right: 451 452 -array_initializer (341) - on left: 462 463, on right: 86 88 205 -variable_initializer_list_opt (342) - on left: 464 465, on right: 462 -variable_initializer_list (343) - on left: 466 467, on right: 463 465 467 -interface_declaration (344) - on left: 468, on right: 319 -interface_base_opt (345) - on left: 469 470, on right: 468 -interface_base (346) - on left: 471, on right: 470 -interface_body (347) - on left: 472, on right: 468 -interface_member_declarations_opt (348) - on left: 473 474, on right: 472 -interface_member_declarations (349) - on left: 475 476, on right: 474 476 -interface_member_declaration (350) - on left: 477 478 479 480, on right: 475 476 -interface_method_declaration (351) - on left: 481 482, on right: 477 -new_opt (352) - on left: 483 484, on right: 481 482 485 486 491 -interface_property_declaration (353) - on left: 485, on right: 478 -interface_indexer_declaration (354) - on left: 486, on right: 480 -interface_accessors (355) - on left: 487 488 489 490, on right: 485 486 -interface_event_declaration (356) - on left: 491, on right: 479 -interface_empty_body (357) - on left: 492 493, on right: 481 482 487 488 489 490 491 -enum_declaration (358) - on left: 494, on right: 320 -enum_base_opt (359) - on left: 495 496, on right: 494 -enum_base (360) - on left: 497, on right: 496 -enum_body (361) - on left: 498 499, on right: 494 -enum_member_declarations_opt (362) - on left: 500 501, on right: 498 -enum_member_declarations (363) - on left: 502 503, on right: 499 501 503 -enum_member_declaration (364) - on left: 504 505, on right: 502 503 -delegate_declaration (365) - on left: 506, on right: 321 -attributes (366) - on left: 507, on right: 296 -attribute_sections (367) - on left: 508 509, on right: 507 509 -attribute_section (368) - on left: 510 511, on right: 508 509 -attribute_target_specifier_opt (369) - on left: 512 513, on right: 510 511 -attribute_target_specifier (370) - on left: 514, on right: 513 -attribute_target (371) - on left: 515 516 517 518 519 520 521 522 523, on right: 514 -attribute_list (372) - on left: 524 525, on right: 510 511 525 -attribute (373) - on left: 526, on right: 524 525 -attribute_arguments_opt (374) - on left: 527 528, on right: 526 -attribute_name (375) - on left: 529, on right: 526 -attribute_arguments (376) - on left: 530, on right: 528 -ENTER_attrib (377) - on left: 531, on right: 510 511 -EXIT_attrib (378) - on left: 532, on right: 510 511 -ENTER_accessor_decl (379) - on left: 533, on right: 395 398 399 -EXIT_accessor_decl (380) - on left: 534, on right: 395 398 399 -ENTER_getset (381) - on left: 535, on right: 383 390 391 400 485 486 -EXIT_getset (382) - on left: 536, on right: 383 390 391 400 485 486 +for_initializer_opt (254) + on left: 252 253, on right: 251 +for_condition_opt (255) + on left: 254 255, on right: 251 +for_iterator_opt (256) + on left: 256 257, on right: 251 +for_initializer (257) + on left: 258 259, on right: 253 +for_condition (258) + on left: 260, on right: 255 +for_iterator (259) + on left: 261, on right: 257 +statement_expression_list (260) + on left: 262 263, on right: 259 261 263 +foreach_statement (261) + on left: 264, on right: 247 +jump_statement (262) + on left: 265 266 267 268 269, on right: 189 +break_statement (263) + on left: 270, on right: 265 +continue_statement (264) + on left: 271, on right: 266 +goto_statement (265) + on left: 272 273 274, on right: 267 +return_statement (266) + on left: 275, on right: 268 +expression_opt (267) + on left: 276 277, on right: 275 278 +throw_statement (268) + on left: 278, on right: 269 +try_statement (269) + on left: 279 280 281, on right: 190 +catch_clauses (270) + on left: 282 283, on right: 279 281 283 +catch_clause (271) + on left: 284 285, on right: 282 283 +identifier_opt (272) + on left: 286 287, on right: 284 +finally_clause (273) + on left: 288, on right: 280 281 +checked_statement (274) + on left: 289, on right: 191 +unchecked_statement (275) + on left: 290, on right: 192 +lock_statement (276) + on left: 291, on right: 193 +using_statement (277) + on left: 292, on right: 194 +resource_acquisition (278) + on left: 293 294, on right: 292 +fixed_statement (279) + on left: 295, on right: 196 +fixed_pointer_declarators (280) + on left: 296 297, on right: 295 297 +fixed_pointer_declarator (281) + on left: 298, on right: 296 297 +compilation_unit (282) + on left: 299 300 +using_directives_opt (283) + on left: 301 302, on right: 299 300 315 +attributes_opt (284) + on left: 303 304, on right: 299 308 351 372 373 375 376 391 397 + 398 406 407 410 411 414 415 416 420 449 455 461 488 501 502 505 + 506 507 508 509 510 511 515 525 526 527 +namespace_member_declarations_opt (285) + on left: 305 306, on right: 315 +namespace_declaration (286) + on left: 308, on right: 324 +@5 (287) + on left: 307, on right: 308 +comma_opt (288) + on left: 309 310, on right: 308 351 461 488 515 +qualified_identifier (289) + on left: 311 312, on right: 9 15 45 81 105 124 308 320 375 376 + 398 411 +qualifier (290) + on left: 313 314, on right: 312 314 419 +namespace_body (291) + on left: 315, on right: 308 +using_directives (292) + on left: 316 317, on right: 302 317 +using_directive (293) + on left: 318 319, on right: 316 317 +using_alias_directive (294) + on left: 320, on right: 318 +using_namespace_directive (295) + on left: 321, on right: 319 +namespace_member_declarations (296) + on left: 322 323, on right: 300 306 323 +namespace_member_declaration (297) + on left: 324 325, on right: 322 323 +type_declaration (298) + on left: 326 327 328 329 330, on right: 325 371 478 +modifiers_opt (299) + on left: 331 332, on right: 351 372 373 375 376 398 410 411 416 + 420 449 455 461 488 515 527 +modifiers (300) + on left: 333 334, on right: 332 334 +modifier (301) + on left: 335 336 337 338 339 340 341 342 343 344 345 346 347 348 + 349, on right: 333 334 +class_declaration (302) + on left: 351, on right: 326 +@6 (303) + on left: 350, on right: 351 +class_base_opt (304) + on left: 352 353, on right: 351 +class_base (305) + on left: 354, on right: 353 +interface_type_list (306) + on left: 355 356, on right: 354 356 464 491 +class_body (307) + on left: 357, on right: 351 +class_member_declarations_opt (308) + on left: 358 359, on right: 357 +class_member_declarations (309) + on left: 360 361, on right: 359 361 +class_member_declaration (310) + on left: 362 363 364 365 366 367 368 369 370 371, + on right: 360 361 +constant_declaration (311) + on left: 372, on right: 362 470 +field_declaration (312) + on left: 373, on right: 363 471 +method_declaration (313) + on left: 374, on right: 364 472 +method_header (314) + on left: 375 376, on right: 374 +name_list (315) + on left: 377 378, on right: 378 380 +opt_generic_fct (316) + on left: 379 380, on right: 351 375 376 527 +formal_parameter_list_opt (317) + on left: 381 382, on right: 71 375 376 450 501 502 527 +return_type (318) + on left: 383 384, on right: 527 +method_body (319) + on left: 385 386, on right: 374 +formal_parameter_list (320) + on left: 387 388, on right: 382 388 417 418 506 +formal_parameter (321) + on left: 389 390, on right: 387 388 +fixed_parameter (322) + on left: 391, on right: 389 +fixed_parameter_opt_default (323) + on left: 392 393, on right: 391 +parameter_modifier_opt (324) + on left: 394 395 396, on right: 391 +parameter_array (325) + on left: 397, on right: 390 +property_declaration (326) + on left: 398, on right: 365 473 +accessor_declarations (327) + on left: 399 400 401, on right: 398 416 +set_accessor_declaration_opt (328) + on left: 402 403, on right: 399 +get_accessor_declaration_opt (329) + on left: 404 405, on right: 400 +get_accessor_declaration (330) + on left: 406, on right: 399 405 +set_accessor_declaration (331) + on left: 407, on right: 400 403 +accessor_body (332) + on left: 408 409, on right: 406 407 +event_declaration (333) + on left: 410 411, on right: 366 474 +event_accessor_declarations (334) + on left: 412 413, on right: 411 +add_accessor_declaration (335) + on left: 414, on right: 412 413 +remove_accessor_declaration (336) + on left: 415, on right: 412 413 +indexer_declaration (337) + on left: 416, on right: 367 475 +indexer_declarator (338) + on left: 417 418, on right: 416 +qualified_this (339) + on left: 419, on right: 418 +operator_declaration (340) + on left: 420, on right: 368 476 +operator_declarator (341) + on left: 421 422, on right: 420 +overloadable_operator_declarator (342) + on left: 423 424, on right: 421 +overloadable_operator (343) + on left: 425 426 427 428 429 430 431 432 433 434 435 436 437 438 + 439 440 441 442 443 444 445 446, on right: 423 424 +conversion_operator_declarator (344) + on left: 447 448, on right: 422 +constructor_declaration (345) + on left: 449, on right: 369 477 +constructor_declarator (346) + on left: 450, on right: 449 +constructor_initializer_opt (347) + on left: 451 452, on right: 450 +constructor_initializer (348) + on left: 453 454, on right: 452 +destructor_declaration (349) + on left: 455, on right: 370 +operator_body (350) + on left: 456 457, on right: 420 +constructor_body (351) + on left: 458 459, on right: 449 +struct_declaration (352) + on left: 461, on right: 327 +@7 (353) + on left: 460, on right: 461 +struct_interfaces_opt (354) + on left: 462 463, on right: 461 +struct_interfaces (355) + on left: 464, on right: 463 +struct_body (356) + on left: 465, on right: 461 +struct_member_declarations_opt (357) + on left: 466 467, on right: 465 +struct_member_declarations (358) + on left: 468 469, on right: 467 469 +struct_member_declaration (359) + on left: 470 471 472 473 474 475 476 477 478, on right: 468 469 +array_initializer (360) + on left: 480, on right: 94 96 212 +@8 (361) + on left: 479, on right: 480 +variable_initializer_list_opt (362) + on left: 481 482, on right: 480 +opt_comma (363) + on left: 483 484, on right: 482 +variable_initializer_list (364) + on left: 485 486, on right: 482 486 +interface_declaration (365) + on left: 488, on right: 328 +@9 (366) + on left: 487, on right: 488 +interface_base_opt (367) + on left: 489 490, on right: 488 +interface_base (368) + on left: 491, on right: 490 +interface_body (369) + on left: 492, on right: 488 +interface_member_declarations_opt (370) + on left: 493 494, on right: 492 +interface_member_declarations (371) + on left: 495 496, on right: 494 496 +interface_member_declaration (372) + on left: 497 498 499 500, on right: 495 496 +interface_method_declaration (373) + on left: 501 502, on right: 497 +new_opt (374) + on left: 503 504, on right: 501 502 505 506 511 +interface_property_declaration (375) + on left: 505, on right: 498 +interface_indexer_declaration (376) + on left: 506, on right: 500 +interface_accessors (377) + on left: 507 508 509 510, on right: 505 506 +interface_event_declaration (378) + on left: 511, on right: 499 +interface_empty_body (379) + on left: 512 513, on right: 501 502 507 508 509 510 511 +enum_declaration (380) + on left: 515, on right: 329 +@10 (381) + on left: 514, on right: 515 +enum_base_opt (382) + on left: 516 517, on right: 515 +enum_base (383) + on left: 518, on right: 517 +enum_body (384) + on left: 519 520, on right: 515 +enum_member_declarations_opt (385) + on left: 521 522, on right: 519 +enum_member_declarations (386) + on left: 523 524, on right: 520 522 524 +enum_member_declaration (387) + on left: 525 526, on right: 523 524 +delegate_declaration (388) + on left: 527, on right: 330 +attributes (389) + on left: 528, on right: 304 +attribute_sections (390) + on left: 529 530, on right: 528 530 +attribute_section (391) + on left: 531 532, on right: 529 530 +attribute_target_specifier_opt (392) + on left: 533 534, on right: 531 532 +attribute_target_specifier (393) + on left: 535, on right: 534 +attribute_target (394) + on left: 536 537 538 539 540 541 542 543 544, on right: 535 +attribute_list (395) + on left: 545 546, on right: 531 532 546 +attribute (396) + on left: 547, on right: 545 546 +attribute_arguments_opt (397) + on left: 548 549, on right: 547 +attribute_name (398) + on left: 550, on right: 547 +attribute_arguments (399) + on left: 551, on right: 549 +ENTER_attrib (400) + on left: 552, on right: 531 532 +EXIT_attrib (401) + on left: 553, on right: 531 532 +ENTER_accessor_decl (402) + on left: 554, on right: 411 414 415 +EXIT_accessor_decl (403) + on left: 555, on right: 411 414 415 +ENTER_getset (404) + on left: 556, on right: 398 406 407 416 505 506 +EXIT_getset (405) + on left: 557, on right: 398 406 407 416 505 506 state 0 USING shift, and go to state 1 - $default reduce using rule 293 (using_directives_opt) + $default reduce using rule 301 (using_directives_opt) - compilation_unit go to state 911 + compilation_unit go to state 939 using_directives_opt go to state 2 using_directives go to state 3 using_directive go to state 4 @@ -1211,8 +1281,8 @@ state 0 state 1 - using_alias_directive -> USING . IDENTIFIER '=' qualified_identifier ';' (rule 311) - using_namespace_directive -> USING . namespace_name ';' (rule 312) + using_alias_directive -> USING . IDENTIFIER '=' qualified_identifier ';' (rule 320) + using_namespace_directive -> USING . namespace_name ';' (rule 321) IDENTIFIER shift, and go to state 7 @@ -1224,11 +1294,11 @@ state 1 state 2 - compilation_unit -> using_directives_opt . attributes_opt (rule 291) - compilation_unit -> using_directives_opt . namespace_member_declarations (rule 292) + compilation_unit -> using_directives_opt . attributes_opt (rule 299) + compilation_unit -> using_directives_opt . namespace_member_declarations (rule 300) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) attributes_opt go to state 11 namespace_declaration go to state 12 @@ -1249,12 +1319,12 @@ state 2 state 3 - using_directives_opt -> using_directives . (rule 294) - using_directives -> using_directives . using_directive (rule 308) + using_directives_opt -> using_directives . (rule 302) + using_directives -> using_directives . using_directive (rule 317) USING shift, and go to state 1 - $default reduce using rule 294 (using_directives_opt) + $default reduce using rule 302 (using_directives_opt) using_directive go to state 25 using_alias_directive go to state 5 @@ -1264,44 +1334,44 @@ state 3 state 4 - using_directives -> using_directive . (rule 307) + using_directives -> using_directive . (rule 316) - $default reduce using rule 307 (using_directives) + $default reduce using rule 316 (using_directives) state 5 - using_directive -> using_alias_directive . (rule 309) + using_directive -> using_alias_directive . (rule 318) - $default reduce using rule 309 (using_directive) + $default reduce using rule 318 (using_directive) state 6 - using_directive -> using_namespace_directive . (rule 310) + using_directive -> using_namespace_directive . (rule 319) - $default reduce using rule 310 (using_directive) + $default reduce using rule 319 (using_directive) state 7 - qualified_identifier -> IDENTIFIER . (rule 302) - qualifier -> IDENTIFIER . '.' (rule 304) - using_alias_directive -> USING IDENTIFIER . '=' qualified_identifier ';' (rule 311) + qualified_identifier -> IDENTIFIER . (rule 311) + qualifier -> IDENTIFIER . '.' (rule 313) + using_alias_directive -> USING IDENTIFIER . '=' qualified_identifier ';' (rule 320) '.' shift, and go to state 26 '=' shift, and go to state 27 - $default reduce using rule 302 (qualified_identifier) + $default reduce using rule 311 (qualified_identifier) state 8 - using_namespace_directive -> USING namespace_name . ';' (rule 312) + using_namespace_directive -> USING namespace_name . ';' (rule 321) ';' shift, and go to state 28 @@ -1317,8 +1387,8 @@ state 9 state 10 - qualified_identifier -> qualifier . IDENTIFIER (rule 303) - qualifier -> qualifier . IDENTIFIER '.' (rule 305) + qualified_identifier -> qualifier . IDENTIFIER (rule 312) + qualifier -> qualifier . IDENTIFIER '.' (rule 314) IDENTIFIER shift, and go to state 29 @@ -1326,13 +1396,13 @@ state 10 state 11 - compilation_unit -> using_directives_opt attributes_opt . (rule 291) - namespace_declaration -> attributes_opt . NAMESPACE qualified_identifier namespace_body comma_opt (rule 299) - class_declaration -> attributes_opt . modifiers_opt CLASS IDENTIFIER class_base_opt class_body comma_opt (rule 340) - struct_declaration -> attributes_opt . modifiers_opt STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt (rule 444) - interface_declaration -> attributes_opt . modifiers_opt INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt (rule 468) - enum_declaration -> attributes_opt . modifiers_opt ENUM IDENTIFIER enum_base_opt enum_body comma_opt (rule 494) - delegate_declaration -> attributes_opt . modifiers_opt DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) + compilation_unit -> using_directives_opt attributes_opt . (rule 299) + namespace_declaration -> attributes_opt . NAMESPACE qualified_identifier @5 namespace_body comma_opt (rule 308) + class_declaration -> attributes_opt . modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) + struct_declaration -> attributes_opt . modifiers_opt STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt (rule 461) + interface_declaration -> attributes_opt . modifiers_opt INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt (rule 488) + enum_declaration -> attributes_opt . modifiers_opt ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt (rule 515) + delegate_declaration -> attributes_opt . modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) ABSTRACT shift, and go to state 30 EXTERN shift, and go to state 31 @@ -1340,45 +1410,46 @@ state 11 NAMESPACE shift, and go to state 33 NEW shift, and go to state 34 OVERRIDE shift, and go to state 35 - PRIVATE shift, and go to state 36 - PROTECTED shift, and go to state 37 - PUBLIC shift, and go to state 38 - READONLY shift, and go to state 39 - SEALED shift, and go to state 40 - STATIC shift, and go to state 41 - UNSAFE shift, and go to state 42 - VIRTUAL shift, and go to state 43 - VOLATILE shift, and go to state 44 + PARTIAL shift, and go to state 36 + PRIVATE shift, and go to state 37 + PROTECTED shift, and go to state 38 + PUBLIC shift, and go to state 39 + READONLY shift, and go to state 40 + SEALED shift, and go to state 41 + STATIC shift, and go to state 42 + UNSAFE shift, and go to state 43 + VIRTUAL shift, and go to state 44 + VOLATILE shift, and go to state 45 - $ reduce using rule 291 (compilation_unit) - $default reduce using rule 322 (modifiers_opt) + $ reduce using rule 299 (compilation_unit) + $default reduce using rule 331 (modifiers_opt) - modifiers_opt go to state 45 - modifiers go to state 46 - modifier go to state 47 + modifiers_opt go to state 46 + modifiers go to state 47 + modifier go to state 48 state 12 - namespace_member_declaration -> namespace_declaration . (rule 315) + namespace_member_declaration -> namespace_declaration . (rule 324) - $default reduce using rule 315 (namespace_member_declaration) + $default reduce using rule 324 (namespace_member_declaration) state 13 - compilation_unit -> using_directives_opt namespace_member_declarations . (rule 292) - namespace_member_declarations -> namespace_member_declarations . namespace_member_declaration (rule 314) + compilation_unit -> using_directives_opt namespace_member_declarations . (rule 300) + namespace_member_declarations -> namespace_member_declarations . namespace_member_declaration (rule 323) - $ reduce using rule 292 (compilation_unit) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + $ reduce using rule 300 (compilation_unit) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 48 + attributes_opt go to state 49 namespace_declaration go to state 12 - namespace_member_declaration go to state 49 + namespace_member_declaration go to state 50 type_declaration go to state 15 class_declaration go to state 16 struct_declaration go to state 17 @@ -1394,325 +1465,334 @@ state 13 state 14 - namespace_member_declarations -> namespace_member_declaration . (rule 313) + namespace_member_declarations -> namespace_member_declaration . (rule 322) - $default reduce using rule 313 (namespace_member_declarations) + $default reduce using rule 322 (namespace_member_declarations) state 15 - namespace_member_declaration -> type_declaration . (rule 316) + namespace_member_declaration -> type_declaration . (rule 325) - $default reduce using rule 316 (namespace_member_declaration) + $default reduce using rule 325 (namespace_member_declaration) state 16 - type_declaration -> class_declaration . (rule 317) + type_declaration -> class_declaration . (rule 326) - $default reduce using rule 317 (type_declaration) + $default reduce using rule 326 (type_declaration) state 17 - type_declaration -> struct_declaration . (rule 318) + type_declaration -> struct_declaration . (rule 327) - $default reduce using rule 318 (type_declaration) + $default reduce using rule 327 (type_declaration) state 18 - type_declaration -> interface_declaration . (rule 319) + type_declaration -> interface_declaration . (rule 328) - $default reduce using rule 319 (type_declaration) + $default reduce using rule 328 (type_declaration) state 19 - type_declaration -> enum_declaration . (rule 320) + type_declaration -> enum_declaration . (rule 329) - $default reduce using rule 320 (type_declaration) + $default reduce using rule 329 (type_declaration) state 20 - type_declaration -> delegate_declaration . (rule 321) + type_declaration -> delegate_declaration . (rule 330) - $default reduce using rule 321 (type_declaration) + $default reduce using rule 330 (type_declaration) state 21 - attributes_opt -> attributes . (rule 296) + attributes_opt -> attributes . (rule 304) - $default reduce using rule 296 (attributes_opt) + $default reduce using rule 304 (attributes_opt) state 22 - attributes -> attribute_sections . (rule 507) - attribute_sections -> attribute_sections . attribute_section (rule 509) + attributes -> attribute_sections . (rule 528) + attribute_sections -> attribute_sections . attribute_section (rule 530) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 507 (attributes) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 528 (attributes) - attribute_section go to state 50 + attribute_section go to state 51 ENTER_attrib go to state 24 state 23 - attribute_sections -> attribute_section . (rule 508) + attribute_sections -> attribute_section . (rule 529) - $default reduce using rule 508 (attribute_sections) + $default reduce using rule 529 (attribute_sections) state 24 - attribute_section -> ENTER_attrib . LEFT_BRACKET attribute_target_specifier_opt attribute_list RIGHT_BRACKET EXIT_attrib (rule 510) - attribute_section -> ENTER_attrib . LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET EXIT_attrib (rule 511) + attribute_section -> ENTER_attrib . LEFT_BRACKET attribute_target_specifier_opt attribute_list RIGHT_BRACKET EXIT_attrib (rule 531) + attribute_section -> ENTER_attrib . LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET EXIT_attrib (rule 532) - LEFT_BRACKET shift, and go to state 51 + LEFT_BRACKET shift, and go to state 52 state 25 - using_directives -> using_directives using_directive . (rule 308) + using_directives -> using_directives using_directive . (rule 317) - $default reduce using rule 308 (using_directives) + $default reduce using rule 317 (using_directives) state 26 - qualifier -> IDENTIFIER '.' . (rule 304) + qualifier -> IDENTIFIER '.' . (rule 313) - $default reduce using rule 304 (qualifier) + $default reduce using rule 313 (qualifier) state 27 - using_alias_directive -> USING IDENTIFIER '=' . qualified_identifier ';' (rule 311) + using_alias_directive -> USING IDENTIFIER '=' . qualified_identifier ';' (rule 320) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 - qualified_identifier go to state 53 + qualified_identifier go to state 54 qualifier go to state 10 state 28 - using_namespace_directive -> USING namespace_name ';' . (rule 312) + using_namespace_directive -> USING namespace_name ';' . (rule 321) - $default reduce using rule 312 (using_namespace_directive) + $default reduce using rule 321 (using_namespace_directive) state 29 - qualified_identifier -> qualifier IDENTIFIER . (rule 303) - qualifier -> qualifier IDENTIFIER . '.' (rule 305) + qualified_identifier -> qualifier IDENTIFIER . (rule 312) + qualifier -> qualifier IDENTIFIER . '.' (rule 314) - '.' shift, and go to state 54 + '.' shift, and go to state 55 - $default reduce using rule 303 (qualified_identifier) + $default reduce using rule 312 (qualified_identifier) state 30 - modifier -> ABSTRACT . (rule 326) + modifier -> ABSTRACT . (rule 335) - $default reduce using rule 326 (modifier) + $default reduce using rule 335 (modifier) state 31 - modifier -> EXTERN . (rule 327) + modifier -> EXTERN . (rule 336) - $default reduce using rule 327 (modifier) + $default reduce using rule 336 (modifier) state 32 - modifier -> INTERNAL . (rule 328) + modifier -> INTERNAL . (rule 337) - $default reduce using rule 328 (modifier) + $default reduce using rule 337 (modifier) state 33 - namespace_declaration -> attributes_opt NAMESPACE . qualified_identifier namespace_body comma_opt (rule 299) + namespace_declaration -> attributes_opt NAMESPACE . qualified_identifier @5 namespace_body comma_opt (rule 308) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 - qualified_identifier go to state 55 + qualified_identifier go to state 56 qualifier go to state 10 state 34 - modifier -> NEW . (rule 329) + modifier -> NEW . (rule 338) - $default reduce using rule 329 (modifier) + $default reduce using rule 338 (modifier) state 35 - modifier -> OVERRIDE . (rule 330) + modifier -> OVERRIDE . (rule 339) - $default reduce using rule 330 (modifier) + $default reduce using rule 339 (modifier) state 36 - modifier -> PRIVATE . (rule 331) + modifier -> PARTIAL . (rule 349) - $default reduce using rule 331 (modifier) + $default reduce using rule 349 (modifier) state 37 - modifier -> PROTECTED . (rule 332) + modifier -> PRIVATE . (rule 340) - $default reduce using rule 332 (modifier) + $default reduce using rule 340 (modifier) state 38 - modifier -> PUBLIC . (rule 333) + modifier -> PROTECTED . (rule 341) - $default reduce using rule 333 (modifier) + $default reduce using rule 341 (modifier) state 39 - modifier -> READONLY . (rule 334) + modifier -> PUBLIC . (rule 342) - $default reduce using rule 334 (modifier) + $default reduce using rule 342 (modifier) state 40 - modifier -> SEALED . (rule 335) + modifier -> READONLY . (rule 343) - $default reduce using rule 335 (modifier) + $default reduce using rule 343 (modifier) state 41 - modifier -> STATIC . (rule 336) + modifier -> SEALED . (rule 344) - $default reduce using rule 336 (modifier) + $default reduce using rule 344 (modifier) state 42 - modifier -> UNSAFE . (rule 337) + modifier -> STATIC . (rule 345) - $default reduce using rule 337 (modifier) + $default reduce using rule 345 (modifier) state 43 - modifier -> VIRTUAL . (rule 338) + modifier -> UNSAFE . (rule 346) - $default reduce using rule 338 (modifier) + $default reduce using rule 346 (modifier) state 44 - modifier -> VOLATILE . (rule 339) + modifier -> VIRTUAL . (rule 347) - $default reduce using rule 339 (modifier) + $default reduce using rule 347 (modifier) state 45 - class_declaration -> attributes_opt modifiers_opt . CLASS IDENTIFIER class_base_opt class_body comma_opt (rule 340) - struct_declaration -> attributes_opt modifiers_opt . STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt (rule 444) - interface_declaration -> attributes_opt modifiers_opt . INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt (rule 468) - enum_declaration -> attributes_opt modifiers_opt . ENUM IDENTIFIER enum_base_opt enum_body comma_opt (rule 494) - delegate_declaration -> attributes_opt modifiers_opt . DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) + modifier -> VOLATILE . (rule 348) - CLASS shift, and go to state 56 - DELEGATE shift, and go to state 57 - ENUM shift, and go to state 58 - INTERFACE shift, and go to state 59 - STRUCT shift, and go to state 60 + $default reduce using rule 348 (modifier) state 46 - modifiers_opt -> modifiers . (rule 323) - modifiers -> modifiers . modifier (rule 325) + class_declaration -> attributes_opt modifiers_opt . CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) + struct_declaration -> attributes_opt modifiers_opt . STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt (rule 461) + interface_declaration -> attributes_opt modifiers_opt . INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt (rule 488) + enum_declaration -> attributes_opt modifiers_opt . ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt (rule 515) + delegate_declaration -> attributes_opt modifiers_opt . DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) + + CLASS shift, and go to state 57 + DELEGATE shift, and go to state 58 + ENUM shift, and go to state 59 + INTERFACE shift, and go to state 60 + STRUCT shift, and go to state 61 + + + +state 47 + + modifiers_opt -> modifiers . (rule 332) + modifiers -> modifiers . modifier (rule 334) ABSTRACT shift, and go to state 30 EXTERN shift, and go to state 31 INTERNAL shift, and go to state 32 NEW shift, and go to state 34 OVERRIDE shift, and go to state 35 - PRIVATE shift, and go to state 36 - PROTECTED shift, and go to state 37 - PUBLIC shift, and go to state 38 - READONLY shift, and go to state 39 - SEALED shift, and go to state 40 - STATIC shift, and go to state 41 - UNSAFE shift, and go to state 42 - VIRTUAL shift, and go to state 43 - VOLATILE shift, and go to state 44 + PARTIAL shift, and go to state 36 + PRIVATE shift, and go to state 37 + PROTECTED shift, and go to state 38 + PUBLIC shift, and go to state 39 + READONLY shift, and go to state 40 + SEALED shift, and go to state 41 + STATIC shift, and go to state 42 + UNSAFE shift, and go to state 43 + VIRTUAL shift, and go to state 44 + VOLATILE shift, and go to state 45 - $default reduce using rule 323 (modifiers_opt) + $default reduce using rule 332 (modifiers_opt) - modifier go to state 61 + modifier go to state 62 -state 47 +state 48 - modifiers -> modifier . (rule 324) + modifiers -> modifier . (rule 333) - $default reduce using rule 324 (modifiers) + $default reduce using rule 333 (modifiers) -state 48 +state 49 - namespace_declaration -> attributes_opt . NAMESPACE qualified_identifier namespace_body comma_opt (rule 299) - class_declaration -> attributes_opt . modifiers_opt CLASS IDENTIFIER class_base_opt class_body comma_opt (rule 340) - struct_declaration -> attributes_opt . modifiers_opt STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt (rule 444) - interface_declaration -> attributes_opt . modifiers_opt INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt (rule 468) - enum_declaration -> attributes_opt . modifiers_opt ENUM IDENTIFIER enum_base_opt enum_body comma_opt (rule 494) - delegate_declaration -> attributes_opt . modifiers_opt DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) + namespace_declaration -> attributes_opt . NAMESPACE qualified_identifier @5 namespace_body comma_opt (rule 308) + class_declaration -> attributes_opt . modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) + struct_declaration -> attributes_opt . modifiers_opt STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt (rule 461) + interface_declaration -> attributes_opt . modifiers_opt INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt (rule 488) + enum_declaration -> attributes_opt . modifiers_opt ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt (rule 515) + delegate_declaration -> attributes_opt . modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) ABSTRACT shift, and go to state 30 EXTERN shift, and go to state 31 @@ -1720,113 +1800,114 @@ state 48 NAMESPACE shift, and go to state 33 NEW shift, and go to state 34 OVERRIDE shift, and go to state 35 - PRIVATE shift, and go to state 36 - PROTECTED shift, and go to state 37 - PUBLIC shift, and go to state 38 - READONLY shift, and go to state 39 - SEALED shift, and go to state 40 - STATIC shift, and go to state 41 - UNSAFE shift, and go to state 42 - VIRTUAL shift, and go to state 43 - VOLATILE shift, and go to state 44 + PARTIAL shift, and go to state 36 + PRIVATE shift, and go to state 37 + PROTECTED shift, and go to state 38 + PUBLIC shift, and go to state 39 + READONLY shift, and go to state 40 + SEALED shift, and go to state 41 + STATIC shift, and go to state 42 + UNSAFE shift, and go to state 43 + VIRTUAL shift, and go to state 44 + VOLATILE shift, and go to state 45 - $default reduce using rule 322 (modifiers_opt) + $default reduce using rule 331 (modifiers_opt) - modifiers_opt go to state 45 - modifiers go to state 46 - modifier go to state 47 + modifiers_opt go to state 46 + modifiers go to state 47 + modifier go to state 48 -state 49 +state 50 - namespace_member_declarations -> namespace_member_declarations namespace_member_declaration . (rule 314) + namespace_member_declarations -> namespace_member_declarations namespace_member_declaration . (rule 323) - $default reduce using rule 314 (namespace_member_declarations) + $default reduce using rule 323 (namespace_member_declarations) -state 50 +state 51 - attribute_sections -> attribute_sections attribute_section . (rule 509) + attribute_sections -> attribute_sections attribute_section . (rule 530) - $default reduce using rule 509 (attribute_sections) + $default reduce using rule 530 (attribute_sections) -state 51 +state 52 - attribute_section -> ENTER_attrib LEFT_BRACKET . attribute_target_specifier_opt attribute_list RIGHT_BRACKET EXIT_attrib (rule 510) - attribute_section -> ENTER_attrib LEFT_BRACKET . attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET EXIT_attrib (rule 511) + attribute_section -> ENTER_attrib LEFT_BRACKET . attribute_target_specifier_opt attribute_list RIGHT_BRACKET EXIT_attrib (rule 531) + attribute_section -> ENTER_attrib LEFT_BRACKET . attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET EXIT_attrib (rule 532) - EVENT shift, and go to state 62 - RETURN shift, and go to state 63 - ASSEMBLY shift, and go to state 64 - FIELD shift, and go to state 65 - METHOD shift, and go to state 66 - MODULE shift, and go to state 67 - PARAM shift, and go to state 68 - PROPERTY shift, and go to state 69 - TYPE shift, and go to state 70 + EVENT shift, and go to state 63 + RETURN shift, and go to state 64 + ASSEMBLY shift, and go to state 65 + FIELD shift, and go to state 66 + METHOD shift, and go to state 67 + MODULE shift, and go to state 68 + PARAM shift, and go to state 69 + PROPERTY shift, and go to state 70 + TYPE shift, and go to state 71 - $default reduce using rule 512 (attribute_target_specifier_opt) + $default reduce using rule 533 (attribute_target_specifier_opt) - attribute_target_specifier_opt go to state 71 - attribute_target_specifier go to state 72 - attribute_target go to state 73 + attribute_target_specifier_opt go to state 72 + attribute_target_specifier go to state 73 + attribute_target go to state 74 -state 52 +state 53 - qualified_identifier -> IDENTIFIER . (rule 302) - qualifier -> IDENTIFIER . '.' (rule 304) + qualified_identifier -> IDENTIFIER . (rule 311) + qualifier -> IDENTIFIER . '.' (rule 313) '.' shift, and go to state 26 - $default reduce using rule 302 (qualified_identifier) + $default reduce using rule 311 (qualified_identifier) -state 53 +state 54 - using_alias_directive -> USING IDENTIFIER '=' qualified_identifier . ';' (rule 311) + using_alias_directive -> USING IDENTIFIER '=' qualified_identifier . ';' (rule 320) - ';' shift, and go to state 74 + ';' shift, and go to state 75 -state 54 +state 55 - qualifier -> qualifier IDENTIFIER '.' . (rule 305) + qualifier -> qualifier IDENTIFIER '.' . (rule 314) - $default reduce using rule 305 (qualifier) + $default reduce using rule 314 (qualifier) -state 55 +state 56 - namespace_declaration -> attributes_opt NAMESPACE qualified_identifier . namespace_body comma_opt (rule 299) + namespace_declaration -> attributes_opt NAMESPACE qualified_identifier . @5 namespace_body comma_opt (rule 308) - '{' shift, and go to state 75 + $default reduce using rule 307 (@5) - namespace_body go to state 76 + @5 go to state 76 -state 56 +state 57 - class_declaration -> attributes_opt modifiers_opt CLASS . IDENTIFIER class_base_opt class_body comma_opt (rule 340) + class_declaration -> attributes_opt modifiers_opt CLASS . IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) IDENTIFIER shift, and go to state 77 -state 57 +state 58 - delegate_declaration -> attributes_opt modifiers_opt DELEGATE . return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) + delegate_declaration -> attributes_opt modifiers_opt DELEGATE . return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -1835,2142 +1916,1966 @@ state 57 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 93 - - type_name go to state 94 - type go to state 95 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 91 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 94 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 - return_type go to state 106 - - - -state 58 - - enum_declaration -> attributes_opt modifiers_opt ENUM . IDENTIFIER enum_base_opt enum_body comma_opt (rule 494) - - IDENTIFIER shift, and go to state 107 + return_type go to state 104 state 59 - interface_declaration -> attributes_opt modifiers_opt INTERFACE . IDENTIFIER interface_base_opt interface_body comma_opt (rule 468) + enum_declaration -> attributes_opt modifiers_opt ENUM . IDENTIFIER enum_base_opt @10 enum_body comma_opt (rule 515) - IDENTIFIER shift, and go to state 108 + IDENTIFIER shift, and go to state 105 state 60 - struct_declaration -> attributes_opt modifiers_opt STRUCT . IDENTIFIER struct_interfaces_opt struct_body comma_opt (rule 444) + interface_declaration -> attributes_opt modifiers_opt INTERFACE . IDENTIFIER @9 interface_base_opt interface_body comma_opt (rule 488) - IDENTIFIER shift, and go to state 109 + IDENTIFIER shift, and go to state 106 state 61 - modifiers -> modifiers modifier . (rule 325) + struct_declaration -> attributes_opt modifiers_opt STRUCT . IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt (rule 461) - $default reduce using rule 325 (modifiers) + IDENTIFIER shift, and go to state 107 state 62 - attribute_target -> EVENT . (rule 517) + modifiers -> modifiers modifier . (rule 334) - $default reduce using rule 517 (attribute_target) + $default reduce using rule 334 (modifiers) state 63 - attribute_target -> RETURN . (rule 522) + attribute_target -> EVENT . (rule 538) - $default reduce using rule 522 (attribute_target) + $default reduce using rule 538 (attribute_target) state 64 - attribute_target -> ASSEMBLY . (rule 515) + attribute_target -> RETURN . (rule 543) - $default reduce using rule 515 (attribute_target) + $default reduce using rule 543 (attribute_target) state 65 - attribute_target -> FIELD . (rule 516) + attribute_target -> ASSEMBLY . (rule 536) - $default reduce using rule 516 (attribute_target) + $default reduce using rule 536 (attribute_target) state 66 - attribute_target -> METHOD . (rule 518) + attribute_target -> FIELD . (rule 537) - $default reduce using rule 518 (attribute_target) + $default reduce using rule 537 (attribute_target) state 67 - attribute_target -> MODULE . (rule 519) + attribute_target -> METHOD . (rule 539) - $default reduce using rule 519 (attribute_target) + $default reduce using rule 539 (attribute_target) state 68 - attribute_target -> PARAM . (rule 520) + attribute_target -> MODULE . (rule 540) - $default reduce using rule 520 (attribute_target) + $default reduce using rule 540 (attribute_target) state 69 - attribute_target -> PROPERTY . (rule 521) + attribute_target -> PARAM . (rule 541) - $default reduce using rule 521 (attribute_target) + $default reduce using rule 541 (attribute_target) state 70 - attribute_target -> TYPE . (rule 523) + attribute_target -> PROPERTY . (rule 542) - $default reduce using rule 523 (attribute_target) + $default reduce using rule 542 (attribute_target) state 71 - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt . attribute_list RIGHT_BRACKET EXIT_attrib (rule 510) - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt . attribute_list COMMA RIGHT_BRACKET EXIT_attrib (rule 511) - - IDENTIFIER shift, and go to state 52 + attribute_target -> TYPE . (rule 544) - type_name go to state 110 - qualified_identifier go to state 111 - qualifier go to state 10 - attribute_list go to state 112 - attribute go to state 113 - attribute_name go to state 114 + $default reduce using rule 544 (attribute_target) state 72 - attribute_target_specifier_opt -> attribute_target_specifier . (rule 513) + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt . attribute_list RIGHT_BRACKET EXIT_attrib (rule 531) + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt . attribute_list COMMA RIGHT_BRACKET EXIT_attrib (rule 532) + + IDENTIFIER shift, and go to state 53 - $default reduce using rule 513 (attribute_target_specifier_opt) + type_name go to state 108 + qualified_identifier_opt_generic go to state 93 + qualified_identifier go to state 109 + qualifier go to state 10 + attribute_list go to state 110 + attribute go to state 111 + attribute_name go to state 112 state 73 - attribute_target_specifier -> attribute_target . ':' (rule 514) + attribute_target_specifier_opt -> attribute_target_specifier . (rule 534) - ':' shift, and go to state 115 + $default reduce using rule 534 (attribute_target_specifier_opt) state 74 - using_alias_directive -> USING IDENTIFIER '=' qualified_identifier ';' . (rule 311) + attribute_target_specifier -> attribute_target . ':' (rule 535) - $default reduce using rule 311 (using_alias_directive) + ':' shift, and go to state 113 state 75 - namespace_body -> '{' . using_directives_opt namespace_member_declarations_opt '}' (rule 306) - - USING shift, and go to state 1 - - $default reduce using rule 293 (using_directives_opt) + using_alias_directive -> USING IDENTIFIER '=' qualified_identifier ';' . (rule 320) - using_directives_opt go to state 116 - using_directives go to state 3 - using_directive go to state 4 - using_alias_directive go to state 5 - using_namespace_directive go to state 6 + $default reduce using rule 320 (using_alias_directive) state 76 - namespace_declaration -> attributes_opt NAMESPACE qualified_identifier namespace_body . comma_opt (rule 299) + namespace_declaration -> attributes_opt NAMESPACE qualified_identifier @5 . namespace_body comma_opt (rule 308) - ';' shift, and go to state 117 + '{' shift, and go to state 114 - $default reduce using rule 300 (comma_opt) - - comma_opt go to state 118 + namespace_body go to state 115 state 77 - class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER . class_base_opt class_body comma_opt (rule 340) + class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER . opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) - ':' shift, and go to state 119 + GEN_LT shift, and go to state 116 - $default reduce using rule 341 (class_base_opt) + $default reduce using rule 379 (opt_generic_fct) - class_base_opt go to state 120 - class_base go to state 121 + opt_generic_fct go to state 117 state 78 - primitive_type -> BOOL . (rule 19) + primitive_type -> BOOL . (rule 26) - $default reduce using rule 19 (primitive_type) + $default reduce using rule 26 (primitive_type) state 79 - integral_type -> BYTE . (rule 24) + integral_type -> BYTE . (rule 31) - $default reduce using rule 24 (integral_type) + $default reduce using rule 31 (integral_type) state 80 - integral_type -> CHAR . (rule 31) + integral_type -> CHAR . (rule 38) - $default reduce using rule 31 (integral_type) + $default reduce using rule 38 (integral_type) state 81 - numeric_type -> DECIMAL . (rule 22) + numeric_type -> DECIMAL . (rule 29) - $default reduce using rule 22 (numeric_type) + $default reduce using rule 29 (numeric_type) state 82 - floating_point_type -> DOUBLE . (rule 33) + floating_point_type -> DOUBLE . (rule 40) - $default reduce using rule 33 (floating_point_type) + $default reduce using rule 40 (floating_point_type) state 83 - floating_point_type -> FLOAT . (rule 32) + floating_point_type -> FLOAT . (rule 39) - $default reduce using rule 32 (floating_point_type) + $default reduce using rule 39 (floating_point_type) state 84 - integral_type -> INT . (rule 27) + integral_type -> INT . (rule 34) - $default reduce using rule 27 (integral_type) + $default reduce using rule 34 (integral_type) state 85 - integral_type -> LONG . (rule 29) + integral_type -> LONG . (rule 36) - $default reduce using rule 29 (integral_type) + $default reduce using rule 36 (integral_type) state 86 - class_type -> OBJECT . (rule 34) + integral_type -> SBYTE . (rule 30) - $default reduce using rule 34 (class_type) + $default reduce using rule 30 (integral_type) state 87 - integral_type -> SBYTE . (rule 23) + integral_type -> SHORT . (rule 32) - $default reduce using rule 23 (integral_type) + $default reduce using rule 32 (integral_type) state 88 - integral_type -> SHORT . (rule 25) + integral_type -> UINT . (rule 35) - $default reduce using rule 25 (integral_type) + $default reduce using rule 35 (integral_type) state 89 - class_type -> STRING . (rule 35) + integral_type -> ULONG . (rule 37) - $default reduce using rule 35 (class_type) + $default reduce using rule 37 (integral_type) state 90 - integral_type -> UINT . (rule 28) + integral_type -> USHORT . (rule 33) - $default reduce using rule 28 (integral_type) + $default reduce using rule 33 (integral_type) state 91 - integral_type -> ULONG . (rule 30) + pointer_type -> VOID . '*' (rule 42) + return_type -> VOID . (rule 384) - $default reduce using rule 30 (integral_type) + '*' shift, and go to state 118 + + $default reduce using rule 384 (return_type) state 92 - integral_type -> USHORT . (rule 26) + non_array_type -> type_name . (rule 22) - $default reduce using rule 26 (integral_type) + $default reduce using rule 22 (non_array_type) state 93 - pointer_type -> VOID . '*' (rule 37) - return_type -> VOID . (rule 371) + type_name -> qualified_identifier_opt_generic . (rule 10) - '*' shift, and go to state 122 - - $default reduce using rule 371 (return_type) + $default reduce using rule 10 (type_name) state 94 - non_array_type -> type_name . (rule 14) + pointer_type -> type . '*' (rule 41) + return_type -> type . (rule 383) - $default reduce using rule 14 (non_array_type) + '*' shift, and go to state 119 + $default reduce using rule 383 (return_type) -state 95 - pointer_type -> type . '*' (rule 36) - return_type -> type . (rule 370) +state 95 - '*' shift, and go to state 123 + type -> non_array_type . (rule 19) - $default reduce using rule 370 (return_type) + $default reduce using rule 19 (type) state 96 - type -> non_array_type . (rule 11) + non_array_type -> simple_type . (rule 21) + array_type -> simple_type . rank_specifier (rule 44) - $default reduce using rule 11 (type) + RANK_SPECIFIER shift, and go to state 120 + $default reduce using rule 21 (non_array_type) + rank_specifier go to state 121 -state 97 - non_array_type -> simple_type . (rule 13) - array_type -> simple_type . rank_specifier (rule 39) - RANK_SPECIFIER shift, and go to state 124 +state 97 - $default reduce using rule 13 (non_array_type) + simple_type -> primitive_type . (rule 23) - rank_specifier go to state 125 + $default reduce using rule 23 (simple_type) state 98 - simple_type -> primitive_type . (rule 15) + primitive_type -> numeric_type . (rule 25) - $default reduce using rule 15 (simple_type) + $default reduce using rule 25 (primitive_type) state 99 - primitive_type -> numeric_type . (rule 18) + numeric_type -> integral_type . (rule 27) - $default reduce using rule 18 (primitive_type) + $default reduce using rule 27 (numeric_type) state 100 - numeric_type -> integral_type . (rule 20) + numeric_type -> floating_point_type . (rule 28) - $default reduce using rule 20 (numeric_type) + $default reduce using rule 28 (numeric_type) state 101 - numeric_type -> floating_point_type . (rule 21) + simple_type -> pointer_type . (rule 24) - $default reduce using rule 21 (numeric_type) + $default reduce using rule 24 (simple_type) state 102 - simple_type -> class_type . (rule 16) + type -> array_type . (rule 20) + array_type -> array_type . rank_specifier (rule 43) + + RANK_SPECIFIER shift, and go to state 120 + + $default reduce using rule 20 (type) - $default reduce using rule 16 (simple_type) + rank_specifier go to state 122 state 103 - simple_type -> pointer_type . (rule 17) + qualified_identifier_opt_generic -> qualified_identifier . @2 opt_generic (rule 15) + array_type -> qualified_identifier . rank_specifier (rule 45) - $default reduce using rule 17 (simple_type) + RANK_SPECIFIER shift, and go to state 120 + $default reduce using rule 14 (@2) + @2 go to state 123 + rank_specifier go to state 124 -state 104 - type -> array_type . (rule 12) - array_type -> array_type . rank_specifier (rule 38) - RANK_SPECIFIER shift, and go to state 124 +state 104 - $default reduce using rule 12 (type) + delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type . IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) - rank_specifier go to state 126 + IDENTIFIER shift, and go to state 125 state 105 - type_name -> qualified_identifier . (rule 10) - array_type -> qualified_identifier . rank_specifier (rule 40) + enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER . enum_base_opt @10 enum_body comma_opt (rule 515) - RANK_SPECIFIER shift, and go to state 124 + ':' shift, and go to state 126 - $default reduce using rule 10 (type_name) + $default reduce using rule 516 (enum_base_opt) - rank_specifier go to state 127 + enum_base_opt go to state 127 + enum_base go to state 128 state 106 - delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type . IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) + interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER . @9 interface_base_opt interface_body comma_opt (rule 488) - IDENTIFIER shift, and go to state 128 + $default reduce using rule 487 (@9) + @9 go to state 129 -state 107 - enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER . enum_base_opt enum_body comma_opt (rule 494) +state 107 - ':' shift, and go to state 129 + struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER . @7 struct_interfaces_opt struct_body comma_opt (rule 461) - $default reduce using rule 495 (enum_base_opt) + $default reduce using rule 460 (@7) - enum_base_opt go to state 130 - enum_base go to state 131 + @7 go to state 130 state 108 - interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER . interface_base_opt interface_body comma_opt (rule 468) - - ':' shift, and go to state 132 + attribute_name -> type_name . (rule 550) - $default reduce using rule 469 (interface_base_opt) - - interface_base_opt go to state 133 - interface_base go to state 134 + $default reduce using rule 550 (attribute_name) state 109 - struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER . struct_interfaces_opt struct_body comma_opt (rule 444) - - ':' shift, and go to state 135 + qualified_identifier_opt_generic -> qualified_identifier . @2 opt_generic (rule 15) - $default reduce using rule 445 (struct_interfaces_opt) + $default reduce using rule 14 (@2) - struct_interfaces_opt go to state 136 - struct_interfaces go to state 137 + @2 go to state 123 state 110 - attribute_name -> type_name . (rule 529) + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list . RIGHT_BRACKET EXIT_attrib (rule 531) + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list . COMMA RIGHT_BRACKET EXIT_attrib (rule 532) + attribute_list -> attribute_list . COMMA attribute (rule 546) - $default reduce using rule 529 (attribute_name) + COMMA shift, and go to state 131 + RIGHT_BRACKET shift, and go to state 132 state 111 - type_name -> qualified_identifier . (rule 10) + attribute_list -> attribute . (rule 545) - $default reduce using rule 10 (type_name) + $default reduce using rule 545 (attribute_list) state 112 - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list . RIGHT_BRACKET EXIT_attrib (rule 510) - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list . COMMA RIGHT_BRACKET EXIT_attrib (rule 511) - attribute_list -> attribute_list . COMMA attribute (rule 525) + attribute -> attribute_name . attribute_arguments_opt (rule 547) + + '(' shift, and go to state 133 - COMMA shift, and go to state 138 - RIGHT_BRACKET shift, and go to state 139 + $default reduce using rule 548 (attribute_arguments_opt) + + attribute_arguments_opt go to state 134 + attribute_arguments go to state 135 state 113 - attribute_list -> attribute . (rule 524) + attribute_target_specifier -> attribute_target ':' . (rule 535) - $default reduce using rule 524 (attribute_list) + $default reduce using rule 535 (attribute_target_specifier) state 114 - attribute -> attribute_name . attribute_arguments_opt (rule 526) + namespace_body -> '{' . using_directives_opt namespace_member_declarations_opt '}' (rule 315) - '(' shift, and go to state 140 + USING shift, and go to state 1 - $default reduce using rule 527 (attribute_arguments_opt) + $default reduce using rule 301 (using_directives_opt) - attribute_arguments_opt go to state 141 - attribute_arguments go to state 142 + using_directives_opt go to state 136 + using_directives go to state 3 + using_directive go to state 4 + using_alias_directive go to state 5 + using_namespace_directive go to state 6 state 115 - attribute_target_specifier -> attribute_target ':' . (rule 514) + namespace_declaration -> attributes_opt NAMESPACE qualified_identifier @5 namespace_body . comma_opt (rule 308) - $default reduce using rule 514 (attribute_target_specifier) + ';' shift, and go to state 137 + + $default reduce using rule 309 (comma_opt) + + comma_opt go to state 138 state 116 - namespace_body -> '{' using_directives_opt . namespace_member_declarations_opt '}' (rule 306) + opt_generic_fct -> GEN_LT . name_list GEN_GT (rule 380) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 297 (namespace_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) + IDENTIFIER shift, and go to state 139 - attributes_opt go to state 48 - namespace_member_declarations_opt go to state 143 - namespace_declaration go to state 12 - namespace_member_declarations go to state 144 - namespace_member_declaration go to state 14 - type_declaration go to state 15 - class_declaration go to state 16 - struct_declaration go to state 17 - interface_declaration go to state 18 - enum_declaration go to state 19 - delegate_declaration go to state 20 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + name_list go to state 140 state 117 - comma_opt -> ';' . (rule 301) + class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER opt_generic_fct . @6 class_base_opt class_body comma_opt (rule 351) - $default reduce using rule 301 (comma_opt) + $default reduce using rule 350 (@6) + + @6 go to state 141 state 118 - namespace_declaration -> attributes_opt NAMESPACE qualified_identifier namespace_body comma_opt . (rule 299) + pointer_type -> VOID '*' . (rule 42) - $default reduce using rule 299 (namespace_declaration) + $default reduce using rule 42 (pointer_type) state 119 - class_base -> ':' . class_type (rule 343) - class_base -> ':' . interface_type_list (rule 344) - class_base -> ':' . class_type COMMA interface_type_list (rule 345) - - IDENTIFIER shift, and go to state 52 - OBJECT shift, and go to state 86 - STRING shift, and go to state 89 + pointer_type -> type '*' . (rule 41) - type_name go to state 145 - class_type go to state 146 - qualified_identifier go to state 111 - qualifier go to state 10 - interface_type_list go to state 147 + $default reduce using rule 41 (pointer_type) state 120 - class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER class_base_opt . class_body comma_opt (rule 340) - - '{' shift, and go to state 148 + rank_specifier -> RANK_SPECIFIER . (rule 48) - class_body go to state 149 + $default reduce using rule 48 (rank_specifier) state 121 - class_base_opt -> class_base . (rule 342) + array_type -> simple_type rank_specifier . (rule 44) - $default reduce using rule 342 (class_base_opt) + $default reduce using rule 44 (array_type) state 122 - pointer_type -> VOID '*' . (rule 37) + array_type -> array_type rank_specifier . (rule 43) - $default reduce using rule 37 (pointer_type) + $default reduce using rule 43 (array_type) state 123 - pointer_type -> type '*' . (rule 36) + qualified_identifier_opt_generic -> qualified_identifier @2 . opt_generic (rule 15) + + GEN_LT shift, and go to state 142 + + $default reduce using rule 11 (opt_generic) - $default reduce using rule 36 (pointer_type) + opt_generic go to state 143 state 124 - rank_specifier -> RANK_SPECIFIER . (rule 43) + array_type -> qualified_identifier rank_specifier . (rule 45) - $default reduce using rule 43 (rank_specifier) + $default reduce using rule 45 (array_type) state 125 - array_type -> simple_type rank_specifier . (rule 39) + delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER . opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) - $default reduce using rule 39 (array_type) + GEN_LT shift, and go to state 116 + + $default reduce using rule 379 (opt_generic_fct) + + opt_generic_fct go to state 144 state 126 - array_type -> array_type rank_specifier . (rule 38) + enum_base -> ':' . integral_type (rule 518) + + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 - $default reduce using rule 38 (array_type) + integral_type go to state 145 state 127 - array_type -> qualified_identifier rank_specifier . (rule 40) + enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt . @10 enum_body comma_opt (rule 515) + + $default reduce using rule 514 (@10) - $default reduce using rule 40 (array_type) + @10 go to state 146 state 128 - delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER . '(' formal_parameter_list_opt ')' ';' (rule 506) + enum_base_opt -> enum_base . (rule 517) - '(' shift, and go to state 150 + $default reduce using rule 517 (enum_base_opt) state 129 - enum_base -> ':' . integral_type (rule 497) + interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER @9 . interface_base_opt interface_body comma_opt (rule 488) - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - INT shift, and go to state 84 - LONG shift, and go to state 85 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 + ':' shift, and go to state 147 - integral_type go to state 151 + $default reduce using rule 489 (interface_base_opt) + + interface_base_opt go to state 148 + interface_base go to state 149 state 130 - enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt . enum_body comma_opt (rule 494) + struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER @7 . struct_interfaces_opt struct_body comma_opt (rule 461) + + ':' shift, and go to state 150 - '{' shift, and go to state 152 + $default reduce using rule 462 (struct_interfaces_opt) - enum_body go to state 153 + struct_interfaces_opt go to state 151 + struct_interfaces go to state 152 state 131 - enum_base_opt -> enum_base . (rule 496) + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA . RIGHT_BRACKET EXIT_attrib (rule 532) + attribute_list -> attribute_list COMMA . attribute (rule 546) - $default reduce using rule 496 (enum_base_opt) + IDENTIFIER shift, and go to state 53 + RIGHT_BRACKET shift, and go to state 153 + + type_name go to state 108 + qualified_identifier_opt_generic go to state 93 + qualified_identifier go to state 109 + qualifier go to state 10 + attribute go to state 154 + attribute_name go to state 112 state 132 - interface_base -> ':' . interface_type_list (rule 471) + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list RIGHT_BRACKET . EXIT_attrib (rule 531) - IDENTIFIER shift, and go to state 52 + $default reduce using rule 553 (EXIT_attrib) - type_name go to state 145 - qualified_identifier go to state 111 - qualifier go to state 10 - interface_type_list go to state 154 + EXIT_attrib go to state 155 state 133 - interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER interface_base_opt . interface_body comma_opt (rule 468) - - '{' shift, and go to state 155 + attribute_arguments -> '(' . expression_list_opt ')' (rule 551) - interface_body go to state 156 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 82 (expression_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + expression_list_opt go to state 191 + expression_list go to state 192 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 224 + qualified_identifier go to state 225 + qualifier go to state 10 state 134 - interface_base_opt -> interface_base . (rule 470) + attribute -> attribute_name attribute_arguments_opt . (rule 547) - $default reduce using rule 470 (interface_base_opt) + $default reduce using rule 547 (attribute) state 135 - struct_interfaces -> ':' . interface_type_list (rule 447) - - IDENTIFIER shift, and go to state 52 + attribute_arguments_opt -> attribute_arguments . (rule 549) - type_name go to state 145 - qualified_identifier go to state 111 - qualifier go to state 10 - interface_type_list go to state 157 + $default reduce using rule 549 (attribute_arguments_opt) state 136 - struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER struct_interfaces_opt . struct_body comma_opt (rule 444) + namespace_body -> '{' using_directives_opt . namespace_member_declarations_opt '}' (rule 315) - '{' shift, and go to state 158 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 305 (namespace_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) - struct_body go to state 159 + attributes_opt go to state 49 + namespace_member_declarations_opt go to state 226 + namespace_declaration go to state 12 + namespace_member_declarations go to state 227 + namespace_member_declaration go to state 14 + type_declaration go to state 15 + class_declaration go to state 16 + struct_declaration go to state 17 + interface_declaration go to state 18 + enum_declaration go to state 19 + delegate_declaration go to state 20 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 137 - struct_interfaces_opt -> struct_interfaces . (rule 446) + comma_opt -> ';' . (rule 310) - $default reduce using rule 446 (struct_interfaces_opt) + $default reduce using rule 310 (comma_opt) state 138 - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA . RIGHT_BRACKET EXIT_attrib (rule 511) - attribute_list -> attribute_list COMMA . attribute (rule 525) - - IDENTIFIER shift, and go to state 52 - RIGHT_BRACKET shift, and go to state 160 + namespace_declaration -> attributes_opt NAMESPACE qualified_identifier @5 namespace_body comma_opt . (rule 308) - type_name go to state 110 - qualified_identifier go to state 111 - qualifier go to state 10 - attribute go to state 161 - attribute_name go to state 114 + $default reduce using rule 308 (namespace_declaration) state 139 - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list RIGHT_BRACKET . EXIT_attrib (rule 510) - - $default reduce using rule 532 (EXIT_attrib) + name_list -> IDENTIFIER . (rule 377) - EXIT_attrib go to state 162 + $default reduce using rule 377 (name_list) state 140 - attribute_arguments -> '(' . expression_list_opt ')' (rule 530) + name_list -> name_list . COMMA IDENTIFIER (rule 378) + opt_generic_fct -> GEN_LT name_list . GEN_GT (rule 380) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 74 (expression_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - expression_list_opt go to state 196 - expression_list go to state 197 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 229 - qualified_identifier go to state 230 - qualifier go to state 10 + GEN_GT shift, and go to state 228 + COMMA shift, and go to state 229 state 141 - attribute -> attribute_name attribute_arguments_opt . (rule 526) + class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 . class_base_opt class_body comma_opt (rule 351) + + ':' shift, and go to state 230 - $default reduce using rule 526 (attribute) + $default reduce using rule 352 (class_base_opt) + + class_base_opt go to state 231 + class_base go to state 232 state 142 - attribute_arguments_opt -> attribute_arguments . (rule 528) + opt_generic -> GEN_LT . @1 genericlist GEN_GT (rule 13) + + $default reduce using rule 12 (@1) - $default reduce using rule 528 (attribute_arguments_opt) + @1 go to state 233 state 143 - namespace_body -> '{' using_directives_opt namespace_member_declarations_opt . '}' (rule 306) + qualified_identifier_opt_generic -> qualified_identifier @2 opt_generic . (rule 15) - '}' shift, and go to state 231 + $default reduce using rule 15 (qualified_identifier_opt_generic) state 144 - namespace_member_declarations_opt -> namespace_member_declarations . (rule 298) - namespace_member_declarations -> namespace_member_declarations . namespace_member_declaration (rule 314) + delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct . '(' formal_parameter_list_opt ')' ';' (rule 527) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 298 (namespace_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) - - attributes_opt go to state 48 - namespace_declaration go to state 12 - namespace_member_declaration go to state 49 - type_declaration go to state 15 - class_declaration go to state 16 - struct_declaration go to state 17 - interface_declaration go to state 18 - enum_declaration go to state 19 - delegate_declaration go to state 20 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + '(' shift, and go to state 234 state 145 - interface_type_list -> type_name . (rule 346) + enum_base -> ':' integral_type . (rule 518) - $default reduce using rule 346 (interface_type_list) + $default reduce using rule 518 (enum_base) state 146 - class_base -> ':' class_type . (rule 343) - class_base -> ':' class_type . COMMA interface_type_list (rule 345) + enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt @10 . enum_body comma_opt (rule 515) - COMMA shift, and go to state 232 + '{' shift, and go to state 235 - $default reduce using rule 343 (class_base) + enum_body go to state 236 state 147 - class_base -> ':' interface_type_list . (rule 344) - interface_type_list -> interface_type_list . COMMA type_name (rule 347) + interface_base -> ':' . interface_type_list (rule 491) - COMMA shift, and go to state 233 + IDENTIFIER shift, and go to state 53 - $default reduce using rule 344 (class_base) + type_name go to state 237 + qualified_identifier_opt_generic go to state 93 + qualified_identifier go to state 109 + qualifier go to state 10 + interface_type_list go to state 238 state 148 - class_body -> '{' . class_member_declarations_opt '}' (rule 348) + interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER @9 interface_base_opt . interface_body comma_opt (rule 488) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 349 (class_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) + '{' shift, and go to state 239 - attributes_opt go to state 234 - type_declaration go to state 235 - class_declaration go to state 16 - class_member_declarations_opt go to state 236 - class_member_declarations go to state 237 - class_member_declaration go to state 238 - constant_declaration go to state 239 - field_declaration go to state 240 - method_declaration go to state 241 - method_header go to state 242 - property_declaration go to state 243 - event_declaration go to state 244 - indexer_declaration go to state 245 - operator_declaration go to state 246 - constructor_declaration go to state 247 - destructor_declaration go to state 248 - struct_declaration go to state 17 - interface_declaration go to state 18 - enum_declaration go to state 19 - delegate_declaration go to state 20 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + interface_body go to state 240 state 149 - class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER class_base_opt class_body . comma_opt (rule 340) - - ';' shift, and go to state 117 - - $default reduce using rule 300 (comma_opt) + interface_base_opt -> interface_base . (rule 490) - comma_opt go to state 249 + $default reduce using rule 490 (interface_base_opt) state 150 - delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER '(' . formal_parameter_list_opt ')' ';' (rule 506) + struct_interfaces -> ':' . interface_type_list (rule 464) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - ')' reduce using rule 368 (formal_parameter_list_opt) - $default reduce using rule 295 (attributes_opt) + IDENTIFIER shift, and go to state 53 - attributes_opt go to state 250 - formal_parameter_list_opt go to state 251 - formal_parameter_list go to state 252 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + type_name go to state 237 + qualified_identifier_opt_generic go to state 93 + qualified_identifier go to state 109 + qualifier go to state 10 + interface_type_list go to state 241 state 151 - enum_base -> ':' integral_type . (rule 497) + struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER @7 struct_interfaces_opt . struct_body comma_opt (rule 461) - $default reduce using rule 497 (enum_base) + '{' shift, and go to state 242 + struct_body go to state 243 -state 152 - enum_body -> '{' . enum_member_declarations_opt '}' (rule 498) - enum_body -> '{' . enum_member_declarations COMMA '}' (rule 499) +state 152 - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 500 (enum_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) + struct_interfaces_opt -> struct_interfaces . (rule 463) - attributes_opt go to state 256 - enum_member_declarations_opt go to state 257 - enum_member_declarations go to state 258 - enum_member_declaration go to state 259 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + $default reduce using rule 463 (struct_interfaces_opt) state 153 - enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt enum_body . comma_opt (rule 494) - - ';' shift, and go to state 117 + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET . EXIT_attrib (rule 532) - $default reduce using rule 300 (comma_opt) + $default reduce using rule 553 (EXIT_attrib) - comma_opt go to state 260 + EXIT_attrib go to state 244 state 154 - interface_type_list -> interface_type_list . COMMA type_name (rule 347) - interface_base -> ':' interface_type_list . (rule 471) + attribute_list -> attribute_list COMMA attribute . (rule 546) - COMMA shift, and go to state 233 - - $default reduce using rule 471 (interface_base) + $default reduce using rule 546 (attribute_list) state 155 - interface_body -> '{' . interface_member_declarations_opt '}' (rule 472) - - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 473 (interface_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list RIGHT_BRACKET EXIT_attrib . (rule 531) - attributes_opt go to state 261 - interface_member_declarations_opt go to state 262 - interface_member_declarations go to state 263 - interface_member_declaration go to state 264 - interface_method_declaration go to state 265 - interface_property_declaration go to state 266 - interface_indexer_declaration go to state 267 - interface_event_declaration go to state 268 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + $default reduce using rule 531 (attribute_section) state 156 - interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER interface_base_opt interface_body . comma_opt (rule 468) - - ';' shift, and go to state 117 - - $default reduce using rule 300 (comma_opt) + literal -> INTEGER_LITERAL . (rule 2) - comma_opt go to state 269 + $default reduce using rule 2 (literal) state 157 - interface_type_list -> interface_type_list . COMMA type_name (rule 347) - struct_interfaces -> ':' interface_type_list . (rule 447) - - COMMA shift, and go to state 233 + literal -> REAL_LITERAL . (rule 3) - $default reduce using rule 447 (struct_interfaces) + $default reduce using rule 3 (literal) state 158 - struct_body -> '{' . struct_member_declarations_opt '}' (rule 448) - - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 449 (struct_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) + literal -> CHARACTER_LITERAL . (rule 4) - attributes_opt go to state 270 - type_declaration go to state 271 - class_declaration go to state 16 - constant_declaration go to state 272 - field_declaration go to state 273 - method_declaration go to state 274 - method_header go to state 242 - property_declaration go to state 275 - event_declaration go to state 276 - indexer_declaration go to state 277 - operator_declaration go to state 278 - constructor_declaration go to state 279 - struct_declaration go to state 17 - struct_member_declarations_opt go to state 280 - struct_member_declarations go to state 281 - struct_member_declaration go to state 282 - interface_declaration go to state 18 - enum_declaration go to state 19 - delegate_declaration go to state 20 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + $default reduce using rule 4 (literal) state 159 - struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER struct_interfaces_opt struct_body . comma_opt (rule 444) - - ';' shift, and go to state 117 - - $default reduce using rule 300 (comma_opt) + literal -> STRING_LITERAL . (rule 5) - comma_opt go to state 283 + $default reduce using rule 5 (literal) state 160 - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET . EXIT_attrib (rule 511) - - $default reduce using rule 532 (EXIT_attrib) + base_access -> BASE . '.' IDENTIFIER (rule 87) + base_access -> BASE . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 88) - EXIT_attrib go to state 284 + LEFT_BRACKET shift, and go to state 245 + '.' shift, and go to state 246 state 161 - attribute_list -> attribute_list COMMA attribute . (rule 525) + checked_expression -> CHECKED . '(' expression ')' (rule 99) - $default reduce using rule 525 (attribute_list) + '(' shift, and go to state 247 state 162 - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list RIGHT_BRACKET EXIT_attrib . (rule 510) + delegate_expression -> DELEGATE . '(' formal_parameter_list_opt ')' block (rule 71) - $default reduce using rule 510 (attribute_section) + '(' shift, and go to state 248 state 163 - literal -> INTEGER_LITERAL . (rule 2) + boolean_literal -> FALSE . (rule 8) - $default reduce using rule 2 (literal) + $default reduce using rule 8 (boolean_literal) state 164 - literal -> REAL_LITERAL . (rule 3) + object_creation_expression -> NEW . type '(' argument_list_opt ')' (rule 92) + array_creation_expression -> NEW . non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt (rule 93) + array_creation_expression -> NEW . array_type array_initializer (rule 94) - $default reduce using rule 3 (literal) + IDENTIFIER shift, and go to state 53 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + DECIMAL shift, and go to state 81 + DOUBLE shift, and go to state 82 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 250 + non_array_type go to state 251 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 252 + qualified_identifier go to state 103 + qualifier go to state 10 state 165 - literal -> CHARACTER_LITERAL . (rule 4) + literal -> NULL_LITERAL . (rule 6) - $default reduce using rule 4 (literal) + $default reduce using rule 6 (literal) state 166 - literal -> STRING_LITERAL . (rule 5) + sizeof_expression -> SIZEOF . '(' type ')' (rule 103) - $default reduce using rule 5 (literal) + '(' shift, and go to state 253 state 167 - base_access -> BASE . '.' IDENTIFIER (rule 79) - base_access -> BASE . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 80) + this_access -> THIS . (rule 86) - LEFT_BRACKET shift, and go to state 285 - '.' shift, and go to state 286 + $default reduce using rule 86 (this_access) state 168 - checked_expression -> CHECKED . '(' expression ')' (rule 91) + boolean_literal -> TRUE . (rule 7) - '(' shift, and go to state 287 + $default reduce using rule 7 (boolean_literal) state 169 - boolean_literal -> FALSE . (rule 8) + typeof_expression -> TYPEOF . '(' type ')' (rule 97) + typeof_expression -> TYPEOF . '(' VOID ')' (rule 98) - $default reduce using rule 8 (boolean_literal) + '(' shift, and go to state 254 state 170 - object_creation_expression -> NEW . type '(' argument_list_opt ')' (rule 84) - array_creation_expression -> NEW . non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt (rule 85) - array_creation_expression -> NEW . array_type array_initializer (rule 86) + unchecked_expression -> UNCHECKED . '(' expression ')' (rule 100) - IDENTIFIER shift, and go to state 52 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 289 - non_array_type go to state 290 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 291 - qualified_identifier go to state 105 - qualifier go to state 10 + '(' shift, and go to state 255 state 171 - literal -> NULL_LITERAL . (rule 6) - - $default reduce using rule 6 (literal) - - - -state 172 - - sizeof_expression -> SIZEOF . '(' type ')' (rule 95) - - '(' shift, and go to state 292 - - - -state 173 - - this_access -> THIS . (rule 78) - - $default reduce using rule 78 (this_access) - - - -state 174 - - boolean_literal -> TRUE . (rule 7) - - $default reduce using rule 7 (boolean_literal) - - - -state 175 - - typeof_expression -> TYPEOF . '(' type ')' (rule 89) - typeof_expression -> TYPEOF . '(' VOID ')' (rule 90) - - '(' shift, and go to state 293 - - - -state 176 - - unchecked_expression -> UNCHECKED . '(' expression ')' (rule 92) - - '(' shift, and go to state 294 - + pre_increment_expression -> PLUSPLUS . unary_expression (rule 113) - -state 177 - - pre_increment_expression -> PLUSPLUS . unary_expression (rule 105) - - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 295 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 256 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 178 +state 172 - pre_decrement_expression -> MINUSMINUS . unary_expression (rule 106) + pre_decrement_expression -> MINUSMINUS . unary_expression (rule 114) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 296 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 257 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 179 +state 173 - unary_expression -> '*' . unary_expression (rule 110) + unary_expression -> '*' . unary_expression (rule 118) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 297 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 258 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 180 +state 174 - parenthesized_expression -> '(' . expression ')' (rule 64) - cast_expression -> '(' . expression ')' unary_expression_not_plusminus (rule 114) - cast_expression -> '(' . multiplicative_expression '*' ')' unary_expression (rule 115) - cast_expression -> '(' . qualified_identifier rank_specifier type_quals_opt ')' unary_expression (rule 116) - cast_expression -> '(' . primitive_type type_quals_opt ')' unary_expression (rule 117) - cast_expression -> '(' . class_type type_quals_opt ')' unary_expression (rule 118) - cast_expression -> '(' . VOID type_quals_opt ')' unary_expression (rule 119) - - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + parenthesized_expression -> '(' . expression ')' (rule 72) + cast_expression -> '(' . expression ')' unary_expression_not_plusminus (rule 122) + cast_expression -> '(' . multiplicative_expression '*' ')' unary_expression (rule 123) + cast_expression -> '(' . qualified_identifier rank_specifier type_quals_opt ')' unary_expression (rule 124) + cast_expression -> '(' . primitive_type type_quals_opt ')' unary_expression (rule 125) + cast_expression -> '(' . VOID type_quals_opt ')' unary_expression (rule 126) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - VOID shift, and go to state 298 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 299 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 300 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 301 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 302 - qualified_identifier go to state 303 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + VOID shift, and go to state 259 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 260 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 261 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 262 + qualified_identifier go to state 263 qualifier go to state 10 -state 181 +state 175 - addressof_expression -> '&' . unary_expression (rule 94) + addressof_expression -> '&' . unary_expression (rule 102) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 304 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 264 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 182 +state 176 - unary_expression_not_plusminus -> '!' . unary_expression (rule 102) + unary_expression_not_plusminus -> '!' . unary_expression (rule 110) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 305 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 265 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 183 +state 177 - unary_expression_not_plusminus -> '~' . unary_expression (rule 103) + unary_expression_not_plusminus -> '~' . unary_expression (rule 111) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 306 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 266 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 184 +state 178 - unary_expression -> '+' . unary_expression (rule 108) + unary_expression -> '+' . unary_expression (rule 116) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 307 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 267 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 185 +state 179 - unary_expression -> '-' . unary_expression (rule 109) + unary_expression -> '-' . unary_expression (rule 117) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 308 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 268 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 186 +state 180 - primary_expression_no_parenthesis -> literal . (rule 52) + primary_expression_no_parenthesis -> literal . (rule 58) - $default reduce using rule 52 (primary_expression_no_parenthesis) + $default reduce using rule 58 (primary_expression_no_parenthesis) -state 187 +state 181 literal -> boolean_literal . (rule 1) @@ -3978,6016 +3883,7100 @@ state 187 +state 182 + + invocation_expression -> qualified_identifier_opt_generic . '(' argument_list_opt ')' (rule 77) + + '(' shift, and go to state 269 + + + +state 183 + + member_access -> primitive_type . '.' IDENTIFIER (rule 74) + + '.' shift, and go to state 270 + + + +state 184 + + member_access -> primary_expression . '.' IDENTIFIER (rule 73) + element_access -> primary_expression . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 80) + postfix_expression -> primary_expression . (rule 104) + + LEFT_BRACKET shift, and go to state 271 + '.' shift, and go to state 272 + + $default reduce using rule 104 (postfix_expression) + + + +state 185 + + primary_expression -> primary_expression_no_parenthesis . (rule 57) + invocation_expression -> primary_expression_no_parenthesis . opt_generic '(' @4 argument_list_opt ')' (rule 76) + + GEN_LT shift, and go to state 142 + + '(' reduce using rule 11 (opt_generic) + $default reduce using rule 57 (primary_expression) + + opt_generic go to state 273 + + + +state 186 + + primary_expression_no_parenthesis -> delegate_expression . (rule 66) + + $default reduce using rule 66 (primary_expression_no_parenthesis) + + + +state 187 + + primary_expression -> parenthesized_expression . (rule 56) + + $default reduce using rule 56 (primary_expression) + + + state 188 - member_access -> primitive_type . '.' IDENTIFIER (rule 66) + primary_expression_no_parenthesis -> member_access . (rule 60) - '.' shift, and go to state 309 + $default reduce using rule 60 (primary_expression_no_parenthesis) state 189 - member_access -> class_type . '.' IDENTIFIER (rule 67) + primary_expression_no_parenthesis -> invocation_expression . (rule 61) - '.' shift, and go to state 310 + $default reduce using rule 61 (primary_expression_no_parenthesis) state 190 - member_access -> primary_expression . '.' IDENTIFIER (rule 65) - element_access -> primary_expression . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 72) - postfix_expression -> primary_expression . (rule 96) + primary_expression_no_parenthesis -> element_access . (rule 62) - LEFT_BRACKET shift, and go to state 311 - '.' shift, and go to state 312 - - $default reduce using rule 96 (postfix_expression) + $default reduce using rule 62 (primary_expression_no_parenthesis) state 191 - primary_expression -> primary_expression_no_parenthesis . (rule 51) - invocation_expression -> primary_expression_no_parenthesis . '(' argument_list_opt ')' (rule 68) + attribute_arguments -> '(' expression_list_opt . ')' (rule 551) - '(' shift, and go to state 313 - - $default reduce using rule 51 (primary_expression) + ')' shift, and go to state 274 state 192 - primary_expression -> parenthesized_expression . (rule 50) + expression_list_opt -> expression_list . (rule 83) + expression_list -> expression_list . COMMA expression (rule 85) + + COMMA shift, and go to state 275 - $default reduce using rule 50 (primary_expression) + $default reduce using rule 83 (expression_list_opt) state 193 - primary_expression_no_parenthesis -> member_access . (rule 54) + primary_expression_no_parenthesis -> this_access . (rule 63) - $default reduce using rule 54 (primary_expression_no_parenthesis) + $default reduce using rule 63 (primary_expression_no_parenthesis) state 194 - primary_expression_no_parenthesis -> invocation_expression . (rule 55) + primary_expression_no_parenthesis -> base_access . (rule 64) - $default reduce using rule 55 (primary_expression_no_parenthesis) + $default reduce using rule 64 (primary_expression_no_parenthesis) state 195 - primary_expression_no_parenthesis -> element_access . (rule 56) + postfix_expression -> post_increment_expression . (rule 106) - $default reduce using rule 56 (primary_expression_no_parenthesis) + $default reduce using rule 106 (postfix_expression) state 196 - attribute_arguments -> '(' expression_list_opt . ')' (rule 530) + postfix_expression -> post_decrement_expression . (rule 107) - ')' shift, and go to state 314 + $default reduce using rule 107 (postfix_expression) state 197 - expression_list_opt -> expression_list . (rule 75) - expression_list -> expression_list . COMMA expression (rule 77) - - COMMA shift, and go to state 315 + primary_expression_no_parenthesis -> new_expression . (rule 65) - $default reduce using rule 75 (expression_list_opt) + $default reduce using rule 65 (primary_expression_no_parenthesis) state 198 - primary_expression_no_parenthesis -> this_access . (rule 57) + new_expression -> object_creation_expression . (rule 91) - $default reduce using rule 57 (primary_expression_no_parenthesis) + $default reduce using rule 91 (new_expression) state 199 - primary_expression_no_parenthesis -> base_access . (rule 58) + primary_expression_no_parenthesis -> array_creation_expression . (rule 59) - $default reduce using rule 58 (primary_expression_no_parenthesis) + $default reduce using rule 59 (primary_expression_no_parenthesis) state 200 - postfix_expression -> post_increment_expression . (rule 98) + primary_expression_no_parenthesis -> typeof_expression . (rule 67) - $default reduce using rule 98 (postfix_expression) + $default reduce using rule 67 (primary_expression_no_parenthesis) state 201 - postfix_expression -> post_decrement_expression . (rule 99) + primary_expression_no_parenthesis -> checked_expression . (rule 69) - $default reduce using rule 99 (postfix_expression) + $default reduce using rule 69 (primary_expression_no_parenthesis) state 202 - primary_expression_no_parenthesis -> new_expression . (rule 59) + primary_expression_no_parenthesis -> unchecked_expression . (rule 70) - $default reduce using rule 59 (primary_expression_no_parenthesis) + $default reduce using rule 70 (primary_expression_no_parenthesis) state 203 - new_expression -> object_creation_expression . (rule 83) + postfix_expression -> pointer_member_access . (rule 108) - $default reduce using rule 83 (new_expression) + $default reduce using rule 108 (postfix_expression) state 204 - primary_expression_no_parenthesis -> array_creation_expression . (rule 53) + unary_expression -> addressof_expression . (rule 121) - $default reduce using rule 53 (primary_expression_no_parenthesis) + $default reduce using rule 121 (unary_expression) state 205 - primary_expression_no_parenthesis -> typeof_expression . (rule 60) + primary_expression_no_parenthesis -> sizeof_expression . (rule 68) - $default reduce using rule 60 (primary_expression_no_parenthesis) + $default reduce using rule 68 (primary_expression_no_parenthesis) state 206 - primary_expression_no_parenthesis -> checked_expression . (rule 62) + post_increment_expression -> postfix_expression . PLUSPLUS (rule 89) + post_decrement_expression -> postfix_expression . MINUSMINUS (rule 90) + pointer_member_access -> postfix_expression . ARROW IDENTIFIER (rule 101) + unary_expression_not_plusminus -> postfix_expression . (rule 109) - $default reduce using rule 62 (primary_expression_no_parenthesis) + PLUSPLUS shift, and go to state 276 + MINUSMINUS shift, and go to state 277 + ARROW shift, and go to state 278 + + $default reduce using rule 109 (unary_expression_not_plusminus) state 207 - primary_expression_no_parenthesis -> unchecked_expression . (rule 63) + unary_expression -> unary_expression_not_plusminus . (rule 115) - $default reduce using rule 63 (primary_expression_no_parenthesis) + $default reduce using rule 115 (unary_expression) state 208 - postfix_expression -> pointer_member_access . (rule 100) + unary_expression -> pre_increment_expression . (rule 119) - $default reduce using rule 100 (postfix_expression) + $default reduce using rule 119 (unary_expression) state 209 - unary_expression -> addressof_expression . (rule 113) + unary_expression -> pre_decrement_expression . (rule 120) - $default reduce using rule 113 (unary_expression) + $default reduce using rule 120 (unary_expression) state 210 - primary_expression_no_parenthesis -> sizeof_expression . (rule 61) + multiplicative_expression -> unary_expression . (rule 133) + assignment -> unary_expression . assignment_operator expression (rule 165) - $default reduce using rule 61 (primary_expression_no_parenthesis) + PLUSEQ shift, and go to state 279 + MINUSEQ shift, and go to state 280 + STAREQ shift, and go to state 281 + DIVEQ shift, and go to state 282 + MODEQ shift, and go to state 283 + XOREQ shift, and go to state 284 + ANDEQ shift, and go to state 285 + OREQ shift, and go to state 286 + GTGTEQ shift, and go to state 287 + LTLTEQ shift, and go to state 288 + '=' shift, and go to state 289 + $default reduce using rule 133 (multiplicative_expression) + + assignment_operator go to state 290 -state 211 - post_increment_expression -> postfix_expression . PLUSPLUS (rule 81) - post_decrement_expression -> postfix_expression . MINUSMINUS (rule 82) - pointer_member_access -> postfix_expression . ARROW IDENTIFIER (rule 93) - unary_expression_not_plusminus -> postfix_expression . (rule 101) +state 211 - PLUSPLUS shift, and go to state 316 - MINUSMINUS shift, and go to state 317 - ARROW shift, and go to state 318 + unary_expression_not_plusminus -> cast_expression . (rule 112) - $default reduce using rule 101 (unary_expression_not_plusminus) + $default reduce using rule 112 (unary_expression_not_plusminus) state 212 - unary_expression -> unary_expression_not_plusminus . (rule 107) + multiplicative_expression -> multiplicative_expression . '*' unary_expression (rule 134) + multiplicative_expression -> multiplicative_expression . '/' unary_expression (rule 135) + multiplicative_expression -> multiplicative_expression . '%' unary_expression (rule 136) + additive_expression -> multiplicative_expression . (rule 137) + + '*' shift, and go to state 291 + '/' shift, and go to state 292 + '%' shift, and go to state 293 - $default reduce using rule 107 (unary_expression) + $default reduce using rule 137 (additive_expression) state 213 - unary_expression -> pre_increment_expression . (rule 111) + additive_expression -> additive_expression . '+' multiplicative_expression (rule 138) + additive_expression -> additive_expression . '-' multiplicative_expression (rule 139) + shift_expression -> additive_expression . (rule 140) - $default reduce using rule 111 (unary_expression) + '+' shift, and go to state 294 + '-' shift, and go to state 295 + + $default reduce using rule 140 (shift_expression) state 214 - unary_expression -> pre_decrement_expression . (rule 112) + shift_expression -> shift_expression . LTLT additive_expression (rule 141) + shift_expression -> shift_expression . GTGT additive_expression (rule 142) + relational_expression -> shift_expression . (rule 143) - $default reduce using rule 112 (unary_expression) + GTGT shift, and go to state 296 + LTLT shift, and go to state 297 + $default reduce using rule 143 (relational_expression) -state 215 - multiplicative_expression -> unary_expression . (rule 126) - assignment -> unary_expression . assignment_operator expression (rule 158) +state 215 - PLUSEQ shift, and go to state 319 - MINUSEQ shift, and go to state 320 - STAREQ shift, and go to state 321 - DIVEQ shift, and go to state 322 - MODEQ shift, and go to state 323 - XOREQ shift, and go to state 324 - ANDEQ shift, and go to state 325 - OREQ shift, and go to state 326 - GTGTEQ shift, and go to state 327 - LTLTEQ shift, and go to state 328 - '=' shift, and go to state 329 + relational_expression -> relational_expression . LT shift_expression (rule 144) + relational_expression -> relational_expression . GT shift_expression (rule 145) + relational_expression -> relational_expression . LEQ shift_expression (rule 146) + relational_expression -> relational_expression . GEQ shift_expression (rule 147) + relational_expression -> relational_expression . IS type (rule 148) + relational_expression -> relational_expression . AS type (rule 149) + equality_expression -> relational_expression . (rule 150) - $default reduce using rule 126 (multiplicative_expression) + AS shift, and go to state 298 + IS shift, and go to state 299 + GT shift, and go to state 300 + LT shift, and go to state 301 + LEQ shift, and go to state 302 + GEQ shift, and go to state 303 - assignment_operator go to state 330 + $default reduce using rule 150 (equality_expression) state 216 - unary_expression_not_plusminus -> cast_expression . (rule 104) + equality_expression -> equality_expression . EQEQ relational_expression (rule 151) + equality_expression -> equality_expression . NOTEQ relational_expression (rule 152) + and_expression -> equality_expression . (rule 153) + + EQEQ shift, and go to state 304 + NOTEQ shift, and go to state 305 - $default reduce using rule 104 (unary_expression_not_plusminus) + $default reduce using rule 153 (and_expression) state 217 - multiplicative_expression -> multiplicative_expression . '*' unary_expression (rule 127) - multiplicative_expression -> multiplicative_expression . '/' unary_expression (rule 128) - multiplicative_expression -> multiplicative_expression . '%' unary_expression (rule 129) - additive_expression -> multiplicative_expression . (rule 130) + and_expression -> and_expression . '&' equality_expression (rule 154) + exclusive_or_expression -> and_expression . (rule 155) - '*' shift, and go to state 331 - '/' shift, and go to state 332 - '%' shift, and go to state 333 + '&' shift, and go to state 306 - $default reduce using rule 130 (additive_expression) + $default reduce using rule 155 (exclusive_or_expression) state 218 - additive_expression -> additive_expression . '+' multiplicative_expression (rule 131) - additive_expression -> additive_expression . '-' multiplicative_expression (rule 132) - shift_expression -> additive_expression . (rule 133) + exclusive_or_expression -> exclusive_or_expression . '^' and_expression (rule 156) + inclusive_or_expression -> exclusive_or_expression . (rule 157) - '+' shift, and go to state 334 - '-' shift, and go to state 335 + '^' shift, and go to state 307 - $default reduce using rule 133 (shift_expression) + $default reduce using rule 157 (inclusive_or_expression) state 219 - shift_expression -> shift_expression . LTLT additive_expression (rule 134) - shift_expression -> shift_expression . GTGT additive_expression (rule 135) - relational_expression -> shift_expression . (rule 136) + inclusive_or_expression -> inclusive_or_expression . '|' exclusive_or_expression (rule 158) + conditional_and_expression -> inclusive_or_expression . (rule 159) - LTLT shift, and go to state 336 - GTGT shift, and go to state 337 + '|' shift, and go to state 308 - $default reduce using rule 136 (relational_expression) + $default reduce using rule 159 (conditional_and_expression) state 220 - relational_expression -> relational_expression . '<' shift_expression (rule 137) - relational_expression -> relational_expression . '>' shift_expression (rule 138) - relational_expression -> relational_expression . LEQ shift_expression (rule 139) - relational_expression -> relational_expression . GEQ shift_expression (rule 140) - relational_expression -> relational_expression . IS type (rule 141) - relational_expression -> relational_expression . AS type (rule 142) - equality_expression -> relational_expression . (rule 143) + conditional_and_expression -> conditional_and_expression . ANDAND inclusive_or_expression (rule 160) + conditional_or_expression -> conditional_and_expression . (rule 161) - AS shift, and go to state 338 - IS shift, and go to state 339 - LEQ shift, and go to state 340 - GEQ shift, and go to state 341 - '<' shift, and go to state 342 - '>' shift, and go to state 343 + ANDAND shift, and go to state 309 - $default reduce using rule 143 (equality_expression) + $default reduce using rule 161 (conditional_or_expression) state 221 - equality_expression -> equality_expression . EQEQ relational_expression (rule 144) - equality_expression -> equality_expression . NOTEQ relational_expression (rule 145) - and_expression -> equality_expression . (rule 146) + conditional_or_expression -> conditional_or_expression . OROR conditional_and_expression (rule 162) + conditional_expression -> conditional_or_expression . (rule 163) + conditional_expression -> conditional_or_expression . '?' expression ':' expression (rule 164) - EQEQ shift, and go to state 344 - NOTEQ shift, and go to state 345 + OROR shift, and go to state 310 + '?' shift, and go to state 311 - $default reduce using rule 146 (and_expression) + $default reduce using rule 163 (conditional_expression) state 222 - and_expression -> and_expression . '&' equality_expression (rule 147) - exclusive_or_expression -> and_expression . (rule 148) + expression -> conditional_expression . (rule 177) - '&' shift, and go to state 346 - - $default reduce using rule 148 (exclusive_or_expression) + $default reduce using rule 177 (expression) state 223 - exclusive_or_expression -> exclusive_or_expression . '^' and_expression (rule 149) - inclusive_or_expression -> exclusive_or_expression . (rule 150) - - '^' shift, and go to state 347 + expression -> assignment . (rule 178) - $default reduce using rule 150 (inclusive_or_expression) + $default reduce using rule 178 (expression) state 224 - inclusive_or_expression -> inclusive_or_expression . '|' exclusive_or_expression (rule 151) - conditional_and_expression -> inclusive_or_expression . (rule 152) + expression_list -> expression . (rule 84) - '|' shift, and go to state 348 - - $default reduce using rule 152 (conditional_and_expression) + $default reduce using rule 84 (expression_list) state 225 - conditional_and_expression -> conditional_and_expression . ANDAND inclusive_or_expression (rule 153) - conditional_or_expression -> conditional_and_expression . (rule 154) + qualified_identifier_opt_generic -> qualified_identifier . @2 opt_generic (rule 15) + element_access -> qualified_identifier . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 81) + postfix_expression -> qualified_identifier . (rule 105) - ANDAND shift, and go to state 349 + LEFT_BRACKET shift, and go to state 312 - $default reduce using rule 154 (conditional_or_expression) + GEN_LT reduce using rule 14 (@2) + '(' reduce using rule 14 (@2) + $default reduce using rule 105 (postfix_expression) + @2 go to state 123 -state 226 - conditional_or_expression -> conditional_or_expression . OROR conditional_and_expression (rule 155) - conditional_expression -> conditional_or_expression . (rule 156) - conditional_expression -> conditional_or_expression . '?' expression ':' expression (rule 157) +state 226 - OROR shift, and go to state 350 - '?' shift, and go to state 351 + namespace_body -> '{' using_directives_opt namespace_member_declarations_opt . '}' (rule 315) - $default reduce using rule 156 (conditional_expression) + '}' shift, and go to state 313 state 227 - expression -> conditional_expression . (rule 170) + namespace_member_declarations_opt -> namespace_member_declarations . (rule 306) + namespace_member_declarations -> namespace_member_declarations . namespace_member_declaration (rule 323) + + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 306 (namespace_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) - $default reduce using rule 170 (expression) + attributes_opt go to state 49 + namespace_declaration go to state 12 + namespace_member_declaration go to state 50 + type_declaration go to state 15 + class_declaration go to state 16 + struct_declaration go to state 17 + interface_declaration go to state 18 + enum_declaration go to state 19 + delegate_declaration go to state 20 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 228 - expression -> assignment . (rule 171) + opt_generic_fct -> GEN_LT name_list GEN_GT . (rule 380) - $default reduce using rule 171 (expression) + $default reduce using rule 380 (opt_generic_fct) state 229 - expression_list -> expression . (rule 76) + name_list -> name_list COMMA . IDENTIFIER (rule 378) - $default reduce using rule 76 (expression_list) + IDENTIFIER shift, and go to state 314 state 230 - invocation_expression -> qualified_identifier . '(' argument_list_opt ')' (rule 69) - element_access -> qualified_identifier . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 73) - postfix_expression -> qualified_identifier . (rule 97) + class_base -> ':' . interface_type_list (rule 354) - LEFT_BRACKET shift, and go to state 352 - '(' shift, and go to state 353 + IDENTIFIER shift, and go to state 53 - $default reduce using rule 97 (postfix_expression) + type_name go to state 237 + qualified_identifier_opt_generic go to state 93 + qualified_identifier go to state 109 + qualifier go to state 10 + interface_type_list go to state 315 state 231 - namespace_body -> '{' using_directives_opt namespace_member_declarations_opt '}' . (rule 306) + class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 class_base_opt . class_body comma_opt (rule 351) - $default reduce using rule 306 (namespace_body) + '{' shift, and go to state 316 + class_body go to state 317 -state 232 - class_base -> ':' class_type COMMA . interface_type_list (rule 345) +state 232 - IDENTIFIER shift, and go to state 52 + class_base_opt -> class_base . (rule 353) - type_name go to state 145 - qualified_identifier go to state 111 - qualifier go to state 10 - interface_type_list go to state 354 + $default reduce using rule 353 (class_base_opt) state 233 - interface_type_list -> interface_type_list COMMA . type_name (rule 347) - - IDENTIFIER shift, and go to state 52 + opt_generic -> GEN_LT @1 . genericlist GEN_GT (rule 13) - type_name go to state 355 - qualified_identifier go to state 111 + IDENTIFIER shift, and go to state 53 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + DECIMAL shift, and go to state 81 + DOUBLE shift, and go to state 82 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + genericlist go to state 318 + type go to state 319 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 state 234 - class_declaration -> attributes_opt . modifiers_opt CLASS IDENTIFIER class_base_opt class_body comma_opt (rule 340) - constant_declaration -> attributes_opt . modifiers_opt CONST type constant_declarators ';' (rule 363) - field_declaration -> attributes_opt . modifiers_opt type variable_declarators ';' (rule 364) - method_header -> attributes_opt . modifiers_opt type qualified_identifier '(' formal_parameter_list_opt ')' (rule 366) - method_header -> attributes_opt . modifiers_opt VOID qualified_identifier '(' formal_parameter_list_opt ')' (rule 367) - property_declaration -> attributes_opt . modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 383) - event_declaration -> attributes_opt . modifiers_opt EVENT type variable_declarators ';' (rule 394) - event_declaration -> attributes_opt . modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 395) - indexer_declaration -> attributes_opt . modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 400) - operator_declaration -> attributes_opt . modifiers_opt operator_declarator operator_body (rule 404) - constructor_declaration -> attributes_opt . modifiers_opt constructor_declarator constructor_body (rule 433) - destructor_declaration -> attributes_opt . modifiers_opt '~' IDENTIFIER '(' ')' block (rule 439) - struct_declaration -> attributes_opt . modifiers_opt STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt (rule 444) - interface_declaration -> attributes_opt . modifiers_opt INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt (rule 468) - enum_declaration -> attributes_opt . modifiers_opt ENUM IDENTIFIER enum_base_opt enum_body comma_opt (rule 494) - delegate_declaration -> attributes_opt . modifiers_opt DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) - - ABSTRACT shift, and go to state 30 - EXTERN shift, and go to state 31 - INTERNAL shift, and go to state 32 - NEW shift, and go to state 34 - OVERRIDE shift, and go to state 35 - PRIVATE shift, and go to state 36 - PROTECTED shift, and go to state 37 - PUBLIC shift, and go to state 38 - READONLY shift, and go to state 39 - SEALED shift, and go to state 40 - STATIC shift, and go to state 41 - UNSAFE shift, and go to state 42 - VIRTUAL shift, and go to state 43 - VOLATILE shift, and go to state 44 + delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' . formal_parameter_list_opt ')' ';' (rule 527) - $default reduce using rule 322 (modifiers_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + ')' reduce using rule 381 (formal_parameter_list_opt) + $default reduce using rule 303 (attributes_opt) - modifiers_opt go to state 356 - modifiers go to state 46 - modifier go to state 47 + attributes_opt go to state 320 + formal_parameter_list_opt go to state 321 + formal_parameter_list go to state 322 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 235 - class_member_declaration -> type_declaration . (rule 362) + enum_body -> '{' . enum_member_declarations_opt '}' (rule 519) + enum_body -> '{' . enum_member_declarations COMMA '}' (rule 520) - $default reduce using rule 362 (class_member_declaration) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 521 (enum_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) + + attributes_opt go to state 326 + enum_member_declarations_opt go to state 327 + enum_member_declarations go to state 328 + enum_member_declaration go to state 329 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 236 - class_body -> '{' class_member_declarations_opt . '}' (rule 348) + enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt @10 enum_body . comma_opt (rule 515) - '}' shift, and go to state 357 + ';' shift, and go to state 137 + $default reduce using rule 309 (comma_opt) + comma_opt go to state 330 -state 237 - class_member_declarations_opt -> class_member_declarations . (rule 350) - class_member_declarations -> class_member_declarations . class_member_declaration (rule 352) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 350 (class_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) +state 237 - attributes_opt go to state 234 - type_declaration go to state 235 - class_declaration go to state 16 - class_member_declaration go to state 358 - constant_declaration go to state 239 - field_declaration go to state 240 - method_declaration go to state 241 - method_header go to state 242 - property_declaration go to state 243 - event_declaration go to state 244 - indexer_declaration go to state 245 - operator_declaration go to state 246 - constructor_declaration go to state 247 - destructor_declaration go to state 248 - struct_declaration go to state 17 - interface_declaration go to state 18 - enum_declaration go to state 19 - delegate_declaration go to state 20 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + interface_type_list -> type_name . (rule 355) + + $default reduce using rule 355 (interface_type_list) state 238 - class_member_declarations -> class_member_declaration . (rule 351) + interface_type_list -> interface_type_list . COMMA type_name (rule 356) + interface_base -> ':' interface_type_list . (rule 491) - $default reduce using rule 351 (class_member_declarations) + COMMA shift, and go to state 331 + + $default reduce using rule 491 (interface_base) state 239 - class_member_declaration -> constant_declaration . (rule 353) + interface_body -> '{' . interface_member_declarations_opt '}' (rule 492) + + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 493 (interface_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) - $default reduce using rule 353 (class_member_declaration) + attributes_opt go to state 332 + interface_member_declarations_opt go to state 333 + interface_member_declarations go to state 334 + interface_member_declaration go to state 335 + interface_method_declaration go to state 336 + interface_property_declaration go to state 337 + interface_indexer_declaration go to state 338 + interface_event_declaration go to state 339 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 240 - class_member_declaration -> field_declaration . (rule 354) + interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER @9 interface_base_opt interface_body . comma_opt (rule 488) - $default reduce using rule 354 (class_member_declaration) + ';' shift, and go to state 137 + + $default reduce using rule 309 (comma_opt) + + comma_opt go to state 340 state 241 - class_member_declaration -> method_declaration . (rule 355) + interface_type_list -> interface_type_list . COMMA type_name (rule 356) + struct_interfaces -> ':' interface_type_list . (rule 464) - $default reduce using rule 355 (class_member_declaration) + COMMA shift, and go to state 331 + + $default reduce using rule 464 (struct_interfaces) state 242 - method_declaration -> method_header . method_body (rule 365) + struct_body -> '{' . struct_member_declarations_opt '}' (rule 465) - '{' shift, and go to state 359 - ';' shift, and go to state 360 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 466 (struct_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) - block go to state 361 - method_body go to state 362 + attributes_opt go to state 341 + type_declaration go to state 342 + class_declaration go to state 16 + constant_declaration go to state 343 + field_declaration go to state 344 + method_declaration go to state 345 + method_header go to state 346 + property_declaration go to state 347 + event_declaration go to state 348 + indexer_declaration go to state 349 + operator_declaration go to state 350 + constructor_declaration go to state 351 + struct_declaration go to state 17 + struct_member_declarations_opt go to state 352 + struct_member_declarations go to state 353 + struct_member_declaration go to state 354 + interface_declaration go to state 18 + enum_declaration go to state 19 + delegate_declaration go to state 20 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 243 - class_member_declaration -> property_declaration . (rule 356) + struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body . comma_opt (rule 461) - $default reduce using rule 356 (class_member_declaration) + ';' shift, and go to state 137 + + $default reduce using rule 309 (comma_opt) + + comma_opt go to state 355 state 244 - class_member_declaration -> event_declaration . (rule 357) + attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET EXIT_attrib . (rule 532) - $default reduce using rule 357 (class_member_declaration) + $default reduce using rule 532 (attribute_section) state 245 - class_member_declaration -> indexer_declaration . (rule 358) + base_access -> BASE LEFT_BRACKET . expression_list RIGHT_BRACKET (rule 88) - $default reduce using rule 358 (class_member_declaration) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + expression_list go to state 356 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 224 + qualified_identifier go to state 225 + qualifier go to state 10 state 246 - class_member_declaration -> operator_declaration . (rule 359) + base_access -> BASE '.' . IDENTIFIER (rule 87) - $default reduce using rule 359 (class_member_declaration) + IDENTIFIER shift, and go to state 357 state 247 - class_member_declaration -> constructor_declaration . (rule 360) + checked_expression -> CHECKED '(' . expression ')' (rule 99) - $default reduce using rule 360 (class_member_declaration) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 358 + qualified_identifier go to state 225 + qualifier go to state 10 state 248 - class_member_declaration -> destructor_declaration . (rule 361) + delegate_expression -> DELEGATE '(' . formal_parameter_list_opt ')' block (rule 71) - $default reduce using rule 361 (class_member_declaration) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + ')' reduce using rule 381 (formal_parameter_list_opt) + $default reduce using rule 303 (attributes_opt) + + attributes_opt go to state 320 + formal_parameter_list_opt go to state 359 + formal_parameter_list go to state 322 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 249 - class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER class_base_opt class_body comma_opt . (rule 340) + pointer_type -> VOID . '*' (rule 42) - $default reduce using rule 340 (class_declaration) + '*' shift, and go to state 118 state 250 - fixed_parameter -> attributes_opt . parameter_modifier_opt type IDENTIFIER (rule 378) - parameter_array -> attributes_opt . PARAMS type IDENTIFIER (rule 382) - - OUT shift, and go to state 363 - PARAMS shift, and go to state 364 - REF shift, and go to state 365 + pointer_type -> type . '*' (rule 41) + object_creation_expression -> NEW type . '(' argument_list_opt ')' (rule 92) - $default reduce using rule 379 (parameter_modifier_opt) - - parameter_modifier_opt go to state 366 + '*' shift, and go to state 119 + '(' shift, and go to state 360 state 251 - delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt . ')' ';' (rule 506) + type -> non_array_type . (rule 19) + array_creation_expression -> NEW non_array_type . LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt (rule 93) + + LEFT_BRACKET shift, and go to state 361 - ')' shift, and go to state 367 + $default reduce using rule 19 (type) state 252 - formal_parameter_list_opt -> formal_parameter_list . (rule 369) - formal_parameter_list -> formal_parameter_list . COMMA formal_parameter (rule 375) + type -> array_type . (rule 20) + array_type -> array_type . rank_specifier (rule 43) + array_creation_expression -> NEW array_type . array_initializer (rule 94) - COMMA shift, and go to state 368 + RANK_SPECIFIER shift, and go to state 120 + '{' shift, and go to state 362 - $default reduce using rule 369 (formal_parameter_list_opt) + $default reduce using rule 20 (type) + + rank_specifier go to state 122 + array_initializer go to state 363 state 253 - formal_parameter_list -> formal_parameter . (rule 374) + sizeof_expression -> SIZEOF '(' . type ')' (rule 103) - $default reduce using rule 374 (formal_parameter_list) + IDENTIFIER shift, and go to state 53 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + DECIMAL shift, and go to state 81 + DOUBLE shift, and go to state 82 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 364 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 + qualifier go to state 10 state 254 - formal_parameter -> fixed_parameter . (rule 376) - - $default reduce using rule 376 (formal_parameter) - - - -state 255 - - formal_parameter -> parameter_array . (rule 377) + typeof_expression -> TYPEOF '(' . type ')' (rule 97) + typeof_expression -> TYPEOF '(' . VOID ')' (rule 98) - $default reduce using rule 377 (formal_parameter) + IDENTIFIER shift, and go to state 53 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + DECIMAL shift, and go to state 81 + DOUBLE shift, and go to state 82 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 365 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 366 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 + qualifier go to state 10 + + + +state 255 + + unchecked_expression -> UNCHECKED '(' . expression ')' (rule 100) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 367 + qualified_identifier go to state 225 + qualifier go to state 10 state 256 - enum_member_declaration -> attributes_opt . IDENTIFIER (rule 504) - enum_member_declaration -> attributes_opt . IDENTIFIER '=' constant_expression (rule 505) + pre_increment_expression -> PLUSPLUS unary_expression . (rule 113) - IDENTIFIER shift, and go to state 369 + $default reduce using rule 113 (pre_increment_expression) state 257 - enum_body -> '{' enum_member_declarations_opt . '}' (rule 498) + pre_decrement_expression -> MINUSMINUS unary_expression . (rule 114) - '}' shift, and go to state 370 + $default reduce using rule 114 (pre_decrement_expression) state 258 - enum_body -> '{' enum_member_declarations . COMMA '}' (rule 499) - enum_member_declarations_opt -> enum_member_declarations . (rule 501) - enum_member_declarations -> enum_member_declarations . COMMA enum_member_declaration (rule 503) + unary_expression -> '*' unary_expression . (rule 118) - COMMA shift, and go to state 371 - - $default reduce using rule 501 (enum_member_declarations_opt) + $default reduce using rule 118 (unary_expression) state 259 - enum_member_declarations -> enum_member_declaration . (rule 502) + cast_expression -> '(' VOID . type_quals_opt ')' unary_expression (rule 126) + + RANK_SPECIFIER shift, and go to state 120 + '*' shift, and go to state 368 - $default reduce using rule 502 (enum_member_declarations) + $default reduce using rule 127 (type_quals_opt) + + rank_specifier go to state 369 + type_quals_opt go to state 370 + type_quals go to state 371 + type_qual go to state 372 state 260 - enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt enum_body comma_opt . (rule 494) + member_access -> primitive_type . '.' IDENTIFIER (rule 74) + cast_expression -> '(' primitive_type . type_quals_opt ')' unary_expression (rule 125) - $default reduce using rule 494 (enum_declaration) + RANK_SPECIFIER shift, and go to state 120 + '*' shift, and go to state 368 + '.' shift, and go to state 270 + $default reduce using rule 127 (type_quals_opt) + rank_specifier go to state 369 + type_quals_opt go to state 373 + type_quals go to state 371 + type_qual go to state 372 -state 261 - interface_method_declaration -> attributes_opt . new_opt type IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 481) - interface_method_declaration -> attributes_opt . new_opt VOID IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 482) - interface_property_declaration -> attributes_opt . new_opt type IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 485) - interface_indexer_declaration -> attributes_opt . new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 486) - interface_event_declaration -> attributes_opt . new_opt EVENT type IDENTIFIER interface_empty_body (rule 491) - NEW shift, and go to state 372 +state 261 + + cast_expression -> '(' multiplicative_expression . '*' ')' unary_expression (rule 123) + multiplicative_expression -> multiplicative_expression . '*' unary_expression (rule 134) + multiplicative_expression -> multiplicative_expression . '/' unary_expression (rule 135) + multiplicative_expression -> multiplicative_expression . '%' unary_expression (rule 136) + additive_expression -> multiplicative_expression . (rule 137) - $default reduce using rule 483 (new_opt) + '*' shift, and go to state 374 + '/' shift, and go to state 292 + '%' shift, and go to state 293 - new_opt go to state 373 + $default reduce using rule 137 (additive_expression) state 262 - interface_body -> '{' interface_member_declarations_opt . '}' (rule 472) + parenthesized_expression -> '(' expression . ')' (rule 72) + cast_expression -> '(' expression . ')' unary_expression_not_plusminus (rule 122) - '}' shift, and go to state 374 + ')' shift, and go to state 375 state 263 - interface_member_declarations_opt -> interface_member_declarations . (rule 474) - interface_member_declarations -> interface_member_declarations . interface_member_declaration (rule 476) + qualified_identifier_opt_generic -> qualified_identifier . @2 opt_generic (rule 15) + element_access -> qualified_identifier . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 81) + postfix_expression -> qualified_identifier . (rule 105) + cast_expression -> '(' qualified_identifier . rank_specifier type_quals_opt ')' unary_expression (rule 124) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 474 (interface_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) + RANK_SPECIFIER shift, and go to state 120 + LEFT_BRACKET shift, and go to state 312 - attributes_opt go to state 261 - interface_member_declaration go to state 375 - interface_method_declaration go to state 265 - interface_property_declaration go to state 266 - interface_indexer_declaration go to state 267 - interface_event_declaration go to state 268 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + GEN_LT reduce using rule 14 (@2) + '(' reduce using rule 14 (@2) + $default reduce using rule 105 (postfix_expression) + + @2 go to state 123 + rank_specifier go to state 376 state 264 - interface_member_declarations -> interface_member_declaration . (rule 475) + addressof_expression -> '&' unary_expression . (rule 102) - $default reduce using rule 475 (interface_member_declarations) + $default reduce using rule 102 (addressof_expression) state 265 - interface_member_declaration -> interface_method_declaration . (rule 477) + unary_expression_not_plusminus -> '!' unary_expression . (rule 110) - $default reduce using rule 477 (interface_member_declaration) + $default reduce using rule 110 (unary_expression_not_plusminus) state 266 - interface_member_declaration -> interface_property_declaration . (rule 478) + unary_expression_not_plusminus -> '~' unary_expression . (rule 111) - $default reduce using rule 478 (interface_member_declaration) + $default reduce using rule 111 (unary_expression_not_plusminus) state 267 - interface_member_declaration -> interface_indexer_declaration . (rule 480) + unary_expression -> '+' unary_expression . (rule 116) - $default reduce using rule 480 (interface_member_declaration) + $default reduce using rule 116 (unary_expression) state 268 - interface_member_declaration -> interface_event_declaration . (rule 479) + unary_expression -> '-' unary_expression . (rule 117) - $default reduce using rule 479 (interface_member_declaration) + $default reduce using rule 117 (unary_expression) state 269 - interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt . (rule 468) + invocation_expression -> qualified_identifier_opt_generic '(' . argument_list_opt ')' (rule 77) - $default reduce using rule 468 (interface_declaration) + IDENTIFIER shift, and go to state 377 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + OUT shift, and go to state 378 + REF shift, and go to state 379 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 78 (argument_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + argument_list go to state 380 + argument go to state 381 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + argument_list_opt go to state 382 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 383 + qualified_identifier go to state 225 + qualifier go to state 10 state 270 - class_declaration -> attributes_opt . modifiers_opt CLASS IDENTIFIER class_base_opt class_body comma_opt (rule 340) - constant_declaration -> attributes_opt . modifiers_opt CONST type constant_declarators ';' (rule 363) - field_declaration -> attributes_opt . modifiers_opt type variable_declarators ';' (rule 364) - method_header -> attributes_opt . modifiers_opt type qualified_identifier '(' formal_parameter_list_opt ')' (rule 366) - method_header -> attributes_opt . modifiers_opt VOID qualified_identifier '(' formal_parameter_list_opt ')' (rule 367) - property_declaration -> attributes_opt . modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 383) - event_declaration -> attributes_opt . modifiers_opt EVENT type variable_declarators ';' (rule 394) - event_declaration -> attributes_opt . modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 395) - indexer_declaration -> attributes_opt . modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 400) - operator_declaration -> attributes_opt . modifiers_opt operator_declarator operator_body (rule 404) - constructor_declaration -> attributes_opt . modifiers_opt constructor_declarator constructor_body (rule 433) - struct_declaration -> attributes_opt . modifiers_opt STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt (rule 444) - interface_declaration -> attributes_opt . modifiers_opt INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt (rule 468) - enum_declaration -> attributes_opt . modifiers_opt ENUM IDENTIFIER enum_base_opt enum_body comma_opt (rule 494) - delegate_declaration -> attributes_opt . modifiers_opt DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) - - ABSTRACT shift, and go to state 30 - EXTERN shift, and go to state 31 - INTERNAL shift, and go to state 32 - NEW shift, and go to state 34 - OVERRIDE shift, and go to state 35 - PRIVATE shift, and go to state 36 - PROTECTED shift, and go to state 37 - PUBLIC shift, and go to state 38 - READONLY shift, and go to state 39 - SEALED shift, and go to state 40 - STATIC shift, and go to state 41 - UNSAFE shift, and go to state 42 - VIRTUAL shift, and go to state 43 - VOLATILE shift, and go to state 44 - - $default reduce using rule 322 (modifiers_opt) + member_access -> primitive_type '.' . IDENTIFIER (rule 74) - modifiers_opt go to state 376 - modifiers go to state 46 - modifier go to state 47 + IDENTIFIER shift, and go to state 384 state 271 - struct_member_declaration -> type_declaration . (rule 461) + element_access -> primary_expression LEFT_BRACKET . expression_list RIGHT_BRACKET (rule 80) - $default reduce using rule 461 (struct_member_declaration) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + expression_list go to state 385 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 224 + qualified_identifier go to state 225 + qualifier go to state 10 state 272 - struct_member_declaration -> constant_declaration . (rule 453) + member_access -> primary_expression '.' . IDENTIFIER (rule 73) - $default reduce using rule 453 (struct_member_declaration) + IDENTIFIER shift, and go to state 386 state 273 - struct_member_declaration -> field_declaration . (rule 454) + invocation_expression -> primary_expression_no_parenthesis opt_generic . '(' @4 argument_list_opt ')' (rule 76) - $default reduce using rule 454 (struct_member_declaration) + '(' shift, and go to state 387 state 274 - struct_member_declaration -> method_declaration . (rule 455) + attribute_arguments -> '(' expression_list_opt ')' . (rule 551) - $default reduce using rule 455 (struct_member_declaration) + $default reduce using rule 551 (attribute_arguments) state 275 - struct_member_declaration -> property_declaration . (rule 456) + expression_list -> expression_list COMMA . expression (rule 85) - $default reduce using rule 456 (struct_member_declaration) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 388 + qualified_identifier go to state 225 + qualifier go to state 10 state 276 - struct_member_declaration -> event_declaration . (rule 457) + post_increment_expression -> postfix_expression PLUSPLUS . (rule 89) - $default reduce using rule 457 (struct_member_declaration) + $default reduce using rule 89 (post_increment_expression) state 277 - struct_member_declaration -> indexer_declaration . (rule 458) + post_decrement_expression -> postfix_expression MINUSMINUS . (rule 90) - $default reduce using rule 458 (struct_member_declaration) + $default reduce using rule 90 (post_decrement_expression) state 278 - struct_member_declaration -> operator_declaration . (rule 459) + pointer_member_access -> postfix_expression ARROW . IDENTIFIER (rule 101) - $default reduce using rule 459 (struct_member_declaration) + IDENTIFIER shift, and go to state 389 state 279 - struct_member_declaration -> constructor_declaration . (rule 460) + assignment_operator -> PLUSEQ . (rule 167) - $default reduce using rule 460 (struct_member_declaration) + $default reduce using rule 167 (assignment_operator) state 280 - struct_body -> '{' struct_member_declarations_opt . '}' (rule 448) + assignment_operator -> MINUSEQ . (rule 168) - '}' shift, and go to state 377 + $default reduce using rule 168 (assignment_operator) state 281 - struct_member_declarations_opt -> struct_member_declarations . (rule 450) - struct_member_declarations -> struct_member_declarations . struct_member_declaration (rule 452) - - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 450 (struct_member_declarations_opt) - $default reduce using rule 295 (attributes_opt) + assignment_operator -> STAREQ . (rule 169) - attributes_opt go to state 270 - type_declaration go to state 271 - class_declaration go to state 16 - constant_declaration go to state 272 - field_declaration go to state 273 - method_declaration go to state 274 - method_header go to state 242 - property_declaration go to state 275 - event_declaration go to state 276 - indexer_declaration go to state 277 - operator_declaration go to state 278 - constructor_declaration go to state 279 - struct_declaration go to state 17 - struct_member_declaration go to state 378 - interface_declaration go to state 18 - enum_declaration go to state 19 - delegate_declaration go to state 20 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + $default reduce using rule 169 (assignment_operator) state 282 - struct_member_declarations -> struct_member_declaration . (rule 451) + assignment_operator -> DIVEQ . (rule 170) - $default reduce using rule 451 (struct_member_declarations) + $default reduce using rule 170 (assignment_operator) state 283 - struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt . (rule 444) + assignment_operator -> MODEQ . (rule 171) - $default reduce using rule 444 (struct_declaration) + $default reduce using rule 171 (assignment_operator) state 284 - attribute_section -> ENTER_attrib LEFT_BRACKET attribute_target_specifier_opt attribute_list COMMA RIGHT_BRACKET EXIT_attrib . (rule 511) + assignment_operator -> XOREQ . (rule 172) - $default reduce using rule 511 (attribute_section) + $default reduce using rule 172 (assignment_operator) state 285 - base_access -> BASE LEFT_BRACKET . expression_list RIGHT_BRACKET (rule 80) + assignment_operator -> ANDEQ . (rule 173) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - expression_list go to state 379 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 229 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 173 (assignment_operator) state 286 - base_access -> BASE '.' . IDENTIFIER (rule 79) + assignment_operator -> OREQ . (rule 174) - IDENTIFIER shift, and go to state 380 + $default reduce using rule 174 (assignment_operator) state 287 - checked_expression -> CHECKED '(' . expression ')' (rule 91) + assignment_operator -> GTGTEQ . (rule 175) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 381 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 175 (assignment_operator) state 288 - pointer_type -> VOID . '*' (rule 37) + assignment_operator -> LTLTEQ . (rule 176) - '*' shift, and go to state 122 + $default reduce using rule 176 (assignment_operator) state 289 - pointer_type -> type . '*' (rule 36) - object_creation_expression -> NEW type . '(' argument_list_opt ')' (rule 84) + assignment_operator -> '=' . (rule 166) - '*' shift, and go to state 123 - '(' shift, and go to state 382 + $default reduce using rule 166 (assignment_operator) state 290 - type -> non_array_type . (rule 11) - array_creation_expression -> NEW non_array_type . LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt (rule 85) - - LEFT_BRACKET shift, and go to state 383 + assignment -> unary_expression assignment_operator . expression (rule 165) - $default reduce using rule 11 (type) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 390 + qualified_identifier go to state 225 + qualifier go to state 10 state 291 - type -> array_type . (rule 12) - array_type -> array_type . rank_specifier (rule 38) - array_creation_expression -> NEW array_type . array_initializer (rule 86) - - RANK_SPECIFIER shift, and go to state 124 - '{' shift, and go to state 384 + multiplicative_expression -> multiplicative_expression '*' . unary_expression (rule 134) - $default reduce using rule 12 (type) - - rank_specifier go to state 126 - array_initializer go to state 385 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 391 + cast_expression go to state 211 + qualified_identifier go to state 225 + qualifier go to state 10 state 292 - sizeof_expression -> SIZEOF '(' . type ')' (rule 95) + multiplicative_expression -> multiplicative_expression '/' . unary_expression (rule 135) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 386 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 392 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 state 293 - typeof_expression -> TYPEOF '(' . type ')' (rule 89) - typeof_expression -> TYPEOF '(' . VOID ')' (rule 90) + multiplicative_expression -> multiplicative_expression '%' . unary_expression (rule 136) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 387 - - type_name go to state 94 - type go to state 388 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 393 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 state 294 - unchecked_expression -> UNCHECKED '(' . expression ')' (rule 92) + additive_expression -> additive_expression '+' . multiplicative_expression (rule 138) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 389 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 395 + qualified_identifier go to state 225 qualifier go to state 10 state 295 - pre_increment_expression -> PLUSPLUS unary_expression . (rule 105) + additive_expression -> additive_expression '-' . multiplicative_expression (rule 139) - $default reduce using rule 105 (pre_increment_expression) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 396 + qualified_identifier go to state 225 + qualifier go to state 10 state 296 - pre_decrement_expression -> MINUSMINUS unary_expression . (rule 106) + shift_expression -> shift_expression GTGT . additive_expression (rule 142) - $default reduce using rule 106 (pre_decrement_expression) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 397 + qualified_identifier go to state 225 + qualifier go to state 10 state 297 - unary_expression -> '*' unary_expression . (rule 110) + shift_expression -> shift_expression LTLT . additive_expression (rule 141) - $default reduce using rule 110 (unary_expression) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 398 + qualified_identifier go to state 225 + qualifier go to state 10 state 298 - cast_expression -> '(' VOID . type_quals_opt ')' unary_expression (rule 119) - - RANK_SPECIFIER shift, and go to state 124 - '*' shift, and go to state 390 + relational_expression -> relational_expression AS . type (rule 149) - $default reduce using rule 120 (type_quals_opt) - - rank_specifier go to state 391 - type_quals_opt go to state 392 - type_quals go to state 393 - type_qual go to state 394 + IDENTIFIER shift, and go to state 53 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + DECIMAL shift, and go to state 81 + DOUBLE shift, and go to state 82 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 399 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 + qualifier go to state 10 state 299 - member_access -> primitive_type . '.' IDENTIFIER (rule 66) - cast_expression -> '(' primitive_type . type_quals_opt ')' unary_expression (rule 117) + relational_expression -> relational_expression IS . type (rule 148) - RANK_SPECIFIER shift, and go to state 124 - '*' shift, and go to state 390 - '.' shift, and go to state 309 - - $default reduce using rule 120 (type_quals_opt) - - rank_specifier go to state 391 - type_quals_opt go to state 395 - type_quals go to state 393 - type_qual go to state 394 + IDENTIFIER shift, and go to state 53 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + DECIMAL shift, and go to state 81 + DOUBLE shift, and go to state 82 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 400 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 + qualifier go to state 10 state 300 - member_access -> class_type . '.' IDENTIFIER (rule 67) - cast_expression -> '(' class_type . type_quals_opt ')' unary_expression (rule 118) - - RANK_SPECIFIER shift, and go to state 124 - '*' shift, and go to state 390 - '.' shift, and go to state 310 + relational_expression -> relational_expression GT . shift_expression (rule 145) - $default reduce using rule 120 (type_quals_opt) - - rank_specifier go to state 391 - type_quals_opt go to state 396 - type_quals go to state 393 - type_qual go to state 394 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 401 + qualified_identifier go to state 225 + qualifier go to state 10 state 301 - cast_expression -> '(' multiplicative_expression . '*' ')' unary_expression (rule 115) - multiplicative_expression -> multiplicative_expression . '*' unary_expression (rule 127) - multiplicative_expression -> multiplicative_expression . '/' unary_expression (rule 128) - multiplicative_expression -> multiplicative_expression . '%' unary_expression (rule 129) - additive_expression -> multiplicative_expression . (rule 130) + relational_expression -> relational_expression LT . shift_expression (rule 144) - '*' shift, and go to state 397 - '/' shift, and go to state 332 - '%' shift, and go to state 333 - - $default reduce using rule 130 (additive_expression) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 402 + qualified_identifier go to state 225 + qualifier go to state 10 state 302 - parenthesized_expression -> '(' expression . ')' (rule 64) - cast_expression -> '(' expression . ')' unary_expression_not_plusminus (rule 114) + relational_expression -> relational_expression LEQ . shift_expression (rule 146) - ')' shift, and go to state 398 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 403 + qualified_identifier go to state 225 + qualifier go to state 10 state 303 - invocation_expression -> qualified_identifier . '(' argument_list_opt ')' (rule 69) - element_access -> qualified_identifier . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 73) - postfix_expression -> qualified_identifier . (rule 97) - cast_expression -> '(' qualified_identifier . rank_specifier type_quals_opt ')' unary_expression (rule 116) - - RANK_SPECIFIER shift, and go to state 124 - LEFT_BRACKET shift, and go to state 352 - '(' shift, and go to state 353 + relational_expression -> relational_expression GEQ . shift_expression (rule 147) - $default reduce using rule 97 (postfix_expression) - - rank_specifier go to state 399 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 404 + qualified_identifier go to state 225 + qualifier go to state 10 state 304 - addressof_expression -> '&' unary_expression . (rule 94) + equality_expression -> equality_expression EQEQ . relational_expression (rule 151) - $default reduce using rule 94 (addressof_expression) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 405 + qualified_identifier go to state 225 + qualifier go to state 10 state 305 - unary_expression_not_plusminus -> '!' unary_expression . (rule 102) + equality_expression -> equality_expression NOTEQ . relational_expression (rule 152) - $default reduce using rule 102 (unary_expression_not_plusminus) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 406 + qualified_identifier go to state 225 + qualifier go to state 10 state 306 - unary_expression_not_plusminus -> '~' unary_expression . (rule 103) + and_expression -> and_expression '&' . equality_expression (rule 154) - $default reduce using rule 103 (unary_expression_not_plusminus) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 407 + qualified_identifier go to state 225 + qualifier go to state 10 state 307 - unary_expression -> '+' unary_expression . (rule 108) + exclusive_or_expression -> exclusive_or_expression '^' . and_expression (rule 156) - $default reduce using rule 108 (unary_expression) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 408 + qualified_identifier go to state 225 + qualifier go to state 10 state 308 - unary_expression -> '-' unary_expression . (rule 109) - - $default reduce using rule 109 (unary_expression) - - - -state 309 - - member_access -> primitive_type '.' . IDENTIFIER (rule 66) - - IDENTIFIER shift, and go to state 400 - + inclusive_or_expression -> inclusive_or_expression '|' . exclusive_or_expression (rule 158) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 409 + qualified_identifier go to state 225 + qualifier go to state 10 -state 310 - member_access -> class_type '.' . IDENTIFIER (rule 67) - IDENTIFIER shift, and go to state 401 +state 309 + + conditional_and_expression -> conditional_and_expression ANDAND . inclusive_or_expression (rule 160) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 410 + qualified_identifier go to state 225 + qualifier go to state 10 -state 311 +state 310 - element_access -> primary_expression LEFT_BRACKET . expression_list RIGHT_BRACKET (rule 72) + conditional_or_expression -> conditional_or_expression OROR . conditional_and_expression (rule 162) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - expression_list go to state 402 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 229 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 394 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 411 + qualified_identifier go to state 225 qualifier go to state 10 -state 312 +state 311 - member_access -> primary_expression '.' . IDENTIFIER (rule 65) + conditional_expression -> conditional_or_expression '?' . expression ':' expression (rule 164) - IDENTIFIER shift, and go to state 403 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 412 + qualified_identifier go to state 225 + qualifier go to state 10 -state 313 +state 312 - invocation_expression -> primary_expression_no_parenthesis '(' . argument_list_opt ')' (rule 68) + element_access -> qualified_identifier LEFT_BRACKET . expression_list RIGHT_BRACKET (rule 81) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - OUT shift, and go to state 404 - REF shift, and go to state 405 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 70 (argument_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - argument_list go to state 406 - argument go to state 407 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - argument_list_opt go to state 408 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 409 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + expression_list go to state 413 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 224 + qualified_identifier go to state 225 qualifier go to state 10 +state 313 + + namespace_body -> '{' using_directives_opt namespace_member_declarations_opt '}' . (rule 315) + + $default reduce using rule 315 (namespace_body) + + + state 314 - attribute_arguments -> '(' expression_list_opt ')' . (rule 530) + name_list -> name_list COMMA IDENTIFIER . (rule 378) - $default reduce using rule 530 (attribute_arguments) + $default reduce using rule 378 (name_list) state 315 - expression_list -> expression_list COMMA . expression (rule 77) + class_base -> ':' interface_type_list . (rule 354) + interface_type_list -> interface_type_list . COMMA type_name (rule 356) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 410 - qualified_identifier go to state 230 - qualifier go to state 10 + COMMA shift, and go to state 331 + + $default reduce using rule 354 (class_base) state 316 - post_increment_expression -> postfix_expression PLUSPLUS . (rule 81) + class_body -> '{' . class_member_declarations_opt '}' (rule 357) - $default reduce using rule 81 (post_increment_expression) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 358 (class_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) + + attributes_opt go to state 414 + type_declaration go to state 415 + class_declaration go to state 16 + class_member_declarations_opt go to state 416 + class_member_declarations go to state 417 + class_member_declaration go to state 418 + constant_declaration go to state 419 + field_declaration go to state 420 + method_declaration go to state 421 + method_header go to state 346 + property_declaration go to state 422 + event_declaration go to state 423 + indexer_declaration go to state 424 + operator_declaration go to state 425 + constructor_declaration go to state 426 + destructor_declaration go to state 427 + struct_declaration go to state 17 + interface_declaration go to state 18 + enum_declaration go to state 19 + delegate_declaration go to state 20 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 317 - post_decrement_expression -> postfix_expression MINUSMINUS . (rule 82) + class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body . comma_opt (rule 351) - $default reduce using rule 82 (post_decrement_expression) + ';' shift, and go to state 137 + + $default reduce using rule 309 (comma_opt) + + comma_opt go to state 428 state 318 - pointer_member_access -> postfix_expression ARROW . IDENTIFIER (rule 93) + opt_generic -> GEN_LT @1 genericlist . GEN_GT (rule 13) - IDENTIFIER shift, and go to state 411 + GEN_GT shift, and go to state 429 state 319 - assignment_operator -> PLUSEQ . (rule 160) + genericlist -> type . (rule 16) + genericlist -> type . COMMA @3 genericlist (rule 18) + pointer_type -> type . '*' (rule 41) - $default reduce using rule 160 (assignment_operator) + COMMA shift, and go to state 430 + '*' shift, and go to state 119 + + $default reduce using rule 16 (genericlist) state 320 - assignment_operator -> MINUSEQ . (rule 161) + fixed_parameter -> attributes_opt . parameter_modifier_opt type IDENTIFIER fixed_parameter_opt_default (rule 391) + parameter_array -> attributes_opt . PARAMS type IDENTIFIER (rule 397) + + OUT shift, and go to state 431 + PARAMS shift, and go to state 432 + REF shift, and go to state 433 - $default reduce using rule 161 (assignment_operator) + $default reduce using rule 394 (parameter_modifier_opt) + + parameter_modifier_opt go to state 434 state 321 - assignment_operator -> STAREQ . (rule 162) + delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt . ')' ';' (rule 527) - $default reduce using rule 162 (assignment_operator) + ')' shift, and go to state 435 state 322 - assignment_operator -> DIVEQ . (rule 163) + formal_parameter_list_opt -> formal_parameter_list . (rule 382) + formal_parameter_list -> formal_parameter_list . COMMA formal_parameter (rule 388) + + COMMA shift, and go to state 436 - $default reduce using rule 163 (assignment_operator) + $default reduce using rule 382 (formal_parameter_list_opt) state 323 - assignment_operator -> MODEQ . (rule 164) + formal_parameter_list -> formal_parameter . (rule 387) - $default reduce using rule 164 (assignment_operator) + $default reduce using rule 387 (formal_parameter_list) state 324 - assignment_operator -> XOREQ . (rule 165) + formal_parameter -> fixed_parameter . (rule 389) - $default reduce using rule 165 (assignment_operator) + $default reduce using rule 389 (formal_parameter) state 325 - assignment_operator -> ANDEQ . (rule 166) + formal_parameter -> parameter_array . (rule 390) - $default reduce using rule 166 (assignment_operator) + $default reduce using rule 390 (formal_parameter) state 326 - assignment_operator -> OREQ . (rule 167) + enum_member_declaration -> attributes_opt . IDENTIFIER (rule 525) + enum_member_declaration -> attributes_opt . IDENTIFIER '=' constant_expression (rule 526) - $default reduce using rule 167 (assignment_operator) + IDENTIFIER shift, and go to state 437 state 327 - assignment_operator -> GTGTEQ . (rule 168) + enum_body -> '{' enum_member_declarations_opt . '}' (rule 519) - $default reduce using rule 168 (assignment_operator) + '}' shift, and go to state 438 state 328 - assignment_operator -> LTLTEQ . (rule 169) + enum_body -> '{' enum_member_declarations . COMMA '}' (rule 520) + enum_member_declarations_opt -> enum_member_declarations . (rule 522) + enum_member_declarations -> enum_member_declarations . COMMA enum_member_declaration (rule 524) - $default reduce using rule 169 (assignment_operator) + COMMA shift, and go to state 439 + + $default reduce using rule 522 (enum_member_declarations_opt) state 329 - assignment_operator -> '=' . (rule 159) + enum_member_declarations -> enum_member_declaration . (rule 523) - $default reduce using rule 159 (assignment_operator) + $default reduce using rule 523 (enum_member_declarations) state 330 - assignment -> unary_expression assignment_operator . expression (rule 158) + enum_declaration -> attributes_opt modifiers_opt ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt . (rule 515) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 412 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 515 (enum_declaration) state 331 - multiplicative_expression -> multiplicative_expression '*' . unary_expression (rule 127) + interface_type_list -> interface_type_list COMMA . type_name (rule 356) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 413 - cast_expression go to state 216 - qualified_identifier go to state 230 + IDENTIFIER shift, and go to state 53 + + type_name go to state 440 + qualified_identifier_opt_generic go to state 93 + qualified_identifier go to state 109 qualifier go to state 10 state 332 - multiplicative_expression -> multiplicative_expression '/' . unary_expression (rule 128) + interface_method_declaration -> attributes_opt . new_opt type IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 501) + interface_method_declaration -> attributes_opt . new_opt VOID IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 502) + interface_property_declaration -> attributes_opt . new_opt type IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 505) + interface_indexer_declaration -> attributes_opt . new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 506) + interface_event_declaration -> attributes_opt . new_opt EVENT type IDENTIFIER interface_empty_body (rule 511) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 414 - cast_expression go to state 216 - qualified_identifier go to state 230 - qualifier go to state 10 + NEW shift, and go to state 441 + + $default reduce using rule 503 (new_opt) + + new_opt go to state 442 state 333 - multiplicative_expression -> multiplicative_expression '%' . unary_expression (rule 129) + interface_body -> '{' interface_member_declarations_opt . '}' (rule 492) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 415 - cast_expression go to state 216 - qualified_identifier go to state 230 - qualifier go to state 10 + '}' shift, and go to state 443 state 334 - additive_expression -> additive_expression '+' . multiplicative_expression (rule 131) + interface_member_declarations_opt -> interface_member_declarations . (rule 494) + interface_member_declarations -> interface_member_declarations . interface_member_declaration (rule 496) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 417 - qualified_identifier go to state 230 - qualifier go to state 10 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 494 (interface_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) + + attributes_opt go to state 332 + interface_member_declaration go to state 444 + interface_method_declaration go to state 336 + interface_property_declaration go to state 337 + interface_indexer_declaration go to state 338 + interface_event_declaration go to state 339 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 state 335 - additive_expression -> additive_expression '-' . multiplicative_expression (rule 132) + interface_member_declarations -> interface_member_declaration . (rule 495) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 418 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 495 (interface_member_declarations) state 336 - shift_expression -> shift_expression LTLT . additive_expression (rule 134) + interface_member_declaration -> interface_method_declaration . (rule 497) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 419 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 497 (interface_member_declaration) state 337 - shift_expression -> shift_expression GTGT . additive_expression (rule 135) + interface_member_declaration -> interface_property_declaration . (rule 498) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 420 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 498 (interface_member_declaration) state 338 - relational_expression -> relational_expression AS . type (rule 142) + interface_member_declaration -> interface_indexer_declaration . (rule 500) - IDENTIFIER shift, and go to state 52 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 421 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 - qualifier go to state 10 + $default reduce using rule 500 (interface_member_declaration) state 339 - relational_expression -> relational_expression IS . type (rule 141) + interface_member_declaration -> interface_event_declaration . (rule 499) - IDENTIFIER shift, and go to state 52 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 422 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 - qualifier go to state 10 + $default reduce using rule 499 (interface_member_declaration) state 340 - relational_expression -> relational_expression LEQ . shift_expression (rule 139) + interface_declaration -> attributes_opt modifiers_opt INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt . (rule 488) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 423 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 488 (interface_declaration) state 341 - relational_expression -> relational_expression GEQ . shift_expression (rule 140) + class_declaration -> attributes_opt . modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) + constant_declaration -> attributes_opt . modifiers_opt CONST type constant_declarators ';' (rule 372) + field_declaration -> attributes_opt . modifiers_opt type variable_declarators ';' (rule 373) + method_header -> attributes_opt . modifiers_opt type qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 375) + method_header -> attributes_opt . modifiers_opt VOID qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 376) + property_declaration -> attributes_opt . modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 398) + event_declaration -> attributes_opt . modifiers_opt EVENT type variable_declarators ';' (rule 410) + event_declaration -> attributes_opt . modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 411) + indexer_declaration -> attributes_opt . modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 416) + operator_declaration -> attributes_opt . modifiers_opt operator_declarator operator_body (rule 420) + constructor_declaration -> attributes_opt . modifiers_opt constructor_declarator constructor_body (rule 449) + struct_declaration -> attributes_opt . modifiers_opt STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt (rule 461) + interface_declaration -> attributes_opt . modifiers_opt INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt (rule 488) + enum_declaration -> attributes_opt . modifiers_opt ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt (rule 515) + delegate_declaration -> attributes_opt . modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 424 - qualified_identifier go to state 230 - qualifier go to state 10 + ABSTRACT shift, and go to state 30 + EXTERN shift, and go to state 31 + INTERNAL shift, and go to state 32 + NEW shift, and go to state 34 + OVERRIDE shift, and go to state 35 + PARTIAL shift, and go to state 36 + PRIVATE shift, and go to state 37 + PROTECTED shift, and go to state 38 + PUBLIC shift, and go to state 39 + READONLY shift, and go to state 40 + SEALED shift, and go to state 41 + STATIC shift, and go to state 42 + UNSAFE shift, and go to state 43 + VIRTUAL shift, and go to state 44 + VOLATILE shift, and go to state 45 + + $default reduce using rule 331 (modifiers_opt) + + modifiers_opt go to state 445 + modifiers go to state 47 + modifier go to state 48 state 342 - relational_expression -> relational_expression '<' . shift_expression (rule 137) + struct_member_declaration -> type_declaration . (rule 478) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 425 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 478 (struct_member_declaration) state 343 - relational_expression -> relational_expression '>' . shift_expression (rule 138) + struct_member_declaration -> constant_declaration . (rule 470) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 426 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 470 (struct_member_declaration) state 344 - equality_expression -> equality_expression EQEQ . relational_expression (rule 144) + struct_member_declaration -> field_declaration . (rule 471) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 427 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 471 (struct_member_declaration) state 345 - equality_expression -> equality_expression NOTEQ . relational_expression (rule 145) + struct_member_declaration -> method_declaration . (rule 472) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 428 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 472 (struct_member_declaration) state 346 - and_expression -> and_expression '&' . equality_expression (rule 147) + method_declaration -> method_header . method_body (rule 374) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 429 - qualified_identifier go to state 230 - qualifier go to state 10 + '{' shift, and go to state 446 + ';' shift, and go to state 447 + + block go to state 448 + method_body go to state 449 state 347 - exclusive_or_expression -> exclusive_or_expression '^' . and_expression (rule 149) + struct_member_declaration -> property_declaration . (rule 473) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 430 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 473 (struct_member_declaration) state 348 - inclusive_or_expression -> inclusive_or_expression '|' . exclusive_or_expression (rule 151) + struct_member_declaration -> event_declaration . (rule 474) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 + $default reduce using rule 474 (struct_member_declaration) + + + +state 349 + + struct_member_declaration -> indexer_declaration . (rule 475) + + $default reduce using rule 475 (struct_member_declaration) + + + +state 350 + + struct_member_declaration -> operator_declaration . (rule 476) + + $default reduce using rule 476 (struct_member_declaration) + + + +state 351 + + struct_member_declaration -> constructor_declaration . (rule 477) + + $default reduce using rule 477 (struct_member_declaration) + + + +state 352 + + struct_body -> '{' struct_member_declarations_opt . '}' (rule 465) + + '}' shift, and go to state 450 + + + +state 353 + + struct_member_declarations_opt -> struct_member_declarations . (rule 467) + struct_member_declarations -> struct_member_declarations . struct_member_declaration (rule 469) + + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 467 (struct_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) + + attributes_opt go to state 341 + type_declaration go to state 342 + class_declaration go to state 16 + constant_declaration go to state 343 + field_declaration go to state 344 + method_declaration go to state 345 + method_header go to state 346 + property_declaration go to state 347 + event_declaration go to state 348 + indexer_declaration go to state 349 + operator_declaration go to state 350 + constructor_declaration go to state 351 + struct_declaration go to state 17 + struct_member_declaration go to state 451 + interface_declaration go to state 18 + enum_declaration go to state 19 + delegate_declaration go to state 20 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 + + + +state 354 + + struct_member_declarations -> struct_member_declaration . (rule 468) + + $default reduce using rule 468 (struct_member_declarations) + + + +state 355 + + struct_declaration -> attributes_opt modifiers_opt STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt . (rule 461) + + $default reduce using rule 461 (struct_declaration) + + + +state 356 + + expression_list -> expression_list . COMMA expression (rule 85) + base_access -> BASE LEFT_BRACKET expression_list . RIGHT_BRACKET (rule 88) + + COMMA shift, and go to state 275 + RIGHT_BRACKET shift, and go to state 452 + + + +state 357 + + base_access -> BASE '.' IDENTIFIER . (rule 87) + + $default reduce using rule 87 (base_access) + + + +state 358 + + checked_expression -> CHECKED '(' expression . ')' (rule 99) + + ')' shift, and go to state 453 + + + +state 359 + + delegate_expression -> DELEGATE '(' formal_parameter_list_opt . ')' block (rule 71) + + ')' shift, and go to state 454 + + + +state 360 + + object_creation_expression -> NEW type '(' . argument_list_opt ')' (rule 92) + + IDENTIFIER shift, and go to state 377 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 431 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + OUT shift, and go to state 378 + REF shift, and go to state 379 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 78 (argument_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + argument_list go to state 380 + argument go to state 381 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + argument_list_opt go to state 455 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 383 + qualified_identifier go to state 225 qualifier go to state 10 -state 349 +state 361 - conditional_and_expression -> conditional_and_expression ANDAND . inclusive_or_expression (rule 153) + array_creation_expression -> NEW non_array_type LEFT_BRACKET . expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt (rule 93) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 432 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + expression_list go to state 456 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 224 + qualified_identifier go to state 225 qualifier go to state 10 -state 350 +state 362 + + array_initializer -> '{' . @8 variable_initializer_list_opt '}' (rule 480) + + $default reduce using rule 479 (@8) + + @8 go to state 457 + + + +state 363 + + array_creation_expression -> NEW array_type array_initializer . (rule 94) + + $default reduce using rule 94 (array_creation_expression) + + + +state 364 + + pointer_type -> type . '*' (rule 41) + sizeof_expression -> SIZEOF '(' type . ')' (rule 103) + + '*' shift, and go to state 119 + ')' shift, and go to state 458 + + + +state 365 + + pointer_type -> VOID . '*' (rule 42) + typeof_expression -> TYPEOF '(' VOID . ')' (rule 98) + + '*' shift, and go to state 118 + ')' shift, and go to state 459 + + + +state 366 + + pointer_type -> type . '*' (rule 41) + typeof_expression -> TYPEOF '(' type . ')' (rule 97) + + '*' shift, and go to state 119 + ')' shift, and go to state 460 + + + +state 367 + + unchecked_expression -> UNCHECKED '(' expression . ')' (rule 100) + + ')' shift, and go to state 461 + + + +state 368 + + type_qual -> '*' . (rule 132) + + $default reduce using rule 132 (type_qual) + + + +state 369 + + type_qual -> rank_specifier . (rule 131) + + $default reduce using rule 131 (type_qual) + + + +state 370 + + cast_expression -> '(' VOID type_quals_opt . ')' unary_expression (rule 126) + + ')' shift, and go to state 462 + + + +state 371 + + type_quals_opt -> type_quals . (rule 128) + type_quals -> type_quals . type_qual (rule 130) + + RANK_SPECIFIER shift, and go to state 120 + '*' shift, and go to state 368 + + $default reduce using rule 128 (type_quals_opt) + + rank_specifier go to state 369 + type_qual go to state 463 + + + +state 372 + + type_quals -> type_qual . (rule 129) + + $default reduce using rule 129 (type_quals) + + + +state 373 + + cast_expression -> '(' primitive_type type_quals_opt . ')' unary_expression (rule 125) + + ')' shift, and go to state 464 + - conditional_or_expression -> conditional_or_expression OROR . conditional_and_expression (rule 155) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 +state 374 + + cast_expression -> '(' multiplicative_expression '*' . ')' unary_expression (rule 123) + multiplicative_expression -> multiplicative_expression '*' . unary_expression (rule 134) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 416 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 433 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + ')' shift, and go to state 465 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 391 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 351 +state 375 - conditional_expression -> conditional_or_expression '?' . expression ':' expression (rule 157) + parenthesized_expression -> '(' expression ')' . (rule 72) + cast_expression -> '(' expression ')' . unary_expression_not_plusminus (rule 122) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 434 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + '(' shift, and go to state 174 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + + $default reduce using rule 72 (parenthesized_expression) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 466 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 352 +state 376 + + cast_expression -> '(' qualified_identifier rank_specifier . type_quals_opt ')' unary_expression (rule 124) + + RANK_SPECIFIER shift, and go to state 120 + '*' shift, and go to state 368 - element_access -> qualified_identifier LEFT_BRACKET . expression_list RIGHT_BRACKET (rule 73) + $default reduce using rule 127 (type_quals_opt) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + rank_specifier go to state 369 + type_quals_opt go to state 467 + type_quals go to state 371 + type_qual go to state 372 + + + +state 377 + + argument -> IDENTIFIER . ':' argument (rule 55) + qualified_identifier -> IDENTIFIER . (rule 311) + qualifier -> IDENTIFIER . '.' (rule 313) + + ':' shift, and go to state 468 + '.' shift, and go to state 26 + + $default reduce using rule 311 (qualified_identifier) + + + +state 378 + + argument -> OUT . variable_reference (rule 54) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - expression_list go to state 435 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 229 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + variable_reference go to state 469 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 470 + qualified_identifier go to state 225 qualifier go to state 10 -state 353 +state 379 - invocation_expression -> qualified_identifier '(' . argument_list_opt ')' (rule 69) + argument -> REF . variable_reference (rule 53) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - OUT shift, and go to state 404 - REF shift, and go to state 405 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 70 (argument_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - argument_list go to state 406 - argument go to state 407 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - argument_list_opt go to state 436 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 409 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + variable_reference go to state 471 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 470 + qualified_identifier go to state 225 qualifier go to state 10 -state 354 +state 380 - class_base -> ':' class_type COMMA interface_type_list . (rule 345) - interface_type_list -> interface_type_list . COMMA type_name (rule 347) + argument_list -> argument_list . COMMA argument (rule 51) + argument_list_opt -> argument_list . (rule 79) - COMMA shift, and go to state 233 + COMMA shift, and go to state 472 - $default reduce using rule 345 (class_base) + $default reduce using rule 79 (argument_list_opt) -state 355 +state 381 - interface_type_list -> interface_type_list COMMA type_name . (rule 347) + argument_list -> argument . (rule 50) - $default reduce using rule 347 (interface_type_list) + $default reduce using rule 50 (argument_list) -state 356 +state 382 - class_declaration -> attributes_opt modifiers_opt . CLASS IDENTIFIER class_base_opt class_body comma_opt (rule 340) - constant_declaration -> attributes_opt modifiers_opt . CONST type constant_declarators ';' (rule 363) - field_declaration -> attributes_opt modifiers_opt . type variable_declarators ';' (rule 364) - method_header -> attributes_opt modifiers_opt . type qualified_identifier '(' formal_parameter_list_opt ')' (rule 366) - method_header -> attributes_opt modifiers_opt . VOID qualified_identifier '(' formal_parameter_list_opt ')' (rule 367) - property_declaration -> attributes_opt modifiers_opt . type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 383) - event_declaration -> attributes_opt modifiers_opt . EVENT type variable_declarators ';' (rule 394) - event_declaration -> attributes_opt modifiers_opt . EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 395) - indexer_declaration -> attributes_opt modifiers_opt . indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 400) - operator_declaration -> attributes_opt modifiers_opt . operator_declarator operator_body (rule 404) - constructor_declaration -> attributes_opt modifiers_opt . constructor_declarator constructor_body (rule 433) - destructor_declaration -> attributes_opt modifiers_opt . '~' IDENTIFIER '(' ')' block (rule 439) - struct_declaration -> attributes_opt modifiers_opt . STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt (rule 444) - interface_declaration -> attributes_opt modifiers_opt . INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt (rule 468) - enum_declaration -> attributes_opt modifiers_opt . ENUM IDENTIFIER enum_base_opt enum_body comma_opt (rule 494) - delegate_declaration -> attributes_opt modifiers_opt . DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) + invocation_expression -> qualified_identifier_opt_generic '(' argument_list_opt . ')' (rule 77) - IDENTIFIER shift, and go to state 437 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CLASS shift, and go to state 56 - CONST shift, and go to state 438 - DECIMAL shift, and go to state 81 - DELEGATE shift, and go to state 57 - DOUBLE shift, and go to state 82 - ENUM shift, and go to state 58 - EVENT shift, and go to state 439 - EXPLICIT shift, and go to state 440 - FLOAT shift, and go to state 83 - IMPLICIT shift, and go to state 441 - INT shift, and go to state 84 - INTERFACE shift, and go to state 59 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - STRUCT shift, and go to state 60 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 442 - '~' shift, and go to state 443 - - type_name go to state 94 - type go to state 444 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 - qualifier go to state 10 - indexer_declarator go to state 445 - operator_declarator go to state 446 - overloadable_operator_declarator go to state 447 - conversion_operator_declarator go to state 448 - constructor_declarator go to state 449 + ')' shift, and go to state 473 -state 357 +state 383 - class_body -> '{' class_member_declarations_opt '}' . (rule 348) + argument -> expression . (rule 52) - $default reduce using rule 348 (class_body) + $default reduce using rule 52 (argument) -state 358 +state 384 - class_member_declarations -> class_member_declarations class_member_declaration . (rule 352) + member_access -> primitive_type '.' IDENTIFIER . (rule 74) - $default reduce using rule 352 (class_member_declarations) + $default reduce using rule 74 (member_access) -state 359 +state 385 - block -> '{' . statement_list_opt '}' (rule 190) + element_access -> primary_expression LEFT_BRACKET expression_list . RIGHT_BRACKET (rule 80) + expression_list -> expression_list . COMMA expression (rule 85) - IDENTIFIER shift, and go to state 450 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BREAK shift, and go to state 451 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONST shift, and go to state 453 - CONTINUE shift, and go to state 454 - DECIMAL shift, and go to state 81 - DO shift, and go to state 455 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 - FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 - INT shift, and go to state 84 - LOCK shift, and go to state 461 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - VOID shift, and go to state 288 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - $default reduce using rule 191 (statement_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - type_name go to state 94 - type go to state 471 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 472 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 473 - pointer_type go to state 103 - array_type go to state 104 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - statement go to state 482 - embedded_statement go to state 483 - block go to state 484 - statement_list_opt go to state 485 - statement_list go to state 486 - empty_statement go to state 487 - labeled_statement go to state 488 - declaration_statement go to state 489 - local_variable_declaration go to state 490 - local_constant_declaration go to state 491 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 515 - qualifier go to state 10 + COMMA shift, and go to state 275 + RIGHT_BRACKET shift, and go to state 474 -state 360 +state 386 - method_body -> ';' . (rule 373) + member_access -> primary_expression '.' IDENTIFIER . (rule 73) - $default reduce using rule 373 (method_body) + $default reduce using rule 73 (member_access) -state 361 +state 387 - method_body -> block . (rule 372) + invocation_expression -> primary_expression_no_parenthesis opt_generic '(' . @4 argument_list_opt ')' (rule 76) - $default reduce using rule 372 (method_body) + $default reduce using rule 75 (@4) + @4 go to state 475 -state 362 - method_declaration -> method_header method_body . (rule 365) +state 388 - $default reduce using rule 365 (method_declaration) + expression_list -> expression_list COMMA expression . (rule 85) + $default reduce using rule 85 (expression_list) -state 363 - parameter_modifier_opt -> OUT . (rule 381) +state 389 - $default reduce using rule 381 (parameter_modifier_opt) + pointer_member_access -> postfix_expression ARROW IDENTIFIER . (rule 101) + $default reduce using rule 101 (pointer_member_access) -state 364 - parameter_array -> attributes_opt PARAMS . type IDENTIFIER (rule 382) +state 390 - IDENTIFIER shift, and go to state 52 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 516 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 - qualifier go to state 10 + assignment -> unary_expression assignment_operator expression . (rule 165) + + $default reduce using rule 165 (assignment) + + + +state 391 + + multiplicative_expression -> multiplicative_expression '*' unary_expression . (rule 134) + + $default reduce using rule 134 (multiplicative_expression) + + + +state 392 + + multiplicative_expression -> multiplicative_expression '/' unary_expression . (rule 135) + + $default reduce using rule 135 (multiplicative_expression) + + + +state 393 + + multiplicative_expression -> multiplicative_expression '%' unary_expression . (rule 136) + + $default reduce using rule 136 (multiplicative_expression) + + + +state 394 + + multiplicative_expression -> unary_expression . (rule 133) + + $default reduce using rule 133 (multiplicative_expression) + + + +state 395 + + multiplicative_expression -> multiplicative_expression . '*' unary_expression (rule 134) + multiplicative_expression -> multiplicative_expression . '/' unary_expression (rule 135) + multiplicative_expression -> multiplicative_expression . '%' unary_expression (rule 136) + additive_expression -> additive_expression '+' multiplicative_expression . (rule 138) + + '*' shift, and go to state 291 + '/' shift, and go to state 292 + '%' shift, and go to state 293 + + $default reduce using rule 138 (additive_expression) + + + +state 396 + + multiplicative_expression -> multiplicative_expression . '*' unary_expression (rule 134) + multiplicative_expression -> multiplicative_expression . '/' unary_expression (rule 135) + multiplicative_expression -> multiplicative_expression . '%' unary_expression (rule 136) + additive_expression -> additive_expression '-' multiplicative_expression . (rule 139) + + '*' shift, and go to state 291 + '/' shift, and go to state 292 + '%' shift, and go to state 293 + + $default reduce using rule 139 (additive_expression) + + + +state 397 + + additive_expression -> additive_expression . '+' multiplicative_expression (rule 138) + additive_expression -> additive_expression . '-' multiplicative_expression (rule 139) + shift_expression -> shift_expression GTGT additive_expression . (rule 142) + + '+' shift, and go to state 294 + '-' shift, and go to state 295 + + $default reduce using rule 142 (shift_expression) + + + +state 398 + + additive_expression -> additive_expression . '+' multiplicative_expression (rule 138) + additive_expression -> additive_expression . '-' multiplicative_expression (rule 139) + shift_expression -> shift_expression LTLT additive_expression . (rule 141) + + '+' shift, and go to state 294 + '-' shift, and go to state 295 + + $default reduce using rule 141 (shift_expression) + + + +state 399 + + pointer_type -> type . '*' (rule 41) + relational_expression -> relational_expression AS type . (rule 149) + + '*' shift, and go to state 119 + + $default reduce using rule 149 (relational_expression) + + + +state 400 + + pointer_type -> type . '*' (rule 41) + relational_expression -> relational_expression IS type . (rule 148) + '*' shift, and go to state 119 + $default reduce using rule 148 (relational_expression) -state 365 - parameter_modifier_opt -> REF . (rule 380) - $default reduce using rule 380 (parameter_modifier_opt) +state 401 + shift_expression -> shift_expression . LTLT additive_expression (rule 141) + shift_expression -> shift_expression . GTGT additive_expression (rule 142) + relational_expression -> relational_expression GT shift_expression . (rule 145) + GTGT shift, and go to state 296 + LTLT shift, and go to state 297 -state 366 + $default reduce using rule 145 (relational_expression) - fixed_parameter -> attributes_opt parameter_modifier_opt . type IDENTIFIER (rule 378) - IDENTIFIER shift, and go to state 52 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 517 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 - qualifier go to state 10 +state 402 + shift_expression -> shift_expression . LTLT additive_expression (rule 141) + shift_expression -> shift_expression . GTGT additive_expression (rule 142) + relational_expression -> relational_expression LT shift_expression . (rule 144) -state 367 + GTGT shift, and go to state 296 + LTLT shift, and go to state 297 - delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' . ';' (rule 506) + $default reduce using rule 144 (relational_expression) - ';' shift, and go to state 518 +state 403 -state 368 + shift_expression -> shift_expression . LTLT additive_expression (rule 141) + shift_expression -> shift_expression . GTGT additive_expression (rule 142) + relational_expression -> relational_expression LEQ shift_expression . (rule 146) - formal_parameter_list -> formal_parameter_list COMMA . formal_parameter (rule 375) + GTGT shift, and go to state 296 + LTLT shift, and go to state 297 - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + $default reduce using rule 146 (relational_expression) - attributes_opt go to state 250 - formal_parameter go to state 519 - fixed_parameter go to state 254 - parameter_array go to state 255 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 +state 404 -state 369 + shift_expression -> shift_expression . LTLT additive_expression (rule 141) + shift_expression -> shift_expression . GTGT additive_expression (rule 142) + relational_expression -> relational_expression GEQ shift_expression . (rule 147) - enum_member_declaration -> attributes_opt IDENTIFIER . (rule 504) - enum_member_declaration -> attributes_opt IDENTIFIER . '=' constant_expression (rule 505) + GTGT shift, and go to state 296 + LTLT shift, and go to state 297 - '=' shift, and go to state 520 + $default reduce using rule 147 (relational_expression) - $default reduce using rule 504 (enum_member_declaration) +state 405 -state 370 + relational_expression -> relational_expression . LT shift_expression (rule 144) + relational_expression -> relational_expression . GT shift_expression (rule 145) + relational_expression -> relational_expression . LEQ shift_expression (rule 146) + relational_expression -> relational_expression . GEQ shift_expression (rule 147) + relational_expression -> relational_expression . IS type (rule 148) + relational_expression -> relational_expression . AS type (rule 149) + equality_expression -> equality_expression EQEQ relational_expression . (rule 151) - enum_body -> '{' enum_member_declarations_opt '}' . (rule 498) + AS shift, and go to state 298 + IS shift, and go to state 299 + GT shift, and go to state 300 + LT shift, and go to state 301 + LEQ shift, and go to state 302 + GEQ shift, and go to state 303 - $default reduce using rule 498 (enum_body) + $default reduce using rule 151 (equality_expression) -state 371 +state 406 - enum_body -> '{' enum_member_declarations COMMA . '}' (rule 499) - enum_member_declarations -> enum_member_declarations COMMA . enum_member_declaration (rule 503) + relational_expression -> relational_expression . LT shift_expression (rule 144) + relational_expression -> relational_expression . GT shift_expression (rule 145) + relational_expression -> relational_expression . LEQ shift_expression (rule 146) + relational_expression -> relational_expression . GEQ shift_expression (rule 147) + relational_expression -> relational_expression . IS type (rule 148) + relational_expression -> relational_expression . AS type (rule 149) + equality_expression -> equality_expression NOTEQ relational_expression . (rule 152) - '}' shift, and go to state 521 + AS shift, and go to state 298 + IS shift, and go to state 299 + GT shift, and go to state 300 + LT shift, and go to state 301 + LEQ shift, and go to state 302 + GEQ shift, and go to state 303 - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + $default reduce using rule 152 (equality_expression) - attributes_opt go to state 256 - enum_member_declaration go to state 522 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 +state 407 -state 372 + equality_expression -> equality_expression . EQEQ relational_expression (rule 151) + equality_expression -> equality_expression . NOTEQ relational_expression (rule 152) + and_expression -> and_expression '&' equality_expression . (rule 154) - new_opt -> NEW . (rule 484) + EQEQ shift, and go to state 304 + NOTEQ shift, and go to state 305 - $default reduce using rule 484 (new_opt) + $default reduce using rule 154 (and_expression) -state 373 +state 408 - interface_method_declaration -> attributes_opt new_opt . type IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 481) - interface_method_declaration -> attributes_opt new_opt . VOID IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 482) - interface_property_declaration -> attributes_opt new_opt . type IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 485) - interface_indexer_declaration -> attributes_opt new_opt . type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 486) - interface_event_declaration -> attributes_opt new_opt . EVENT type IDENTIFIER interface_empty_body (rule 491) + and_expression -> and_expression . '&' equality_expression (rule 154) + exclusive_or_expression -> exclusive_or_expression '^' and_expression . (rule 156) - IDENTIFIER shift, and go to state 52 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - EVENT shift, and go to state 523 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 524 - - type_name go to state 94 - type go to state 525 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 - qualifier go to state 10 + '&' shift, and go to state 306 + $default reduce using rule 156 (exclusive_or_expression) -state 374 - interface_body -> '{' interface_member_declarations_opt '}' . (rule 472) +state 409 - $default reduce using rule 472 (interface_body) + exclusive_or_expression -> exclusive_or_expression . '^' and_expression (rule 156) + inclusive_or_expression -> inclusive_or_expression '|' exclusive_or_expression . (rule 158) + '^' shift, and go to state 307 + $default reduce using rule 158 (inclusive_or_expression) -state 375 - interface_member_declarations -> interface_member_declarations interface_member_declaration . (rule 476) - $default reduce using rule 476 (interface_member_declarations) +state 410 + inclusive_or_expression -> inclusive_or_expression . '|' exclusive_or_expression (rule 158) + conditional_and_expression -> conditional_and_expression ANDAND inclusive_or_expression . (rule 160) + '|' shift, and go to state 308 -state 376 + $default reduce using rule 160 (conditional_and_expression) - class_declaration -> attributes_opt modifiers_opt . CLASS IDENTIFIER class_base_opt class_body comma_opt (rule 340) - constant_declaration -> attributes_opt modifiers_opt . CONST type constant_declarators ';' (rule 363) - field_declaration -> attributes_opt modifiers_opt . type variable_declarators ';' (rule 364) - method_header -> attributes_opt modifiers_opt . type qualified_identifier '(' formal_parameter_list_opt ')' (rule 366) - method_header -> attributes_opt modifiers_opt . VOID qualified_identifier '(' formal_parameter_list_opt ')' (rule 367) - property_declaration -> attributes_opt modifiers_opt . type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 383) - event_declaration -> attributes_opt modifiers_opt . EVENT type variable_declarators ';' (rule 394) - event_declaration -> attributes_opt modifiers_opt . EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 395) - indexer_declaration -> attributes_opt modifiers_opt . indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 400) - operator_declaration -> attributes_opt modifiers_opt . operator_declarator operator_body (rule 404) - constructor_declaration -> attributes_opt modifiers_opt . constructor_declarator constructor_body (rule 433) - struct_declaration -> attributes_opt modifiers_opt . STRUCT IDENTIFIER struct_interfaces_opt struct_body comma_opt (rule 444) - interface_declaration -> attributes_opt modifiers_opt . INTERFACE IDENTIFIER interface_base_opt interface_body comma_opt (rule 468) - enum_declaration -> attributes_opt modifiers_opt . ENUM IDENTIFIER enum_base_opt enum_body comma_opt (rule 494) - delegate_declaration -> attributes_opt modifiers_opt . DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' (rule 506) - IDENTIFIER shift, and go to state 437 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CLASS shift, and go to state 56 - CONST shift, and go to state 438 - DECIMAL shift, and go to state 81 - DELEGATE shift, and go to state 57 - DOUBLE shift, and go to state 82 - ENUM shift, and go to state 58 - EVENT shift, and go to state 439 - EXPLICIT shift, and go to state 440 - FLOAT shift, and go to state 83 - IMPLICIT shift, and go to state 441 - INT shift, and go to state 84 - INTERFACE shift, and go to state 59 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - STRUCT shift, and go to state 60 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 442 - - type_name go to state 94 - type go to state 444 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 - qualifier go to state 10 - indexer_declarator go to state 445 - operator_declarator go to state 446 - overloadable_operator_declarator go to state 447 - conversion_operator_declarator go to state 448 - constructor_declarator go to state 449 +state 411 + conditional_and_expression -> conditional_and_expression . ANDAND inclusive_or_expression (rule 160) + conditional_or_expression -> conditional_or_expression OROR conditional_and_expression . (rule 162) -state 377 + ANDAND shift, and go to state 309 - struct_body -> '{' struct_member_declarations_opt '}' . (rule 448) + $default reduce using rule 162 (conditional_or_expression) - $default reduce using rule 448 (struct_body) +state 412 -state 378 + conditional_expression -> conditional_or_expression '?' expression . ':' expression (rule 164) - struct_member_declarations -> struct_member_declarations struct_member_declaration . (rule 452) + ':' shift, and go to state 476 - $default reduce using rule 452 (struct_member_declarations) +state 413 -state 379 + element_access -> qualified_identifier LEFT_BRACKET expression_list . RIGHT_BRACKET (rule 81) + expression_list -> expression_list . COMMA expression (rule 85) - expression_list -> expression_list . COMMA expression (rule 77) - base_access -> BASE LEFT_BRACKET expression_list . RIGHT_BRACKET (rule 80) + COMMA shift, and go to state 275 + RIGHT_BRACKET shift, and go to state 477 - COMMA shift, and go to state 315 - RIGHT_BRACKET shift, and go to state 526 +state 414 -state 380 + class_declaration -> attributes_opt . modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) + constant_declaration -> attributes_opt . modifiers_opt CONST type constant_declarators ';' (rule 372) + field_declaration -> attributes_opt . modifiers_opt type variable_declarators ';' (rule 373) + method_header -> attributes_opt . modifiers_opt type qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 375) + method_header -> attributes_opt . modifiers_opt VOID qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 376) + property_declaration -> attributes_opt . modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 398) + event_declaration -> attributes_opt . modifiers_opt EVENT type variable_declarators ';' (rule 410) + event_declaration -> attributes_opt . modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 411) + indexer_declaration -> attributes_opt . modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 416) + operator_declaration -> attributes_opt . modifiers_opt operator_declarator operator_body (rule 420) + constructor_declaration -> attributes_opt . modifiers_opt constructor_declarator constructor_body (rule 449) + destructor_declaration -> attributes_opt . modifiers_opt '~' IDENTIFIER '(' ')' block (rule 455) + struct_declaration -> attributes_opt . modifiers_opt STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt (rule 461) + interface_declaration -> attributes_opt . modifiers_opt INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt (rule 488) + enum_declaration -> attributes_opt . modifiers_opt ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt (rule 515) + delegate_declaration -> attributes_opt . modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) - base_access -> BASE '.' IDENTIFIER . (rule 79) + ABSTRACT shift, and go to state 30 + EXTERN shift, and go to state 31 + INTERNAL shift, and go to state 32 + NEW shift, and go to state 34 + OVERRIDE shift, and go to state 35 + PARTIAL shift, and go to state 36 + PRIVATE shift, and go to state 37 + PROTECTED shift, and go to state 38 + PUBLIC shift, and go to state 39 + READONLY shift, and go to state 40 + SEALED shift, and go to state 41 + STATIC shift, and go to state 42 + UNSAFE shift, and go to state 43 + VIRTUAL shift, and go to state 44 + VOLATILE shift, and go to state 45 - $default reduce using rule 79 (base_access) + $default reduce using rule 331 (modifiers_opt) + modifiers_opt go to state 478 + modifiers go to state 47 + modifier go to state 48 -state 381 - checked_expression -> CHECKED '(' expression . ')' (rule 91) +state 415 - ')' shift, and go to state 527 + class_member_declaration -> type_declaration . (rule 371) + $default reduce using rule 371 (class_member_declaration) -state 382 - object_creation_expression -> NEW type '(' . argument_list_opt ')' (rule 84) +state 416 - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - OUT shift, and go to state 404 - REF shift, and go to state 405 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 70 (argument_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - argument_list go to state 406 - argument go to state 407 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - argument_list_opt go to state 528 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 409 - qualified_identifier go to state 230 - qualifier go to state 10 + class_body -> '{' class_member_declarations_opt . '}' (rule 357) + '}' shift, and go to state 479 -state 383 - array_creation_expression -> NEW non_array_type LEFT_BRACKET . expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt (rule 85) +state 417 - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - expression_list go to state 529 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 229 - qualified_identifier go to state 230 - qualifier go to state 10 + class_member_declarations_opt -> class_member_declarations . (rule 359) + class_member_declarations -> class_member_declarations . class_member_declaration (rule 361) + + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 359 (class_member_declarations_opt) + $default reduce using rule 303 (attributes_opt) + attributes_opt go to state 414 + type_declaration go to state 415 + class_declaration go to state 16 + class_member_declaration go to state 480 + constant_declaration go to state 419 + field_declaration go to state 420 + method_declaration go to state 421 + method_header go to state 346 + property_declaration go to state 422 + event_declaration go to state 423 + indexer_declaration go to state 424 + operator_declaration go to state 425 + constructor_declaration go to state 426 + destructor_declaration go to state 427 + struct_declaration go to state 17 + interface_declaration go to state 18 + enum_declaration go to state 19 + delegate_declaration go to state 20 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 -state 384 - array_initializer -> '{' . variable_initializer_list_opt '}' (rule 462) - array_initializer -> '{' . variable_initializer_list COMMA '}' (rule 463) +state 418 - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STACKALLOC shift, and go to state 530 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 384 - - $default reduce using rule 464 (variable_initializer_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 531 - variable_initializer go to state 532 - stackalloc_initializer go to state 533 - qualified_identifier go to state 230 - qualifier go to state 10 - array_initializer go to state 534 - variable_initializer_list_opt go to state 535 - variable_initializer_list go to state 536 + class_member_declarations -> class_member_declaration . (rule 360) + $default reduce using rule 360 (class_member_declarations) -state 385 - array_creation_expression -> NEW array_type array_initializer . (rule 86) +state 419 - $default reduce using rule 86 (array_creation_expression) + class_member_declaration -> constant_declaration . (rule 362) + $default reduce using rule 362 (class_member_declaration) -state 386 - pointer_type -> type . '*' (rule 36) - sizeof_expression -> SIZEOF '(' type . ')' (rule 95) +state 420 - '*' shift, and go to state 123 - ')' shift, and go to state 537 + class_member_declaration -> field_declaration . (rule 363) + $default reduce using rule 363 (class_member_declaration) -state 387 - pointer_type -> VOID . '*' (rule 37) - typeof_expression -> TYPEOF '(' VOID . ')' (rule 90) +state 421 - '*' shift, and go to state 122 - ')' shift, and go to state 538 + class_member_declaration -> method_declaration . (rule 364) + $default reduce using rule 364 (class_member_declaration) -state 388 - pointer_type -> type . '*' (rule 36) - typeof_expression -> TYPEOF '(' type . ')' (rule 89) +state 422 - '*' shift, and go to state 123 - ')' shift, and go to state 539 + class_member_declaration -> property_declaration . (rule 365) + $default reduce using rule 365 (class_member_declaration) -state 389 - unchecked_expression -> UNCHECKED '(' expression . ')' (rule 92) +state 423 - ')' shift, and go to state 540 + class_member_declaration -> event_declaration . (rule 366) + $default reduce using rule 366 (class_member_declaration) -state 390 - type_qual -> '*' . (rule 125) +state 424 - $default reduce using rule 125 (type_qual) + class_member_declaration -> indexer_declaration . (rule 367) + $default reduce using rule 367 (class_member_declaration) -state 391 - type_qual -> rank_specifier . (rule 124) +state 425 - $default reduce using rule 124 (type_qual) + class_member_declaration -> operator_declaration . (rule 368) + $default reduce using rule 368 (class_member_declaration) -state 392 - cast_expression -> '(' VOID type_quals_opt . ')' unary_expression (rule 119) +state 426 - ')' shift, and go to state 541 + class_member_declaration -> constructor_declaration . (rule 369) + $default reduce using rule 369 (class_member_declaration) -state 393 - type_quals_opt -> type_quals . (rule 121) - type_quals -> type_quals . type_qual (rule 123) +state 427 + + class_member_declaration -> destructor_declaration . (rule 370) - RANK_SPECIFIER shift, and go to state 124 - '*' shift, and go to state 390 + $default reduce using rule 370 (class_member_declaration) - $default reduce using rule 121 (type_quals_opt) - rank_specifier go to state 391 - type_qual go to state 542 +state 428 + class_declaration -> attributes_opt modifiers_opt CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt . (rule 351) -state 394 + $default reduce using rule 351 (class_declaration) - type_quals -> type_qual . (rule 122) - $default reduce using rule 122 (type_quals) +state 429 + opt_generic -> GEN_LT @1 genericlist GEN_GT . (rule 13) -state 395 + $default reduce using rule 13 (opt_generic) - cast_expression -> '(' primitive_type type_quals_opt . ')' unary_expression (rule 117) - ')' shift, and go to state 543 +state 430 + genericlist -> type COMMA . @3 genericlist (rule 18) -state 396 + $default reduce using rule 17 (@3) - cast_expression -> '(' class_type type_quals_opt . ')' unary_expression (rule 118) + @3 go to state 481 - ')' shift, and go to state 544 +state 431 -state 397 + parameter_modifier_opt -> OUT . (rule 396) - cast_expression -> '(' multiplicative_expression '*' . ')' unary_expression (rule 115) - multiplicative_expression -> multiplicative_expression '*' . unary_expression (rule 127) + $default reduce using rule 396 (parameter_modifier_opt) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + + +state 432 + + parameter_array -> attributes_opt PARAMS . type IDENTIFIER (rule 397) + + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 DECIMAL shift, and go to state 81 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - ')' shift, and go to state 545 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 413 - cast_expression go to state 216 - qualified_identifier go to state 230 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 482 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 398 +state 433 + + parameter_modifier_opt -> REF . (rule 395) - parenthesized_expression -> '(' expression ')' . (rule 64) - cast_expression -> '(' expression ')' . unary_expression_not_plusminus (rule 114) + $default reduce using rule 395 (parameter_modifier_opt) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + + +state 434 + + fixed_parameter -> attributes_opt parameter_modifier_opt . type IDENTIFIER fixed_parameter_opt_default (rule 391) + + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 DECIMAL shift, and go to state 81 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - '(' shift, and go to state 180 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - - $default reduce using rule 64 (parenthesized_expression) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 546 - cast_expression go to state 216 - qualified_identifier go to state 230 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 483 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 399 +state 435 + + delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' . ';' (rule 527) - cast_expression -> '(' qualified_identifier rank_specifier . type_quals_opt ')' unary_expression (rule 116) + ';' shift, and go to state 484 - RANK_SPECIFIER shift, and go to state 124 - '*' shift, and go to state 390 - $default reduce using rule 120 (type_quals_opt) - rank_specifier go to state 391 - type_quals_opt go to state 547 - type_quals go to state 393 - type_qual go to state 394 +state 436 + formal_parameter_list -> formal_parameter_list COMMA . formal_parameter (rule 388) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) -state 400 + attributes_opt go to state 320 + formal_parameter go to state 485 + fixed_parameter go to state 324 + parameter_array go to state 325 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 - member_access -> primitive_type '.' IDENTIFIER . (rule 66) - $default reduce using rule 66 (member_access) +state 437 + enum_member_declaration -> attributes_opt IDENTIFIER . (rule 525) + enum_member_declaration -> attributes_opt IDENTIFIER . '=' constant_expression (rule 526) -state 401 + '=' shift, and go to state 486 - member_access -> class_type '.' IDENTIFIER . (rule 67) + $default reduce using rule 525 (enum_member_declaration) - $default reduce using rule 67 (member_access) +state 438 -state 402 + enum_body -> '{' enum_member_declarations_opt '}' . (rule 519) - element_access -> primary_expression LEFT_BRACKET expression_list . RIGHT_BRACKET (rule 72) - expression_list -> expression_list . COMMA expression (rule 77) + $default reduce using rule 519 (enum_body) - COMMA shift, and go to state 315 - RIGHT_BRACKET shift, and go to state 548 +state 439 -state 403 + enum_body -> '{' enum_member_declarations COMMA . '}' (rule 520) + enum_member_declarations -> enum_member_declarations COMMA . enum_member_declaration (rule 524) + + '}' shift, and go to state 487 + + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) + + attributes_opt go to state 326 + enum_member_declaration go to state 488 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 - member_access -> primary_expression '.' IDENTIFIER . (rule 65) - $default reduce using rule 65 (member_access) +state 440 + interface_type_list -> interface_type_list COMMA type_name . (rule 356) -state 404 + $default reduce using rule 356 (interface_type_list) - argument -> OUT . variable_reference (rule 49) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - variable_reference go to state 549 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 550 - qualified_identifier go to state 230 - qualifier go to state 10 +state 441 + new_opt -> NEW . (rule 504) -state 405 + $default reduce using rule 504 (new_opt) - argument -> REF . variable_reference (rule 48) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + +state 442 + + interface_method_declaration -> attributes_opt new_opt . type IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 501) + interface_method_declaration -> attributes_opt new_opt . VOID IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 502) + interface_property_declaration -> attributes_opt new_opt . type IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 505) + interface_indexer_declaration -> attributes_opt new_opt . type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 506) + interface_event_declaration -> attributes_opt new_opt . EVENT type IDENTIFIER interface_empty_body (rule 511) + + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 DECIMAL shift, and go to state 81 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + EVENT shift, and go to state 489 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - variable_reference go to state 551 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 550 - qualified_identifier go to state 230 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 490 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 491 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 406 - - argument_list -> argument_list . COMMA argument (rule 46) - argument_list_opt -> argument_list . (rule 71) - - COMMA shift, and go to state 552 - - $default reduce using rule 71 (argument_list_opt) - - - -state 407 - - argument_list -> argument . (rule 45) - - $default reduce using rule 45 (argument_list) - - - -state 408 - - invocation_expression -> primary_expression_no_parenthesis '(' argument_list_opt . ')' (rule 68) - - ')' shift, and go to state 553 - +state 443 + interface_body -> '{' interface_member_declarations_opt '}' . (rule 492) -state 409 + $default reduce using rule 492 (interface_body) - argument -> expression . (rule 47) - $default reduce using rule 47 (argument) +state 444 + interface_member_declarations -> interface_member_declarations interface_member_declaration . (rule 496) -state 410 + $default reduce using rule 496 (interface_member_declarations) - expression_list -> expression_list COMMA expression . (rule 77) - $default reduce using rule 77 (expression_list) +state 445 + class_declaration -> attributes_opt modifiers_opt . CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) + constant_declaration -> attributes_opt modifiers_opt . CONST type constant_declarators ';' (rule 372) + field_declaration -> attributes_opt modifiers_opt . type variable_declarators ';' (rule 373) + method_header -> attributes_opt modifiers_opt . type qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 375) + method_header -> attributes_opt modifiers_opt . VOID qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 376) + property_declaration -> attributes_opt modifiers_opt . type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 398) + event_declaration -> attributes_opt modifiers_opt . EVENT type variable_declarators ';' (rule 410) + event_declaration -> attributes_opt modifiers_opt . EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 411) + indexer_declaration -> attributes_opt modifiers_opt . indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 416) + operator_declaration -> attributes_opt modifiers_opt . operator_declarator operator_body (rule 420) + constructor_declaration -> attributes_opt modifiers_opt . constructor_declarator constructor_body (rule 449) + struct_declaration -> attributes_opt modifiers_opt . STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt (rule 461) + interface_declaration -> attributes_opt modifiers_opt . INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt (rule 488) + enum_declaration -> attributes_opt modifiers_opt . ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt (rule 515) + delegate_declaration -> attributes_opt modifiers_opt . DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) + + IDENTIFIER shift, and go to state 492 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CLASS shift, and go to state 57 + CONST shift, and go to state 493 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 58 + DOUBLE shift, and go to state 82 + ENUM shift, and go to state 59 + EVENT shift, and go to state 494 + EXPLICIT shift, and go to state 495 + FLOAT shift, and go to state 83 + IMPLICIT shift, and go to state 496 + INT shift, and go to state 84 + INTERFACE shift, and go to state 60 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + STRUCT shift, and go to state 61 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 497 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 498 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 + qualifier go to state 10 + indexer_declarator go to state 499 + operator_declarator go to state 500 + overloadable_operator_declarator go to state 501 + conversion_operator_declarator go to state 502 + constructor_declarator go to state 503 -state 411 - pointer_member_access -> postfix_expression ARROW IDENTIFIER . (rule 93) - $default reduce using rule 93 (pointer_member_access) +state 446 + block -> '{' . statement_list_opt '}' (rule 197) + IDENTIFIER shift, and go to state 504 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BREAK shift, and go to state 505 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 506 + CONST shift, and go to state 507 + CONTINUE shift, and go to state 508 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 + FLOAT shift, and go to state 83 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 + INT shift, and go to state 84 + LOCK shift, and go to state 515 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + VOID shift, and go to state 249 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + $default reduce using rule 198 (statement_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + type_name go to state 92 + qualified_identifier_opt_generic go to state 525 + type go to state 526 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 527 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + statement go to state 536 + embedded_statement go to state 537 + block go to state 538 + statement_list_opt go to state 539 + statement_list go to state 540 + empty_statement go to state 541 + labeled_statement go to state 542 + declaration_statement go to state 543 + local_variable_declaration go to state 544 + local_constant_declaration go to state 545 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 569 + qualifier go to state 10 -state 412 - assignment -> unary_expression assignment_operator expression . (rule 158) - $default reduce using rule 158 (assignment) +state 447 + method_body -> ';' . (rule 386) + $default reduce using rule 386 (method_body) -state 413 - multiplicative_expression -> multiplicative_expression '*' unary_expression . (rule 127) - $default reduce using rule 127 (multiplicative_expression) +state 448 + method_body -> block . (rule 385) + $default reduce using rule 385 (method_body) -state 414 - multiplicative_expression -> multiplicative_expression '/' unary_expression . (rule 128) - $default reduce using rule 128 (multiplicative_expression) +state 449 + method_declaration -> method_header method_body . (rule 374) + $default reduce using rule 374 (method_declaration) -state 415 - multiplicative_expression -> multiplicative_expression '%' unary_expression . (rule 129) - $default reduce using rule 129 (multiplicative_expression) +state 450 + struct_body -> '{' struct_member_declarations_opt '}' . (rule 465) + $default reduce using rule 465 (struct_body) -state 416 - multiplicative_expression -> unary_expression . (rule 126) - $default reduce using rule 126 (multiplicative_expression) +state 451 + struct_member_declarations -> struct_member_declarations struct_member_declaration . (rule 469) + $default reduce using rule 469 (struct_member_declarations) -state 417 - multiplicative_expression -> multiplicative_expression . '*' unary_expression (rule 127) - multiplicative_expression -> multiplicative_expression . '/' unary_expression (rule 128) - multiplicative_expression -> multiplicative_expression . '%' unary_expression (rule 129) - additive_expression -> additive_expression '+' multiplicative_expression . (rule 131) - '*' shift, and go to state 331 - '/' shift, and go to state 332 - '%' shift, and go to state 333 +state 452 - $default reduce using rule 131 (additive_expression) + base_access -> BASE LEFT_BRACKET expression_list RIGHT_BRACKET . (rule 88) + $default reduce using rule 88 (base_access) -state 418 - multiplicative_expression -> multiplicative_expression . '*' unary_expression (rule 127) - multiplicative_expression -> multiplicative_expression . '/' unary_expression (rule 128) - multiplicative_expression -> multiplicative_expression . '%' unary_expression (rule 129) - additive_expression -> additive_expression '-' multiplicative_expression . (rule 132) +state 453 - '*' shift, and go to state 331 - '/' shift, and go to state 332 - '%' shift, and go to state 333 + checked_expression -> CHECKED '(' expression ')' . (rule 99) - $default reduce using rule 132 (additive_expression) + $default reduce using rule 99 (checked_expression) -state 419 +state 454 - additive_expression -> additive_expression . '+' multiplicative_expression (rule 131) - additive_expression -> additive_expression . '-' multiplicative_expression (rule 132) - shift_expression -> shift_expression LTLT additive_expression . (rule 134) + delegate_expression -> DELEGATE '(' formal_parameter_list_opt ')' . block (rule 71) - '+' shift, and go to state 334 - '-' shift, and go to state 335 + '{' shift, and go to state 446 - $default reduce using rule 134 (shift_expression) + block go to state 570 -state 420 +state 455 - additive_expression -> additive_expression . '+' multiplicative_expression (rule 131) - additive_expression -> additive_expression . '-' multiplicative_expression (rule 132) - shift_expression -> shift_expression GTGT additive_expression . (rule 135) + object_creation_expression -> NEW type '(' argument_list_opt . ')' (rule 92) - '+' shift, and go to state 334 - '-' shift, and go to state 335 + ')' shift, and go to state 571 - $default reduce using rule 135 (shift_expression) +state 456 -state 421 + expression_list -> expression_list . COMMA expression (rule 85) + array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list . RIGHT_BRACKET rank_specifiers_opt array_initializer_opt (rule 93) - pointer_type -> type . '*' (rule 36) - relational_expression -> relational_expression AS type . (rule 142) + COMMA shift, and go to state 275 + RIGHT_BRACKET shift, and go to state 572 - '*' shift, and go to state 123 - $default reduce using rule 142 (relational_expression) +state 457 + array_initializer -> '{' @8 . variable_initializer_list_opt '}' (rule 480) -state 422 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + STACKALLOC shift, and go to state 573 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 362 + + $default reduce using rule 481 (variable_initializer_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 574 + variable_initializer go to state 575 + stackalloc_initializer go to state 576 + qualified_identifier go to state 225 + qualifier go to state 10 + array_initializer go to state 577 + variable_initializer_list_opt go to state 578 + variable_initializer_list go to state 579 - pointer_type -> type . '*' (rule 36) - relational_expression -> relational_expression IS type . (rule 141) - '*' shift, and go to state 123 - $default reduce using rule 141 (relational_expression) +state 458 + sizeof_expression -> SIZEOF '(' type ')' . (rule 103) + $default reduce using rule 103 (sizeof_expression) -state 423 - shift_expression -> shift_expression . LTLT additive_expression (rule 134) - shift_expression -> shift_expression . GTGT additive_expression (rule 135) - relational_expression -> relational_expression LEQ shift_expression . (rule 139) - LTLT shift, and go to state 336 - GTGT shift, and go to state 337 +state 459 - $default reduce using rule 139 (relational_expression) + typeof_expression -> TYPEOF '(' VOID ')' . (rule 98) + $default reduce using rule 98 (typeof_expression) -state 424 - shift_expression -> shift_expression . LTLT additive_expression (rule 134) - shift_expression -> shift_expression . GTGT additive_expression (rule 135) - relational_expression -> relational_expression GEQ shift_expression . (rule 140) +state 460 - LTLT shift, and go to state 336 - GTGT shift, and go to state 337 + typeof_expression -> TYPEOF '(' type ')' . (rule 97) - $default reduce using rule 140 (relational_expression) + $default reduce using rule 97 (typeof_expression) -state 425 +state 461 - shift_expression -> shift_expression . LTLT additive_expression (rule 134) - shift_expression -> shift_expression . GTGT additive_expression (rule 135) - relational_expression -> relational_expression '<' shift_expression . (rule 137) + unchecked_expression -> UNCHECKED '(' expression ')' . (rule 100) - LTLT shift, and go to state 336 - GTGT shift, and go to state 337 + $default reduce using rule 100 (unchecked_expression) - $default reduce using rule 137 (relational_expression) +state 462 -state 426 + cast_expression -> '(' VOID type_quals_opt ')' . unary_expression (rule 126) - shift_expression -> shift_expression . LTLT additive_expression (rule 134) - shift_expression -> shift_expression . GTGT additive_expression (rule 135) - relational_expression -> relational_expression '>' shift_expression . (rule 138) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 580 + cast_expression go to state 211 + qualified_identifier go to state 225 + qualifier go to state 10 - LTLT shift, and go to state 336 - GTGT shift, and go to state 337 - $default reduce using rule 138 (relational_expression) +state 463 + type_quals -> type_quals type_qual . (rule 130) -state 427 + $default reduce using rule 130 (type_quals) - relational_expression -> relational_expression . '<' shift_expression (rule 137) - relational_expression -> relational_expression . '>' shift_expression (rule 138) - relational_expression -> relational_expression . LEQ shift_expression (rule 139) - relational_expression -> relational_expression . GEQ shift_expression (rule 140) - relational_expression -> relational_expression . IS type (rule 141) - relational_expression -> relational_expression . AS type (rule 142) - equality_expression -> equality_expression EQEQ relational_expression . (rule 144) - AS shift, and go to state 338 - IS shift, and go to state 339 - LEQ shift, and go to state 340 - GEQ shift, and go to state 341 - '<' shift, and go to state 342 - '>' shift, and go to state 343 - $default reduce using rule 144 (equality_expression) +state 464 + cast_expression -> '(' primitive_type type_quals_opt ')' . unary_expression (rule 125) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 581 + cast_expression go to state 211 + qualified_identifier go to state 225 + qualifier go to state 10 -state 428 - relational_expression -> relational_expression . '<' shift_expression (rule 137) - relational_expression -> relational_expression . '>' shift_expression (rule 138) - relational_expression -> relational_expression . LEQ shift_expression (rule 139) - relational_expression -> relational_expression . GEQ shift_expression (rule 140) - relational_expression -> relational_expression . IS type (rule 141) - relational_expression -> relational_expression . AS type (rule 142) - equality_expression -> equality_expression NOTEQ relational_expression . (rule 145) - AS shift, and go to state 338 - IS shift, and go to state 339 - LEQ shift, and go to state 340 - GEQ shift, and go to state 341 - '<' shift, and go to state 342 - '>' shift, and go to state 343 +state 465 - $default reduce using rule 145 (equality_expression) + cast_expression -> '(' multiplicative_expression '*' ')' . unary_expression (rule 123) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 582 + cast_expression go to state 211 + qualified_identifier go to state 225 + qualifier go to state 10 -state 429 - equality_expression -> equality_expression . EQEQ relational_expression (rule 144) - equality_expression -> equality_expression . NOTEQ relational_expression (rule 145) - and_expression -> and_expression '&' equality_expression . (rule 147) +state 466 - EQEQ shift, and go to state 344 - NOTEQ shift, and go to state 345 + cast_expression -> '(' expression ')' unary_expression_not_plusminus . (rule 122) - $default reduce using rule 147 (and_expression) + $default reduce using rule 122 (cast_expression) -state 430 +state 467 - and_expression -> and_expression . '&' equality_expression (rule 147) - exclusive_or_expression -> exclusive_or_expression '^' and_expression . (rule 149) + cast_expression -> '(' qualified_identifier rank_specifier type_quals_opt . ')' unary_expression (rule 124) - '&' shift, and go to state 346 + ')' shift, and go to state 583 - $default reduce using rule 149 (exclusive_or_expression) +state 468 -state 431 + argument -> IDENTIFIER ':' . argument (rule 55) - exclusive_or_expression -> exclusive_or_expression . '^' and_expression (rule 149) - inclusive_or_expression -> inclusive_or_expression '|' exclusive_or_expression . (rule 151) + IDENTIFIER shift, and go to state 377 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + OUT shift, and go to state 378 + REF shift, and go to state 379 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + argument go to state 584 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 383 + qualified_identifier go to state 225 + qualifier go to state 10 - '^' shift, and go to state 347 - $default reduce using rule 151 (inclusive_or_expression) +state 469 + argument -> OUT variable_reference . (rule 54) -state 432 + $default reduce using rule 54 (argument) - inclusive_or_expression -> inclusive_or_expression . '|' exclusive_or_expression (rule 151) - conditional_and_expression -> conditional_and_expression ANDAND inclusive_or_expression . (rule 153) - '|' shift, and go to state 348 - $default reduce using rule 153 (conditional_and_expression) +state 470 + variable_reference -> expression . (rule 49) + $default reduce using rule 49 (variable_reference) -state 433 - conditional_and_expression -> conditional_and_expression . ANDAND inclusive_or_expression (rule 153) - conditional_or_expression -> conditional_or_expression OROR conditional_and_expression . (rule 155) - ANDAND shift, and go to state 349 +state 471 - $default reduce using rule 155 (conditional_or_expression) + argument -> REF variable_reference . (rule 53) + $default reduce using rule 53 (argument) -state 434 - conditional_expression -> conditional_or_expression '?' expression . ':' expression (rule 157) +state 472 - ':' shift, and go to state 554 + argument_list -> argument_list COMMA . argument (rule 51) + IDENTIFIER shift, and go to state 377 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + OUT shift, and go to state 378 + REF shift, and go to state 379 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + argument go to state 585 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 383 + qualified_identifier go to state 225 + qualifier go to state 10 -state 435 - element_access -> qualified_identifier LEFT_BRACKET expression_list . RIGHT_BRACKET (rule 73) - expression_list -> expression_list . COMMA expression (rule 77) +state 473 - COMMA shift, and go to state 315 - RIGHT_BRACKET shift, and go to state 555 + invocation_expression -> qualified_identifier_opt_generic '(' argument_list_opt ')' . (rule 77) + $default reduce using rule 77 (invocation_expression) -state 436 - invocation_expression -> qualified_identifier '(' argument_list_opt . ')' (rule 69) +state 474 - ')' shift, and go to state 556 + element_access -> primary_expression LEFT_BRACKET expression_list RIGHT_BRACKET . (rule 80) + $default reduce using rule 80 (element_access) -state 437 - qualified_identifier -> IDENTIFIER . (rule 302) - qualifier -> IDENTIFIER . '.' (rule 304) - constructor_declarator -> IDENTIFIER . '(' formal_parameter_list_opt ')' constructor_initializer_opt (rule 434) +state 475 - '(' shift, and go to state 557 - '.' shift, and go to state 26 + invocation_expression -> primary_expression_no_parenthesis opt_generic '(' @4 . argument_list_opt ')' (rule 76) - $default reduce using rule 302 (qualified_identifier) + IDENTIFIER shift, and go to state 377 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + OUT shift, and go to state 378 + REF shift, and go to state 379 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 78 (argument_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + argument_list go to state 380 + argument go to state 381 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + argument_list_opt go to state 586 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 383 + qualified_identifier go to state 225 + qualifier go to state 10 -state 438 +state 476 - constant_declaration -> attributes_opt modifiers_opt CONST . type constant_declarators ';' (rule 363) + conditional_expression -> conditional_or_expression '?' expression ':' . expression (rule 164) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 558 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 587 + qualified_identifier go to state 225 qualifier go to state 10 -state 439 +state 477 + + element_access -> qualified_identifier LEFT_BRACKET expression_list RIGHT_BRACKET . (rule 81) + + $default reduce using rule 81 (element_access) - event_declaration -> attributes_opt modifiers_opt EVENT . type variable_declarators ';' (rule 394) - event_declaration -> attributes_opt modifiers_opt EVENT . type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 395) - IDENTIFIER shift, and go to state 52 + +state 478 + + class_declaration -> attributes_opt modifiers_opt . CLASS IDENTIFIER opt_generic_fct @6 class_base_opt class_body comma_opt (rule 351) + constant_declaration -> attributes_opt modifiers_opt . CONST type constant_declarators ';' (rule 372) + field_declaration -> attributes_opt modifiers_opt . type variable_declarators ';' (rule 373) + method_header -> attributes_opt modifiers_opt . type qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 375) + method_header -> attributes_opt modifiers_opt . VOID qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 376) + property_declaration -> attributes_opt modifiers_opt . type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 398) + event_declaration -> attributes_opt modifiers_opt . EVENT type variable_declarators ';' (rule 410) + event_declaration -> attributes_opt modifiers_opt . EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 411) + indexer_declaration -> attributes_opt modifiers_opt . indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 416) + operator_declaration -> attributes_opt modifiers_opt . operator_declarator operator_body (rule 420) + constructor_declaration -> attributes_opt modifiers_opt . constructor_declarator constructor_body (rule 449) + destructor_declaration -> attributes_opt modifiers_opt . '~' IDENTIFIER '(' ')' block (rule 455) + struct_declaration -> attributes_opt modifiers_opt . STRUCT IDENTIFIER @7 struct_interfaces_opt struct_body comma_opt (rule 461) + interface_declaration -> attributes_opt modifiers_opt . INTERFACE IDENTIFIER @9 interface_base_opt interface_body comma_opt (rule 488) + enum_declaration -> attributes_opt modifiers_opt . ENUM IDENTIFIER enum_base_opt @10 enum_body comma_opt (rule 515) + delegate_declaration -> attributes_opt modifiers_opt . DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' (rule 527) + + IDENTIFIER shift, and go to state 492 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 + CLASS shift, and go to state 57 + CONST shift, and go to state 493 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 58 DOUBLE shift, and go to state 82 + ENUM shift, and go to state 59 + EVENT shift, and go to state 494 + EXPLICIT shift, and go to state 495 FLOAT shift, and go to state 83 + IMPLICIT shift, and go to state 496 INT shift, and go to state 84 + INTERFACE shift, and go to state 60 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 559 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + STRUCT shift, and go to state 61 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 497 + '~' shift, and go to state 588 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 498 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 + indexer_declarator go to state 499 + operator_declarator go to state 500 + overloadable_operator_declarator go to state 501 + conversion_operator_declarator go to state 502 + constructor_declarator go to state 503 -state 440 - - conversion_operator_declarator -> EXPLICIT . OPERATOR type '(' type IDENTIFIER ')' (rule 432) +state 479 - OPERATOR shift, and go to state 560 + class_body -> '{' class_member_declarations_opt '}' . (rule 357) + $default reduce using rule 357 (class_body) -state 441 - conversion_operator_declarator -> IMPLICIT . OPERATOR type '(' type IDENTIFIER ')' (rule 431) +state 480 - OPERATOR shift, and go to state 561 + class_member_declarations -> class_member_declarations class_member_declaration . (rule 361) + $default reduce using rule 361 (class_member_declarations) -state 442 - pointer_type -> VOID . '*' (rule 37) - method_header -> attributes_opt modifiers_opt VOID . qualified_identifier '(' formal_parameter_list_opt ')' (rule 367) +state 481 - IDENTIFIER shift, and go to state 52 - '*' shift, and go to state 122 + genericlist -> type COMMA @3 . genericlist (rule 18) - qualified_identifier go to state 562 + IDENTIFIER shift, and go to state 53 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + DECIMAL shift, and go to state 81 + DOUBLE shift, and go to state 82 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + genericlist go to state 589 + type go to state 319 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 443 +state 482 - destructor_declaration -> attributes_opt modifiers_opt '~' . IDENTIFIER '(' ')' block (rule 439) + pointer_type -> type . '*' (rule 41) + parameter_array -> attributes_opt PARAMS type . IDENTIFIER (rule 397) - IDENTIFIER shift, and go to state 563 + IDENTIFIER shift, and go to state 590 + '*' shift, and go to state 119 -state 444 +state 483 - pointer_type -> type . '*' (rule 36) - field_declaration -> attributes_opt modifiers_opt type . variable_declarators ';' (rule 364) - method_header -> attributes_opt modifiers_opt type . qualified_identifier '(' formal_parameter_list_opt ')' (rule 366) - property_declaration -> attributes_opt modifiers_opt type . qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 383) - indexer_declarator -> type . THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET (rule 401) - indexer_declarator -> type . qualified_this LEFT_BRACKET formal_parameter_list RIGHT_BRACKET (rule 402) - overloadable_operator_declarator -> type . OPERATOR overloadable_operator '(' type IDENTIFIER ')' (rule 407) - overloadable_operator_declarator -> type . OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER ')' (rule 408) - - IDENTIFIER shift, and go to state 564 - OPERATOR shift, and go to state 565 - THIS shift, and go to state 566 - '*' shift, and go to state 123 - - variable_declarators go to state 567 - variable_declarator go to state 568 - qualified_identifier go to state 569 - qualifier go to state 570 - qualified_this go to state 571 + pointer_type -> type . '*' (rule 41) + fixed_parameter -> attributes_opt parameter_modifier_opt type . IDENTIFIER fixed_parameter_opt_default (rule 391) + IDENTIFIER shift, and go to state 591 + '*' shift, and go to state 119 -state 445 - indexer_declaration -> attributes_opt modifiers_opt indexer_declarator . ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 400) +state 484 - $default reduce using rule 535 (ENTER_getset) + delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER opt_generic_fct '(' formal_parameter_list_opt ')' ';' . (rule 527) - ENTER_getset go to state 572 + $default reduce using rule 527 (delegate_declaration) -state 446 +state 485 - operator_declaration -> attributes_opt modifiers_opt operator_declarator . operator_body (rule 404) + formal_parameter_list -> formal_parameter_list COMMA formal_parameter . (rule 388) - '{' shift, and go to state 359 - ';' shift, and go to state 573 + $default reduce using rule 388 (formal_parameter_list) - block go to state 574 - operator_body go to state 575 +state 486 -state 447 + enum_member_declaration -> attributes_opt IDENTIFIER '=' . constant_expression (rule 526) - operator_declarator -> overloadable_operator_declarator . (rule 405) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 592 + constant_expression go to state 593 + qualified_identifier go to state 225 + qualifier go to state 10 - $default reduce using rule 405 (operator_declarator) +state 487 -state 448 + enum_body -> '{' enum_member_declarations COMMA '}' . (rule 520) - operator_declarator -> conversion_operator_declarator . (rule 406) + $default reduce using rule 520 (enum_body) - $default reduce using rule 406 (operator_declarator) +state 488 -state 449 + enum_member_declarations -> enum_member_declarations COMMA enum_member_declaration . (rule 524) - constructor_declaration -> attributes_opt modifiers_opt constructor_declarator . constructor_body (rule 433) + $default reduce using rule 524 (enum_member_declarations) - '{' shift, and go to state 359 - ';' shift, and go to state 576 - block go to state 577 - constructor_body go to state 578 +state 489 + interface_event_declaration -> attributes_opt new_opt EVENT . type IDENTIFIER interface_empty_body (rule 511) -state 450 + IDENTIFIER shift, and go to state 53 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + DECIMAL shift, and go to state 81 + DOUBLE shift, and go to state 82 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 594 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 + qualifier go to state 10 - labeled_statement -> IDENTIFIER . ':' statement (rule 196) - qualified_identifier -> IDENTIFIER . (rule 302) - qualifier -> IDENTIFIER . '.' (rule 304) - '.' shift, and go to state 26 - ':' shift, and go to state 579 - $default reduce using rule 302 (qualified_identifier) +state 490 + pointer_type -> VOID . '*' (rule 42) + interface_method_declaration -> attributes_opt new_opt VOID . IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 502) + IDENTIFIER shift, and go to state 595 + '*' shift, and go to state 118 -state 451 - break_statement -> BREAK . ';' (rule 261) - ';' shift, and go to state 580 +state 491 + pointer_type -> type . '*' (rule 41) + interface_method_declaration -> attributes_opt new_opt type . IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 501) + interface_property_declaration -> attributes_opt new_opt type . IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 505) + interface_indexer_declaration -> attributes_opt new_opt type . THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 506) + IDENTIFIER shift, and go to state 596 + THIS shift, and go to state 597 + '*' shift, and go to state 119 -state 452 - checked_expression -> CHECKED . '(' expression ')' (rule 91) - checked_statement -> CHECKED . block (rule 281) - '(' shift, and go to state 287 - '{' shift, and go to state 359 +state 492 + + qualified_identifier -> IDENTIFIER . (rule 311) + qualifier -> IDENTIFIER . '.' (rule 313) + constructor_declarator -> IDENTIFIER . '(' formal_parameter_list_opt ')' constructor_initializer_opt (rule 450) + + '(' shift, and go to state 598 + '.' shift, and go to state 26 - block go to state 581 + $default reduce using rule 311 (qualified_identifier) -state 453 +state 493 - local_constant_declaration -> CONST . type constant_declarators (rule 208) + constant_declaration -> attributes_opt modifiers_opt CONST . type constant_declarators ';' (rule 372) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -9996,1279 +10985,1275 @@ state 453 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 582 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 599 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 454 - - continue_statement -> CONTINUE . ';' (rule 262) - - ';' shift, and go to state 583 - - - -state 455 +state 494 - do_statement -> DO . embedded_statement WHILE '(' boolean_expression ')' ';' (rule 241) + event_declaration -> attributes_opt modifiers_opt EVENT . type variable_declarators ';' (rule 410) + event_declaration -> attributes_opt modifiers_opt EVENT . type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 411) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 INT shift, and go to state 84 - LOCK shift, and go to state 461 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 584 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 600 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 456 +state 495 - fixed_statement -> FIXED . '(' type fixed_pointer_declarators ')' embedded_statement (rule 287) + conversion_operator_declarator -> EXPLICIT . OPERATOR type '(' type IDENTIFIER ')' (rule 448) - '(' shift, and go to state 585 + OPERATOR shift, and go to state 601 -state 457 +state 496 - for_statement -> FOR . '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement (rule 242) + conversion_operator_declarator -> IMPLICIT . OPERATOR type '(' type IDENTIFIER ')' (rule 447) - '(' shift, and go to state 586 + OPERATOR shift, and go to state 602 -state 458 +state 497 - foreach_statement -> FOREACH . '(' type IDENTIFIER IN expression ')' embedded_statement (rule 255) + pointer_type -> VOID . '*' (rule 42) + method_header -> attributes_opt modifiers_opt VOID . qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 376) - '(' shift, and go to state 587 + IDENTIFIER shift, and go to state 53 + '*' shift, and go to state 118 + qualified_identifier go to state 603 + qualifier go to state 10 -state 459 - goto_statement -> GOTO . IDENTIFIER ';' (rule 263) - goto_statement -> GOTO . CASE constant_expression ';' (rule 264) - goto_statement -> GOTO . DEFAULT ';' (rule 265) +state 498 - IDENTIFIER shift, and go to state 588 - CASE shift, and go to state 589 - DEFAULT shift, and go to state 590 + pointer_type -> type . '*' (rule 41) + field_declaration -> attributes_opt modifiers_opt type . variable_declarators ';' (rule 373) + method_header -> attributes_opt modifiers_opt type . qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' (rule 375) + property_declaration -> attributes_opt modifiers_opt type . qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 398) + indexer_declarator -> type . THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET (rule 417) + indexer_declarator -> type . qualified_this LEFT_BRACKET formal_parameter_list RIGHT_BRACKET (rule 418) + overloadable_operator_declarator -> type . OPERATOR overloadable_operator '(' type IDENTIFIER ')' (rule 423) + overloadable_operator_declarator -> type . OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER ')' (rule 424) + IDENTIFIER shift, and go to state 604 + OPERATOR shift, and go to state 605 + THIS shift, and go to state 606 + '*' shift, and go to state 119 + variable_declarators go to state 607 + variable_declarator go to state 608 + qualified_identifier go to state 609 + qualifier go to state 610 + qualified_this go to state 611 -state 460 - if_statement -> IF . '(' boolean_expression ')' embedded_statement (rule 222) - if_statement -> IF . '(' boolean_expression ')' embedded_statement ELSE embedded_statement (rule 223) - '(' shift, and go to state 591 +state 499 + indexer_declaration -> attributes_opt modifiers_opt indexer_declarator . ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 416) + $default reduce using rule 556 (ENTER_getset) -state 461 + ENTER_getset go to state 612 - lock_statement -> LOCK . '(' expression ')' embedded_statement (rule 283) - '(' shift, and go to state 592 +state 500 + operator_declaration -> attributes_opt modifiers_opt operator_declarator . operator_body (rule 420) -state 462 + '{' shift, and go to state 446 + ';' shift, and go to state 613 + + block go to state 614 + operator_body go to state 615 - return_statement -> RETURN . expression_opt ';' (rule 266) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 267 (expression_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 593 - expression_opt go to state 594 - qualified_identifier go to state 230 - qualifier go to state 10 +state 501 + operator_declarator -> overloadable_operator_declarator . (rule 421) -state 463 + $default reduce using rule 421 (operator_declarator) - switch_statement -> SWITCH . '(' expression ')' switch_block (rule 224) - '(' shift, and go to state 595 +state 502 + operator_declarator -> conversion_operator_declarator . (rule 422) + + $default reduce using rule 422 (operator_declarator) + + + +state 503 + + constructor_declaration -> attributes_opt modifiers_opt constructor_declarator . constructor_body (rule 449) + + '{' shift, and go to state 446 + ';' shift, and go to state 616 + + block go to state 617 + constructor_body go to state 618 + + + +state 504 + + labeled_statement -> IDENTIFIER . ':' statement (rule 203) + qualified_identifier -> IDENTIFIER . (rule 311) + qualifier -> IDENTIFIER . '.' (rule 313) + + ':' shift, and go to state 619 + '.' shift, and go to state 26 + + $default reduce using rule 311 (qualified_identifier) -state 464 - throw_statement -> THROW . expression_opt ';' (rule 269) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 +state 505 + + break_statement -> BREAK . ';' (rule 270) + + ';' shift, and go to state 620 + + + +state 506 + + checked_expression -> CHECKED . '(' expression ')' (rule 99) + checked_statement -> CHECKED . block (rule 289) + + '(' shift, and go to state 247 + '{' shift, and go to state 446 + + block go to state 621 + + + +state 507 + + local_constant_declaration -> CONST . type constant_declarators (rule 215) + + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 DECIMAL shift, and go to state 81 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 267 (expression_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 593 - expression_opt go to state 596 - qualified_identifier go to state 230 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 622 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 465 +state 508 - try_statement -> TRY . block catch_clauses (rule 270) - try_statement -> TRY . block finally_clause (rule 271) - try_statement -> TRY . block catch_clauses finally_clause (rule 272) + continue_statement -> CONTINUE . ';' (rule 271) - '{' shift, and go to state 359 + ';' shift, and go to state 623 - block go to state 597 +state 509 -state 466 + do_statement -> DO . embedded_statement WHILE '(' boolean_expression ')' ';' (rule 250) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BREAK shift, and go to state 505 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 + FLOAT shift, and go to state 83 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 + INT shift, and go to state 84 + LOCK shift, and go to state 515 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 624 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 + qualifier go to state 10 - unchecked_expression -> UNCHECKED . '(' expression ')' (rule 92) - unchecked_statement -> UNCHECKED . block (rule 282) - '(' shift, and go to state 294 - '{' shift, and go to state 359 - block go to state 598 +state 510 + fixed_statement -> FIXED . '(' type fixed_pointer_declarators ')' embedded_statement (rule 295) + '(' shift, and go to state 625 -state 467 - unsafe_statement -> UNSAFE . block (rule 239) - '{' shift, and go to state 359 +state 511 - block go to state 599 + for_statement -> FOR . '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement (rule 251) + '(' shift, and go to state 626 -state 468 - using_statement -> USING . '(' resource_acquisition ')' embedded_statement (rule 284) +state 512 - '(' shift, and go to state 600 + foreach_statement -> FOREACH . '(' type IDENTIFIER IN expression ')' embedded_statement (rule 264) + '(' shift, and go to state 627 -state 469 - while_statement -> WHILE . '(' boolean_expression ')' embedded_statement (rule 240) +state 513 - '(' shift, and go to state 601 + goto_statement -> GOTO . IDENTIFIER ';' (rule 272) + goto_statement -> GOTO . CASE constant_expression ';' (rule 273) + goto_statement -> GOTO . DEFAULT ';' (rule 274) + IDENTIFIER shift, and go to state 628 + CASE shift, and go to state 629 + DEFAULT shift, and go to state 630 -state 470 - empty_statement -> ';' . (rule 195) +state 514 - $default reduce using rule 195 (empty_statement) + if_statement -> IF . ifpart opt_else (rule 229) + '(' shift, and go to state 631 + ifpart go to state 632 -state 471 - pointer_type -> type . '*' (rule 36) - local_variable_declaration -> type . variable_declarators (rule 199) - IDENTIFIER shift, and go to state 602 - '*' shift, and go to state 123 +state 515 - variable_declarators go to state 603 - variable_declarator go to state 568 + lock_statement -> LOCK . '(' expression ')' embedded_statement (rule 291) + '(' shift, and go to state 633 -state 472 - simple_type -> primitive_type . (rule 15) - member_access -> primitive_type . '.' IDENTIFIER (rule 66) +state 516 - '.' shift, and go to state 309 + return_statement -> RETURN . expression_opt ';' (rule 275) - $default reduce using rule 15 (simple_type) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 276 (expression_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 634 + expression_opt go to state 635 + qualified_identifier go to state 225 + qualifier go to state 10 -state 473 +state 517 - simple_type -> class_type . (rule 16) - member_access -> class_type . '.' IDENTIFIER (rule 67) + switch_statement -> SWITCH . '(' expression ')' switch_block (rule 233) - '.' shift, and go to state 310 + '(' shift, and go to state 636 - $default reduce using rule 16 (simple_type) +state 518 -state 474 + throw_statement -> THROW . expression_opt ';' (rule 278) - primary_expression_no_parenthesis -> invocation_expression . (rule 55) - statement_expression -> invocation_expression . (rule 213) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 276 (expression_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 634 + expression_opt go to state 637 + qualified_identifier go to state 225 + qualifier go to state 10 - COMMA reduce using rule 213 (statement_expression) - ')' reduce using rule 213 (statement_expression) - ';' reduce using rule 213 (statement_expression) - $default reduce using rule 55 (primary_expression_no_parenthesis) +state 519 -state 475 + try_statement -> TRY . block catch_clauses (rule 279) + try_statement -> TRY . block finally_clause (rule 280) + try_statement -> TRY . block catch_clauses finally_clause (rule 281) - postfix_expression -> post_increment_expression . (rule 98) - statement_expression -> post_increment_expression . (rule 216) + '{' shift, and go to state 446 - COMMA reduce using rule 216 (statement_expression) - ')' reduce using rule 216 (statement_expression) - ';' reduce using rule 216 (statement_expression) - $default reduce using rule 98 (postfix_expression) + block go to state 638 -state 476 +state 520 - postfix_expression -> post_decrement_expression . (rule 99) - statement_expression -> post_decrement_expression . (rule 217) + unchecked_expression -> UNCHECKED . '(' expression ')' (rule 100) + unchecked_statement -> UNCHECKED . block (rule 290) - COMMA reduce using rule 217 (statement_expression) - ')' reduce using rule 217 (statement_expression) - ';' reduce using rule 217 (statement_expression) - $default reduce using rule 99 (postfix_expression) + '(' shift, and go to state 255 + '{' shift, and go to state 446 + block go to state 639 -state 477 - new_expression -> object_creation_expression . (rule 83) - statement_expression -> object_creation_expression . (rule 214) +state 521 - COMMA reduce using rule 214 (statement_expression) - ')' reduce using rule 214 (statement_expression) - ';' reduce using rule 214 (statement_expression) - $default reduce using rule 83 (new_expression) + unsafe_statement -> UNSAFE . block (rule 248) + '{' shift, and go to state 446 + block go to state 640 -state 478 - unary_expression -> pre_increment_expression . (rule 111) - statement_expression -> pre_increment_expression . (rule 218) - COMMA reduce using rule 218 (statement_expression) - ')' reduce using rule 218 (statement_expression) - ';' reduce using rule 218 (statement_expression) - $default reduce using rule 111 (unary_expression) +state 522 + using_statement -> USING . '(' resource_acquisition ')' embedded_statement (rule 292) + '(' shift, and go to state 641 -state 479 - unary_expression -> pre_decrement_expression . (rule 112) - statement_expression -> pre_decrement_expression . (rule 219) - COMMA reduce using rule 219 (statement_expression) - ')' reduce using rule 219 (statement_expression) - ';' reduce using rule 219 (statement_expression) - $default reduce using rule 112 (unary_expression) +state 523 + while_statement -> WHILE . '(' boolean_expression ')' embedded_statement (rule 249) + '(' shift, and go to state 642 -state 480 - assignment -> unary_expression . assignment_operator expression (rule 158) - PLUSEQ shift, and go to state 319 - MINUSEQ shift, and go to state 320 - STAREQ shift, and go to state 321 - DIVEQ shift, and go to state 322 - MODEQ shift, and go to state 323 - XOREQ shift, and go to state 324 - ANDEQ shift, and go to state 325 - OREQ shift, and go to state 326 - GTGTEQ shift, and go to state 327 - LTLTEQ shift, and go to state 328 - '=' shift, and go to state 329 +state 524 - assignment_operator go to state 330 + empty_statement -> ';' . (rule 202) + $default reduce using rule 202 (empty_statement) -state 481 - statement_expression -> assignment . (rule 215) +state 525 - $default reduce using rule 215 (statement_expression) + type_name -> qualified_identifier_opt_generic . (rule 10) + invocation_expression -> qualified_identifier_opt_generic . '(' argument_list_opt ')' (rule 77) + '(' shift, and go to state 269 + $default reduce using rule 10 (type_name) -state 482 - statement_list -> statement . (rule 193) - $default reduce using rule 193 (statement_list) +state 526 + pointer_type -> type . '*' (rule 41) + local_variable_declaration -> type . variable_declarators (rule 206) + IDENTIFIER shift, and go to state 643 + '*' shift, and go to state 119 -state 483 + variable_declarators go to state 644 + variable_declarator go to state 608 - statement -> embedded_statement . (rule 176) - $default reduce using rule 176 (statement) +state 527 + simple_type -> primitive_type . (rule 23) + member_access -> primitive_type . '.' IDENTIFIER (rule 74) -state 484 + '.' shift, and go to state 270 - embedded_statement -> block . (rule 177) + $default reduce using rule 23 (simple_type) - $default reduce using rule 177 (embedded_statement) +state 528 -state 485 + primary_expression_no_parenthesis -> invocation_expression . (rule 61) + statement_expression -> invocation_expression . (rule 220) - block -> '{' statement_list_opt . '}' (rule 190) + COMMA reduce using rule 220 (statement_expression) + ')' reduce using rule 220 (statement_expression) + ';' reduce using rule 220 (statement_expression) + $default reduce using rule 61 (primary_expression_no_parenthesis) - '}' shift, and go to state 604 +state 529 -state 486 + postfix_expression -> post_increment_expression . (rule 106) + statement_expression -> post_increment_expression . (rule 223) - statement_list_opt -> statement_list . (rule 192) - statement_list -> statement_list . statement (rule 194) + COMMA reduce using rule 223 (statement_expression) + ')' reduce using rule 223 (statement_expression) + ';' reduce using rule 223 (statement_expression) + $default reduce using rule 106 (postfix_expression) - IDENTIFIER shift, and go to state 450 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BREAK shift, and go to state 451 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONST shift, and go to state 453 - CONTINUE shift, and go to state 454 - DECIMAL shift, and go to state 81 - DO shift, and go to state 455 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 - FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 - INT shift, and go to state 84 - LOCK shift, and go to state 461 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - VOID shift, and go to state 288 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - $default reduce using rule 192 (statement_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - type_name go to state 94 - type go to state 471 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 472 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 473 - pointer_type go to state 103 - array_type go to state 104 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - statement go to state 605 - embedded_statement go to state 483 - block go to state 484 - empty_statement go to state 487 - labeled_statement go to state 488 - declaration_statement go to state 489 - local_variable_declaration go to state 490 - local_constant_declaration go to state 491 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 515 - qualifier go to state 10 +state 530 -state 487 + postfix_expression -> post_decrement_expression . (rule 107) + statement_expression -> post_decrement_expression . (rule 224) - embedded_statement -> empty_statement . (rule 178) + COMMA reduce using rule 224 (statement_expression) + ')' reduce using rule 224 (statement_expression) + ';' reduce using rule 224 (statement_expression) + $default reduce using rule 107 (postfix_expression) - $default reduce using rule 178 (embedded_statement) +state 531 -state 488 + new_expression -> object_creation_expression . (rule 91) + statement_expression -> object_creation_expression . (rule 221) - statement -> labeled_statement . (rule 174) + COMMA reduce using rule 221 (statement_expression) + ')' reduce using rule 221 (statement_expression) + ';' reduce using rule 221 (statement_expression) + $default reduce using rule 91 (new_expression) - $default reduce using rule 174 (statement) +state 532 -state 489 + unary_expression -> pre_increment_expression . (rule 119) + statement_expression -> pre_increment_expression . (rule 225) - statement -> declaration_statement . (rule 175) + COMMA reduce using rule 225 (statement_expression) + ')' reduce using rule 225 (statement_expression) + ';' reduce using rule 225 (statement_expression) + $default reduce using rule 119 (unary_expression) - $default reduce using rule 175 (statement) +state 533 -state 490 + unary_expression -> pre_decrement_expression . (rule 120) + statement_expression -> pre_decrement_expression . (rule 226) - declaration_statement -> local_variable_declaration . ';' (rule 197) + COMMA reduce using rule 226 (statement_expression) + ')' reduce using rule 226 (statement_expression) + ';' reduce using rule 226 (statement_expression) + $default reduce using rule 120 (unary_expression) - ';' shift, and go to state 606 +state 534 -state 491 + assignment -> unary_expression . assignment_operator expression (rule 165) - declaration_statement -> local_constant_declaration . ';' (rule 198) + PLUSEQ shift, and go to state 279 + MINUSEQ shift, and go to state 280 + STAREQ shift, and go to state 281 + DIVEQ shift, and go to state 282 + MODEQ shift, and go to state 283 + XOREQ shift, and go to state 284 + ANDEQ shift, and go to state 285 + OREQ shift, and go to state 286 + GTGTEQ shift, and go to state 287 + LTLTEQ shift, and go to state 288 + '=' shift, and go to state 289 - ';' shift, and go to state 607 + assignment_operator go to state 290 -state 492 +state 535 - embedded_statement -> expression_statement . (rule 179) + statement_expression -> assignment . (rule 222) - $default reduce using rule 179 (embedded_statement) + $default reduce using rule 222 (statement_expression) -state 493 +state 536 - expression_statement -> statement_expression . ';' (rule 212) + statement_list -> statement . (rule 200) - ';' shift, and go to state 608 + $default reduce using rule 200 (statement_list) -state 494 +state 537 - embedded_statement -> selection_statement . (rule 180) + statement -> embedded_statement . (rule 183) - $default reduce using rule 180 (embedded_statement) + $default reduce using rule 183 (statement) -state 495 +state 538 - selection_statement -> if_statement . (rule 220) + embedded_statement -> block . (rule 184) - $default reduce using rule 220 (selection_statement) + $default reduce using rule 184 (embedded_statement) -state 496 +state 539 - selection_statement -> switch_statement . (rule 221) + block -> '{' statement_list_opt . '}' (rule 197) - $default reduce using rule 221 (selection_statement) + '}' shift, and go to state 645 -state 497 +state 540 - embedded_statement -> iteration_statement . (rule 181) + statement_list_opt -> statement_list . (rule 199) + statement_list -> statement_list . statement (rule 201) - $default reduce using rule 181 (embedded_statement) + IDENTIFIER shift, and go to state 504 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BREAK shift, and go to state 505 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 506 + CONST shift, and go to state 507 + CONTINUE shift, and go to state 508 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 + FLOAT shift, and go to state 83 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 + INT shift, and go to state 84 + LOCK shift, and go to state 515 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + VOID shift, and go to state 249 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + $default reduce using rule 199 (statement_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + type_name go to state 92 + qualified_identifier_opt_generic go to state 525 + type go to state 526 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 527 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + statement go to state 646 + embedded_statement go to state 537 + block go to state 538 + empty_statement go to state 541 + labeled_statement go to state 542 + declaration_statement go to state 543 + local_variable_declaration go to state 544 + local_constant_declaration go to state 545 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 569 + qualifier go to state 10 -state 498 +state 541 - embedded_statement -> unsafe_statement . (rule 188) + embedded_statement -> empty_statement . (rule 185) - $default reduce using rule 188 (embedded_statement) + $default reduce using rule 185 (embedded_statement) -state 499 +state 542 - iteration_statement -> while_statement . (rule 235) + statement -> labeled_statement . (rule 181) - $default reduce using rule 235 (iteration_statement) + $default reduce using rule 181 (statement) -state 500 +state 543 - iteration_statement -> do_statement . (rule 236) + statement -> declaration_statement . (rule 182) - $default reduce using rule 236 (iteration_statement) + $default reduce using rule 182 (statement) -state 501 +state 544 - iteration_statement -> for_statement . (rule 237) + declaration_statement -> local_variable_declaration . ';' (rule 204) - $default reduce using rule 237 (iteration_statement) + ';' shift, and go to state 647 -state 502 +state 545 - iteration_statement -> foreach_statement . (rule 238) + declaration_statement -> local_constant_declaration . ';' (rule 205) - $default reduce using rule 238 (iteration_statement) + ';' shift, and go to state 648 -state 503 +state 546 - embedded_statement -> jump_statement . (rule 182) + embedded_statement -> expression_statement . (rule 186) - $default reduce using rule 182 (embedded_statement) + $default reduce using rule 186 (embedded_statement) -state 504 +state 547 - jump_statement -> break_statement . (rule 256) + expression_statement -> statement_expression . ';' (rule 219) - $default reduce using rule 256 (jump_statement) + ';' shift, and go to state 649 -state 505 +state 548 - jump_statement -> continue_statement . (rule 257) + embedded_statement -> selection_statement . (rule 187) - $default reduce using rule 257 (jump_statement) + $default reduce using rule 187 (embedded_statement) -state 506 +state 549 - jump_statement -> goto_statement . (rule 258) + selection_statement -> if_statement . (rule 227) - $default reduce using rule 258 (jump_statement) + $default reduce using rule 227 (selection_statement) -state 507 +state 550 - jump_statement -> return_statement . (rule 259) + selection_statement -> switch_statement . (rule 228) - $default reduce using rule 259 (jump_statement) + $default reduce using rule 228 (selection_statement) -state 508 +state 551 - jump_statement -> throw_statement . (rule 260) + embedded_statement -> iteration_statement . (rule 188) - $default reduce using rule 260 (jump_statement) + $default reduce using rule 188 (embedded_statement) -state 509 +state 552 - embedded_statement -> try_statement . (rule 183) + embedded_statement -> unsafe_statement . (rule 195) - $default reduce using rule 183 (embedded_statement) + $default reduce using rule 195 (embedded_statement) -state 510 +state 553 - embedded_statement -> checked_statement . (rule 184) + iteration_statement -> while_statement . (rule 244) - $default reduce using rule 184 (embedded_statement) + $default reduce using rule 244 (iteration_statement) -state 511 +state 554 - embedded_statement -> unchecked_statement . (rule 185) + iteration_statement -> do_statement . (rule 245) - $default reduce using rule 185 (embedded_statement) + $default reduce using rule 245 (iteration_statement) -state 512 +state 555 - embedded_statement -> lock_statement . (rule 186) + iteration_statement -> for_statement . (rule 246) - $default reduce using rule 186 (embedded_statement) + $default reduce using rule 246 (iteration_statement) -state 513 +state 556 - embedded_statement -> using_statement . (rule 187) + iteration_statement -> foreach_statement . (rule 247) - $default reduce using rule 187 (embedded_statement) + $default reduce using rule 247 (iteration_statement) -state 514 +state 557 - embedded_statement -> fixed_statement . (rule 189) + embedded_statement -> jump_statement . (rule 189) $default reduce using rule 189 (embedded_statement) -state 515 +state 558 - type_name -> qualified_identifier . (rule 10) - array_type -> qualified_identifier . rank_specifier (rule 40) - invocation_expression -> qualified_identifier . '(' argument_list_opt ')' (rule 69) - element_access -> qualified_identifier . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 73) - postfix_expression -> qualified_identifier . (rule 97) + jump_statement -> break_statement . (rule 265) - RANK_SPECIFIER shift, and go to state 124 - LEFT_BRACKET shift, and go to state 352 - '(' shift, and go to state 353 + $default reduce using rule 265 (jump_statement) - IDENTIFIER reduce using rule 10 (type_name) - '*' reduce using rule 10 (type_name) - '*' [reduce using rule 97 (postfix_expression)] - $default reduce using rule 97 (postfix_expression) - rank_specifier go to state 127 +state 559 + jump_statement -> continue_statement . (rule 266) -state 516 + $default reduce using rule 266 (jump_statement) - pointer_type -> type . '*' (rule 36) - parameter_array -> attributes_opt PARAMS type . IDENTIFIER (rule 382) - IDENTIFIER shift, and go to state 609 - '*' shift, and go to state 123 +state 560 + jump_statement -> goto_statement . (rule 267) -state 517 + $default reduce using rule 267 (jump_statement) - pointer_type -> type . '*' (rule 36) - fixed_parameter -> attributes_opt parameter_modifier_opt type . IDENTIFIER (rule 378) - IDENTIFIER shift, and go to state 610 - '*' shift, and go to state 123 +state 561 + jump_statement -> return_statement . (rule 268) -state 518 + $default reduce using rule 268 (jump_statement) - delegate_declaration -> attributes_opt modifiers_opt DELEGATE return_type IDENTIFIER '(' formal_parameter_list_opt ')' ';' . (rule 506) - $default reduce using rule 506 (delegate_declaration) +state 562 + jump_statement -> throw_statement . (rule 269) -state 519 + $default reduce using rule 269 (jump_statement) - formal_parameter_list -> formal_parameter_list COMMA formal_parameter . (rule 375) - $default reduce using rule 375 (formal_parameter_list) +state 563 + embedded_statement -> try_statement . (rule 190) -state 520 + $default reduce using rule 190 (embedded_statement) - enum_member_declaration -> attributes_opt IDENTIFIER '=' . constant_expression (rule 505) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 611 - constant_expression go to state 612 - qualified_identifier go to state 230 - qualifier go to state 10 +state 564 + embedded_statement -> checked_statement . (rule 191) -state 521 + $default reduce using rule 191 (embedded_statement) - enum_body -> '{' enum_member_declarations COMMA '}' . (rule 499) - $default reduce using rule 499 (enum_body) +state 565 + embedded_statement -> unchecked_statement . (rule 192) -state 522 + $default reduce using rule 192 (embedded_statement) - enum_member_declarations -> enum_member_declarations COMMA enum_member_declaration . (rule 503) - $default reduce using rule 503 (enum_member_declarations) +state 566 + embedded_statement -> lock_statement . (rule 193) -state 523 + $default reduce using rule 193 (embedded_statement) - interface_event_declaration -> attributes_opt new_opt EVENT . type IDENTIFIER interface_empty_body (rule 491) - IDENTIFIER shift, and go to state 52 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 613 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 - qualifier go to state 10 +state 567 + embedded_statement -> using_statement . (rule 194) -state 524 + $default reduce using rule 194 (embedded_statement) - pointer_type -> VOID . '*' (rule 37) - interface_method_declaration -> attributes_opt new_opt VOID . IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 482) - IDENTIFIER shift, and go to state 614 - '*' shift, and go to state 122 +state 568 + embedded_statement -> fixed_statement . (rule 196) -state 525 + $default reduce using rule 196 (embedded_statement) - pointer_type -> type . '*' (rule 36) - interface_method_declaration -> attributes_opt new_opt type . IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body (rule 481) - interface_property_declaration -> attributes_opt new_opt type . IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 485) - interface_indexer_declaration -> attributes_opt new_opt type . THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 486) - IDENTIFIER shift, and go to state 615 - THIS shift, and go to state 616 - '*' shift, and go to state 123 +state 569 + qualified_identifier_opt_generic -> qualified_identifier . @2 opt_generic (rule 15) + array_type -> qualified_identifier . rank_specifier (rule 45) + element_access -> qualified_identifier . LEFT_BRACKET expression_list RIGHT_BRACKET (rule 81) + postfix_expression -> qualified_identifier . (rule 105) -state 526 + RANK_SPECIFIER shift, and go to state 120 + LEFT_BRACKET shift, and go to state 312 - base_access -> BASE LEFT_BRACKET expression_list RIGHT_BRACKET . (rule 80) + IDENTIFIER reduce using rule 14 (@2) + GEN_LT reduce using rule 14 (@2) + '*' reduce using rule 14 (@2) + '*' [reduce using rule 105 (postfix_expression)] + '(' reduce using rule 14 (@2) + $default reduce using rule 105 (postfix_expression) - $default reduce using rule 80 (base_access) + @2 go to state 123 + rank_specifier go to state 124 -state 527 +state 570 - checked_expression -> CHECKED '(' expression ')' . (rule 91) + delegate_expression -> DELEGATE '(' formal_parameter_list_opt ')' block . (rule 71) - $default reduce using rule 91 (checked_expression) + $default reduce using rule 71 (delegate_expression) -state 528 +state 571 - object_creation_expression -> NEW type '(' argument_list_opt . ')' (rule 84) + object_creation_expression -> NEW type '(' argument_list_opt ')' . (rule 92) - ')' shift, and go to state 617 + $default reduce using rule 92 (object_creation_expression) -state 529 +state 572 - expression_list -> expression_list . COMMA expression (rule 77) - array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list . RIGHT_BRACKET rank_specifiers_opt array_initializer_opt (rule 85) + array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET . rank_specifiers_opt array_initializer_opt (rule 93) - COMMA shift, and go to state 315 - RIGHT_BRACKET shift, and go to state 618 + RANK_SPECIFIER shift, and go to state 120 + $default reduce using rule 46 (rank_specifiers_opt) + rank_specifiers_opt go to state 650 + rank_specifier go to state 651 -state 530 - stackalloc_initializer -> STACKALLOC . type LEFT_BRACKET expression RIGHT_BRACKET (rule 207) - IDENTIFIER shift, and go to state 52 +state 573 + + stackalloc_initializer -> STACKALLOC . type LEFT_BRACKET expression RIGHT_BRACKET (rule 214) + + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -11277,724 +12262,324 @@ state 530 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 619 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 652 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 531 - - variable_initializer -> expression . (rule 204) - - $default reduce using rule 204 (variable_initializer) - - +state 574 -state 532 + variable_initializer -> expression . (rule 211) - variable_initializer_list -> variable_initializer . (rule 466) + $default reduce using rule 211 (variable_initializer) - $default reduce using rule 466 (variable_initializer_list) +state 575 -state 533 + variable_initializer_list -> variable_initializer . (rule 485) - variable_initializer -> stackalloc_initializer . (rule 206) + $default reduce using rule 485 (variable_initializer_list) - $default reduce using rule 206 (variable_initializer) +state 576 -state 534 + variable_initializer -> stackalloc_initializer . (rule 213) - variable_initializer -> array_initializer . (rule 205) + $default reduce using rule 213 (variable_initializer) - $default reduce using rule 205 (variable_initializer) +state 577 -state 535 + variable_initializer -> array_initializer . (rule 212) - array_initializer -> '{' variable_initializer_list_opt . '}' (rule 462) + $default reduce using rule 212 (variable_initializer) - '}' shift, and go to state 620 +state 578 -state 536 + array_initializer -> '{' @8 variable_initializer_list_opt . '}' (rule 480) - array_initializer -> '{' variable_initializer_list . COMMA '}' (rule 463) - variable_initializer_list_opt -> variable_initializer_list . (rule 465) - variable_initializer_list -> variable_initializer_list . COMMA variable_initializer (rule 467) + '}' shift, and go to state 653 - COMMA shift, and go to state 621 - $default reduce using rule 465 (variable_initializer_list_opt) +state 579 + variable_initializer_list_opt -> variable_initializer_list . opt_comma (rule 482) + variable_initializer_list -> variable_initializer_list . COMMA variable_initializer (rule 486) -state 537 + COMMA shift, and go to state 654 - sizeof_expression -> SIZEOF '(' type ')' . (rule 95) + $default reduce using rule 484 (opt_comma) - $default reduce using rule 95 (sizeof_expression) + opt_comma go to state 655 -state 538 +state 580 - typeof_expression -> TYPEOF '(' VOID ')' . (rule 90) + cast_expression -> '(' VOID type_quals_opt ')' unary_expression . (rule 126) - $default reduce using rule 90 (typeof_expression) + $default reduce using rule 126 (cast_expression) -state 539 +state 581 - typeof_expression -> TYPEOF '(' type ')' . (rule 89) + cast_expression -> '(' primitive_type type_quals_opt ')' unary_expression . (rule 125) - $default reduce using rule 89 (typeof_expression) + $default reduce using rule 125 (cast_expression) -state 540 +state 582 - unchecked_expression -> UNCHECKED '(' expression ')' . (rule 92) + cast_expression -> '(' multiplicative_expression '*' ')' unary_expression . (rule 123) - $default reduce using rule 92 (unchecked_expression) + $default reduce using rule 123 (cast_expression) -state 541 +state 583 - cast_expression -> '(' VOID type_quals_opt ')' . unary_expression (rule 119) + cast_expression -> '(' qualified_identifier rank_specifier type_quals_opt ')' . unary_expression (rule 124) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 622 - cast_expression go to state 216 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 656 + cast_expression go to state 211 + qualified_identifier go to state 225 qualifier go to state 10 -state 542 - - type_quals -> type_quals type_qual . (rule 123) - - $default reduce using rule 123 (type_quals) +state 584 + argument -> IDENTIFIER ':' argument . (rule 55) + $default reduce using rule 55 (argument) -state 543 - cast_expression -> '(' primitive_type type_quals_opt ')' . unary_expression (rule 117) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 623 - cast_expression go to state 216 - qualified_identifier go to state 230 - qualifier go to state 10 +state 585 + argument_list -> argument_list COMMA argument . (rule 51) + $default reduce using rule 51 (argument_list) -state 544 - cast_expression -> '(' class_type type_quals_opt ')' . unary_expression (rule 118) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 624 - cast_expression go to state 216 - qualified_identifier go to state 230 - qualifier go to state 10 +state 586 + invocation_expression -> primary_expression_no_parenthesis opt_generic '(' @4 argument_list_opt . ')' (rule 76) + ')' shift, and go to state 657 -state 545 - cast_expression -> '(' multiplicative_expression '*' ')' . unary_expression (rule 115) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 625 - cast_expression go to state 216 - qualified_identifier go to state 230 - qualifier go to state 10 +state 587 + conditional_expression -> conditional_or_expression '?' expression ':' expression . (rule 164) + $default reduce using rule 164 (conditional_expression) -state 546 - cast_expression -> '(' expression ')' unary_expression_not_plusminus . (rule 114) - $default reduce using rule 114 (cast_expression) +state 588 + destructor_declaration -> attributes_opt modifiers_opt '~' . IDENTIFIER '(' ')' block (rule 455) + IDENTIFIER shift, and go to state 658 -state 547 - cast_expression -> '(' qualified_identifier rank_specifier type_quals_opt . ')' unary_expression (rule 116) - ')' shift, and go to state 626 +state 589 + genericlist -> type COMMA @3 genericlist . (rule 18) + $default reduce using rule 18 (genericlist) -state 548 - element_access -> primary_expression LEFT_BRACKET expression_list RIGHT_BRACKET . (rule 72) - $default reduce using rule 72 (element_access) +state 590 + parameter_array -> attributes_opt PARAMS type IDENTIFIER . (rule 397) + $default reduce using rule 397 (parameter_array) -state 549 - argument -> OUT variable_reference . (rule 49) - $default reduce using rule 49 (argument) +state 591 + fixed_parameter -> attributes_opt parameter_modifier_opt type IDENTIFIER . fixed_parameter_opt_default (rule 391) + '=' shift, and go to state 659 -state 550 + $default reduce using rule 392 (fixed_parameter_opt_default) - variable_reference -> expression . (rule 44) + fixed_parameter_opt_default go to state 660 - $default reduce using rule 44 (variable_reference) +state 592 -state 551 + constant_expression -> expression . (rule 179) - argument -> REF variable_reference . (rule 48) + $default reduce using rule 179 (constant_expression) - $default reduce using rule 48 (argument) +state 593 -state 552 + enum_member_declaration -> attributes_opt IDENTIFIER '=' constant_expression . (rule 526) - argument_list -> argument_list COMMA . argument (rule 46) + $default reduce using rule 526 (enum_member_declaration) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - OUT shift, and go to state 404 - REF shift, and go to state 405 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - argument go to state 627 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 409 - qualified_identifier go to state 230 - qualifier go to state 10 +state 594 -state 553 + pointer_type -> type . '*' (rule 41) + interface_event_declaration -> attributes_opt new_opt EVENT type . IDENTIFIER interface_empty_body (rule 511) - invocation_expression -> primary_expression_no_parenthesis '(' argument_list_opt ')' . (rule 68) + IDENTIFIER shift, and go to state 661 + '*' shift, and go to state 119 - $default reduce using rule 68 (invocation_expression) +state 595 -state 554 + interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER . '(' formal_parameter_list_opt ')' interface_empty_body (rule 502) - conditional_expression -> conditional_or_expression '?' expression ':' . expression (rule 157) + '(' shift, and go to state 662 - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 628 - qualified_identifier go to state 230 - qualifier go to state 10 +state 596 -state 555 + interface_method_declaration -> attributes_opt new_opt type IDENTIFIER . '(' formal_parameter_list_opt ')' interface_empty_body (rule 501) + interface_property_declaration -> attributes_opt new_opt type IDENTIFIER . ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 505) - element_access -> qualified_identifier LEFT_BRACKET expression_list RIGHT_BRACKET . (rule 73) + '(' shift, and go to state 663 - $default reduce using rule 73 (element_access) + $default reduce using rule 556 (ENTER_getset) + ENTER_getset go to state 664 -state 556 - invocation_expression -> qualified_identifier '(' argument_list_opt ')' . (rule 69) +state 597 + + interface_indexer_declaration -> attributes_opt new_opt type THIS . LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 506) - $default reduce using rule 69 (invocation_expression) + LEFT_BRACKET shift, and go to state 665 -state 557 +state 598 - constructor_declarator -> IDENTIFIER '(' . formal_parameter_list_opt ')' constructor_initializer_opt (rule 434) + constructor_declarator -> IDENTIFIER '(' . formal_parameter_list_opt ')' constructor_initializer_opt (rule 450) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - ')' reduce using rule 368 (formal_parameter_list_opt) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + ')' reduce using rule 381 (formal_parameter_list_opt) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 250 - formal_parameter_list_opt go to state 629 - formal_parameter_list go to state 252 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 + attributes_opt go to state 320 + formal_parameter_list_opt go to state 666 + formal_parameter_list go to state 322 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -12002,40 +12587,40 @@ state 557 -state 558 +state 599 - pointer_type -> type . '*' (rule 36) - constant_declaration -> attributes_opt modifiers_opt CONST type . constant_declarators ';' (rule 363) + pointer_type -> type . '*' (rule 41) + constant_declaration -> attributes_opt modifiers_opt CONST type . constant_declarators ';' (rule 372) - IDENTIFIER shift, and go to state 630 - '*' shift, and go to state 123 + IDENTIFIER shift, and go to state 667 + '*' shift, and go to state 119 - constant_declarators go to state 631 - constant_declarator go to state 632 + constant_declarators go to state 668 + constant_declarator go to state 669 -state 559 +state 600 - pointer_type -> type . '*' (rule 36) - event_declaration -> attributes_opt modifiers_opt EVENT type . variable_declarators ';' (rule 394) - event_declaration -> attributes_opt modifiers_opt EVENT type . qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 395) + pointer_type -> type . '*' (rule 41) + event_declaration -> attributes_opt modifiers_opt EVENT type . variable_declarators ';' (rule 410) + event_declaration -> attributes_opt modifiers_opt EVENT type . qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 411) - IDENTIFIER shift, and go to state 564 - '*' shift, and go to state 123 + IDENTIFIER shift, and go to state 604 + '*' shift, and go to state 119 - variable_declarators go to state 633 - variable_declarator go to state 568 - qualified_identifier go to state 634 + variable_declarators go to state 670 + variable_declarator go to state 608 + qualified_identifier go to state 671 qualifier go to state 10 -state 560 +state 601 - conversion_operator_declarator -> EXPLICIT OPERATOR . type '(' type IDENTIFIER ')' (rule 432) + conversion_operator_declarator -> EXPLICIT OPERATOR . type '(' type IDENTIFIER ')' (rule 448) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -12044,36 +12629,34 @@ state 560 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 635 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 672 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 561 +state 602 - conversion_operator_declarator -> IMPLICIT OPERATOR . type '(' type IDENTIFIER ')' (rule 431) + conversion_operator_declarator -> IMPLICIT OPERATOR . type '(' type IDENTIFIER ')' (rule 447) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -12082,398 +12665,394 @@ state 561 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 636 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 673 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 562 - - method_header -> attributes_opt modifiers_opt VOID qualified_identifier . '(' formal_parameter_list_opt ')' (rule 367) - - '(' shift, and go to state 637 - +state 603 + method_header -> attributes_opt modifiers_opt VOID qualified_identifier . opt_generic_fct '(' formal_parameter_list_opt ')' (rule 376) -state 563 + GEN_LT shift, and go to state 116 - destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER . '(' ')' block (rule 439) + $default reduce using rule 379 (opt_generic_fct) - '(' shift, and go to state 638 + opt_generic_fct go to state 674 -state 564 +state 604 - variable_declarator -> IDENTIFIER . (rule 202) - variable_declarator -> IDENTIFIER . '=' variable_initializer (rule 203) - qualified_identifier -> IDENTIFIER . (rule 302) - qualifier -> IDENTIFIER . '.' (rule 304) + variable_declarator -> IDENTIFIER . (rule 209) + variable_declarator -> IDENTIFIER . '=' variable_initializer (rule 210) + qualified_identifier -> IDENTIFIER . (rule 311) + qualifier -> IDENTIFIER . '.' (rule 313) '.' shift, and go to state 26 - '=' shift, and go to state 639 + '=' shift, and go to state 675 - '(' reduce using rule 302 (qualified_identifier) - '{' reduce using rule 302 (qualified_identifier) - $default reduce using rule 202 (variable_declarator) + COMMA reduce using rule 209 (variable_declarator) + ';' reduce using rule 209 (variable_declarator) + $default reduce using rule 311 (qualified_identifier) -state 565 +state 605 - overloadable_operator_declarator -> type OPERATOR . overloadable_operator '(' type IDENTIFIER ')' (rule 407) - overloadable_operator_declarator -> type OPERATOR . overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER ')' (rule 408) - - FALSE shift, and go to state 640 - TRUE shift, and go to state 641 - LTLT shift, and go to state 642 - GTGT shift, and go to state 643 - EQEQ shift, and go to state 644 - NOTEQ shift, and go to state 645 - LEQ shift, and go to state 646 - GEQ shift, and go to state 647 - PLUSPLUS shift, and go to state 648 - MINUSMINUS shift, and go to state 649 - '*' shift, and go to state 650 - '&' shift, and go to state 651 - '!' shift, and go to state 652 - '~' shift, and go to state 653 - '+' shift, and go to state 654 - '-' shift, and go to state 655 - '/' shift, and go to state 656 - '%' shift, and go to state 657 - '<' shift, and go to state 658 - '>' shift, and go to state 659 - '^' shift, and go to state 660 - '|' shift, and go to state 661 - - overloadable_operator go to state 662 + overloadable_operator_declarator -> type OPERATOR . overloadable_operator '(' type IDENTIFIER ')' (rule 423) + overloadable_operator_declarator -> type OPERATOR . overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER ')' (rule 424) + + FALSE shift, and go to state 676 + TRUE shift, and go to state 677 + GT shift, and go to state 678 + GTGT shift, and go to state 679 + LT shift, and go to state 680 + LTLT shift, and go to state 681 + EQEQ shift, and go to state 682 + NOTEQ shift, and go to state 683 + LEQ shift, and go to state 684 + GEQ shift, and go to state 685 + PLUSPLUS shift, and go to state 686 + MINUSMINUS shift, and go to state 687 + '*' shift, and go to state 688 + '&' shift, and go to state 689 + '!' shift, and go to state 690 + '~' shift, and go to state 691 + '+' shift, and go to state 692 + '-' shift, and go to state 693 + '/' shift, and go to state 694 + '%' shift, and go to state 695 + '^' shift, and go to state 696 + '|' shift, and go to state 697 + + overloadable_operator go to state 698 -state 566 +state 606 - indexer_declarator -> type THIS . LEFT_BRACKET formal_parameter_list RIGHT_BRACKET (rule 401) + indexer_declarator -> type THIS . LEFT_BRACKET formal_parameter_list RIGHT_BRACKET (rule 417) - LEFT_BRACKET shift, and go to state 663 + LEFT_BRACKET shift, and go to state 699 -state 567 +state 607 - variable_declarators -> variable_declarators . COMMA variable_declarator (rule 201) - field_declaration -> attributes_opt modifiers_opt type variable_declarators . ';' (rule 364) + variable_declarators -> variable_declarators . COMMA variable_declarator (rule 208) + field_declaration -> attributes_opt modifiers_opt type variable_declarators . ';' (rule 373) - COMMA shift, and go to state 664 - ';' shift, and go to state 665 + COMMA shift, and go to state 700 + ';' shift, and go to state 701 -state 568 +state 608 - variable_declarators -> variable_declarator . (rule 200) + variable_declarators -> variable_declarator . (rule 207) - $default reduce using rule 200 (variable_declarators) + $default reduce using rule 207 (variable_declarators) -state 569 +state 609 - method_header -> attributes_opt modifiers_opt type qualified_identifier . '(' formal_parameter_list_opt ')' (rule 366) - property_declaration -> attributes_opt modifiers_opt type qualified_identifier . ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 383) + method_header -> attributes_opt modifiers_opt type qualified_identifier . opt_generic_fct '(' formal_parameter_list_opt ')' (rule 375) + property_declaration -> attributes_opt modifiers_opt type qualified_identifier . ENTER_getset '{' accessor_declarations '}' EXIT_getset (rule 398) - '(' shift, and go to state 666 + GEN_LT shift, and go to state 116 - $default reduce using rule 535 (ENTER_getset) + '{' reduce using rule 556 (ENTER_getset) + $default reduce using rule 379 (opt_generic_fct) - ENTER_getset go to state 667 + opt_generic_fct go to state 702 + ENTER_getset go to state 703 -state 570 +state 610 - qualified_identifier -> qualifier . IDENTIFIER (rule 303) - qualifier -> qualifier . IDENTIFIER '.' (rule 305) - qualified_this -> qualifier . THIS (rule 403) + qualified_identifier -> qualifier . IDENTIFIER (rule 312) + qualifier -> qualifier . IDENTIFIER '.' (rule 314) + qualified_this -> qualifier . THIS (rule 419) IDENTIFIER shift, and go to state 29 - THIS shift, and go to state 668 + THIS shift, and go to state 704 -state 571 +state 611 - indexer_declarator -> type qualified_this . LEFT_BRACKET formal_parameter_list RIGHT_BRACKET (rule 402) + indexer_declarator -> type qualified_this . LEFT_BRACKET formal_parameter_list RIGHT_BRACKET (rule 418) - LEFT_BRACKET shift, and go to state 669 + LEFT_BRACKET shift, and go to state 705 -state 572 +state 612 - indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset . '{' accessor_declarations '}' EXIT_getset (rule 400) + indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset . '{' accessor_declarations '}' EXIT_getset (rule 416) - '{' shift, and go to state 670 + '{' shift, and go to state 706 -state 573 +state 613 - operator_body -> ';' . (rule 441) + operator_body -> ';' . (rule 457) - $default reduce using rule 441 (operator_body) + $default reduce using rule 457 (operator_body) -state 574 +state 614 - operator_body -> block . (rule 440) + operator_body -> block . (rule 456) - $default reduce using rule 440 (operator_body) + $default reduce using rule 456 (operator_body) -state 575 +state 615 - operator_declaration -> attributes_opt modifiers_opt operator_declarator operator_body . (rule 404) + operator_declaration -> attributes_opt modifiers_opt operator_declarator operator_body . (rule 420) - $default reduce using rule 404 (operator_declaration) + $default reduce using rule 420 (operator_declaration) -state 576 +state 616 - constructor_body -> ';' . (rule 443) + constructor_body -> ';' . (rule 459) - $default reduce using rule 443 (constructor_body) + $default reduce using rule 459 (constructor_body) -state 577 +state 617 - constructor_body -> block . (rule 442) + constructor_body -> block . (rule 458) - $default reduce using rule 442 (constructor_body) + $default reduce using rule 458 (constructor_body) -state 578 +state 618 - constructor_declaration -> attributes_opt modifiers_opt constructor_declarator constructor_body . (rule 433) + constructor_declaration -> attributes_opt modifiers_opt constructor_declarator constructor_body . (rule 449) - $default reduce using rule 433 (constructor_declaration) + $default reduce using rule 449 (constructor_declaration) -state 579 +state 619 - labeled_statement -> IDENTIFIER ':' . statement (rule 196) + labeled_statement -> IDENTIFIER ':' . statement (rule 203) - IDENTIFIER shift, and go to state 450 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 504 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONST shift, and go to state 453 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONST shift, and go to state 507 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - VOID shift, and go to state 288 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - type_name go to state 94 - type go to state 471 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 472 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 473 - pointer_type go to state 103 - array_type go to state 104 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - statement go to state 671 - embedded_statement go to state 483 - block go to state 484 - empty_statement go to state 487 - labeled_statement go to state 488 - declaration_statement go to state 489 - local_variable_declaration go to state 490 - local_constant_declaration go to state 491 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 515 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + VOID shift, and go to state 249 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + type_name go to state 92 + qualified_identifier_opt_generic go to state 525 + type go to state 526 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 527 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + statement go to state 707 + embedded_statement go to state 537 + block go to state 538 + empty_statement go to state 541 + labeled_statement go to state 542 + declaration_statement go to state 543 + local_variable_declaration go to state 544 + local_constant_declaration go to state 545 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 569 qualifier go to state 10 -state 580 +state 620 - break_statement -> BREAK ';' . (rule 261) + break_statement -> BREAK ';' . (rule 270) - $default reduce using rule 261 (break_statement) + $default reduce using rule 270 (break_statement) -state 581 +state 621 - checked_statement -> CHECKED block . (rule 281) + checked_statement -> CHECKED block . (rule 289) - $default reduce using rule 281 (checked_statement) + $default reduce using rule 289 (checked_statement) -state 582 +state 622 - pointer_type -> type . '*' (rule 36) - local_constant_declaration -> CONST type . constant_declarators (rule 208) + pointer_type -> type . '*' (rule 41) + local_constant_declaration -> CONST type . constant_declarators (rule 215) - IDENTIFIER shift, and go to state 630 - '*' shift, and go to state 123 + IDENTIFIER shift, and go to state 667 + '*' shift, and go to state 119 - constant_declarators go to state 672 - constant_declarator go to state 632 + constant_declarators go to state 708 + constant_declarator go to state 669 -state 583 +state 623 - continue_statement -> CONTINUE ';' . (rule 262) + continue_statement -> CONTINUE ';' . (rule 271) - $default reduce using rule 262 (continue_statement) + $default reduce using rule 271 (continue_statement) -state 584 +state 624 - do_statement -> DO embedded_statement . WHILE '(' boolean_expression ')' ';' (rule 241) + do_statement -> DO embedded_statement . WHILE '(' boolean_expression ')' ';' (rule 250) - WHILE shift, and go to state 673 + WHILE shift, and go to state 709 -state 585 +state 625 - fixed_statement -> FIXED '(' . type fixed_pointer_declarators ')' embedded_statement (rule 287) + fixed_statement -> FIXED '(' . type fixed_pointer_declarators ')' embedded_statement (rule 295) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -12482,132 +13061,130 @@ state 585 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 674 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 710 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 586 +state 626 - for_statement -> FOR '(' . for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement (rule 242) + for_statement -> FOR '(' . for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement (rule 251) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 243 (for_initializer_opt) - - literal go to state 186 - boolean_literal go to state 187 - type_name go to state 94 - type go to state 471 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 472 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 473 - pointer_type go to state 103 - array_type go to state 104 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - local_variable_declaration go to state 675 - statement_expression go to state 676 - for_initializer_opt go to state 677 - for_initializer go to state 678 - statement_expression_list go to state 679 - qualified_identifier go to state 515 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 252 (for_initializer_opt) + + literal go to state 180 + boolean_literal go to state 181 + type_name go to state 92 + qualified_identifier_opt_generic go to state 525 + type go to state 526 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 527 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + local_variable_declaration go to state 711 + statement_expression go to state 712 + for_initializer_opt go to state 713 + for_initializer go to state 714 + statement_expression_list go to state 715 + qualified_identifier go to state 569 qualifier go to state 10 -state 587 +state 627 - foreach_statement -> FOREACH '(' . type IDENTIFIER IN expression ')' embedded_statement (rule 255) + foreach_statement -> FOREACH '(' . type IDENTIFIER IN expression ')' embedded_statement (rule 264) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -12616,1480 +13193,1488 @@ state 587 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 680 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 716 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 588 +state 628 - goto_statement -> GOTO IDENTIFIER . ';' (rule 263) + goto_statement -> GOTO IDENTIFIER . ';' (rule 272) - ';' shift, and go to state 681 + ';' shift, and go to state 717 -state 589 +state 629 - goto_statement -> GOTO CASE . constant_expression ';' (rule 264) + goto_statement -> GOTO CASE . constant_expression ';' (rule 273) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 611 - constant_expression go to state 682 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 592 + constant_expression go to state 718 + qualified_identifier go to state 225 qualifier go to state 10 -state 590 +state 630 - goto_statement -> GOTO DEFAULT . ';' (rule 265) + goto_statement -> GOTO DEFAULT . ';' (rule 274) - ';' shift, and go to state 683 + ';' shift, and go to state 719 -state 591 +state 631 - if_statement -> IF '(' . boolean_expression ')' embedded_statement (rule 222) - if_statement -> IF '(' . boolean_expression ')' embedded_statement ELSE embedded_statement (rule 223) + ifpart -> '(' . boolean_expression ')' embedded_statement (rule 230) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 684 - boolean_expression go to state 685 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 720 + boolean_expression go to state 721 + qualified_identifier go to state 225 qualifier go to state 10 -state 592 +state 632 + + if_statement -> IF ifpart . opt_else (rule 229) + + ELSE shift, and go to state 722 + + $default reduce using rule 232 (opt_else) - lock_statement -> LOCK '(' . expression ')' embedded_statement (rule 283) + opt_else go to state 723 - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + + +state 633 + + lock_statement -> LOCK '(' . expression ')' embedded_statement (rule 291) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 686 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 724 + qualified_identifier go to state 225 qualifier go to state 10 -state 593 +state 634 - expression_opt -> expression . (rule 268) + expression_opt -> expression . (rule 277) - $default reduce using rule 268 (expression_opt) + $default reduce using rule 277 (expression_opt) -state 594 +state 635 - return_statement -> RETURN expression_opt . ';' (rule 266) + return_statement -> RETURN expression_opt . ';' (rule 275) - ';' shift, and go to state 687 + ';' shift, and go to state 725 -state 595 +state 636 - switch_statement -> SWITCH '(' . expression ')' switch_block (rule 224) + switch_statement -> SWITCH '(' . expression ')' switch_block (rule 233) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 688 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 726 + qualified_identifier go to state 225 qualifier go to state 10 -state 596 +state 637 - throw_statement -> THROW expression_opt . ';' (rule 269) + throw_statement -> THROW expression_opt . ';' (rule 278) - ';' shift, and go to state 689 + ';' shift, and go to state 727 -state 597 +state 638 - try_statement -> TRY block . catch_clauses (rule 270) - try_statement -> TRY block . finally_clause (rule 271) - try_statement -> TRY block . catch_clauses finally_clause (rule 272) + try_statement -> TRY block . catch_clauses (rule 279) + try_statement -> TRY block . finally_clause (rule 280) + try_statement -> TRY block . catch_clauses finally_clause (rule 281) - CATCH shift, and go to state 690 - FINALLY shift, and go to state 691 + CATCH shift, and go to state 728 + FINALLY shift, and go to state 729 - catch_clauses go to state 692 - catch_clause go to state 693 - finally_clause go to state 694 + catch_clauses go to state 730 + catch_clause go to state 731 + finally_clause go to state 732 -state 598 +state 639 - unchecked_statement -> UNCHECKED block . (rule 282) + unchecked_statement -> UNCHECKED block . (rule 290) - $default reduce using rule 282 (unchecked_statement) + $default reduce using rule 290 (unchecked_statement) -state 599 +state 640 - unsafe_statement -> UNSAFE block . (rule 239) + unsafe_statement -> UNSAFE block . (rule 248) - $default reduce using rule 239 (unsafe_statement) + $default reduce using rule 248 (unsafe_statement) -state 600 +state 641 - using_statement -> USING '(' . resource_acquisition ')' embedded_statement (rule 284) + using_statement -> USING '(' . resource_acquisition ')' embedded_statement (rule 292) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - type_name go to state 94 - type go to state 471 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 472 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 473 - pointer_type go to state 103 - array_type go to state 104 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 695 - local_variable_declaration go to state 696 - resource_acquisition go to state 697 - qualified_identifier go to state 515 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + type_name go to state 92 + qualified_identifier_opt_generic go to state 525 + type go to state 526 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 527 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 733 + local_variable_declaration go to state 734 + resource_acquisition go to state 735 + qualified_identifier go to state 569 qualifier go to state 10 -state 601 +state 642 - while_statement -> WHILE '(' . boolean_expression ')' embedded_statement (rule 240) + while_statement -> WHILE '(' . boolean_expression ')' embedded_statement (rule 249) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 684 - boolean_expression go to state 698 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 720 + boolean_expression go to state 736 + qualified_identifier go to state 225 qualifier go to state 10 -state 602 - - variable_declarator -> IDENTIFIER . (rule 202) - variable_declarator -> IDENTIFIER . '=' variable_initializer (rule 203) - - '=' shift, and go to state 639 - - $default reduce using rule 202 (variable_declarator) - - - -state 603 - - local_variable_declaration -> type variable_declarators . (rule 199) - variable_declarators -> variable_declarators . COMMA variable_declarator (rule 201) - - COMMA shift, and go to state 664 - - $default reduce using rule 199 (local_variable_declaration) - - - -state 604 - - block -> '{' statement_list_opt '}' . (rule 190) - - $default reduce using rule 190 (block) - +state 643 + variable_declarator -> IDENTIFIER . (rule 209) + variable_declarator -> IDENTIFIER . '=' variable_initializer (rule 210) -state 605 + '=' shift, and go to state 675 - statement_list -> statement_list statement . (rule 194) + $default reduce using rule 209 (variable_declarator) - $default reduce using rule 194 (statement_list) +state 644 -state 606 + local_variable_declaration -> type variable_declarators . (rule 206) + variable_declarators -> variable_declarators . COMMA variable_declarator (rule 208) - declaration_statement -> local_variable_declaration ';' . (rule 197) + COMMA shift, and go to state 700 - $default reduce using rule 197 (declaration_statement) + $default reduce using rule 206 (local_variable_declaration) -state 607 +state 645 - declaration_statement -> local_constant_declaration ';' . (rule 198) + block -> '{' statement_list_opt '}' . (rule 197) - $default reduce using rule 198 (declaration_statement) + $default reduce using rule 197 (block) -state 608 +state 646 - expression_statement -> statement_expression ';' . (rule 212) + statement_list -> statement_list statement . (rule 201) - $default reduce using rule 212 (expression_statement) + $default reduce using rule 201 (statement_list) -state 609 +state 647 - parameter_array -> attributes_opt PARAMS type IDENTIFIER . (rule 382) + declaration_statement -> local_variable_declaration ';' . (rule 204) - $default reduce using rule 382 (parameter_array) + $default reduce using rule 204 (declaration_statement) -state 610 +state 648 - fixed_parameter -> attributes_opt parameter_modifier_opt type IDENTIFIER . (rule 378) + declaration_statement -> local_constant_declaration ';' . (rule 205) - $default reduce using rule 378 (fixed_parameter) + $default reduce using rule 205 (declaration_statement) -state 611 +state 649 - constant_expression -> expression . (rule 172) + expression_statement -> statement_expression ';' . (rule 219) - $default reduce using rule 172 (constant_expression) + $default reduce using rule 219 (expression_statement) -state 612 +state 650 - enum_member_declaration -> attributes_opt IDENTIFIER '=' constant_expression . (rule 505) + array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt . array_initializer_opt (rule 93) - $default reduce using rule 505 (enum_member_declaration) + '{' shift, and go to state 362 + $default reduce using rule 95 (array_initializer_opt) + array_initializer_opt go to state 737 + array_initializer go to state 738 -state 613 - pointer_type -> type . '*' (rule 36) - interface_event_declaration -> attributes_opt new_opt EVENT type . IDENTIFIER interface_empty_body (rule 491) - IDENTIFIER shift, and go to state 699 - '*' shift, and go to state 123 +state 651 + rank_specifiers_opt -> rank_specifier . rank_specifiers_opt (rule 47) + RANK_SPECIFIER shift, and go to state 120 -state 614 + $default reduce using rule 46 (rank_specifiers_opt) - interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER . '(' formal_parameter_list_opt ')' interface_empty_body (rule 482) + rank_specifiers_opt go to state 739 + rank_specifier go to state 651 - '(' shift, and go to state 700 +state 652 -state 615 + pointer_type -> type . '*' (rule 41) + stackalloc_initializer -> STACKALLOC type . LEFT_BRACKET expression RIGHT_BRACKET (rule 214) - interface_method_declaration -> attributes_opt new_opt type IDENTIFIER . '(' formal_parameter_list_opt ')' interface_empty_body (rule 481) - interface_property_declaration -> attributes_opt new_opt type IDENTIFIER . ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 485) + LEFT_BRACKET shift, and go to state 740 + '*' shift, and go to state 119 - '(' shift, and go to state 701 - $default reduce using rule 535 (ENTER_getset) - ENTER_getset go to state 702 +state 653 + array_initializer -> '{' @8 variable_initializer_list_opt '}' . (rule 480) + $default reduce using rule 480 (array_initializer) -state 616 - interface_indexer_declaration -> attributes_opt new_opt type THIS . LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 486) - LEFT_BRACKET shift, and go to state 703 +state 654 + opt_comma -> COMMA . (rule 483) + variable_initializer_list -> variable_initializer_list COMMA . variable_initializer (rule 486) + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + STACKALLOC shift, and go to state 573 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 362 + + $default reduce using rule 483 (opt_comma) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 574 + variable_initializer go to state 741 + stackalloc_initializer go to state 576 + qualified_identifier go to state 225 + qualifier go to state 10 + array_initializer go to state 577 -state 617 - object_creation_expression -> NEW type '(' argument_list_opt ')' . (rule 84) - $default reduce using rule 84 (object_creation_expression) +state 655 + variable_initializer_list_opt -> variable_initializer_list opt_comma . (rule 482) + $default reduce using rule 482 (variable_initializer_list_opt) -state 618 - array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET . rank_specifiers_opt array_initializer_opt (rule 85) - RANK_SPECIFIER shift, and go to state 124 +state 656 - $default reduce using rule 41 (rank_specifiers_opt) + cast_expression -> '(' qualified_identifier rank_specifier type_quals_opt ')' unary_expression . (rule 124) - rank_specifiers_opt go to state 704 - rank_specifier go to state 705 + $default reduce using rule 124 (cast_expression) -state 619 +state 657 - pointer_type -> type . '*' (rule 36) - stackalloc_initializer -> STACKALLOC type . LEFT_BRACKET expression RIGHT_BRACKET (rule 207) + invocation_expression -> primary_expression_no_parenthesis opt_generic '(' @4 argument_list_opt ')' . (rule 76) - LEFT_BRACKET shift, and go to state 706 - '*' shift, and go to state 123 + $default reduce using rule 76 (invocation_expression) -state 620 +state 658 - array_initializer -> '{' variable_initializer_list_opt '}' . (rule 462) + destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER . '(' ')' block (rule 455) - $default reduce using rule 462 (array_initializer) + '(' shift, and go to state 742 -state 621 +state 659 - array_initializer -> '{' variable_initializer_list COMMA . '}' (rule 463) - variable_initializer_list -> variable_initializer_list COMMA . variable_initializer (rule 467) + fixed_parameter_opt_default -> '=' . expression (rule 393) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STACKALLOC shift, and go to state 530 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 384 - '}' shift, and go to state 707 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 531 - variable_initializer go to state 708 - stackalloc_initializer go to state 533 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 743 + qualified_identifier go to state 225 qualifier go to state 10 - array_initializer go to state 534 - - - -state 622 - - cast_expression -> '(' VOID type_quals_opt ')' unary_expression . (rule 119) - - $default reduce using rule 119 (cast_expression) -state 623 - - cast_expression -> '(' primitive_type type_quals_opt ')' unary_expression . (rule 117) - - $default reduce using rule 117 (cast_expression) +state 660 + fixed_parameter -> attributes_opt parameter_modifier_opt type IDENTIFIER fixed_parameter_opt_default . (rule 391) + $default reduce using rule 391 (fixed_parameter) -state 624 - cast_expression -> '(' class_type type_quals_opt ')' unary_expression . (rule 118) - $default reduce using rule 118 (cast_expression) +state 661 + interface_event_declaration -> attributes_opt new_opt EVENT type IDENTIFIER . interface_empty_body (rule 511) + '{' shift, and go to state 744 + ';' shift, and go to state 745 -state 625 + interface_empty_body go to state 746 - cast_expression -> '(' multiplicative_expression '*' ')' unary_expression . (rule 115) - $default reduce using rule 115 (cast_expression) +state 662 + interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' . formal_parameter_list_opt ')' interface_empty_body (rule 502) -state 626 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + ')' reduce using rule 381 (formal_parameter_list_opt) + $default reduce using rule 303 (attributes_opt) - cast_expression -> '(' qualified_identifier rank_specifier type_quals_opt ')' . unary_expression (rule 116) + attributes_opt go to state 320 + formal_parameter_list_opt go to state 747 + formal_parameter_list go to state 322 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 709 - cast_expression go to state 216 - qualified_identifier go to state 230 - qualifier go to state 10 +state 663 -state 627 + interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' . formal_parameter_list_opt ')' interface_empty_body (rule 501) - argument_list -> argument_list COMMA argument . (rule 46) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + ')' reduce using rule 381 (formal_parameter_list_opt) + $default reduce using rule 303 (attributes_opt) - $default reduce using rule 46 (argument_list) + attributes_opt go to state 320 + formal_parameter_list_opt go to state 748 + formal_parameter_list go to state 322 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 -state 628 +state 664 - conditional_expression -> conditional_or_expression '?' expression ':' expression . (rule 157) + interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset . '{' interface_accessors '}' EXIT_getset (rule 505) - $default reduce using rule 157 (conditional_expression) + '{' shift, and go to state 749 -state 629 +state 665 - constructor_declarator -> IDENTIFIER '(' formal_parameter_list_opt . ')' constructor_initializer_opt (rule 434) + interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET . formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 506) - ')' shift, and go to state 710 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) + attributes_opt go to state 320 + formal_parameter_list go to state 750 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 -state 630 - constant_declarator -> IDENTIFIER . '=' constant_expression (rule 211) +state 666 - '=' shift, and go to state 711 + constructor_declarator -> IDENTIFIER '(' formal_parameter_list_opt . ')' constructor_initializer_opt (rule 450) + ')' shift, and go to state 751 -state 631 - constant_declarators -> constant_declarators . COMMA constant_declarator (rule 210) - constant_declaration -> attributes_opt modifiers_opt CONST type constant_declarators . ';' (rule 363) +state 667 - COMMA shift, and go to state 712 - ';' shift, and go to state 713 + constant_declarator -> IDENTIFIER . '=' constant_expression (rule 218) + '=' shift, and go to state 752 -state 632 - constant_declarators -> constant_declarator . (rule 209) +state 668 - $default reduce using rule 209 (constant_declarators) + constant_declarators -> constant_declarators . COMMA constant_declarator (rule 217) + constant_declaration -> attributes_opt modifiers_opt CONST type constant_declarators . ';' (rule 372) + COMMA shift, and go to state 753 + ';' shift, and go to state 754 -state 633 - variable_declarators -> variable_declarators . COMMA variable_declarator (rule 201) - event_declaration -> attributes_opt modifiers_opt EVENT type variable_declarators . ';' (rule 394) +state 669 - COMMA shift, and go to state 664 - ';' shift, and go to state 714 + constant_declarators -> constant_declarator . (rule 216) + $default reduce using rule 216 (constant_declarators) -state 634 - event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier . ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 395) +state 670 - $default reduce using rule 533 (ENTER_accessor_decl) + variable_declarators -> variable_declarators . COMMA variable_declarator (rule 208) + event_declaration -> attributes_opt modifiers_opt EVENT type variable_declarators . ';' (rule 410) - ENTER_accessor_decl go to state 715 + COMMA shift, and go to state 700 + ';' shift, and go to state 755 -state 635 +state 671 - pointer_type -> type . '*' (rule 36) - conversion_operator_declarator -> EXPLICIT OPERATOR type . '(' type IDENTIFIER ')' (rule 432) + event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier . ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 411) - '*' shift, and go to state 123 - '(' shift, and go to state 716 + $default reduce using rule 554 (ENTER_accessor_decl) + ENTER_accessor_decl go to state 756 -state 636 - pointer_type -> type . '*' (rule 36) - conversion_operator_declarator -> IMPLICIT OPERATOR type . '(' type IDENTIFIER ')' (rule 431) +state 672 - '*' shift, and go to state 123 - '(' shift, and go to state 717 + pointer_type -> type . '*' (rule 41) + conversion_operator_declarator -> EXPLICIT OPERATOR type . '(' type IDENTIFIER ')' (rule 448) + '*' shift, and go to state 119 + '(' shift, and go to state 757 -state 637 - method_header -> attributes_opt modifiers_opt VOID qualified_identifier '(' . formal_parameter_list_opt ')' (rule 367) +state 673 - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - ')' reduce using rule 368 (formal_parameter_list_opt) - $default reduce using rule 295 (attributes_opt) + pointer_type -> type . '*' (rule 41) + conversion_operator_declarator -> IMPLICIT OPERATOR type . '(' type IDENTIFIER ')' (rule 447) - attributes_opt go to state 250 - formal_parameter_list_opt go to state 718 - formal_parameter_list go to state 252 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + '*' shift, and go to state 119 + '(' shift, and go to state 758 -state 638 +state 674 - destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER '(' . ')' block (rule 439) + method_header -> attributes_opt modifiers_opt VOID qualified_identifier opt_generic_fct . '(' formal_parameter_list_opt ')' (rule 376) - ')' shift, and go to state 719 + '(' shift, and go to state 759 -state 639 +state 675 - variable_declarator -> IDENTIFIER '=' . variable_initializer (rule 203) + variable_declarator -> IDENTIFIER '=' . variable_initializer (rule 210) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STACKALLOC shift, and go to state 530 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 384 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 531 - variable_initializer go to state 720 - stackalloc_initializer go to state 533 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + STACKALLOC shift, and go to state 573 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 362 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 574 + variable_initializer go to state 760 + stackalloc_initializer go to state 576 + qualified_identifier go to state 225 qualifier go to state 10 - array_initializer go to state 534 + array_initializer go to state 577 -state 640 +state 676 - overloadable_operator -> FALSE . (rule 416) + overloadable_operator -> FALSE . (rule 432) - $default reduce using rule 416 (overloadable_operator) + $default reduce using rule 432 (overloadable_operator) -state 641 +state 677 - overloadable_operator -> TRUE . (rule 415) + overloadable_operator -> TRUE . (rule 431) - $default reduce using rule 415 (overloadable_operator) + $default reduce using rule 431 (overloadable_operator) -state 642 +state 678 - overloadable_operator -> LTLT . (rule 423) + overloadable_operator -> GT . (rule 443) - $default reduce using rule 423 (overloadable_operator) + $default reduce using rule 443 (overloadable_operator) -state 643 +state 679 - overloadable_operator -> GTGT . (rule 424) + overloadable_operator -> GTGT . (rule 440) - $default reduce using rule 424 (overloadable_operator) + $default reduce using rule 440 (overloadable_operator) -state 644 +state 680 - overloadable_operator -> EQEQ . (rule 425) + overloadable_operator -> LT . (rule 444) - $default reduce using rule 425 (overloadable_operator) + $default reduce using rule 444 (overloadable_operator) -state 645 +state 681 - overloadable_operator -> NOTEQ . (rule 426) + overloadable_operator -> LTLT . (rule 439) - $default reduce using rule 426 (overloadable_operator) + $default reduce using rule 439 (overloadable_operator) -state 646 +state 682 - overloadable_operator -> LEQ . (rule 430) + overloadable_operator -> EQEQ . (rule 441) - $default reduce using rule 430 (overloadable_operator) + $default reduce using rule 441 (overloadable_operator) -state 647 +state 683 - overloadable_operator -> GEQ . (rule 429) + overloadable_operator -> NOTEQ . (rule 442) - $default reduce using rule 429 (overloadable_operator) + $default reduce using rule 442 (overloadable_operator) -state 648 +state 684 - overloadable_operator -> PLUSPLUS . (rule 413) + overloadable_operator -> LEQ . (rule 446) - $default reduce using rule 413 (overloadable_operator) + $default reduce using rule 446 (overloadable_operator) -state 649 +state 685 - overloadable_operator -> MINUSMINUS . (rule 414) + overloadable_operator -> GEQ . (rule 445) - $default reduce using rule 414 (overloadable_operator) + $default reduce using rule 445 (overloadable_operator) -state 650 +state 686 - overloadable_operator -> '*' . (rule 417) + overloadable_operator -> PLUSPLUS . (rule 429) - $default reduce using rule 417 (overloadable_operator) + $default reduce using rule 429 (overloadable_operator) -state 651 +state 687 - overloadable_operator -> '&' . (rule 420) + overloadable_operator -> MINUSMINUS . (rule 430) - $default reduce using rule 420 (overloadable_operator) + $default reduce using rule 430 (overloadable_operator) -state 652 +state 688 - overloadable_operator -> '!' . (rule 411) + overloadable_operator -> '*' . (rule 433) - $default reduce using rule 411 (overloadable_operator) + $default reduce using rule 433 (overloadable_operator) -state 653 +state 689 - overloadable_operator -> '~' . (rule 412) + overloadable_operator -> '&' . (rule 436) - $default reduce using rule 412 (overloadable_operator) + $default reduce using rule 436 (overloadable_operator) -state 654 +state 690 - overloadable_operator -> '+' . (rule 409) + overloadable_operator -> '!' . (rule 427) - $default reduce using rule 409 (overloadable_operator) + $default reduce using rule 427 (overloadable_operator) -state 655 +state 691 - overloadable_operator -> '-' . (rule 410) + overloadable_operator -> '~' . (rule 428) - $default reduce using rule 410 (overloadable_operator) + $default reduce using rule 428 (overloadable_operator) -state 656 +state 692 - overloadable_operator -> '/' . (rule 418) + overloadable_operator -> '+' . (rule 425) - $default reduce using rule 418 (overloadable_operator) + $default reduce using rule 425 (overloadable_operator) -state 657 +state 693 - overloadable_operator -> '%' . (rule 419) + overloadable_operator -> '-' . (rule 426) - $default reduce using rule 419 (overloadable_operator) + $default reduce using rule 426 (overloadable_operator) -state 658 +state 694 - overloadable_operator -> '<' . (rule 428) + overloadable_operator -> '/' . (rule 434) - $default reduce using rule 428 (overloadable_operator) + $default reduce using rule 434 (overloadable_operator) -state 659 +state 695 - overloadable_operator -> '>' . (rule 427) + overloadable_operator -> '%' . (rule 435) - $default reduce using rule 427 (overloadable_operator) + $default reduce using rule 435 (overloadable_operator) -state 660 +state 696 - overloadable_operator -> '^' . (rule 422) + overloadable_operator -> '^' . (rule 438) - $default reduce using rule 422 (overloadable_operator) + $default reduce using rule 438 (overloadable_operator) -state 661 +state 697 - overloadable_operator -> '|' . (rule 421) + overloadable_operator -> '|' . (rule 437) - $default reduce using rule 421 (overloadable_operator) + $default reduce using rule 437 (overloadable_operator) -state 662 +state 698 - overloadable_operator_declarator -> type OPERATOR overloadable_operator . '(' type IDENTIFIER ')' (rule 407) - overloadable_operator_declarator -> type OPERATOR overloadable_operator . '(' type IDENTIFIER COMMA type IDENTIFIER ')' (rule 408) + overloadable_operator_declarator -> type OPERATOR overloadable_operator . '(' type IDENTIFIER ')' (rule 423) + overloadable_operator_declarator -> type OPERATOR overloadable_operator . '(' type IDENTIFIER COMMA type IDENTIFIER ')' (rule 424) - '(' shift, and go to state 721 + '(' shift, and go to state 761 -state 663 +state 699 - indexer_declarator -> type THIS LEFT_BRACKET . formal_parameter_list RIGHT_BRACKET (rule 401) + indexer_declarator -> type THIS LEFT_BRACKET . formal_parameter_list RIGHT_BRACKET (rule 417) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 250 - formal_parameter_list go to state 722 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 + attributes_opt go to state 320 + formal_parameter_list go to state 762 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -14097,73 +14682,60 @@ state 663 -state 664 - - variable_declarators -> variable_declarators COMMA . variable_declarator (rule 201) +state 700 - IDENTIFIER shift, and go to state 602 + variable_declarators -> variable_declarators COMMA . variable_declarator (rule 208) - variable_declarator go to state 723 + IDENTIFIER shift, and go to state 643 + variable_declarator go to state 763 -state 665 - field_declaration -> attributes_opt modifiers_opt type variable_declarators ';' . (rule 364) +state 701 - $default reduce using rule 364 (field_declaration) + field_declaration -> attributes_opt modifiers_opt type variable_declarators ';' . (rule 373) + $default reduce using rule 373 (field_declaration) -state 666 - method_header -> attributes_opt modifiers_opt type qualified_identifier '(' . formal_parameter_list_opt ')' (rule 366) +state 702 - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - ')' reduce using rule 368 (formal_parameter_list_opt) - $default reduce using rule 295 (attributes_opt) + method_header -> attributes_opt modifiers_opt type qualified_identifier opt_generic_fct . '(' formal_parameter_list_opt ')' (rule 375) - attributes_opt go to state 250 - formal_parameter_list_opt go to state 724 - formal_parameter_list go to state 252 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + '(' shift, and go to state 764 -state 667 +state 703 - property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset . '{' accessor_declarations '}' EXIT_getset (rule 383) + property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset . '{' accessor_declarations '}' EXIT_getset (rule 398) - '{' shift, and go to state 725 + '{' shift, and go to state 765 -state 668 +state 704 - qualified_this -> qualifier THIS . (rule 403) + qualified_this -> qualifier THIS . (rule 419) - $default reduce using rule 403 (qualified_this) + $default reduce using rule 419 (qualified_this) -state 669 +state 705 - indexer_declarator -> type qualified_this LEFT_BRACKET . formal_parameter_list RIGHT_BRACKET (rule 402) + indexer_declarator -> type qualified_this LEFT_BRACKET . formal_parameter_list RIGHT_BRACKET (rule 418) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 250 - formal_parameter_list go to state 726 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 + attributes_opt go to state 320 + formal_parameter_list go to state 766 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -14171,17 +14743,18 @@ state 669 -state 670 +state 706 - indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' . accessor_declarations '}' EXIT_getset (rule 400) + indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' . accessor_declarations '}' EXIT_getset (rule 416) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 401 (accessor_declarations) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 727 - accessor_declarations go to state 728 - get_accessor_declaration go to state 729 - set_accessor_declaration go to state 730 + attributes_opt go to state 767 + accessor_declarations go to state 768 + get_accessor_declaration go to state 769 + set_accessor_declaration go to state 770 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -14189,630 +14762,746 @@ state 670 -state 671 +state 707 - labeled_statement -> IDENTIFIER ':' statement . (rule 196) + labeled_statement -> IDENTIFIER ':' statement . (rule 203) - $default reduce using rule 196 (labeled_statement) + $default reduce using rule 203 (labeled_statement) -state 672 +state 708 - local_constant_declaration -> CONST type constant_declarators . (rule 208) - constant_declarators -> constant_declarators . COMMA constant_declarator (rule 210) + local_constant_declaration -> CONST type constant_declarators . (rule 215) + constant_declarators -> constant_declarators . COMMA constant_declarator (rule 217) - COMMA shift, and go to state 712 + COMMA shift, and go to state 753 - $default reduce using rule 208 (local_constant_declaration) + $default reduce using rule 215 (local_constant_declaration) -state 673 +state 709 - do_statement -> DO embedded_statement WHILE . '(' boolean_expression ')' ';' (rule 241) + do_statement -> DO embedded_statement WHILE . '(' boolean_expression ')' ';' (rule 250) - '(' shift, and go to state 731 + '(' shift, and go to state 771 -state 674 +state 710 - pointer_type -> type . '*' (rule 36) - fixed_statement -> FIXED '(' type . fixed_pointer_declarators ')' embedded_statement (rule 287) + pointer_type -> type . '*' (rule 41) + fixed_statement -> FIXED '(' type . fixed_pointer_declarators ')' embedded_statement (rule 295) - IDENTIFIER shift, and go to state 732 - '*' shift, and go to state 123 + IDENTIFIER shift, and go to state 772 + '*' shift, and go to state 119 - fixed_pointer_declarators go to state 733 - fixed_pointer_declarator go to state 734 + fixed_pointer_declarators go to state 773 + fixed_pointer_declarator go to state 774 -state 675 +state 711 - for_initializer -> local_variable_declaration . (rule 249) + for_initializer -> local_variable_declaration . (rule 258) - $default reduce using rule 249 (for_initializer) + $default reduce using rule 258 (for_initializer) -state 676 +state 712 - statement_expression_list -> statement_expression . (rule 253) + statement_expression_list -> statement_expression . (rule 262) - $default reduce using rule 253 (statement_expression_list) + $default reduce using rule 262 (statement_expression_list) -state 677 +state 713 - for_statement -> FOR '(' for_initializer_opt . ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement (rule 242) + for_statement -> FOR '(' for_initializer_opt . ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement (rule 251) - ';' shift, and go to state 735 + ';' shift, and go to state 775 -state 678 +state 714 - for_initializer_opt -> for_initializer . (rule 244) + for_initializer_opt -> for_initializer . (rule 253) - $default reduce using rule 244 (for_initializer_opt) + $default reduce using rule 253 (for_initializer_opt) -state 679 +state 715 - for_initializer -> statement_expression_list . (rule 250) - statement_expression_list -> statement_expression_list . COMMA statement_expression (rule 254) + for_initializer -> statement_expression_list . (rule 259) + statement_expression_list -> statement_expression_list . COMMA statement_expression (rule 263) - COMMA shift, and go to state 736 + COMMA shift, and go to state 776 - $default reduce using rule 250 (for_initializer) + $default reduce using rule 259 (for_initializer) -state 680 +state 716 - pointer_type -> type . '*' (rule 36) - foreach_statement -> FOREACH '(' type . IDENTIFIER IN expression ')' embedded_statement (rule 255) + pointer_type -> type . '*' (rule 41) + foreach_statement -> FOREACH '(' type . IDENTIFIER IN expression ')' embedded_statement (rule 264) - IDENTIFIER shift, and go to state 737 - '*' shift, and go to state 123 + IDENTIFIER shift, and go to state 777 + '*' shift, and go to state 119 -state 681 +state 717 - goto_statement -> GOTO IDENTIFIER ';' . (rule 263) + goto_statement -> GOTO IDENTIFIER ';' . (rule 272) - $default reduce using rule 263 (goto_statement) + $default reduce using rule 272 (goto_statement) -state 682 +state 718 - goto_statement -> GOTO CASE constant_expression . ';' (rule 264) + goto_statement -> GOTO CASE constant_expression . ';' (rule 273) - ';' shift, and go to state 738 + ';' shift, and go to state 778 -state 683 +state 719 - goto_statement -> GOTO DEFAULT ';' . (rule 265) + goto_statement -> GOTO DEFAULT ';' . (rule 274) - $default reduce using rule 265 (goto_statement) + $default reduce using rule 274 (goto_statement) -state 684 +state 720 - boolean_expression -> expression . (rule 173) + boolean_expression -> expression . (rule 180) - $default reduce using rule 173 (boolean_expression) + $default reduce using rule 180 (boolean_expression) -state 685 +state 721 - if_statement -> IF '(' boolean_expression . ')' embedded_statement (rule 222) - if_statement -> IF '(' boolean_expression . ')' embedded_statement ELSE embedded_statement (rule 223) + ifpart -> '(' boolean_expression . ')' embedded_statement (rule 230) - ')' shift, and go to state 739 + ')' shift, and go to state 779 -state 686 +state 722 - lock_statement -> LOCK '(' expression . ')' embedded_statement (rule 283) + opt_else -> ELSE . embedded_statement (rule 231) - ')' shift, and go to state 740 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BREAK shift, and go to state 505 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 + FLOAT shift, and go to state 83 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 + INT shift, and go to state 84 + LOCK shift, and go to state 515 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 780 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 + qualifier go to state 10 -state 687 +state 723 - return_statement -> RETURN expression_opt ';' . (rule 266) + if_statement -> IF ifpart opt_else . (rule 229) - $default reduce using rule 266 (return_statement) + $default reduce using rule 229 (if_statement) -state 688 +state 724 - switch_statement -> SWITCH '(' expression . ')' switch_block (rule 224) + lock_statement -> LOCK '(' expression . ')' embedded_statement (rule 291) - ')' shift, and go to state 741 + ')' shift, and go to state 781 -state 689 +state 725 - throw_statement -> THROW expression_opt ';' . (rule 269) + return_statement -> RETURN expression_opt ';' . (rule 275) - $default reduce using rule 269 (throw_statement) + $default reduce using rule 275 (return_statement) -state 690 +state 726 - catch_clause -> CATCH . '(' class_type identifier_opt ')' block (rule 275) - catch_clause -> CATCH . '(' type_name identifier_opt ')' block (rule 276) - catch_clause -> CATCH . block (rule 277) + switch_statement -> SWITCH '(' expression . ')' switch_block (rule 233) - '(' shift, and go to state 742 - '{' shift, and go to state 359 + ')' shift, and go to state 782 - block go to state 743 +state 727 -state 691 + throw_statement -> THROW expression_opt ';' . (rule 278) - finally_clause -> FINALLY . block (rule 280) + $default reduce using rule 278 (throw_statement) - '{' shift, and go to state 359 - block go to state 744 +state 728 + catch_clause -> CATCH . '(' type_name identifier_opt ')' block (rule 284) + catch_clause -> CATCH . block (rule 285) -state 692 + '(' shift, and go to state 783 + '{' shift, and go to state 446 - try_statement -> TRY block catch_clauses . (rule 270) - try_statement -> TRY block catch_clauses . finally_clause (rule 272) - catch_clauses -> catch_clauses . catch_clause (rule 274) + block go to state 784 - CATCH shift, and go to state 690 - FINALLY shift, and go to state 691 - $default reduce using rule 270 (try_statement) - catch_clause go to state 745 - finally_clause go to state 746 +state 729 + finally_clause -> FINALLY . block (rule 288) + '{' shift, and go to state 446 -state 693 + block go to state 785 - catch_clauses -> catch_clause . (rule 273) - $default reduce using rule 273 (catch_clauses) +state 730 + try_statement -> TRY block catch_clauses . (rule 279) + try_statement -> TRY block catch_clauses . finally_clause (rule 281) + catch_clauses -> catch_clauses . catch_clause (rule 283) -state 694 + CATCH shift, and go to state 728 + FINALLY shift, and go to state 729 - try_statement -> TRY block finally_clause . (rule 271) + $default reduce using rule 279 (try_statement) - $default reduce using rule 271 (try_statement) + catch_clause go to state 786 + finally_clause go to state 787 -state 695 +state 731 - resource_acquisition -> expression . (rule 286) + catch_clauses -> catch_clause . (rule 282) - $default reduce using rule 286 (resource_acquisition) + $default reduce using rule 282 (catch_clauses) -state 696 +state 732 - resource_acquisition -> local_variable_declaration . (rule 285) + try_statement -> TRY block finally_clause . (rule 280) - $default reduce using rule 285 (resource_acquisition) + $default reduce using rule 280 (try_statement) -state 697 +state 733 - using_statement -> USING '(' resource_acquisition . ')' embedded_statement (rule 284) + resource_acquisition -> expression . (rule 294) - ')' shift, and go to state 747 + $default reduce using rule 294 (resource_acquisition) -state 698 +state 734 - while_statement -> WHILE '(' boolean_expression . ')' embedded_statement (rule 240) + resource_acquisition -> local_variable_declaration . (rule 293) - ')' shift, and go to state 748 + $default reduce using rule 293 (resource_acquisition) -state 699 +state 735 - interface_event_declaration -> attributes_opt new_opt EVENT type IDENTIFIER . interface_empty_body (rule 491) + using_statement -> USING '(' resource_acquisition . ')' embedded_statement (rule 292) - '{' shift, and go to state 749 - ';' shift, and go to state 750 + ')' shift, and go to state 788 - interface_empty_body go to state 751 +state 736 -state 700 + while_statement -> WHILE '(' boolean_expression . ')' embedded_statement (rule 249) - interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' . formal_parameter_list_opt ')' interface_empty_body (rule 482) + ')' shift, and go to state 789 - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - ')' reduce using rule 368 (formal_parameter_list_opt) - $default reduce using rule 295 (attributes_opt) - attributes_opt go to state 250 - formal_parameter_list_opt go to state 752 - formal_parameter_list go to state 252 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 +state 737 + array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt . (rule 93) -state 701 + $default reduce using rule 93 (array_creation_expression) - interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' . formal_parameter_list_opt ')' interface_empty_body (rule 481) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - ')' reduce using rule 368 (formal_parameter_list_opt) - $default reduce using rule 295 (attributes_opt) - attributes_opt go to state 250 - formal_parameter_list_opt go to state 753 - formal_parameter_list go to state 252 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 +state 738 + array_initializer_opt -> array_initializer . (rule 96) + $default reduce using rule 96 (array_initializer_opt) -state 702 - interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset . '{' interface_accessors '}' EXIT_getset (rule 485) - '{' shift, and go to state 754 +state 739 + rank_specifiers_opt -> rank_specifier rank_specifiers_opt . (rule 47) + $default reduce using rule 47 (rank_specifiers_opt) -state 703 - interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET . formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 486) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) +state 740 - attributes_opt go to state 250 - formal_parameter_list go to state 755 - formal_parameter go to state 253 - fixed_parameter go to state 254 - parameter_array go to state 255 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + stackalloc_initializer -> STACKALLOC type LEFT_BRACKET . expression RIGHT_BRACKET (rule 214) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 + BOOL shift, and go to state 78 + BYTE shift, and go to state 79 + CHAR shift, and go to state 80 + CHECKED shift, and go to state 161 + DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 + DOUBLE shift, and go to state 82 + FALSE shift, and go to state 163 + FLOAT shift, and go to state 83 + INT shift, and go to state 84 + LONG shift, and go to state 85 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 790 + qualified_identifier go to state 225 + qualifier go to state 10 -state 704 +state 741 - array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt . array_initializer_opt (rule 85) + variable_initializer_list -> variable_initializer_list COMMA variable_initializer . (rule 486) - '{' shift, and go to state 384 + $default reduce using rule 486 (variable_initializer_list) - $default reduce using rule 87 (array_initializer_opt) - array_initializer_opt go to state 756 - array_initializer go to state 757 +state 742 + destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER '(' . ')' block (rule 455) -state 705 + ')' shift, and go to state 791 - rank_specifiers_opt -> rank_specifier . rank_specifiers_opt (rule 42) - RANK_SPECIFIER shift, and go to state 124 - $default reduce using rule 41 (rank_specifiers_opt) +state 743 - rank_specifiers_opt go to state 758 - rank_specifier go to state 705 + fixed_parameter_opt_default -> '=' expression . (rule 393) + $default reduce using rule 393 (fixed_parameter_opt_default) -state 706 - stackalloc_initializer -> STACKALLOC type LEFT_BRACKET . expression RIGHT_BRACKET (rule 207) +state 744 - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 759 - qualified_identifier go to state 230 - qualifier go to state 10 + interface_empty_body -> '{' . '}' (rule 513) + '}' shift, and go to state 792 -state 707 - array_initializer -> '{' variable_initializer_list COMMA '}' . (rule 463) +state 745 - $default reduce using rule 463 (array_initializer) + interface_empty_body -> ';' . (rule 512) + $default reduce using rule 512 (interface_empty_body) -state 708 - variable_initializer_list -> variable_initializer_list COMMA variable_initializer . (rule 467) +state 746 - $default reduce using rule 467 (variable_initializer_list) + interface_event_declaration -> attributes_opt new_opt EVENT type IDENTIFIER interface_empty_body . (rule 511) + $default reduce using rule 511 (interface_event_declaration) -state 709 - cast_expression -> '(' qualified_identifier rank_specifier type_quals_opt ')' unary_expression . (rule 116) +state 747 - $default reduce using rule 116 (cast_expression) + interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' formal_parameter_list_opt . ')' interface_empty_body (rule 502) + ')' shift, and go to state 793 -state 710 - constructor_declarator -> IDENTIFIER '(' formal_parameter_list_opt ')' . constructor_initializer_opt (rule 434) +state 748 + + interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' formal_parameter_list_opt . ')' interface_empty_body (rule 501) - ':' shift, and go to state 760 + ')' shift, and go to state 794 - $default reduce using rule 435 (constructor_initializer_opt) - constructor_initializer_opt go to state 761 - constructor_initializer go to state 762 +state 749 + interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' . interface_accessors '}' EXIT_getset (rule 505) -state 711 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) - constant_declarator -> IDENTIFIER '=' . constant_expression (rule 211) + attributes_opt go to state 795 + interface_accessors go to state 796 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 + + + +state 750 + + formal_parameter_list -> formal_parameter_list . COMMA formal_parameter (rule 388) + interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list . RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 506) + + COMMA shift, and go to state 436 + RIGHT_BRACKET shift, and go to state 797 + + + +state 751 + + constructor_declarator -> IDENTIFIER '(' formal_parameter_list_opt ')' . constructor_initializer_opt (rule 450) + + ':' shift, and go to state 798 - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + $default reduce using rule 451 (constructor_initializer_opt) + + constructor_initializer_opt go to state 799 + constructor_initializer go to state 800 + + + +state 752 + + constant_declarator -> IDENTIFIER '=' . constant_expression (rule 218) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 611 - constant_expression go to state 763 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 592 + constant_expression go to state 801 + qualified_identifier go to state 225 qualifier go to state 10 -state 712 +state 753 - constant_declarators -> constant_declarators COMMA . constant_declarator (rule 210) + constant_declarators -> constant_declarators COMMA . constant_declarator (rule 217) - IDENTIFIER shift, and go to state 630 + IDENTIFIER shift, and go to state 667 - constant_declarator go to state 764 + constant_declarator go to state 802 -state 713 +state 754 - constant_declaration -> attributes_opt modifiers_opt CONST type constant_declarators ';' . (rule 363) + constant_declaration -> attributes_opt modifiers_opt CONST type constant_declarators ';' . (rule 372) - $default reduce using rule 363 (constant_declaration) + $default reduce using rule 372 (constant_declaration) -state 714 +state 755 - event_declaration -> attributes_opt modifiers_opt EVENT type variable_declarators ';' . (rule 394) + event_declaration -> attributes_opt modifiers_opt EVENT type variable_declarators ';' . (rule 410) - $default reduce using rule 394 (event_declaration) + $default reduce using rule 410 (event_declaration) -state 715 +state 756 - event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl . '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 395) + event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl . '{' event_accessor_declarations '}' EXIT_accessor_decl (rule 411) - '{' shift, and go to state 765 + '{' shift, and go to state 803 -state 716 +state 757 - conversion_operator_declarator -> EXPLICIT OPERATOR type '(' . type IDENTIFIER ')' (rule 432) + conversion_operator_declarator -> EXPLICIT OPERATOR type '(' . type IDENTIFIER ')' (rule 448) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -14821,36 +15510,34 @@ state 716 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 766 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 804 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 717 +state 758 - conversion_operator_declarator -> IMPLICIT OPERATOR type '(' . type IDENTIFIER ')' (rule 431) + conversion_operator_declarator -> IMPLICIT OPERATOR type '(' . type IDENTIFIER ')' (rule 447) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -14859,63 +15546,64 @@ state 717 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 767 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 805 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 718 - - method_header -> attributes_opt modifiers_opt VOID qualified_identifier '(' formal_parameter_list_opt . ')' (rule 367) - - ')' shift, and go to state 768 - - - -state 719 +state 759 - destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER '(' ')' . block (rule 439) + method_header -> attributes_opt modifiers_opt VOID qualified_identifier opt_generic_fct '(' . formal_parameter_list_opt ')' (rule 376) - '{' shift, and go to state 359 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + ')' reduce using rule 381 (formal_parameter_list_opt) + $default reduce using rule 303 (attributes_opt) - block go to state 769 + attributes_opt go to state 320 + formal_parameter_list_opt go to state 806 + formal_parameter_list go to state 322 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 -state 720 +state 760 - variable_declarator -> IDENTIFIER '=' variable_initializer . (rule 203) + variable_declarator -> IDENTIFIER '=' variable_initializer . (rule 210) - $default reduce using rule 203 (variable_declarator) + $default reduce using rule 210 (variable_declarator) -state 721 +state 761 - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' . type IDENTIFIER ')' (rule 407) - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' . type IDENTIFIER COMMA type IDENTIFIER ')' (rule 408) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' . type IDENTIFIER ')' (rule 423) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' . type IDENTIFIER COMMA type IDENTIFIER ')' (rule 424) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -14924,68 +15612,80 @@ state 721 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 770 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 807 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 722 +state 762 - formal_parameter_list -> formal_parameter_list . COMMA formal_parameter (rule 375) - indexer_declarator -> type THIS LEFT_BRACKET formal_parameter_list . RIGHT_BRACKET (rule 401) + formal_parameter_list -> formal_parameter_list . COMMA formal_parameter (rule 388) + indexer_declarator -> type THIS LEFT_BRACKET formal_parameter_list . RIGHT_BRACKET (rule 417) - COMMA shift, and go to state 368 - RIGHT_BRACKET shift, and go to state 771 + COMMA shift, and go to state 436 + RIGHT_BRACKET shift, and go to state 808 -state 723 +state 763 - variable_declarators -> variable_declarators COMMA variable_declarator . (rule 201) + variable_declarators -> variable_declarators COMMA variable_declarator . (rule 208) - $default reduce using rule 201 (variable_declarators) + $default reduce using rule 208 (variable_declarators) -state 724 +state 764 - method_header -> attributes_opt modifiers_opt type qualified_identifier '(' formal_parameter_list_opt . ')' (rule 366) + method_header -> attributes_opt modifiers_opt type qualified_identifier opt_generic_fct '(' . formal_parameter_list_opt ')' (rule 375) - ')' shift, and go to state 772 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + ')' reduce using rule 381 (formal_parameter_list_opt) + $default reduce using rule 303 (attributes_opt) + + attributes_opt go to state 320 + formal_parameter_list_opt go to state 809 + formal_parameter_list go to state 322 + formal_parameter go to state 323 + fixed_parameter go to state 324 + parameter_array go to state 325 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 -state 725 +state 765 - property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' . accessor_declarations '}' EXIT_getset (rule 383) + property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' . accessor_declarations '}' EXIT_getset (rule 398) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 401 (accessor_declarations) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 727 - accessor_declarations go to state 773 - get_accessor_declaration go to state 729 - set_accessor_declaration go to state 730 + attributes_opt go to state 767 + accessor_declarations go to state 810 + get_accessor_declaration go to state 769 + set_accessor_declaration go to state 770 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -14993,45 +15693,45 @@ state 725 -state 726 +state 766 - formal_parameter_list -> formal_parameter_list . COMMA formal_parameter (rule 375) - indexer_declarator -> type qualified_this LEFT_BRACKET formal_parameter_list . RIGHT_BRACKET (rule 402) + formal_parameter_list -> formal_parameter_list . COMMA formal_parameter (rule 388) + indexer_declarator -> type qualified_this LEFT_BRACKET formal_parameter_list . RIGHT_BRACKET (rule 418) - COMMA shift, and go to state 368 - RIGHT_BRACKET shift, and go to state 774 + COMMA shift, and go to state 436 + RIGHT_BRACKET shift, and go to state 811 -state 727 +state 767 - get_accessor_declaration -> attributes_opt . GET EXIT_getset accessor_body ENTER_getset (rule 390) - set_accessor_declaration -> attributes_opt . SET EXIT_getset accessor_body ENTER_getset (rule 391) + get_accessor_declaration -> attributes_opt . GET EXIT_getset accessor_body ENTER_getset (rule 406) + set_accessor_declaration -> attributes_opt . SET EXIT_getset accessor_body ENTER_getset (rule 407) - GET shift, and go to state 775 - SET shift, and go to state 776 + GET shift, and go to state 812 + SET shift, and go to state 813 -state 728 +state 768 - indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations . '}' EXIT_getset (rule 400) + indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations . '}' EXIT_getset (rule 416) - '}' shift, and go to state 777 + '}' shift, and go to state 814 -state 729 +state 769 - accessor_declarations -> get_accessor_declaration . set_accessor_declaration_opt (rule 384) + accessor_declarations -> get_accessor_declaration . set_accessor_declaration_opt (rule 399) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 386 (set_accessor_declaration_opt) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 402 (set_accessor_declaration_opt) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 778 - set_accessor_declaration_opt go to state 779 - set_accessor_declaration go to state 780 + attributes_opt go to state 815 + set_accessor_declaration_opt go to state 816 + set_accessor_declaration go to state 817 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -15039,17 +15739,17 @@ state 729 -state 730 +state 770 - accessor_declarations -> set_accessor_declaration . get_accessor_declaration_opt (rule 385) + accessor_declarations -> set_accessor_declaration . get_accessor_declaration_opt (rule 400) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 388 (get_accessor_declaration_opt) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 404 (get_accessor_declaration_opt) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 781 - get_accessor_declaration_opt go to state 782 - get_accessor_declaration go to state 783 + attributes_opt go to state 818 + get_accessor_declaration_opt go to state 819 + get_accessor_declaration go to state 820 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -15057,1039 +15757,1023 @@ state 730 -state 731 +state 771 - do_statement -> DO embedded_statement WHILE '(' . boolean_expression ')' ';' (rule 241) + do_statement -> DO embedded_statement WHILE '(' . boolean_expression ')' ';' (rule 250) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 684 - boolean_expression go to state 784 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 720 + boolean_expression go to state 821 + qualified_identifier go to state 225 qualifier go to state 10 -state 732 +state 772 - fixed_pointer_declarator -> IDENTIFIER . '=' expression (rule 290) + fixed_pointer_declarator -> IDENTIFIER . '=' expression (rule 298) - '=' shift, and go to state 785 + '=' shift, and go to state 822 -state 733 +state 773 - fixed_statement -> FIXED '(' type fixed_pointer_declarators . ')' embedded_statement (rule 287) - fixed_pointer_declarators -> fixed_pointer_declarators . COMMA fixed_pointer_declarator (rule 289) + fixed_statement -> FIXED '(' type fixed_pointer_declarators . ')' embedded_statement (rule 295) + fixed_pointer_declarators -> fixed_pointer_declarators . COMMA fixed_pointer_declarator (rule 297) - COMMA shift, and go to state 786 - ')' shift, and go to state 787 + COMMA shift, and go to state 823 + ')' shift, and go to state 824 -state 734 +state 774 - fixed_pointer_declarators -> fixed_pointer_declarator . (rule 288) + fixed_pointer_declarators -> fixed_pointer_declarator . (rule 296) - $default reduce using rule 288 (fixed_pointer_declarators) + $default reduce using rule 296 (fixed_pointer_declarators) -state 735 +state 775 - for_statement -> FOR '(' for_initializer_opt ';' . for_condition_opt ';' for_iterator_opt ')' embedded_statement (rule 242) + for_statement -> FOR '(' for_initializer_opt ';' . for_condition_opt ';' for_iterator_opt ')' embedded_statement (rule 251) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 245 (for_condition_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 684 - boolean_expression go to state 788 - for_condition_opt go to state 789 - for_condition go to state 790 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 254 (for_condition_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 720 + boolean_expression go to state 825 + for_condition_opt go to state 826 + for_condition go to state 827 + qualified_identifier go to state 225 qualifier go to state 10 -state 736 +state 776 - statement_expression_list -> statement_expression_list COMMA . statement_expression (rule 254) + statement_expression_list -> statement_expression_list COMMA . statement_expression (rule 263) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - statement_expression go to state 791 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + statement_expression go to state 828 + qualified_identifier go to state 225 qualifier go to state 10 -state 737 +state 777 - foreach_statement -> FOREACH '(' type IDENTIFIER . IN expression ')' embedded_statement (rule 255) + foreach_statement -> FOREACH '(' type IDENTIFIER . IN expression ')' embedded_statement (rule 264) - IN shift, and go to state 792 + IN shift, and go to state 829 -state 738 +state 778 - goto_statement -> GOTO CASE constant_expression ';' . (rule 264) + goto_statement -> GOTO CASE constant_expression ';' . (rule 273) - $default reduce using rule 264 (goto_statement) + $default reduce using rule 273 (goto_statement) -state 739 +state 779 - if_statement -> IF '(' boolean_expression ')' . embedded_statement (rule 222) - if_statement -> IF '(' boolean_expression ')' . embedded_statement ELSE embedded_statement (rule 223) + ifpart -> '(' boolean_expression ')' . embedded_statement (rule 230) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 793 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 830 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 qualifier go to state 10 -state 740 +state 780 + + opt_else -> ELSE embedded_statement . (rule 231) - lock_statement -> LOCK '(' expression ')' . embedded_statement (rule 283) + $default reduce using rule 231 (opt_else) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + + +state 781 + + lock_statement -> LOCK '(' expression ')' . embedded_statement (rule 291) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 794 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 831 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 qualifier go to state 10 -state 741 +state 782 - switch_statement -> SWITCH '(' expression ')' . switch_block (rule 224) + switch_statement -> SWITCH '(' expression ')' . switch_block (rule 233) - '{' shift, and go to state 795 + '{' shift, and go to state 832 - switch_block go to state 796 + switch_block go to state 833 -state 742 +state 783 - catch_clause -> CATCH '(' . class_type identifier_opt ')' block (rule 275) - catch_clause -> CATCH '(' . type_name identifier_opt ')' block (rule 276) + catch_clause -> CATCH '(' . type_name identifier_opt ')' block (rule 284) - IDENTIFIER shift, and go to state 52 - OBJECT shift, and go to state 86 - STRING shift, and go to state 89 + IDENTIFIER shift, and go to state 53 - type_name go to state 797 - class_type go to state 798 - qualified_identifier go to state 111 + type_name go to state 834 + qualified_identifier_opt_generic go to state 93 + qualified_identifier go to state 109 qualifier go to state 10 -state 743 +state 784 - catch_clause -> CATCH block . (rule 277) + catch_clause -> CATCH block . (rule 285) - $default reduce using rule 277 (catch_clause) + $default reduce using rule 285 (catch_clause) -state 744 +state 785 - finally_clause -> FINALLY block . (rule 280) + finally_clause -> FINALLY block . (rule 288) - $default reduce using rule 280 (finally_clause) + $default reduce using rule 288 (finally_clause) -state 745 +state 786 - catch_clauses -> catch_clauses catch_clause . (rule 274) + catch_clauses -> catch_clauses catch_clause . (rule 283) - $default reduce using rule 274 (catch_clauses) + $default reduce using rule 283 (catch_clauses) -state 746 +state 787 - try_statement -> TRY block catch_clauses finally_clause . (rule 272) + try_statement -> TRY block catch_clauses finally_clause . (rule 281) - $default reduce using rule 272 (try_statement) + $default reduce using rule 281 (try_statement) -state 747 +state 788 - using_statement -> USING '(' resource_acquisition ')' . embedded_statement (rule 284) + using_statement -> USING '(' resource_acquisition ')' . embedded_statement (rule 292) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 799 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 835 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 qualifier go to state 10 -state 748 +state 789 - while_statement -> WHILE '(' boolean_expression ')' . embedded_statement (rule 240) + while_statement -> WHILE '(' boolean_expression ')' . embedded_statement (rule 249) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 800 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 836 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 qualifier go to state 10 -state 749 - - interface_empty_body -> '{' . '}' (rule 493) - - '}' shift, and go to state 801 - - - -state 750 - - interface_empty_body -> ';' . (rule 492) - - $default reduce using rule 492 (interface_empty_body) - - - -state 751 - - interface_event_declaration -> attributes_opt new_opt EVENT type IDENTIFIER interface_empty_body . (rule 491) - - $default reduce using rule 491 (interface_event_declaration) +state 790 + stackalloc_initializer -> STACKALLOC type LEFT_BRACKET expression . RIGHT_BRACKET (rule 214) + RIGHT_BRACKET shift, and go to state 837 -state 752 - interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' formal_parameter_list_opt . ')' interface_empty_body (rule 482) - ')' shift, and go to state 802 +state 791 + destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER '(' ')' . block (rule 455) + '{' shift, and go to state 446 -state 753 + block go to state 838 - interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' formal_parameter_list_opt . ')' interface_empty_body (rule 481) - ')' shift, and go to state 803 +state 792 + interface_empty_body -> '{' '}' . (rule 513) -state 754 + $default reduce using rule 513 (interface_empty_body) - interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' . interface_accessors '}' EXIT_getset (rule 485) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) - attributes_opt go to state 804 - interface_accessors go to state 805 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 +state 793 + interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' formal_parameter_list_opt ')' . interface_empty_body (rule 502) + '{' shift, and go to state 744 + ';' shift, and go to state 745 -state 755 + interface_empty_body go to state 839 - formal_parameter_list -> formal_parameter_list . COMMA formal_parameter (rule 375) - interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list . RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 486) - COMMA shift, and go to state 368 - RIGHT_BRACKET shift, and go to state 806 +state 794 + interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' formal_parameter_list_opt ')' . interface_empty_body (rule 501) -state 756 + '{' shift, and go to state 744 + ';' shift, and go to state 745 - array_creation_expression -> NEW non_array_type LEFT_BRACKET expression_list RIGHT_BRACKET rank_specifiers_opt array_initializer_opt . (rule 85) + interface_empty_body go to state 840 - $default reduce using rule 85 (array_creation_expression) +state 795 -state 757 + interface_accessors -> attributes_opt . GET interface_empty_body (rule 507) + interface_accessors -> attributes_opt . SET interface_empty_body (rule 508) + interface_accessors -> attributes_opt . GET interface_empty_body attributes_opt SET interface_empty_body (rule 509) + interface_accessors -> attributes_opt . SET interface_empty_body attributes_opt GET interface_empty_body (rule 510) - array_initializer_opt -> array_initializer . (rule 88) + GET shift, and go to state 841 + SET shift, and go to state 842 - $default reduce using rule 88 (array_initializer_opt) +state 796 -state 758 + interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' interface_accessors . '}' EXIT_getset (rule 505) - rank_specifiers_opt -> rank_specifier rank_specifiers_opt . (rule 42) + '}' shift, and go to state 843 - $default reduce using rule 42 (rank_specifiers_opt) +state 797 -state 759 + interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET . ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 506) - stackalloc_initializer -> STACKALLOC type LEFT_BRACKET expression . RIGHT_BRACKET (rule 207) + $default reduce using rule 556 (ENTER_getset) - RIGHT_BRACKET shift, and go to state 807 + ENTER_getset go to state 844 -state 760 +state 798 - constructor_initializer -> ':' . BASE '(' argument_list_opt ')' (rule 437) - constructor_initializer -> ':' . THIS '(' argument_list_opt ')' (rule 438) + constructor_initializer -> ':' . BASE '(' argument_list_opt ')' (rule 453) + constructor_initializer -> ':' . THIS '(' argument_list_opt ')' (rule 454) - BASE shift, and go to state 808 - THIS shift, and go to state 809 + BASE shift, and go to state 845 + THIS shift, and go to state 846 -state 761 +state 799 - constructor_declarator -> IDENTIFIER '(' formal_parameter_list_opt ')' constructor_initializer_opt . (rule 434) + constructor_declarator -> IDENTIFIER '(' formal_parameter_list_opt ')' constructor_initializer_opt . (rule 450) - $default reduce using rule 434 (constructor_declarator) + $default reduce using rule 450 (constructor_declarator) -state 762 +state 800 - constructor_initializer_opt -> constructor_initializer . (rule 436) + constructor_initializer_opt -> constructor_initializer . (rule 452) - $default reduce using rule 436 (constructor_initializer_opt) + $default reduce using rule 452 (constructor_initializer_opt) -state 763 +state 801 - constant_declarator -> IDENTIFIER '=' constant_expression . (rule 211) + constant_declarator -> IDENTIFIER '=' constant_expression . (rule 218) - $default reduce using rule 211 (constant_declarator) + $default reduce using rule 218 (constant_declarator) -state 764 +state 802 - constant_declarators -> constant_declarators COMMA constant_declarator . (rule 210) + constant_declarators -> constant_declarators COMMA constant_declarator . (rule 217) - $default reduce using rule 210 (constant_declarators) + $default reduce using rule 217 (constant_declarators) -state 765 +state 803 - event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' . event_accessor_declarations '}' EXIT_accessor_decl (rule 395) + event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' . event_accessor_declarations '}' EXIT_accessor_decl (rule 411) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 810 - event_accessor_declarations go to state 811 - add_accessor_declaration go to state 812 - remove_accessor_declaration go to state 813 + attributes_opt go to state 847 + event_accessor_declarations go to state 848 + add_accessor_declaration go to state 849 + remove_accessor_declaration go to state 850 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -16097,723 +16781,705 @@ state 765 -state 766 - - pointer_type -> type . '*' (rule 36) - conversion_operator_declarator -> EXPLICIT OPERATOR type '(' type . IDENTIFIER ')' (rule 432) - - IDENTIFIER shift, and go to state 814 - '*' shift, and go to state 123 - - - -state 767 +state 804 - pointer_type -> type . '*' (rule 36) - conversion_operator_declarator -> IMPLICIT OPERATOR type '(' type . IDENTIFIER ')' (rule 431) + pointer_type -> type . '*' (rule 41) + conversion_operator_declarator -> EXPLICIT OPERATOR type '(' type . IDENTIFIER ')' (rule 448) - IDENTIFIER shift, and go to state 815 - '*' shift, and go to state 123 + IDENTIFIER shift, and go to state 851 + '*' shift, and go to state 119 -state 768 +state 805 - method_header -> attributes_opt modifiers_opt VOID qualified_identifier '(' formal_parameter_list_opt ')' . (rule 367) + pointer_type -> type . '*' (rule 41) + conversion_operator_declarator -> IMPLICIT OPERATOR type '(' type . IDENTIFIER ')' (rule 447) - $default reduce using rule 367 (method_header) + IDENTIFIER shift, and go to state 852 + '*' shift, and go to state 119 -state 769 +state 806 - destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER '(' ')' block . (rule 439) + method_header -> attributes_opt modifiers_opt VOID qualified_identifier opt_generic_fct '(' formal_parameter_list_opt . ')' (rule 376) - $default reduce using rule 439 (destructor_declaration) + ')' shift, and go to state 853 -state 770 +state 807 - pointer_type -> type . '*' (rule 36) - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type . IDENTIFIER ')' (rule 407) - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type . IDENTIFIER COMMA type IDENTIFIER ')' (rule 408) + pointer_type -> type . '*' (rule 41) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type . IDENTIFIER ')' (rule 423) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type . IDENTIFIER COMMA type IDENTIFIER ')' (rule 424) - IDENTIFIER shift, and go to state 816 - '*' shift, and go to state 123 + IDENTIFIER shift, and go to state 854 + '*' shift, and go to state 119 -state 771 +state 808 - indexer_declarator -> type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET . (rule 401) + indexer_declarator -> type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET . (rule 417) - $default reduce using rule 401 (indexer_declarator) + $default reduce using rule 417 (indexer_declarator) -state 772 +state 809 - method_header -> attributes_opt modifiers_opt type qualified_identifier '(' formal_parameter_list_opt ')' . (rule 366) + method_header -> attributes_opt modifiers_opt type qualified_identifier opt_generic_fct '(' formal_parameter_list_opt . ')' (rule 375) - $default reduce using rule 366 (method_header) + ')' shift, and go to state 855 -state 773 +state 810 - property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations . '}' EXIT_getset (rule 383) + property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations . '}' EXIT_getset (rule 398) - '}' shift, and go to state 817 + '}' shift, and go to state 856 -state 774 +state 811 - indexer_declarator -> type qualified_this LEFT_BRACKET formal_parameter_list RIGHT_BRACKET . (rule 402) + indexer_declarator -> type qualified_this LEFT_BRACKET formal_parameter_list RIGHT_BRACKET . (rule 418) - $default reduce using rule 402 (indexer_declarator) + $default reduce using rule 418 (indexer_declarator) -state 775 +state 812 - get_accessor_declaration -> attributes_opt GET . EXIT_getset accessor_body ENTER_getset (rule 390) + get_accessor_declaration -> attributes_opt GET . EXIT_getset accessor_body ENTER_getset (rule 406) - $default reduce using rule 536 (EXIT_getset) + $default reduce using rule 557 (EXIT_getset) - EXIT_getset go to state 818 + EXIT_getset go to state 857 -state 776 +state 813 - set_accessor_declaration -> attributes_opt SET . EXIT_getset accessor_body ENTER_getset (rule 391) + set_accessor_declaration -> attributes_opt SET . EXIT_getset accessor_body ENTER_getset (rule 407) - $default reduce using rule 536 (EXIT_getset) + $default reduce using rule 557 (EXIT_getset) - EXIT_getset go to state 819 + EXIT_getset go to state 858 -state 777 +state 814 - indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' . EXIT_getset (rule 400) + indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' . EXIT_getset (rule 416) - $default reduce using rule 536 (EXIT_getset) + $default reduce using rule 557 (EXIT_getset) - EXIT_getset go to state 820 + EXIT_getset go to state 859 -state 778 +state 815 - set_accessor_declaration -> attributes_opt . SET EXIT_getset accessor_body ENTER_getset (rule 391) + set_accessor_declaration -> attributes_opt . SET EXIT_getset accessor_body ENTER_getset (rule 407) - SET shift, and go to state 776 + SET shift, and go to state 813 -state 779 +state 816 - accessor_declarations -> get_accessor_declaration set_accessor_declaration_opt . (rule 384) + accessor_declarations -> get_accessor_declaration set_accessor_declaration_opt . (rule 399) - $default reduce using rule 384 (accessor_declarations) + $default reduce using rule 399 (accessor_declarations) -state 780 +state 817 - set_accessor_declaration_opt -> set_accessor_declaration . (rule 387) + set_accessor_declaration_opt -> set_accessor_declaration . (rule 403) - $default reduce using rule 387 (set_accessor_declaration_opt) + $default reduce using rule 403 (set_accessor_declaration_opt) -state 781 +state 818 - get_accessor_declaration -> attributes_opt . GET EXIT_getset accessor_body ENTER_getset (rule 390) + get_accessor_declaration -> attributes_opt . GET EXIT_getset accessor_body ENTER_getset (rule 406) - GET shift, and go to state 775 + GET shift, and go to state 812 -state 782 +state 819 - accessor_declarations -> set_accessor_declaration get_accessor_declaration_opt . (rule 385) + accessor_declarations -> set_accessor_declaration get_accessor_declaration_opt . (rule 400) - $default reduce using rule 385 (accessor_declarations) + $default reduce using rule 400 (accessor_declarations) -state 783 +state 820 - get_accessor_declaration_opt -> get_accessor_declaration . (rule 389) + get_accessor_declaration_opt -> get_accessor_declaration . (rule 405) - $default reduce using rule 389 (get_accessor_declaration_opt) + $default reduce using rule 405 (get_accessor_declaration_opt) -state 784 +state 821 - do_statement -> DO embedded_statement WHILE '(' boolean_expression . ')' ';' (rule 241) + do_statement -> DO embedded_statement WHILE '(' boolean_expression . ')' ';' (rule 250) - ')' shift, and go to state 821 + ')' shift, and go to state 860 -state 785 +state 822 - fixed_pointer_declarator -> IDENTIFIER '=' . expression (rule 290) + fixed_pointer_declarator -> IDENTIFIER '=' . expression (rule 298) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 822 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 861 + qualified_identifier go to state 225 qualifier go to state 10 -state 786 +state 823 - fixed_pointer_declarators -> fixed_pointer_declarators COMMA . fixed_pointer_declarator (rule 289) + fixed_pointer_declarators -> fixed_pointer_declarators COMMA . fixed_pointer_declarator (rule 297) - IDENTIFIER shift, and go to state 732 + IDENTIFIER shift, and go to state 772 - fixed_pointer_declarator go to state 823 + fixed_pointer_declarator go to state 862 -state 787 +state 824 - fixed_statement -> FIXED '(' type fixed_pointer_declarators ')' . embedded_statement (rule 287) + fixed_statement -> FIXED '(' type fixed_pointer_declarators ')' . embedded_statement (rule 295) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 824 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 863 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 qualifier go to state 10 -state 788 +state 825 - for_condition -> boolean_expression . (rule 251) + for_condition -> boolean_expression . (rule 260) - $default reduce using rule 251 (for_condition) + $default reduce using rule 260 (for_condition) -state 789 +state 826 - for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt . ';' for_iterator_opt ')' embedded_statement (rule 242) + for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt . ';' for_iterator_opt ')' embedded_statement (rule 251) - ';' shift, and go to state 825 + ';' shift, and go to state 864 -state 790 +state 827 - for_condition_opt -> for_condition . (rule 246) + for_condition_opt -> for_condition . (rule 255) - $default reduce using rule 246 (for_condition_opt) + $default reduce using rule 255 (for_condition_opt) -state 791 +state 828 - statement_expression_list -> statement_expression_list COMMA statement_expression . (rule 254) + statement_expression_list -> statement_expression_list COMMA statement_expression . (rule 263) - $default reduce using rule 254 (statement_expression_list) + $default reduce using rule 263 (statement_expression_list) -state 792 +state 829 - foreach_statement -> FOREACH '(' type IDENTIFIER IN . expression ')' embedded_statement (rule 255) + foreach_statement -> FOREACH '(' type IDENTIFIER IN . expression ')' embedded_statement (rule 264) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 826 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 865 + qualified_identifier go to state 225 qualifier go to state 10 -state 793 - - if_statement -> IF '(' boolean_expression ')' embedded_statement . (rule 222) - if_statement -> IF '(' boolean_expression ')' embedded_statement . ELSE embedded_statement (rule 223) - - ELSE shift, and go to state 827 - - ELSE [reduce using rule 222 (if_statement)] - $default reduce using rule 222 (if_statement) +state 830 + ifpart -> '(' boolean_expression ')' embedded_statement . (rule 230) + $default reduce using rule 230 (ifpart) -state 794 - lock_statement -> LOCK '(' expression ')' embedded_statement . (rule 283) - $default reduce using rule 283 (lock_statement) +state 831 + lock_statement -> LOCK '(' expression ')' embedded_statement . (rule 291) + $default reduce using rule 291 (lock_statement) -state 795 - switch_block -> '{' . switch_sections_opt '}' (rule 225) - CASE shift, and go to state 828 - DEFAULT shift, and go to state 829 +state 832 - $default reduce using rule 226 (switch_sections_opt) + switch_block -> '{' . switch_sections_opt '}' (rule 234) - switch_sections_opt go to state 830 - switch_sections go to state 831 - switch_section go to state 832 - switch_labels go to state 833 - switch_label go to state 834 + CASE shift, and go to state 866 + DEFAULT shift, and go to state 867 + $default reduce using rule 235 (switch_sections_opt) + switch_sections_opt go to state 868 + switch_sections go to state 869 + switch_section go to state 870 + switch_labels go to state 871 + switch_label go to state 872 -state 796 - switch_statement -> SWITCH '(' expression ')' switch_block . (rule 224) - $default reduce using rule 224 (switch_statement) +state 833 + switch_statement -> SWITCH '(' expression ')' switch_block . (rule 233) + $default reduce using rule 233 (switch_statement) -state 797 - catch_clause -> CATCH '(' type_name . identifier_opt ')' block (rule 276) - IDENTIFIER shift, and go to state 835 +state 834 - $default reduce using rule 278 (identifier_opt) + catch_clause -> CATCH '(' type_name . identifier_opt ')' block (rule 284) - identifier_opt go to state 836 + IDENTIFIER shift, and go to state 873 + $default reduce using rule 286 (identifier_opt) + identifier_opt go to state 874 -state 798 - catch_clause -> CATCH '(' class_type . identifier_opt ')' block (rule 275) - IDENTIFIER shift, and go to state 835 +state 835 - $default reduce using rule 278 (identifier_opt) + using_statement -> USING '(' resource_acquisition ')' embedded_statement . (rule 292) - identifier_opt go to state 837 + $default reduce using rule 292 (using_statement) -state 799 +state 836 - using_statement -> USING '(' resource_acquisition ')' embedded_statement . (rule 284) + while_statement -> WHILE '(' boolean_expression ')' embedded_statement . (rule 249) - $default reduce using rule 284 (using_statement) + $default reduce using rule 249 (while_statement) -state 800 +state 837 - while_statement -> WHILE '(' boolean_expression ')' embedded_statement . (rule 240) + stackalloc_initializer -> STACKALLOC type LEFT_BRACKET expression RIGHT_BRACKET . (rule 214) - $default reduce using rule 240 (while_statement) + $default reduce using rule 214 (stackalloc_initializer) -state 801 +state 838 - interface_empty_body -> '{' '}' . (rule 493) + destructor_declaration -> attributes_opt modifiers_opt '~' IDENTIFIER '(' ')' block . (rule 455) - $default reduce using rule 493 (interface_empty_body) + $default reduce using rule 455 (destructor_declaration) -state 802 +state 839 - interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' formal_parameter_list_opt ')' . interface_empty_body (rule 482) + interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body . (rule 502) - '{' shift, and go to state 749 - ';' shift, and go to state 750 + $default reduce using rule 502 (interface_method_declaration) - interface_empty_body go to state 838 +state 840 -state 803 + interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body . (rule 501) - interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' formal_parameter_list_opt ')' . interface_empty_body (rule 481) + $default reduce using rule 501 (interface_method_declaration) - '{' shift, and go to state 749 - ';' shift, and go to state 750 - interface_empty_body go to state 839 +state 841 + interface_accessors -> attributes_opt GET . interface_empty_body (rule 507) + interface_accessors -> attributes_opt GET . interface_empty_body attributes_opt SET interface_empty_body (rule 509) -state 804 + '{' shift, and go to state 744 + ';' shift, and go to state 745 - interface_accessors -> attributes_opt . GET interface_empty_body (rule 487) - interface_accessors -> attributes_opt . SET interface_empty_body (rule 488) - interface_accessors -> attributes_opt . GET interface_empty_body attributes_opt SET interface_empty_body (rule 489) - interface_accessors -> attributes_opt . SET interface_empty_body attributes_opt GET interface_empty_body (rule 490) + interface_empty_body go to state 875 - GET shift, and go to state 840 - SET shift, and go to state 841 +state 842 -state 805 + interface_accessors -> attributes_opt SET . interface_empty_body (rule 508) + interface_accessors -> attributes_opt SET . interface_empty_body attributes_opt GET interface_empty_body (rule 510) - interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' interface_accessors . '}' EXIT_getset (rule 485) + '{' shift, and go to state 744 + ';' shift, and go to state 745 - '}' shift, and go to state 842 + interface_empty_body go to state 876 -state 806 +state 843 - interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET . ENTER_getset '{' interface_accessors '}' EXIT_getset (rule 486) + interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' interface_accessors '}' . EXIT_getset (rule 505) - $default reduce using rule 535 (ENTER_getset) + $default reduce using rule 557 (EXIT_getset) - ENTER_getset go to state 843 + EXIT_getset go to state 877 -state 807 +state 844 - stackalloc_initializer -> STACKALLOC type LEFT_BRACKET expression RIGHT_BRACKET . (rule 207) + interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset . '{' interface_accessors '}' EXIT_getset (rule 506) - $default reduce using rule 207 (stackalloc_initializer) + '{' shift, and go to state 878 -state 808 +state 845 - constructor_initializer -> ':' BASE . '(' argument_list_opt ')' (rule 437) + constructor_initializer -> ':' BASE . '(' argument_list_opt ')' (rule 453) - '(' shift, and go to state 844 + '(' shift, and go to state 879 -state 809 +state 846 - constructor_initializer -> ':' THIS . '(' argument_list_opt ')' (rule 438) + constructor_initializer -> ':' THIS . '(' argument_list_opt ')' (rule 454) - '(' shift, and go to state 845 + '(' shift, and go to state 880 -state 810 +state 847 - add_accessor_declaration -> attributes_opt . ADD EXIT_accessor_decl block ENTER_accessor_decl (rule 398) - remove_accessor_declaration -> attributes_opt . REMOVE EXIT_accessor_decl block ENTER_accessor_decl (rule 399) + add_accessor_declaration -> attributes_opt . ADD EXIT_accessor_decl block ENTER_accessor_decl (rule 414) + remove_accessor_declaration -> attributes_opt . REMOVE EXIT_accessor_decl block ENTER_accessor_decl (rule 415) - ADD shift, and go to state 846 - REMOVE shift, and go to state 847 + ADD shift, and go to state 881 + REMOVE shift, and go to state 882 -state 811 +state 848 - event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations . '}' EXIT_accessor_decl (rule 395) + event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations . '}' EXIT_accessor_decl (rule 411) - '}' shift, and go to state 848 + '}' shift, and go to state 883 -state 812 +state 849 - event_accessor_declarations -> add_accessor_declaration . remove_accessor_declaration (rule 396) + event_accessor_declarations -> add_accessor_declaration . remove_accessor_declaration (rule 412) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 849 - remove_accessor_declaration go to state 850 + attributes_opt go to state 884 + remove_accessor_declaration go to state 885 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -16821,15 +17487,15 @@ state 812 -state 813 +state 850 - event_accessor_declarations -> remove_accessor_declaration . add_accessor_declaration (rule 397) + event_accessor_declarations -> remove_accessor_declaration . add_accessor_declaration (rule 413) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) - attributes_opt go to state 851 - add_accessor_declaration go to state 852 + attributes_opt go to state 886 + add_accessor_declaration go to state 887 attributes go to state 21 attribute_sections go to state 22 attribute_section go to state 23 @@ -16837,982 +17503,864 @@ state 813 -state 814 +state 851 - conversion_operator_declarator -> EXPLICIT OPERATOR type '(' type IDENTIFIER . ')' (rule 432) + conversion_operator_declarator -> EXPLICIT OPERATOR type '(' type IDENTIFIER . ')' (rule 448) - ')' shift, and go to state 853 + ')' shift, and go to state 888 -state 815 +state 852 - conversion_operator_declarator -> IMPLICIT OPERATOR type '(' type IDENTIFIER . ')' (rule 431) + conversion_operator_declarator -> IMPLICIT OPERATOR type '(' type IDENTIFIER . ')' (rule 447) - ')' shift, and go to state 854 + ')' shift, and go to state 889 -state 816 +state 853 - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER . ')' (rule 407) - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER . COMMA type IDENTIFIER ')' (rule 408) + method_header -> attributes_opt modifiers_opt VOID qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' . (rule 376) - COMMA shift, and go to state 855 - ')' shift, and go to state 856 + $default reduce using rule 376 (method_header) -state 817 +state 854 - property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' . EXIT_getset (rule 383) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER . ')' (rule 423) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER . COMMA type IDENTIFIER ')' (rule 424) - $default reduce using rule 536 (EXIT_getset) + COMMA shift, and go to state 890 + ')' shift, and go to state 891 - EXIT_getset go to state 857 +state 855 -state 818 + method_header -> attributes_opt modifiers_opt type qualified_identifier opt_generic_fct '(' formal_parameter_list_opt ')' . (rule 375) - get_accessor_declaration -> attributes_opt GET EXIT_getset . accessor_body ENTER_getset (rule 390) + $default reduce using rule 375 (method_header) - '{' shift, and go to state 359 - ';' shift, and go to state 858 - block go to state 859 - accessor_body go to state 860 +state 856 + property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' . EXIT_getset (rule 398) -state 819 + $default reduce using rule 557 (EXIT_getset) - set_accessor_declaration -> attributes_opt SET EXIT_getset . accessor_body ENTER_getset (rule 391) + EXIT_getset go to state 892 - '{' shift, and go to state 359 - ';' shift, and go to state 858 - block go to state 859 - accessor_body go to state 861 +state 857 + get_accessor_declaration -> attributes_opt GET EXIT_getset . accessor_body ENTER_getset (rule 406) -state 820 + '{' shift, and go to state 446 + ';' shift, and go to state 893 - indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset . (rule 400) + block go to state 894 + accessor_body go to state 895 - $default reduce using rule 400 (indexer_declaration) +state 858 -state 821 + set_accessor_declaration -> attributes_opt SET EXIT_getset . accessor_body ENTER_getset (rule 407) - do_statement -> DO embedded_statement WHILE '(' boolean_expression ')' . ';' (rule 241) + '{' shift, and go to state 446 + ';' shift, and go to state 893 - ';' shift, and go to state 862 + block go to state 894 + accessor_body go to state 896 -state 822 +state 859 - fixed_pointer_declarator -> IDENTIFIER '=' expression . (rule 290) + indexer_declaration -> attributes_opt modifiers_opt indexer_declarator ENTER_getset '{' accessor_declarations '}' EXIT_getset . (rule 416) - $default reduce using rule 290 (fixed_pointer_declarator) + $default reduce using rule 416 (indexer_declaration) -state 823 +state 860 - fixed_pointer_declarators -> fixed_pointer_declarators COMMA fixed_pointer_declarator . (rule 289) + do_statement -> DO embedded_statement WHILE '(' boolean_expression ')' . ';' (rule 250) - $default reduce using rule 289 (fixed_pointer_declarators) + ';' shift, and go to state 897 -state 824 +state 861 - fixed_statement -> FIXED '(' type fixed_pointer_declarators ')' embedded_statement . (rule 287) + fixed_pointer_declarator -> IDENTIFIER '=' expression . (rule 298) - $default reduce using rule 287 (fixed_statement) + $default reduce using rule 298 (fixed_pointer_declarator) -state 825 +state 862 - for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' . for_iterator_opt ')' embedded_statement (rule 242) + fixed_pointer_declarators -> fixed_pointer_declarators COMMA fixed_pointer_declarator . (rule 297) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 - BOOL shift, and go to state 78 - BYTE shift, and go to state 79 - CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 - DECIMAL shift, and go to state 81 - DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FLOAT shift, and go to state 83 - INT shift, and go to state 84 - LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 247 (for_iterator_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - statement_expression go to state 676 - for_iterator_opt go to state 863 - for_iterator go to state 864 - statement_expression_list go to state 865 - qualified_identifier go to state 230 - qualifier go to state 10 + $default reduce using rule 297 (fixed_pointer_declarators) -state 826 +state 863 - foreach_statement -> FOREACH '(' type IDENTIFIER IN expression . ')' embedded_statement (rule 255) + fixed_statement -> FIXED '(' type fixed_pointer_declarators ')' embedded_statement . (rule 295) - ')' shift, and go to state 866 + $default reduce using rule 295 (fixed_statement) -state 827 +state 864 - if_statement -> IF '(' boolean_expression ')' embedded_statement ELSE . embedded_statement (rule 223) + for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' . for_iterator_opt ')' embedded_statement (rule 251) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 INT shift, and go to state 84 - LOCK shift, and go to state 461 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 867 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 256 (for_iterator_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + statement_expression go to state 712 + for_iterator_opt go to state 898 + for_iterator go to state 899 + statement_expression_list go to state 900 + qualified_identifier go to state 225 qualifier go to state 10 -state 828 +state 865 + + foreach_statement -> FOREACH '(' type IDENTIFIER IN expression . ')' embedded_statement (rule 264) + + ')' shift, and go to state 901 - switch_label -> CASE . constant_expression ':' (rule 233) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + +state 866 + + switch_label -> CASE . constant_expression ':' (rule 242) + + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 611 - constant_expression go to state 868 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 592 + constant_expression go to state 902 + qualified_identifier go to state 225 qualifier go to state 10 -state 829 +state 867 - switch_label -> DEFAULT . ':' (rule 234) + switch_label -> DEFAULT . ':' (rule 243) - ':' shift, and go to state 869 + ':' shift, and go to state 903 -state 830 +state 868 - switch_block -> '{' switch_sections_opt . '}' (rule 225) + switch_block -> '{' switch_sections_opt . '}' (rule 234) - '}' shift, and go to state 870 + '}' shift, and go to state 904 -state 831 +state 869 - switch_sections_opt -> switch_sections . (rule 227) - switch_sections -> switch_sections . switch_section (rule 229) + switch_sections_opt -> switch_sections . (rule 236) + switch_sections -> switch_sections . switch_section (rule 238) - CASE shift, and go to state 828 - DEFAULT shift, and go to state 829 + CASE shift, and go to state 866 + DEFAULT shift, and go to state 867 - $default reduce using rule 227 (switch_sections_opt) + $default reduce using rule 236 (switch_sections_opt) - switch_section go to state 871 - switch_labels go to state 833 - switch_label go to state 834 + switch_section go to state 905 + switch_labels go to state 871 + switch_label go to state 872 -state 832 +state 870 - switch_sections -> switch_section . (rule 228) + switch_sections -> switch_section . (rule 237) - $default reduce using rule 228 (switch_sections) + $default reduce using rule 237 (switch_sections) -state 833 +state 871 - switch_section -> switch_labels . statement_list (rule 230) - switch_labels -> switch_labels . switch_label (rule 232) + switch_section -> switch_labels . statement_list (rule 239) + switch_labels -> switch_labels . switch_label (rule 241) - IDENTIFIER shift, and go to state 450 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 504 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 - CASE shift, and go to state 828 + CASE shift, and go to state 866 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONST shift, and go to state 453 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONST shift, and go to state 507 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DEFAULT shift, and go to state 829 - DO shift, and go to state 455 + DEFAULT shift, and go to state 867 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - VOID shift, and go to state 288 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - type_name go to state 94 - type go to state 471 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 472 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 473 - pointer_type go to state 103 - array_type go to state 104 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - statement go to state 482 - embedded_statement go to state 483 - block go to state 484 - statement_list go to state 872 - empty_statement go to state 487 - labeled_statement go to state 488 - declaration_statement go to state 489 - local_variable_declaration go to state 490 - local_constant_declaration go to state 491 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - switch_label go to state 873 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 515 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + VOID shift, and go to state 249 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + type_name go to state 92 + qualified_identifier_opt_generic go to state 525 + type go to state 526 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 527 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + statement go to state 536 + embedded_statement go to state 537 + block go to state 538 + statement_list go to state 906 + empty_statement go to state 541 + labeled_statement go to state 542 + declaration_statement go to state 543 + local_variable_declaration go to state 544 + local_constant_declaration go to state 545 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + switch_label go to state 907 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 569 qualifier go to state 10 -state 834 - - switch_labels -> switch_label . (rule 231) - - $default reduce using rule 231 (switch_labels) - - - -state 835 - - identifier_opt -> IDENTIFIER . (rule 279) - - $default reduce using rule 279 (identifier_opt) - - - -state 836 - - catch_clause -> CATCH '(' type_name identifier_opt . ')' block (rule 276) - - ')' shift, and go to state 874 - - - -state 837 +state 872 - catch_clause -> CATCH '(' class_type identifier_opt . ')' block (rule 275) + switch_labels -> switch_label . (rule 240) - ')' shift, and go to state 875 + $default reduce using rule 240 (switch_labels) -state 838 +state 873 - interface_method_declaration -> attributes_opt new_opt VOID IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body . (rule 482) + identifier_opt -> IDENTIFIER . (rule 287) - $default reduce using rule 482 (interface_method_declaration) + $default reduce using rule 287 (identifier_opt) -state 839 +state 874 - interface_method_declaration -> attributes_opt new_opt type IDENTIFIER '(' formal_parameter_list_opt ')' interface_empty_body . (rule 481) + catch_clause -> CATCH '(' type_name identifier_opt . ')' block (rule 284) - $default reduce using rule 481 (interface_method_declaration) + ')' shift, and go to state 908 -state 840 +state 875 - interface_accessors -> attributes_opt GET . interface_empty_body (rule 487) - interface_accessors -> attributes_opt GET . interface_empty_body attributes_opt SET interface_empty_body (rule 489) + interface_accessors -> attributes_opt GET interface_empty_body . (rule 507) + interface_accessors -> attributes_opt GET interface_empty_body . attributes_opt SET interface_empty_body (rule 509) - '{' shift, and go to state 749 - ';' shift, and go to state 750 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 507 (interface_accessors) + $default reduce using rule 303 (attributes_opt) - interface_empty_body go to state 876 + attributes_opt go to state 909 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 -state 841 +state 876 - interface_accessors -> attributes_opt SET . interface_empty_body (rule 488) - interface_accessors -> attributes_opt SET . interface_empty_body attributes_opt GET interface_empty_body (rule 490) + interface_accessors -> attributes_opt SET interface_empty_body . (rule 508) + interface_accessors -> attributes_opt SET interface_empty_body . attributes_opt GET interface_empty_body (rule 510) - '{' shift, and go to state 749 - ';' shift, and go to state 750 + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + '}' reduce using rule 508 (interface_accessors) + $default reduce using rule 303 (attributes_opt) - interface_empty_body go to state 877 + attributes_opt go to state 910 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 -state 842 +state 877 - interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' interface_accessors '}' . EXIT_getset (rule 485) + interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset . (rule 505) - $default reduce using rule 536 (EXIT_getset) + $default reduce using rule 505 (interface_property_declaration) - EXIT_getset go to state 878 +state 878 -state 843 + interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' . interface_accessors '}' EXIT_getset (rule 506) - interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset . '{' interface_accessors '}' EXIT_getset (rule 486) + LEFT_BRACKET reduce using rule 552 (ENTER_attrib) + $default reduce using rule 303 (attributes_opt) - '{' shift, and go to state 879 + attributes_opt go to state 795 + interface_accessors go to state 911 + attributes go to state 21 + attribute_sections go to state 22 + attribute_section go to state 23 + ENTER_attrib go to state 24 -state 844 +state 879 - constructor_initializer -> ':' BASE '(' . argument_list_opt ')' (rule 437) + constructor_initializer -> ':' BASE '(' . argument_list_opt ')' (rule 453) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 377 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - OUT shift, and go to state 404 - REF shift, and go to state 405 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 70 (argument_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - argument_list go to state 406 - argument go to state 407 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - argument_list_opt go to state 880 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 409 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + OUT shift, and go to state 378 + REF shift, and go to state 379 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 78 (argument_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + argument_list go to state 380 + argument go to state 381 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + argument_list_opt go to state 912 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 383 + qualified_identifier go to state 225 qualifier go to state 10 -state 845 +state 880 - constructor_initializer -> ':' THIS '(' . argument_list_opt ')' (rule 438) + constructor_initializer -> ':' THIS '(' . argument_list_opt ')' (rule 454) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 377 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 168 + CHECKED shift, and go to state 161 DECIMAL shift, and go to state 81 + DELEGATE shift, and go to state 162 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 + FALSE shift, and go to state 163 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - OUT shift, and go to state 404 - REF shift, and go to state 405 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - THIS shift, and go to state 173 - TRUE shift, and go to state 174 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 176 - USHORT shift, and go to state 92 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - - $default reduce using rule 70 (argument_list_opt) - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - argument_list go to state 406 - argument go to state 407 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 194 - argument_list_opt go to state 881 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 200 - post_decrement_expression go to state 201 - new_expression go to state 202 - object_creation_expression go to state 203 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 213 - pre_decrement_expression go to state 214 - unary_expression go to state 215 - cast_expression go to state 216 - multiplicative_expression go to state 217 - additive_expression go to state 218 - shift_expression go to state 219 - relational_expression go to state 220 - equality_expression go to state 221 - and_expression go to state 222 - exclusive_or_expression go to state 223 - inclusive_or_expression go to state 224 - conditional_and_expression go to state 225 - conditional_or_expression go to state 226 - conditional_expression go to state 227 - assignment go to state 228 - expression go to state 409 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + OUT shift, and go to state 378 + REF shift, and go to state 379 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + THIS shift, and go to state 167 + TRUE shift, and go to state 168 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 170 + USHORT shift, and go to state 90 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + + $default reduce using rule 78 (argument_list_opt) + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + argument_list go to state 380 + argument go to state 381 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 189 + argument_list_opt go to state 913 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 195 + post_decrement_expression go to state 196 + new_expression go to state 197 + object_creation_expression go to state 198 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 208 + pre_decrement_expression go to state 209 + unary_expression go to state 210 + cast_expression go to state 211 + multiplicative_expression go to state 212 + additive_expression go to state 213 + shift_expression go to state 214 + relational_expression go to state 215 + equality_expression go to state 216 + and_expression go to state 217 + exclusive_or_expression go to state 218 + inclusive_or_expression go to state 219 + conditional_and_expression go to state 220 + conditional_or_expression go to state 221 + conditional_expression go to state 222 + assignment go to state 223 + expression go to state 383 + qualified_identifier go to state 225 qualifier go to state 10 -state 846 +state 881 - add_accessor_declaration -> attributes_opt ADD . EXIT_accessor_decl block ENTER_accessor_decl (rule 398) + add_accessor_declaration -> attributes_opt ADD . EXIT_accessor_decl block ENTER_accessor_decl (rule 414) - $default reduce using rule 534 (EXIT_accessor_decl) + $default reduce using rule 555 (EXIT_accessor_decl) - EXIT_accessor_decl go to state 882 + EXIT_accessor_decl go to state 914 -state 847 +state 882 - remove_accessor_declaration -> attributes_opt REMOVE . EXIT_accessor_decl block ENTER_accessor_decl (rule 399) + remove_accessor_declaration -> attributes_opt REMOVE . EXIT_accessor_decl block ENTER_accessor_decl (rule 415) - $default reduce using rule 534 (EXIT_accessor_decl) + $default reduce using rule 555 (EXIT_accessor_decl) - EXIT_accessor_decl go to state 883 + EXIT_accessor_decl go to state 915 -state 848 +state 883 - event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' . EXIT_accessor_decl (rule 395) + event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' . EXIT_accessor_decl (rule 411) - $default reduce using rule 534 (EXIT_accessor_decl) + $default reduce using rule 555 (EXIT_accessor_decl) - EXIT_accessor_decl go to state 884 + EXIT_accessor_decl go to state 916 -state 849 +state 884 - remove_accessor_declaration -> attributes_opt . REMOVE EXIT_accessor_decl block ENTER_accessor_decl (rule 399) + remove_accessor_declaration -> attributes_opt . REMOVE EXIT_accessor_decl block ENTER_accessor_decl (rule 415) - REMOVE shift, and go to state 847 + REMOVE shift, and go to state 882 -state 850 +state 885 - event_accessor_declarations -> add_accessor_declaration remove_accessor_declaration . (rule 396) + event_accessor_declarations -> add_accessor_declaration remove_accessor_declaration . (rule 412) - $default reduce using rule 396 (event_accessor_declarations) + $default reduce using rule 412 (event_accessor_declarations) -state 851 +state 886 - add_accessor_declaration -> attributes_opt . ADD EXIT_accessor_decl block ENTER_accessor_decl (rule 398) + add_accessor_declaration -> attributes_opt . ADD EXIT_accessor_decl block ENTER_accessor_decl (rule 414) - ADD shift, and go to state 846 + ADD shift, and go to state 881 -state 852 +state 887 - event_accessor_declarations -> remove_accessor_declaration add_accessor_declaration . (rule 397) + event_accessor_declarations -> remove_accessor_declaration add_accessor_declaration . (rule 413) - $default reduce using rule 397 (event_accessor_declarations) + $default reduce using rule 413 (event_accessor_declarations) -state 853 +state 888 - conversion_operator_declarator -> EXPLICIT OPERATOR type '(' type IDENTIFIER ')' . (rule 432) + conversion_operator_declarator -> EXPLICIT OPERATOR type '(' type IDENTIFIER ')' . (rule 448) - $default reduce using rule 432 (conversion_operator_declarator) + $default reduce using rule 448 (conversion_operator_declarator) -state 854 +state 889 - conversion_operator_declarator -> IMPLICIT OPERATOR type '(' type IDENTIFIER ')' . (rule 431) + conversion_operator_declarator -> IMPLICIT OPERATOR type '(' type IDENTIFIER ')' . (rule 447) - $default reduce using rule 431 (conversion_operator_declarator) + $default reduce using rule 447 (conversion_operator_declarator) -state 855 +state 890 - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA . type IDENTIFIER ')' (rule 408) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA . type IDENTIFIER ')' (rule 424) - IDENTIFIER shift, and go to state 52 + IDENTIFIER shift, and go to state 53 BOOL shift, and go to state 78 BYTE shift, and go to state 79 CHAR shift, and go to state 80 @@ -17821,908 +18369,822 @@ state 855 FLOAT shift, and go to state 83 INT shift, and go to state 84 LONG shift, and go to state 85 - OBJECT shift, and go to state 86 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - STRING shift, and go to state 89 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - USHORT shift, and go to state 92 - VOID shift, and go to state 288 - - type_name go to state 94 - type go to state 885 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 98 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 102 - pointer_type go to state 103 - array_type go to state 104 - qualified_identifier go to state 105 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + USHORT shift, and go to state 90 + VOID shift, and go to state 249 + + type_name go to state 92 + qualified_identifier_opt_generic go to state 93 + type go to state 917 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 97 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + qualified_identifier go to state 103 qualifier go to state 10 -state 856 +state 891 - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER ')' . (rule 407) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER ')' . (rule 423) - $default reduce using rule 407 (overloadable_operator_declarator) + $default reduce using rule 423 (overloadable_operator_declarator) -state 857 +state 892 - property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset . (rule 383) + property_declaration -> attributes_opt modifiers_opt type qualified_identifier ENTER_getset '{' accessor_declarations '}' EXIT_getset . (rule 398) - $default reduce using rule 383 (property_declaration) + $default reduce using rule 398 (property_declaration) -state 858 +state 893 - accessor_body -> ';' . (rule 393) + accessor_body -> ';' . (rule 409) - $default reduce using rule 393 (accessor_body) + $default reduce using rule 409 (accessor_body) -state 859 +state 894 - accessor_body -> block . (rule 392) + accessor_body -> block . (rule 408) - $default reduce using rule 392 (accessor_body) + $default reduce using rule 408 (accessor_body) -state 860 +state 895 - get_accessor_declaration -> attributes_opt GET EXIT_getset accessor_body . ENTER_getset (rule 390) + get_accessor_declaration -> attributes_opt GET EXIT_getset accessor_body . ENTER_getset (rule 406) - $default reduce using rule 535 (ENTER_getset) + $default reduce using rule 556 (ENTER_getset) - ENTER_getset go to state 886 + ENTER_getset go to state 918 -state 861 +state 896 - set_accessor_declaration -> attributes_opt SET EXIT_getset accessor_body . ENTER_getset (rule 391) + set_accessor_declaration -> attributes_opt SET EXIT_getset accessor_body . ENTER_getset (rule 407) - $default reduce using rule 535 (ENTER_getset) + $default reduce using rule 556 (ENTER_getset) - ENTER_getset go to state 887 + ENTER_getset go to state 919 -state 862 +state 897 - do_statement -> DO embedded_statement WHILE '(' boolean_expression ')' ';' . (rule 241) + do_statement -> DO embedded_statement WHILE '(' boolean_expression ')' ';' . (rule 250) - $default reduce using rule 241 (do_statement) + $default reduce using rule 250 (do_statement) -state 863 +state 898 - for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt . ')' embedded_statement (rule 242) + for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt . ')' embedded_statement (rule 251) - ')' shift, and go to state 888 + ')' shift, and go to state 920 -state 864 +state 899 - for_iterator_opt -> for_iterator . (rule 248) + for_iterator_opt -> for_iterator . (rule 257) - $default reduce using rule 248 (for_iterator_opt) + $default reduce using rule 257 (for_iterator_opt) -state 865 +state 900 - for_iterator -> statement_expression_list . (rule 252) - statement_expression_list -> statement_expression_list . COMMA statement_expression (rule 254) + for_iterator -> statement_expression_list . (rule 261) + statement_expression_list -> statement_expression_list . COMMA statement_expression (rule 263) - COMMA shift, and go to state 736 + COMMA shift, and go to state 776 - $default reduce using rule 252 (for_iterator) + $default reduce using rule 261 (for_iterator) -state 866 +state 901 - foreach_statement -> FOREACH '(' type IDENTIFIER IN expression ')' . embedded_statement (rule 255) + foreach_statement -> FOREACH '(' type IDENTIFIER IN expression ')' . embedded_statement (rule 264) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 889 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 921 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 qualifier go to state 10 -state 867 - - if_statement -> IF '(' boolean_expression ')' embedded_statement ELSE embedded_statement . (rule 223) - - $default reduce using rule 223 (if_statement) - - - -state 868 +state 902 - switch_label -> CASE constant_expression . ':' (rule 233) + switch_label -> CASE constant_expression . ':' (rule 242) - ':' shift, and go to state 890 + ':' shift, and go to state 922 -state 869 +state 903 - switch_label -> DEFAULT ':' . (rule 234) + switch_label -> DEFAULT ':' . (rule 243) - $default reduce using rule 234 (switch_label) + $default reduce using rule 243 (switch_label) -state 870 +state 904 - switch_block -> '{' switch_sections_opt '}' . (rule 225) + switch_block -> '{' switch_sections_opt '}' . (rule 234) - $default reduce using rule 225 (switch_block) + $default reduce using rule 234 (switch_block) -state 871 +state 905 - switch_sections -> switch_sections switch_section . (rule 229) + switch_sections -> switch_sections switch_section . (rule 238) - $default reduce using rule 229 (switch_sections) + $default reduce using rule 238 (switch_sections) -state 872 +state 906 - statement_list -> statement_list . statement (rule 194) - switch_section -> switch_labels statement_list . (rule 230) + statement_list -> statement_list . statement (rule 201) + switch_section -> switch_labels statement_list . (rule 239) - IDENTIFIER shift, and go to state 450 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 504 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONST shift, and go to state 453 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONST shift, and go to state 507 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - VOID shift, and go to state 288 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - $default reduce using rule 230 (switch_section) - - literal go to state 186 - boolean_literal go to state 187 - type_name go to state 94 - type go to state 471 - non_array_type go to state 96 - simple_type go to state 97 - primitive_type go to state 472 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 473 - pointer_type go to state 103 - array_type go to state 104 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - statement go to state 605 - embedded_statement go to state 483 - block go to state 484 - empty_statement go to state 487 - labeled_statement go to state 488 - declaration_statement go to state 489 - local_variable_declaration go to state 490 - local_constant_declaration go to state 491 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 515 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + VOID shift, and go to state 249 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + $default reduce using rule 239 (switch_section) + + literal go to state 180 + boolean_literal go to state 181 + type_name go to state 92 + qualified_identifier_opt_generic go to state 525 + type go to state 526 + non_array_type go to state 95 + simple_type go to state 96 + primitive_type go to state 527 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + pointer_type go to state 101 + array_type go to state 102 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + statement go to state 646 + embedded_statement go to state 537 + block go to state 538 + empty_statement go to state 541 + labeled_statement go to state 542 + declaration_statement go to state 543 + local_variable_declaration go to state 544 + local_constant_declaration go to state 545 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 569 qualifier go to state 10 -state 873 - - switch_labels -> switch_labels switch_label . (rule 232) - - $default reduce using rule 232 (switch_labels) - - - -state 874 - - catch_clause -> CATCH '(' type_name identifier_opt ')' . block (rule 276) - - '{' shift, and go to state 359 - - block go to state 891 - - - -state 875 - - catch_clause -> CATCH '(' class_type identifier_opt ')' . block (rule 275) - - '{' shift, and go to state 359 - - block go to state 892 +state 907 + switch_labels -> switch_labels switch_label . (rule 241) + $default reduce using rule 241 (switch_labels) -state 876 - interface_accessors -> attributes_opt GET interface_empty_body . (rule 487) - interface_accessors -> attributes_opt GET interface_empty_body . attributes_opt SET interface_empty_body (rule 489) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 487 (interface_accessors) - $default reduce using rule 295 (attributes_opt) +state 908 - attributes_opt go to state 893 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + catch_clause -> CATCH '(' type_name identifier_opt ')' . block (rule 284) + '{' shift, and go to state 446 + block go to state 923 -state 877 - interface_accessors -> attributes_opt SET interface_empty_body . (rule 488) - interface_accessors -> attributes_opt SET interface_empty_body . attributes_opt GET interface_empty_body (rule 490) - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - '}' reduce using rule 488 (interface_accessors) - $default reduce using rule 295 (attributes_opt) +state 909 - attributes_opt go to state 894 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + interface_accessors -> attributes_opt GET interface_empty_body attributes_opt . SET interface_empty_body (rule 509) + SET shift, and go to state 924 -state 878 - interface_property_declaration -> attributes_opt new_opt type IDENTIFIER ENTER_getset '{' interface_accessors '}' EXIT_getset . (rule 485) +state 910 - $default reduce using rule 485 (interface_property_declaration) + interface_accessors -> attributes_opt SET interface_empty_body attributes_opt . GET interface_empty_body (rule 510) + GET shift, and go to state 925 -state 879 - interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' . interface_accessors '}' EXIT_getset (rule 486) +state 911 - LEFT_BRACKET reduce using rule 531 (ENTER_attrib) - $default reduce using rule 295 (attributes_opt) + interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors . '}' EXIT_getset (rule 506) - attributes_opt go to state 804 - interface_accessors go to state 895 - attributes go to state 21 - attribute_sections go to state 22 - attribute_section go to state 23 - ENTER_attrib go to state 24 + '}' shift, and go to state 926 -state 880 +state 912 - constructor_initializer -> ':' BASE '(' argument_list_opt . ')' (rule 437) + constructor_initializer -> ':' BASE '(' argument_list_opt . ')' (rule 453) - ')' shift, and go to state 896 + ')' shift, and go to state 927 -state 881 +state 913 - constructor_initializer -> ':' THIS '(' argument_list_opt . ')' (rule 438) + constructor_initializer -> ':' THIS '(' argument_list_opt . ')' (rule 454) - ')' shift, and go to state 897 + ')' shift, and go to state 928 -state 882 +state 914 - add_accessor_declaration -> attributes_opt ADD EXIT_accessor_decl . block ENTER_accessor_decl (rule 398) + add_accessor_declaration -> attributes_opt ADD EXIT_accessor_decl . block ENTER_accessor_decl (rule 414) - '{' shift, and go to state 359 + '{' shift, and go to state 446 - block go to state 898 + block go to state 929 -state 883 +state 915 - remove_accessor_declaration -> attributes_opt REMOVE EXIT_accessor_decl . block ENTER_accessor_decl (rule 399) + remove_accessor_declaration -> attributes_opt REMOVE EXIT_accessor_decl . block ENTER_accessor_decl (rule 415) - '{' shift, and go to state 359 + '{' shift, and go to state 446 - block go to state 899 + block go to state 930 -state 884 +state 916 - event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl . (rule 395) + event_declaration -> attributes_opt modifiers_opt EVENT type qualified_identifier ENTER_accessor_decl '{' event_accessor_declarations '}' EXIT_accessor_decl . (rule 411) - $default reduce using rule 395 (event_declaration) + $default reduce using rule 411 (event_declaration) -state 885 +state 917 - pointer_type -> type . '*' (rule 36) - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type . IDENTIFIER ')' (rule 408) + pointer_type -> type . '*' (rule 41) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type . IDENTIFIER ')' (rule 424) - IDENTIFIER shift, and go to state 900 - '*' shift, and go to state 123 + IDENTIFIER shift, and go to state 931 + '*' shift, and go to state 119 -state 886 +state 918 - get_accessor_declaration -> attributes_opt GET EXIT_getset accessor_body ENTER_getset . (rule 390) + get_accessor_declaration -> attributes_opt GET EXIT_getset accessor_body ENTER_getset . (rule 406) - $default reduce using rule 390 (get_accessor_declaration) + $default reduce using rule 406 (get_accessor_declaration) -state 887 +state 919 - set_accessor_declaration -> attributes_opt SET EXIT_getset accessor_body ENTER_getset . (rule 391) + set_accessor_declaration -> attributes_opt SET EXIT_getset accessor_body ENTER_getset . (rule 407) - $default reduce using rule 391 (set_accessor_declaration) + $default reduce using rule 407 (set_accessor_declaration) -state 888 +state 920 - for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' . embedded_statement (rule 242) + for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' . embedded_statement (rule 251) - IDENTIFIER shift, and go to state 52 - INTEGER_LITERAL shift, and go to state 163 - REAL_LITERAL shift, and go to state 164 - CHARACTER_LITERAL shift, and go to state 165 - STRING_LITERAL shift, and go to state 166 - BASE shift, and go to state 167 + IDENTIFIER shift, and go to state 53 + INTEGER_LITERAL shift, and go to state 156 + REAL_LITERAL shift, and go to state 157 + CHARACTER_LITERAL shift, and go to state 158 + STRING_LITERAL shift, and go to state 159 + BASE shift, and go to state 160 BOOL shift, and go to state 78 - BREAK shift, and go to state 451 + BREAK shift, and go to state 505 BYTE shift, and go to state 79 CHAR shift, and go to state 80 - CHECKED shift, and go to state 452 - CONTINUE shift, and go to state 454 + CHECKED shift, and go to state 506 + CONTINUE shift, and go to state 508 DECIMAL shift, and go to state 81 - DO shift, and go to state 455 + DELEGATE shift, and go to state 162 + DO shift, and go to state 509 DOUBLE shift, and go to state 82 - FALSE shift, and go to state 169 - FIXED shift, and go to state 456 + FALSE shift, and go to state 163 + FIXED shift, and go to state 510 FLOAT shift, and go to state 83 - FOR shift, and go to state 457 - FOREACH shift, and go to state 458 - GOTO shift, and go to state 459 - IF shift, and go to state 460 + FOR shift, and go to state 511 + FOREACH shift, and go to state 512 + GOTO shift, and go to state 513 + IF shift, and go to state 514 INT shift, and go to state 84 - LOCK shift, and go to state 461 + LOCK shift, and go to state 515 LONG shift, and go to state 85 - NEW shift, and go to state 170 - NULL_LITERAL shift, and go to state 171 - OBJECT shift, and go to state 86 - RETURN shift, and go to state 462 - SBYTE shift, and go to state 87 - SHORT shift, and go to state 88 - SIZEOF shift, and go to state 172 - STRING shift, and go to state 89 - SWITCH shift, and go to state 463 - THIS shift, and go to state 173 - THROW shift, and go to state 464 - TRUE shift, and go to state 174 - TRY shift, and go to state 465 - TYPEOF shift, and go to state 175 - UINT shift, and go to state 90 - ULONG shift, and go to state 91 - UNCHECKED shift, and go to state 466 - UNSAFE shift, and go to state 467 - USHORT shift, and go to state 92 - USING shift, and go to state 468 - WHILE shift, and go to state 469 - PLUSPLUS shift, and go to state 177 - MINUSMINUS shift, and go to state 178 - '*' shift, and go to state 179 - '(' shift, and go to state 180 - '&' shift, and go to state 181 - '!' shift, and go to state 182 - '~' shift, and go to state 183 - '+' shift, and go to state 184 - '-' shift, and go to state 185 - '{' shift, and go to state 359 - ';' shift, and go to state 470 - - literal go to state 186 - boolean_literal go to state 187 - primitive_type go to state 188 - numeric_type go to state 99 - integral_type go to state 100 - floating_point_type go to state 101 - class_type go to state 189 - primary_expression go to state 190 - primary_expression_no_parenthesis go to state 191 - parenthesized_expression go to state 192 - member_access go to state 193 - invocation_expression go to state 474 - element_access go to state 195 - this_access go to state 198 - base_access go to state 199 - post_increment_expression go to state 475 - post_decrement_expression go to state 476 - new_expression go to state 202 - object_creation_expression go to state 477 - array_creation_expression go to state 204 - typeof_expression go to state 205 - checked_expression go to state 206 - unchecked_expression go to state 207 - pointer_member_access go to state 208 - addressof_expression go to state 209 - sizeof_expression go to state 210 - postfix_expression go to state 211 - unary_expression_not_plusminus go to state 212 - pre_increment_expression go to state 478 - pre_decrement_expression go to state 479 - unary_expression go to state 480 - cast_expression go to state 216 - assignment go to state 481 - embedded_statement go to state 901 - block go to state 484 - empty_statement go to state 487 - expression_statement go to state 492 - statement_expression go to state 493 - selection_statement go to state 494 - if_statement go to state 495 - switch_statement go to state 496 - iteration_statement go to state 497 - unsafe_statement go to state 498 - while_statement go to state 499 - do_statement go to state 500 - for_statement go to state 501 - foreach_statement go to state 502 - jump_statement go to state 503 - break_statement go to state 504 - continue_statement go to state 505 - goto_statement go to state 506 - return_statement go to state 507 - throw_statement go to state 508 - try_statement go to state 509 - checked_statement go to state 510 - unchecked_statement go to state 511 - lock_statement go to state 512 - using_statement go to state 513 - fixed_statement go to state 514 - qualified_identifier go to state 230 + NEW shift, and go to state 164 + NULL_LITERAL shift, and go to state 165 + RETURN shift, and go to state 516 + SBYTE shift, and go to state 86 + SHORT shift, and go to state 87 + SIZEOF shift, and go to state 166 + SWITCH shift, and go to state 517 + THIS shift, and go to state 167 + THROW shift, and go to state 518 + TRUE shift, and go to state 168 + TRY shift, and go to state 519 + TYPEOF shift, and go to state 169 + UINT shift, and go to state 88 + ULONG shift, and go to state 89 + UNCHECKED shift, and go to state 520 + UNSAFE shift, and go to state 521 + USHORT shift, and go to state 90 + USING shift, and go to state 522 + WHILE shift, and go to state 523 + PLUSPLUS shift, and go to state 171 + MINUSMINUS shift, and go to state 172 + '*' shift, and go to state 173 + '(' shift, and go to state 174 + '&' shift, and go to state 175 + '!' shift, and go to state 176 + '~' shift, and go to state 177 + '+' shift, and go to state 178 + '-' shift, and go to state 179 + '{' shift, and go to state 446 + ';' shift, and go to state 524 + + literal go to state 180 + boolean_literal go to state 181 + qualified_identifier_opt_generic go to state 182 + primitive_type go to state 183 + numeric_type go to state 98 + integral_type go to state 99 + floating_point_type go to state 100 + primary_expression go to state 184 + primary_expression_no_parenthesis go to state 185 + delegate_expression go to state 186 + parenthesized_expression go to state 187 + member_access go to state 188 + invocation_expression go to state 528 + element_access go to state 190 + this_access go to state 193 + base_access go to state 194 + post_increment_expression go to state 529 + post_decrement_expression go to state 530 + new_expression go to state 197 + object_creation_expression go to state 531 + array_creation_expression go to state 199 + typeof_expression go to state 200 + checked_expression go to state 201 + unchecked_expression go to state 202 + pointer_member_access go to state 203 + addressof_expression go to state 204 + sizeof_expression go to state 205 + postfix_expression go to state 206 + unary_expression_not_plusminus go to state 207 + pre_increment_expression go to state 532 + pre_decrement_expression go to state 533 + unary_expression go to state 534 + cast_expression go to state 211 + assignment go to state 535 + embedded_statement go to state 932 + block go to state 538 + empty_statement go to state 541 + expression_statement go to state 546 + statement_expression go to state 547 + selection_statement go to state 548 + if_statement go to state 549 + switch_statement go to state 550 + iteration_statement go to state 551 + unsafe_statement go to state 552 + while_statement go to state 553 + do_statement go to state 554 + for_statement go to state 555 + foreach_statement go to state 556 + jump_statement go to state 557 + break_statement go to state 558 + continue_statement go to state 559 + goto_statement go to state 560 + return_statement go to state 561 + throw_statement go to state 562 + try_statement go to state 563 + checked_statement go to state 564 + unchecked_statement go to state 565 + lock_statement go to state 566 + using_statement go to state 567 + fixed_statement go to state 568 + qualified_identifier go to state 225 qualifier go to state 10 -state 889 - - foreach_statement -> FOREACH '(' type IDENTIFIER IN expression ')' embedded_statement . (rule 255) - - $default reduce using rule 255 (foreach_statement) - - - -state 890 - - switch_label -> CASE constant_expression ':' . (rule 233) - - $default reduce using rule 233 (switch_label) - - - -state 891 - - catch_clause -> CATCH '(' type_name identifier_opt ')' block . (rule 276) - - $default reduce using rule 276 (catch_clause) - +state 921 + foreach_statement -> FOREACH '(' type IDENTIFIER IN expression ')' embedded_statement . (rule 264) -state 892 - - catch_clause -> CATCH '(' class_type identifier_opt ')' block . (rule 275) - - $default reduce using rule 275 (catch_clause) - - - -state 893 - - interface_accessors -> attributes_opt GET interface_empty_body attributes_opt . SET interface_empty_body (rule 489) + $default reduce using rule 264 (foreach_statement) - SET shift, and go to state 902 +state 922 -state 894 - - interface_accessors -> attributes_opt SET interface_empty_body attributes_opt . GET interface_empty_body (rule 490) + switch_label -> CASE constant_expression ':' . (rule 242) - GET shift, and go to state 903 + $default reduce using rule 242 (switch_label) -state 895 +state 923 - interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors . '}' EXIT_getset (rule 486) + catch_clause -> CATCH '(' type_name identifier_opt ')' block . (rule 284) - '}' shift, and go to state 904 + $default reduce using rule 284 (catch_clause) -state 896 +state 924 - constructor_initializer -> ':' BASE '(' argument_list_opt ')' . (rule 437) + interface_accessors -> attributes_opt GET interface_empty_body attributes_opt SET . interface_empty_body (rule 509) - $default reduce using rule 437 (constructor_initializer) + '{' shift, and go to state 744 + ';' shift, and go to state 745 + interface_empty_body go to state 933 -state 897 - constructor_initializer -> ':' THIS '(' argument_list_opt ')' . (rule 438) +state 925 - $default reduce using rule 438 (constructor_initializer) + interface_accessors -> attributes_opt SET interface_empty_body attributes_opt GET . interface_empty_body (rule 510) + '{' shift, and go to state 744 + ';' shift, and go to state 745 + interface_empty_body go to state 934 -state 898 - add_accessor_declaration -> attributes_opt ADD EXIT_accessor_decl block . ENTER_accessor_decl (rule 398) - $default reduce using rule 533 (ENTER_accessor_decl) +state 926 - ENTER_accessor_decl go to state 905 + interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' . EXIT_getset (rule 506) + $default reduce using rule 557 (EXIT_getset) + EXIT_getset go to state 935 -state 899 - remove_accessor_declaration -> attributes_opt REMOVE EXIT_accessor_decl block . ENTER_accessor_decl (rule 399) - $default reduce using rule 533 (ENTER_accessor_decl) +state 927 - ENTER_accessor_decl go to state 906 + constructor_initializer -> ':' BASE '(' argument_list_opt ')' . (rule 453) + $default reduce using rule 453 (constructor_initializer) -state 900 - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER . ')' (rule 408) +state 928 - ')' shift, and go to state 907 + constructor_initializer -> ':' THIS '(' argument_list_opt ')' . (rule 454) + $default reduce using rule 454 (constructor_initializer) -state 901 - for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement . (rule 242) +state 929 - $default reduce using rule 242 (for_statement) + add_accessor_declaration -> attributes_opt ADD EXIT_accessor_decl block . ENTER_accessor_decl (rule 414) + $default reduce using rule 554 (ENTER_accessor_decl) + ENTER_accessor_decl go to state 936 -state 902 - interface_accessors -> attributes_opt GET interface_empty_body attributes_opt SET . interface_empty_body (rule 489) - '{' shift, and go to state 749 - ';' shift, and go to state 750 +state 930 - interface_empty_body go to state 908 + remove_accessor_declaration -> attributes_opt REMOVE EXIT_accessor_decl block . ENTER_accessor_decl (rule 415) + $default reduce using rule 554 (ENTER_accessor_decl) + ENTER_accessor_decl go to state 937 -state 903 - interface_accessors -> attributes_opt SET interface_empty_body attributes_opt GET . interface_empty_body (rule 490) - '{' shift, and go to state 749 - ';' shift, and go to state 750 +state 931 - interface_empty_body go to state 909 + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER . ')' (rule 424) + ')' shift, and go to state 938 -state 904 - interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' . EXIT_getset (rule 486) +state 932 - $default reduce using rule 536 (EXIT_getset) + for_statement -> FOR '(' for_initializer_opt ';' for_condition_opt ';' for_iterator_opt ')' embedded_statement . (rule 251) - EXIT_getset go to state 910 + $default reduce using rule 251 (for_statement) -state 905 +state 933 - add_accessor_declaration -> attributes_opt ADD EXIT_accessor_decl block ENTER_accessor_decl . (rule 398) + interface_accessors -> attributes_opt GET interface_empty_body attributes_opt SET interface_empty_body . (rule 509) - $default reduce using rule 398 (add_accessor_declaration) + $default reduce using rule 509 (interface_accessors) -state 906 +state 934 - remove_accessor_declaration -> attributes_opt REMOVE EXIT_accessor_decl block ENTER_accessor_decl . (rule 399) + interface_accessors -> attributes_opt SET interface_empty_body attributes_opt GET interface_empty_body . (rule 510) - $default reduce using rule 399 (remove_accessor_declaration) + $default reduce using rule 510 (interface_accessors) -state 907 +state 935 - overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER ')' . (rule 408) + interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset . (rule 506) - $default reduce using rule 408 (overloadable_operator_declarator) + $default reduce using rule 506 (interface_indexer_declaration) -state 908 +state 936 - interface_accessors -> attributes_opt GET interface_empty_body attributes_opt SET interface_empty_body . (rule 489) + add_accessor_declaration -> attributes_opt ADD EXIT_accessor_decl block ENTER_accessor_decl . (rule 414) - $default reduce using rule 489 (interface_accessors) + $default reduce using rule 414 (add_accessor_declaration) -state 909 +state 937 - interface_accessors -> attributes_opt SET interface_empty_body attributes_opt GET interface_empty_body . (rule 490) + remove_accessor_declaration -> attributes_opt REMOVE EXIT_accessor_decl block ENTER_accessor_decl . (rule 415) - $default reduce using rule 490 (interface_accessors) + $default reduce using rule 415 (remove_accessor_declaration) -state 910 +state 938 - interface_indexer_declaration -> attributes_opt new_opt type THIS LEFT_BRACKET formal_parameter_list RIGHT_BRACKET ENTER_getset '{' interface_accessors '}' EXIT_getset . (rule 486) + overloadable_operator_declarator -> type OPERATOR overloadable_operator '(' type IDENTIFIER COMMA type IDENTIFIER ')' . (rule 424) - $default reduce using rule 486 (interface_indexer_declaration) + $default reduce using rule 424 (overloadable_operator_declarator) -state 911 +state 939 - $ go to state 912 + $ go to state 940 -state 912 +state 940 - $ go to state 913 + $ go to state 941 -state 913 +state 941 $default accept diff --git a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/lexParser.inc b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/lexParser.inc index 8986e5b..63d3ed4 100644 --- a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/lexParser.inc +++ b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/lexParser.inc @@ -289,59 +289,73 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 51 -#define YY_END_OF_BUFFER 52 -static yyconst short int yy_acclist[203] = +#define YY_NUM_RULES 71 +#define YY_END_OF_BUFFER 72 +static yyconst short int yy_acclist[264] = { 0, - 52, 50, 51, 2, 50, 51, 2, 51, 50, 51, - 50, 51, 50, 51, 50, 51, 50, 51, 50, 51, - 50, 51, 13, 50, 51, 50, 51, 50, 51, 50, - 51, 8, 50, 51, 8, 50, 51, 50, 51, 50, - 51, 12, 50, 51, 50, 51, 14, 50, 51, 15, - 50, 51, 50, 51, 48, 50, 51, 50, 51, 2, - 50, 51, 1, 50, 51, 4, 51, 5, 51, 4, - 51, 51, 48, 50, 51, 48, 50, 51, 48, 50, - 51, 48, 50, 51, 48, 50, 51, 48, 50, 51, - 48, 50, 51, 48, 50, 51, 48, 50, 51, 29, - - 11, 21, 32, 23, 19, 34, 17, 35, 18, 36, - 9, 3, 7, 20, 8, 9, 8, 8, 25, 30, - 28, 31, 49, 16, 22, 48, 24, 33, 1, 1, - 6, 48, 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 10, 9, 7, 9, 8, 8, 27, 26, - 11, 49, 48, 48, 48, 48, 48, 48, 48, 44, - 48, 48, 46, 48, 47, 48, 9, 8, 8, 48, - 48, 48, 48, 48, 48, 43, 48, 48, 8, 48, - 38, 48, 48, 48, 41, 48, 48, 48, 48, 39, - 48, 40, 48, 48, 45, 48, 48, 48, 37, 48, - - 42, 48 + 72, 70, 71, 2, 70, 71, 2, 71, 70, 71, + 70, 71, 70, 71, 70, 71, 70, 71, 70, 71, + 70, 71, 70, 71, 19, 70, 71, 70, 71, 70, + 71, 70, 71, 11, 70, 71, 11, 70, 71, 50, + 70, 71, 70, 71, 48, 70, 71, 70, 71, 21, + 70, 71, 23, 70, 71, 70, 71, 67, 70, 71, + 70, 71, 2, 70, 71, 1, 70, 71, 6, 71, + 7, 71, 6, 71, 71, 4, 71, 71, 71, 71, + 20, 71, 71, 71, 12, 71, 12, 71, 51, 71, + 49, 71, 71, 22, 71, 24, 71, 68, 71, 4, + + 71, 3, 71, 48, 70, 71, 67, 70, 71, 67, + 70, 71, 67, 70, 71, 67, 70, 71, 67, 70, + 71, 67, 70, 71, 67, 70, 71, 67, 70, 71, + 67, 70, 71, 40, 17, 52, 53, 31, 43, 33, + 29, 45, 27, 46, 28, 47, 13, 5, 9, 30, + 11, 13, 11, 11, 35, 41, 39, 42, 36, 69, + 25, 32, 67, 34, 44, 1, 1, 8, 18, 54, + 55, 14, 10, 12, 14, 12, 12, 26, 68, 3, + 3, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 67, 15, 13, 9, 13, 11, 11, 38, 37, + + 17, 69, 16, 14, 10, 14, 12, 12, 18, 67, + 67, 67, 67, 67, 67, 67, 63, 67, 67, 65, + 67, 66, 67, 13, 11, 11, 14, 12, 12, 67, + 67, 67, 67, 67, 67, 62, 67, 67, 11, 12, + 67, 57, 67, 67, 67, 60, 67, 67, 67, 67, + 58, 67, 59, 67, 67, 64, 67, 67, 67, 56, + 67, 61, 67 } ; -static yyconst short int yy_accept[193] = +static yyconst short int yy_accept[273] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 7, 9, 11, 13, 15, - 17, 19, 21, 23, 26, 28, 30, 32, 35, 38, - 40, 42, 45, 47, 50, 53, 55, 58, 60, 63, - 66, 68, 70, 72, 73, 76, 79, 82, 85, 88, - 91, 94, 97, 100, 101, 101, 102, 102, 103, 104, - 105, 105, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 115, 116, 117, 117, 118, 119, 119, - 120, 121, 122, 123, 123, 123, 124, 124, 124, 125, - 126, 127, 128, 129, 129, 130, 131, 132, 133, 134, - - 135, 136, 137, 138, 139, 140, 141, 142, 143, 143, - 143, 144, 144, 144, 145, 145, 146, 146, 147, 148, - 149, 150, 151, 151, 152, 153, 153, 154, 155, 156, - 157, 158, 159, 160, 162, 163, 165, 167, 167, 167, - 167, 167, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 178, 179, 179, 179, 179, 179, 180, 181, - 183, 184, 185, 187, 188, 189, 189, 189, 189, 189, - 190, 192, 194, 195, 197, 197, 197, 197, 197, 198, - 199, 199, 199, 201, 203, 203, 203, 203, 203, 203, - 203, 203 - + 17, 19, 21, 23, 25, 28, 30, 32, 34, 37, + 40, 43, 45, 48, 50, 53, 56, 58, 61, 63, + 66, 69, 71, 73, 75, 76, 78, 79, 80, 81, + 83, 84, 85, 87, 89, 91, 93, 94, 96, 98, + 100, 102, 104, 107, 110, 113, 116, 119, 122, 125, + 128, 131, 134, 135, 135, 136, 136, 137, 138, 139, + 140, 141, 141, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 151, 152, 153, 153, 154, 155, + + 155, 156, 157, 158, 159, 160, 160, 161, 161, 161, + 162, 163, 164, 165, 166, 166, 167, 168, 169, 169, + 170, 170, 171, 172, 172, 172, 173, 174, 174, 175, + 176, 176, 177, 178, 178, 178, 178, 178, 179, 180, + 180, 181, 182, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 193, 193, 194, 194, 194, + 195, 195, 196, 196, 197, 198, 199, 200, 201, 201, + 202, 203, 203, 203, 203, 204, 204, 204, 205, 205, + 206, 206, 207, 208, 209, 209, 210, 210, 211, 212, + 213, 214, 215, 216, 217, 219, 220, 222, 224, 224, + + 224, 224, 224, 224, 225, 226, 227, 227, 227, 227, + 227, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 238, 239, 239, 239, 239, 239, 240, 240, 240, + 240, 240, 241, 242, 244, 245, 246, 248, 249, 250, + 250, 250, 250, 250, 250, 250, 250, 250, 251, 253, + 255, 256, 258, 258, 258, 258, 258, 258, 258, 259, + 260, 260, 260, 262, 264, 264, 264, 264, 264, 264, + 264, 264 } ; static yyconst int yy_ec[256] = @@ -349,17 +363,17 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 5, 6, 7, 1, 8, 9, 10, 1, - 1, 11, 12, 13, 14, 15, 16, 17, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 1, 1, 19, - 20, 21, 1, 22, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, - 37, 43, 44, 45, 46, 47, 37, 48, 49, 37, - 23, 24, 25, 26, 27, 1, 28, 29, 30, 31, - - 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, - 41, 42, 37, 43, 44, 45, 46, 47, 37, 48, - 49, 37, 1, 50, 1, 1, 1, 1, 1, 1, + 1, 2, 5, 6, 7, 8, 9, 10, 11, 1, + 1, 12, 13, 14, 15, 16, 17, 18, 19, 19, + 19, 19, 19, 19, 19, 19, 19, 1, 1, 20, + 21, 22, 1, 23, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 38, 39, 40, 41, 42, 43, + 38, 44, 45, 46, 47, 48, 38, 49, 50, 38, + 24, 25, 26, 27, 28, 1, 29, 30, 31, 32, + + 33, 34, 35, 36, 37, 38, 38, 39, 40, 41, + 42, 43, 38, 44, 45, 46, 47, 48, 38, 49, + 50, 38, 1, 51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -376,219 +390,366 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[51] = +static yyconst int yy_meta[52] = { 0, - 1, 1, 2, 1, 1, 3, 1, 1, 1, 4, - 1, 1, 1, 1, 1, 1, 5, 6, 1, 1, - 1, 7, 1, 8, 1, 1, 9, 10, 10, 11, - 11, 11, 10, 9, 9, 9, 9, 9, 9, 12, - 9, 9, 12, 9, 12, 12, 12, 12, 9, 1 + 1, 1, 2, 1, 1, 3, 1, 1, 1, 1, + 4, 1, 1, 1, 1, 1, 1, 5, 6, 1, + 1, 1, 7, 1, 8, 1, 1, 9, 10, 10, + 11, 11, 11, 10, 9, 9, 9, 9, 9, 9, + 12, 9, 9, 12, 9, 12, 12, 12, 12, 9, + 1 } ; -static yyconst short int yy_base[222] = +static yyconst short int yy_base[319] = { 0, - 0, 49, 49, 50, 0, 0, 26, 55, 27, 56, - 30, 70, 293, 583, 583, 583, 272, 61, 271, 60, - 258, 261, 61, 583, 72, 58, 71, 100, 232, 59, - 259, 69, 272, 99, 583, 257, 0, 46, 103, 0, - 583, 583, 260, 583, 231, 238, 66, 78, 216, 233, - 231, 230, 229, 583, 89, 583, 63, 583, 583, 583, - 250, 74, 583, 583, 583, 583, 583, 583, 110, 583, - 0, 583, 108, 211, 583, 133, 212, 219, 0, 228, - 583, 583, 583, 227, 240, 0, 150, 153, 583, 583, - 0, 583, 583, 127, 0, 0, 583, 201, 212, 198, - - 211, 198, 199, 189, 199, 190, 183, 182, 0, 0, - 583, 0, 0, 583, 147, 0, 118, 150, 583, 70, - 583, 583, 220, 219, 0, 167, 192, 185, 179, 167, - 184, 168, 177, 0, 167, 0, 0, 0, 187, 0, - 197, 155, 167, 157, 164, 162, 168, 156, 158, 156, - 162, 0, 144, 0, 204, 0, 180, 583, 159, 0, - 156, 154, 0, 139, 147, 0, 221, 0, 167, 138, - 0, 0, 129, 0, 238, 113, 152, 150, 95, 81, - 255, 0, 0, 0, 272, 0, 289, 0, 134, 113, - 583, 322, 334, 346, 358, 368, 376, 388, 398, 408, - - 420, 428, 439, 447, 455, 462, 469, 476, 483, 490, - 498, 505, 512, 520, 527, 534, 542, 550, 557, 564, - 571 + 0, 50, 50, 51, 63, 53, 93, 138, 94, 119, + 97, 142, 444, 1156, 1156, 1156, 422, 112, 36, 419, + 107, 414, 417, 122, 1156, 109, 128, 108, 172, 388, + 130, 415, 131, 429, 154, 1156, 413, 0, 134, 152, + 0, 1156, 1156, 416, 1156, 1156, 164, 39, 407, 1156, + 143, 414, 206, 381, 1156, 1156, 416, 172, 1156, 0, + 164, 0, 161, 376, 383, 159, 150, 368, 385, 383, + 382, 381, 1156, 189, 1156, 150, 1156, 1156, 1156, 1156, + 1156, 400, 153, 1156, 1156, 1156, 1156, 1156, 1156, 197, + 1156, 0, 1156, 189, 361, 1156, 229, 362, 369, 0, + + 386, 1156, 1156, 1156, 385, 399, 0, 247, 254, 1156, + 1156, 0, 1156, 1156, 211, 0, 0, 1156, 203, 1156, + 185, 1156, 1156, 393, 186, 244, 0, 208, 354, 1156, + 251, 355, 362, 0, 387, 279, 283, 1156, 0, 234, + 0, 0, 371, 346, 356, 342, 355, 342, 343, 339, + 349, 340, 333, 332, 0, 0, 1156, 0, 0, 1156, + 276, 0, 241, 256, 1156, 126, 1156, 1156, 371, 370, + 0, 296, 0, 0, 1156, 0, 0, 1156, 288, 0, + 253, 293, 1156, 269, 369, 368, 315, 340, 333, 328, + 316, 333, 317, 326, 0, 316, 0, 0, 0, 336, + + 0, 345, 295, 305, 306, 311, 0, 365, 0, 338, + 302, 312, 301, 304, 300, 304, 293, 287, 264, 269, + 0, 244, 0, 394, 0, 268, 1156, 0, 423, 0, + 256, 1156, 235, 0, 222, 219, 0, 199, 190, 0, + 452, 0, 209, 0, 481, 0, 206, 171, 0, 0, + 157, 0, 510, 309, 185, 539, 322, 182, 119, 84, + 568, 597, 0, 0, 626, 655, 684, 713, 326, 332, + 1156, 747, 759, 771, 781, 789, 801, 813, 825, 833, + 845, 855, 865, 877, 885, 896, 904, 914, 924, 936, + 944, 955, 963, 970, 977, 984, 991, 998, 1005, 1012, + + 1019, 1026, 1034, 1041, 1048, 1056, 1063, 1070, 1078, 1085, + 1092, 1100, 1107, 1114, 1122, 1129, 1136, 1144 } ; -static yyconst short int yy_def[222] = +static yyconst short int yy_def[319] = { 0, - 191, 1, 192, 192, 193, 193, 1, 1, 1, 1, - 1, 1, 191, 191, 191, 191, 191, 194, 191, 191, - 195, 191, 191, 191, 191, 191, 191, 191, 28, 191, - 191, 191, 196, 191, 191, 191, 197, 191, 191, 198, - 191, 191, 191, 191, 197, 197, 197, 197, 197, 197, - 197, 197, 197, 191, 194, 191, 199, 191, 191, 191, - 191, 200, 191, 191, 191, 191, 191, 191, 191, 191, - 201, 191, 191, 28, 191, 191, 191, 191, 202, 191, - 191, 191, 191, 191, 203, 204, 191, 191, 191, 191, - 197, 191, 191, 191, 198, 198, 191, 197, 197, 197, - - 197, 197, 197, 197, 197, 197, 197, 197, 205, 206, - 191, 207, 208, 191, 191, 201, 191, 191, 191, 202, - 191, 191, 203, 191, 204, 191, 197, 197, 197, 197, - 197, 197, 197, 197, 197, 197, 197, 209, 194, 210, - 211, 191, 191, 191, 191, 197, 197, 197, 197, 197, - 197, 197, 197, 212, 139, 213, 214, 191, 197, 197, - 197, 197, 197, 197, 197, 215, 139, 216, 217, 197, - 197, 197, 197, 197, 139, 194, 218, 191, 197, 197, - 139, 219, 197, 197, 139, 220, 139, 221, 194, 191, - 0, 191, 191, 191, 191, 191, 191, 191, 191, 191, - - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191 + 271, 1, 272, 272, 271, 5, 1, 1, 1, 1, + 1, 1, 271, 271, 271, 271, 271, 273, 271, 271, + 271, 274, 271, 271, 271, 271, 271, 271, 271, 29, + 271, 271, 271, 275, 271, 271, 271, 276, 271, 271, + 277, 271, 271, 271, 271, 271, 278, 271, 279, 271, + 271, 271, 271, 53, 271, 271, 271, 271, 271, 280, + 271, 281, 271, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 271, 273, 271, 282, 271, 271, 271, 271, + 271, 271, 283, 271, 271, 271, 271, 271, 271, 271, + 271, 284, 271, 271, 29, 271, 271, 271, 271, 285, + + 271, 271, 271, 271, 271, 286, 287, 271, 271, 271, + 271, 276, 271, 271, 271, 277, 277, 271, 278, 271, + 288, 271, 271, 271, 289, 271, 290, 271, 53, 271, + 271, 271, 271, 291, 292, 271, 271, 271, 280, 271, + 281, 281, 271, 276, 276, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 293, 294, 271, 295, 296, 271, + 271, 284, 271, 271, 271, 285, 271, 271, 286, 271, + 287, 271, 297, 298, 271, 299, 300, 271, 271, 290, + 271, 271, 271, 291, 292, 271, 271, 276, 276, 276, + 276, 276, 276, 276, 276, 276, 276, 276, 301, 273, + + 302, 303, 271, 271, 271, 271, 304, 278, 305, 306, + 271, 271, 271, 271, 276, 276, 276, 276, 276, 276, + 276, 276, 307, 273, 308, 309, 271, 310, 278, 311, + 312, 271, 276, 276, 276, 276, 276, 276, 276, 313, + 273, 314, 315, 316, 278, 317, 318, 276, 276, 276, + 276, 276, 273, 273, 271, 278, 278, 271, 276, 276, + 273, 278, 276, 276, 273, 278, 273, 278, 273, 278, + 0, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271 } ; -static yyconst short int yy_nxt[634] = +static yyconst short int yy_nxt[1208] = { 0, 14, 15, 16, 15, 17, 18, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 14, 35, 36, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 37, 37, 37, 37, 37, 37, 37, 38, - 39, 42, 42, 45, 50, 40, 39, 39, 46, 43, - 43, 40, 40, 52, 47, 92, 56, 48, 59, 51, - 49, 39, 64, 53, 69, 69, 40, 80, 81, 60, - 65, 70, 45, 50, 57, 66, 71, 46, 83, 84, - 72, 67, 68, 47, 56, 93, 48, 100, 51, 49, - - 87, 87, 87, 52, 94, 102, 101, 144, 109, 95, - 110, 88, 57, 53, 73, 145, 74, 74, 56, 112, - 103, 113, 111, 89, 69, 69, 69, 69, 94, 184, - 75, 76, 75, 95, 118, 118, 57, 77, 75, 56, - 114, 115, 114, 183, 117, 78, 117, 79, 114, 118, - 118, 87, 87, 87, 126, 126, 126, 57, 142, 111, - 142, 111, 88, 143, 143, 88, 118, 118, 126, 126, - 126, 143, 143, 180, 89, 179, 111, 89, 174, 88, - 75, 173, 75, 143, 143, 172, 171, 170, 75, 111, - 165, 89, 56, 164, 163, 162, 161, 114, 160, 114, - - 159, 158, 158, 155, 155, 114, 111, 153, 152, 151, - 57, 150, 149, 148, 155, 155, 155, 155, 155, 155, - 167, 167, 147, 146, 123, 124, 137, 136, 135, 134, - 133, 167, 167, 167, 167, 167, 167, 176, 176, 132, - 131, 130, 129, 128, 127, 124, 122, 121, 176, 176, - 176, 176, 176, 176, 181, 181, 119, 119, 191, 111, - 108, 107, 106, 105, 104, 181, 181, 181, 181, 181, - 181, 185, 185, 99, 98, 97, 90, 85, 82, 191, - 63, 62, 185, 185, 185, 185, 185, 185, 187, 187, - 58, 54, 191, 191, 191, 191, 191, 191, 191, 187, - - 187, 187, 187, 187, 187, 189, 189, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 189, 189, 189, 189, - 189, 189, 41, 41, 41, 41, 41, 41, 41, 41, - 41, 41, 41, 41, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, 61, 61, - 61, 191, 61, 61, 61, 61, 61, 61, 61, 61, - 86, 191, 191, 191, 191, 191, 86, 86, 86, 86, - 91, 91, 91, 191, 91, 91, 91, 91, 96, 191, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - - 55, 55, 55, 191, 191, 55, 191, 55, 191, 55, - 61, 61, 61, 191, 191, 61, 191, 61, 191, 61, - 116, 191, 116, 116, 116, 116, 116, 116, 116, 116, - 116, 116, 120, 120, 191, 191, 191, 120, 120, 123, - 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, - 123, 125, 125, 125, 191, 125, 125, 125, 125, 138, - 138, 191, 191, 191, 138, 138, 139, 139, 191, 191, - 191, 139, 139, 140, 140, 191, 191, 191, 140, 140, - 141, 141, 191, 191, 191, 141, 141, 154, 154, 191, - 191, 191, 154, 154, 156, 156, 191, 191, 191, 156, - - 156, 157, 157, 157, 191, 191, 191, 157, 157, 166, - 166, 191, 191, 191, 166, 166, 168, 168, 191, 191, - 191, 168, 168, 169, 169, 169, 191, 191, 191, 169, - 169, 175, 175, 191, 191, 191, 175, 175, 177, 177, - 191, 191, 191, 177, 177, 178, 178, 178, 191, 191, - 191, 178, 178, 182, 182, 182, 191, 191, 191, 182, - 182, 186, 186, 191, 191, 191, 186, 186, 188, 188, - 191, 191, 191, 188, 188, 190, 190, 191, 191, 191, - 190, 190, 13, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191 + 32, 33, 34, 35, 14, 36, 37, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, + 39, 40, 43, 43, 61, 77, 41, 78, 122, 62, + 123, 44, 44, 45, 46, 46, 46, 45, 47, 45, + 48, 45, 45, 49, 45, 45, 50, 45, 51, 52, + 53, 54, 55, 45, 56, 57, 58, 45, 59, 45, + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + + 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 60, 60, 60, 45, 63, 63, 80, 75, 63, 91, + 40, 64, 69, 87, 92, 41, 65, 81, 93, 88, + 89, 71, 66, 264, 85, 67, 76, 70, 68, 40, + 63, 72, 86, 40, 41, 90, 90, 69, 41, 101, + 102, 104, 105, 115, 113, 108, 108, 108, 116, 63, + 126, 126, 70, 63, 205, 140, 64, 109, 263, 120, + 141, 65, 206, 136, 136, 136, 71, 66, 148, 110, + 67, 104, 143, 68, 114, 137, 72, 94, 121, 95, + 95, 146, 175, 149, 75, 157, 155, 138, 156, 158, + + 147, 159, 260, 96, 97, 96, 90, 90, 120, 259, + 98, 96, 115, 76, 90, 90, 175, 116, 99, 157, + 100, 128, 252, 129, 129, 126, 126, 121, 160, 161, + 160, 173, 176, 174, 177, 140, 160, 130, 131, 130, + 141, 163, 251, 163, 132, 130, 164, 164, 108, 108, + 108, 250, 133, 249, 134, 172, 172, 172, 164, 164, + 109, 126, 126, 181, 248, 181, 175, 109, 182, 182, + 182, 182, 110, 164, 164, 178, 179, 178, 157, 110, + 136, 136, 136, 178, 187, 187, 187, 96, 203, 96, + 203, 239, 137, 204, 204, 96, 137, 172, 172, 172, + + 211, 238, 211, 237, 138, 212, 212, 213, 138, 109, + 182, 182, 204, 204, 75, 214, 187, 187, 187, 212, + 212, 110, 204, 204, 130, 236, 130, 120, 137, 212, + 212, 75, 130, 76, 235, 234, 160, 120, 160, 233, + 138, 75, 232, 178, 160, 178, 121, 232, 175, 227, + 76, 178, 227, 224, 224, 157, 121, 222, 221, 220, + 76, 219, 218, 217, 224, 224, 224, 224, 224, 224, + 120, 216, 215, 185, 186, 169, 170, 198, 197, 196, + 195, 194, 229, 229, 193, 192, 191, 190, 189, 121, + 188, 168, 186, 229, 229, 229, 229, 229, 229, 75, + + 183, 183, 271, 175, 170, 168, 167, 165, 165, 271, + 157, 241, 241, 154, 153, 152, 151, 150, 76, 145, + 144, 135, 241, 241, 241, 241, 241, 241, 120, 271, + 127, 125, 118, 111, 106, 103, 271, 84, 83, 79, + 245, 245, 73, 271, 271, 271, 271, 121, 271, 271, + 271, 245, 245, 245, 245, 245, 245, 75, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 254, + 254, 271, 271, 271, 271, 271, 76, 271, 271, 271, + 254, 254, 254, 254, 254, 254, 120, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 257, 257, + + 271, 271, 271, 271, 271, 121, 271, 271, 271, 257, + 257, 257, 257, 257, 257, 75, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 261, 261, 271, + 271, 271, 271, 271, 76, 271, 271, 271, 261, 261, + 261, 261, 261, 261, 120, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 262, 262, 271, 271, + 271, 271, 271, 121, 271, 271, 271, 262, 262, 262, + 262, 262, 262, 75, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 265, 265, 271, 271, 271, + 271, 271, 76, 271, 271, 271, 265, 265, 265, 265, + + 265, 265, 120, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 266, 266, 271, 271, 271, 271, + 271, 121, 271, 271, 271, 266, 266, 266, 266, 266, + 266, 75, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 267, 267, 271, 271, 271, 271, 271, + 76, 271, 271, 271, 267, 267, 267, 267, 267, 267, + 120, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 268, 268, 271, 271, 271, 271, 271, 121, + 271, 271, 271, 268, 268, 268, 268, 268, 268, 75, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + + 271, 269, 269, 271, 271, 271, 271, 271, 76, 271, + 271, 271, 269, 269, 269, 269, 269, 269, 120, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 270, 270, 271, 271, 271, 271, 271, 121, 271, 271, + 271, 270, 270, 270, 270, 270, 270, 42, 42, 42, + 42, 42, 42, 42, 42, 42, 42, 42, 42, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 82, 82, 82, 271, 82, 82, 82, 82, 82, + 82, 82, 82, 107, 271, 271, 271, 271, 271, 107, + 107, 107, 107, 112, 112, 112, 271, 112, 112, 112, + + 112, 117, 271, 117, 117, 117, 117, 117, 117, 117, + 117, 117, 117, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 124, 124, 124, 271, 124, + 124, 124, 124, 124, 124, 124, 124, 139, 139, 139, + 271, 139, 139, 139, 139, 142, 271, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 74, 74, 74, + 271, 271, 74, 271, 74, 271, 74, 82, 82, 82, + 271, 271, 82, 271, 82, 271, 82, 162, 271, 162, + 162, 162, 162, 162, 162, 162, 162, 162, 162, 166, + 166, 271, 271, 271, 166, 166, 169, 169, 169, 169, + + 169, 169, 169, 169, 169, 169, 169, 169, 171, 171, + 171, 271, 171, 171, 171, 171, 119, 119, 119, 271, + 271, 119, 271, 119, 271, 119, 124, 124, 124, 271, + 271, 124, 271, 124, 271, 124, 180, 271, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 184, 184, + 271, 271, 271, 184, 184, 185, 185, 185, 185, 185, + 185, 185, 185, 185, 185, 185, 185, 199, 199, 271, + 271, 271, 199, 199, 200, 200, 271, 271, 271, 200, + 200, 201, 201, 271, 271, 271, 201, 201, 202, 202, + 271, 271, 271, 202, 202, 207, 207, 271, 271, 271, + + 207, 207, 208, 208, 271, 271, 271, 208, 208, 209, + 209, 271, 271, 271, 209, 209, 210, 210, 271, 271, + 271, 210, 210, 223, 223, 271, 271, 271, 223, 223, + 225, 225, 271, 271, 271, 225, 225, 226, 226, 226, + 271, 271, 271, 226, 226, 228, 228, 271, 271, 271, + 228, 228, 230, 230, 271, 271, 271, 230, 230, 231, + 231, 231, 271, 271, 271, 231, 231, 240, 240, 271, + 271, 271, 240, 240, 242, 242, 271, 271, 271, 242, + 242, 243, 243, 243, 271, 271, 271, 243, 243, 244, + 244, 271, 271, 271, 244, 244, 246, 246, 271, 271, + + 271, 246, 246, 247, 247, 247, 271, 271, 271, 247, + 247, 253, 253, 271, 271, 271, 253, 253, 82, 82, + 271, 271, 271, 82, 82, 255, 255, 255, 271, 271, + 271, 255, 255, 256, 256, 271, 271, 271, 256, 256, + 124, 124, 271, 271, 271, 124, 124, 258, 258, 258, + 271, 271, 271, 258, 258, 13, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + + 271, 271, 271, 271, 271, 271, 271 } ; -static yyconst short int yy_chk[634] = +static yyconst short int yy_chk[1208] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 3, 4, 7, 9, 2, 8, 10, 7, 3, - 4, 8, 10, 11, 7, 38, 18, 7, 20, 9, - 7, 12, 23, 11, 26, 26, 12, 30, 30, 20, - 23, 27, 8, 10, 18, 25, 27, 8, 32, 32, - 27, 25, 25, 8, 55, 38, 8, 47, 10, 8, - - 34, 34, 34, 12, 39, 48, 47, 120, 57, 39, - 57, 34, 55, 12, 28, 120, 28, 28, 176, 62, - 48, 62, 190, 34, 73, 73, 69, 69, 94, 180, - 28, 28, 28, 94, 117, 117, 176, 28, 28, 189, - 69, 69, 69, 179, 76, 28, 76, 28, 69, 76, - 76, 87, 87, 87, 88, 88, 88, 189, 115, 178, - 115, 177, 87, 115, 115, 88, 118, 118, 126, 126, - 126, 142, 142, 173, 87, 170, 169, 88, 165, 126, - 118, 164, 118, 143, 143, 162, 161, 159, 118, 157, - 153, 126, 139, 151, 150, 149, 148, 143, 147, 143, - - 146, 145, 144, 139, 139, 143, 141, 135, 133, 132, - 139, 131, 130, 129, 139, 139, 139, 139, 139, 139, - 155, 155, 128, 127, 124, 123, 108, 107, 106, 105, - 104, 155, 155, 155, 155, 155, 155, 167, 167, 103, - 102, 101, 100, 99, 98, 85, 84, 80, 167, 167, - 167, 167, 167, 167, 175, 175, 78, 77, 74, 61, - 53, 52, 51, 50, 49, 175, 175, 175, 175, 175, - 175, 181, 181, 46, 45, 43, 36, 33, 31, 29, - 22, 21, 181, 181, 181, 181, 181, 181, 185, 185, - 19, 17, 13, 0, 0, 0, 0, 0, 0, 185, - - 185, 185, 185, 185, 185, 187, 187, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 187, 187, 187, - 187, 187, 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 193, 193, 193, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 195, 195, - 195, 0, 195, 195, 195, 195, 195, 195, 195, 195, - 196, 0, 0, 0, 0, 0, 196, 196, 196, 196, - 197, 197, 197, 0, 197, 197, 197, 197, 198, 0, - 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, - - 199, 199, 199, 0, 0, 199, 0, 199, 0, 199, - 200, 200, 200, 0, 0, 200, 0, 200, 0, 200, - 201, 0, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 202, 202, 0, 0, 0, 202, 202, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 204, 204, 204, 0, 204, 204, 204, 204, 205, - 205, 0, 0, 0, 205, 205, 206, 206, 0, 0, - 0, 206, 206, 207, 207, 0, 0, 0, 207, 207, - 208, 208, 0, 0, 0, 208, 208, 209, 209, 0, - 0, 0, 209, 209, 210, 210, 0, 0, 0, 210, - - 210, 211, 211, 211, 0, 0, 0, 211, 211, 212, - 212, 0, 0, 0, 212, 212, 213, 213, 0, 0, - 0, 213, 213, 214, 214, 214, 0, 0, 0, 214, - 214, 215, 215, 0, 0, 0, 215, 215, 216, 216, - 0, 0, 0, 216, 216, 217, 217, 217, 0, 0, - 0, 217, 217, 218, 218, 218, 0, 0, 0, 218, - 218, 219, 219, 0, 0, 0, 219, 219, 220, 220, - 0, 0, 0, 220, 220, 221, 221, 0, 0, 0, - 221, 221, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191 + 1, 2, 3, 4, 6, 19, 2, 19, 48, 6, + 48, 3, 4, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 7, 9, 21, 18, 11, 28, + 10, 7, 9, 26, 28, 10, 7, 21, 28, 26, + 26, 11, 7, 260, 24, 7, 18, 9, 7, 8, + 10, 11, 24, 12, 8, 27, 27, 10, 12, 31, + 31, 33, 33, 40, 39, 35, 35, 35, 40, 8, + 51, 51, 10, 12, 166, 61, 8, 35, 259, 47, + 61, 8, 166, 58, 58, 58, 12, 8, 67, 35, + 8, 63, 63, 8, 39, 58, 12, 29, 47, 29, + 29, 66, 258, 67, 74, 255, 76, 58, 76, 83, + + 66, 83, 251, 29, 29, 29, 94, 94, 119, 248, + 29, 29, 115, 74, 90, 90, 247, 115, 29, 243, + 29, 53, 239, 53, 53, 128, 128, 119, 90, 90, + 90, 121, 125, 121, 125, 140, 90, 53, 53, 53, + 140, 97, 238, 97, 53, 53, 97, 97, 108, 108, + 108, 236, 53, 235, 53, 109, 109, 109, 163, 163, + 108, 126, 126, 131, 233, 131, 231, 109, 131, 131, + 181, 181, 108, 164, 164, 126, 126, 126, 226, 109, + 136, 136, 136, 126, 137, 137, 137, 164, 161, 164, + 161, 222, 136, 161, 161, 164, 137, 172, 172, 172, + + 179, 220, 179, 219, 136, 179, 179, 184, 137, 172, + 182, 182, 203, 203, 254, 184, 187, 187, 187, 211, + 211, 172, 204, 204, 182, 218, 182, 257, 187, 212, + 212, 269, 182, 254, 217, 216, 204, 270, 204, 215, + 187, 200, 214, 212, 204, 212, 257, 213, 210, 206, + 269, 212, 205, 200, 200, 202, 270, 196, 194, 193, + 200, 192, 191, 190, 200, 200, 200, 200, 200, 200, + 208, 189, 188, 186, 185, 170, 169, 154, 153, 152, + 151, 150, 208, 208, 149, 148, 147, 146, 145, 208, + 144, 143, 135, 208, 208, 208, 208, 208, 208, 224, + + 133, 132, 129, 124, 106, 105, 101, 99, 98, 95, + 82, 224, 224, 72, 71, 70, 69, 68, 224, 65, + 64, 57, 224, 224, 224, 224, 224, 224, 229, 54, + 52, 49, 44, 37, 34, 32, 30, 23, 22, 20, + 229, 229, 17, 13, 0, 0, 0, 229, 0, 0, + 0, 229, 229, 229, 229, 229, 229, 241, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 241, + 241, 0, 0, 0, 0, 0, 241, 0, 0, 0, + 241, 241, 241, 241, 241, 241, 245, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 245, 245, + + 0, 0, 0, 0, 0, 245, 0, 0, 0, 245, + 245, 245, 245, 245, 245, 253, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 253, 253, 0, + 0, 0, 0, 0, 253, 0, 0, 0, 253, 253, + 253, 253, 253, 253, 256, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 256, 256, 0, 0, + 0, 0, 0, 256, 0, 0, 0, 256, 256, 256, + 256, 256, 256, 261, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 261, 261, 0, 0, 0, + 0, 0, 261, 0, 0, 0, 261, 261, 261, 261, + + 261, 261, 262, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 262, 262, 0, 0, 0, 0, + 0, 262, 0, 0, 0, 262, 262, 262, 262, 262, + 262, 265, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 265, 265, 0, 0, 0, 0, 0, + 265, 0, 0, 0, 265, 265, 265, 265, 265, 265, + 266, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 266, 266, 0, 0, 0, 0, 0, 266, + 0, 0, 0, 266, 266, 266, 266, 266, 266, 267, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 267, 267, 0, 0, 0, 0, 0, 267, 0, + 0, 0, 267, 267, 267, 267, 267, 267, 268, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 268, 268, 0, 0, 0, 0, 0, 268, 0, 0, + 0, 268, 268, 268, 268, 268, 268, 272, 272, 272, + 272, 272, 272, 272, 272, 272, 272, 272, 272, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 274, 274, 274, 0, 274, 274, 274, 274, 274, + 274, 274, 274, 275, 0, 0, 0, 0, 0, 275, + 275, 275, 275, 276, 276, 276, 0, 276, 276, 276, + + 276, 277, 0, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 278, 278, 278, 278, 278, 278, 278, + 278, 278, 278, 278, 278, 279, 279, 279, 0, 279, + 279, 279, 279, 279, 279, 279, 279, 280, 280, 280, + 0, 280, 280, 280, 280, 281, 0, 281, 281, 281, + 281, 281, 281, 281, 281, 281, 281, 282, 282, 282, + 0, 0, 282, 0, 282, 0, 282, 283, 283, 283, + 0, 0, 283, 0, 283, 0, 283, 284, 0, 284, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 285, + 285, 0, 0, 0, 285, 285, 286, 286, 286, 286, + + 286, 286, 286, 286, 286, 286, 286, 286, 287, 287, + 287, 0, 287, 287, 287, 287, 288, 288, 288, 0, + 0, 288, 0, 288, 0, 288, 289, 289, 289, 0, + 0, 289, 0, 289, 0, 289, 290, 0, 290, 290, + 290, 290, 290, 290, 290, 290, 290, 290, 291, 291, + 0, 0, 0, 291, 291, 292, 292, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 293, 293, 0, + 0, 0, 293, 293, 294, 294, 0, 0, 0, 294, + 294, 295, 295, 0, 0, 0, 295, 295, 296, 296, + 0, 0, 0, 296, 296, 297, 297, 0, 0, 0, + + 297, 297, 298, 298, 0, 0, 0, 298, 298, 299, + 299, 0, 0, 0, 299, 299, 300, 300, 0, 0, + 0, 300, 300, 301, 301, 0, 0, 0, 301, 301, + 302, 302, 0, 0, 0, 302, 302, 303, 303, 303, + 0, 0, 0, 303, 303, 304, 304, 0, 0, 0, + 304, 304, 305, 305, 0, 0, 0, 305, 305, 306, + 306, 306, 0, 0, 0, 306, 306, 307, 307, 0, + 0, 0, 307, 307, 308, 308, 0, 0, 0, 308, + 308, 309, 309, 309, 0, 0, 0, 309, 309, 310, + 310, 0, 0, 0, 310, 310, 311, 311, 0, 0, + + 0, 311, 311, 312, 312, 312, 0, 0, 0, 312, + 312, 313, 313, 0, 0, 0, 313, 313, 314, 314, + 0, 0, 0, 314, 314, 315, 315, 315, 0, 0, + 0, 315, 315, 316, 316, 0, 0, 0, 316, 316, + 317, 317, 0, 0, 0, 317, 317, 318, 318, 318, + 0, 0, 0, 318, 318, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, + + 271, 271, 271, 271, 271, 271, 271 } ; static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; @@ -655,7 +816,7 @@ char *yytext; #define IN_ACCESSOR 4 #define IN_GETSET 5 -#line 659 "lexParser.inc" +#line 820 "lexParser.inc" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -808,7 +969,7 @@ YY_DECL #line 102 "csharp.l" -#line 812 "lexParser.inc" +#line 973 "lexParser.inc" if ( yy_init ) { @@ -857,14 +1018,14 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 192 ) + if ( yy_current_state >= 272 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *yy_state_ptr++ = yy_current_state; ++yy_cp; } - while ( yy_base[yy_current_state] != 583 ); + while ( yy_base[yy_current_state] != 1156 ); yy_find_action: yy_current_state = *--yy_state_ptr; @@ -912,256 +1073,356 @@ YY_RULE_SETUP YY_BREAK case 3: YY_RULE_SETUP -#line 107 "csharp.l" -{ yy_push_state(IN_COMMENT); } +#line 106 "csharp.l" +{ ; /* ignore */ } YY_BREAK case 4: YY_RULE_SETUP -#line 108 "csharp.l" +#line 107 "csharp.l" { ; /* ignore */ } YY_BREAK case 5: YY_RULE_SETUP #line 109 "csharp.l" -{ ; /* ignore */ } +{ yy_push_state(IN_COMMENT); } YY_BREAK case 6: YY_RULE_SETUP #line 110 "csharp.l" -{ yy_pop_state();} +{ ; /* ignore */ } YY_BREAK case 7: YY_RULE_SETUP -#line 112 "csharp.l" +#line 111 "csharp.l" { ; /* ignore */ } YY_BREAK -/* yytext yylval.xxx */ case 8: YY_RULE_SETUP -#line 115 "csharp.l" -{ yylval.value = getValueInt(yytext); return INTEGER_LITERAL; } +#line 112 "csharp.l" +{ yy_pop_state();} YY_BREAK case 9: YY_RULE_SETUP -#line 116 "csharp.l" -{ yylval.value = getValueReal(yytext); return REAL_LITERAL; } +#line 114 "csharp.l" +{ ; /* ignore */ } YY_BREAK case 10: YY_RULE_SETUP -#line 117 "csharp.l" -{ yylval.value = getValueChar(yytext); return CHARACTER_LITERAL; } +#line 115 "csharp.l" +{ ; /* ignore */ } YY_BREAK +/* yytext yylval.xxx */ case 11: YY_RULE_SETUP #line 118 "csharp.l" -{ yylval.value = getValueString(yytext); return STRING_LITERAL; } +{ yylval.value = getValueInt(yytext); return INTEGER_LITERAL; } YY_BREAK case 12: YY_RULE_SETUP -#line 120 "csharp.l" -{ return GT; } +#line 119 "csharp.l" +{ yylval.value = getValueInt(yytext); return INTEGER_LITERAL; } YY_BREAK case 13: YY_RULE_SETUP -#line 121 "csharp.l" -{ return COMMA; } +#line 120 "csharp.l" +{ yylval.value = getValueReal(yytext); return REAL_LITERAL; } YY_BREAK case 14: YY_RULE_SETUP -#line 122 "csharp.l" -{ return LEFT_BRACKET; } +#line 121 "csharp.l" +{ yylval.value = getValueReal(yytext); return REAL_LITERAL; } YY_BREAK case 15: YY_RULE_SETUP -#line 123 "csharp.l" -{ return RIGHT_BRACKET; } +#line 122 "csharp.l" +{ yylval.value = getValueChar(yytext); return CHARACTER_LITERAL; } YY_BREAK case 16: YY_RULE_SETUP -#line 125 "csharp.l" -{ yylval.tmpValue = getRank(yytext); printf("Rank : %s\n",yytext);return RANK_SPECIFIER; } +#line 123 "csharp.l" +{ yylval.value = getValueChar(yytext); return CHARACTER_LITERAL; } YY_BREAK -/*** Multi-Character Operators ***/ case 17: YY_RULE_SETUP -#line 128 "csharp.l" -{ return PLUSEQ; } +#line 124 "csharp.l" +{ yylval.value = getValueString(yytext); return STRING_LITERAL; } YY_BREAK case 18: YY_RULE_SETUP -#line 129 "csharp.l" -{ return MINUSEQ; } +#line 125 "csharp.l" +{ yylval.value = getValueString(yytext); return STRING_LITERAL; } YY_BREAK case 19: YY_RULE_SETUP -#line 130 "csharp.l" -{ return STAREQ; } +#line 127 "csharp.l" +{ return COMMA; } YY_BREAK case 20: YY_RULE_SETUP -#line 131 "csharp.l" -{ return DIVEQ; } +#line 128 "csharp.l" +{ return COMMA; } YY_BREAK case 21: YY_RULE_SETUP -#line 132 "csharp.l" -{ return MODEQ; } +#line 129 "csharp.l" +{ return LEFT_BRACKET; } YY_BREAK case 22: YY_RULE_SETUP -#line 133 "csharp.l" -{ return XOREQ; } +#line 130 "csharp.l" +{ return LEFT_BRACKET; } YY_BREAK case 23: YY_RULE_SETUP -#line 134 "csharp.l" -{ return ANDEQ; } +#line 131 "csharp.l" +{ return RIGHT_BRACKET; } YY_BREAK case 24: YY_RULE_SETUP -#line 135 "csharp.l" -{ return OREQ; } +#line 132 "csharp.l" +{ return RIGHT_BRACKET; } YY_BREAK case 25: YY_RULE_SETUP -#line 136 "csharp.l" -{ return LTLT; } +#line 134 "csharp.l" +{ yylval.tmpValue = getRank(yytext); /*printf("Rank : %s\n",yytext);*/ return RANK_SPECIFIER; } YY_BREAK case 26: YY_RULE_SETUP -#line 137 "csharp.l" -{ return GTGTEQ; } +#line 135 "csharp.l" +{ yylval.tmpValue = getRank(yytext); /*printf("Rank : %s\n",yytext);*/ return RANK_SPECIFIER; } YY_BREAK +/*** Multi-Character Operators ***/ case 27: YY_RULE_SETUP #line 138 "csharp.l" -{ return LTLTEQ; } +{ return PLUSEQ; } YY_BREAK case 28: YY_RULE_SETUP #line 139 "csharp.l" -{ return EQEQ; } +{ return MINUSEQ; } YY_BREAK case 29: YY_RULE_SETUP #line 140 "csharp.l" -{ return NOTEQ; } +{ return STAREQ; } YY_BREAK case 30: YY_RULE_SETUP #line 141 "csharp.l" -{ return LEQ; } +{ return DIVEQ; } YY_BREAK case 31: YY_RULE_SETUP #line 142 "csharp.l" -{ return GEQ; } +{ return MODEQ; } YY_BREAK case 32: YY_RULE_SETUP #line 143 "csharp.l" -{ return ANDAND; } +{ return XOREQ; } YY_BREAK case 33: YY_RULE_SETUP #line 144 "csharp.l" -{ return OROR; } +{ return ANDEQ; } YY_BREAK case 34: YY_RULE_SETUP #line 145 "csharp.l" -{ return PLUSPLUS; } +{ return OREQ; } YY_BREAK case 35: YY_RULE_SETUP #line 146 "csharp.l" -{ return MINUSMINUS; } +{ return LTLT; } YY_BREAK case 36: YY_RULE_SETUP #line 147 "csharp.l" -{ return ARROW; } +{ return GTGT; } /* Trick for >> handling in generic */ YY_BREAK -/*** Those context-sensitive "keywords" ***/ case 37: YY_RULE_SETUP -#line 152 "csharp.l" -{ return ASSEMBLY; } +#line 148 "csharp.l" +{ return GTGTEQ; } YY_BREAK case 38: YY_RULE_SETUP -#line 153 "csharp.l" -{ return FIELD; } +#line 149 "csharp.l" +{ return LTLTEQ; } YY_BREAK case 39: YY_RULE_SETUP -#line 154 "csharp.l" -{ return METHOD; } +#line 150 "csharp.l" +{ return EQEQ; } YY_BREAK case 40: YY_RULE_SETUP -#line 155 "csharp.l" -{ return MODULE; } +#line 151 "csharp.l" +{ return NOTEQ; } YY_BREAK case 41: YY_RULE_SETUP -#line 156 "csharp.l" -{ return PARAM; } +#line 152 "csharp.l" +{ return LEQ; } YY_BREAK case 42: YY_RULE_SETUP -#line 157 "csharp.l" -{ return PROPERTY; } +#line 153 "csharp.l" +{ return GEQ; } YY_BREAK case 43: YY_RULE_SETUP -#line 158 "csharp.l" -{ return TYPE; } +#line 154 "csharp.l" +{ return ANDAND; } YY_BREAK case 44: YY_RULE_SETUP -#line 160 "csharp.l" -{ return ADD; } +#line 155 "csharp.l" +{ return OROR; } YY_BREAK case 45: YY_RULE_SETUP -#line 161 "csharp.l" -{ return REMOVE; } +#line 156 "csharp.l" +{ return PLUSPLUS; } YY_BREAK case 46: YY_RULE_SETUP -#line 163 "csharp.l" -{ return GET; } +#line 157 "csharp.l" +{ return MINUSMINUS; } YY_BREAK case 47: YY_RULE_SETUP -#line 164 "csharp.l" -{ return SET; } +#line 158 "csharp.l" +{ return ARROW; } YY_BREAK case 48: YY_RULE_SETUP -#line 166 "csharp.l" -{ return token_for(yytext); } +#line 159 "csharp.l" +{ return GT; } YY_BREAK case 49: YY_RULE_SETUP -#line 167 "csharp.l" -{ yylval.text = strdup(yytext); return IDENTIFIER; } +#line 160 "csharp.l" +{ return GT; } YY_BREAK case 50: YY_RULE_SETUP +#line 161 "csharp.l" +{ return LT; } + YY_BREAK +case 51: +YY_RULE_SETUP +#line 162 "csharp.l" +{ return LT; } + YY_BREAK +case 52: +YY_RULE_SETUP +#line 163 "csharp.l" +{ return GEN_LT; } + YY_BREAK +case 53: +YY_RULE_SETUP +#line 164 "csharp.l" +{ return GEN_GT; } + YY_BREAK +case 54: +YY_RULE_SETUP +#line 165 "csharp.l" +{ return GEN_LT; } + YY_BREAK +case 55: +YY_RULE_SETUP +#line 166 "csharp.l" +{ return GEN_GT; } + YY_BREAK +/*** Those context-sensitive "keywords" ***/ +case 56: +YY_RULE_SETUP #line 170 "csharp.l" +{ return ASSEMBLY; } + YY_BREAK +case 57: +YY_RULE_SETUP +#line 171 "csharp.l" +{ return FIELD; } + YY_BREAK +case 58: +YY_RULE_SETUP +#line 172 "csharp.l" +{ return METHOD; } + YY_BREAK +case 59: +YY_RULE_SETUP +#line 173 "csharp.l" +{ return MODULE; } + YY_BREAK +case 60: +YY_RULE_SETUP +#line 174 "csharp.l" +{ return PARAM; } + YY_BREAK +case 61: +YY_RULE_SETUP +#line 175 "csharp.l" +{ return PROPERTY; } + YY_BREAK +case 62: +YY_RULE_SETUP +#line 176 "csharp.l" +{ return TYPE; } + YY_BREAK +case 63: +YY_RULE_SETUP +#line 178 "csharp.l" +{ return ADD; } + YY_BREAK +case 64: +YY_RULE_SETUP +#line 179 "csharp.l" +{ return REMOVE; } + YY_BREAK +case 65: +YY_RULE_SETUP +#line 181 "csharp.l" +{ return GET; } + YY_BREAK +case 66: +YY_RULE_SETUP +#line 182 "csharp.l" +{ return SET; } + YY_BREAK +case 67: +YY_RULE_SETUP +#line 184 "csharp.l" +{ return token_for(yytext); } + YY_BREAK +case 68: +YY_RULE_SETUP +#line 185 "csharp.l" +{ return token_for(yytext); } + YY_BREAK +case 69: +YY_RULE_SETUP +#line 187 "csharp.l" +{ yylval.text = concat(yytext); return IDENTIFIER; } + YY_BREAK +case 70: +YY_RULE_SETUP +#line 190 "csharp.l" { if (is_allowed_char(yytext[0])) return yytext[0]; else lexical_error("invalid token"); } YY_BREAK -case 51: +case 71: YY_RULE_SETUP -#line 174 "csharp.l" +#line 194 "csharp.l" ECHO; YY_BREAK -#line 1165 "lexParser.inc" +#line 1426 "lexParser.inc" case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(IN_COMMENT): case YY_STATE_EOF(IN_GENERIC): @@ -1453,7 +1714,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 192 ) + if ( yy_current_state >= 272 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1483,12 +1744,12 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 192 ) + if ( yy_current_state >= 272 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *yy_state_ptr++ = yy_current_state; - yy_is_jam = (yy_current_state == 191); + yy_is_jam = (yy_current_state == 271); return yy_is_jam ? 0 : yy_current_state; } @@ -2025,7 +2286,7 @@ int main() return 0; } #endif -#line 174 "csharp.l" +#line 194 "csharp.l" @@ -2082,6 +2343,7 @@ static struct name_value keywords [] = { {"out", OUT}, {"override", OVERRIDE}, {"params", PARAMS}, + {"partial", PARTIAL}, {"private", PRIVATE}, {"protected", PROTECTED}, {"public", PUBLIC}, @@ -2111,26 +2373,327 @@ static struct name_value keywords [] = { {"virtual", VIRTUAL}, {"void", VOID}, {"volatile", VOLATILE}, - {"while", WHILE}, + {"while", WHILE} +/* This list must remain sorted!!! */ }; +int checkCppWord(const char* id) { + switch (id[0]) { + case 'a': + if (id[1] == 'l') { + if (strcmp("alignas", id) ==0) { return 0; } + if (strcmp("alignof", id) == 0) { return 0; } + } else + if (id[1] == 'n') { + if (strcmp("and", id) ==0) { return 0; } + if (strcmp("and_eq", id) == 0) { return 0; } + } else + { + if (strcmp("asm", id) ==0) { return 0; } + if (strcmp("auto", id) == 0) { return 0; } + } + break; + case 'b': + if (id[1] == 'i') { + if (strcmp("bitand", id) ==0) { return 0; } + if (strcmp("bitor", id) == 0) { return 0; } + } + break; + // "bool" + // "break", + case 'c': + // "case", + // "catch", + // "char", + + if (id[1] == 'h') { + if (strcmp("char16_t", id) ==0) { return 0; } + if (strcmp("char32_t", id) ==0) { return 0; } + } else { + if (strcmp("compl", id) ==0) { return 0; } + if (strcmp("contexpr", id) ==0) { return 0; } + if (strcmp("const_cast", id) ==0) { return 0; } + } + + // "class", + // "compl", + // "const", + // "constexpr", + // "const_cast", + // "continue", + break; + case 'd': + if (id[1] == 'e') { + if (strcmp("decltype", id) ==0) { return 0; } + if (strcmp("delete", id) ==0) { return 0; } + if (strcmp("deprecated", id) ==0) { return 0; } + } else if (id[1] == 'y') { + if (strcmp("dynamic_cast", id) ==0) { return 0; } + } else if (id[1] == 'l') { + if (strcmp("dllimport", id) ==0) { return 0; } + if (strcmp("dllexport", id) ==0) { return 0; } + } + // "decltype", + // "default", + // "delete", + // "do", + // "double", + // "dynamic_cast", + break; + case 'e': + // "else", + // "enum", + // "explicit", + if (id[1] == 'x') { + if (strcmp("export", id) ==0) { return 0; } + } else if (id[1] == 'a') { + if (strcmp("each", id) ==0) { return 0; } + } + // "export", + // "extern", + break; + case 'f': + // "false", + // "final", + if (id[1]=='i') { + if (strcmp("final", id) ==0) { return 0; } + } else + // "float", + // "for", + if (id[1]=='r') { + if (strcmp("friend", id) ==0) { return 0; } + if (strcmp("friend_as", id) ==0) { return 0; } + } + //"friend", + break; + case 'g': + // "goto", + if (id[1]=='o') { + if (strcmp("goto", id) ==0) { return 0; } + } else if (id[1] == 'c') { + if (strcmp("gcnew", id) ==0) { return 0; } + } else if (id[1] == 'e') { + if (strcmp("generic", id) ==0) { return 0; } + } + break; + case 'i': + // "if", + //"inline", + if (id[1]=='n') { + if (strcmp("inline", id) ==0) { return 0; } + if (strcmp("initonly", id) ==0) { return 0; } + if (strcmp("interior_ptr", id) ==0) { return 0; } + } + // "int", + break; + case 'l': + // "long", + if (id[1]=='i') { + if (strcmp("literal", id) ==0) { return 0; } + } + break; + case 'm': + // "mutable", + if (id[1]=='u') { + if (strcmp("mutable", id) ==0) { return 0; } + } + break; + case 'n': +// "namespace", +// "new", + if (id[1]=='o') { + int len = strlen(id); + if (len >= 7) { + if (strcmp("noinline", id) ==0) { return 0; } + if (strcmp("noreturn", id) ==0) { return 0; } + if (strcmp("novtable", id) ==0) { return 0; } + if (strcmp("nothrow", id) ==0) { return 0; } + if (strcmp("noexcept", id) ==0) { return 0; } + } else { + if (strcmp("not", id) ==0) { return 0; } + if (strcmp("not_eq", id) ==0) { return 0; } + } + } else if (id[1]=='u') { + if (strcmp("nullptr", id) ==0) { return 0; } + } else if (id[1]=='a') { + if (strcmp("naked", id) ==0) { return 0; } + } + //"noexcept", + //"not", + //"not_eq", + //"nullptr", + break; + case 'o': + if (id[1]=='p') { + if (strcmp("operator", id) ==0) { return 0; } + } else + if (id[1]=='r') { + if (strcmp("or", id) ==0) { return 0; } + if (strcmp("or_eq", id) ==0) { return 0; } + } else { + if (strcmp("override", id) ==0) { return 0; } + } + break; + case 'p': + // "private", + // "protected", + // "public", + if (strcmp("property", id) ==0) { return 0; } + break; + case 'r': + if (id[1]=='e') { + if (strcmp("register", id) ==0) { return 0; } + if (strcmp("reinterpret_cast", id) ==0) { return 0; } + } + // "return" + break; + case 's': +// "short", +// "signed", + if (id[1]=='i') { + if (strcmp("signed", id) ==0) { return 0; } + } else +// "sizeof", +// "static", + if (id[1]=='t') { + if (strcmp("static_assert", id) ==0) { return 0; } + if (strcmp("static_cast", id) ==0) { return 0; } + } else + if (id[1]=='a') { + if (strcmp("safecast", id) ==0) { return 0; } + } else { + if (strcmp("selectany", id) ==0) { return 0; } + } +// "struct", +// "switch", + break; + case 't': +// static const char* t_keywords [] = { + if (id[1]=='e') { + if (strcmp("template", id) ==0) { return 0; } + } else +// "this", + if (id[1]=='h') { + if (strcmp("thread_local", id) ==0) { return 0; } + } else +// "throw", +// "true", +// "try", + if (id[1]=='y') { + if (strcmp("typedef", id) ==0) { return 0; } + if (strcmp("typeid", id) ==0) { return 0; } + if (strcmp("typename", id) ==0) { return 0; } + }; + break; + case 'u': + if (id[1]=='n') { + if (strcmp("union", id) ==0) { return 0; } + if (strcmp("unsigned", id) ==0) { return 0; } + } else { + if (strcmp("uuid", id) ==0) { return 0; } + } + // "using" + break; + case 'v': +// "virtual", +// "void", +// "volatile" + break; + case 'w': + if (id[1]=='c') { + if (strcmp("wchar_t", id) ==0) { return 0; } + } +// "while", + break; + case 'x': + if (id[1]=='o') { + if (strcmp("xor", id) ==0) { return 0; } + if (strcmp("xor_eq", id) ==0) { return 0; } + } + break; + case '_': + if (id[1]=='_') { + if (strcmp("__abstract", id) == 0) { return 0; } + if (strcmp("__alignof", id) == 0) { return 0; } + if (strcmp("__asm", id) == 0) { return 0; } + if (strcmp("__assume", id) == 0) { return 0; } + if (strcmp("__based", id) == 0) { return 0; } + if (strcmp("__box", id) == 0) { return 0; } + if (strcmp("__cdecl", id) == 0) { return 0; } + if (strcmp("__declspec", id) == 0) { return 0; } + if (strcmp("__delegate", id) == 0) { return 0; } + if (strcmp("__event", id) == 0) { return 0; } + if (strcmp("__except", id) == 0) { return 0; } + if (strcmp("__fastcall", id) == 0) { return 0; } + if (strcmp("__finally", id) == 0) { return 0; } + if (strcmp("__forceinline", id) == 0) { return 0; } + if (strcmp("__gc", id) == 0) { return 0; } + if (strcmp("__hook", id) == 0) { return 0; } + if (strcmp("__identifier", id) == 0) { return 0; } + if (strcmp("__if_exists", id) == 0) { return 0; } + if (strcmp("__if_not_exists", id) == 0) { return 0; } + if (strcmp("__inline", id) == 0) { return 0; } + if (strcmp("__int8", id) == 0) { return 0; } + if (strcmp("__int16", id) == 0) { return 0; } + if (strcmp("__int32", id) == 0) { return 0; } + if (strcmp("__int64", id) == 0) { return 0; } + if (strcmp("__interface", id) == 0) { return 0; } + if (strcmp("__leave", id) == 0) { return 0; } + if (strcmp("__m64", id) == 0) { return 0; } + if (strcmp("__m128", id) == 0) { return 0; } + if (strcmp("__m128d", id) == 0) { return 0; } + if (strcmp("__m128i", id) == 0) { return 0; } + if (strcmp("__multiple_inheritance", id) == 0) { return 0; } + if (strcmp("__nogc", id) == 0) { return 0; } + if (strcmp("__noop", id) == 0) { return 0; } + if (strcmp("__pin", id) == 0) { return 0; } + if (strcmp("__property", id) == 0) { return 0; } + if (strcmp("__raise", id) == 0) { return 0; } + if (strcmp("__sealed", id) == 0) { return 0; } + if (strcmp("__single_inheritance", id) == 0) { return 0; } + if (strcmp("__stdcall", id) == 0) { return 0; } + if (strcmp("__super", id) == 0) { return 0; } + if (strcmp("__try", id) == 0) { return 0; } + if (strcmp("__try_cast", id) == 0) { return 0; } + if (strcmp("__unaligned", id) == 0) { return 0; } + if (strcmp("__unhook", id) == 0) { return 0; } + if (strcmp("__uuidof", id) == 0) { return 0; } + if (strcmp("__value", id) == 0) { return 0; } + if (strcmp("__virtual_inheritance", id) == 0) { return 0; } + if (strcmp("__w64", id) == 0) { return 0; } + if (strcmp("__wchar_t", id) == 0) { return 0; } + } + } + + return 1; +}; + /* Conduct a binary search for lexeme in the keywords array * between indices start (inclusive) and finish (exclusive) */ static int bin_search(const char *lexeme, int start, int finish) { - if (start >= finish) /* Not found */ - return IDENTIFIER; - else { + if (start >= finish) {/* Not found */ + if (checkCppWord(lexeme) == 0) { + compilerError(ERR_USER,"C++ keyword used as identifier"); + } + yylval.text = concat(lexeme); + return IDENTIFIER; + } else { int mid = (start+finish)/2; int cmp = strcmp(lexeme,keywords[mid].name); - if (cmp == 0) + if (cmp == 0) { + if (keywords[mid].value == OBJECT || keywords[mid].value == STRING) { + yylval.text = (keywords[mid].value == OBJECT) ? "System.Object" : "System.String"; + return IDENTIFIER; + } return keywords[mid].value; - else if (cmp < 0) + } else if (cmp < 0) { return bin_search(lexeme,start,mid); - else + } else { return bin_search(lexeme,mid+1,finish); + } } } @@ -2141,7 +2704,8 @@ static int token_for(const char *lexeme) int token = bin_search(lexeme,0,num_keywords); if (token == -1) { token = IDENTIFIER; - yylval.text = strdup(lexeme); + /*printf("lexeme:%s\n",lexeme);*/ + yylval.text = concat(lexeme); } else if (token == NULL_LITERAL) { yylval.value = getValueNull(); } @@ -2192,10 +2756,10 @@ static SValue getValueInt(const char* text) { v -= '0'; } else if (v >= 'A' && v <= 'F') { - v -= 'A'; + v -= 'A' - 10; } else if (v >= 'a' && v <= 'f') { - v -= 'a'; + v -= 'a' - 10; } else { // Reach end : char 0, U, L etc... break; @@ -2243,7 +2807,7 @@ static SValue getValueReal(const char* text) { ptrRead = buff; } sscanf(ptrRead, "%lf", &d); - if (isFloat) { + if (!isFloat) { v.type = TYPE_DOUBLE; v.v.d = d; } else { @@ -2258,10 +2822,13 @@ static SValue getValueChar(const char* text) { v.type = TYPE_CHAR; const char* t = &text[1]; u16 ch = 0; - if (*t == '/') { + if (*t == '\\') { switch (t[1]) { case 'U': - compilerError(ERR_TODO, " Support complex unicode."); + v.type = TYPE_STRING; + // TODO : reencode to utf8 ! + compilerError(ERR_NOT_SUPPORTED_YET, " Support complex unicode."); + break; case 'u': case 'x': { @@ -2301,11 +2868,11 @@ static SValue getValueChar(const char* text) { case '\"': ch = 0x0022; break; case '\\': ch = 0x005C; break; default: - compilerError(ERR_INVALID_CHAR, "Invalid Char sequence /%c .", t[1]); + compilerError(ERR_USER, "Invalid Char sequence /%c .", t[1]); } } else { if (*t >= 128) { - compilerError(ERR_TODO, " Support UTF8 -> Unicode."); + compilerError(ERR_NOT_SUPPORTED_YET, " Support UTF8 -> Unicode."); } else { ch = *t; } @@ -2317,7 +2884,12 @@ static SValue getValueChar(const char* text) { static SValue getValueString(const char* text) { SValue v; v.type = TYPE_STRING; - v.v.str = text; // For now UTF8 as is. + char* pchar = strdup(&text[1]); // For now UTF8 as is., skip '"' + int strl = strlen(pchar); + if (strl) { + pchar[strl-1] = 0; // Patch last '"' + } + v.v.str = pchar; return v; } @@ -2347,10 +2919,18 @@ void lexical_error(const char *msg) /*** Switch on/off context-sensitive "keywords" ***/ /* I don't like it any more than you do. */ - +static int genCount = 0; void lex_in_generic(void) { + if (genCount == 0) { + yy_push_state(IN_GENERIC); + } + genCount++; } void lex_out_generic(void) { + genCount--; + if (genCount == 0) { + yy_pop_state(); + } } void lex_enter_attrib(void) { diff --git a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/supported.cs b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/supported.cs index 08c600a..dd1deba 100644 --- a/CSharpVersion/CSharp_CPPCompiler/CompilerProject/supported.cs +++ b/CSharpVersion/CSharp_CPPCompiler/CompilerProject/supported.cs @@ -110,7 +110,7 @@ public Object Clone(){} //public static Array CreateInstance(Type elementType, int length1, int length2){} //public static Array CreateInstance(Type elementType, int[] lengths, int[] lowerBounds){} //public static Array CreateInstance(Type elementType, int length1, int length2, int length3){} - //public IEnumerator GetEnumerator(){} + public IEnumerator GetEnumerator(){} public int GetLength(int dimension){} public long GetLongLength(int dimension){} public int GetLowerBound(int dimension){} @@ -329,7 +329,7 @@ public bool Equals(string value, StringComparison comparisonType){} //public static string Format(IFormatProvider provider, string format, params Object[] args){} //public static string Format(string format, Object arg0, Object arg1){} //public static string Format(string format, Object arg0, Object arg1, Object arg2){} - //public CharEnumerator GetEnumerator(){} + public IEnumerator GetEnumerator(){} public override int GetHashCode(){} //public TypeCode GetTypeCode(){} public int IndexOf(char value){} @@ -435,7 +435,12 @@ public class IEnumerable } namespace Generic { - public class IEnumerator {} + public class IEnumerator + { + public bool MoveNext(){} + public T Current{ get{} } + public void Dispose(){} + } public class IEnumerable {} public class IComparer {} @@ -470,7 +475,8 @@ public void CopyTo(int index, T[] array, int arrayIndex, int count){} //public int FindLastIndex(int startIndex, Predicate match){} //public int FindLastIndex(int startIndex, int count, Predicate match){} //public void ForEach(Action action){} - //public List.Enumerator GetEnumerator(){} + // It is better to return struct Enumerator. + public IEnumerator GetEnumerator(){} public List GetRange(int index, int count){} public int IndexOf(T item){} public int IndexOf(T item, int index){} @@ -499,7 +505,16 @@ public void TrimExcess(){} // public void Dispose(){} // public bool MoveNext(){} //} - } + } + + // Value types are not supported yet... + public class KeyValuePair : Object + { + public KeyValuePair(TKey key, TValue value) {} + public TKey Key { get{} } + public TValue Value { get{} } + } + public class Dictionary : Object { public Dictionary() { } @@ -521,7 +536,8 @@ public void Add(TKey key, TValue value) { } public void Clear() { } public bool ContainsKey(TKey key) { } public bool ContainsValue(TValue value) { } - //public Dictionary.Enumerator GetEnumerator(); + // It is better to return struct Enumerator. + public IEnumerator> GetEnumerator(); //public virtual void GetObjectData(SerializationInfo info, StreamingContext context); //public virtual void OnDeserialization(object sender); public bool Remove(TKey key) { } @@ -571,6 +587,12 @@ public bool TryGetValue(TKey key, out TValue value) { } // public bool MoveNext(); //} } + + public class KeyValuePair : Object { + public TKey Key { get{} } + public TValue Value { get{} } + public KeyValuePair(TKey key, TValue value) {} + } public class KeyNotFoundException : Exception { } } diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_Array.h b/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_Array.h index f782646..f88efa4 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_Array.h +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_Array.h @@ -126,7 +126,6 @@ namespace System { /*x*/ static AbstractArray* CreateInstance (Type elementType, s32 length1, s32 length2); /*x*/ static AbstractArray* CreateInstance (Type elementType, Array* lengths, Array* lowerBounds); /*x*/ static AbstractArray* CreateInstance (Type elementType, s32 length1, s32 length2, s32 length3); -/*x*/ //IEnumerator GetEnumerator (); /*NO*/ //Object* GetValue (s64 index); /*NO*/ //Object* GetValue (s32 index1, s32 index2); /*NO*/ //Object* GetValue (s64 index1, s64 index2); @@ -272,7 +271,6 @@ namespace System { template static s32 _valueType_BinarySearch (Array* _array, s32 index, s32 length, T value); template static void _valueType_Sort (Array* _array); template static void _valueType_Sort (Array* _array, s32 index, s32 length); - }; @@ -313,9 +311,28 @@ namespace System { Object* Clone (); inline Object* Clone$ () { CHCKTHIS; return Clone(); } + + Collections::Generic::IEnumerator* + GetEnumerator (); + inline Collections::Generic::IEnumerator* + GetEnumerator$ () { CHCKTHIS; return GetEnumerator(); } public: // Internal method. Array (u32 length, T* _array, u32 arrayLen); + + private: + class Enumerator : public Collections::Generic::IEnumerator { + private: + T* m_array; + u64 m_length; + u64 m_nextIndex; + static const u64 c_uninitialized = 0xFFFFFFFFFFFFFFFF; + public: + Enumerator(u64 length, void* theArray); + T _acc_gCurrent(); + bool MoveNext(); + void Dispose(); + }; }; template @@ -790,8 +807,37 @@ namespace System { /*x*/ //static void Sort (Array* keys, Array* items, s32 index, s32 length, IComparer* comparer); /*x*/ //static bool TrueForAll (Array* _array, Predicate* match); + template + Collections::Generic::IEnumerator* Array::GetEnumerator() { + return CS_NEW Enumerator(this->_acc_gLongLength$(), this->m_array); + } + + // ----------------------------------------------------------------------- + // Enumerator + template + Array::Enumerator::Enumerator(u64 length, void* theArray) { + m_nextIndex = c_uninitialized; + m_array = (T*)theArray; + m_length = length; + } + template + T Array::Enumerator::_acc_gCurrent() { + if(m_nextIndex == c_uninitialized || m_nextIndex > m_length) { + THROW(CS_NEW InvalidOperationException()); + } + return m_array[m_nextIndex]; + } + template + bool Array::Enumerator::MoveNext() { + return ((++m_nextIndex) < m_length); + } + + template + void Array::Enumerator::Dispose() { + // nop + } } #endif diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_Console.cpp b/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_Console.cpp index 344242f..6d01bc9 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_Console.cpp +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_Console.cpp @@ -24,15 +24,19 @@ void Console::Write(bool value) { /*static*/ void Console::Write(uniChar value) { - u8 utf8buff[3]; - _utf16ToUtf8(&value, 1, utf8buff, 3); + u8 utf8buff[4]; + u32 endPos = _utf16ToUtf8(&value, 1, utf8buff, 3); + utf8buff[endPos] = '\0'; + // TODO: utf-8 is not suitable for Windows. printf("%s", utf8buff); } /*static*/ void Console::Write(System::Array* buffer) { - u8* utf8buff = (u8*)CS_MALLOC(buffer->_acc_gLength() * 3); - _utf16ToUtf8((uniChar*)buffer->_getPArray(), buffer->_acc_gLength(), utf8buff, buffer->_acc_gLength()*3); + u8* utf8buff = (u8*)CS_MALLOC(buffer->_acc_gLength() * 3 + 1); + u32 endPos = _utf16ToUtf8((uniChar*)buffer->_getPArray(), buffer->_acc_gLength(), utf8buff, buffer->_acc_gLength()*3); + utf8buff[endPos] = '\0'; + // TODO: utf-8 is not suitable for Windows. printf("%s", utf8buff); CS_FREE(utf8buff); } @@ -68,6 +72,7 @@ void Console::Write(System::Object* value) { /*static*/ void Console::Write(System::String* value) { + // TODO: Unicode support. printf("%s", value->_toCStr()); } @@ -83,8 +88,9 @@ void Console::Write(u64 value) { /*static*/ void Console::Write(System::Array* buffer, u32 index, u32 count) { - u8* utf8buff = (u8*)CS_MALLOC(count * 3); - _utf16ToUtf8((uniChar*)buffer->_getPArray() + index, count, utf8buff, count * 3); + u8* utf8buff = (u8*)CS_MALLOC(count * 3 + 1); + u32 endPos =_utf16ToUtf8((uniChar*)buffer->_getPArray() + index, count, utf8buff, count * 3); + utf8buff[endPos] = '\0'; printf("%s", utf8buff); CS_FREE(utf8buff); } diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_String.cpp b/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_String.cpp index 08f2bba..5664ea4 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_String.cpp +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_String.cpp @@ -882,6 +882,10 @@ bool String::Equals(String* value) { return (Compare(this, value) == 0); } +Collections::Generic::IEnumerator* String::GetEnumerator() { + return CS_NEW CharEnumerator(this); +} + s32 String::GetHashCode() { /* const uniChar* chPtr = this->_getStringBuffer(); @@ -1919,6 +1923,27 @@ const char* String::_toCStr() { return (intptr) ? (char*)intptr : ""; } +// -------------------------------------------------------- +// CharEnumerator +String::CharEnumerator::CharEnumerator(String* str) { + m_str = str; + m_nextIndex = -1; +} + +uniChar String::CharEnumerator::_acc_gCurrent() { + if(m_nextIndex < 0 || m_nextIndex > m_str->m_length) { + THROW(CS_NEW InvalidOperationException()); + } + return m_str->_idx_g(m_nextIndex); +} + +bool String::CharEnumerator::MoveNext() { + return ((++m_nextIndex) < m_str->m_length); +} + +void String::CharEnumerator::Dispose() { + // nop +} // -------------------------------------------------------- // -------------------------------------------------------- diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_String.h b/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_String.h index 5a30749..13d1239 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_String.h +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/CS_String.h @@ -250,6 +250,10 @@ CultureInfo* bool Equals (String* value); inline bool Equals$ (String* value) { CHCKTHIS; return Equals(value); } /*x*/ bool Equals (String* value, StringComparison comparisonType); + Collections::Generic::IEnumerator* + GetEnumerator (); + inline Collections::Generic:: IEnumerator* + GetEnumerator$ () { CHCKTHIS; return GetEnumerator(); } s32 GetHashCode (); inline s32 GetHashCode$ () { CHCKTHIS; return GetHashCode(); } /*x*/ /*TypeCode GetTypeCode ();*/ @@ -338,6 +342,18 @@ CultureInfo* inline static const char* _toCStr (String* str) { if(!str) { return NULL; } return str->_toCStr(); } const char* _toCStr (); inline const char* _toCStr$ () { CHCKTHIS; return this->_toCStr(); } + + private: + class CharEnumerator : public Collections::Generic::IEnumerator { + private: + String* m_str; + s32 m_nextIndex; + public: + CharEnumerator(String* str); + uniChar _acc_gCurrent(); + bool MoveNext(); + void Dispose(); + }; }; class AnyToString { diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/CS_Dictionary.h b/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/CS_Dictionary.h index 69b4249..3da8d18 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/CS_Dictionary.h +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/CS_Dictionary.h @@ -27,6 +27,19 @@ namespace Generic { // Prime numbers from 2 to 1M with a minimal increase of 1% between 2 prime numbers. // Array of 772 elements. extern const u32 _dictionary_primeArray[]; + + template + class KeyValuePair : public Object { + private: + TKey m_key; + TValue m_value; + public: + KeyValuePair(TKey key, TValue value); + TKey _acc_gKey(); + inline TKey _acc_gKey$() { CHCKTHIS; return _acc_gKey(); } + TValue _acc_gValue(); + inline TValue _acc_gValue$() { CHCKTHIS; return _acc_gValue(); } + }; /// /// Dictionary @@ -95,7 +108,10 @@ namespace Generic { inline bool ContainsKey$ (TKey key) { CHCKTHIS; return ContainsKey(key); } bool ContainsValue (TValue value); inline bool ContainsValue$ (TValue value) { CHCKTHIS; return ContainsValue(value); } -/*x*/ //Dictionary.Enumerator GetEnumerator (); + IEnumerator*>* + GetEnumerator (); + inline IEnumerator*>* + GetEnumerator$ () { CHCKTHIS; return GetEnumerator(); } /*x*/ //int GetHashCode (); bool Remove (TKey key); inline bool Remove$ (TKey key) { CHCKTHIS; return Remove(key); } @@ -112,8 +128,42 @@ namespace Generic { public: void _display (); + + private: + class Enumerator : public IEnumerator*> { + private: + u32 m_capacity; + u32 m_currentBucket; + s32* m_buckets; + Entry* m_entries; + Entry* m_currentEntry; + static const u32 c_uninitialized = 0xFFFFFFFF; + public: + Enumerator(Dictionary* dict); + KeyValuePair* _acc_gCurrent(); + bool MoveNext(); + void Dispose(); + }; }; + // ------------------------------------------------------ + // KeyValuePair methods + + template + KeyValuePair::KeyValuePair(TKey key, TValue value) { + m_key = key; + m_value = value; + } + + template + TKey KeyValuePair::_acc_gKey() { + return m_key; + } + + template + TValue KeyValuePair::_acc_gValue() { + return m_value; + } // ------------------------------------------------------ // Virtual methods @@ -699,6 +749,11 @@ namespace Generic { } return false; } + + template + IEnumerator*>* Dictionary::GetEnumerator() { + return CS_NEW Enumerator(this); + } template bool Dictionary::Remove(TKey key) { @@ -769,7 +824,63 @@ namespace Generic { _refRemove_(_cs_count_refholder,_cs_refholder_loc_array); return r; } + + // ----------------------------------------------------------------------- + // Enumerator + template + Dictionary::Enumerator::Enumerator(Dictionary* dict) { + m_capacity = dict->m_capacity; + m_buckets = dict->m_buckets; + m_entries = dict->m_entries; + m_currentBucket = c_uninitialized; + m_currentEntry = NULL; + } + + template + KeyValuePair* Dictionary::Enumerator::_acc_gCurrent() { + if(m_currentEntry == NULL) { + THROW(CS_NEW InvalidOperationException()); + } + return CS_NEW KeyValuePair(m_currentEntry->m_key, m_currentEntry->m_value); + } + + template + bool Dictionary::Enumerator::MoveNext() { + while(m_currentBucket < m_capacity || m_currentBucket == c_uninitialized) { + if(!m_currentEntry || !(m_currentEntry->m_pNext)) { + while(true){ + m_currentBucket++; + + if(m_currentBucket == m_capacity) { + // Now ends + m_currentEntry = NULL; + return false; + } + + if (m_buckets[m_currentBucket] >= 0) { + Entry* entry = m_entries + m_buckets[m_currentBucket]; + if (entry) { + // Found + m_currentEntry = entry; + return true; + } + } + } + } + + m_currentEntry = m_currentEntry->m_pNext; + return true; + } + + // Already ended (or empty). + return false; + } + + template + void Dictionary::Enumerator::Dispose() { + // nop + } } } } diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/CS_List.h b/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/CS_List.h index 8196c79..c3fff40 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/CS_List.h +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/CS_List.h @@ -110,7 +110,8 @@ namespace Generic { /*x*/ //int FindLastIndex (int startIndex, Predicate* match); /*x*/ //int FindLastIndex (int startIndex, s32 count, Predicate* match); /*x*/ //void ForEach (Action* action);*/ -/*x*/ /*List.Enumerator GetEnumerator ();*/ + IEnumerator* GetEnumerator (); + inline IEnumerator* GetEnumerator$ () { CHCKTHIS; return GetEnumerator(); } List* GetRange (s32 index, s32 count); inline List* GetRange$ (s32 index, s32 count) { CHCKTHIS; return GetRange(index, count); } int IndexOf (T item); @@ -153,6 +154,19 @@ namespace Generic { private: void _valueType_Sort (); s32 _valueType_BinarySearch (T item); + + class Enumerator : public IEnumerator { + private: + T* m_list; + u32 m_count; + u32 m_nextIndex; + static const u32 c_uninitialized = 0xFFFFFFFF; + public: + Enumerator(List* list); + T _acc_gCurrent(); + bool MoveNext(); + void Dispose(); + }; }; @@ -563,8 +577,12 @@ namespace Generic { /*x*/ //int FindLastIndex (s32 startIndex, Predicate* match); /*x*/ //int FindLastIndex (s32 startIndex, s32 count, Predicate* match); /*x*/ //void ForEach (Action* action);*/ -/*x*/ /*List.Enumerator GetEnumerator ();*/ - + + template + IEnumerator* List::GetEnumerator() { + return CS_NEW Enumerator(this); + } + template List* List::GetRange (s32 index, s32 count) { if((index | count) < 0) { THROW(CS_NEW ArgumentOutOfRangeException()); } @@ -787,6 +805,35 @@ namespace Generic { } } /*x*/ /*bool TrueForAll (Predicate match);*/ + + // ----------------------------------------------------------------------- + + // ----------------------------------------------------------------------- + // Enumerator + template + List::Enumerator::Enumerator(List* list) { + m_nextIndex = c_uninitialized; + m_list = list->m_list; + m_count = list->m_count; + } + + template + T List::Enumerator::_acc_gCurrent() { + if(m_nextIndex == c_uninitialized || m_nextIndex > m_count) { + THROW(CS_NEW InvalidOperationException()); + } + return m_list[m_nextIndex]; + } + + template + bool List::Enumerator::MoveNext() { + return ((++m_nextIndex) < m_count); + } + + template + void List::Enumerator::Dispose() { + // nop + } } } } diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/Generic.h b/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/Generic.h index a6e3fb6..d58a4c1 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/Generic.h +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/Collections/Generic/Generic.h @@ -23,10 +23,16 @@ namespace System { namespace Collections { namespace Generic { - template + template class IEnumerator /* : System::Collections::IEnumerator*/ { - + public: + virtual bool MoveNext() = 0; + inline bool MoveNext$() { CHCKTHIS; return MoveNext(); } + virtual T _acc_gCurrent() = 0; + inline T _acc_gCurrent$() { CHCKTHIS; return _acc_gCurrent(); } + virtual void Dispose() = 0; + inline void Dispose$() { CHCKTHIS; return Dispose(); } }; template diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/RuntimeCSharp.sln b/Engine/libs/RuntimeCSharp/RuntimeLibrary/RuntimeCSharp.sln index ae14292..0b81f8e 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/RuntimeCSharp.sln +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/RuntimeCSharp.sln @@ -1,21 +1,20 @@ -/* - Copyright 2013 KLab Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -Microsoft Visual Studio Solution File, Format Version 11.00 +Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C++ Express 2010 +################################################################################ +# Copyright 2013 KLab Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +################################################################################ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RuntimeCSharp", "RuntimeCSharp.vcxproj", "{0CB3E5F2-5883-45A6-9511-73425909E16B}" EndProject Global diff --git a/Engine/libs/RuntimeCSharp/RuntimeLibrary/RuntimeCSharp.vcxproj b/Engine/libs/RuntimeCSharp/RuntimeLibrary/RuntimeCSharp.vcxproj index bab0bb9..16cb81c 100644 --- a/Engine/libs/RuntimeCSharp/RuntimeLibrary/RuntimeCSharp.vcxproj +++ b/Engine/libs/RuntimeCSharp/RuntimeLibrary/RuntimeCSharp.vcxproj @@ -1,4 +1,5 @@ -/* + +