DIRECTOR: LINGO: Make 'method {identifier}' as a single token.

This lets avoid clashes with method names matching built-ins.
This commit is contained in:
Eugene Sandulenko 2019-12-19 12:50:06 +01:00
parent fc5eb5ecf8
commit 6ce34299ff
5 changed files with 684 additions and 644 deletions

File diff suppressed because it is too large Load Diff

View File

@ -72,32 +72,32 @@
SYMBOL = 288,
ENDCLAUSE = 289,
tPLAYACCEL = 290,
tDOWN = 291,
tELSE = 292,
tELSIF = 293,
tEXIT = 294,
tFRAME = 295,
tGLOBAL = 296,
tGO = 297,
tIF = 298,
tINTO = 299,
tLOOP = 300,
tMACRO = 301,
tMOVIE = 302,
tNEXT = 303,
tOF = 304,
tPREVIOUS = 305,
tPUT = 306,
tREPEAT = 307,
tSET = 308,
tTHEN = 309,
tTO = 310,
tWHEN = 311,
tWITH = 312,
tWHILE = 313,
tNLELSE = 314,
tFACTORY = 315,
tMETHOD = 316,
tMETHOD = 291,
tDOWN = 292,
tELSE = 293,
tELSIF = 294,
tEXIT = 295,
tFRAME = 296,
tGLOBAL = 297,
tGO = 298,
tIF = 299,
tINTO = 300,
tLOOP = 301,
tMACRO = 302,
tMOVIE = 303,
tNEXT = 304,
tOF = 305,
tPREVIOUS = 306,
tPUT = 307,
tREPEAT = 308,
tSET = 309,
tTHEN = 310,
tTO = 311,
tWHEN = 312,
tWITH = 313,
tWHILE = 314,
tNLELSE = 315,
tFACTORY = 316,
tOPEN = 317,
tPLAY = 318,
tDONE = 319,
@ -165,32 +165,32 @@
#define SYMBOL 288
#define ENDCLAUSE 289
#define tPLAYACCEL 290
#define tDOWN 291
#define tELSE 292
#define tELSIF 293
#define tEXIT 294
#define tFRAME 295
#define tGLOBAL 296
#define tGO 297
#define tIF 298
#define tINTO 299
#define tLOOP 300
#define tMACRO 301
#define tMOVIE 302
#define tNEXT 303
#define tOF 304
#define tPREVIOUS 305
#define tPUT 306
#define tREPEAT 307
#define tSET 308
#define tTHEN 309
#define tTO 310
#define tWHEN 311
#define tWITH 312
#define tWHILE 313
#define tNLELSE 314
#define tFACTORY 315
#define tMETHOD 316
#define tMETHOD 291
#define tDOWN 292
#define tELSE 293
#define tELSIF 294
#define tEXIT 295
#define tFRAME 296
#define tGLOBAL 297
#define tGO 298
#define tIF 299
#define tINTO 300
#define tLOOP 301
#define tMACRO 302
#define tMOVIE 303
#define tNEXT 304
#define tOF 305
#define tPREVIOUS 306
#define tPUT 307
#define tREPEAT 308
#define tSET 309
#define tTHEN 310
#define tTO 311
#define tWHEN 312
#define tWITH 313
#define tWHILE 314
#define tNLELSE 315
#define tFACTORY 316
#define tOPEN 317
#define tPLAY 318
#define tDONE 319

View File

