aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo
diff options
context:
space:
mode:
Diffstat (limited to 'engines/director/lingo')
-rw-r--r--engines/director/lingo/lingo-lex.cpp204
-rw-r--r--engines/director/lingo/lingo-lex.l2
2 files changed, 104 insertions, 102 deletions
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index fb8fbb125c..8c192ada77 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -373,7 +373,7 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[305] =
+static yyconst flex_int16_t yy_accept[307] =
{ 0,
0, 0, 76, 74, 4, 72, 72, 74, 74, 74,
71, 71, 71, 70, 71, 67, 71, 68, 68, 68,
@@ -408,7 +408,7 @@ static yyconst flex_int16_t yy_accept[305] =
53, 54, 0, 0, 0, 20, 52, 0, 0, 0,
0, 0, 0, 49, 50, 0, 50, 0, 52, 0,
- 52, 0, 51, 0
+ 52, 0, 0, 51, 51, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@@ -454,7 +454,7 @@ static yyconst flex_int32_t yy_meta[66] =
5, 5, 5, 5, 1
} ;
-static yyconst flex_int16_t yy_base[321] =
+static yyconst flex_int16_t yy_base[323] =
{ 0,
0, 64, 485, 800, 68, 800, 800, 72, 474, 0,
800, 427, 419, 55, 63, 800, 365, 59, 59, 59,
@@ -487,49 +487,51 @@ static yyconst flex_int16_t yy_base[321] =
571, 575, 585, 800, 555, 550, 0, 565, 0, 567,
595, 568, 599, 610, 600, 577, 0, 800, 800, 0,
800, 614, 620, 581, 631, 800, 0, 632, 624, 633,
- 599, 642, 621, 637, 652, 668, 673, 677, 679, 633,
+ 599, 642, 621, 637, 652, 668, 673, 677, 679, 658,
- 692, 612, 800, 800, 733, 735, 738, 741, 747, 752,
- 757, 759, 764, 769, 772, 775, 780, 783, 788, 793
+ 692, 612, 667, 800, 800, 800, 733, 735, 738, 741,
+ 747, 752, 757, 759, 764, 769, 772, 775, 780, 783,
+ 788, 793
} ;
-static yyconst flex_int16_t yy_def[321] =
+static yyconst flex_int16_t yy_def[323] =
{ 0,
- 304, 1, 304, 304, 304, 304, 304, 304, 305, 306,
- 304, 304, 304, 304, 304, 304, 304, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 304, 304, 304, 307, 304, 304,
- 304, 304, 305, 304, 308, 304, 309, 304, 304, 304,
- 304, 304, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 304, 304, 304, 304, 307, 308, 309, 304, 307,
-
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 304, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 304, 307, 307,
- 307, 307, 307, 307, 307, 307, 310, 307, 307, 304,
- 307, 307, 307, 307, 307, 307, 307, 307, 307, 307,
- 307, 307, 307, 307, 307, 307, 307, 307, 311, 307,
- 307, 307, 307, 307, 304, 307, 307, 307, 307, 304,
- 312, 307, 304, 307, 307, 307, 307, 307, 304, 307,
- 307, 307, 307, 307, 307, 311, 311, 311, 311, 307,
-
- 307, 304, 307, 307, 307, 304, 312, 307, 304, 307,
- 307, 313, 304, 307, 307, 307, 307, 307, 307, 304,
- 304, 311, 311, 311, 307, 304, 307, 307, 304, 304,
- 307, 307, 314, 315, 304, 307, 307, 307, 304, 304,
- 304, 304, 311, 311, 311, 304, 307, 307, 304, 307,
- 307, 316, 315, 304, 307, 307, 307, 304, 304, 304,
- 311, 311, 311, 304, 304, 307, 316, 304, 307, 304,
- 317, 304, 311, 304, 311, 304, 307, 304, 304, 318,
- 304, 311, 304, 304, 304, 304, 318, 304, 304, 304,
- 304, 304, 304, 317, 304, 304, 317, 319, 320, 304,
-
- 320, 304, 304, 0, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304
+ 306, 1, 306, 306, 306, 306, 306, 306, 307, 308,
+ 306, 306, 306, 306, 306, 306, 306, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 306, 306, 306, 309, 306, 306,
+ 306, 306, 307, 306, 310, 306, 311, 306, 306, 306,
+ 306, 306, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 306, 306, 306, 306, 309, 310, 311, 306, 309,
+
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 306, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 306, 309, 309,
+ 309, 309, 309, 309, 309, 309, 312, 309, 309, 306,
+ 309, 309, 309, 309, 309, 309, 309, 309, 309, 309,
+ 309, 309, 309, 309, 309, 309, 309, 309, 313, 309,
+ 309, 309, 309, 309, 306, 309, 309, 309, 309, 306,
+ 314, 309, 306, 309, 309, 309, 309, 309, 306, 309,
+ 309, 309, 309, 309, 309, 313, 313, 313, 313, 309,
+
+ 309, 306, 309, 309, 309, 306, 314, 309, 306, 309,
+ 309, 315, 306, 309, 309, 309, 309, 309, 309, 306,
+ 306, 313, 313, 313, 309, 306, 309, 309, 306, 306,
+ 309, 309, 316, 317, 306, 309, 309, 309, 306, 306,
+ 306, 306, 313, 313, 313, 306, 309, 309, 306, 309,
+ 309, 318, 317, 306, 309, 309, 309, 306, 306, 306,
+ 313, 313, 313, 306, 306, 309, 318, 306, 309, 306,
+ 319, 306, 313, 306, 313, 306, 309, 306, 306, 320,
+ 306, 313, 306, 306, 306, 306, 320, 306, 306, 306,
+ 306, 306, 306, 319, 306, 306, 319, 321, 322, 306,
+
+ 322, 306, 306, 306, 306, 0, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306
} ;
static yyconst flex_int16_t yy_nxt[866] =
@@ -586,49 +588,49 @@ static yyconst flex_int16_t yy_nxt[866] =
231, 220, 218, 206, 220, 220, 219, 220, 220, 221,
220, 229, 213, 221, 235, 221, 232, 236, 225, 209,
224, 233, 209, 228, 233, 231, 237, 238, 240, 44,
- 239, 248, 53, 239, 304, 222, 249, 223, 235, 230,
+ 239, 248, 53, 239, 306, 222, 249, 223, 235, 230,
250, 232, 236, 242, 220, 224, 220, 220, 240, 220,
- 237, 238, 221, 240, 221, 248, 251, 304, 241, 222,
+ 237, 238, 221, 240, 221, 248, 251, 306, 241, 222,
249, 223, 256, 242, 230, 250, 220, 242, 233, 220,
243, 233, 254, 240, 221, 255, 239, 244, 257, 239,
- 258, 251, 241, 259, 260, 304, 256, 242, 266, 304,
- 220, 245, 265, 220, 243, 304, 268, 254, 221, 269,
- 255, 244, 257, 270, 241, 258, 261, 304, 259, 260,
+ 258, 251, 241, 259, 260, 306, 256, 242, 266, 306,
+ 220, 245, 265, 220, 243, 306, 268, 254, 221, 269,
+ 255, 244, 257, 270, 241, 258, 261, 306, 259, 260,
220, 220, 266, 220, 220, 245, 272, 265, 221, 221,
268, 271, 220, 269, 271, 220, 274, 270, 241, 274,
221, 261, 276, 277, 221, 278, 220, 279, 281, 220,
- 272, 273, 304, 262, 221, 263, 271, 286, 304, 271,
+ 272, 273, 306, 262, 221, 263, 271, 286, 306, 271,
220, 285, 289, 220, 285, 275, 276, 277, 221, 221,
278, 283, 279, 281, 283, 288, 273, 262, 288, 263,
- 295, 283, 286, 221, 283, 294, 304, 289, 294, 240,
+ 295, 283, 286, 221, 283, 294, 306, 289, 294, 240,
275, 282, 290, 292, 290, 290, 292, 290, 294, 284,
- 303, 294, 296, 292, 242, 295, 292, 304, 304, 284,
- 240, 240, 304, 297, 240, 282, 297, 302, 304, 304,
- 291, 293, 291, 284, 303, 242, 242, 296, 242, 298,
- 304, 293, 298, 284, 297, 240, 240, 297, 298, 304,
- 300, 298, 302, 300, 291, 293, 291, 304, 304, 242,
- 242, 287, 304, 300, 304, 293, 300, 304, 304, 304,
-
- 304, 304, 304, 304, 287, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 280, 304, 287,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 287, 43, 43, 304, 43, 43, 43, 45,
- 45, 53, 53, 53, 97, 97, 97, 98, 98, 304,
- 98, 98, 98, 181, 304, 304, 181, 181, 196, 304,
- 304, 196, 207, 207, 207, 234, 304, 234, 234, 234,
- 252, 304, 304, 252, 252, 253, 253, 253, 267, 267,
- 267, 280, 304, 304, 280, 280, 287, 287, 287, 299,
- 304, 304, 299, 299, 301, 304, 301, 301, 301, 3,
-
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304
+ 304, 294, 296, 292, 242, 295, 292, 306, 306, 284,
+ 240, 240, 306, 297, 240, 282, 297, 306, 306, 306,
+ 291, 293, 291, 284, 304, 242, 242, 296, 242, 298,
+ 306, 293, 298, 284, 297, 240, 240, 297, 298, 306,
+ 300, 298, 302, 300, 291, 293, 291, 303, 305, 242,
+ 242, 287, 306, 300, 306, 293, 300, 306, 306, 306,
+
+ 306, 306, 306, 306, 287, 306, 306, 302, 306, 306,
+ 306, 303, 306, 305, 306, 306, 306, 280, 306, 287,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 287, 43, 43, 306, 43, 43, 43, 45,
+ 45, 53, 53, 53, 97, 97, 97, 98, 98, 306,
+ 98, 98, 98, 181, 306, 306, 181, 181, 196, 306,
+ 306, 196, 207, 207, 207, 234, 306, 234, 234, 234,
+ 252, 306, 306, 252, 252, 253, 253, 253, 267, 267,
+ 267, 280, 306, 306, 280, 280, 287, 287, 287, 299,
+ 306, 306, 299, 299, 301, 306, 301, 301, 301, 3,
+
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306
} ;
static yyconst flex_int16_t yy_chk[866] =
@@ -704,30 +706,30 @@ static yyconst flex_int16_t yy_chk[866] =
291, 283, 276, 282, 283, 289, 0, 284, 289, 274,
263, 273, 285, 288, 290, 285, 288, 290, 294, 274,
302, 294, 293, 292, 274, 291, 292, 0, 0, 283,
- 285, 288, 0, 295, 274, 273, 295, 300, 0, 0,
+ 285, 288, 0, 295, 274, 273, 295, 0, 0, 0,
285, 288, 290, 274, 302, 285, 288, 293, 274, 296,
0, 292, 296, 283, 297, 285, 288, 297, 298, 0,
- 299, 298, 300, 299, 285, 288, 290, 0, 0, 285,
+ 299, 298, 300, 299, 285, 288, 290, 300, 303, 285,
288, 299, 0, 301, 0, 292, 301, 0, 0, 0,
- 0, 0, 0, 0, 301, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 298, 0, 299,
+ 0, 0, 0, 0, 301, 0, 0, 300, 0, 0,
+ 0, 300, 0, 303, 0, 0, 0, 298, 0, 299,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 301, 305, 305, 0, 305, 305, 305, 306,
- 306, 307, 307, 307, 308, 308, 308, 309, 309, 0,
- 309, 309, 309, 310, 0, 0, 310, 310, 311, 0,
- 0, 311, 312, 312, 312, 313, 0, 313, 313, 313,
- 314, 0, 0, 314, 314, 315, 315, 315, 316, 316,
- 316, 317, 0, 0, 317, 317, 318, 318, 318, 319,
- 0, 0, 319, 319, 320, 0, 320, 320, 320, 304,
-
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304, 304, 304, 304, 304, 304,
- 304, 304, 304, 304, 304
+ 0, 0, 301, 307, 307, 0, 307, 307, 307, 308,
+ 308, 309, 309, 309, 310, 310, 310, 311, 311, 0,
+ 311, 311, 311, 312, 0, 0, 312, 312, 313, 0,
+ 0, 313, 314, 314, 314, 315, 0, 315, 315, 315,
+ 316, 0, 0, 316, 316, 317, 317, 317, 318, 318,
+ 318, 319, 0, 0, 319, 319, 320, 320, 320, 321,
+ 0, 0, 321, 321, 322, 0, 322, 322, 322, 306,
+
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306, 306, 306, 306, 306, 306,
+ 306, 306, 306, 306, 306
} ;
static yy_state_type yy_last_accepting_state;
@@ -816,7 +818,7 @@ static int checkImmediate(int token) {
return token;
}
-#line 820 "engines/director/lingo/lingo-lex.cpp"
+#line 822 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@@ -1002,7 +1004,7 @@ YY_DECL
#line 87 "engines/director/lingo/lingo-lex.l"
-#line 1006 "engines/director/lingo/lingo-lex.cpp"
+#line 1008 "engines/director/lingo/lingo-lex.cpp"
if ( !(yy_init) )
{
@@ -1056,13 +1058,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 >= 305 )
+ if ( yy_current_state >= 307 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 304 );
+ while ( yy_current_state != 306 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -1674,7 +1676,7 @@ YY_RULE_SETUP
#line 383 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
-#line 1678 "engines/director/lingo/lingo-lex.cpp"
+#line 1680 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@@ -1968,7 +1970,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 >= 305 )
+ if ( yy_current_state >= 307 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1996,11 +1998,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 >= 305 )
+ if ( yy_current_state >= 307 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 304);
+ yy_is_jam = (yy_current_state == 306);
return yy_is_jam ? 0 : yy_current_state;
}
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 13a1db9c00..cb07b80a95 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -178,7 +178,7 @@ whitespace [\t ]
return FBLTINONEARG;
}
-(?i:the[ \t]+number[\t ]+of[\t ]+[[:alpha:]]+[\t ]in) {
+(?i:the[ \t]+number[\t ]+of[\t ]+[[:alpha:]]+[\t ](in|of)) {
count();
const char *ptr = &yytext[4]; // Skip 'the '