/* * A Bison parser, made with Bison version GNU Bison version 1.24 * * Copyright 2009, Gerben van Veenendaal (http://www.gerbenvv.nl) * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU General Public License in the COPYING file at the * root directory of this project for more details. */ #define YYBISON 1 /* Identify Bison output. */ #define T_INCLUDE 258 #define T_INCLUDE_ONCE 259 #define T_EVAL 260 #define T_REQUIRE 261 #define T_REQUIRE_ONCE 262 #define T_LOGICAL_OR 263 #define T_LOGICAL_XOR 264 #define T_LOGICAL_AND 265 #define T_PRINT 266 #define T_PLUS_EQUAL 267 #define T_MINUS_EQUAL 268 #define T_MUL_EQUAL 269 #define T_DIV_EQUAL 270 #define T_CONCAT_EQUAL 271 #define T_MOD_EQUAL 272 #define T_AND_EQUAL 273 #define T_OR_EQUAL 274 #define T_XOR_EQUAL 275 #define T_SL_EQUAL 276 #define T_SR_EQUAL 277 #define T_BOOLEAN_OR 278 #define T_BOOLEAN_AND 279 #define T_IS_EQUAL 280 #define T_IS_NOT_EQUAL 281 #define T_IS_IDENTICAL 282 #define T_IS_NOT_IDENTICAL 283 #define T_IS_SMALLER_OR_EQUAL 284 #define T_IS_GREATER_OR_EQUAL 285 #define T_SL 286 #define T_SR 287 #define T_INSTANCEOF 288 #define T_INC 289 #define T_DEC 290 #define T_INT_CAST 291 #define T_DOUBLE_CAST 292 #define T_STRING_CAST 293 #define T_ARRAY_CAST 294 #define T_OBJECT_CAST 295 #define T_BOOL_CAST 296 #define T_UNSET_CAST 297 #define T_NEW 298 #define T_CLONE 299 #define T_EXIT 300 #define T_IF 301 #define T_ELSEIF 302 #define T_ELSE 303 #define T_ENDIF 304 #define T_LNUMBER 305 #define T_DNUMBER 306 #define T_STRING 307 #define T_STRING_VARNAME 308 #define T_VARIABLE 309 #define T_NUM_STRING 310 #define T_INLINE_HTML 311 #define T_CHARACTER 312 #define T_BAD_CHARACTER 313 #define T_ENCAPSED_AND_WHITESPACE 314 #define T_CONSTANT_ENCAPSED_STRING 315 #define T_ECHO 316 #define T_DO 317 #define T_WHILE 318 #define T_ENDWHILE 319 #define T_FOR 320 #define T_ENDFOR 321 #define T_FOREACH 322 #define T_ENDFOREACH 323 #define T_DECLARE 324 #define T_ENDDECLARE 325 #define T_AS 326 #define T_SWITCH 327 #define T_ENDSWITCH 328 #define T_CASE 329 #define T_DEFAULT 330 #define T_BREAK 331 #define T_CONTINUE 332 #define T_FUNCTION 333 #define T_CONST 334 #define T_RETURN 335 #define T_TRY 336 #define T_CATCH 337 #define T_THROW 338 #define T_USE 339 #define T_GLOBAL 340 #define T_STATIC 341 #define T_ABSTRACT 342 #define T_FINAL 343 #define T_PRIVATE 344 #define T_PROTECTED 345 #define T_PUBLIC 346 #define T_VAR 347 #define T_UNSET 348 #define T_ISSET 349 #define T_EMPTY 350 #define T_HALT_COMPILER 351 #define T_CLASS 352 #define T_INTERFACE 353 #define T_EXTENDS 354 #define T_IMPLEMENTS 355 #define T_OBJECT_OPERATOR 356 #define T_DOUBLE_ARROW 357 #define T_LIST 358 #define T_ARRAY 359 #define T_CLASS_C 360 #define T_METHOD_C 361 #define T_FUNC_C 362 #define T_LINE 363 #define T_FILE 364 #define T_OPEN_TAG 365 #define T_OPEN_TAG_WITH_ECHO 366 #define T_CLOSE_TAG 367 #define T_START_HEREDOC 368 #define T_END_HEREDOC 369 #define T_DOLLAR_OPEN_CURLY_BRACES 370 #define T_CURLY_OPEN 371 #define T_PAAMAYIM_NEKUDOTAYIM 372 #include "parser.h" #include "exception.h" #include "settings.h" #include "formatter.h" #include "scanner.h" extern CSettings *settings; extern CFormatter *formatter; extern CScanner *scanner; /* this is needed for the token names table */ #define YYDEBUG 1 #ifndef YYLTYPE typedef struct yyltype { int timestamp; int first_line; int first_column; int last_line; int last_column; char *text; } yyltype; #define YYLTYPE yyltype #endif #ifndef YYSTYPE #define YYSTYPE int #endif #include #ifndef __cplusplus #ifndef __STDC__ #define const #endif #endif #define YYFINAL 669 #define YYFLAG -32768 #define YYNTBASE 144 #define YYTRANSLATE(x) ((unsigned)(x) <= 372 ? yytranslate[x] : 253) 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, 48, 2, 2, 142, 47, 31, 2, 138, 139, 45, 42, 8, 43, 44, 46, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 26, 137, 36, 13, 38, 25, 60, 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, 61, 2, 143, 30, 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, 140, 29, 141, 50, 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, 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, 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, 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, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 32, 33, 34, 35, 37, 39, 40, 41, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 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, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136 }; #if YYDEBUG != 0 static const short yyprhs[] = { 0, 0, 1, 7, 10, 12, 14, 16, 21, 23, 24, 30, 33, 35, 37, 39, 44, 46, 47, 48, 58, 59, 64, 67, 71, 74, 78, 81, 85, 89, 93, 97, 99, 103, 105, 108, 110, 112, 118, 122, 124, 128, 129, 141, 142, 152, 153, 160, 161, 175, 176, 187, 188, 195, 196, 209, 210, 220, 221, 231, 232, 239, 240, 249, 250, 265, 266, 274, 275, 279, 280, 281, 289, 290, 291, 295, 300, 306, 307, 313, 318, 320, 322, 323, 325, 326, 329, 331, 334, 338, 344, 345, 347, 349, 352, 361, 362, 364, 365, 376, 377, 386, 387, 395, 397, 400, 403, 404, 407, 408, 411, 412, 415, 417, 421, 423, 424, 427, 431, 437, 442, 447, 453, 461, 468, 469, 471, 473, 474, 476, 478, 481, 485, 490, 494, 496, 498, 501, 506, 510, 516, 518, 522, 525, 526, 530, 533, 534, 544, 546, 550, 552, 554, 555, 557, 559, 562, 564, 566, 568, 570, 572, 574, 578, 584, 586, 590, 596, 601, 602, 604, 608, 610, 617, 622, 629, 631, 634, 637, 640, 643, 647, 650, 652, 656, 660, 666, 668, 670, 672, 675, 678, 679, 685, 689, 693, 697, 701, 705, 709, 713, 717, 721, 725, 729, 733, 736, 739, 742, 745, 748, 751, 754, 758, 762, 766, 770, 774, 778, 782, 786, 790, 794, 798, 802, 806, 810, 814, 818, 822, 826, 830, 834, 838, 842, 846, 850, 853, 856, 859, 862, 867, 874, 881, 886, 888, 890, 895, 897, 900, 901, 904, 905, 908, 912, 913, 917, 919, 921, 923, 925, 927, 929, 931, 933, 935, 937, 940, 943, 948, 950, 952, 954, 956, 960, 961, 964, 965, 967, 973, 977, 981, 983, 985, 987, 993, 995, 998, 999, 1003, 1007, 1008, 1010, 1013, 1015, 1017, 1019, 1022, 1026, 1031, 1036, 1038, 1040, 1045, 1046, 1048, 1050, 1052, 1057, 1062, 1064, 1066, 1070, 1072, 1075, 1079, 1081, 1082, 1084, 1089, 1090, 1093, 1099, 1103, 1107, 1109, 1116, 1121, 1126, 1129, 1134, 1139, 1144, 1147, 1150, 1153, 1156 }; static const short yyrhs[] = { -1, 144, 234, 13, 233, 137, 0, 144, 145, 0, 149, 0, 184, 0, 186, 0, 115, 138, 139, 137, 0, 147, 0, 0, 147, 234, 13, 233, 137, 0, 147, 148, 0, 149, 0, 184, 0, 186, 0, 115, 138, 139, 137, 0, 154, 0, 0, 0, 65, 138, 233, 139, 150, 149, 151, 169, 171, 0, 0, 140, 152, 146, 141, 0, 95, 137, 0, 95, 233, 137, 0, 96, 137, 0, 96, 233, 137, 0, 99, 137, 0, 99, 233, 137, 0, 104, 199, 137, 0, 105, 201, 137, 0, 80, 213, 137, 0, 129, 0, 130, 213, 137, 0, 75, 0, 233, 137, 0, 137, 0, 103, 0, 112, 138, 153, 139, 137, 0, 102, 233, 137, 0, 234, 0, 153, 8, 234, 0, 0, 65, 138, 233, 139, 26, 155, 146, 167, 168, 68, 137, 0, 0, 82, 138, 233, 139, 26, 156, 146, 83, 137, 0, 0, 82, 138, 233, 139, 157, 149, 0, 0, 84, 138, 212, 137, 212, 137, 212, 139, 26, 158, 146, 85, 137, 0, 0, 84, 138, 212, 137, 212, 137, 212, 139, 159, 149, 0, 0, 91, 138, 233, 139, 160, 173, 0, 0, 86, 138, 233, 90, 178, 177, 139, 26, 161, 146, 87, 137, 0, 0, 86, 138, 233, 90, 178, 177, 139, 162, 149, 0, 0, 88, 138, 179, 139, 26, 163, 146, 89, 137, 0, 0, 88, 138, 179, 139, 164, 149, 0, 0, 81, 165, 149, 82, 138, 233, 139, 137, 0, 0, 100, 140, 166, 146, 141, 101, 138, 71, 73, 139, 140, 146, 141, 180, 0, 0, 167, 66, 138, 233, 139, 26, 146, 0, 0, 67, 26, 146, 0, 0, 0, 169, 66, 138, 233, 139, 170, 149, 0, 0, 0, 67, 172, 149, 0, 140, 176, 174, 141, 0, 26, 176, 174, 92, 137, 0, 0, 174, 93, 233, 175, 146, 0, 174, 94, 175, 146, 0, 26, 0, 137, 0, 0, 137, 0, 0, 121, 178, 0, 234, 0, 31, 234, 0, 71, 13, 227, 0, 179, 8, 71, 13, 227, 0, 0, 181, 0, 182, 0, 181, 182, 0, 101, 138, 71, 73, 139, 140, 146, 141, 0, 0, 31, 0, 0, 97, 183, 71, 138, 194, 139, 140, 185, 146, 141, 0, 0, 189, 71, 190, 191, 140, 187, 202, 141, 0, 0, 117, 71, 192, 140, 188, 202, 141, 0, 116, 0, 106, 116, 0, 107, 116, 0, 0, 118, 71, 0, 0, 119, 193, 0, 0, 118, 193, 0, 71, 0, 193, 8, 71, 0, 195, 0, 0, 196, 73, 0, 196, 31, 73, 0, 196, 31, 73, 13, 227, 0, 196, 73, 13, 227, 0, 195, 8, 196, 73, 0, 195, 8, 196, 31, 73, 0, 195, 8, 196, 31, 73, 13, 227, 0, 195, 8, 196, 73, 13, 227, 0, 0, 71, 0, 123, 0, 0, 198, 0, 233, 0, 31, 234, 0, 198, 8, 233, 0, 198, 8, 31, 234, 0, 199, 8, 200, 0, 200, 0, 73, 0, 142, 234, 0, 142, 140, 233, 141, 0, 201, 8, 73, 0, 201, 8, 73, 13, 227, 0, 73, 0, 73, 13, 227, 0, 202, 203, 0, 0, 206, 210, 137, 0, 211, 137, 0, 0, 207, 97, 183, 71, 138, 194, 139, 204, 205, 0, 137, 0, 140, 146, 141, 0, 208, 0, 111, 0, 0, 208, 0, 209, 0, 208, 209, 0, 110, 0, 109, 0, 108, 0, 105, 0, 106, 0, 107, 0, 210, 8, 73, 0, 210, 8, 73, 13, 227, 0, 73, 0, 73, 13, 227, 0, 211, 8, 71, 13, 227, 0, 98, 71, 13, 227, 0, 0, 213, 0, 213, 8, 233, 0, 233, 0, 122, 138, 248, 139, 13, 233, 0, 234, 13, 31, 234, 0, 234, 13, 31, 62, 220, 225, 0, 216, 0, 234, 51, 0, 51, 234, 0, 234, 52, 0, 52, 234, 0, 62, 220, 225, 0, 63, 233, 0, 218, 0, 233, 49, 220, 0, 138, 233, 139, 0, 233, 25, 233, 26, 233, 0, 252, 0, 217, 0, 228, 0, 60, 233, 0, 64, 224, 0, 0, 123, 138, 215, 250, 139, 0, 234, 13, 233, 0, 234, 14, 233, 0, 234, 15, 233, 0, 234, 16, 233, 0, 234, 17, 233, 0, 234, 18, 233, 0, 234, 19, 233, 0, 234, 20, 233, 0, 234, 21, 233, 0, 234, 22, 233, 0, 234, 23, 233, 0, 234, 24, 233, 0, 53, 233, 0, 54, 233, 0, 55, 233, 0, 56, 233, 0, 57, 233, 0, 58, 233, 0, 59, 233, 0, 233, 29, 233, 0, 233, 31, 233, 0, 233, 30, 233, 0, 233, 44, 233, 0, 233, 42, 233, 0, 233, 43, 233, 0, 233, 45, 233, 0, 233, 46, 233, 0, 233, 47, 233, 0, 233, 36, 233, 0, 233, 38, 233, 0, 233, 40, 233, 0, 233, 41, 233, 0, 233, 27, 233, 0, 233, 28, 233, 0, 233, 9, 233, 0, 233, 11, 233, 0, 233, 10, 233, 0, 233, 34, 233, 0, 233, 35, 233, 0, 233, 32, 233, 0, 233, 33, 233, 0, 233, 37, 233, 0, 233, 39, 233, 0, 42, 233, 0, 43, 233, 0, 48, 233, 0, 50, 233, 0, 71, 138, 197, 139, 0, 71, 136, 71, 138, 197, 139, 0, 71, 136, 238, 138, 197, 139, 0, 238, 138, 197, 139, 0, 71, 0, 221, 0, 240, 120, 244, 222, 0, 240, 0, 222, 223, 0, 0, 120, 244, 0, 0, 138, 139, 0, 138, 233, 139, 0, 0, 138, 197, 139, 0, 69, 0, 70, 0, 79, 0, 127, 0, 128, 0, 124, 0, 125, 0, 126, 0, 226, 0, 71, 0, 42, 227, 0, 43, 227, 0, 123, 138, 230, 139, 0, 229, 0, 226, 0, 71, 0, 229, 0, 71, 136, 71, 0, 0, 232, 231, 0, 0, 8, 0, 232, 8, 227, 121, 227, 0, 232, 8, 227, 0, 227, 121, 227, 0, 227, 0, 234, 0, 214, 0, 239, 120, 244, 237, 235, 0, 239, 0, 235, 236, 0, 0, 120, 244, 237, 0, 138, 197, 139, 0, 0, 241, 0, 247, 241, 0, 240, 0, 219, 0, 241, 0, 247, 241, 0, 71, 136, 238, 0, 241, 61, 243, 143, 0, 241, 140, 233, 141, 0, 242, 0, 73, 0, 142, 140, 233, 141, 0, 0, 233, 0, 245, 0, 238, 0, 245, 61, 243, 143, 0, 245, 140, 233, 141, 0, 246, 0, 71, 0, 140, 233, 141, 0, 142, 0, 247, 142, 0, 248, 8, 249, 0, 249, 0, 0, 234, 0, 122, 138, 248, 139, 0, 0, 251, 231, 0, 251, 8, 233, 121, 233, 0, 251, 8, 233, 0, 233, 121, 233, 0, 233, 0, 251, 8, 233, 121, 31, 234, 0, 251, 8, 31, 234, 0, 233, 121, 31, 234, 0, 31, 234, 0, 113, 138, 153, 139, 0, 114, 138, 234, 139, 0, 5, 138, 233, 139, 0, 12, 233, 0, 3, 233, 0, 4, 233, 0, 6, 233, 0, 7, 233, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, 116, 120, 134, 138, 140, 142, 146, 161, 167, 171, 187, 202, 204, 206, 210, 218, 222, 232, 236, 286, 297, 310, 317, 325, 332, 340, 347, 355, 363, 371, 379, 381, 394, 396, 403, 423, 427, 438, 448, 450, 457, 463, 482, 488, 507, 513, 532, 538, 561, 567, 594, 600, 632, 638, 660, 666, 690, 696, 716, 722, 741, 747, 767, 773, 806, 810, 832, 836, 844, 848, 853, 886, 890, 896, 904, 921, 944, 948, 969, 991, 993, 997, 1001, 1005, 1009, 1015, 1017, 1023, 1028, 1036, 1040, 1044, 1046, 1052, 1078, 1082, 1086, 1092, 1115, 1121, 1133, 1139, 1153, 1155, 1160, 1167, 1171, 1178, 1182, 1189, 1193, 1200, 1202, 1209, 1211, 1217, 1225, 1235, 1246, 1257, 1262, 1267, 1273, 1281, 1285, 1289, 1295, 1308, 1316, 1318, 1322, 1327, 1334, 1339, 1343, 1345, 1349, 1355, 1360, 1366, 1368, 1375, 1385, 1391, 1396, 1400, 1408, 1430, 1432, 1441, 1443, 1447, 1451, 1457, 1459, 1466, 1468, 1470, 1472, 1474, 1476, 1480, 1485, 1491, 1493, 1500, 1506, 1514, 1518, 1522, 1527, 1531, 1544, 1550, 1558, 1560, 1564, 1568, 1572, 1576, 1581, 1586, 1588, 1593, 1601, 1607, 1609, 1611, 1613, 1617, 1623, 1628, 1649, 1653, 1657, 1661, 1665, 1669, 1673, 1677, 1681, 1685, 1689, 1693, 1699, 1704, 1709, 1714, 1719, 1724, 1729, 1736, 1740, 1744, 1748, 1753, 1763, 1773, 1777, 1781, 1785, 1789, 1793, 1797, 1801, 1805, 1809, 1813, 1817, 1821, 1825, 1829, 1833, 1837, 1841, 1845, 1849, 1853, 1857, 1863, 1867, 1871, 1875, 1881, 1883, 1887, 1891, 1895, 1899, 1905, 1911, 1915, 1923, 1933, 1937, 1943, 1945, 1947, 1949, 1951, 1953, 1955, 1957, 1961, 1963, 1965, 1969, 1973, 1983, 1987, 1989, 1991, 1995, 2001, 2005, 2014, 2018, 2022, 2027, 2032, 2036, 2040, 2042, 2046, 2050, 2054, 2062, 2068, 2074, 2078, 2084, 2086, 2092, 2094, 2098, 2100, 2104, 2110, 2120, 2124, 2128, 2130, 2136, 2140, 2144, 2146, 2150, 2160, 2164, 2168, 2170, 2176, 2178, 2184, 2198, 2202, 2206, 2208, 2222, 2226, 2235, 2241, 2247, 2251, 2253, 2259, 2265, 2269, 2275, 2283, 2291, 2299, 2307, 2315, 2323, 2331 }; static const char * const yytname[] = { "$","error","$undefined.","T_INCLUDE", "T_INCLUDE_ONCE","T_EVAL","T_REQUIRE","T_REQUIRE_ONCE","','","T_LOGICAL_OR", "T_LOGICAL_XOR","T_LOGICAL_AND","T_PRINT","'='","T_PLUS_EQUAL","T_MINUS_EQUAL", "T_MUL_EQUAL","T_DIV_EQUAL","T_CONCAT_EQUAL","T_MOD_EQUAL","T_AND_EQUAL","T_OR_EQUAL", "T_XOR_EQUAL","T_SL_EQUAL","T_SR_EQUAL","'?'","':'","T_BOOLEAN_OR","T_BOOLEAN_AND", "'|'","'^'","'&'","T_IS_EQUAL","T_IS_NOT_EQUAL","T_IS_IDENTICAL","T_IS_NOT_IDENTICAL", "'<'","T_IS_SMALLER_OR_EQUAL","'>'","T_IS_GREATER_OR_EQUAL","T_SL","T_SR","'+'", "'-'","'.'","'*'","'/'","'%'","'!'","T_INSTANCEOF","'~'","T_INC","T_DEC","T_INT_CAST", "T_DOUBLE_CAST","T_STRING_CAST","T_ARRAY_CAST","T_OBJECT_CAST","T_BOOL_CAST", "T_UNSET_CAST","'@'","'['","T_NEW","T_CLONE","T_EXIT","T_IF","T_ELSEIF","T_ELSE", "T_ENDIF","T_LNUMBER","T_DNUMBER","T_STRING","T_STRING_VARNAME","T_VARIABLE", "T_NUM_STRING","T_INLINE_HTML","T_CHARACTER","T_BAD_CHARACTER","T_ENCAPSED_AND_WHITESPACE", "T_CONSTANT_ENCAPSED_STRING","T_ECHO","T_DO","T_WHILE","T_ENDWHILE","T_FOR", "T_ENDFOR","T_FOREACH","T_ENDFOREACH","T_DECLARE","T_ENDDECLARE","T_AS","T_SWITCH", "T_ENDSWITCH","T_CASE","T_DEFAULT","T_BREAK","T_CONTINUE","T_FUNCTION","T_CONST", "T_RETURN","T_TRY","T_CATCH","T_THROW","T_USE","T_GLOBAL","T_STATIC","T_ABSTRACT", "T_FINAL","T_PRIVATE","T_PROTECTED","T_PUBLIC","T_VAR","T_UNSET","T_ISSET","T_EMPTY", "T_HALT_COMPILER","T_CLASS","T_INTERFACE","T_EXTENDS","T_IMPLEMENTS","T_OBJECT_OPERATOR", "T_DOUBLE_ARROW","T_LIST","T_ARRAY","T_CLASS_C","T_METHOD_C","T_FUNC_C","T_LINE", "T_FILE","T_OPEN_TAG","T_OPEN_TAG_WITH_ECHO","T_CLOSE_TAG","T_START_HEREDOC", "T_END_HEREDOC","T_DOLLAR_OPEN_CURLY_BRACES","T_CURLY_OPEN","T_PAAMAYIM_NEKUDOTAYIM", "';'","'('","')'","'{'","'}'","'$'","']'","top_statement_list","top_statement", "inner_statement_list","inner_statement_list_with_assignment","inner_statement", "statement","@1","@2","@3","variable_list","control_structure","@4","@5","@6", "@7","@8","@9","@10","@11","@12","@13","@14","@15","old_elseif_list","old_else_single", "elseif_list","@16","else_single","@17","switch_case_list","case_list","case_separator", "possible_semicolon","foreach_optional_arg","foreach_variable","declare_list", "empty_or_additional_catch_list","additional_catch_list","additional_catch", "is_reference","function_declaration","@18","class_declaration","@19","@20", "class_entry_type","class_extends","implements","interface_extends","string_list", "empty_or_parameter_list","parameter_list","optional_class_type","empty_or_call_parameter_list", "call_parameter_list","global_var_list","global_var","static_var_list","class_statement_list", "class_statement","@21","method_body","variable_modifiers","empty_or_member_modifiers", "member_modifiers","member_modifier","class_variable_declaration","class_constant_declaration", "empty_or_expr_list","expr_list","expr_without_variable","@22","assignment", "cast","operator","function_call","class_name_reference","dynamic_class_name_reference", "dynamic_class_name_variable_properties","dynamic_class_name_variable_property", "exit_expr","ctor_arguments","common_scalar","static_scalar","scalar","class_constant", "empty_or_static_array_pair_list","possible_comma","static_array_pair_list", "expr","variable","variable_properties","variable_property","method_or_not", "variable_without_objects","base_variable_with_function_calls","base_variable", "reference_variable","compound_variable","dim_offset","object_property","object_dim_list", "variable_name","simple_indirect_reference","assignment_list","assignment_list_element", "empty_or_array_pair_list","array_pair_list","internal_function","" }; #endif static const short yyr1[] = { 0, 144, 144, 144, 145, 145, 145, 145, 146, 147, 147, 147, 148, 148, 148, 148, 149, 150, 151, 149, 152, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 149, 153, 153, 155, 154, 156, 154, 157, 154, 158, 154, 159, 154, 160, 154, 161, 154, 162, 154, 163, 154, 164, 154, 165, 154, 166, 154, 167, 167, 168, 168, 169, 170, 169, 171, 172, 171, 173, 173, 174, 174, 174, 175, 175, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 181, 182, 183, 183, 185, 184, 187, 186, 188, 186, 189, 189, 189, 190, 190, 191, 191, 192, 192, 193, 193, 194, 194, 195, 195, 195, 195, 195, 195, 195, 195, 196, 196, 196, 197, 197, 198, 198, 198, 198, 199, 199, 200, 200, 200, 201, 201, 201, 201, 202, 202, 203, 203, 204, 203, 205, 205, 206, 206, 207, 207, 208, 208, 209, 209, 209, 209, 209, 209, 210, 210, 210, 210, 211, 211, 212, 212, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 215, 214, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 219, 219, 219, 219, 220, 220, 221, 221, 222, 222, 223, 224, 224, 224, 225, 225, 226, 226, 226, 226, 226, 226, 226, 226, 227, 227, 227, 227, 227, 227, 228, 228, 228, 229, 230, 230, 231, 231, 232, 232, 232, 232, 233, 233, 234, 234, 235, 235, 236, 237, 237, 238, 238, 239, 239, 240, 240, 240, 241, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 249, 250, 250, 251, 251, 251, 251, 251, 251, 251, 251, 252, 252, 252, 252, 252, 252, 252, 252 }; static const short yyr2[] = { 0, 0, 5, 2, 1, 1, 1, 4, 1, 0, 5, 2, 1, 1, 1, 4, 1, 0, 0, 9, 0, 4, 2, 3, 2, 3, 2, 3, 3, 3, 3, 1, 3, 1, 2, 1, 1, 5, 3, 1, 3, 0, 11, 0, 9, 0, 6, 0, 13, 0, 10, 0, 6, 0, 12, 0, 9, 0, 9, 0, 6, 0, 8, 0, 14, 0, 7, 0, 3, 0, 0, 7, 0, 0, 3, 4, 5, 0, 5, 4, 1, 1, 0, 1, 0, 2, 1, 2, 3, 5, 0, 1, 1, 2, 8, 0, 1, 0, 10, 0, 8, 0, 7, 1, 2, 2, 0, 2, 0, 2, 0, 2, 1, 3, 1, 0, 2, 3, 5, 4, 4, 5, 7, 6, 0, 1, 1, 0, 1, 1, 2, 3, 4, 3, 1, 1, 2, 4, 3, 5, 1, 3, 2, 0, 3, 2, 0, 9, 1, 3, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 3, 5, 1, 3, 5, 4, 0, 1, 3, 1, 6, 4, 6, 1, 2, 2, 2, 2, 3, 2, 1, 3, 3, 5, 1, 1, 1, 2, 2, 0, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 4, 6, 6, 4, 1, 1, 4, 1, 2, 0, 2, 0, 2, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 4, 1, 1, 1, 1, 3, 0, 2, 0, 1, 5, 3, 3, 1, 1, 1, 5, 1, 2, 0, 3, 3, 0, 1, 2, 1, 1, 1, 2, 3, 4, 4, 1, 1, 4, 0, 1, 1, 1, 4, 4, 1, 1, 3, 1, 2, 3, 1, 0, 1, 4, 0, 2, 5, 3, 3, 1, 6, 4, 4, 2, 4, 4, 4, 2, 2, 2, 2, 2 }; static const short yydefact[] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 251, 0, 256, 257, 271, 301, 33, 258, 0, 61, 0, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 261, 262, 263, 259, 260, 31, 0, 35, 0, 20, 312, 3, 4, 16, 5, 6, 0, 283, 175, 187, 182, 294, 270, 188, 272, 0, 282, 0, 285, 293, 295, 300, 0, 186, 333, 282, 334, 0, 335, 336, 332, 236, 237, 238, 239, 0, 177, 179, 205, 206, 207, 208, 209, 210, 211, 189, 244, 254, 245, 247, 295, 0, 181, 0, 190, 0, 0, 127, 0, 171, 0, 0, 168, 0, 0, 0, 22, 0, 24, 0, 96, 0, 26, 0, 63, 0, 135, 0, 0, 134, 140, 0, 104, 105, 0, 0, 0, 0, 110, 316, 191, 0, 0, 9, 0, 106, 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, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, 178, 127, 0, 303, 0, 313, 296, 0, 0, 0, 0, 127, 180, 0, 296, 252, 0, 0, 273, 297, 291, 0, 0, 0, 128, 129, 0, 30, 0, 0, 0, 169, 0, 0, 0, 0, 23, 25, 0, 27, 9, 38, 0, 136, 0, 28, 0, 0, 29, 0, 39, 0, 0, 0, 0, 0, 0, 317, 0, 315, 319, 32, 184, 0, 8, 0, 0, 108, 227, 229, 228, 0, 225, 226, 212, 214, 213, 232, 233, 230, 231, 221, 234, 222, 235, 223, 224, 216, 217, 215, 218, 219, 220, 183, 0, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 0, 310, 0, 306, 290, 305, 309, 304, 0, 0, 193, 331, 0, 297, 0, 249, 253, 17, 127, 127, 292, 130, 240, 0, 170, 0, 45, 168, 0, 0, 0, 59, 51, 124, 0, 0, 133, 0, 0, 265, 0, 264, 141, 269, 138, 0, 0, 329, 330, 7, 112, 111, 101, 316, 316, 0, 0, 324, 0, 276, 21, 0, 11, 12, 13, 14, 282, 302, 107, 0, 0, 0, 0, 173, 2, 243, 0, 127, 287, 303, 0, 298, 299, 255, 246, 41, 0, 0, 0, 0, 131, 0, 43, 0, 0, 0, 84, 86, 88, 0, 57, 0, 0, 125, 126, 0, 114, 0, 0, 137, 266, 267, 0, 274, 0, 40, 37, 0, 143, 0, 314, 0, 328, 0, 192, 277, 320, 0, 0, 109, 99, 185, 254, 311, 0, 284, 0, 0, 0, 248, 9, 18, 241, 242, 132, 0, 9, 46, 168, 87, 0, 0, 0, 9, 60, 82, 82, 52, 0, 124, 0, 116, 0, 273, 281, 0, 276, 139, 113, 152, 318, 172, 0, 323, 0, 322, 0, 193, 143, 174, 289, 0, 286, 307, 308, 250, 65, 69, 0, 0, 0, 85, 55, 89, 0, 83, 77, 77, 97, 0, 117, 0, 0, 0, 268, 277, 275, 0, 159, 160, 161, 158, 157, 156, 151, 102, 142, 0, 0, 150, 154, 0, 327, 326, 0, 15, 10, 152, 290, 67, 72, 62, 0, 49, 53, 0, 0, 0, 0, 9, 0, 120, 0, 119, 0, 280, 279, 0, 164, 0, 95, 155, 0, 145, 0, 321, 100, 288, 0, 0, 0, 0, 73, 19, 44, 47, 0, 9, 56, 58, 0, 0, 0, 75, 0, 121, 0, 118, 0, 0, 0, 0, 0, 144, 0, 0, 325, 0, 9, 0, 0, 0, 9, 50, 0, 76, 0, 80, 81, 9, 98, 0, 123, 0, 278, 167, 165, 162, 0, 0, 0, 68, 42, 0, 74, 0, 0, 9, 79, 122, 9, 0, 124, 166, 0, 70, 0, 54, 78, 0, 163, 0, 9, 0, 48, 90, 146, 66, 71, 0, 64, 91, 92, 0, 0, 93, 148, 9, 147, 0, 0, 0, 149, 0, 9, 0, 94, 0, 0 }; static const short yydefgoto[] = { 1, 69, 267, 268, 373, 70, 397, 498, 161, 253, 71, 451, 457, 404, 603, 577, 413, 578, 546, 464, 412, 128, 244, 540, 571, 541, 644, 574, 602, 468, 548, 610, 507, 462, 407, 238, 651, 652, 653, 139, 72, 550, 73, 489, 429, 74, 271, 381, 259, 362, 416, 417, 418, 227, 228, 146, 147, 149, 480, 527, 654, 659, 528, 529, 530, 531, 560, 532, 234, 235, 75, 264, 76, 77, 78, 79, 115, 116, 395, 450, 122, 216, 80, 353, 81, 82, 476, 437, 477, 83, 93, 446, 493, 389, 85, 86, 87, 88, 89, 319, 315, 316, 317, 90, 262, 263, 369, 370, 91 }; static const short yypact[] = {-32768, 617, 2036, 2036, -61, 2036, 2036, 2036, 2036, 2036, 2036, 2036, -12, -12, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, -4, 2036, -58, -55,-32768,-32768, -65,-32768,-32768, -32768, 2036,-32768, -44, -29, -16, 10, 66, 978, 1071, 81, 1164, -25, 2036,-32768, -8, 60, 27, 39, 94, 102, 104, 107,-32768, 86, 115, 117,-32768,-32768,-32768, -32768,-32768,-32768, 2036,-32768, 2036,-32768, 121,-32768,-32768, -32768,-32768,-32768, 90,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 2741, 761, 128, 147,-32768, -30,-32768, 8, -32768, 3145, 890, 3145, 2036, 3145, 3145, 3245, 58, 58, 220,-32768, -37,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768, 134, 136,-32768, 152, -15, 8,-32768, 1257,-32768, 2036, 170, 1355, 14, 3145, 875, 2036, 2036, 2036, 204, 2036,-32768, 2782,-32768, 2823,-32768, 205,-32768, 2864,-32768, 2905,-32768, -5, 15,-32768, 264, 71,-32768, -32768, -12, -12, -12, 140, 162, 160,-32768, 74, 2331, -32768, 2036, 163, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, -4,-32768, 1453, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036, 2036,-32768,-32768, 1355, -1, 2036, 2036, 121, -20, 1453, 2372, 183, 149, 1355,-32768, -1, -15,-32768, 2413, 2454, 145, 146, -15, 8, -12, 148, 277, 3145, 2036, -32768, 207, 2495, 153, 284, 3060, 280, 17, 2536,-32768, -32768, 156,-32768,-32768,-32768, 2036,-32768, -8,-32768, 194, 224,-32768, 19,-32768, 20, 159, 164, 228, 173, 172, -32768, 48,-32768, 1551,-32768,-32768, 174, 746, 2092, 229, 195, 3185, 3222, 3245, 3102, 3290, 1308, 1405, 1502, 1599, 1697, 1697, 1697, 1697, 545, 545, 545, 545, 42, 42, 58, 58, 58, 220, 220, 220,-32768, -18, 521, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 3245, 187,-32768, 2036,-32768, 196, -14,-32768, 3145, 186, 2156, 3245,-32768, 145,-32768, 192,-32768,-32768, 307, 1355, 1355, -15,-32768,-32768, 1649, 3145, 197, 311, 2036, 5, 194, 267, 314,-32768, -23, 200, 2207,-32768, 194, 194, 209, 208,-32768,-32768,-32768, 330, -12, 210,-32768,-32768,-32768, -32768, 340,-32768, 160, 160, 343, -12, 2946, 218, 351, -32768, 223,-32768,-32768,-32768,-32768, 1045,-32768,-32768, 228, 230, 2036, -4,-32768,-32768,-32768, 2249, 1355,-32768, 2036, 2036,-32768,-32768,-32768, 243,-32768, 875, 232, 235, -12, 3145, 2036,-32768, 875, 231, -12, 254,-32768,-32768, 364, -32768, 875, 6,-32768,-32768, 239, 371, 23, 281,-32768, -32768,-32768, 310, 194, 194,-32768,-32768, 312,-32768, 49, -32768, 2036,-32768, 1747,-32768, 1845,-32768, 246, 1453, 340, -32768, 3268, 136,-32768, 248, 270, 241, 2290, -1,-32768, -32768,-32768,-32768,-32768,-32768, 2577,-32768,-32768, 2036,-32768, 5, 252, 194,-32768,-32768, 256, 256,-32768, 258, -26, 326, 389, 265,-32768, 285, 266, 399,-32768,-32768, 198, -32768, 3245, -12, 3145, -12, 2987, 271, 3016,-32768,-32768, -32768, -1,-32768,-32768,-32768,-32768,-32768,-32768, 273, 329, 275,-32768, 390,-32768, 328,-32768,-32768,-32768,-32768, 29, 406, 194, 350, 194,-32768, 194,-32768, 352,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 349, 331, 245, -32768, 84,-32768,-32768, 1943,-32768,-32768, 387, 196, 191, 193,-32768, 288, 407,-32768, 875, 298, 157, -43,-32768, 363, 425, 194,-32768, 366,-32768, 319, 428, 431, 87, 81,-32768, 374,-32768, -12, 3145,-32768,-32768, 308, 421, 382, 315,-32768,-32768,-32768,-32768, 875,-32768,-32768,-32768, 317, 2036, 7,-32768, 318, 442, 194,-32768, 321, 194, 194, 194, 383,-32768, 392, 445,-32768, 2036,-32768, 327, 2036, 875,-32768,-32768, 378,-32768, 2700,-32768,-32768,-32768, -32768, 194,-32768, 332,-32768,-32768,-32768, 453, 333, 194, 2618,-32768,-32768, 2659,-32768, 384, 336,-32768,-32768,-32768, -32768, 194, -23,-32768, 441,-32768, 337,-32768,-32768, 334, -32768, 338,-32768, 875,-32768, 377,-32768,-32768,-32768, 341, -32768, 377,-32768, -88, 409,-32768,-32768,-32768,-32768, 410, 347, 345,-32768, 342,-32768, 358,-32768, 500,-32768 }; static const short yypgoto[] = {-32768, -32768, -234,-32768,-32768, -126,-32768,-32768,-32768, 348,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -6, -104, 38,-32768, 45,-32768,-32768,-32768, -145, -53, 242, -32768, 244,-32768,-32768,-32768,-32768,-32768,-32768, 129, -119, -32768, 46, -176,-32768,-32768, 269,-32768, 31,-32768,-32768, -32768,-32768,-32768,-32768, -9,-32768,-32768, -327, 26,-32768, -32768,-32768,-32768,-32768,-32768, -163,-32768,-32768,-32768,-32768, 72, -101, 24,-32768, 18,-32768, 47,-32768, -2, 62, -32768,-32768, -17, -100,-32768, 13, 21,-32768, 135, -197, -32768,-32768, 12, 165, 161,-32768,-32768,-32768 }; #define YYLAST 3339 static const short yytable[] = { 92, 94, 232, 96, 97, 98, 99, 100, 101, 102, 345, 405, 106, 107, 108, 109, 110, 111, 112, 113, 326, 120, 230, 248, 223, 341, 297, 356, 356, 311, 127, 207, 466, 608, 119, 117, 406, 135, 137, 325, 141, 207, 143, 118, 383, 414, 207, 390, 414, 657, 582, 583, 658, 103, 471, 29, 365, 365, 126, 103, 551, 29, 127, 84, 160, 144, 103, 114, 29, 29, 312, 124, 29, 125, 104, 105, 103, 95, 29, 251, 121, 29, 230, 123, 183, 184, 185, 186, 187, 188, 159, 189, 563, 212, 129, 593, 472, 415, 584, 213, 415, 125, 552, 186, 187, 188, 314, 189, -291, 130, 208, 210, 138, 223, 324, 142, -115, 314, -292, 220, 208, 221, 131, 229, 68, 208, 391, 233, 127, 236, 68, 239, 501, 148, 145, 246, 225, 68, 68, 313, 218, 68, 374, 150, 609, 224, 467, 68, 132, 352, 209, 231, 249, 398, 399, 151, 342, 156, 357, 358, 269, 163, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 366, 481, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 119, 117, 229, 133, 318, 320, 247, 252, 321, 118, 265, 445, 229, 254, 254, 256, 497, 225, 261, 443, 564, 29, 500, 594, 225, 225, 224, 335, 225, 505, 103, 152, 29, 224, 224, 348, 349, 224, 352, 153, 222, 154, 29, 346, 155, 331, 352, 352, 581, 582, 583, 496, 157, 323, 158, 29, 569, 570, 572, 573, 162, 368, 26, 27, 350, 205, 206, 354, 189, 214, 452, 217, 31, 215, 237, 242, 250, 458, 257, 258, 270, 260, 329, 330, 334, 465, 333, 332, 336, 338, 68, 230, 340, 344, 539, 518, 355, 359, 361, 379, 360, 68, 519, 520, 521, 522, 523, 524, 525, 364, 387, 68, 363, 380, 371, 585, 351, 58, 59, 60, 61, 62, 352, 352, 68, 386, 229, 229, 392, 377, 394, 401, 396, 388, 402, 127, 403, 410, 526, 411, 419, -153, 425, 605, 423, 424, 427, 428, 314, 519, 520, 521, 522, 523, 524, 432, 435, 354, 436, 384, 438, 352, 449, 409, 622, 354, 354, 459, 626, 441, 453, 421, 422, 454, 461, 629, 463, 469, 470, 442, 474, 473, 479, 494, 487, 229, 491, 318, 448, 492, 503, 314, 506, 639, 119, 117, 640, 509, 511, 456, 408, 512, 513, 118, 515, 514, 516, 536, 648, 542, 352, 543, 352, 544, 352, 545, 547, 426, 553, 579, 555, 559, 558, 661, 575, 261, 261, 561, 433, 482, 666, 484, 576, 486, 580, 586, 488, 587, 589, 590, 591, 354, 354, 592, 596, 598, 599, 475, 478, 600, 604, 352, 601, 606, 612, 618, 127, 620, 611, 614, 225, 455, 619, 623, 627, 632, 643, 460, 637, 224, 633, 631, 638, 645, 646, 625, 647, 650, 655, 660, 354, 665, 662, 664, 518, 352, 504, 663, 352, 352, 352, 519, 520, 521, 522, 523, 524, 525, 667, 669, 255, 549, 628, 225, 508, 502, 656, 595, 440, 375, 352, 376, 224, 642, 490, 510, 347, 649, 352, 538, 562, 568, 408, 517, 447, 431, 0, 567, 430, 354, 352, 354, 566, 354, 0, 554, 0, 556, 0, 557, 0, 0, 0, 0, 533, 167, 534, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 354, 0, 0, 0, 0, 0, 588, 0, 0, 607, -32768,-32768,-32768,-32768, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 621, 0, 0, 624, 0, 0, 0, 0, 0, 354, 0, 0, 354, 354, 354, 613, 0, 0, 615, 616, 617, 668, 0, 0, 2, 3, 4, 5, 6, 0, 0, 597, 0, 7, 354, 0, 0, 0, 0, 0, 630, 0, 354, 0, 0, 0, 0, 0, 634, 0, 0, 0, 0, 0, 354, 0, 0, 0, 0, 0, 641, 0, 385, 8, 9, 0, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 0, 0, 0, 26, 27, 28, 0, 29, 0, 30, 0, 0, 0, 31, 32, 33, 34, 0, 35, 0, 36, 0, 37, 0, 0, 38, 0, 0, 0, 39, 40, 41, 0, 42, 43, 0, 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, 50, 51, 52, 53, 54, 55, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 2, 3, 4, 5, 6, 65, 66, 0, 67, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 0, 0, 8, 9, 0, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 203, 204, 0, 26, 27, 28, 0, 29, 0, 30, 0, 0, 0, 31, 32, 33, 34, 0, 35, 0, 36, 0, 37, 0, 0, 38, 0, 0, 0, 39, 40, 41, 0, 42, 43, 0, 44, 45, 46, 47, 48, 49, 0, 0, 0, 0, 50, 51, 52, 372, 54, 55, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 2, 3, 4, 5, 6, 65, 66, 0, 67, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 0, 0, 8, 9, 0, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 25, 203, 204, 0, 26, 27, 28, 0, 29, 0, 30, 0, 0, 0, 31, 32, 33, 34, 0, 35, 0, 36, 0, 37, 0, 0, 38, 0, 0, 0, 39, 40, 0, 0, 42, 43, 0, 44, 45, 46, 47, 2, 3, 4, 5, 6, 0, 50, 51, 52, 7, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 63, 64, 0, 0, 0, 0, 0, 0, 65, 66, 0, 67, 0, 68, 0, 0, 8, 9, 0, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 439, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 0, 0, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 203, 204, 0, 0, 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 8, 9, 134, 66, 0, 0, 10, 68, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 8, 9, 136, 66, 0, 0, 10, 68, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 8, 9, 140, 66, 0, 0, 10, 68, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 226, 0, 0, 0, 0, 0, 0, 0, 0, 66, 219, 8, 9, 68, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 298, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 8, 9, 68, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 367, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 8, 9, 68, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 400, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 8, 9, 68, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31,-32768,-32768, -32768,-32768, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 483, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 8, 9, 68, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 485, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 8, 9, 68, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 565, 0, 0, 0, 0, 0, 0, 0, 0, 66, 0, 8, 9, 68, 0, 0, 0, 10, 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 0, 0, 0, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 0, 0, 0, 0, 0, 0, 8, 9, 0, 66, 0, 0, 10, 68, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 0, 22, 23, 24, 164, 165, 166, 0, 26, 27, 28, 0, 29, 0, 0, 0, 0, 0, 31, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 0, 0, 0, 0, 0, 0, 51, 52, 0, 0, 0, 0, 0, 0, 0, 56, 57, 58, 59, 60, 61, 62, 164, 165, 166, 0, 0, 0, 0, 0, 0, 66, 0, 0, 0, 68, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 378, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 164, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 393, 189, 164, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 0, 420, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 0, 0, 495, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 266, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 322, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 328, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 343, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 499, 0, 0, 0, 0, 0, 0, 0, 0, 167, 608, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 0, 0, 636, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 609, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 190, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 164, 165, 166, 0, 0, 243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 0, 0, 0, 167, 245, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 0, 434, 0, 164, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 535, 189, 0, 164, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 382, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 339, 189, 0, 537, 164, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 165, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 166, 189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 167, 0, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 167, 189, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 0, 189 }; static const short yycheck[] = { 2, 3, 128, 5, 6, 7, 8, 9, 10, 11, 244, 338, 14, 15, 16, 17, 18, 19, 20, 21, 217, 23, 8, 8, 124, 8, 189, 8, 8, 205, 32, 61, 26, 26, 22, 22, 31, 39, 40, 215, 42, 61, 44, 22, 62, 71, 61, 61, 71, 137, 93, 94, 140, 71, 31, 73, 8, 8, 32, 71, 31, 73, 64, 1, 66, 73, 71, 71, 73, 73, 71, 136, 73, 138, 12, 13, 71, 138, 73, 8, 138, 73, 8, 138, 42, 43, 44, 45, 46, 47, 64, 49, 8, 95, 138, 8, 73, 123, 141, 136, 123, 138, 73, 45, 46, 47, 206, 49, 138, 138, 140, 90, 31, 213, 214, 140, 139, 217, 138, 121, 140, 123, 138, 125, 142, 140, 140, 129, 130, 131, 142, 133, 459, 73, 142, 140, 124, 142, 142, 140, 119, 142, 268, 116, 137, 124, 140, 142, 138, 250, 142, 137, 137, 329, 330, 116, 139, 71, 139, 139, 162, 71, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 139, 139, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 189, 189, 205, 138, 207, 208, 145, 137, 211, 189, 137, 388, 215, 152, 153, 154, 451, 206, 157, 383, 137, 73, 457, 137, 213, 214, 206, 230, 217, 464, 71, 138, 73, 213, 214, 42, 43, 217, 340, 138, 71, 138, 73, 246, 138, 225, 348, 349, 92, 93, 94, 449, 138, 71, 138, 73, 66, 67, 66, 67, 140, 264, 69, 70, 71, 138, 120, 250, 49, 136, 397, 120, 79, 138, 71, 71, 13, 404, 139, 118, 118, 122, 138, 138, 8, 412, 139, 226, 82, 137, 142, 8, 13, 138, 492, 98, 73, 139, 71, 71, 137, 142, 105, 106, 107, 108, 109, 110, 111, 138, 313, 142, 140, 119, 141, 550, 123, 124, 125, 126, 127, 128, 424, 425, 142, 139, 329, 330, 143, 268, 139, 334, 26, 138, 138, 338, 26, 71, 141, 26, 141, 97, 13, 578, 136, 138, 137, 8, 449, 105, 106, 107, 108, 109, 110, 13, 139, 340, 8, 298, 138, 463, 120, 340, 599, 348, 349, 137, 603, 140, 139, 348, 349, 139, 121, 610, 13, 139, 8, 382, 71, 101, 71, 143, 139, 388, 139, 390, 391, 120, 139, 492, 137, 628, 383, 383, 631, 140, 73, 402, 339, 13, 138, 383, 139, 121, 8, 137, 643, 137, 512, 83, 514, 139, 516, 26, 89, 356, 13, 546, 71, 73, 71, 658, 137, 364, 365, 97, 367, 432, 665, 434, 26, 436, 137, 73, 439, 13, 73, 121, 13, 424, 425, 13, 71, 138, 26, 424, 425, 68, 577, 553, 138, 137, 13, 73, 459, 13, 141, 139, 449, 400, 71, 137, 87, 13, 26, 406, 85, 449, 138, 140, 137, 137, 141, 602, 139, 101, 138, 71, 463, 140, 73, 139, 98, 587, 463, 141, 590, 591, 592, 105, 106, 107, 108, 109, 110, 111, 141, 0, 153, 508, 607, 492, 467, 461, 652, 561, 380, 268, 612, 268, 492, 633, 443, 470, 248, 644, 620, 489, 530, 539, 461, 477, 390, 365, -1, 141, 364, 512, 632, 514, 535, 516, -1, 512, -1, 514, -1, 516, -1, -1, -1, -1, 483, 25, 485, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 553, -1, -1, -1, -1, -1, 553, -1, -1, 582, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, 598, -1, -1, 601, -1, -1, -1, -1, -1, 587, -1, -1, 590, 591, 592, 587, -1, -1, 590, 591, 592, 0, -1, -1, 3, 4, 5, 6, 7, -1, -1, 565, -1, 12, 612, -1, -1, -1, -1, -1, 612, -1, 620, -1, -1, -1, -1, -1, 620, -1, -1, -1, -1, -1, 632, -1, -1, -1, -1, -1, 632, -1, 137, 42, 43, -1, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, -1, -1, -1, 69, 70, 71, -1, 73, -1, 75, -1, -1, -1, 79, 80, 81, 82, -1, 84, -1, 86, -1, 88, -1, -1, 91, -1, -1, -1, 95, 96, 97, -1, 99, 100, -1, 102, 103, 104, 105, 106, 107, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, 3, 4, 5, 6, 7, 137, 138, -1, 140, 12, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, 42, 43, -1, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 51, 52, -1, 69, 70, 71, -1, 73, -1, 75, -1, -1, -1, 79, 80, 81, 82, -1, 84, -1, 86, -1, 88, -1, -1, 91, -1, -1, -1, 95, 96, 97, -1, 99, 100, -1, 102, 103, 104, 105, 106, 107, -1, -1, -1, -1, 112, 113, 114, 115, 116, 117, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, 3, 4, 5, 6, 7, 137, 138, -1, 140, 12, 142, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, 42, 43, -1, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 65, 51, 52, -1, 69, 70, 71, -1, 73, -1, 75, -1, -1, -1, 79, 80, 81, 82, -1, 84, -1, 86, -1, 88, -1, -1, 91, -1, -1, -1, 95, 96, -1, -1, 99, 100, -1, 102, 103, 104, 105, 3, 4, 5, 6, 7, -1, 112, 113, 114, 12, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 129, 130, -1, -1, -1, -1, -1, -1, 137, 138, -1, 140, -1, 142, -1, -1, 42, 43, -1, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, 113, 114, -1, -1, -1, 51, 52, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, -1, -1, 42, 43, 137, 138, -1, -1, 48, 142, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, -1, -1, 42, 43, 137, 138, -1, -1, 48, 142, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, -1, -1, 42, 43, 137, 138, -1, -1, 48, 142, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 31, -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, 42, 43, 142, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 31, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, 42, 43, 142, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 31, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, 42, 43, 142, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 31, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, 42, 43, 142, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 31, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, 42, 43, 142, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 31, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, 42, 43, 142, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 31, -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, 42, 43, 142, -1, -1, -1, 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, -1, -1, -1, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, -1, -1, -1, -1, -1, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, -1, -1, -1, -1, -1, -1, 42, 43, -1, 138, -1, -1, 48, 142, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, -1, 62, 63, 64, 9, 10, 11, -1, 69, 70, 71, -1, 73, -1, -1, -1, -1, -1, 79, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, -1, -1, 113, 114, -1, -1, -1, -1, -1, -1, -1, 122, 123, 124, 125, 126, 127, 128, 9, 10, 11, -1, -1, -1, -1, -1, -1, 138, -1, -1, -1, 142, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 141, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 141, 49, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, -1, -1, 141, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, -1, -1, 139, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 9, 10, 11, -1, -1, 137, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, -1, -1, -1, 25, 137, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, -1, 121, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 121, 49, -1, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 90, 49, -1, 137, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 11, 49, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, -1, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 25, 49, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, -1, 49 }; #define YYPURE 1 /* * Parser class * * Made by Gerben VV */ /* constructor */ CParser::CParser(void) { ; } /* destructor */ CParser::~CParser(void) { ; } /* inits parser */ void CParser::Init(void) { ; } /* some parser definitions */ #define YYEMPTY -2 #define YYEOF 0 #define YYINITDEPTH PARSER_INIT_STACK #define YYMAXDEPTH PARSER_MAX_STACK /* disable unreachable code warning: bison puts a break after an exception */ //#pragma warn -8066 /* parses tokens to a node tree */ void CParser::Parse(void) { register int yystate; register int yyn; register short *yyssp; register CNode **yyvsp; short yyssa[YYINITDEPTH]; CNode *yyvsa[YYINITDEPTH]; short *yyss = yyssa; CNode **yyvs = yyvsa; int yystacksize = YYINITDEPTH; int yychar, yychar1; CNode *yylval, *yyval; int yylen; yystate = 0; yychar = YYEMPTY; yyssp = yyss - 1; yyvsp = yyvs; yynewstate: *++yyssp = yystate; if (yyssp >= (yyss + yystacksize - 1)) { CNode **yyvs1 = yyvs; short *yyss1 = yyss; int size = yyssp - yyss + 1; if (yystacksize >= YYMAXDEPTH) { throw new CException(E_INTERNAL, string("Parser stack overflow!")); } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) { yystacksize = YYMAXDEPTH; } yyss = (short *) alloca(yystacksize * sizeof(*yyssp)); memcpy(yyss, yyss1, size * sizeof(*yyssp)); yyvs = (CNode **) alloca(yystacksize * sizeof(*yyvsp)); memcpy(yyvs, yyvs1, size * sizeof(*yyvsp)); yyssp = yyss + size - 1; yyvsp = yyvs + size - 1; if (yyssp >= (yyss + yystacksize - 1)) { throw new CException(E_INTERNAL, string("Unknown parsing error!")); } } yyn = yypact[yystate]; if (yyn == YYFLAG) { goto yydefault; } if (yychar == YYEMPTY) { yychar = scanner->Scan(&yylval); debug("Token: %s", yytname[YYTRANSLATE(yychar)]); } if (yychar <= 0) { yychar1 = 0; yychar = YYEOF; } else { yychar1 = YYTRANSLATE(yychar); } yyn += yychar1; if ((yyn < 0) || (yyn > YYLAST) || (yycheck[yyn] != yychar1)) { goto yydefault; } yyn = yytable[yyn]; if (yyn < 0) { if (yyn == YYFLAG) { goto yyerrlab; } yyn = -yyn; goto yyreduce; } else if (yyn == 0) { goto yyerrlab; } if (yyn == YYFINAL) { return; } if (yychar != YYEOF) { yychar = YYEMPTY; } *++yyvsp = yylval; yystate = yyn; goto yynewstate; yydefault: yyn = yydefact[yystate]; if (yyn == 0) { goto yyerrlab; } yyreduce: yylen = yyr2[yyn]; if (yylen > 0) { yyval = yyvsp[1 - yylen]; } switch (yyn) { case 1: { yyval = NULL; ; break;} case 2: { if (settings->spaces_around_assignment_operators) { yyvsp[-2]->Surround(); } if (settings->align_assignments) { formatter->AddAssignment(yyvsp[-3], yyvsp[0]); } else { yyvsp[-3]->Append(yyvsp[0]); } yyvsp[-3]->PrependNewline(); ; break;} case 6: { yyval->PrependNewline(); ; break;} case 7: { if (settings->space_inside_empty_brackets) { yyvsp[-2]->Append(); } yyvsp[0]->token = ";"; //NOTE: could be an end tag! changing! yyval->PrependNewline(); yyval->Append(yyvsp[0]); scanner->state = SS_HALT_COMPILER; ; break;} case 8: { formatter->FormatAssignments(); ; break;} case 9: { yyval = NULL; ; break;} case 10: { if (settings->spaces_around_assignment_operators) { yyvsp[-2]->Surround(); } if (settings->align_assignments) { formatter->AddAssignment(yyvsp[-3], yyvsp[0]); } else { yyvsp[-3]->Append(yyvsp[0]); //NOTE: append $$ & $2? see below } yyvsp[-3]->PrependNewline(); ; break;} case 11: { formatter->FormatAssignments(); //NOTE: some control structures have Append(.., true), some have not... //TODO: so can't we fix that, and remove this? if (yyval) { yyval->Append(yyvsp[0], true); } else { yyval = yyvsp[0]; } ; break;} case 14: { yyval->PrependNewline(); ; break;} case 15: { //NOTE: different error maybe? throw new CException(E_SOURCE, "__halt_compiler should be on ground level!"); ; break;} case 16: { yyval->PrependNewline(); ; break;} case 17: { //NOTE: higher to bypass newline if (formatter->states.top() != S_ELSE) { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; } formatter->states.push(S_CONTROL_STRUCTURE); ; break;} case 18: { formatter->indent--; ; break;} case 19: { bool space = (settings->indent_style == OPT_KR) || (settings->indent_style == OPT_PEAR); //put a comment after control structures if (settings->comment_after_structures) { formatter->AddStructureComment(yyvsp[-6], yyvsp[-3]); } if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-6]->Surround(); } if (yyvsp[-1]) { if (space && (yyvsp[-3]->token[yyvsp[-3]->token.length() - 1] == '}') && (yyvsp[-3]->next == yyvsp[-1])) { yyvsp[-1]->Prepend(); } else { yyvsp[-1]->PrependNewline(); } yyvsp[-3]->Append(yyvsp[-1], true); } if (yyvsp[0]) { if (space && (yyvsp[-3]->token[yyvsp[-3]->token.length() - 1] == '}') && (yyvsp[-3]->next == yyvsp[0])) { yyvsp[0]->Prepend(); } else { yyvsp[0]->PrependNewline(); } yyvsp[-3]->Append(yyvsp[0], true); } yyval->Append(yyvsp[-3]); formatter->states.pop(); if (formatter->states.top() != S_ELSE) { formatter->states.pop(); yyval->PrependNewline(); } else { //NOTE: beware of comments and newlines yyval->Prepend(); formatter->indent++; } ; break;} case 20: { EState state = formatter->states.top(); if ((state != S_ELSE) && (state != S_CONTROL_STRUCTURE)) { formatter->states.push(S_CURLY_BRACKETS); formatter->indent++; } formatter->states.push(S_CURLY_BRACKETS); ; break;} case 21: { formatter->FormatOpenCurlyBracket(&yyval); formatter->FormatCloseCurlyBracket(yyvsp[0]); yyval->Append(yyvsp[0], true); //NOTE: must always be true! formatter->states.pop(); if (formatter->states.top() == S_CURLY_BRACKETS) { formatter->states.pop(); formatter->indent--; } ; break;} case 22: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 23: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 24: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 25: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 26: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 27: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 28: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 29: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 30: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 32: { // //formatter->HandleSemicolon($3); if (yyvsp[0]->token[0] != ';') { yyvsp[-1]->Append(); } yyval->Append(); yyval->Append(yyvsp[0]); //NOTE: here too?? well it becomes a T_ECHO => which has an expr list! ; break;} case 34: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 35: { if (yyval->token[0] == ';') { EState state = formatter->states.top(); if ((state != S_CONTROL_STRUCTURE) && (state != S_ELSE)) { if (settings->remove_semicolon_lines) { yyval->token = ""; //NOTE change! } else { yyval->PrependNewline(); } } } else { //an end tag if (scanner->in_short_tag) { yyval->Prepend(); } else { yyval->Prepend('\n'); } } ; break;} case 36: { throw new CException(E_SOURCE, "Use is not allowed!"); ; break;} case 37: { if (settings->space_inside_brackets) { yyvsp[-2]->Surround(); } formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 38: { formatter->HandleSemicolon(yyvsp[0]); yyval->PrependNewline(); yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 40: { yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 41: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 42: { formatter->states.pop(); formatter->indent--; formatter->HandleSemicolon(yyvsp[0]); //TODO: structure comments if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-8]->Surround(); } yyvsp[-1]->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 43: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 44: { formatter->states.pop(); formatter->indent--; formatter->HandleSemicolon(yyvsp[0]); //TODO: structure comments if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-6]->Surround(); } yyvsp[-1]->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 45: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 46: { formatter->states.pop(); formatter->indent--; //put a comment after control structures if (settings->comment_after_structures) { formatter->AddStructureComment(yyvsp[-3], yyvsp[0]); } if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-3]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 47: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 48: { formatter->states.pop(); formatter->indent--; formatter->HandleSemicolon(yyvsp[0]); //TODO: structure comments if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-11]->Append(); yyvsp[-5]->Prepend(' '); } yyvsp[-9]->Append(); yyvsp[-7]->Append(); yyvsp[-1]->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 49: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 50: { formatter->states.pop(); formatter->indent--; if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-8]->Append(); yyvsp[-2]->Prepend(' '); } //TODO: format for(;;) { .. } //append spaces yyvsp[-6]->Append(); yyvsp[-4]->Append(); //put a comment after control structures if (settings->comment_after_structures) { (yyvsp[-7] ? yyvsp[-7] : yyvsp[-6])->Append(yyvsp[-3] ? yyvsp[-3] : yyvsp[-4]); formatter->AddStructureComment(yyvsp[-7] ? yyvsp[-7] : yyvsp[-6], yyvsp[0]); } yyval->Append(yyvsp[0]); ; break;} case 51: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent += (settings->indent_case_default) + 1; ; break;} case 52: { formatter->states.pop(); formatter->indent -= (settings->indent_case_default) + 1; if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-3]->Surround(); } //put a comment after control structures if (settings->comment_after_structures) { formatter->AddStructureComment(yyvsp[-3], yyvsp[0]); } if (yyvsp[0]->token[0] != ':') { switch (settings->indent_style) { case OPT_KR: case OPT_PEAR: yyvsp[0]->Prepend(); break; default: yyvsp[0]->PrependNewline(); break; } } yyval->Append(yyvsp[0]); ; break;} case 53: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 54: { formatter->states.pop(); formatter->indent--; formatter->HandleSemicolon(yyvsp[0]); //TODO: structure comments if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-10]->Append(); yyvsp[-5]->Prepend(' '); } yyvsp[-8]->Surround(); yyvsp[-1]->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 55: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 56: { formatter->states.pop(); formatter->indent--; if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-7]->Append(); yyvsp[-2]->Prepend(' '); } //surround 'as' yyvsp[-5]->Surround(); //put a comment after control structures if (settings->comment_after_structures) { yyvsp[-6]->Append(yyvsp[-3] ? yyvsp[-3] : yyvsp[-4]); formatter->AddStructureComment(yyvsp[-6], yyvsp[0]); } yyval->Append(yyvsp[0]); ; break;} case 57: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 58: { formatter->states.pop(); formatter->indent--; formatter->HandleSemicolon(yyvsp[0]); //TODO: structure comments if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-6]->Surround(); } yyvsp[-1]->PrependNewline(); yyval->Append(yyvsp[0]); ; break;} case 59: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 60: { formatter->states.pop(); formatter->indent--; if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-3]->Surround(); } //put a comment after control structures if (settings->comment_after_structures) { formatter->AddStructureComment(yyvsp[-3], yyvsp[0]); } yyval->Append(yyvsp[0]); ; break;} case 61: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 62: { formatter->states.pop(); formatter->indent--; formatter->HandleSemicolon(yyvsp[0]); if (settings->space_after_structures) { yyvsp[-4]->Append(); } if (settings->space_inside_brackets) { yyvsp[-2]->Surround(); } //NOTE: there must be no structure comment here! yyvsp[-5]->Append(); //$3->Append($4, true); yyval->Append(yyvsp[0]); ; break;} case 63: { formatter->states.push(S_CURLY_BRACKETS); formatter->indent++; ; break;} case 64: { formatter->FormatOpenCurlyBracket(&yyvsp[-12]); formatter->FormatCloseCurlyBracket(yyvsp[-9]); formatter->FormatOpenCurlyBracket(&yyvsp[-3]); formatter->FormatCloseCurlyBracket(yyvsp[-1]); if (settings->space_after_structures) { yyvsp[-8]->Append(); } yyvsp[-12]->Append(yyvsp[-9], true); yyvsp[-3]->Append((yyvsp[0]) ? yyvsp[0] : yyvsp[-1], true); formatter->states.pop(); formatter->indent--; if (settings->space_inside_brackets) { yyvsp[-7]->Append(); yyvsp[-4]->Prepend(' '); } //NOTE: comment function does not work here; expects } as end! yyvsp[-8]->PrependNewline(); // 'cache' does not hang on '}' yyvsp[-6]->Append(); yyvsp[-12]->Append(yyvsp[-8], true); yyval->Append(yyvsp[-3]); ; break;} case 65: { yyval = NULL; ; break;} case 66: { if (settings->space_after_structures) { yyvsp[-5]->Append(); } if (settings->space_inside_brackets) { yyvsp[-3]->Surround(); } yyvsp[-5]->PrependNewline(-1); //TODO: structure comments if (!yyval) { yyval = yyvsp[-5]; } yyval->Append(yyvsp[0]); ; break;} case 67: { yyval = NULL; ; break;} case 68: { yyval->PrependNewline(-1); yyval->Append((yyvsp[0]) ? yyvsp[0] : yyvsp[-1]); ; break;} case 69: { yyval = NULL; ; break;} case 70: { formatter->indent++; ; break;} case 71: { bool space = (settings->indent_style == OPT_KR || settings->indent_style == OPT_PEAR); formatter->indent--; //put a comment after control structures if (settings->comment_after_structures) { formatter->AddStructureComment(yyvsp[-3], yyvsp[0]); } if (settings->space_after_structures) { yyvsp[-5]->Append(); } if (settings->space_inside_brackets) { yyvsp[-3]->Surround(); } if (yyval) { if (space && (yyval->token[yyval->token.length() - 1] == '}')) { //NOTE: filty hack yyvsp[-5]->Prepend(); } else { yyvsp[-5]->PrependNewline(); } } else { yyval = yyvsp[-5]; } yyval->Append(yyvsp[0]); ; break;} case 72: { yyval = NULL; ; break;} case 73: { formatter->states.push(S_ELSE); formatter->indent++; ; break;} case 74: { formatter->indent--; formatter->states.pop(); yyval->Append(yyvsp[0]); ; break;} case 75: { formatter->indent--; if (yyvsp[-2]) { yyvsp[-2]->token = ""; //NOTE: changing! } yyvsp[0]->PrependNewline(-settings->indent_case_default); if (yyvsp[-1]) { yyval->Append(yyvsp[-1], true); } formatter->indent++; yyval->Append(yyvsp[0], true); ; break;} case 76: { formatter->indent--; formatter->HandleSemicolon(yyvsp[0]); if (yyvsp[-3]) { yyvsp[-3]->token = ""; //NOTE: changing! } yyvsp[-1]->PrependNewline(-settings->indent_case_default); yyvsp[-1]->Append(yyvsp[0]); if (yyvsp[-2]) { yyval->Append(yyvsp[-2], true); } formatter->indent++; yyval->Append(yyvsp[-1], true); ; break;} case 77: { yyval = NULL; ; break;} case 78: { formatter->indent--; yyvsp[-3]->PrependNewline(); yyvsp[-3]->Append(); if (!yyval) { yyval = yyvsp[-3]; } else { yyval->Append(yyvsp[-3], true); } formatter->indent++; if (yyvsp[0]) { yyvsp[-1]->Append(yyvsp[0], true); } yyval->Append(yyvsp[-1]); ; break;} case 79: { formatter->indent--; yyvsp[-2]->PrependNewline(); if (!yyval) { yyval = yyvsp[-2]; } else { yyval->Append(yyvsp[-2], true); } formatter->indent++; if (yyvsp[0]) { yyvsp[-1]->Append(yyvsp[0], true); } yyval->Append(yyvsp[-1]); ; break;} case 82: { yyval = NULL; ; break;} case 84: { yyval = NULL; ; break;} case 85: { yyval->Append(yyvsp[0]); ; break;} case 87: { yyval->Append(yyvsp[0]); ; break;} case 88: { yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 89: { yyvsp[-3]->Append(); yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 90: { yyval = NULL; ; break;} case 93: { yyval->Append(yyvsp[0], true); ; break;} case 94: { formatter->FormatOpenCurlyBracket(&yyvsp[-2]); formatter->FormatCloseCurlyBracket(yyvsp[0]); formatter->indent--; yyvsp[-2]->Append(yyvsp[0], true); if (settings->space_after_structures) { yyval->Append(); } if (settings->space_inside_brackets) { yyvsp[-6]->Append(); yyvsp[-3]->Prepend(' '); } yyval->PrependNewline(); yyvsp[-5]->Append(); yyval->Append(yyvsp[-2]); formatter->indent++; ; break;} case 95: { yyval = NULL; ; break;} case 97: { formatter->states.push(S_CURLY_BRACKETS); formatter->indent++; ; break;} case 98: { formatter->FormatOpenCurlyBracket(&yyvsp[-3], true); formatter->FormatCloseCurlyBracket(yyvsp[0]); yyvsp[-3]->Append(yyvsp[0], true); formatter->states.pop(); formatter->indent--; if (yyvsp[-5]) { if (settings->space_inside_brackets) { yyvsp[-5]->Surround(); } } else if (settings->space_inside_empty_brackets) { yyvsp[-6]->Append(); } yyval->PrependNewline(); yyval->Append(); yyval->Append(yyvsp[-3]); ; break;} case 99: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 100: { formatter->FormatOpenCurlyBracket(&yyvsp[-3], true); formatter->FormatCloseCurlyBracket(yyvsp[0]); yyvsp[-3]->Append(yyvsp[0], true); formatter->states.pop(); formatter->indent--; yyval->Append(); yyval->Append(yyvsp[-3]); ; break;} case 101: { formatter->states.push(S_CONTROL_STRUCTURE); formatter->indent++; ; break;} case 102: { formatter->FormatOpenCurlyBracket(&yyvsp[-3], true); formatter->FormatCloseCurlyBracket(yyvsp[0]); yyvsp[-3]->Append(yyvsp[0], true); formatter->states.pop(); formatter->indent--; yyval->Append(); yyval->Append(yyvsp[-3]); ; break;} case 104: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 105: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 106: { yyval = NULL; ; break;} case 107: { yyval->Surround(); yyval->Append(yyvsp[0]); ; break;} case 108: { yyval = NULL; ; break;} case 109: { yyval->Surround(); yyval->Append(yyvsp[0]); ; break;} case 110: { yyval = NULL; ; break;} case 111: { yyval->Surround(); yyval->Append(yyvsp[0]); ; break;} case 113: { yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 115: { yyval = NULL; ; break;} case 116: { if (yyval) { yyval->Append(yyvsp[0]); } else { yyval = yyvsp[0]; } ; break;} case 117: { if (yyval) { yyval->Append(yyvsp[-1]); } else { yyval = yyvsp[-1]; } yyval->Append(yyvsp[0]); ; break;} case 118: { yyvsp[-1]->Surround(); if (yyval) { yyval->Append(yyvsp[0]); } else { yyval = yyvsp[-3]; yyval->Append(yyvsp[0]); } ; break;} case 119: { yyvsp[-1]->Surround(); if (yyval) { yyval->Append(yyvsp[0]); } else { yyval = yyvsp[-2]; yyval->Append(yyvsp[0]); } ; break;} case 120: { yyvsp[-2]->Append(); yyval->Append(yyvsp[0]); ; break;} case 121: { yyvsp[-3]->Append(); yyval->Append(yyvsp[0]); ; break;} case 122: { yyvsp[-5]->Append(); yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 123: { yyvsp[-4]->Append(); yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 124: { yyval = NULL; ; break;} case 125: { yyval->Append(); ; break;} case 126: { yyval->Append(); ; break;} case 127: { if (settings->space_inside_empty_brackets) { yyval = new CNode(); if (yyval == NULL) { throw new CException(E_MEMORY); } yyval->token = ' '; } else { yyval = NULL; } ; break;} case 128: { if (settings->space_inside_brackets) { yyval->Surround(); } ; break;} case 130: { yyval->Append(yyvsp[0]); ; break;} case 131: { yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 132: { yyvsp[-2]->Append(); yyval->Append(yyvsp[0]); ; break;} case 133: { yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 136: { yyval->Append(yyvsp[0]); ; break;} case 137: { yyval->Append(yyvsp[0]); ; break;} case 138: { yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 139: { yyvsp[-3]->Append(); yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 141: { yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 142: { yyvsp[0]->PrependNewline(); if (yyval) { yyval->Append(yyvsp[0], true); } else { yyval = yyvsp[0]; } ; break;} case 143: { yyval = NULL; ; break;} case 144: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 145: { yyval->Append(yyvsp[0]); ; break;} case 146: { formatter->states.push(S_CURLY_BRACKETS); formatter->indent++; ; break;} case 147: { formatter->states.pop(); formatter->indent--; if (yyvsp[-3]) { if (settings->space_inside_brackets) { yyvsp[-3]->Surround(); } } else if (settings->space_inside_empty_brackets) { yyvsp[-4]->Append(); } yyvsp[-7]->Append(); if (!yyval) { yyval = yyvsp[-7]; } yyval->Append(yyvsp[0]); ; break;} case 149: { formatter->FormatOpenCurlyBracket(&yyval, true); formatter->FormatCloseCurlyBracket(yyvsp[0]); yyval->Append(yyvsp[0], true); ; break;} case 152: { yyval = NULL; ; break;} case 153: { yyval->Append(); ; break;} case 155: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 162: { yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 163: { yyvsp[-3]->Append(); yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 165: { yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 166: { yyvsp[-3]->Append(); yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 167: { yyval->Append(); yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 168: { yyval = NULL; ; break;} case 170: { yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 172: { if (yyvsp[-3]) { if (settings->space_inside_brackets) { yyvsp[-3]->Surround(); } } else if (settings->space_inside_empty_brackets) { yyvsp[-4]->Append(); } yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 173: { yyval->Append(); yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 174: { yyval->Append(); yyvsp[-2]->Surround(); yyval->Append((yyvsp[0]) ? yyvsp[0] : yyvsp[-1]); //NOTE: warning? ; break;} case 176: { yyval->Append(yyvsp[0]); ; break;} case 177: { yyval->Append(yyvsp[0]); ; break;} case 178: { yyval->Append(yyvsp[0]); ; break;} case 179: { yyval->Append(yyvsp[0]); ; break;} case 180: { yyval->Append(); yyval->Append((yyvsp[0]) ? yyvsp[0] : yyvsp[-1]); ; break;} case 181: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 183: { yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 184: { if (settings->space_inside_brackets) { //maybe make another settings for this? yyvsp[-1]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 185: { yyvsp[-3]->Surround(); yyvsp[-1]->Surround(); yyval->Append(yyvsp[0]); ; break;} case 189: { yyval->Append(yyvsp[0]); ; break;} case 190: { if (yyvsp[0]) { yyval->Append(yyvsp[0]); } ; break;} case 191: { formatter->indent++; ; break;} case 192: { if (yyvsp[-1]) { if (settings->space_inside_brackets) { yyvsp[-1]->Surround(); } yyvsp[-1]->PrependNewline(); yyvsp[0]->PrependNewline(-1); yyvsp[-3]->Append(yyvsp[0], true); yyval->Append(yyvsp[-3]); } else if (settings->space_inside_empty_brackets) { yyvsp[-3]->Append(); yyval->Append(yyvsp[0]); } formatter->indent--; ; break;} case 193: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 194: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 195: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 196: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 197: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 198: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 199: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 200: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 201: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 202: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 203: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 204: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_assignment_operators); ; break;} case 205: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 206: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 207: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 208: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 209: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 210: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 211: { yyval->Append(); yyval->Append(yyvsp[0]); ; break;} case 212: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_bitwise_operators); ; break;} case 213: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_bitwise_operators); ; break;} case 214: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_bitwise_operators); ; break;} case 215: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], true); ; break;} case 216: { if (settings->spaces_around_math_operators) { yyvsp[-1]->Surround(); } else if (yyvsp[0]->token[0] == '+') { yyvsp[-1]->Append(); } yyval->Append(yyvsp[0]); ; break;} case 217: { if (settings->spaces_around_math_operators) { yyvsp[-1]->Surround(); } else if (yyvsp[0]->token[0] == '-') { yyvsp[-1]->Append(); } yyval->Append(yyvsp[0]); ; break;} case 218: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_math_operators); ; break;} case 219: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_math_operators); ; break;} case 220: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_math_operators); ; break;} case 221: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_relational_operators); ; break;} case 222: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_relational_operators); ; break;} case 223: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_bitwise_operators); ; break;} case 224: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_bitwise_operators); ; break;} case 225: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_logical_operators); ; break;} case 226: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_logical_operators); ; break;} case 227: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_logical_operators); ; break;} case 228: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_logical_operators); ; break;} case 229: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_logical_operators); ; break;} case 230: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_equality_operators); ; break;} case 231: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_equality_operators); ; break;} case 232: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_equality_operators); ; break;} case 233: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_equality_operators); ; break;} case 234: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_relational_operators); ; break;} case 235: { formatter->FormatOperator(yyval, yyvsp[-1], yyvsp[0], settings->spaces_around_relational_operators); ; break;} case 236: { yyval->Append(yyvsp[0]); ; break;} case 237: { yyval->Append(yyvsp[0]); ; break;} case 238: { yyval->Append(yyvsp[0]); ; break;} case 239: { yyval->Append(yyvsp[0]); ; break;} case 240: { yyval->Append(yyvsp[0]); ; break;} case 241: { yyval->Append(yyvsp[0]); ; break;} case 242: { yyval->Append(yyvsp[0]); ; break;} case 243: { yyval->Append(yyvsp[0]); ; break;} case 246: { yyval->Append((yyvsp[0]) ? yyvsp[0] : yyvsp[-1]); ; break;} case 248: { yyval->Append(yyvsp[0]); ; break;} case 249: { yyval = NULL; ; break;} case 250: { yyval->Append(yyvsp[0]); ; break;} case 251: { yyval = NULL; ; break;} case 252: { if (settings->space_inside_empty_brackets) { yyval->Append(); } yyval->Append(yyvsp[0]); ; break;} case 253: { if (settings->space_inside_brackets) { yyvsp[-1]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 254: { yyval = NULL; ; break;} case 255: { yyval->Append(yyvsp[0]); ; break;} case 266: { yyval->Append(yyvsp[0]); ; break;} case 267: { yyval->Append(yyvsp[0]); ; break;} case 268: { if (settings->space_inside_empty_brackets && (yyvsp[-1] == NULL)) { yyvsp[-2]->Append(); } else if (settings->space_inside_brackets && (yyvsp[-1] != NULL)) { yyvsp[-1]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 273: { yyval->Append(yyvsp[0]); ; break;} case 274: { yyval = NULL; ; break;} case 275: { if (yyvsp[0]) { yyvsp[0]->token = ""; //NOTE: changing! yyval->Append(yyvsp[0]); } ; break;} case 276: { yyval = NULL; ; break;} case 278: { yyvsp[-3]->Append(); yyval->Append(yyvsp[0]); ; break;} case 279: { yyvsp[-1]->Append(); yyval->Append(yyvsp[0]); ; break;} case 280: { yyval->Append(yyvsp[0]); ; break;} case 284: { yyval->Append(yyvsp[0] ? yyvsp[0] : (yyvsp[-1] ? yyvsp[-1] : yyvsp[-2])); ; break;} case 286: { if (yyval) { yyval->Append(yyvsp[0]); } else { yyval = yyvsp[0]; } ; break;} case 287: { yyval = NULL; ; break;} case 288: { yyval->Append((yyvsp[0]) ? yyvsp[0] : yyvsp[-1]); ; break;} case 289: { yyval->Append(yyvsp[0]); ; break;} case 290: { yyval = NULL; ; break;} case 292: { yyval->Append(yyvsp[0]); ; break;} case 296: { yyval->Append(yyvsp[0]); ; break;} case 297: { yyval->Append(yyvsp[0]); ; break;} case 298: { if (settings->space_inside_empty_block_brackets && (yyvsp[-1] == NULL)) { yyvsp[-2]->Append(); } else if (settings->space_inside_block_brackets && (yyvsp[-1] != NULL)) { yyvsp[-1]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 299: { yyval->Append(yyvsp[0]); ; break;} case 302: { yyval->Append(yyvsp[0]); ; break;} case 303: { yyval = NULL; ; break;} case 307: { if (settings->space_inside_empty_block_brackets && (yyvsp[-1] == NULL)) { yyvsp[-2]->Append(); } else if (settings->space_inside_block_brackets && (yyvsp[-1] != NULL)) { yyvsp[-1]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 308: { yyval->Append(yyvsp[0]); ; break;} case 311: { yyval->Append(yyvsp[0]); ; break;} case 313: { yyval->Append(yyvsp[0]); ; break;} case 314: { yyvsp[-1]->Append(); if (!yyval) { yyval = yyvsp[-1]; } if (yyvsp[0]) { yyval->Append(yyvsp[0]); } else if (yyval != yyvsp[-1]) { yyval->Append(yyvsp[-1]); } ; break;} case 316: { yyval = NULL; ; break;} case 318: { if (yyvsp[-1]) { if (settings->space_inside_brackets) { yyvsp[-1]->Surround(); } } else if (settings->space_inside_empty_brackets) { yyvsp[-2]->Append(); } yyval->Append(yyvsp[0]); ; break;} case 319: { yyval = NULL; ; break;} case 320: { if (yyvsp[0]) { yyvsp[0]->token = ""; //NOTE: changing! yyval->Append(yyvsp[0]); } ; break;} case 321: { yyvsp[-2]->PrependNewline(); yyvsp[-3]->Append(yyvsp[-2], true); yyval->Append(yyvsp[0]); ; break;} case 322: { yyvsp[0]->PrependNewline(); yyvsp[-1]->Append(yyvsp[0], true); yyval->Append(yyvsp[-1]); ; break;} case 323: { yyval->Append(yyvsp[0]); ; break;} case 325: { yyvsp[-3]->PrependNewline(); yyvsp[-4]->Append(yyvsp[-3], true); yyval->Append(yyvsp[0]); ; break;} case 326: { yyvsp[-1]->PrependNewline(); yyvsp[-2]->Append(yyvsp[-1], true); yyval->Append(yyvsp[0]); ; break;} case 327: { yyval->Append(yyvsp[0]); ; break;} case 328: { yyval->Append(yyvsp[0]); ; break;} case 329: { if (settings->space_inside_brackets) { yyvsp[-1]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 330: { if (settings->space_inside_brackets) { yyvsp[-1]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 331: { if (settings->space_inside_brackets) { yyvsp[-1]->Surround(); } yyval->Append(yyvsp[0]); ; break;} case 332: { if ((yyvsp[0]->token[0] != '(') || (yyvsp[0]->token[yyvsp[0]->token.length() - 1] != ')')) { yyval->Append(); } yyval->Append(yyvsp[0]); ; break;} case 333: { if ((yyvsp[0]->token[0] != '(') || (yyvsp[0]->token[yyvsp[0]->token.length() - 1] != ')')) { yyval->Append(); } yyval->Append(yyvsp[0]); ; break;} case 334: { if ((yyvsp[0]->token[0] != '(') || (yyvsp[0]->token[yyvsp[0]->token.length() - 1] != ')')) { yyval->Append(); } yyval->Append(yyvsp[0]); ; break;} case 335: { if ((yyvsp[0]->token[0] != '(') || (yyvsp[0]->token[yyvsp[0]->token.length() - 1] != ')')) { yyval->Append(); } yyval->Append(yyvsp[0]); ; break;} case 336: { if ((yyvsp[0]->token[0] != '(') || (yyvsp[0]->token[yyvsp[0]->token.length() - 1] != ')')) { yyval->Append(); } yyval->Append(yyvsp[0]); ; break;} } yyvsp -= yylen; yyssp -= yylen; *++yyvsp = yyval; yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTBASE] + *yyssp; if ((yystate >= 0) && (yystate <= YYLAST) && (yycheck[yystate] == *yyssp)) { yystate = yytable[yystate]; } else { yystate = yydefgoto[yyn - YYNTBASE]; } goto yynewstate; yyerrlab: yyn = yypact[yystate]; if ((yyn > YYFLAG) && (yyn < YYLAST)) { int i, count; string msg = "Parse error, unexpected "; msg += yytname[yychar1]; //msg += "(" + (*(yyvsp + 1))->token + ")"; msg += "(" + yylval->token + ")"; count = 0; for (i = (yyn < 0 ? -yyn : 0); i < (sizeof(yytname) / sizeof(char *)); i++) { if (yycheck[i + yyn] == i) { count++; } } if (count < 5) { count = 0; for (i = (yyn < 0 ? -yyn : 0); i < (sizeof(yytname) / sizeof(char *)); i++) { if (yycheck[i + yyn] == i) { msg += (count == 0) ? ", expecting " : " or "; msg += yytname[i]; count++; } } } msg += " on line "; msg += int_to_string(scanner->line); msg += "!"; throw new CException(E_SOURCE, msg); } else { throw new CException(E_SOURCE, string("Parse error on line ") + int_to_string(scanner->line) + "!"); } /* an exception has been thrown */ } /* enable unreachable code warning */ //#pragma warn +8066