@ -94,10 +94,10 @@ void checkEnd(Common::String *token, const char *expect, bool required) {
%token<s> BLTIN BLTINNOARGS BLTINNOARGSORONE BLTINONEARG BLTINARGLIST TWOWORDBUILTIN
%token<s> FBLTIN FBLTINNOARGS FBLTINONEARG FBLTINARGLIST RBLTIN RBLTINONEARG
%token<s> ID STRING HANDLER SYMBOL
%token<s> ENDCLAUSE tPLAYACCEL
%token<s> ENDCLAUSE tPLAYACCEL tMETHOD
%token tDOWN tELSE tELSIF tEXIT tFRAME tGLOBAL tGO tIF tINTO tLOOP tMACRO
%token tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN
%token tWITH tWHILE tNLELSE tFACTORY tMETHOD tOPEN tPLAY tDONE tINSTANCE
%token tWITH tWHILE tNLELSE tFACTORY tOPEN tPLAY tDONE tINSTANCE
%token tGE tLE tEQ tNEQ tAND tOR tNOT tMOD
%token tAFTER tBEFORE tCONCAT tCONTAINS tSTARTS tCHAR tITEM tLINE tWORD
%token tSPRITE tINTERSECTS tWITHIN tTELL tPROPERTY
@ -529,12 +529,12 @@ defn: tMACRO ID { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); }
g_lingo->define(*$2, $4, $5);
g_lingo->_indef = false; }
| tFACTORY ID { g_lingo->codeFactory(*$2); }
| tMETHOD ID { g_lingo->_indef = true; }
| tMETHOD { g_lingo->_indef = true; }
begin argdef '\n' argstore stmtlist {
g_lingo->code1(g_lingo->c_procret);
g_lingo->define(*$2, $4, $5 + 1, &g_lingo->_currentFactory);
g_lingo->define(*$1, $3, $4 + 1, &g_lingo->_currentFactory);
g_lingo->_indef = false; }
| on begin argdef '\n' argstore stmtlist ENDCLAUSE endargdef { // D3
| on begin argdef '\n' argstore stmtlist ENDCLAUSE endargdef { // D3
g_lingo->code1(g_lingo->c_procret);
g_lingo->define(*$1, $2, $3);
g_lingo->_indef = false;

View File

@ -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[279] =
static yyconst flex_int16_t yy_accept[284] =
{ 0,
0, 0, 75, 73, 4, 71, 71, 73, 73, 73,
70, 70, 70, 69, 70, 66, 70, 67, 67, 67,
@ -398,13 +398,14 @@ static yyconst flex_int16_t yy_accept[279] =
67, 32, 67, 67, 67, 67, 67, 67, 53, 53,
53, 53, 60, 67, 8, 67, 0, 16, 67, 20,
67, 67, 30, 67, 67, 67, 44, 56, 46, 0,
67, 67, 67, 67, 67, 67, 44, 56, 46, 0,
0, 53, 53, 53, 58, 67, 14, 17, 67, 67,
67, 67, 67, 0, 0, 0, 0, 53, 53, 53,
10, 23, 67, 67, 41, 42, 0, 0, 0, 53,
53, 53, 67, 40, 0, 0, 0, 0, 0, 53,
24, 52, 51, 52, 0, 0, 0, 0, 0, 0,
0, 0, 0, 48, 49, 50, 50, 0
0, 30, 67, 67, 67, 0, 0, 0, 0, 53,
53, 53, 10, 23, 67, 30, 30, 67, 41, 42,
0, 0, 0, 53, 53, 53, 67, 30, 40, 0,
0, 0, 0, 0, 53, 24, 52, 51, 52, 0,
0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
50, 50, 0
} ;
static yyconst flex_int32_t yy_ec[256] =
@ -450,18 +451,18 @@ static yyconst flex_int32_t yy_meta[66] =
5, 5, 5, 5, 1
} ;
static yyconst flex_int16_t yy_base[290] =
static yyconst flex_int16_t yy_base[299] =
{ 0,
0, 64, 177, 736, 68, 736, 736, 72, 159, 0,
736, 113, 107, 55, 63, 736, 94, 58, 60, 58,
0, 64, 177, 752, 68, 752, 752, 72, 159, 0,
752, 113, 107, 55, 63, 752, 94, 58, 60, 58,
54, 62, 77, 63, 0, 94, 70, 109, 106, 109,
121, 75, 138, 137, 146, 82, 141, 185, 199, 736,
205, 94, 93, 736, 0, 736, 0, 79, 90, 736,
736, 736, 0, 69, 129, 128, 163, 139, 182, 160,
121, 75, 138, 137, 146, 82, 141, 185, 199, 752,
205, 94, 93, 752, 0, 752, 0, 79, 90, 752,
752, 752, 0, 69, 129, 128, 163, 139, 182, 160,
178, 174, 193, 196, 185, 130, 0, 182, 200, 190,
195, 203, 192, 208, 191, 196, 0, 0, 211, 0,
216, 231, 201, 211, 213, 223, 217, 235, 242, 0,
246, 230, 240, 736, 279, 296, 0, 0, 70, 247,
246, 230, 240, 752, 279, 296, 0, 0, 70, 247,
0, 248, 246, 252, 269, 265, 270, 304, 260, 269,
277, 289, 308, 277, 293, 293, 287, 291, 291, 301,
@ -471,56 +472,60 @@ static yyconst flex_int16_t yy_base[290] =
353, 358, 347, 361, 349, 0, 0, 0, 0, 353,
355, 365, 0, 0, 370, 365, 370, 377, 362, 363,
0, 400, 0, 0, 387, 385, 0, 0, 392, 389,
415, 0, 0, 385, 0, 396, 736, 395, 391, 0,
415, 0, 0, 385, 0, 396, 752, 395, 391, 0,
408, 0, 410, 396, 398, 397, 420, 402, 457, 466,
467, 468, 0, 428, 0, 434, 442, 0, 434, 0,
456, 458, 0, 461, 446, 453, 0, 0, 0, 489,
466, 511, 525, 512, 0, 462, 736, 0, 469, 474,
482, 468, 467, 527, 519, 515, 515, 536, 542, 549,
0, 0, 507, 522, 0, 0, 515, 374, 527, 562,
573, 582, 522, 0, 547, 441, 565, 586, 592, 594,
0, 736, 490, 736, 600, 567, 605, 568, 618, 624,
631, 637, 578, 639, 645, 647, 653, 736, 691, 693,
696, 699, 705, 710, 715, 718, 723, 725, 730
456, 458, 488, 461, 446, 453, 0, 0, 0, 489,
472, 511, 520, 527, 0, 462, 752, 0, 465, 483,
374, 0, 482, 480, 475, 531, 509, 513, 515, 539,
545, 554, 0, 0, 483, 0, 0, 519, 0, 0,
517, 441, 529, 561, 577, 581, 534, 0, 0, 551,
591, 554, 601, 603, 605, 0, 752, 607, 752, 611,
572, 615, 577, 623, 624, 630, 637, 600, 632, 647,
649, 654, 752, 691, 693, 696, 699, 705, 710, 715,
718, 723, 725, 730, 735, 738, 741, 746
} ;
static yyconst flex_int16_t yy_def[290] =
static yyconst flex_int16_t yy_def[299] =
{ 0,
278, 1, 278, 278, 278, 278, 278, 278, 279, 280,
278, 278, 278, 278, 278, 278, 278, 281, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 281, 281, 278, 278, 278, 278, 278,
278, 278, 279, 278, 282, 278, 283, 278, 278, 278,
278, 278, 281, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 278, 278, 278, 282, 283, 278, 281,
283, 1, 283, 283, 283, 283, 283, 283, 284, 285,
283, 283, 283, 283, 283, 283, 283, 286, 286, 286,
286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 286, 286, 283, 283, 283, 283, 283,
283, 283, 284, 283, 287, 283, 288, 283, 283, 283,
283, 283, 286, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 283, 283, 283, 287, 288, 283, 286,
281, 281, 281, 281, 281, 281, 281, 284, 281, 281,
281, 281, 278, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 281, 281, 281, 285, 286, 281, 281,
281, 281, 278, 281, 281, 281, 281, 281, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 281, 281,
281, 287, 281, 281, 281, 281, 281, 281, 281, 281,
278, 288, 286, 281, 281, 281, 278, 281, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 287, 287,
286, 286, 286, 286, 286, 286, 286, 289, 286, 286,
286, 286, 283, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 286, 286, 286, 290, 291, 286, 286,
286, 286, 283, 286, 286, 286, 286, 286, 286, 286,
286, 286, 286, 286, 286, 286, 286, 286, 286, 286,
286, 292, 286, 286, 286, 286, 286, 286, 286, 286,
283, 293, 291, 286, 286, 286, 283, 286, 286, 286,
286, 286, 286, 286, 286, 286, 286, 286, 292, 292,
292, 292, 286, 286, 286, 286, 283, 293, 286, 286,
286, 286, 294, 286, 286, 286, 286, 286, 286, 283,
283, 292, 292, 292, 286, 286, 283, 286, 286, 286,
295, 296, 286, 286, 286, 283, 283, 283, 283, 292,
292, 292, 286, 286, 286, 297, 296, 286, 286, 286,
283, 283, 283, 292, 292, 292, 286, 297, 286, 283,
298, 283, 283, 283, 292, 286, 283, 298, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 298, 298,
283, 298, 0, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283
287, 287, 281, 281, 281, 281, 278, 288, 281, 281,
281, 281, 281, 281, 281, 281, 281, 281, 281, 278,
278, 287, 287, 287, 281, 281, 278, 281, 281, 281,
281, 281, 281, 278, 278, 278, 278, 287, 287, 287,
281, 281, 281, 281, 281, 281, 278, 278, 278, 287,
287, 287, 281, 281, 278, 289, 278, 278, 278, 287,
281, 278, 289, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 289, 289, 278, 289, 0, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278
} ;
static yyconst flex_int16_t yy_nxt[802] =
static yyconst flex_int16_t yy_nxt[818] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 12, 11,
13, 4, 14, 15, 16, 17, 18, 19, 20, 21,
@ -540,80 +545,81 @@ static yyconst flex_int16_t yy_nxt[802] =
67, 80, 95, 40, 40, 96, 68, 81, 101, 102,
72, 75, 69, 82, 73, 77, 83, 88, 85, 76,
89, 78, 74, 79, 44, 80, 90, 104, 86, 91,
92, 81, 87, 101, 102, 93, 278, 82, 181, 103,
83, 181, 88, 85, 278, 89, 96, 40, 40, 96,
92, 81, 87, 101, 102, 93, 283, 82, 181, 103,
83, 181, 88, 85, 283, 89, 96, 40, 40, 96,
90, 104, 86, 107, 91, 92, 87, 108, 109, 93,
39, 40, 40, 41, 103, 42, 41, 40, 40, 41,
105, 110, 111, 278, 112, 114, 115, 107, 117, 106,
105, 110, 111, 283, 112, 114, 115, 107, 117, 106,
116, 119, 108, 109, 118, 147, 120, 121, 147, 123,
124, 125, 126, 133, 105, 129, 110, 111, 112, 114,
115, 130, 117, 106, 122, 116, 119, 131, 118, 42,
120, 127, 121, 123, 124, 132, 125, 126, 133, 129,
128, 134, 135, 42, 138, 130, 136, 140, 122, 42,
137, 131, 139, 278, 278, 278, 127, 141, 142, 132,
137, 131, 139, 283, 283, 283, 127, 141, 142, 132,
95, 40, 40, 96, 128, 134, 143, 135, 138, 144,
146, 136, 140, 145, 149, 137, 139, 96, 40, 40,
96, 141, 142, 150, 151, 147, 152, 158, 147, 113,
143, 154, 113, 155, 144, 146, 53, 145, 149, 278,
143, 154, 113, 155, 144, 146, 53, 145, 149, 283,
157, 159, 156, 160, 161, 162, 168, 150, 151, 163,
164, 152, 158, 165, 166, 154, 278, 167, 155, 169,
278, 170, 153, 42, 157, 159, 156, 160, 171, 161,
164, 152, 158, 165, 166, 154, 283, 167, 155, 169,
283, 170, 153, 42, 157, 159, 156, 160, 171, 161,
162, 168, 172, 163, 164, 172, 174, 165, 166, 175,
42, 167, 176, 177, 169, 170, 153, 178, 179, 180,
278, 184, 171, 185, 186, 256, 187, 188, 256, 173,
283, 184, 171, 185, 186, 231, 187, 188, 231, 173,
174, 189, 190, 175, 191, 192, 193, 176, 177, 194,
195, 178, 179, 196, 180, 184, 197, 198, 185, 186,
187, 172, 188, 173, 172, 189, 190, 203, 191, 204,
192, 193, 205, 206, 194, 195, 181, 209, 196, 181,
197, 198, 210, 211, 212, 215, 200, 213, 214, 278,
197, 198, 210, 211, 212, 215, 200, 213, 214, 283,
216, 217, 203, 201, 204, 219, 202, 205, 206, 207,
218, 209, 256, 278, 278, 256, 210, 211, 212, 215,
200, 278, 213, 214, 216, 217, 225, 201, 220, 219,
218, 209, 261, 283, 283, 261, 210, 211, 212, 215,
200, 283, 213, 214, 216, 217, 225, 201, 220, 219,
202, 220, 226, 227, 207, 218, 221, 220, 220, 220,
220, 220, 220, 228, 229, 221, 221, 221, 230, 231,
225, 232, 222, 278, 224, 235, 226, 233, 227, 242,
234, 278, 243, 234, 278, 241, 278, 228, 223, 229,
220, 220, 220, 228, 229, 221, 221, 221, 230, 233,
225, 234, 222, 283, 224, 244, 226, 235, 227, 231,
236, 237, 231, 236, 283, 243, 283, 228, 223, 229,
237, 245, 244, 230, 231, 232, 246, 222, 235, 224,
235, 233, 220, 220, 242, 220, 220, 243, 236, 241,
221, 221, 223, 237, 237, 245, 220, 244, 234, 220,
246, 234, 278, 235, 221, 247, 248, 220, 240, 249,
220, 253, 236, 220, 238, 221, 220, 237, 254, 255,
220, 221, 278, 220, 257, 261, 236, 239, 221, 278,
247, 248, 240, 258, 249, 253, 258, 262, 238, 278,
250, 221, 254, 255, 259, 278, 251, 259, 257, 261,
236, 239, 221, 220, 252, 264, 220, 265, 270, 271,
265, 221, 262, 267, 250, 269, 267, 278, 269, 276,
53, 245, 248, 230, 233, 234, 239, 222, 237, 224,
244, 235, 220, 249, 250, 220, 237, 257, 238, 243,
221, 220, 223, 239, 220, 251, 245, 248, 220, 221,
239, 220, 236, 237, 252, 236, 221, 249, 250, 253,
220, 257, 238, 220, 240, 259, 220, 239, 221, 220,
251, 260, 241, 242, 221, 220, 262, 283, 220, 252,
238, 283, 263, 221, 253, 263, 283, 266, 240, 259,
221, 267, 283, 254, 269, 260, 241, 242, 264, 255,
262, 264, 220, 283, 238, 220, 221, 283, 283, 256,
221, 266, 261, 275, 283, 261, 267, 254, 276, 269,
251, 265, 260, 221, 265, 235, 267, 278, 252, 267,
264, 235, 278, 270, 271, 266, 278, 278, 278, 272,
237, 268, 272, 278, 276, 274, 237, 260, 274, 266,
235, 278, 275, 278, 268, 275, 235, 235, 272, 266,
274, 272, 278, 274, 237, 268, 275, 273, 277, 275,
237, 277, 237, 266, 277, 278, 278, 277, 268, 278,
278, 278, 235, 278, 278, 278, 273, 278, 278, 278,
278, 273, 278, 278, 278, 278, 237, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
273, 43, 43, 278, 43, 43, 43, 45, 45, 53,
283, 265, 270, 255, 272, 270, 274, 272, 283, 274,
283, 283, 270, 256, 221, 270, 272, 283, 275, 272,
237, 281, 237, 276, 277, 279, 265, 277, 279, 283,
271, 280, 273, 279, 280, 239, 279, 239, 277, 283,
271, 277, 237, 283, 273, 237, 281, 237, 280, 283,
282, 280, 278, 282, 271, 282, 273, 239, 282, 239,
283, 239, 283, 283, 271, 283, 278, 237, 273, 283,
283, 283, 283, 283, 283, 283, 278, 283, 283, 283,
283, 239, 283, 283, 283, 283, 283, 283, 283, 283,
278, 43, 43, 283, 43, 43, 43, 45, 45, 53,
53, 53, 97, 97, 97, 98, 98, 278, 98, 98,
98, 148, 278, 148, 148, 148, 182, 278, 278, 182,
182, 183, 183, 183, 199, 278, 278, 199, 208, 208,
208, 263, 278, 278, 263, 3, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
53, 53, 97, 97, 97, 98, 98, 283, 98, 98,
98, 148, 283, 148, 148, 148, 182, 283, 283, 182,
182, 183, 183, 183, 199, 283, 283, 199, 208, 208,
208, 232, 283, 232, 232, 232, 246, 283, 283, 246,
246, 247, 247, 247, 258, 258, 258, 268, 283, 283,
268, 3, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
278
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283
} ;
static yyconst flex_int16_t yy_chk[802] =
static yyconst flex_int16_t yy_chk[818] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@ -655,7 +661,7 @@ static yyconst flex_int16_t yy_chk[802] =
0, 133, 113, 95, 116, 118, 115, 119, 134, 120,
122, 130, 135, 123, 125, 135, 136, 126, 127, 137,
96, 128, 138, 139, 132, 133, 113, 140, 141, 143,
0, 150, 134, 151, 152, 248, 153, 154, 248, 135,
0, 150, 134, 151, 152, 231, 153, 154, 231, 135,
136, 155, 160, 137, 161, 162, 165, 138, 139, 166,
167, 140, 141, 168, 143, 150, 169, 170, 151, 152,
@ -663,47 +669,48 @@ static yyconst flex_int16_t yy_chk[802] =
162, 165, 179, 180, 166, 167, 181, 184, 168, 181,
169, 170, 186, 188, 189, 194, 172, 191, 193, 0,
195, 196, 175, 172, 176, 198, 172, 179, 180, 181,
197, 184, 256, 0, 0, 256, 186, 188, 189, 194,
197, 184, 252, 0, 0, 252, 186, 188, 189, 194,
172, 0, 191, 193, 195, 196, 204, 172, 199, 198,
172, 199, 206, 207, 181, 197, 199, 200, 201, 202,
200, 201, 202, 209, 211, 200, 201, 202, 212, 214,
204, 215, 200, 0, 202, 221, 206, 216, 207, 229,
220, 263, 230, 220, 263, 226, 0, 209, 201, 211,
204, 215, 200, 0, 202, 229, 206, 216, 207, 213,
220, 221, 213, 220, 0, 226, 0, 209, 201, 211,
221, 232, 231, 212, 214, 215, 233, 200, 220, 202,
221, 216, 222, 224, 229, 222, 224, 230, 220, 226,
222, 224, 201, 220, 221, 232, 223, 231, 234, 223,
233, 234, 0, 220, 223, 235, 236, 238, 224, 237,
238, 243, 220, 239, 222, 238, 239, 220, 244, 247,
240, 239, 0, 240, 249, 253, 234, 223, 240, 0,
235, 236, 224, 250, 237, 243, 250, 255, 222, 0,
238, 250, 244, 247, 251, 0, 239, 251, 249, 253,
234, 223, 251, 252, 240, 257, 252, 258, 266, 268,
258, 252, 255, 259, 238, 260, 259, 0, 260, 273,
213, 230, 233, 212, 214, 215, 221, 200, 220, 202,
229, 216, 222, 234, 235, 222, 221, 245, 220, 226,
222, 223, 201, 220, 223, 237, 230, 233, 224, 223,
221, 224, 236, 220, 238, 236, 224, 234, 235, 239,
240, 245, 220, 240, 222, 248, 241, 220, 240, 241,
237, 251, 223, 224, 241, 242, 253, 0, 242, 238,
236, 0, 254, 242, 239, 254, 0, 257, 222, 248,
254, 260, 0, 240, 262, 251, 223, 224, 255, 241,
253, 255, 256, 0, 236, 256, 255, 0, 0, 242,
256, 257, 261, 271, 0, 261, 260, 240, 273, 262,
239, 265, 252, 260, 265, 258, 267, 0, 240, 267,
257, 259, 0, 266, 268, 258, 0, 0, 0, 269,
258, 259, 269, 0, 273, 270, 259, 252, 270, 265,
258, 0, 271, 0, 267, 271, 259, 269, 272, 258,
274, 272, 0, 274, 258, 259, 275, 269, 276, 275,
259, 276, 269, 265, 277, 0, 0, 277, 267, 0,
0, 0, 269, 0, 0, 0, 272, 0, 0, 0,
0, 269, 0, 0, 0, 0, 269, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
272, 279, 279, 0, 279, 279, 279, 280, 280, 281,
0, 256, 263, 241, 264, 263, 265, 264, 268, 265,
0, 268, 270, 242, 265, 270, 272, 0, 271, 272,
263, 278, 264, 273, 274, 275, 256, 274, 275, 0,
263, 276, 264, 279, 276, 263, 279, 264, 277, 0,
270, 277, 274, 0, 272, 263, 278, 264, 280, 0,
281, 280, 274, 281, 263, 282, 264, 274, 282, 263,
0, 264, 0, 0, 270, 0, 277, 274, 272, 0,
0, 0, 0, 0, 0, 0, 274, 0, 0, 0,
0, 274, 0, 0, 0, 0, 0, 0, 0, 0,
277, 284, 284, 0, 284, 284, 284, 285, 285, 286,
281, 281, 282, 282, 282, 283, 283, 0, 283, 283,
283, 284, 0, 284, 284, 284, 285, 0, 0, 285,
285, 286, 286, 286, 287, 0, 0, 287, 288, 288,
288, 289, 0, 0, 289, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
286, 286, 287, 287, 287, 288, 288, 0, 288, 288,
288, 289, 0, 289, 289, 289, 290, 0, 0, 290,
290, 291, 291, 291, 292, 0, 0, 292, 293, 293,
293, 294, 0, 294, 294, 294, 295, 0, 0, 295,
295, 296, 296, 296, 297, 297, 297, 298, 0, 0,
298, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
278
283, 283, 283, 283, 283, 283, 283, 283, 283, 283,
283, 283, 283, 283, 283, 283, 283
} ;
static yy_state_type yy_last_accepting_state;
@ -790,7 +797,7 @@ static int checkImmediate(int token) {
return token;
}
#line 794 "engines/director/lingo/lingo-lex.cpp"
#line 801 "engines/director/lingo/lingo-lex.cpp"
#define INITIAL 0
@ -976,7 +983,7 @@ YY_DECL
#line 85 "engines/director/lingo/lingo-lex.l"
#line 980 "engines/director/lingo/lingo-lex.cpp"
#line 987 "engines/director/lingo/lingo-lex.cpp"
if ( !(yy_init) )
{
@ -1030,13 +1037,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 >= 279 )
if ( yy_current_state >= 284 )
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 != 278 );
while ( yy_current_state != 283 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@ -1222,96 +1229,106 @@ YY_RULE_SETUP
case 30:
YY_RULE_SETUP
#line 135 "engines/director/lingo/lingo-lex.l"
{ count(); return tMETHOD; }
{
count();
const char *ptr = &yytext[6]; // Skip 'method '
while (*ptr == ' ' || *ptr == '\t')
ptr++;
yylval.s = new Common::String(ptr);
return tMETHOD;
}
YY_BREAK
case 31:
YY_RULE_SETUP
#line 136 "engines/director/lingo/lingo-lex.l"
#line 146 "engines/director/lingo/lingo-lex.l"
{ count(); return tMOD; }
YY_BREAK
case 32:
YY_RULE_SETUP
#line 137 "engines/director/lingo/lingo-lex.l"
#line 147 "engines/director/lingo/lingo-lex.l"
{ count(); return tMOVIE; }
YY_BREAK
case 33:
YY_RULE_SETUP
#line 138 "engines/director/lingo/lingo-lex.l"
#line 148 "engines/director/lingo/lingo-lex.l"
{ count(); return tNEXT; }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 139 "engines/director/lingo/lingo-lex.l"
#line 149 "engines/director/lingo/lingo-lex.l"
{ count(); return tNOT; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 140 "engines/director/lingo/lingo-lex.l"
#line 150 "engines/director/lingo/lingo-lex.l"
{ count(); return tOF; }
YY_BREAK
case 36:
YY_RULE_SETUP
#line 141 "engines/director/lingo/lingo-lex.l"
#line 151 "engines/director/lingo/lingo-lex.l"
{ count(); return tON; } // D3
YY_BREAK
case 37:
YY_RULE_SETUP
#line 142 "engines/director/lingo/lingo-lex.l"
#line 152 "engines/director/lingo/lingo-lex.l"
{ count(); return tOPEN; }
YY_BREAK
case 38:
YY_RULE_SETUP
#line 143 "engines/director/lingo/lingo-lex.l"
#line 153 "engines/director/lingo/lingo-lex.l"
{ count(); return tOR; }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 144 "engines/director/lingo/lingo-lex.l"
#line 154 "engines/director/lingo/lingo-lex.l"
{ count(); return tPLAY; }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 145 "engines/director/lingo/lingo-lex.l"
#line 155 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = new Common::String(yytext); return tPLAYACCEL; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 146 "engines/director/lingo/lingo-lex.l"
#line 156 "engines/director/lingo/lingo-lex.l"
{ count(); return tPREVIOUS; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 147 "engines/director/lingo/lingo-lex.l"
#line 157 "engines/director/lingo/lingo-lex.l"
{ count(); return tPROPERTY; } // D4
YY_BREAK
case 43:
YY_RULE_SETUP
#line 148 "engines/director/lingo/lingo-lex.l"
#line 158 "engines/director/lingo/lingo-lex.l"
{ count(); return tPUT; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 149 "engines/director/lingo/lingo-lex.l"
#line 159 "engines/director/lingo/lingo-lex.l"
{ count(); return checkImmediate(tREPEAT); }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 150 "engines/director/lingo/lingo-lex.l"
#line 160 "engines/director/lingo/lingo-lex.l"
{ count(); return tSET; }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 151 "engines/director/lingo/lingo-lex.l"
#line 161 "engines/director/lingo/lingo-lex.l"
{ count(); return tSTARTS; }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 152 "engines/director/lingo/lingo-lex.l"
#line 162 "engines/director/lingo/lingo-lex.l"
{ count(); return tTELL; }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 153 "engines/director/lingo/lingo-lex.l"
#line 163 "engines/director/lingo/lingo-lex.l"
{
count();
@ -1323,7 +1340,7 @@ YY_RULE_SETUP
YY_BREAK
case 49:
YY_RULE_SETUP
#line 161 "engines/director/lingo/lingo-lex.l"
#line 171 "engines/director/lingo/lingo-lex.l"
{
count();
@ -1335,7 +1352,7 @@ YY_RULE_SETUP
YY_BREAK
case 50:
YY_RULE_SETUP
#line 169 "engines/director/lingo/lingo-lex.l"
#line 179 "engines/director/lingo/lingo-lex.l"
{
count();
@ -1346,7 +1363,7 @@ YY_RULE_SETUP
YY_BREAK
case 51:
YY_RULE_SETUP
#line 176 "engines/director/lingo/lingo-lex.l"
#line 186 "engines/director/lingo/lingo-lex.l"
{
count();
@ -1390,7 +1407,7 @@ YY_RULE_SETUP
YY_BREAK
case 52:
YY_RULE_SETUP
#line 216 "engines/director/lingo/lingo-lex.l"
#line 226 "engines/director/lingo/lingo-lex.l"
{
count();
@ -1425,7 +1442,7 @@ YY_RULE_SETUP
YY_BREAK
case 53:
YY_RULE_SETUP
#line 247 "engines/director/lingo/lingo-lex.l"
#line 257 "engines/director/lingo/lingo-lex.l"
{
count();
@ -1448,72 +1465,72 @@ YY_RULE_SETUP
YY_BREAK
case 54:
YY_RULE_SETUP
#line 266 "engines/director/lingo/lingo-lex.l"
#line 276 "engines/director/lingo/lingo-lex.l"
{ count(); return tTHEN; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 267 "engines/director/lingo/lingo-lex.l"
#line 277 "engines/director/lingo/lingo-lex.l"
{ count(); return tTO; }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 268 "engines/director/lingo/lingo-lex.l"
#line 278 "engines/director/lingo/lingo-lex.l"
{ count(); return tSPRITE; }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 269 "engines/director/lingo/lingo-lex.l"
#line 279 "engines/director/lingo/lingo-lex.l"
{ count(); return tWITH; }
YY_BREAK
case 58:
YY_RULE_SETUP
#line 270 "engines/director/lingo/lingo-lex.l"
#line 280 "engines/director/lingo/lingo-lex.l"
{ count(); return tWITHIN; }
YY_BREAK
case 59:
YY_RULE_SETUP
#line 271 "engines/director/lingo/lingo-lex.l"
#line 281 "engines/director/lingo/lingo-lex.l"
{ count(); return tWHEN; }
YY_BREAK
case 60:
YY_RULE_SETUP
#line 272 "engines/director/lingo/lingo-lex.l"
#line 282 "engines/director/lingo/lingo-lex.l"
{ count(); return tWHILE; }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 273 "engines/director/lingo/lingo-lex.l"
#line 283 "engines/director/lingo/lingo-lex.l"
{ count(); return tWORD; }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 275 "engines/director/lingo/lingo-lex.l"
#line 285 "engines/director/lingo/lingo-lex.l"
{ count(); return tNEQ; }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 276 "engines/director/lingo/lingo-lex.l"
#line 286 "engines/director/lingo/lingo-lex.l"
{ count(); return tGE; }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 277 "engines/director/lingo/lingo-lex.l"
#line 287 "engines/director/lingo/lingo-lex.l"
{ count(); return tLE; }
YY_BREAK
case 65:
YY_RULE_SETUP
#line 278 "engines/director/lingo/lingo-lex.l"
#line 288 "engines/director/lingo/lingo-lex.l"
{ count(); return tCONCAT; }
YY_BREAK
case 66:
YY_RULE_SETUP
#line 279 "engines/director/lingo/lingo-lex.l"
#line 289 "engines/director/lingo/lingo-lex.l"
{ count(); return tEQ; }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 281 "engines/director/lingo/lingo-lex.l"
#line 291 "engines/director/lingo/lingo-lex.l"
{
count();
yylval.s = new Common::String(yytext);
@ -1562,41 +1579,41 @@ YY_RULE_SETUP
YY_BREAK
case 68:
YY_RULE_SETUP
#line 326 "engines/director/lingo/lingo-lex.l"
#line 336 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.f = atof(yytext); return FLOAT; }
YY_BREAK
case 69:
YY_RULE_SETUP
#line 327 "engines/director/lingo/lingo-lex.l"
#line 337 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
YY_BREAK
case 70:
YY_RULE_SETUP
#line 328 "engines/director/lingo/lingo-lex.l"
#line 338 "engines/director/lingo/lingo-lex.l"
{ count(); return *yytext; }
YY_BREAK
case 71:
/* rule 71 can match eol */
YY_RULE_SETUP
#line 329 "engines/director/lingo/lingo-lex.l"
#line 339 "engines/director/lingo/lingo-lex.l"
{ count(); return '\n'; }
YY_BREAK
case 72:
YY_RULE_SETUP
#line 330 "engines/director/lingo/lingo-lex.l"
#line 340 "engines/director/lingo/lingo-lex.l"
{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
YY_BREAK
case 73:
YY_RULE_SETUP
#line 331 "engines/director/lingo/lingo-lex.l"
#line 341 "engines/director/lingo/lingo-lex.l"
{ count(); }
YY_BREAK
case 74:
YY_RULE_SETUP
#line 333 "engines/director/lingo/lingo-lex.l"
#line 343 "engines/director/lingo/lingo-lex.l"
ECHO;
YY_BREAK
#line 1600 "engines/director/lingo/lingo-lex.cpp"
#line 1617 "engines/director/lingo/lingo-lex.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
@ -1719,9 +1736,6 @@ case YY_STATE_EOF(INITIAL):
yy_cp = (yy_c_buf_p);
yy_bp = (yytext_ptr) + YY_MORE_ADJ;
goto yy_find_action;
default:
break;
}
break;
}
@ -1893,7 +1907,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 >= 279 )
if ( yy_current_state >= 284 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@ -1921,11 +1935,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 >= 279 )
if ( yy_current_state >= 284 )
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 == 278);
yy_is_jam = (yy_current_state == 283);
return yy_is_jam ? 0 : yy_current_state;
}
@ -2559,7 +2573,7 @@ void yyfree (void * ptr )
#define YYTABLES_NAME "yytables"
#line 333 "engines/director/lingo/lingo-lex.l"
#line 343 "engines/director/lingo/lingo-lex.l"

View File

@ -132,7 +132,17 @@ whitespace [\t ]
(?i:line) { count(); return tLINE; }
(?i:loop) { count(); return checkImmediate(tLOOP); }
(?i:macro) { count(); return tMACRO; }
(?i:method) { count(); return tMETHOD; }
(?i:method)([\t ]*{identifier}) {
count();
const char *ptr = &yytext[6]; // Skip 'method '
while (*ptr == ' ' || *ptr == '\t')
ptr++;
yylval.s = new Common::String(ptr);
return tMETHOD;
}
(?i:mod) { count(); return tMOD; }
(?i:movie) { count(); return tMOVIE; }
(?i:next) { count(); return tNEXT; }