HYPNO: improved grammar to parse more scenes

This commit is contained in:
neuromancer 2021-11-10 23:18:56 +01:00
parent 890df1ecda
commit 784da145ab
6 changed files with 459 additions and 413 deletions

View File

@ -168,27 +168,28 @@ extern int HYPNO_MIS_debug;
ESCPTOK = 280,
NRTOK = 281,
AMBITOK = 282,
GLOBTOK = 283,
TONTOK = 284,
TOFFTOK = 285,
TALKTOK = 286,
INACTOK = 287,
FDTOK = 288,
BOXXTOK = 289,
ESCAPETOK = 290,
SECONDTOK = 291,
INTROTOK = 292,
DEFAULTTOK = 293,
PG = 294,
PA = 295,
PD = 296,
PH = 297,
PF = 298,
PE = 299,
PP = 300,
PI = 301,
PL = 302,
PS = 303
SWPTTOK = 283,
GLOBTOK = 284,
TONTOK = 285,
TOFFTOK = 286,
TALKTOK = 287,
INACTOK = 288,
FDTOK = 289,
BOXXTOK = 290,
ESCAPETOK = 291,
SECONDTOK = 292,
INTROTOK = 293,
DEFAULTTOK = 294,
PG = 295,
PA = 296,
PD = 297,
PH = 298,
PF = 299,
PE = 300,
PP = 301,
PI = 302,
PL = 303,
PS = 304
};
#endif
@ -202,7 +203,7 @@ union HYPNO_MIS_STYPE
char *s; /* string value */
int i; /* integer value */
#line 206 "engines/hypno/grammar_mis.cpp" /* yacc.c:355 */
#line 207 "engines/hypno/grammar_mis.cpp" /* yacc.c:355 */
};
typedef union HYPNO_MIS_STYPE HYPNO_MIS_STYPE;
@ -219,7 +220,7 @@ int HYPNO_MIS_parse (void);
/* Copy the second part of user declarations. */
#line 223 "engines/hypno/grammar_mis.cpp" /* yacc.c:358 */
#line 224 "engines/hypno/grammar_mis.cpp" /* yacc.c:358 */
#ifdef short
# undef short
@ -461,21 +462,21 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 114
#define YYLAST 119
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 49
#define YYNTOKENS 50
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 10
#define YYNNTS 11
/* YYNRULES -- Number of rules. */
#define YYNRULES 49
#define YYNRULES 53
/* YYNSTATES -- Number of states. */
#define YYNSTATES 121
#define YYNSTATES 127
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 303
#define YYMAXUTOK 304
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@ -514,7 +515,7 @@ static const yytype_uint8 yytranslate[] =
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48
45, 46, 47, 48, 49
};
#if HYPNO_MIS_DEBUG
@ -522,10 +523,11 @@ static const yytype_uint8 yytranslate[] =
static const yytype_uint16 yyrline[] =
{
0, 74, 74, 77, 84, 85, 89, 101, 107, 122,
128, 129, 136, 143, 149, 155, 161, 168, 175, 182,
188, 194, 200, 206, 209, 216, 219, 220, 224, 227,
230, 234, 238, 243, 249, 250, 256, 262, 268, 275,
282, 288, 293, 294, 297, 298, 301, 302, 305, 306
128, 129, 130, 137, 144, 150, 156, 162, 169, 176,
183, 190, 196, 202, 208, 214, 217, 218, 221, 228,
231, 232, 236, 239, 242, 246, 250, 255, 261, 262,
268, 274, 280, 287, 294, 300, 305, 306, 309, 310,
313, 314, 317, 318
};
#endif
@ -538,11 +540,11 @@ static const char *const yytname[] =
"GSSWITCH", "COMMAND", "WALNTOK", "NUM", "HOTSTOK", "CUTSTOK", "BACKTOK",
"INTRTOK", "RETTOK", "TIMETOK", "PALETOK", "BBOXTOK", "OVERTOK",
"MICETOK", "PLAYTOK", "ENDTOK", "MENUTOK", "SMENTOK", "ESCPTOK", "NRTOK",
"AMBITOK", "GLOBTOK", "TONTOK", "TOFFTOK", "TALKTOK", "INACTOK", "FDTOK",
"BOXXTOK", "ESCAPETOK", "SECONDTOK", "INTROTOK", "DEFAULTTOK", "PG",
"PA", "PD", "PH", "PF", "PE", "PP", "PI", "PL", "PS", "$accept", "start",
"init", "lines", "line", "alloctalk", "talk", "mflag", "flag",
"gsswitch", YY_NULLPTR
"AMBITOK", "SWPTTOK", "GLOBTOK", "TONTOK", "TOFFTOK", "TALKTOK",
"INACTOK", "FDTOK", "BOXXTOK", "ESCAPETOK", "SECONDTOK", "INTROTOK",
"DEFAULTTOK", "PG", "PA", "PD", "PH", "PF", "PE", "PP", "PI", "PL", "PS",
"$accept", "start", "init", "lines", "line", "anything", "alloctalk",
"talk", "mflag", "flag", "gsswitch", YY_NULLPTR
};
#endif
@ -555,14 +557,14 @@ static const yytype_uint16 yytoknum[] =
265, 266, 267, 268, 269, 270, 271, 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, 297, 298, 299, 300, 301, 302, 303
295, 296, 297, 298, 299, 300, 301, 302, 303, 304
};
# endif
#define YYPACT_NINF -75
#define YYPACT_NINF -81
#define yypact_value_is_default(Yystate) \
(!!((Yystate) == (-75)))
(!!((Yystate) == (-81)))
#define YYTABLE_NINF -1
@ -573,19 +575,19 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int8 yypact[] =
{
-75, 4, 64, -75, 1, -6, 9, 10, 13, -75,
8, 15, 17, 19, 20, 11, 25, -75, -75, 23,
22, -75, -75, 64, 21, 28, -75, 29, 30, -75,
-75, 31, 32, 34, -75, -75, 25, 36, 27, 24,
-75, 37, 38, 39, 40, 41, -75, 42, -75, 43,
-75, 70, 24, 24, 72, -75, 86, 89, 90, 24,
24, 24, 24, 24, -75, 87, 88, 24, 24, -75,
26, 91, 26, -75, 94, 26, 94, 92, -75, -75,
93, 95, 96, 97, -75, -75, -75, -75, -75, 98,
99, -75, -75, -75, 94, 100, 94, -75, -75, 94,
-75, 101, -75, 102, 103, 104, 24, 24, -75, -75,
94, -75, 26, -75, -75, -75, -75, -75, -75, 94,
-75
-81, 5, 65, -81, 9, -4, 13, 14, 15, -81,
11, 19, 20, 22, 23, 25, 26, -81, -81, 27,
28, 32, -81, -81, 65, 30, 31, -81, 34, 36,
26, -81, 37, 38, 39, 25, 17, -81, 26, 40,
-81, 48, 24, -81, 42, 43, 46, 73, -81, 81,
-81, 85, -81, -81, -81, 86, -81, 29, 24, 24,
88, -81, 71, 95, 96, 24, 24, 24, 24, 24,
-81, 91, 92, 24, 24, -81, 35, 93, 35, -81,
99, 35, 99, 97, -81, -81, 98, 100, 101, 102,
-81, -81, -81, -81, -81, 103, 104, -81, -81, -81,
99, 105, 99, -81, -81, 99, -81, 106, -81, 107,
108, 109, 24, 24, -81, -81, 99, -81, 35, -81,
-81, -81, -81, -81, -81, 99, -81
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@ -593,31 +595,33 @@ static const yytype_int8 yypact[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
3, 0, 5, 1, 0, 0, 0, 0, 0, 23,
0, 0, 0, 0, 0, 0, 45, 8, 9, 0,
0, 24, 2, 5, 0, 0, 18, 0, 0, 10,
16, 0, 0, 0, 22, 44, 45, 0, 0, 43,
4, 0, 0, 0, 0, 0, 20, 0, 6, 0,
12, 0, 43, 43, 0, 29, 0, 0, 0, 43,
43, 43, 43, 43, 42, 0, 0, 43, 43, 21,
49, 0, 49, 17, 47, 49, 47, 0, 25, 26,
0, 0, 0, 0, 33, 36, 37, 34, 35, 0,
0, 41, 40, 48, 47, 0, 47, 46, 15, 47,
13, 0, 28, 0, 0, 0, 43, 43, 19, 7,
47, 14, 49, 30, 31, 32, 38, 39, 11, 47,
27
3, 0, 5, 1, 0, 0, 0, 0, 0, 25,
0, 0, 0, 0, 0, 27, 49, 8, 9, 0,
0, 0, 28, 2, 5, 0, 0, 20, 0, 19,
49, 17, 0, 0, 0, 27, 0, 48, 49, 0,
11, 0, 47, 4, 0, 0, 0, 0, 10, 0,
22, 0, 26, 24, 6, 0, 13, 0, 47, 47,
0, 33, 0, 0, 0, 47, 47, 47, 47, 47,
46, 0, 0, 47, 47, 23, 53, 0, 53, 18,
51, 53, 51, 0, 29, 30, 0, 0, 0, 0,
37, 40, 41, 38, 39, 0, 0, 45, 44, 52,
51, 0, 51, 50, 16, 51, 14, 0, 32, 0,
0, 0, 47, 47, 21, 7, 51, 15, 53, 34,
35, 36, 42, 43, 12, 51, 31
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
-75, -75, -75, 12, -75, -75, -52, -4, -74, -69
-81, -81, -81, 6, -81, -1, -81, -58, -26, -80,
-75
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
-1, 1, 2, 22, 23, 39, 69, 36, 98, 94
-1, 1, 2, 23, 24, 36, 42, 75, 38, 104,
100
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@ -625,73 +629,75 @@ static const yytype_int8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
78, 79, 100, 96, 3, 24, 99, 84, 85, 86,
87, 88, 25, 26, 27, 91, 92, 28, 29, 30,
108, 31, 110, 32, 33, 111, 34, 37, 35, 38,
50, 41, 48, 93, 0, 40, 118, 51, 42, 43,
44, 45, 46, 119, 47, 120, 49, 70, 71, 72,
73, 74, 75, 76, 116, 117, 52, 53, 54, 55,
56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
66, 67, 68, 4, 77, 5, 6, 7, 8, 9,
10, 11, 80, 12, 13, 14, 15, 16, 17, 18,
81, 19, 20, 82, 83, 21, 0, 89, 90, 97,
0, 95, 101, 102, 0, 103, 104, 105, 106, 107,
109, 112, 113, 114, 115
84, 85, 106, 102, 48, 3, 105, 90, 91, 92,
93, 94, 54, 25, 26, 97, 98, 27, 28, 29,
114, 30, 116, 31, 32, 117, 33, 34, 35, 37,
43, 39, 53, 83, 52, 0, 124, 57, 40, 41,
44, 45, 99, 125, 46, 126, 47, 49, 50, 51,
55, 56, 76, 77, 122, 123, 78, 58, 59, 60,
61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
71, 72, 73, 74, 4, 87, 5, 6, 7, 8,
9, 10, 11, 79, 12, 13, 14, 15, 16, 17,
18, 80, 19, 20, 21, 81, 82, 22, 86, 88,
89, 95, 96, 101, 103, 0, 0, 107, 108, 0,
109, 110, 111, 112, 113, 115, 118, 119, 120, 121
};
static const yytype_int8 yycheck[] =
{
52, 53, 76, 72, 0, 4, 75, 59, 60, 61,
62, 63, 18, 4, 4, 67, 68, 4, 10, 4,
94, 4, 96, 4, 4, 99, 15, 4, 3, 7,
3, 10, 36, 7, -1, 23, 110, 13, 10, 10,
10, 10, 10, 112, 10, 119, 10, 10, 10, 10,
10, 10, 10, 10, 106, 107, 32, 33, 34, 35,
58, 59, 82, 78, 30, 0, 81, 65, 66, 67,
68, 69, 38, 4, 18, 73, 74, 4, 4, 4,
100, 10, 102, 4, 4, 105, 4, 4, 3, 3,
24, 4, 15, 4, 35, -1, 116, 13, 10, 7,
10, 10, 7, 118, 10, 125, 10, 10, 10, 10,
10, 3, 10, 10, 112, 113, 10, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 9, 4, 11, 12, 13, 14, 15,
16, 17, 10, 19, 20, 21, 22, 23, 24, 25,
4, 27, 28, 4, 4, 31, -1, 10, 10, 5,
-1, 10, 10, 10, -1, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10
46, 47, 48, 49, 9, 4, 11, 12, 13, 14,
15, 16, 17, 10, 19, 20, 21, 22, 23, 24,
25, 10, 27, 28, 29, 10, 10, 32, 10, 4,
4, 10, 10, 10, 5, -1, -1, 10, 10, -1,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
0, 50, 51, 0, 9, 11, 12, 13, 14, 15,
0, 51, 52, 0, 9, 11, 12, 13, 14, 15,
16, 17, 19, 20, 21, 22, 23, 24, 25, 27,
28, 31, 52, 53, 4, 18, 4, 4, 4, 10,
4, 4, 4, 4, 15, 3, 56, 4, 7, 54,
52, 10, 10, 10, 10, 10, 10, 10, 56, 10,
3, 13, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 55,
10, 10, 10, 10, 10, 10, 10, 4, 55, 55,
10, 4, 4, 4, 55, 55, 55, 55, 55, 10,
10, 55, 55, 7, 58, 10, 58, 5, 57, 58,
57, 10, 10, 10, 10, 10, 10, 10, 57, 10,
57, 57, 10, 10, 10, 10, 55, 55, 57, 58,
57
28, 29, 32, 53, 54, 4, 18, 4, 4, 4,
10, 4, 4, 4, 4, 3, 55, 3, 58, 4,
10, 7, 56, 53, 10, 10, 10, 10, 58, 10,
10, 10, 55, 15, 58, 10, 3, 13, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 57, 10, 10, 10, 10,
10, 10, 10, 4, 57, 57, 10, 4, 4, 4,
57, 57, 57, 57, 57, 10, 10, 57, 57, 7,
60, 10, 60, 5, 59, 60, 59, 10, 10, 10,
10, 10, 10, 10, 59, 10, 59, 59, 10, 10,
10, 10, 57, 57, 59, 60, 59
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
0, 49, 50, 51, 52, 52, 53, 53, 53, 53,
53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
53, 53, 53, 53, 54, 55, 55, 55, 55, 55,
55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
55, 55, 55, 55, 56, 56, 57, 57, 58, 58
0, 50, 51, 52, 53, 53, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 55, 55, 56, 57,
57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
57, 57, 57, 57, 57, 57, 57, 57, 58, 58,
59, 59, 60, 60
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 2, 0, 2, 0, 3, 6, 1, 1,
2, 7, 3, 5, 6, 5, 2, 4, 2, 6,
3, 3, 2, 1, 0, 2, 2, 6, 3, 1,
4, 4, 4, 2, 2, 2, 2, 2, 4, 4,
2, 2, 1, 0, 1, 0, 1, 0, 1, 0
3, 2, 7, 3, 5, 6, 5, 2, 4, 2,
2, 6, 3, 3, 3, 1, 2, 0, 0, 2,
2, 6, 3, 1, 4, 4, 4, 2, 2, 2,
2, 2, 4, 4, 2, 2, 1, 0, 1, 0,
1, 0, 1, 0
};
@ -1375,14 +1381,14 @@ yyreduce:
stack = new Hypno::HotspotsStack();
stack->push_back(new Hotspots());
}
#line 1379 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1385 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 6:
#line 89 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Hotspot *hot = new Hotspot(MakeMenu, (yyvsp[-1].s));
debugC(1, kHypnoDebugParser, "MENU %d.", hot->type);
debugC(1, kHypnoDebugParser, "MENU %s %s", (yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
cur->push_back(*hot);
@ -1392,7 +1398,7 @@ yyreduce:
smenu_idx->pop_back();
smenu_idx->push_back(idx);
}
#line 1396 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1402 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 7:
@ -1403,7 +1409,7 @@ yyreduce:
Hotspots *cur = stack->back();
cur->push_back(*hot);
}
#line 1407 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1413 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 8:
@ -1423,7 +1429,7 @@ yyreduce:
stack->push_back(hot->smenu);
debugC(1, kHypnoDebugParser, "SUBMENU");
}
#line 1427 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1433 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 9:
@ -1434,17 +1440,23 @@ yyreduce:
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "ESC SUBMENU"); }
#line 1438 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1444 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 10:
#line 128 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "TIME %d", (yyvsp[0].i)); }
#line 1444 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "TIME %d", (yyvsp[-1].i)); }
#line 1450 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 11:
#line 129 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "SWPT %d", (yyvsp[0].i)); }
#line 1456 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 12:
#line 130 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Background *a = new Background((yyvsp[-5].s), Common::Point((yyvsp[-4].i), (yyvsp[-3].i)), (yyvsp[-2].s), (yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
@ -1452,11 +1464,11 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "BACK");
}
#line 1456 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1468 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 12:
#line 136 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 13:
#line 137 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Global *a = new Global((yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
@ -1464,44 +1476,44 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "GLOB");
}
#line 1468 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1480 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 13:
#line 143 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 14:
#line 144 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Ambient *a = new Ambient((yyvsp[-3].s), Common::Point((yyvsp[-2].i), (yyvsp[-1].i)), (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "AMBI %d %d", (yyvsp[-2].i), (yyvsp[-1].i)); }
#line 1479 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1491 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 14:
#line 149 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 15:
#line 150 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Play *a = new Play((yyvsp[-4].s), Common::Point((yyvsp[-3].i), (yyvsp[-2].i)), (yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "PLAY %s.", (yyvsp[-4].s)); }
#line 1490 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1502 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 15:
#line 155 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 16:
#line 156 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Overlay *a = new Overlay((yyvsp[-3].s), Common::Point((yyvsp[-2].i), (yyvsp[-1].i)), (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
}
#line 1501 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1513 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 16:
#line 161 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 17:
#line 162 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Palette *a = new Palette((yyvsp[0].s));
Hotspots *cur = stack->back();
@ -1509,11 +1521,11 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "PALE");
}
#line 1513 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1525 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 17:
#line 168 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 18:
#line 169 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Cutscene *a = new Cutscene(Common::String("cine/") + (yyvsp[-2].s));
Hotspots *cur = stack->back();
@ -1521,11 +1533,23 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "INTRO %s %d %d", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].i));
}
#line 1525 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1537 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 18:
#line 175 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 19:
#line 176 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Cutscene *a = new Cutscene(Common::String("cine/") + (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "INTRO %s", (yyvsp[0].s));
}
#line 1549 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 20:
#line 183 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Cutscene *a = new Cutscene((yyvsp[0].s));
Hotspots *cur = stack->back();
@ -1533,189 +1557,189 @@ yyreduce:
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "CUTS %s", (yyvsp[0].s));
}
#line 1537 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1561 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 19:
#line 182 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 21:
#line 190 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
WalN *a = new WalN((yyvsp[-5].s), (yyvsp[-4].s), Common::Point((yyvsp[-3].i), (yyvsp[-2].i)), (yyvsp[-1].s), (yyvsp[0].s));
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "WALN %s %d %d", (yyvsp[-4].s), (yyvsp[-3].i), (yyvsp[-2].i)); }
#line 1548 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1572 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 20:
#line 188 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 22:
#line 196 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Mice *a = new Mice((yyvsp[-1].s), (yyvsp[0].i)-1);
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
}
#line 1559 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1583 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 21:
#line 194 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 23:
#line 202 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(talk_action);
talk_action = nullptr;
debugC(1, kHypnoDebugParser, "TALK"); }
#line 1570 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1594 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 22:
#line 200 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 24:
#line 208 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
debugC(1, kHypnoDebugParser, "explicit END");
g_parsedHots = stack->back();
stack->pop_back();
smenu_idx->pop_back();
}
#line 1581 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1605 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 23:
#line 206 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 25:
#line 214 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "implicit END"); }
#line 1587 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1611 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 24:
#line 209 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 28:
#line 221 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
assert(talk_action == nullptr);
talk_action = new Talk();
talk_action->escape = false;
talk_action->active = true;
}
#line 1598 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1622 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 25:
#line 216 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 29:
#line 228 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->active = false;
debugC(1, kHypnoDebugParser, "inactive"); }
#line 1606 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1630 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 26:
#line 219 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 30:
#line 231 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "inactive"); }
#line 1612 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1636 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 27:
#line 220 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 31:
#line 232 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->background = (yyvsp[-4].s);
talk_action->backgroundPos = Common::Point((yyvsp[-3].i), (yyvsp[-2].i));
debugC(1, kHypnoDebugParser, "BACK in TALK"); }
#line 1621 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1645 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 28:
#line 224 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 32:
#line 236 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->boxPos = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "BOXX %d %d", (yyvsp[-1].i), (yyvsp[0].i)); }
#line 1629 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1653 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 29:
#line 227 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 33:
#line 239 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->escape = true;
debugC(1, kHypnoDebugParser, "ESCAPE"); }
#line 1637 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1661 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 30:
#line 230 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 34:
#line 242 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->second = (yyvsp[-2].s);
talk_action->secondPos = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "SECOND %s %d %d", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].i)); }
#line 1646 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1670 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 31:
#line 234 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 35:
#line 246 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
talk_action->intro = (yyvsp[-2].s);
talk_action->introPos = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "INTRO %s %d %d", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].i)); }
#line 1655 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1679 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 32:
#line 238 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 36:
#line 250 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
// Unsure how this is different from second
talk_action->second = (yyvsp[-2].s);
talk_action->secondPos = Common::Point((yyvsp[-1].i), (yyvsp[0].i));
debugC(1, kHypnoDebugParser, "DEFAULT %s %d %d", (yyvsp[-2].s), (yyvsp[-1].i), (yyvsp[0].i)); }
#line 1665 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1689 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 33:
#line 243 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 37:
#line 255 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "G";
talk_cmd.path = (yyvsp[-1].s)+2;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
#line 1676 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1700 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 34:
#line 249 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 38:
#line 261 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
#line 1682 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1706 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 35:
#line 250 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 39:
#line 262 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "F";
talk_cmd.num = atoi((yyvsp[-1].s)+2)-1;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
#line 1693 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1717 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 36:
#line 256 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 40:
#line 268 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "A";
talk_cmd.num = atoi((yyvsp[-1].s)+2)-1;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "|A%d", talk_cmd.num); }
#line 1704 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1728 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 37:
#line 262 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 41:
#line 274 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "D";
talk_cmd.num = atoi((yyvsp[-1].s)+2)-1;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
#line 1715 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1739 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 38:
#line 268 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 42:
#line 280 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "P";
@ -1723,11 +1747,11 @@ yyreduce:
talk_cmd.position = Common::Point((yyvsp[-2].i), (yyvsp[-1].i));
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s %d %d", (yyvsp[-3].s), (yyvsp[-2].i), (yyvsp[-1].i)); }
#line 1727 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1751 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 39:
#line 275 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 43:
#line 287 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "I";
@ -1735,74 +1759,74 @@ yyreduce:
talk_cmd.position = Common::Point((yyvsp[-2].i), (yyvsp[-1].i));
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s %d %d", (yyvsp[-3].s), (yyvsp[-2].i), (yyvsp[-1].i)); }
#line 1739 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1763 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 40:
#line 282 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 44:
#line 294 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "S";
talk_cmd.variable = (yyvsp[-1].s)+2;
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "%s", (yyvsp[-1].s)); }
#line 1750 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
#line 1774 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 41:
#line 288 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
case 45:
#line 300 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{
TalkCommand talk_cmd;
talk_cmd.command = "L";
talk_action->commands.push_back(talk_cmd);
debugC(1, kHypnoDebugParser, "|L"); }
#line 1760 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 42:
#line 293 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "|E"); }
#line 1766 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 44:
#line 297 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = (yyvsp[0].s); debugC(1, kHypnoDebugParser, "name: %s", (yyvsp[0].s)); }
#line 1772 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 45:
#line 298 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = scumm_strdup(""); }
#line 1778 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 46:
#line 301 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = (yyvsp[0].s); debugC(1, kHypnoDebugParser, "flag: %s", (yyvsp[0].s)); }
#line 1784 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 47:
#line 302 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = scumm_strdup(""); }
case 46:
#line 305 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ debugC(1, kHypnoDebugParser, "|E"); }
#line 1790 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 48:
#line 305 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = (yyvsp[0].s); debugC(1, kHypnoDebugParser, "switch %s", (yyvsp[0].s)); }
#line 309 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = (yyvsp[0].s); }
#line 1796 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 49:
#line 306 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
#line 310 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = scumm_strdup(""); }
#line 1802 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 50:
#line 313 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = (yyvsp[0].s); debugC(1, kHypnoDebugParser, "flag: %s", (yyvsp[0].s)); }
#line 1808 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
#line 1806 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
case 51:
#line 314 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = scumm_strdup(""); }
#line 1814 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 52:
#line 317 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = (yyvsp[0].s); debugC(1, kHypnoDebugParser, "switch %s", (yyvsp[0].s)); }
#line 1820 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
case 53:
#line 318 "engines/hypno/grammar_mis.y" /* yacc.c:1646 */
{ (yyval.s) = scumm_strdup(""); }
#line 1826 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
break;
#line 1830 "engines/hypno/grammar_mis.cpp" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires

View File

@ -62,7 +62,7 @@ using namespace Hypno;
%token<s> NAME FILENAME FLAG COMMENT GSSWITCH COMMAND WALNTOK
%token<i> NUM
%token HOTSTOK CUTSTOK BACKTOK INTRTOK RETTOK TIMETOK PALETOK BBOXTOK OVERTOK MICETOK PLAYTOK ENDTOK
%token MENUTOK SMENTOK ESCPTOK NRTOK AMBITOK
%token MENUTOK SMENTOK ESCPTOK NRTOK AMBITOK SWPTTOK
%token GLOBTOK TONTOK TOFFTOK
%token TALKTOK INACTOK FDTOK BOXXTOK ESCAPETOK SECONDTOK INTROTOK DEFAULTTOK
%token<s> PG PA PD PH PF PE PP PI PL PS
@ -88,7 +88,7 @@ lines: line lines
line: MENUTOK mflag mflag {
Hotspot *hot = new Hotspot(MakeMenu, $2);
debugC(1, kHypnoDebugParser, "MENU %d.", hot->type);
debugC(1, kHypnoDebugParser, "MENU %s %s", $2, $3);
Hotspots *cur = stack->back();
cur->push_back(*hot);
@ -125,7 +125,8 @@ line: MENUTOK mflag mflag {
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "ESC SUBMENU"); }
| TIMETOK NUM { debugC(1, kHypnoDebugParser, "TIME %d", $2); }
| TIMETOK NUM mflag { debugC(1, kHypnoDebugParser, "TIME %d", $2); }
| SWPTTOK NUM { debugC(1, kHypnoDebugParser, "SWPT %d", $2); }
| BACKTOK FILENAME NUM NUM gsswitch flag flag {
Background *a = new Background($2, Common::Point($3, $4), $5, $6, $7);
Hotspots *cur = stack->back();
@ -172,6 +173,13 @@ line: MENUTOK mflag mflag {
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "INTRO %s %d %d", $2, $3, $4);
}
| INTRTOK FILENAME {
Cutscene *a = new Cutscene(Common::String("cine/") + $2);
Hotspots *cur = stack->back();
Hotspot *hot = &cur->back();
hot->actions.push_back(a);
debugC(1, kHypnoDebugParser, "INTRO %s", $2);
}
| CUTSTOK FILENAME {
Cutscene *a = new Cutscene($2);
Hotspots *cur = stack->back();
@ -197,7 +205,7 @@ line: MENUTOK mflag mflag {
hot->actions.push_back(talk_action);
talk_action = nullptr;
debugC(1, kHypnoDebugParser, "TALK"); }
| ENDTOK RETTOK {
| ENDTOK anything RETTOK {
debugC(1, kHypnoDebugParser, "explicit END");
g_parsedHots = stack->back();
stack->pop_back();
@ -206,6 +214,10 @@ line: MENUTOK mflag mflag {
| RETTOK { debugC(1, kHypnoDebugParser, "implicit END"); }
;
anything: NAME anything
| // nothing
;
alloctalk: {
assert(talk_action == nullptr);
talk_action = new Talk();
@ -294,7 +306,7 @@ talk: INACTOK talk {
| /*nothing*/
;
mflag: NAME { $$ = $1; debugC(1, kHypnoDebugParser, "name: %s", $1); }
mflag: NAME { $$ = $1; }
| /* nothing */ { $$ = scumm_strdup(""); }
;

View File

@ -633,8 +633,8 @@ static void yynoreturn yy_fatal_error ( const char* msg );
(yy_hold_char) = *yy_cp; \
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
#define YY_NUM_RULES 46
#define YY_END_OF_BUFFER 47
#define YY_NUM_RULES 47
#define YY_END_OF_BUFFER 48
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@ -642,24 +642,24 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static const flex_int16_t yy_accept[144] =
static const flex_int16_t yy_accept[147] =
{ 0,
0, 0, 47, 45, 44, 43, 43, 45, 39, 42,
42, 45, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 43, 44,
42, 0, 39, 39, 0, 1, 41, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
0, 0, 35, 0, 0, 0, 0, 36, 0, 0,
2, 39, 0, 40, 40, 40, 40, 40, 11, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 32, 33, 34, 28, 31,
0, 0, 48, 46, 45, 44, 44, 46, 40, 43,
43, 46, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 44, 45,
43, 0, 40, 40, 0, 1, 42, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 0, 0, 36, 0, 0, 0, 0, 37, 0,
0, 2, 40, 0, 41, 41, 41, 41, 41, 11,
41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 33, 34, 35,
30, 29, 27, 39, 0, 4, 5, 20, 6, 40,
40, 15, 7, 37, 9, 40, 24, 3, 10, 13,
8, 16, 40, 14, 17, 12, 26, 39, 19, 40,
40, 40, 23, 40, 38, 40, 21, 40, 22, 25,
40, 18, 0
29, 32, 31, 30, 28, 40, 0, 4, 5, 20,
6, 41, 41, 15, 7, 38, 9, 41, 24, 3,
10, 13, 8, 16, 41, 14, 25, 17, 12, 27,
40, 19, 41, 41, 41, 23, 41, 39, 41, 21,
41, 22, 26, 41, 18, 0
} ;
static const YY_CHAR yy_ec[256] =
@ -702,49 +702,49 @@ static const YY_CHAR yy_meta[40] =
5, 5, 5, 5, 5, 5, 5, 5, 1
} ;
static const flex_int16_t yy_base[155] =
static const flex_int16_t yy_base[158] =
{ 0,
0, 0, 299, 300, 296, 300, 300, 32, 36, 36,
39, 0, 45, 46, 47, 48, 50, 291, 51, 55,
52, 66, 56, 61, 71, 78, 58, 0, 87, 294,
84, 0, 287, 83, 277, 0, 0, 282, 54, 80,
63, 95, 96, 103, 106, 104, 107, 110, 112, 114,
117, 116, 118, 121, 122, 129, 123, 124, 130, 0,
142, 147, 300, 150, 0, 153, 0, 300, 0, 0,
0, 138, 258, 132, 158, 133, 142, 160, 276, 161,
163, 164, 165, 169, 170, 172, 173, 174, 176, 177,
179, 181, 182, 180, 186, 200, 206, 209, 0, 212,
0, 0, 305, 306, 302, 306, 306, 32, 36, 36,
39, 0, 45, 46, 47, 48, 50, 297, 51, 55,
52, 66, 56, 61, 71, 78, 58, 0, 93, 299,
84, 0, 291, 83, 281, 0, 0, 286, 54, 80,
63, 94, 97, 102, 101, 95, 96, 98, 113, 114,
121, 118, 122, 124, 126, 125, 128, 133, 137, 139,
0, 139, 142, 306, 145, 0, 150, 0, 306, 0,
0, 0, 154, 262, 158, 159, 132, 160, 162, 280,
163, 164, 165, 166, 168, 171, 167, 178, 179, 180,
174, 182, 181, 183, 188, 187, 207, 208, 211, 214,
0, 0, 0, 189, 244, 268, 265, 260, 255, 194,
195, 254, 252, 192, 251, 205, 185, 250, 249, 248,
247, 246, 219, 245, 244, 241, 238, 220, 300, 222,
223, 227, 237, 225, 300, 228, 236, 229, 233, 231,
232, 60, 300, 259, 264, 267, 58, 272, 275, 278,
281, 284, 287, 290
0, 217, 0, 0, 0, 194, 246, 272, 267, 262,
261, 196, 206, 260, 258, 192, 257, 200, 226, 256,
255, 254, 253, 252, 229, 246, 245, 244, 241, 239,
226, 306, 230, 231, 235, 238, 233, 306, 234, 237,
236, 199, 186, 240, 60, 306, 266, 271, 274, 58,
279, 282, 285, 288, 291, 294, 297
} ;
static const flex_int16_t yy_def[155] =
static const flex_int16_t yy_def[158] =
{ 0,
143, 1, 143, 143, 143, 143, 143, 143, 144, 143,
143, 145, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 147, 143, 143,
143, 148, 144, 144, 143, 145, 149, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 147,
143, 143, 143, 143, 150, 143, 151, 143, 152, 153,
148, 144, 143, 146, 146, 146, 146, 146, 146, 146,
146, 154, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 143, 143, 143, 150, 143,
146, 1, 146, 146, 146, 146, 146, 146, 147, 146,
146, 148, 149, 149, 149, 149, 149, 149, 149, 149,
149, 149, 149, 149, 149, 149, 149, 150, 146, 146,
146, 151, 147, 147, 146, 148, 152, 149, 149, 149,
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
150, 146, 146, 146, 146, 153, 146, 154, 146, 155,
156, 151, 147, 146, 149, 149, 149, 149, 149, 149,
149, 149, 157, 149, 149, 149, 149, 149, 149, 149,
149, 149, 149, 149, 149, 149, 149, 146, 146, 146,
151, 152, 153, 144, 143, 146, 146, 146, 146, 146,
146, 146, 146, 154, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 144, 143, 146,
146, 146, 146, 146, 143, 146, 146, 146, 146, 146,
146, 146, 0, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143
153, 146, 154, 155, 156, 147, 146, 149, 149, 149,
149, 149, 149, 149, 149, 157, 149, 149, 149, 149,
149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
147, 146, 149, 149, 149, 149, 149, 146, 149, 149,
149, 149, 149, 149, 149, 0, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146
} ;
static const flex_int16_t yy_nxt[340] =
static const flex_int16_t yy_nxt[346] =
{ 0,
4, 5, 6, 7, 8, 4, 9, 10, 10, 11,
12, 4, 13, 14, 15, 16, 17, 18, 19, 20,
@ -752,40 +752,41 @@ static const flex_int16_t yy_nxt[340] =
26, 18, 18, 27, 18, 18, 28, 18, 29, 31,
31, 31, 32, 31, 31, 31, 31, 31, 31, 34,
37, 37, 37, 37, 35, 37, 37, 37, 40, 37,
37, 37, 60, 37, 43, 37, 37, 74, 37, 39,
59, 37, 41, 53, 46, 44, 37, 49, 42, 45,
47, 48, 50, 37, 54, 37, 51, 55, 52, 143,
57, 31, 31, 31, 75, 56, 72, 76, 58, 61,
37, 37, 61, 37, 43, 37, 37, 75, 37, 39,
60, 37, 41, 53, 46, 44, 37, 49, 42, 45,
47, 48, 50, 37, 54, 37, 51, 55, 52, 146,
58, 31, 31, 31, 76, 56, 73, 77, 59, 37,
37, 37, 62, 63, 64, 65, 66, 67, 37, 37,
68, 37, 37, 78, 69, 37, 70, 37, 79, 37,
80, 37, 37, 37, 84, 77, 37, 37, 37, 37,
81, 87, 88, 90, 37, 37, 91, 37, 37, 86,
83, 89, 85, 82, 143, 92, 93, 37, 94, 96,
96, 96, 106, 95, 97, 97, 97, 98, 98, 98,
100, 100, 100, 37, 104, 37, 37, 108, 37, 37,
37, 109, 110, 111, 37, 37, 113, 37, 37, 37,
107, 37, 37, 116, 37, 37, 37, 37, 112, 119,
37, 37, 121, 127, 115, 143, 126, 37, 117, 37,
37, 37, 37, 37, 57, 62, 37, 37, 63, 64,
65, 66, 67, 68, 79, 81, 69, 80, 37, 37,
70, 82, 71, 37, 78, 85, 37, 37, 84, 37,
37, 37, 83, 37, 89, 88, 91, 37, 37, 87,
92, 93, 37, 86, 37, 90, 98, 98, 98, 99,
99, 99, 100, 100, 100, 94, 95, 102, 102, 102,
146, 96, 97, 37, 37, 37, 110, 37, 37, 37,
37, 37, 37, 37, 112, 113, 37, 115, 108, 37,
106, 109, 118, 37, 37, 37, 37, 37, 37, 111,
114, 37, 37, 37, 121, 117, 123, 37, 120, 119,
37, 38, 120, 118, 125, 123, 124, 96, 96, 96,
37, 133, 122, 97, 97, 97, 98, 98, 98, 100,
100, 100, 131, 128, 37, 130, 143, 37, 37, 38,
37, 135, 37, 37, 37, 132, 37, 37, 37, 137,
139, 37, 37, 37, 134, 136, 37, 138, 142, 37,
37, 37, 37, 37, 37, 37, 37, 37, 140, 37,
37, 141, 33, 33, 36, 37, 36, 36, 36, 38,
37, 38, 71, 37, 71, 71, 71, 37, 129, 37,
99, 37, 99, 101, 105, 101, 102, 37, 102, 103,
73, 103, 114, 143, 114, 30, 37, 30, 143, 3,
146, 37, 38, 129, 37, 37, 126, 122, 125, 124,
128, 37, 37, 127, 130, 98, 98, 98, 99, 99,
99, 100, 100, 100, 102, 102, 102, 133, 131, 38,
135, 37, 146, 134, 37, 37, 37, 138, 37, 37,
37, 37, 37, 37, 37, 37, 37, 140, 142, 37,
37, 37, 136, 139, 137, 141, 145, 37, 37, 37,
37, 37, 37, 37, 143, 37, 37, 37, 144, 33,
33, 36, 37, 36, 36, 36, 38, 37, 38, 72,
132, 72, 72, 72, 37, 37, 37, 101, 107, 101,
103, 37, 103, 104, 74, 104, 105, 146, 105, 116,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143
30, 116, 37, 30, 146, 3, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146
} ;
static const flex_int16_t yy_chk[340] =
static const flex_int16_t yy_chk[346] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -793,45 +794,46 @@ static const flex_int16_t yy_chk[340] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 8,
8, 8, 9, 10, 10, 10, 11, 11, 11, 9,
13, 14, 15, 16, 11, 17, 19, 21, 14, 39,
20, 23, 147, 27, 16, 142, 24, 39, 41, 13,
20, 23, 150, 27, 16, 145, 24, 39, 41, 13,
27, 22, 14, 24, 19, 17, 25, 21, 15, 17,
19, 20, 22, 26, 24, 40, 22, 25, 23, 34,
26, 31, 31, 31, 40, 25, 34, 41, 26, 29,
26, 31, 31, 31, 40, 25, 34, 41, 26, 42,
42, 43, 29, 29, 29, 29, 29, 29, 44, 46,
29, 45, 47, 43, 29, 48, 29, 49, 44, 50,
45, 52, 51, 53, 49, 42, 54, 55, 57, 58,
46, 51, 52, 54, 56, 59, 55, 74, 76, 50,
48, 53, 49, 47, 72, 56, 57, 77, 58, 61,
61, 61, 74, 59, 62, 62, 62, 64, 64, 64,
66, 66, 66, 75, 72, 78, 80, 76, 81, 82,
83, 77, 78, 80, 84, 85, 81, 86, 87, 88,
75, 89, 90, 84, 91, 94, 92, 93, 80, 87,
117, 95, 89, 95, 83, 104, 94, 114, 85, 110,
46, 47, 43, 48, 25, 29, 45, 44, 29, 29,
29, 29, 29, 29, 43, 45, 29, 44, 49, 50,
29, 46, 29, 52, 42, 49, 51, 53, 48, 54,
56, 55, 47, 57, 52, 51, 54, 77, 58, 50,
55, 56, 59, 49, 60, 53, 62, 62, 62, 63,
63, 63, 65, 65, 65, 57, 58, 67, 67, 67,
73, 59, 60, 75, 76, 78, 77, 79, 81, 82,
83, 84, 87, 85, 79, 81, 86, 82, 75, 91,
73, 76, 85, 88, 89, 90, 93, 92, 94, 78,
81, 143, 96, 95, 88, 84, 90, 116, 87, 86,
111, 82, 88, 86, 93, 91, 92, 96, 96, 96,
116, 117, 90, 97, 97, 97, 98, 98, 98, 100,
100, 100, 111, 104, 123, 110, 128, 130, 131, 114,
134, 128, 132, 136, 138, 116, 140, 141, 139, 131,
134, 137, 133, 127, 123, 130, 126, 132, 141, 125,
124, 122, 121, 120, 119, 118, 115, 113, 136, 112,
109, 138, 144, 144, 145, 108, 145, 145, 145, 146,
107, 146, 148, 106, 148, 148, 148, 149, 105, 149,
150, 79, 150, 151, 73, 151, 152, 38, 152, 153,
35, 153, 154, 33, 154, 30, 18, 5, 3, 143,
106, 112, 83, 96, 142, 118, 93, 89, 92, 91,
95, 113, 97, 94, 97, 98, 98, 98, 99, 99,
99, 100, 100, 100, 102, 102, 102, 112, 106, 116,
118, 119, 131, 113, 125, 133, 134, 131, 137, 139,
135, 141, 140, 136, 130, 144, 129, 134, 137, 128,
127, 126, 119, 133, 125, 135, 144, 124, 123, 122,
121, 120, 117, 115, 139, 114, 111, 110, 141, 147,
147, 148, 109, 148, 148, 148, 149, 108, 149, 151,
107, 151, 151, 151, 152, 80, 152, 153, 74, 153,
154, 38, 154, 155, 35, 155, 156, 33, 156, 157,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143, 143,
143, 143, 143, 143, 143, 143, 143, 143, 143
30, 157, 18, 5, 3, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
146, 146, 146, 146, 146
} ;
/* Table of booleans, true if rule could match eol. */
static const flex_int32_t yy_rule_can_match_eol[47] =
static const flex_int32_t yy_rule_can_match_eol[48] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 0, };
0, 0, 0, 0, 1, 0, 0, 0, };
static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;
@ -878,8 +880,8 @@ char *yytext;
#include "hypno/grammar.h"
#include "hypno/tokens_mis.h"
#line 882 "engines/hypno/lexer_mis.cpp"
#line 883 "engines/hypno/lexer_mis.cpp"
#line 884 "engines/hypno/lexer_mis.cpp"
#line 885 "engines/hypno/lexer_mis.cpp"
#define INITIAL 0
@ -1096,7 +1098,7 @@ YY_DECL
{
#line 42 "engines/hypno/lexer_mis.l"
#line 1100 "engines/hypno/lexer_mis.cpp"
#line 1102 "engines/hypno/lexer_mis.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@ -1123,13 +1125,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 144 )
if ( yy_current_state >= 147 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
++yy_cp;
}
while ( yy_current_state != 143 );
while ( yy_current_state != 146 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@ -1282,115 +1284,120 @@ return INTRTOK;
case 25:
YY_RULE_SETUP
#line 67 "engines/hypno/lexer_mis.l"
return DEFAULTTOK;
return SWPTTOK;
YY_BREAK
case 26:
YY_RULE_SETUP
#line 68 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return WALNTOK;
return DEFAULTTOK;
YY_BREAK
case 27:
YY_RULE_SETUP
#line 69 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PS;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return WALNTOK;
YY_BREAK
case 28:
YY_RULE_SETUP
#line 70 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PG;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PS;
YY_BREAK
case 29:
YY_RULE_SETUP
#line 71 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PP;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PG;
YY_BREAK
case 30:
YY_RULE_SETUP
#line 72 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PI;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PP;
YY_BREAK
case 31:
YY_RULE_SETUP
#line 73 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PH;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PI;
YY_BREAK
case 32:
YY_RULE_SETUP
#line 74 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PA;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PH;
YY_BREAK
case 33:
YY_RULE_SETUP
#line 75 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PD;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PA;
YY_BREAK
case 34:
YY_RULE_SETUP
#line 76 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PF;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PD;
YY_BREAK
case 35:
YY_RULE_SETUP
#line 77 "engines/hypno/lexer_mis.l"
return PE;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PF;
YY_BREAK
case 36:
YY_RULE_SETUP
#line 78 "engines/hypno/lexer_mis.l"
return PL;
return PE;
YY_BREAK
case 37:
YY_RULE_SETUP
#line 79 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return GSSWITCH;
return PL;
YY_BREAK
case 38:
YY_RULE_SETUP
#line 80 "engines/hypno/lexer_mis.l"
return BBOXTOK;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return GSSWITCH;
YY_BREAK
case 39:
YY_RULE_SETUP
#line 81 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return FLAG;
return BBOXTOK;
YY_BREAK
case 40:
YY_RULE_SETUP
#line 82 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return NAME;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return FLAG;
YY_BREAK
case 41:
YY_RULE_SETUP
#line 83 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return FILENAME;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return NAME;
YY_BREAK
case 42:
YY_RULE_SETUP
#line 84 "engines/hypno/lexer_mis.l"
HYPNO_MIS_lval.i = atoi(HYPNO_MIS_text); return NUM;
HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return FILENAME;
YY_BREAK
case 43:
/* rule 43 can match eol */
YY_RULE_SETUP
#line 85 "engines/hypno/lexer_mis.l"
return RETTOK;
HYPNO_MIS_lval.i = atoi(HYPNO_MIS_text); return NUM;
YY_BREAK
case 44:
/* rule 44 can match eol */
YY_RULE_SETUP
#line 86 "engines/hypno/lexer_mis.l"
/* ignore whitespace */;
return RETTOK;
YY_BREAK
case 45:
YY_RULE_SETUP
#line 87 "engines/hypno/lexer_mis.l"
debugC(1, Hypno::kHypnoDebugParser, "<no match: %c>", *yytext); return *yytext;
/* ignore whitespace */;
YY_BREAK
case 46:
YY_RULE_SETUP
#line 88 "engines/hypno/lexer_mis.l"
debugC(1, Hypno::kHypnoDebugParser, "<no match: %c>", *yytext); return *yytext;
YY_BREAK
case 47:
YY_RULE_SETUP
#line 89 "engines/hypno/lexer_mis.l"
ECHO;
YY_BREAK
#line 1394 "engines/hypno/lexer_mis.cpp"
#line 1401 "engines/hypno/lexer_mis.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@ -1688,7 +1695,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 144 )
if ( yy_current_state >= 147 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
@ -1716,11 +1723,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 144 )
if ( yy_current_state >= 147 )
yy_c = yy_meta[yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
yy_is_jam = (yy_current_state == 143);
yy_is_jam = (yy_current_state == 146);
return yy_is_jam ? 0 : yy_current_state;
}
@ -2367,7 +2374,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
#line 88 "engines/hypno/lexer_mis.l"
#line 89 "engines/hypno/lexer_mis.l"
namespace Hypno {

View File

@ -64,6 +64,7 @@ ESCAPE return ESCAPETOK;
SECOND return SECONDTOK;
INTRO return INTROTOK;
INTR return INTRTOK;
SWPT return SWPTTOK;
DEFAULT return DEFAULTTOK;
WAL[0-1] HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return WALNTOK;
\|S[A-Za-z_0-9\\\.]+ HYPNO_MIS_lval.s = scumm_strdup(HYPNO_MIS_text); return PS;

View File

@ -75,7 +75,8 @@ void SpiderEngine::loadAssetsFullGame() {
sc->hots[4].actions.push_back(cl);
loadSceneLevel("bank.mi_", "", prefix);
//loadSceneLevel("busintro.mi_", "", prefix);
loadSceneLevel("busintro.mi_", "buspuz.mi_", prefix);
loadSceneLevel("buspuz.mi_", "", prefix);
loadArcadeLevel("c1", "", "spider");
loadArcadeLevel("c2", "", "spider");

View File

@ -78,27 +78,28 @@ extern int HYPNO_MIS_debug;
ESCPTOK = 280,
NRTOK = 281,
AMBITOK = 282,
GLOBTOK = 283,
TONTOK = 284,
TOFFTOK = 285,
TALKTOK = 286,
INACTOK = 287,
FDTOK = 288,
BOXXTOK = 289,
ESCAPETOK = 290,
SECONDTOK = 291,
INTROTOK = 292,
DEFAULTTOK = 293,
PG = 294,
PA = 295,
PD = 296,
PH = 297,
PF = 298,
PE = 299,
PP = 300,
PI = 301,
PL = 302,
PS = 303
SWPTTOK = 283,
GLOBTOK = 284,
TONTOK = 285,
TOFFTOK = 286,
TALKTOK = 287,
INACTOK = 288,
FDTOK = 289,
BOXXTOK = 290,
ESCAPETOK = 291,
SECONDTOK = 292,
INTROTOK = 293,
DEFAULTTOK = 294,
PG = 295,
PA = 296,
PD = 297,
PH = 298,
PF = 299,
PE = 300,
PP = 301,
PI = 302,
PL = 303,
PS = 304
};
#endif
@ -112,7 +113,7 @@ union HYPNO_MIS_STYPE
char *s; /* string value */
int i; /* integer value */
#line 116 "engines/hypno/tokens_mis.h" /* yacc.c:1909 */
#line 117 "engines/hypno/tokens_mis.h" /* yacc.c:1909 */
};
typedef union HYPNO_MIS_STYPE HYPNO_MIS_STYPE;