diff options
-rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 803 | ||||
-rw-r--r-- | engines/director/lingo/lingo-gr.y | 8 |
2 files changed, 417 insertions, 394 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index e82270e0de..5b1db0e762 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -518,18 +518,18 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 112 +#define YYFINAL 114 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1601 +#define YYLAST 1635 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 96 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 40 +#define YYNNTS 41 /* YYNRULES -- Number of rules. */ -#define YYNRULES 151 +#define YYNRULES 153 /* YYNRULES -- Number of states. */ -#define YYNSTATES 331 +#define YYNSTATES 335 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -597,7 +597,7 @@ static const yytype_uint16 yyprhs[] = 475, 478, 481, 484, 488, 491, 494, 496, 500, 503, 506, 509, 513, 516, 517, 521, 522, 531, 534, 535, 544, 545, 546, 557, 558, 560, 564, 569, 570, 573, - 574, 576 + 574, 576, 580, 582 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ @@ -660,7 +660,8 @@ static const yytype_int16 yyrhs[] = 98, 133, 116, -1, -1, -1, 79, 21, 130, 114, 131, 132, 98, 133, 116, 25, -1, -1, 21, -1, 132, 95, 21, -1, 132, 98, 95, 21, -1, -1, - 21, 135, -1, -1, 118, -1, 135, 95, 118, -1 + 21, 136, -1, -1, 118, -1, 135, 95, 118, -1, + 118, -1, 135, 95, 118, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -681,7 +682,7 @@ static const yytype_uint16 yyrline[] = 494, 495, 496, 499, 502, 507, 508, 511, 512, 515, 516, 519, 522, 525, 525, 555, 555, 561, 564, 564, 569, 570, 569, 580, 581, 582, 583, 585, 589, 597, - 598, 599 + 598, 599, 602, 603 }; #endif @@ -710,7 +711,7 @@ static const char *const yytname[] = "repeatwith", "if", "elseif", "begin", "end", "stmtlist", "when", "expr", "func", "globallist", "instancelist", "gotofunc", "gotoframe", "gotomovie", "playfunc", "@1", "defn", "@2", "@3", "@4", "@5", "argdef", - "argstore", "macro", "arglist", 0 + "argstore", "macro", "arglist", "nonemptyarglist", 0 }; #endif @@ -750,7 +751,7 @@ static const yytype_uint8 yyr1[] = 122, 122, 122, 122, 122, 123, 123, 124, 124, 125, 125, 125, 125, 126, 125, 128, 127, 127, 129, 127, 130, 131, 127, 132, 132, 132, 132, 133, 134, 135, - 135, 135 + 135, 135, 136, 136 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -771,7 +772,7 @@ static const yytype_uint8 yyr2[] = 2, 2, 2, 3, 2, 2, 1, 3, 2, 2, 2, 3, 2, 0, 3, 0, 8, 2, 0, 8, 0, 0, 10, 0, 1, 3, 4, 0, 2, 0, - 1, 3 + 1, 3, 1, 3 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -786,135 +787,150 @@ static const yytype_uint8 yydefact[] = 149, 0, 3, 66, 23, 11, 24, 0, 0, 0, 0, 21, 8, 99, 100, 7, 9, 5, 4, 63, 0, 66, 65, 106, 105, 149, 150, 109, 149, 149, - 148, 149, 101, 115, 103, 0, 119, 0, 120, 0, - 121, 126, 122, 124, 135, 98, 0, 47, 0, 0, - 0, 0, 137, 138, 113, 129, 130, 132, 117, 104, - 79, 0, 0, 0, 0, 0, 140, 0, 84, 85, - 0, 0, 1, 6, 0, 0, 0, 0, 44, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 149, 0, 150, 0, - 0, 114, 0, 134, 0, 125, 128, 0, 123, 51, - 0, 0, 0, 48, 0, 0, 0, 0, 0, 56, - 51, 0, 131, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 51, 0, 86, 87, 2, 0, - 52, 0, 0, 51, 0, 28, 75, 76, 74, 77, - 78, 71, 81, 82, 83, 80, 67, 68, 69, 70, - 72, 73, 108, 151, 62, 116, 127, 143, 12, 13, - 14, 19, 16, 0, 0, 18, 15, 143, 112, 118, - 90, 0, 92, 0, 94, 0, 96, 0, 88, 89, - 141, 110, 149, 53, 0, 46, 53, 0, 45, 144, - 0, 20, 17, 0, 0, 0, 0, 0, 143, 0, - 52, 0, 0, 52, 52, 22, 0, 147, 147, 91, - 93, 95, 97, 0, 111, 54, 55, 0, 0, 52, - 51, 32, 145, 0, 53, 53, 147, 25, 52, 53, - 29, 53, 0, 50, 51, 52, 40, 0, 146, 136, - 139, 53, 53, 52, 52, 52, 42, 38, 0, 0, - 39, 35, 0, 0, 52, 0, 0, 37, 0, 0, - 52, 51, 52, 51, 142, 0, 26, 30, 31, 51, - 33, 0, 34, 0, 27, 53, 36, 52, 52, 41, - 43 + 152, 0, 148, 149, 101, 115, 103, 0, 119, 0, + 120, 0, 121, 126, 122, 124, 135, 98, 0, 47, + 0, 0, 0, 0, 137, 138, 113, 129, 130, 132, + 117, 104, 79, 0, 0, 0, 0, 0, 140, 0, + 84, 85, 0, 0, 1, 6, 0, 0, 0, 0, + 44, 52, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, + 150, 0, 0, 114, 0, 0, 134, 0, 125, 128, + 0, 123, 51, 0, 0, 0, 48, 0, 0, 0, + 0, 0, 56, 51, 0, 131, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 51, 0, 86, + 87, 2, 0, 52, 0, 0, 51, 0, 28, 75, + 76, 74, 77, 78, 71, 81, 82, 83, 80, 67, + 68, 69, 70, 72, 73, 108, 151, 62, 153, 116, + 127, 143, 12, 13, 14, 19, 16, 0, 0, 18, + 15, 143, 112, 118, 90, 0, 92, 0, 94, 0, + 96, 0, 88, 89, 141, 110, 149, 53, 0, 46, + 53, 0, 45, 144, 0, 20, 17, 0, 0, 0, + 0, 0, 143, 0, 52, 0, 0, 52, 52, 22, + 0, 147, 147, 91, 93, 95, 97, 0, 111, 54, + 55, 0, 0, 52, 51, 32, 145, 0, 53, 53, + 147, 25, 52, 53, 29, 53, 0, 50, 51, 52, + 40, 0, 146, 136, 139, 53, 53, 52, 52, 52, + 42, 38, 0, 0, 39, 35, 0, 0, 52, 0, + 0, 37, 0, 0, 52, 51, 52, 51, 142, 0, + 26, 30, 31, 51, 33, 0, 34, 0, 27, 53, + 36, 52, 52, 41, 43 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 41, 265, 42, 61, 44, 266, 46, 312, 295, - 296, 286, 297, 117, 47, 48, 49, 287, 207, 185, - 250, 50, 51, 255, 74, 99, 53, 82, 83, 54, - 71, 55, 149, 160, 174, 248, 240, 274, 56, 142 + -1, 41, 269, 42, 61, 44, 270, 46, 316, 299, + 300, 290, 301, 119, 47, 48, 49, 291, 211, 188, + 254, 50, 51, 259, 76, 101, 53, 84, 85, 54, + 73, 55, 152, 163, 177, 252, 244, 278, 56, 144, + 72 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -240 +#define YYPACT_NINF -241 static const yytype_int16 yypact[] = { - 326, -69, -240, -240, 1001, -240, -240, 1001, 1001, 1067, - 44, 409, -240, -240, -240, -20, 46, 900, -240, 62, - 1001, 58, 74, 67, 73, 75, 1001, 966, 80, 1001, - 1001, 1001, 1001, 1001, 1001, 87, -10, 1001, 1001, 1001, - 1001, 14, -240, 16, -240, -240, -240, 29, 33, 1092, - 1001, 1509, -240, -240, -240, -240, -240, -240, -240, 30, - 1001, -240, 1509, 1509, 1509, 1001, 1509, 45, 1001, 1001, - 45, 1001, -240, -240, 47, 1001, -240, 1001, -240, 82, - -240, 1509, 9, -240, -240, 377, 123, -240, -39, 1001, - -24, 100, -240, -240, 1354, -240, 9, -240, -240, 51, - -11, 1131, 1163, 1195, 1227, 1385, -240, 126, -11, -11, - 1447, 17, -240, 494, 1092, 1001, 1092, 104, 1478, 1509, - 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, - 1001, 1001, 1001, 1001, 1001, 1001, 1001, 377, 1447, -35, - 1001, 45, -31, 45, 129, 1509, 1509, 1001, -240, -240, - 130, 1001, 1001, -240, 1001, 1001, 803, 1001, 1001, -240, - -240, 1001, -240, 133, 1001, 1001, 1001, 1001, 1001, 1001, - 1001, 1001, 1001, 1001, -240, 8, -240, -240, -240, 70, - 1509, 71, 1416, -69, 1001, -240, 863, 863, 863, -11, - -11, -11, 1509, 863, 863, 1061, 173, 173, -11, -11, - 1509, 1509, -240, 1509, -240, -240, 1509, 136, -240, 1509, - 1509, 1509, 1509, 1001, 1001, 1509, 1509, 136, 1509, -240, - 1509, 140, 1509, 1259, 1509, 1291, 1509, 1323, 1509, 1509, - -240, -240, 1001, -240, 2, -240, -240, 826, 1509, -240, - -43, 1509, 1509, -43, 1001, 1001, 1001, 1001, 136, 10, - 660, 117, 1001, 660, -240, -240, 143, 81, 81, 1509, - 1509, 1509, 1509, -43, -240, -240, -240, 152, 1001, 1509, - -14, -26, -240, 158, -240, -240, 81, -240, 1509, -240, - -240, -240, 153, -240, -240, 153, -240, 1092, -240, 660, - 660, -240, -240, 660, 660, 153, 153, -240, 1092, 826, - -240, 131, 138, 577, 660, 159, 163, -240, 164, 145, - -240, -240, -240, -240, -240, 166, -240, -240, -240, -240, - -240, 826, -240, 743, -240, 743, -240, -240, 660, -240, - -240 + 288, -17, -241, -241, 963, -241, -241, 963, 963, 1029, + 35, 371, -241, -241, -241, 21, 54, 862, -241, 68, + 963, 58, 74, 76, 81, 87, 963, 928, 88, 963, + 963, 963, 963, 963, 963, 91, -10, 963, 963, 963, + 963, 2, -241, 3, -241, -241, -241, 24, 33, 1054, + 963, 1543, -241, -241, -241, -241, -241, -241, -241, 27, + 963, -241, 1543, 1543, 1543, 963, 1543, 25, 963, 963, + 1347, 47, -241, 963, -241, -241, 50, 963, -241, 963, + -241, 83, -241, 1543, 65, -241, -241, 143, 126, -241, + -32, 963, -24, 103, -241, -241, 1316, -241, 65, -241, + -241, 55, -33, 340, 1093, 1125, 1157, 1419, -241, 131, + -33, -33, 1481, -70, -241, 456, 1054, 963, 1054, 108, + 1512, 1543, 963, 963, 963, 963, 963, 963, 963, 963, + 963, 963, 963, 963, 963, 963, 963, 963, 963, 143, + 1481, -23, 963, 25, -7, 963, 25, 136, 1543, 1543, + 963, -241, -241, 139, 963, 963, -241, 963, 963, 765, + 963, 963, -241, -241, 963, -241, 142, 963, 963, 963, + 963, 963, 963, 963, 963, 963, 963, -241, 6, -241, + -241, -241, 77, 1543, 90, 1450, -17, 963, -241, 825, + 825, 825, -33, -33, -33, 1543, 825, 825, 1023, 130, + 130, -33, -33, 1543, 1543, -241, 1543, -241, 1383, -241, + 1543, 145, -241, 1543, 1543, 1543, 1543, 963, 963, 1543, + 1543, 145, 1543, -241, 1543, 1189, 1543, 1221, 1543, 1253, + 1543, 1285, 1543, 1543, -241, -241, 963, -241, -4, -241, + -241, 788, 1543, -241, -11, 1543, 1543, -11, 963, 963, + 963, 963, 145, 9, 622, 118, 963, 622, -241, -241, + 161, 89, 89, 1543, 1543, 1543, 1543, -11, -241, -241, + -241, 160, 963, 1543, -5, -13, -241, 165, -241, -241, + 89, -241, 1543, -241, -241, -241, 158, -241, -241, 158, + -241, 1054, -241, 622, 622, -241, -241, 622, 622, 158, + 158, -241, 1054, 788, -241, 141, 147, 539, 622, 170, + 172, -241, 177, 159, -241, -241, -241, -241, -241, 178, + -241, -241, -241, -241, -241, 788, -241, 705, -241, 705, + -241, -241, 622, -241, -241 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -240, -240, 12, 83, 25, -236, 0, -240, -240, -240, - -78, -212, -101, -112, -240, -240, -240, -239, -92, 7, - -182, -240, 1, 26, -240, -240, -240, 172, -7, -240, - -240, -240, -240, -240, -240, -240, -211, -214, -240, 6 + -241, -241, 12, 93, 7, -240, 0, -241, -241, -241, + -58, -235, -69, -112, -241, -241, -241, -239, -134, -34, + -185, -241, 1, 26, -241, -241, -241, 204, -16, -241, + -241, -241, -241, -241, -241, -241, -206, -218, -241, 8, + -241 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -150 +#define YYTABLE_NINF -152 static const yytype_int16 yytable[] = { - 45, 254, 179, 283, 181, 62, 243, 154, 63, 64, - 66, 280, 66, 58, 112, 67, -10, 70, 81, 57, - 97, 85, 157, 72, 284, 43, 52, 94, 81, 251, - 100, 101, 102, 103, 104, 105, 281, 263, 108, 109, - 110, 66, 155, 298, 275, 57, 111, 77, 252, 79, - 118, 119, 256, 113, 253, 202, 298, 158, 126, 204, - 140, 137, 291, 310, 140, 68, 138, 73, 217, 66, - 138, 139, 66, 300, 141, 148, 145, 143, 146, 107, - 134, 135, 230, 84, 300, 326, 88, 89, 91, 162, - 156, 237, 289, 290, 92, 90, 93, 293, 231, 294, - 264, 98, 57, 232, -10, 140, 86, 87, 106, 303, - 304, 177, 140, 45, 115, 118, 180, 182, 114, 136, - 147, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 66, 43, 52, - 140, 203, 144, 328, 153, 159, 163, 175, 206, 183, - 205, 208, 209, 210, 219, 211, 212, 239, 215, 216, - 233, 235, 218, 268, 272, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 302, 273, 277, 282, 288, - 244, 311, 283, 313, 316, 238, 309, 234, 317, 318, - 319, 324, 299, 285, 307, 236, 178, 120, 121, 96, - 0, 0, 122, 123, 124, 0, 125, 0, 0, 126, - 127, 128, 0, 0, 241, 242, 0, 0, 0, 321, - 0, 323, 129, 130, 131, 132, 133, 325, 0, 0, - 0, 134, 135, 66, 0, 0, 123, 124, 249, 125, - 0, 0, 126, 0, 0, 259, 260, 261, 262, 0, - 0, 0, 257, 269, 0, 258, 0, 267, 132, 133, - 270, 271, 0, 0, 134, 135, 0, 0, 0, 278, - 0, 0, 0, 0, 0, 276, 279, 0, 0, 0, - 0, 0, 0, 0, 0, 292, 0, 0, 118, 0, - 0, 0, 301, 0, 0, 0, 0, 0, 0, 118, - 305, 306, 308, 0, 0, 0, 0, 0, 0, 0, - 0, 315, 0, 0, 0, 0, 0, 320, 0, 322, - 0, 0, 0, 327, 0, 327, -6, 1, 0, 0, - 0, 0, 0, 0, 329, 330, 0, 2, 3, 4, + 45, 258, 114, -10, 182, 62, 184, 43, 63, 64, + 66, 99, 70, 58, 157, 247, 287, 67, 83, 71, + 284, 87, 160, 255, 180, 142, 52, 96, 83, 221, + 102, 103, 104, 105, 106, 107, 128, 288, 110, 111, + 112, 66, 256, 234, 279, 285, 267, 302, 113, 158, + 120, 121, 241, 115, 304, 257, 68, 161, 136, 137, + 302, 139, 295, 314, 74, 304, 140, 205, 151, 66, + 140, 57, 142, 141, 66, 75, 143, 57, 148, 109, + 149, 146, 165, 207, 260, 330, 90, 91, 142, 86, + 57, -10, 159, 293, 294, 92, 235, 93, 297, 268, + 298, 236, 94, 79, 142, 81, 88, 89, 95, 100, + 307, 308, 108, 116, 117, 45, 138, 120, 183, 185, + 142, 150, 43, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 66, + 286, 52, 145, 206, 332, 147, 208, 156, 162, 238, + 166, 210, 178, 186, 303, 213, 214, 209, 215, 216, + 212, 219, 220, 223, 272, 222, 243, 237, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 153, 306, + 239, 325, 276, 327, 277, 281, 292, 287, 242, 329, + 313, 315, 317, 125, 126, 320, 127, 321, 240, 128, + 122, 123, 322, 328, 323, 124, 125, 126, 181, 127, + 154, 155, 128, 129, 130, 134, 135, 289, 245, 246, + 271, 136, 137, 274, 275, 131, 132, 133, 134, 135, + 311, 98, 0, 0, 136, 137, 0, 66, 0, 283, + 0, 0, 0, 0, 253, 0, 0, 0, 296, 263, + 264, 265, 266, 0, 0, 305, 261, 273, 0, 262, + 0, 0, 0, 309, 310, 312, 0, 0, 0, 0, + 0, 0, 0, 282, 319, 0, 0, 0, 0, 280, + 324, 0, 326, 0, 0, 0, 0, 0, -6, 1, + 0, 0, 120, 0, 0, 0, 0, 333, 334, 2, + 3, 4, 5, 120, 6, 7, 8, 9, 10, 11, + 12, 0, 13, 0, 14, 0, 0, 0, 15, 0, + 16, 17, 18, 0, 0, 19, 0, 331, 0, 331, + 20, 21, 22, 0, 0, 23, 0, 0, 0, 24, + 25, 26, 27, 0, 28, 0, 0, 0, 0, 0, + 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 33, 34, 0, 0, 35, 36, 0, + 0, 37, 38, 0, 0, 0, -6, 39, 0, 0, + 167, 40, 2, 3, 4, 5, 168, 6, 0, 0, + 0, 0, 59, 12, 0, 13, 0, 122, 123, 0, + 0, 0, 124, 125, 126, 0, 127, 0, 0, 128, + 129, 130, 0, 60, 0, 22, 0, 0, 0, 0, + 0, 0, 131, 132, 133, 134, 135, 0, 0, 0, + 0, 136, 137, 0, 0, 0, 29, 0, 0, 0, + 0, 0, 0, 30, 31, 32, 33, 34, 0, 0, + 0, 0, 0, 0, 37, 38, 0, 0, 0, 0, + 69, 0, 0, 0, 40, 0, -149, 2, 3, 4, 5, 0, 6, 7, 8, 9, 10, 11, 12, 0, 13, 0, 14, 0, 0, 0, 15, 0, 16, 17, 18, 0, 0, 19, 0, 0, 0, 0, 20, 21, @@ -922,164 +938,167 @@ static const yytype_int16 yytable[] = 27, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, 0, 0, 35, 36, 0, 0, 37, - 38, 0, 150, 0, -6, 39, 0, 0, 0, 40, - 2, 3, 4, 5, 0, 6, 0, 0, 0, 0, - 59, 12, 0, 13, 120, 121, 0, 0, 0, 122, - 123, 124, 0, 125, 151, 152, 126, 127, 128, 0, - 0, 60, 0, 22, 0, 0, 0, 0, 0, 129, - 130, 131, 132, 133, 0, 0, 0, 0, 134, 135, + 38, 0, 0, 0, 0, 39, 0, 0, 0, 40, + 2, 3, 4, 5, 0, 6, 7, 8, 9, 10, + 59, 12, 0, 13, 318, 14, 0, 0, 0, 15, + 0, 16, 17, 18, 0, 0, 0, 0, 0, 0, + 0, 20, 21, 22, 0, 0, 23, 0, 0, 0, + 0, 0, 26, 27, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, - 0, 30, 31, 32, 33, 34, 0, 0, 0, 0, - 0, 0, 37, 38, 0, 0, 0, 0, 69, 0, - 0, 0, 40, 0, -149, 2, 3, 4, 5, 0, - 6, 7, 8, 9, 10, 11, 12, 0, 13, 0, - 14, 0, 0, 0, 15, 0, 16, 17, 18, 0, - 0, 19, 0, 0, 0, 0, 20, 21, 22, 0, - 0, 23, 0, 0, 0, 24, 25, 26, 27, 0, - 28, 0, 0, 0, 0, 0, 0, 0, 0, 29, - 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, - 34, 0, 0, 35, 36, 0, 0, 37, 38, 0, - 0, 0, 0, 39, 0, 0, 0, 40, 2, 3, - 4, 5, 0, 6, 7, 8, 9, 10, 59, 12, - 0, 13, 314, 14, 0, 0, 0, 15, 0, 16, - 17, 18, 0, 0, 0, 0, 0, 0, 0, 20, - 21, 22, 0, 0, 23, 0, 0, 0, 0, 0, - 26, 27, 0, 28, 0, 0, 0, 0, 0, 0, - 0, 0, 29, 0, 0, 0, 0, 0, 0, 30, - 31, 32, 33, 34, 0, 0, 0, 36, 0, 0, - 37, 38, 0, 0, 0, 57, 39, 0, 0, 0, - 40, 2, 3, 4, 5, 0, 6, 7, 8, 9, - 10, 59, 12, 0, 13, 0, 14, 0, 0, 0, - 15, 0, 16, 17, 18, 0, 0, 0, 0, 0, - 0, 0, 20, 21, 22, 0, 0, 23, 0, 0, - 0, 0, 0, 26, 27, 0, 28, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 33, 34, 0, 0, 0, - 36, 0, 0, 37, 38, 0, 0, 0, 57, 39, - 0, 0, 0, 40, 2, 3, 4, 5, 0, 6, - 7, 8, 9, 10, 59, 12, 0, 13, 0, 14, - 0, 0, 0, 15, 0, 16, 17, 18, 0, 0, - 0, 0, 0, 0, 0, 20, 21, 22, 0, 0, - 23, 0, 0, 0, 0, 0, 26, 27, 0, 28, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 0, + 0, 30, 31, 32, 33, 34, 0, 0, 0, 36, + 0, 0, 37, 38, 0, 0, 0, 57, 39, 0, + 0, 0, 40, 2, 3, 4, 5, 0, 6, 7, + 8, 9, 10, 59, 12, 0, 13, 0, 14, 0, + 0, 0, 15, 0, 16, 17, 18, 0, 0, 0, + 0, 0, 0, 0, 20, 21, 22, 0, 0, 23, + 0, 0, 0, 0, 0, 26, 27, 0, 28, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 33, 34, 0, + 0, 0, 36, 0, 0, 37, 38, 0, 0, 0, + 57, 39, 0, 0, 0, 40, 2, 3, 4, 5, + 0, 6, 7, 8, 9, 10, 59, 12, 0, 13, + 0, 14, 0, 0, 0, 15, 0, 16, 17, 18, + 0, 0, 0, 0, 0, 0, 0, 20, 21, 22, + 0, 0, 23, 0, 0, 0, 0, 0, 26, 27, + 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 30, 31, 32, + 33, 34, 0, 0, 0, 36, 0, 0, 37, 38, + 0, 0, 0, 0, 39, 0, 0, 0, 40, 2, + 3, 4, 5, 0, 6, 7, 8, 9, 10, 59, + 12, 217, 13, 0, 14, 0, 0, 0, 15, 0, + 16, 17, 122, 123, 0, 0, 0, 124, 125, 126, + 20, 127, 22, 0, 128, 129, 130, 0, 0, 0, + 0, 26, 27, 0, 28, 0, 218, 131, 132, 133, + 134, 135, 0, 29, 0, 0, 136, 137, 0, 0, + 30, 31, 32, 33, 34, 0, 0, 0, 36, 0, + 0, 37, 38, 2, 3, 4, 5, 39, 6, 0, + 0, 40, 0, 59, 12, 0, 13, 0, 125, 126, + 0, 127, 0, 77, 128, 0, 0, 0, 78, 0, + 79, 80, 81, 82, 60, 0, 22, 131, 132, 133, + 134, 135, 0, 0, 0, 0, 136, 137, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 0, 30, 31, 32, 33, 34, 2, + 3, 4, 5, 0, 6, 37, 38, 0, 0, 59, + 12, 39, 13, 0, 0, 40, 0, 0, 0, 77, + 0, 0, 0, 0, 0, 0, 79, 0, 81, 0, + 60, 0, 22, 0, 2, 3, 4, 5, 0, 6, + 0, 0, 0, 97, 59, 12, 0, 13, 0, 0, + 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, + 30, 31, 32, 33, 34, 60, 0, 22, 0, 0, + 0, 37, 38, 0, 0, 0, 0, 39, 0, 0, + 0, 40, 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 30, 31, 32, 33, 34, - 0, 0, 0, 36, 0, 0, 37, 38, 0, 0, - 0, 0, 39, 0, 0, 0, 40, 2, 3, 4, - 5, 0, 6, 7, 8, 9, 10, 59, 12, 213, - 13, 0, 14, 0, 0, 0, 15, 0, 16, 17, - 120, 121, 0, 0, 0, 122, 123, 124, 20, 125, - 22, 0, 126, 127, 128, 0, 0, 0, 0, 26, - 27, 0, 28, 0, 214, 129, 130, 131, 132, 133, - 0, 29, 0, 0, 134, 135, 0, 0, 30, 31, - 32, 33, 34, 0, 0, 0, 36, 0, 0, 37, - 38, 2, 3, 4, 5, 39, 6, 0, 0, 40, - 0, 59, 12, 0, 13, 0, 123, 124, 0, 125, - 0, 75, 126, 0, 0, 0, 76, 0, 77, 78, - 79, 80, 60, 0, 22, 129, 130, 131, 132, 133, - 0, 0, 0, 0, 134, 135, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 29, 0, 0, 0, 0, - 0, 0, 30, 31, 32, 33, 34, 2, 3, 4, - 5, 0, 6, 37, 38, 0, 0, 59, 12, 39, - 13, 0, 0, 40, 0, 0, 0, 75, 0, 0, - 0, 0, 0, 0, 77, 0, 79, 0, 60, 0, - 22, 0, 2, 3, 4, 5, 0, 6, 0, 0, - 0, 95, 59, 12, 0, 13, 0, 0, 0, 0, - 0, 29, 0, 0, 0, 0, 0, 0, 30, 31, - 32, 33, 34, 60, 0, 22, 0, 0, 0, 37, - 38, 0, 0, 0, 0, 39, 0, 0, 0, 40, - 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, - 0, 0, 0, 30, 31, 32, 33, 34, 2, 3, - 4, 5, 0, 6, 37, 38, 0, 0, 59, 12, - 39, 13, 0, 0, 40, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 3, 4, 5, 0, 6, 60, - 0, 22, 0, 59, 12, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 123, 124, 0, 125, 0, 0, - 126, 0, 29, 0, 60, 0, 22, 0, 0, 30, - 31, 32, 33, 34, 130, 131, 132, 133, 0, 0, - 37, 38, 134, 135, 0, 0, 65, 29, 0, 0, - 40, 0, 0, 0, 30, 31, 32, 33, 34, 0, - 0, 164, 0, 0, 0, 37, 38, 165, 0, 0, - 0, 116, 0, 0, 0, 40, 0, 0, 120, 121, - 0, 0, 0, 122, 123, 124, 0, 125, 0, 0, - 126, 127, 128, 166, 0, 0, 0, 0, 0, 167, - 0, 0, 0, 129, 130, 131, 132, 133, 0, 0, - 120, 121, 134, 135, 0, 122, 123, 124, 0, 125, - 0, 0, 126, 127, 128, 168, 0, 0, 0, 0, - 0, 169, 0, 0, 0, 129, 130, 131, 132, 133, - 0, 0, 120, 121, 134, 135, 0, 122, 123, 124, - 0, 125, 0, 0, 126, 127, 128, 170, 0, 0, - 0, 0, 0, 171, 0, 0, 0, 129, 130, 131, - 132, 133, 0, 0, 120, 121, 134, 135, 0, 122, - 123, 124, 0, 125, 0, 0, 126, 127, 128, 245, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 130, 131, 132, 133, 0, 0, 120, 121, 134, 135, - 0, 122, 123, 124, 0, 125, 0, 0, 126, 127, - 128, 246, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 130, 131, 132, 133, 0, 0, 120, 121, - 134, 135, 0, 122, 123, 124, 0, 125, 0, 0, - 126, 127, 128, 247, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 129, 130, 131, 132, 133, 0, 0, - 120, 121, 134, 135, 0, 122, 123, 124, 0, 125, - 0, 0, 126, 127, 128, 0, 0, 0, 0, 0, - 0, 0, 161, 0, 0, 129, 130, 131, 132, 133, - 0, 120, 121, 0, 134, 135, 122, 123, 124, 0, - 125, 0, 0, 126, 127, 128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 130, 131, 132, - 133, 0, 120, 121, 0, 134, 135, 122, 123, 124, - 0, 125, 0, 0, 126, 127, 128, 0, 0, 0, - 0, 0, 172, 173, 0, 0, 0, 129, 130, 131, - 132, 133, 0, 120, 121, 0, 134, 135, 122, 123, - 124, 0, 125, 0, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 184, 129, 130, - 131, 132, 133, 0, 120, 121, 176, 134, 135, 122, - 123, 124, 0, 125, 0, 0, 126, 127, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 130, 131, 132, 133, 0, 120, 121, 176, 134, 135, - 122, 123, 124, 0, 125, 0, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 184, - 129, 130, 131, 132, 133, 0, 120, 121, 0, 134, - 135, 122, 123, 124, 0, 125, 0, 0, 126, 127, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 130, 131, 132, 133, 0, 0, 0, 0, - 134, 135 + 2, 3, 4, 5, 0, 6, 37, 38, 0, 0, + 59, 12, 39, 13, 0, 0, 40, 0, 0, 0, + 0, 0, 0, 0, 0, 2, 3, 4, 5, 0, + 6, 60, 0, 22, 0, 59, 12, 0, 13, 0, + 0, 0, 0, 0, 0, 0, 125, 126, 0, 127, + 0, 0, 128, 0, 29, 0, 60, 0, 22, 0, + 0, 30, 31, 32, 33, 34, 132, 133, 134, 135, + 0, 0, 37, 38, 136, 137, 0, 0, 65, 29, + 0, 0, 40, 0, 0, 0, 30, 31, 32, 33, + 34, 0, 0, 169, 0, 0, 0, 37, 38, 170, + 0, 0, 0, 118, 0, 0, 0, 40, 0, 0, + 122, 123, 0, 0, 0, 124, 125, 126, 0, 127, + 0, 0, 128, 129, 130, 171, 0, 0, 0, 0, + 0, 172, 0, 0, 0, 131, 132, 133, 134, 135, + 0, 0, 122, 123, 136, 137, 0, 124, 125, 126, + 0, 127, 0, 0, 128, 129, 130, 173, 0, 0, + 0, 0, 0, 174, 0, 0, 0, 131, 132, 133, + 134, 135, 0, 0, 122, 123, 136, 137, 0, 124, + 125, 126, 0, 127, 0, 0, 128, 129, 130, 248, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, + 132, 133, 134, 135, 0, 0, 122, 123, 136, 137, + 0, 124, 125, 126, 0, 127, 0, 0, 128, 129, + 130, 249, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 132, 133, 134, 135, 0, 0, 122, 123, + 136, 137, 0, 124, 125, 126, 0, 127, 0, 0, + 128, 129, 130, 250, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 132, 133, 134, 135, 0, 0, + 122, 123, 136, 137, 0, 124, 125, 126, 0, 127, + 0, 0, 128, 129, 130, 251, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 132, 133, 134, 135, + 0, 0, 122, 123, 136, 137, 0, 124, 125, 126, + 0, 127, 0, 0, 128, 129, 130, 0, 0, 0, + 0, 0, 0, 0, 164, 0, 0, 131, 132, 133, + 134, 135, 0, 122, 123, 0, 136, 137, 124, 125, + 126, 0, 127, 0, 0, 128, 129, 130, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 131, 132, + 133, 134, 135, 0, 122, 123, 0, 136, 137, 124, + 125, 126, 0, 127, 0, 0, 128, 129, 130, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, + 132, 133, 134, 135, 0, 0, 0, 0, 136, 137, + 122, 123, -150, 0, 0, 124, 125, 126, 0, 127, + 0, 0, 128, 129, 130, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 132, 133, 134, 135, + 0, 0, 0, 0, 136, 137, 122, 123, -151, 0, + 0, 124, 125, 126, 0, 127, 0, 0, 128, 129, + 130, 0, 0, 0, 0, 0, 175, 176, 0, 0, + 0, 131, 132, 133, 134, 135, 0, 122, 123, 0, + 136, 137, 124, 125, 126, 0, 127, 0, 0, 128, + 129, 130, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 131, 132, 133, 134, 135, 0, 122, 123, + 179, 136, 137, 124, 125, 126, 0, 127, 0, 0, + 128, 129, 130, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 131, 132, 133, 134, 135, 0, 122, + 123, 179, 136, 137, 124, 125, 126, 0, 127, 0, + 0, 128, 129, 130, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 187, 131, 132, 133, 134, 135, 0, + 122, 123, 0, 136, 137, 124, 125, 126, 0, 127, + 0, 0, 128, 129, 130, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 131, 132, 133, 134, 135, + 0, 0, 0, 0, 136, 137 }; static const yytype_int16 yycheck[] = { - 0, 237, 114, 29, 116, 4, 217, 46, 7, 8, - 9, 25, 11, 1, 0, 9, 0, 11, 17, 88, - 27, 20, 46, 43, 50, 0, 0, 26, 27, 27, - 29, 30, 31, 32, 33, 34, 50, 248, 37, 38, - 39, 40, 81, 282, 258, 88, 40, 38, 46, 40, - 49, 50, 95, 41, 236, 90, 295, 81, 69, 90, - 95, 60, 276, 299, 95, 21, 65, 21, 160, 68, - 69, 65, 71, 285, 68, 82, 75, 71, 77, 89, - 91, 92, 174, 21, 296, 321, 12, 13, 21, 96, - 89, 183, 274, 275, 21, 21, 21, 279, 90, 281, - 90, 21, 88, 95, 88, 95, 48, 49, 21, 291, - 292, 94, 95, 113, 81, 114, 115, 116, 89, 89, - 38, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 113, 113, - 95, 140, 95, 325, 21, 45, 95, 21, 147, 45, - 21, 21, 151, 152, 21, 154, 155, 21, 157, 158, - 90, 90, 161, 46, 21, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 287, 95, 25, 270, 21, - 40, 50, 29, 45, 25, 184, 298, 180, 25, 25, - 45, 25, 284, 271, 295, 183, 113, 57, 58, 27, + 0, 241, 0, 0, 116, 4, 118, 0, 7, 8, + 9, 27, 11, 1, 46, 221, 29, 9, 17, 11, + 25, 20, 46, 27, 94, 95, 0, 26, 27, 163, + 29, 30, 31, 32, 33, 34, 69, 50, 37, 38, + 39, 40, 46, 177, 262, 50, 252, 286, 40, 81, + 49, 50, 186, 41, 289, 240, 21, 81, 91, 92, + 299, 60, 280, 303, 43, 300, 65, 90, 84, 68, + 69, 88, 95, 65, 73, 21, 68, 88, 77, 89, + 79, 73, 98, 90, 95, 325, 12, 13, 95, 21, + 88, 88, 91, 278, 279, 21, 90, 21, 283, 90, + 285, 95, 21, 38, 95, 40, 48, 49, 21, 21, + 295, 296, 21, 89, 81, 115, 89, 116, 117, 118, + 95, 38, 115, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 274, 115, 95, 142, 329, 95, 145, 21, 45, 183, + 95, 150, 21, 45, 288, 154, 155, 21, 157, 158, + 21, 160, 161, 21, 46, 164, 21, 90, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 35, 291, + 90, 315, 21, 317, 95, 25, 21, 29, 187, 323, + 302, 50, 45, 63, 64, 25, 66, 25, 186, 69, + 57, 58, 25, 25, 45, 62, 63, 64, 115, 66, + 67, 68, 69, 70, 71, 85, 86, 275, 217, 218, + 254, 91, 92, 257, 258, 82, 83, 84, 85, 86, + 299, 27, -1, -1, 91, 92, -1, 236, -1, 273, + -1, -1, -1, -1, 236, -1, -1, -1, 282, 248, + 249, 250, 251, -1, -1, 289, 244, 256, -1, 247, + -1, -1, -1, 297, 298, 299, -1, -1, -1, -1, + -1, -1, -1, 272, 308, -1, -1, -1, -1, 267, + 314, -1, 316, -1, -1, -1, -1, -1, 0, 1, + -1, -1, 291, -1, -1, -1, -1, 331, 332, 11, + 12, 13, 14, 302, 16, 17, 18, 19, 20, 21, + 22, -1, 24, -1, 26, -1, -1, -1, 30, -1, + 32, 33, 34, -1, -1, 37, -1, 327, -1, 329, + 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, + 52, 53, 54, -1, 56, -1, -1, -1, -1, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 72, 73, 74, 75, 76, -1, -1, 79, 80, -1, + -1, 83, 84, -1, -1, -1, 88, 89, -1, -1, + 40, 93, 11, 12, 13, 14, 46, 16, -1, -1, + -1, -1, 21, 22, -1, 24, -1, 57, 58, -1, -1, -1, 62, 63, 64, -1, 66, -1, -1, 69, - 70, 71, -1, -1, 213, 214, -1, -1, -1, 311, - -1, 313, 82, 83, 84, 85, 86, 319, -1, -1, - -1, 91, 92, 232, -1, -1, 63, 64, 232, 66, - -1, -1, 69, -1, -1, 244, 245, 246, 247, -1, - -1, -1, 240, 252, -1, 243, -1, 250, 85, 86, - 253, 254, -1, -1, 91, 92, -1, -1, -1, 268, - -1, -1, -1, -1, -1, 263, 269, -1, -1, -1, - -1, -1, -1, -1, -1, 278, -1, -1, 287, -1, - -1, -1, 285, -1, -1, -1, -1, -1, -1, 298, - 293, 294, 295, -1, -1, -1, -1, -1, -1, -1, - -1, 304, -1, -1, -1, -1, -1, 310, -1, 312, - -1, -1, -1, 323, -1, 325, 0, 1, -1, -1, - -1, -1, -1, -1, 327, 328, -1, 11, 12, 13, + 70, 71, -1, 42, -1, 44, -1, -1, -1, -1, + -1, -1, 82, 83, 84, 85, 86, -1, -1, -1, + -1, 91, 92, -1, -1, -1, 65, -1, -1, -1, + -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, + -1, -1, -1, -1, 83, 84, -1, -1, -1, -1, + 89, -1, -1, -1, 93, -1, 95, 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, 26, -1, -1, -1, 30, -1, 32, 33, 34, -1, -1, 37, -1, -1, -1, -1, 42, 43, @@ -1087,88 +1106,68 @@ static const yytype_int16 yycheck[] = 54, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, 80, -1, -1, 83, - 84, -1, 35, -1, 88, 89, -1, -1, -1, 93, - 11, 12, 13, 14, -1, 16, -1, -1, -1, -1, - 21, 22, -1, 24, 57, 58, -1, -1, -1, 62, - 63, 64, -1, 66, 67, 68, 69, 70, 71, -1, - -1, 42, -1, 44, -1, -1, -1, -1, -1, 82, - 83, 84, 85, 86, -1, -1, -1, -1, 91, 92, + 84, -1, -1, -1, -1, 89, -1, -1, -1, 93, + 11, 12, 13, 14, -1, 16, 17, 18, 19, 20, + 21, 22, -1, 24, 25, 26, -1, -1, -1, 30, + -1, 32, 33, 34, -1, -1, -1, -1, -1, -1, + -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, + -1, -1, 53, 54, -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, - -1, 72, 73, 74, 75, 76, -1, -1, -1, -1, - -1, -1, 83, 84, -1, -1, -1, -1, 89, -1, - -1, -1, 93, -1, 95, 11, 12, 13, 14, -1, - 16, 17, 18, 19, 20, 21, 22, -1, 24, -1, - 26, -1, -1, -1, 30, -1, 32, 33, 34, -1, - -1, 37, -1, -1, -1, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, 52, 53, 54, -1, - 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, - -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, - 76, -1, -1, 79, 80, -1, -1, 83, 84, -1, - -1, -1, -1, 89, -1, -1, -1, 93, 11, 12, - 13, 14, -1, 16, 17, 18, 19, 20, 21, 22, - -1, 24, 25, 26, -1, -1, -1, 30, -1, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, - 43, 44, -1, -1, 47, -1, -1, -1, -1, -1, - 53, 54, -1, 56, -1, -1, -1, -1, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, - 73, 74, 75, 76, -1, -1, -1, 80, -1, -1, - 83, 84, -1, -1, -1, 88, 89, -1, -1, -1, - 93, 11, 12, 13, 14, -1, 16, 17, 18, 19, - 20, 21, 22, -1, 24, -1, 26, -1, -1, -1, - 30, -1, 32, 33, 34, -1, -1, -1, -1, -1, - -1, -1, 42, 43, 44, -1, -1, 47, -1, -1, - -1, -1, -1, 53, 54, -1, 56, -1, -1, -1, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, - -1, -1, 72, 73, 74, 75, 76, -1, -1, -1, - 80, -1, -1, 83, 84, -1, -1, -1, 88, 89, - -1, -1, -1, 93, 11, 12, 13, 14, -1, 16, - 17, 18, 19, 20, 21, 22, -1, 24, -1, 26, - -1, -1, -1, 30, -1, 32, 33, 34, -1, -1, - -1, -1, -1, -1, -1, 42, 43, 44, -1, -1, - 47, -1, -1, -1, -1, -1, 53, 54, -1, 56, - -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, + -1, 72, 73, 74, 75, 76, -1, -1, -1, 80, + -1, -1, 83, 84, -1, -1, -1, 88, 89, -1, + -1, -1, 93, 11, 12, 13, 14, -1, 16, 17, + 18, 19, 20, 21, 22, -1, 24, -1, 26, -1, + -1, -1, 30, -1, 32, 33, 34, -1, -1, -1, + -1, -1, -1, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, -1, -1, 53, 54, -1, 56, -1, + -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, + -1, -1, -1, -1, 72, 73, 74, 75, 76, -1, + -1, -1, 80, -1, -1, 83, 84, -1, -1, -1, + 88, 89, -1, -1, -1, 93, 11, 12, 13, 14, + -1, 16, 17, 18, 19, 20, 21, 22, -1, 24, + -1, 26, -1, -1, -1, 30, -1, 32, 33, 34, + -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, + -1, -1, 47, -1, -1, -1, -1, -1, 53, 54, + -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, + 65, -1, -1, -1, -1, -1, -1, 72, 73, 74, + 75, 76, -1, -1, -1, 80, -1, -1, 83, 84, + -1, -1, -1, -1, 89, -1, -1, -1, 93, 11, + 12, 13, 14, -1, 16, 17, 18, 19, 20, 21, + 22, 46, 24, -1, 26, -1, -1, -1, 30, -1, + 32, 33, 57, 58, -1, -1, -1, 62, 63, 64, + 42, 66, 44, -1, 69, 70, 71, -1, -1, -1, + -1, 53, 54, -1, 56, -1, 81, 82, 83, 84, + 85, 86, -1, 65, -1, -1, 91, 92, -1, -1, + 72, 73, 74, 75, 76, -1, -1, -1, 80, -1, + -1, 83, 84, 11, 12, 13, 14, 89, 16, -1, + -1, 93, -1, 21, 22, -1, 24, -1, 63, 64, + -1, 66, -1, 31, 69, -1, -1, -1, 36, -1, + 38, 39, 40, 41, 42, -1, 44, 82, 83, 84, + 85, 86, -1, -1, -1, -1, 91, 92, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, + -1, -1, -1, -1, 72, 73, 74, 75, 76, 11, + 12, 13, 14, -1, 16, 83, 84, -1, -1, 21, + 22, 89, 24, -1, -1, 93, -1, -1, -1, 31, + -1, -1, -1, -1, -1, -1, 38, -1, 40, -1, + 42, -1, 44, -1, 11, 12, 13, 14, -1, 16, + -1, -1, -1, 55, 21, 22, -1, 24, -1, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + 72, 73, 74, 75, 76, 42, -1, 44, -1, -1, + -1, 83, 84, -1, -1, -1, -1, 89, -1, -1, + -1, 93, -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, 72, 73, 74, 75, 76, - -1, -1, -1, 80, -1, -1, 83, 84, -1, -1, - -1, -1, 89, -1, -1, -1, 93, 11, 12, 13, - 14, -1, 16, 17, 18, 19, 20, 21, 22, 46, - 24, -1, 26, -1, -1, -1, 30, -1, 32, 33, - 57, 58, -1, -1, -1, 62, 63, 64, 42, 66, - 44, -1, 69, 70, 71, -1, -1, -1, -1, 53, - 54, -1, 56, -1, 81, 82, 83, 84, 85, 86, - -1, 65, -1, -1, 91, 92, -1, -1, 72, 73, - 74, 75, 76, -1, -1, -1, 80, -1, -1, 83, - 84, 11, 12, 13, 14, 89, 16, -1, -1, 93, - -1, 21, 22, -1, 24, -1, 63, 64, -1, 66, - -1, 31, 69, -1, -1, -1, 36, -1, 38, 39, - 40, 41, 42, -1, 44, 82, 83, 84, 85, 86, - -1, -1, -1, -1, 91, 92, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 65, -1, -1, -1, -1, - -1, -1, 72, 73, 74, 75, 76, 11, 12, 13, - 14, -1, 16, 83, 84, -1, -1, 21, 22, 89, - 24, -1, -1, 93, -1, -1, -1, 31, -1, -1, - -1, -1, -1, -1, 38, -1, 40, -1, 42, -1, - 44, -1, 11, 12, 13, 14, -1, 16, -1, -1, - -1, 55, 21, 22, -1, 24, -1, -1, -1, -1, - -1, 65, -1, -1, -1, -1, -1, -1, 72, 73, - 74, 75, 76, 42, -1, 44, -1, -1, -1, 83, - 84, -1, -1, -1, -1, 89, -1, -1, -1, 93, - -1, -1, -1, -1, -1, -1, 65, -1, -1, -1, - -1, -1, -1, 72, 73, 74, 75, 76, 11, 12, - 13, 14, -1, 16, 83, 84, -1, -1, 21, 22, - 89, 24, -1, -1, 93, -1, -1, -1, -1, -1, - -1, -1, -1, 11, 12, 13, 14, -1, 16, 42, - -1, 44, -1, 21, 22, -1, 24, -1, -1, -1, - -1, -1, -1, -1, 63, 64, -1, 66, -1, -1, - 69, -1, 65, -1, 42, -1, 44, -1, -1, 72, - 73, 74, 75, 76, 83, 84, 85, 86, -1, -1, - 83, 84, 91, 92, -1, -1, 89, 65, -1, -1, - 93, -1, -1, -1, 72, 73, 74, 75, 76, -1, - -1, 40, -1, -1, -1, 83, 84, 46, -1, -1, - -1, 89, -1, -1, -1, 93, -1, -1, 57, 58, - -1, -1, -1, 62, 63, 64, -1, 66, -1, -1, - 69, 70, 71, 40, -1, -1, -1, -1, -1, 46, - -1, -1, -1, 82, 83, 84, 85, 86, -1, -1, - 57, 58, 91, 92, -1, 62, 63, 64, -1, 66, + 11, 12, 13, 14, -1, 16, 83, 84, -1, -1, + 21, 22, 89, 24, -1, -1, 93, -1, -1, -1, + -1, -1, -1, -1, -1, 11, 12, 13, 14, -1, + 16, 42, -1, 44, -1, 21, 22, -1, 24, -1, + -1, -1, -1, -1, -1, -1, 63, 64, -1, 66, + -1, -1, 69, -1, 65, -1, 42, -1, 44, -1, + -1, 72, 73, 74, 75, 76, 83, 84, 85, 86, + -1, -1, 83, 84, 91, 92, -1, -1, 89, 65, + -1, -1, 93, -1, -1, -1, 72, 73, 74, 75, + 76, -1, -1, 40, -1, -1, -1, 83, 84, 46, + -1, -1, -1, 89, -1, -1, -1, 93, -1, -1, + 57, 58, -1, -1, -1, 62, 63, 64, -1, 66, -1, -1, 69, 70, 71, 40, -1, -1, -1, -1, -1, 46, -1, -1, -1, 82, 83, 84, 85, 86, -1, -1, 57, 58, 91, 92, -1, 62, 63, 64, @@ -1185,28 +1184,38 @@ static const yytype_int16 yycheck[] = 69, 70, 71, 40, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, -1, -1, 57, 58, 91, 92, -1, 62, 63, 64, -1, 66, - -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, - -1, -1, 48, -1, -1, 82, 83, 84, 85, 86, - -1, 57, 58, -1, 91, 92, 62, 63, 64, -1, - 66, -1, -1, 69, 70, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 82, 83, 84, 85, - 86, -1, 57, 58, -1, 91, 92, 62, 63, 64, + -1, -1, 69, 70, 71, 40, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, + -1, -1, 57, 58, 91, 92, -1, 62, 63, 64, -1, 66, -1, -1, 69, 70, 71, -1, -1, -1, - -1, -1, 77, 78, -1, -1, -1, 82, 83, 84, + -1, -1, -1, -1, 48, -1, -1, 82, 83, 84, 85, 86, -1, 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, -1, -1, 69, 70, 71, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, - 84, 85, 86, -1, 57, 58, 90, 91, 92, 62, + -1, -1, -1, -1, -1, -1, -1, -1, 82, 83, + 84, 85, 86, -1, 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82, - 83, 84, 85, 86, -1, 57, 58, 90, 91, 92, - 62, 63, 64, -1, 66, -1, -1, 69, 70, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - 82, 83, 84, 85, 86, -1, 57, 58, -1, 91, - 92, 62, 63, 64, -1, 66, -1, -1, 69, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 82, 83, 84, 85, 86, -1, -1, -1, -1, - 91, 92 + 83, 84, 85, 86, -1, -1, -1, -1, 91, 92, + 57, 58, 95, -1, -1, 62, 63, 64, -1, 66, + -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, + -1, -1, -1, -1, 91, 92, 57, 58, 95, -1, + -1, 62, 63, 64, -1, 66, -1, -1, 69, 70, + 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, + -1, 82, 83, 84, 85, 86, -1, 57, 58, -1, + 91, 92, 62, 63, 64, -1, 66, -1, -1, 69, + 70, 71, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 81, 82, 83, 84, 85, 86, -1, 57, 58, + 90, 91, 92, 62, 63, 64, -1, 66, -1, -1, + 69, 70, 71, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 82, 83, 84, 85, 86, -1, 57, + 58, 90, 91, 92, 62, 63, 64, -1, 66, -1, + -1, 69, 70, 71, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, 82, 83, 84, 85, 86, -1, + 57, 58, -1, 91, 92, 62, 63, 64, -1, 66, + -1, -1, 69, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 82, 83, 84, 85, 86, + -1, -1, -1, -1, 91, 92 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1220,33 +1229,33 @@ static const yytype_uint8 yystos[] = 93, 97, 99, 100, 101, 102, 103, 110, 111, 112, 117, 118, 119, 122, 125, 127, 134, 88, 98, 21, 42, 100, 118, 118, 118, 89, 118, 135, 21, 89, - 135, 126, 43, 21, 120, 31, 36, 38, 39, 40, - 41, 118, 123, 124, 21, 118, 48, 49, 12, 13, - 21, 21, 21, 21, 118, 55, 123, 124, 21, 121, - 118, 118, 118, 118, 118, 118, 21, 89, 118, 118, - 118, 135, 0, 98, 89, 81, 89, 109, 118, 118, - 57, 58, 62, 63, 64, 66, 69, 70, 71, 82, - 83, 84, 85, 86, 91, 92, 89, 118, 118, 135, - 95, 135, 135, 135, 95, 118, 118, 38, 124, 128, - 35, 67, 68, 21, 46, 81, 118, 46, 81, 45, - 129, 48, 124, 95, 40, 46, 40, 46, 40, 46, - 40, 46, 77, 78, 130, 21, 90, 94, 99, 109, - 118, 109, 118, 45, 81, 115, 118, 118, 118, 118, - 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 118, 118, 90, 118, 90, 21, 118, 114, 21, 118, - 118, 118, 118, 46, 81, 118, 118, 114, 118, 21, + 118, 135, 136, 126, 43, 21, 120, 31, 36, 38, + 39, 40, 41, 118, 123, 124, 21, 118, 48, 49, + 12, 13, 21, 21, 21, 21, 118, 55, 123, 124, + 21, 121, 118, 118, 118, 118, 118, 118, 21, 89, + 118, 118, 118, 135, 0, 98, 89, 81, 89, 109, + 118, 118, 57, 58, 62, 63, 64, 66, 69, 70, + 71, 82, 83, 84, 85, 86, 91, 92, 89, 118, + 118, 135, 95, 135, 135, 95, 135, 95, 118, 118, + 38, 124, 128, 35, 67, 68, 21, 46, 81, 118, + 46, 81, 45, 129, 48, 124, 95, 40, 46, 40, + 46, 40, 46, 40, 46, 77, 78, 130, 21, 90, + 94, 99, 109, 118, 109, 118, 45, 81, 115, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, - 114, 90, 95, 90, 115, 90, 98, 114, 118, 21, - 132, 118, 118, 132, 40, 40, 40, 40, 131, 135, - 116, 27, 46, 116, 101, 119, 95, 98, 98, 118, - 118, 118, 118, 132, 90, 98, 102, 115, 46, 118, - 115, 115, 21, 95, 133, 133, 98, 25, 118, 115, - 25, 50, 114, 29, 50, 106, 107, 113, 21, 116, - 116, 133, 115, 116, 116, 105, 106, 108, 113, 114, - 107, 115, 109, 116, 116, 115, 115, 108, 115, 109, - 101, 50, 104, 45, 25, 115, 25, 25, 25, 45, - 115, 114, 115, 114, 25, 114, 101, 102, 116, 115, - 115 + 118, 118, 118, 118, 118, 90, 118, 90, 118, 21, + 118, 114, 21, 118, 118, 118, 118, 46, 81, 118, + 118, 114, 118, 21, 118, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 114, 90, 95, 90, 115, 90, + 98, 114, 118, 21, 132, 118, 118, 132, 40, 40, + 40, 40, 131, 135, 116, 27, 46, 116, 101, 119, + 95, 98, 98, 118, 118, 118, 118, 132, 90, 98, + 102, 115, 46, 118, 115, 115, 21, 95, 133, 133, + 98, 25, 118, 115, 25, 50, 114, 29, 50, 106, + 107, 113, 21, 116, 116, 133, 115, 116, 116, 105, + 106, 108, 113, 114, 107, 115, 109, 116, 116, 115, + 115, 108, 115, 109, 101, 50, 104, 45, 25, 115, + 25, 25, 25, 45, 115, 114, 115, 114, 25, 114, + 101, 102, 116, 115, 115 }; #define yyerrok (yyerrstatus = 0) @@ -2911,9 +2920,19 @@ yyreduce: { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} break; + case 152: +#line 602 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = 1; ;} + break; + + case 153: +#line 603 "engines/director/lingo/lingo-gr.y" + { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} + break; + /* Line 1267 of yacc.c. */ -#line 2917 "engines/director/lingo/lingo-gr.cpp" +#line 2936 "engines/director/lingo/lingo-gr.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3127,6 +3146,6 @@ yyreturn: } -#line 602 "engines/director/lingo/lingo-gr.y" +#line 606 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index d6fe5cd7b6..e2e874b97f 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -103,7 +103,7 @@ void checkEnd(Common::String *token, const char *expect, bool required) { %token tON tME %type<code> asgn begin elseif elsestmtoneliner end expr if when repeatwhile repeatwith stmtlist -%type<narg> argdef arglist +%type<narg> argdef arglist nonemptyarglist %right '=' %left tLT tLE tGT tGE tNEQ tCONTAINS tSTARTS @@ -586,7 +586,7 @@ argstore: /* nothing */ { g_lingo->codeArgStore(); } ; -macro: ID arglist { +macro: ID nonemptyarglist { g_lingo->code1(g_lingo->c_call); g_lingo->codeString($1->c_str()); inst numpar = 0; @@ -599,4 +599,8 @@ arglist: /* nothing */ { $$ = 0; } | arglist ',' expr { $$ = $1 + 1; } ; +nonemptyarglist: expr { $$ = 1; } + | arglist ',' expr { $$ = $1 + 1; } + ; + %% |