mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-21 01:08:25 +00:00
DIRECTOR: Lingo: Defined 'mod' operator and specified operator precedence
This commit is contained in:
parent
dcbc7e3b4d
commit
fdd4e8369a
@ -73,6 +73,7 @@ static struct FuncDescr {
|
||||
{ Lingo::c_sub, "c_sub", "" },
|
||||
{ Lingo::c_mul, "c_mul", "" },
|
||||
{ Lingo::c_div, "c_div", "" },
|
||||
{ Lingo::c_mod, "c_mod", "" },
|
||||
{ Lingo::c_negate, "c_negate", "" },
|
||||
{ Lingo::c_ampersand, "c_ampersand", "" },
|
||||
{ Lingo::c_concat, "c_concat", "" },
|
||||
@ -414,6 +415,21 @@ void Lingo::c_div() {
|
||||
g_lingo->push(d1);
|
||||
}
|
||||
|
||||
void Lingo::c_mod() {
|
||||
Datum d2 = g_lingo->pop();
|
||||
d2.toInt();
|
||||
|
||||
if (d2.u.i == 0)
|
||||
error("division by zero");
|
||||
|
||||
Datum d1 = g_lingo->pop();
|
||||
d1.toInt();
|
||||
|
||||
d1.u.i %= d2.u.i;
|
||||
|
||||
g_lingo->push(d1);
|
||||
}
|
||||
|
||||
void Lingo::c_negate() {
|
||||
Datum d = g_lingo->pop();
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -101,12 +101,13 @@
|
||||
tAND = 317,
|
||||
tOR = 318,
|
||||
tNOT = 319,
|
||||
tCONCAT = 320,
|
||||
tCONTAINS = 321,
|
||||
tSTARTS = 322,
|
||||
tSPRITE = 323,
|
||||
tINTERSECTS = 324,
|
||||
tWITHIN = 325
|
||||
tMOD = 320,
|
||||
tCONCAT = 321,
|
||||
tCONTAINS = 322,
|
||||
tSTARTS = 323,
|
||||
tSPRITE = 324,
|
||||
tINTERSECTS = 325,
|
||||
tWITHIN = 326
|
||||
};
|
||||
#endif
|
||||
/* Tokens. */
|
||||
@ -172,12 +173,13 @@
|
||||
#define tAND 317
|
||||
#define tOR 318
|
||||
#define tNOT 319
|
||||
#define tCONCAT 320
|
||||
#define tCONTAINS 321
|
||||
#define tSTARTS 322
|
||||
#define tSPRITE 323
|
||||
#define tINTERSECTS 324
|
||||
#define tWITHIN 325
|
||||
#define tMOD 320
|
||||
#define tCONCAT 321
|
||||
#define tCONTAINS 322
|
||||
#define tSTARTS 323
|
||||
#define tSPRITE 324
|
||||
#define tINTERSECTS 325
|
||||
#define tWITHIN 326
|
||||
|
||||
|
||||
|
||||
@ -195,7 +197,7 @@ typedef union YYSTYPE
|
||||
Common::Array<double> *arr;
|
||||
}
|
||||
/* Line 1529 of yacc.c. */
|
||||
#line 199 "engines/director/lingo/lingo-gr.hpp"
|
||||
#line 201 "engines/director/lingo/lingo-gr.hpp"
|
||||
YYSTYPE;
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
|
@ -86,7 +86,7 @@ void yyerror(char *s) {
|
||||
%token tDOWN tELSE tNLELSIF tEND 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 tPLAYACCEL tINSTANCE
|
||||
%token tGE tLE tGT tLT tEQ tNEQ tAND tOR tNOT
|
||||
%token tGE tLE tGT tLT tEQ tNEQ tAND tOR tNOT tMOD
|
||||
%token tCONCAT tCONTAINS tSTARTS
|
||||
%token tSPRITE tINTERSECTS tWITHIN
|
||||
|
||||
@ -94,8 +94,10 @@ void yyerror(char *s) {
|
||||
%type<narg> argdef arglist
|
||||
|
||||
%right '='
|
||||
%left tLT tLE tGT tGE tNEQ tCONTAINS tSTARTS
|
||||
%left '&'
|
||||
%left '+' '-'
|
||||
%left '*' '/' '%'
|
||||
%left '*' '/' '%' tAND tOR tMOD
|
||||
%right UNARY
|
||||
|
||||
%%
|
||||
@ -386,6 +388,7 @@ expr: INT { $$ = g_lingo->codeConst($1); }
|
||||
| expr '-' expr { g_lingo->code1(g_lingo->c_sub); }
|
||||
| expr '*' expr { g_lingo->code1(g_lingo->c_mul); }
|
||||
| expr '/' expr { g_lingo->code1(g_lingo->c_div); }
|
||||
| expr tMOD expr { g_lingo->code1(g_lingo->c_mod); }
|
||||
| expr '>' expr { g_lingo->code1(g_lingo->c_gt); }
|
||||
| expr '<' expr { g_lingo->code1(g_lingo->c_lt); }
|
||||
| expr tNEQ expr { g_lingo->code1(g_lingo->c_neq); }
|
||||
|
@ -364,8 +364,8 @@ static void yy_fatal_error (yyconst char msg[] );
|
||||
*yy_cp = '\0'; \
|
||||
(yy_c_buf_p) = yy_cp;
|
||||
|
||||
#define YY_NUM_RULES 58
|
||||
#define YY_END_OF_BUFFER 59
|
||||
#define YY_NUM_RULES 59
|
||||
#define YY_END_OF_BUFFER 60
|
||||
/* This struct is not used in this scanner,
|
||||
but its presence is necessary. */
|
||||
struct yy_trans_info
|
||||
@ -373,31 +373,31 @@ struct yy_trans_info
|
||||
flex_int32_t yy_verify;
|
||||
flex_int32_t yy_nxt;
|
||||
};
|
||||
static yyconst flex_int16_t yy_accept[205] =
|
||||
static yyconst flex_int16_t yy_accept[206] =
|
||||
{ 0,
|
||||
0, 0, 59, 57, 3, 55, 55, 57, 57, 54,
|
||||
54, 54, 53, 54, 54, 51, 51, 51, 51, 51,
|
||||
51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
|
||||
51, 51, 2, 2, 3, 55, 0, 0, 0, 0,
|
||||
0, 56, 50, 1, 52, 53, 49, 47, 48, 51,
|
||||
51, 51, 51, 51, 51, 51, 51, 51, 51, 18,
|
||||
8, 51, 51, 51, 51, 51, 51, 51, 28, 51,
|
||||
30, 51, 51, 51, 51, 51, 51, 51, 51, 41,
|
||||
51, 51, 2, 2, 0, 1, 52, 4, 51, 51,
|
||||
51, 51, 12, 51, 51, 51, 51, 0, 51, 51,
|
||||
0, 0, 60, 58, 3, 56, 56, 58, 58, 55,
|
||||
55, 55, 54, 55, 55, 52, 52, 52, 52, 52,
|
||||
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
|
||||
52, 52, 2, 2, 3, 56, 0, 0, 0, 0,
|
||||
0, 57, 51, 1, 53, 54, 50, 48, 49, 52,
|
||||
52, 52, 52, 52, 52, 52, 52, 52, 52, 18,
|
||||
8, 52, 52, 52, 52, 52, 52, 52, 29, 52,
|
||||
31, 52, 52, 52, 52, 52, 52, 52, 52, 42,
|
||||
52, 52, 2, 2, 0, 1, 53, 4, 52, 52,
|
||||
52, 52, 12, 52, 52, 52, 52, 0, 52, 52,
|
||||
|
||||
51, 51, 51, 51, 51, 27, 51, 51, 51, 33,
|
||||
51, 35, 51, 51, 51, 51, 51, 51, 0, 51,
|
||||
6, 7, 11, 14, 51, 51, 51, 0, 51, 51,
|
||||
21, 22, 51, 51, 51, 26, 29, 31, 51, 51,
|
||||
51, 51, 0, 40, 45, 51, 43, 10, 51, 51,
|
||||
15, 51, 17, 51, 51, 23, 51, 25, 51, 51,
|
||||
51, 51, 39, 39, 46, 51, 0, 51, 51, 16,
|
||||
51, 51, 24, 51, 34, 42, 36, 0, 39, 44,
|
||||
0, 51, 13, 51, 51, 51, 0, 39, 9, 5,
|
||||
19, 51, 32, 0, 39, 51, 0, 0, 20, 38,
|
||||
52, 52, 52, 25, 52, 52, 28, 52, 52, 52,
|
||||
34, 52, 36, 52, 52, 52, 52, 52, 52, 0,
|
||||
52, 6, 7, 11, 14, 52, 52, 52, 0, 52,
|
||||
52, 21, 22, 52, 52, 52, 27, 30, 32, 52,
|
||||
52, 52, 52, 0, 41, 46, 52, 44, 10, 52,
|
||||
52, 15, 52, 17, 52, 52, 23, 52, 26, 52,
|
||||
52, 52, 52, 40, 40, 47, 52, 0, 52, 52,
|
||||
16, 52, 52, 24, 52, 35, 43, 37, 0, 40,
|
||||
45, 0, 52, 13, 52, 52, 52, 0, 40, 9,
|
||||
5, 19, 52, 33, 0, 40, 52, 0, 0, 20,
|
||||
|
||||
0, 0, 37, 0
|
||||
39, 0, 0, 38, 0
|
||||
} ;
|
||||
|
||||
static yyconst flex_int32_t yy_ec[256] =
|
||||
@ -443,61 +443,61 @@ static yyconst flex_int32_t yy_meta[63] =
|
||||
5, 5
|
||||
} ;
|
||||
|
||||
static yyconst flex_int16_t yy_base[210] =
|
||||
static yyconst flex_int16_t yy_base[211] =
|
||||
{ 0,
|
||||
0, 61, 156, 516, 65, 69, 73, 77, 148, 516,
|
||||
0, 61, 156, 521, 65, 69, 73, 77, 148, 521,
|
||||
104, 99, 54, 70, 91, 58, 0, 58, 59, 69,
|
||||
74, 70, 70, 71, 88, 105, 105, 110, 82, 118,
|
||||
117, 130, 177, 181, 185, 516, 189, 193, 197, 106,
|
||||
94, 516, 516, 0, 82, 132, 516, 516, 516, 0,
|
||||
117, 130, 177, 181, 185, 521, 189, 193, 197, 106,
|
||||
94, 521, 521, 0, 82, 132, 521, 521, 521, 0,
|
||||
84, 119, 169, 116, 120, 174, 186, 191, 180, 171,
|
||||
0, 177, 183, 196, 182, 183, 182, 188, 0, 204,
|
||||
0, 209, 206, 194, 201, 203, 209, 229, 227, 0,
|
||||
233, 222, 263, 270, 226, 0, 80, 0, 226, 234,
|
||||
234, 243, 0, 237, 243, 254, 247, 284, 251, 271,
|
||||
0, 177, 183, 196, 182, 201, 181, 188, 0, 204,
|
||||
0, 209, 206, 194, 201, 207, 212, 231, 228, 0,
|
||||
233, 222, 271, 280, 230, 0, 80, 0, 230, 234,
|
||||
238, 247, 0, 235, 236, 244, 264, 293, 255, 271,
|
||||
|
||||
263, 264, 271, 273, 265, 0, 274, 264, 268, 0,
|
||||
286, 0, 283, 278, 305, 284, 287, 291, 295, 305,
|
||||
0, 0, 0, 0, 296, 309, 314, 306, 322, 309,
|
||||
0, 0, 314, 315, 325, 0, 0, 0, 323, 332,
|
||||
316, 317, 350, 0, 0, 332, 336, 202, 337, 326,
|
||||
0, 338, 516, 338, 336, 0, 343, 0, 342, 342,
|
||||
358, 347, 212, 378, 0, 361, 388, 364, 357, 0,
|
||||
379, 378, 0, 366, 0, 0, 0, 399, 408, 0,
|
||||
378, 373, 0, 390, 399, 375, 397, 423, 516, 0,
|
||||
0, 381, 0, 428, 435, 388, 441, 443, 0, 445,
|
||||
267, 266, 278, 0, 279, 271, 0, 279, 269, 273,
|
||||
0, 290, 0, 287, 282, 309, 289, 292, 296, 300,
|
||||
307, 0, 0, 0, 0, 296, 310, 318, 310, 324,
|
||||
311, 0, 0, 317, 318, 330, 0, 0, 0, 328,
|
||||
337, 322, 323, 363, 0, 0, 334, 334, 202, 336,
|
||||
330, 0, 338, 521, 340, 340, 0, 355, 0, 347,
|
||||
348, 364, 354, 212, 387, 0, 361, 388, 367, 359,
|
||||
0, 383, 382, 0, 369, 0, 0, 0, 402, 404,
|
||||
0, 393, 383, 0, 401, 405, 384, 403, 427, 521,
|
||||
0, 0, 395, 0, 256, 429, 401, 441, 448, 0,
|
||||
|
||||
415, 447, 452, 516, 495, 497, 502, 506, 510
|
||||
453, 404, 459, 460, 521, 500, 502, 507, 511, 515
|
||||
} ;
|
||||
|
||||
static yyconst flex_int16_t yy_def[210] =
|
||||
static yyconst flex_int16_t yy_def[211] =
|
||||
{ 0,
|
||||
204, 1, 204, 204, 204, 204, 204, 204, 205, 204,
|
||||
204, 204, 204, 204, 204, 206, 206, 206, 206, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
|
||||
206, 206, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
205, 204, 204, 207, 204, 204, 204, 204, 204, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
|
||||
206, 206, 204, 204, 204, 207, 204, 206, 206, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 204, 206, 206,
|
||||
205, 1, 205, 205, 205, 205, 205, 205, 206, 205,
|
||||
205, 205, 205, 205, 205, 207, 207, 207, 207, 207,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||||
207, 207, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
206, 205, 205, 208, 205, 205, 205, 205, 205, 207,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||||
207, 207, 205, 205, 205, 208, 205, 207, 207, 207,
|
||||
207, 207, 207, 207, 207, 207, 207, 205, 207, 207,
|
||||
|
||||
206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 206, 204, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 204, 206, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
|
||||
206, 206, 208, 206, 206, 206, 206, 204, 206, 206,
|
||||
206, 206, 204, 206, 206, 206, 206, 206, 206, 206,
|
||||
206, 206, 208, 208, 206, 206, 204, 206, 206, 206,
|
||||
206, 206, 206, 206, 206, 206, 206, 204, 208, 206,
|
||||
204, 206, 206, 206, 206, 206, 204, 208, 204, 206,
|
||||
206, 206, 206, 204, 208, 206, 209, 204, 206, 209,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 207, 205,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 205, 207,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
|
||||
207, 207, 207, 209, 207, 207, 207, 207, 205, 207,
|
||||
207, 207, 207, 205, 207, 207, 207, 207, 207, 207,
|
||||
207, 207, 207, 209, 209, 207, 207, 205, 207, 207,
|
||||
207, 207, 207, 207, 207, 207, 207, 207, 205, 209,
|
||||
207, 205, 207, 207, 207, 207, 207, 205, 209, 205,
|
||||
207, 207, 207, 207, 205, 209, 207, 210, 205, 207,
|
||||
|
||||
204, 204, 209, 0, 204, 204, 204, 204, 204
|
||||
210, 205, 205, 210, 0, 205, 205, 205, 205, 205
|
||||
} ;
|
||||
|
||||
static yyconst flex_int16_t yy_nxt[579] =
|
||||
static yyconst flex_int16_t yy_nxt[584] =
|
||||
{ 0,
|
||||
4, 5, 6, 7, 8, 9, 10, 11, 12, 4,
|
||||
13, 14, 10, 15, 16, 17, 18, 19, 20, 21,
|
||||
@ -515,56 +515,57 @@ static yyconst flex_int16_t yy_nxt[579] =
|
||||
62, 60, 63, 67, 69, 75, 88, 64, 58, 56,
|
||||
85, 65, 68, 70, 72, 71, 76, 93, 79, 66,
|
||||
73, 45, 46, 74, 80, 89, 77, 92, 67, 69,
|
||||
78, 81, 82, 42, 85, 204, 68, 70, 72, 71,
|
||||
204, 76, 93, 79, 73, 204, 204, 74, 80, 89,
|
||||
77, 92, 98, 204, 78, 98, 81, 82, 83, 36,
|
||||
78, 81, 82, 42, 85, 205, 68, 70, 72, 71,
|
||||
205, 76, 93, 79, 73, 205, 205, 74, 80, 89,
|
||||
77, 92, 98, 205, 78, 98, 81, 82, 83, 36,
|
||||
36, 84, 84, 36, 36, 84, 35, 36, 36, 37,
|
||||
37, 36, 36, 37, 38, 90, 94, 38, 38, 39,
|
||||
|
||||
39, 38, 95, 167, 91, 96, 167, 97, 99, 100,
|
||||
101, 40, 102, 178, 103, 40, 178, 104, 105, 90,
|
||||
106, 94, 107, 108, 109, 204, 110, 95, 91, 111,
|
||||
96, 97, 99, 100, 101, 112, 40, 102, 103, 113,
|
||||
40, 104, 105, 114, 106, 115, 204, 107, 108, 109,
|
||||
110, 116, 121, 111, 118, 117, 204, 119, 120, 112,
|
||||
122, 123, 127, 113, 83, 36, 36, 84, 114, 124,
|
||||
115, 84, 36, 36, 84, 125, 116, 121, 118, 126,
|
||||
117, 119, 120, 129, 122, 98, 123, 127, 98, 130,
|
||||
204, 132, 134, 124, 133, 135, 204, 136, 131, 125,
|
||||
39, 38, 95, 168, 91, 96, 168, 97, 99, 100,
|
||||
101, 40, 102, 179, 103, 40, 179, 106, 104, 90,
|
||||
107, 94, 108, 109, 110, 205, 111, 95, 91, 112,
|
||||
96, 97, 99, 100, 101, 105, 40, 102, 103, 113,
|
||||
40, 106, 114, 104, 107, 115, 116, 108, 109, 110,
|
||||
111, 117, 122, 112, 119, 118, 205, 198, 205, 105,
|
||||
198, 120, 121, 113, 123, 124, 114, 125, 126, 127,
|
||||
115, 116, 83, 36, 36, 84, 117, 122, 119, 128,
|
||||
118, 84, 36, 36, 84, 120, 121, 130, 123, 131,
|
||||
124, 125, 126, 127, 98, 133, 134, 98, 132, 135,
|
||||
|
||||
137, 138, 139, 126, 140, 141, 143, 129, 142, 143,
|
||||
145, 146, 147, 148, 130, 132, 128, 134, 133, 149,
|
||||
135, 136, 131, 150, 137, 138, 139, 151, 152, 140,
|
||||
141, 144, 142, 153, 145, 146, 154, 147, 148, 155,
|
||||
128, 156, 157, 158, 149, 159, 160, 150, 161, 162,
|
||||
165, 143, 151, 152, 143, 144, 169, 153, 166, 168,
|
||||
173, 154, 170, 155, 171, 156, 157, 172, 158, 174,
|
||||
159, 160, 161, 162, 175, 165, 176, 204, 177, 178,
|
||||
169, 164, 178, 166, 168, 173, 170, 180, 171, 167,
|
||||
182, 172, 167, 174, 183, 184, 185, 189, 175, 186,
|
||||
205, 136, 205, 137, 128, 138, 139, 140, 141, 142,
|
||||
144, 130, 143, 144, 131, 146, 147, 148, 149, 133,
|
||||
134, 150, 132, 151, 135, 129, 136, 137, 152, 138,
|
||||
139, 140, 153, 141, 142, 145, 143, 154, 155, 146,
|
||||
147, 156, 148, 149, 157, 158, 150, 151, 159, 129,
|
||||
160, 161, 166, 152, 162, 163, 167, 153, 169, 145,
|
||||
170, 154, 171, 155, 144, 156, 172, 144, 157, 158,
|
||||
205, 173, 174, 159, 175, 160, 161, 166, 162, 163,
|
||||
176, 167, 177, 169, 170, 178, 171, 181, 179, 168,
|
||||
172, 179, 168, 183, 165, 173, 184, 174, 175, 185,
|
||||
|
||||
178, 176, 177, 178, 190, 164, 193, 179, 191, 178,
|
||||
181, 180, 178, 196, 182, 192, 194, 204, 183, 199,
|
||||
184, 185, 189, 186, 178, 204, 187, 178, 190, 197,
|
||||
193, 179, 197, 191, 202, 181, 198, 196, 188, 198,
|
||||
192, 194, 197, 199, 198, 197, 204, 198, 203, 204,
|
||||
187, 203, 204, 203, 204, 195, 203, 204, 204, 202,
|
||||
204, 204, 188, 204, 204, 204, 204, 204, 204, 204,
|
||||
201, 204, 204, 204, 204, 204, 204, 204, 204, 195,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 201, 41, 41, 204, 41, 41,
|
||||
186, 205, 187, 179, 176, 179, 179, 177, 179, 178,
|
||||
182, 181, 190, 205, 191, 194, 180, 183, 165, 192,
|
||||
184, 193, 195, 203, 185, 186, 187, 197, 179, 188,
|
||||
199, 179, 200, 199, 189, 182, 205, 190, 191, 194,
|
||||
180, 205, 198, 205, 192, 198, 193, 195, 203, 199,
|
||||
205, 197, 199, 188, 205, 205, 200, 205, 189, 196,
|
||||
204, 204, 205, 204, 204, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 202, 205, 205, 205, 205,
|
||||
205, 205, 205, 196, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 202,
|
||||
|
||||
50, 50, 86, 86, 204, 86, 86, 163, 204, 204,
|
||||
163, 200, 204, 204, 200, 3, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204
|
||||
41, 41, 205, 41, 41, 50, 50, 86, 86, 205,
|
||||
86, 86, 164, 205, 205, 164, 201, 205, 205, 201,
|
||||
3, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205
|
||||
} ;
|
||||
|
||||
static yyconst flex_int16_t yy_chk[579] =
|
||||
static yyconst flex_int16_t yy_chk[584] =
|
||||
{ 0,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
@ -588,47 +589,48 @@ static yyconst flex_int16_t yy_chk[579] =
|
||||
33, 33, 34, 34, 34, 34, 35, 35, 35, 35,
|
||||
37, 37, 37, 37, 38, 53, 56, 38, 39, 39,
|
||||
|
||||
39, 39, 57, 148, 53, 58, 148, 59, 62, 62,
|
||||
63, 38, 64, 163, 65, 39, 163, 66, 67, 53,
|
||||
39, 39, 57, 149, 53, 58, 149, 59, 62, 62,
|
||||
63, 38, 64, 164, 65, 39, 164, 67, 66, 53,
|
||||
68, 56, 70, 72, 73, 0, 74, 57, 53, 75,
|
||||
58, 59, 62, 62, 63, 76, 38, 64, 65, 77,
|
||||
39, 66, 67, 78, 68, 79, 0, 70, 72, 73,
|
||||
74, 81, 90, 75, 82, 81, 0, 85, 89, 76,
|
||||
91, 92, 97, 77, 83, 83, 83, 83, 78, 94,
|
||||
79, 84, 84, 84, 84, 95, 81, 90, 82, 96,
|
||||
81, 85, 89, 99, 91, 98, 92, 97, 98, 100,
|
||||
0, 101, 103, 94, 102, 104, 0, 105, 100, 95,
|
||||
58, 59, 62, 62, 63, 66, 38, 64, 65, 76,
|
||||
39, 67, 77, 66, 68, 78, 79, 70, 72, 73,
|
||||
74, 81, 90, 75, 82, 81, 0, 195, 0, 66,
|
||||
195, 85, 89, 76, 91, 92, 77, 94, 95, 96,
|
||||
78, 79, 83, 83, 83, 83, 81, 90, 82, 97,
|
||||
81, 84, 84, 84, 84, 85, 89, 99, 91, 100,
|
||||
92, 94, 95, 96, 98, 101, 102, 98, 100, 103,
|
||||
|
||||
107, 108, 109, 96, 111, 113, 115, 99, 114, 115,
|
||||
116, 117, 118, 119, 100, 101, 98, 103, 102, 120,
|
||||
104, 105, 100, 125, 107, 108, 109, 126, 127, 111,
|
||||
113, 115, 114, 128, 116, 117, 129, 118, 119, 130,
|
||||
98, 133, 134, 135, 120, 139, 140, 125, 141, 142,
|
||||
146, 143, 126, 127, 143, 115, 150, 128, 147, 149,
|
||||
157, 129, 152, 130, 154, 133, 134, 155, 135, 159,
|
||||
139, 140, 141, 142, 160, 146, 161, 0, 162, 164,
|
||||
150, 143, 164, 147, 149, 157, 152, 166, 154, 167,
|
||||
168, 155, 167, 159, 169, 171, 172, 181, 160, 174,
|
||||
0, 105, 0, 106, 97, 108, 109, 110, 112, 114,
|
||||
116, 99, 115, 116, 100, 117, 118, 119, 120, 101,
|
||||
102, 121, 100, 126, 103, 98, 105, 106, 127, 108,
|
||||
109, 110, 128, 112, 114, 116, 115, 129, 130, 117,
|
||||
118, 131, 119, 120, 134, 135, 121, 126, 136, 98,
|
||||
140, 141, 147, 127, 142, 143, 148, 128, 150, 116,
|
||||
151, 129, 153, 130, 144, 131, 155, 144, 134, 135,
|
||||
0, 156, 158, 136, 160, 140, 141, 147, 142, 143,
|
||||
161, 148, 162, 150, 151, 163, 153, 167, 165, 168,
|
||||
155, 165, 168, 169, 144, 156, 170, 158, 160, 172,
|
||||
|
||||
178, 161, 162, 178, 182, 143, 186, 164, 184, 179,
|
||||
167, 166, 179, 192, 168, 185, 187, 0, 169, 196,
|
||||
171, 172, 181, 174, 188, 0, 178, 188, 182, 194,
|
||||
186, 164, 194, 184, 201, 167, 195, 192, 179, 195,
|
||||
185, 187, 197, 196, 198, 197, 200, 198, 202, 200,
|
||||
178, 202, 0, 203, 0, 188, 203, 0, 0, 201,
|
||||
0, 0, 179, 0, 0, 0, 0, 0, 0, 0,
|
||||
198, 0, 0, 0, 0, 0, 0, 0, 0, 188,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 198, 205, 205, 0, 205, 205,
|
||||
173, 0, 175, 179, 161, 180, 179, 162, 180, 163,
|
||||
168, 167, 182, 0, 183, 187, 165, 169, 144, 185,
|
||||
170, 186, 188, 202, 172, 173, 175, 193, 189, 179,
|
||||
196, 189, 197, 196, 180, 168, 0, 182, 183, 187,
|
||||
165, 0, 198, 0, 185, 198, 186, 188, 202, 199,
|
||||
0, 193, 199, 179, 201, 0, 197, 201, 180, 189,
|
||||
203, 204, 0, 203, 204, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 199, 0, 0, 0, 0,
|
||||
0, 0, 0, 189, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 199,
|
||||
|
||||
206, 206, 207, 207, 0, 207, 207, 208, 0, 0,
|
||||
208, 209, 0, 0, 209, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204, 204, 204,
|
||||
204, 204, 204, 204, 204, 204, 204, 204
|
||||
206, 206, 0, 206, 206, 207, 207, 208, 208, 0,
|
||||
208, 208, 209, 0, 0, 209, 210, 0, 0, 210,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205, 205, 205, 205, 205, 205, 205, 205,
|
||||
205, 205, 205
|
||||
} ;
|
||||
|
||||
static yy_state_type yy_last_accepting_state;
|
||||
@ -702,7 +704,7 @@ static void countnl() {
|
||||
g_lingo->_colnumber = strlen(p);
|
||||
}
|
||||
|
||||
#line 706 "engines/director/lingo/lingo-lex.cpp"
|
||||
#line 708 "engines/director/lingo/lingo-lex.cpp"
|
||||
|
||||
#define INITIAL 0
|
||||
|
||||
@ -890,7 +892,7 @@ YY_DECL
|
||||
#line 69 "engines/director/lingo/lingo-lex.l"
|
||||
|
||||
|
||||
#line 894 "engines/director/lingo/lingo-lex.cpp"
|
||||
#line 896 "engines/director/lingo/lingo-lex.cpp"
|
||||
|
||||
if ( !(yy_init) )
|
||||
{
|
||||
@ -944,13 +946,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 >= 205 )
|
||||
if ( yy_current_state >= 206 )
|
||||
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_base[yy_current_state] != 516 );
|
||||
while ( yy_base[yy_current_state] != 521 );
|
||||
|
||||
yy_find_action:
|
||||
yy_act = yy_accept[yy_current_state];
|
||||
@ -1099,66 +1101,71 @@ YY_RULE_SETUP
|
||||
case 25:
|
||||
YY_RULE_SETUP
|
||||
#line 96 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tMOVIE; }
|
||||
{ count(); return tMOD; }
|
||||
YY_BREAK
|
||||
case 26:
|
||||
YY_RULE_SETUP
|
||||
#line 97 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tNEXT; }
|
||||
{ count(); return tMOVIE; }
|
||||
YY_BREAK
|
||||
case 27:
|
||||
YY_RULE_SETUP
|
||||
#line 98 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tNOT; }
|
||||
{ count(); return tNEXT; }
|
||||
YY_BREAK
|
||||
case 28:
|
||||
YY_RULE_SETUP
|
||||
#line 99 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tOF; }
|
||||
{ count(); return tNOT; }
|
||||
YY_BREAK
|
||||
case 29:
|
||||
YY_RULE_SETUP
|
||||
#line 100 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tOPEN; }
|
||||
{ count(); return tOF; }
|
||||
YY_BREAK
|
||||
case 30:
|
||||
YY_RULE_SETUP
|
||||
#line 101 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tOR; }
|
||||
{ count(); return tOPEN; }
|
||||
YY_BREAK
|
||||
case 31:
|
||||
YY_RULE_SETUP
|
||||
#line 102 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tPLAY; }
|
||||
{ count(); return tOR; }
|
||||
YY_BREAK
|
||||
case 32:
|
||||
YY_RULE_SETUP
|
||||
#line 103 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tPREVIOUS; }
|
||||
{ count(); return tPLAY; }
|
||||
YY_BREAK
|
||||
case 33:
|
||||
YY_RULE_SETUP
|
||||
#line 104 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tPUT; }
|
||||
{ count(); return tPREVIOUS; }
|
||||
YY_BREAK
|
||||
case 34:
|
||||
YY_RULE_SETUP
|
||||
#line 105 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tREPEAT; }
|
||||
{ count(); return tPUT; }
|
||||
YY_BREAK
|
||||
case 35:
|
||||
YY_RULE_SETUP
|
||||
#line 106 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tSET; }
|
||||
{ count(); return tREPEAT; }
|
||||
YY_BREAK
|
||||
case 36:
|
||||
YY_RULE_SETUP
|
||||
#line 107 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tSTARTS; }
|
||||
{ count(); return tSET; }
|
||||
YY_BREAK
|
||||
case 37:
|
||||
YY_RULE_SETUP
|
||||
#line 108 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tSTARTS; }
|
||||
YY_BREAK
|
||||
case 38:
|
||||
YY_RULE_SETUP
|
||||
#line 109 "engines/director/lingo/lingo-lex.l"
|
||||
{
|
||||
count();
|
||||
|
||||
@ -1168,9 +1175,9 @@ YY_RULE_SETUP
|
||||
return THEENTITYWITHID;
|
||||
}
|
||||
YY_BREAK
|
||||
case 38:
|
||||
case 39:
|
||||
YY_RULE_SETUP
|
||||
#line 116 "engines/director/lingo/lingo-lex.l"
|
||||
#line 117 "engines/director/lingo/lingo-lex.l"
|
||||
{
|
||||
count();
|
||||
|
||||
@ -1212,9 +1219,9 @@ YY_RULE_SETUP
|
||||
warning("Unhandled the entity %s", ptr);
|
||||
}
|
||||
YY_BREAK
|
||||
case 39:
|
||||
case 40:
|
||||
YY_RULE_SETUP
|
||||
#line 156 "engines/director/lingo/lingo-lex.l"
|
||||
#line 157 "engines/director/lingo/lingo-lex.l"
|
||||
{
|
||||
count();
|
||||
|
||||
@ -1235,64 +1242,64 @@ YY_RULE_SETUP
|
||||
warning("Unhandled the entity %s", ptr);
|
||||
}
|
||||
YY_BREAK
|
||||
case 40:
|
||||
YY_RULE_SETUP
|
||||
#line 175 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tTHEN; }
|
||||
YY_BREAK
|
||||
case 41:
|
||||
YY_RULE_SETUP
|
||||
#line 176 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tTO; }
|
||||
{ count(); return tTHEN; }
|
||||
YY_BREAK
|
||||
case 42:
|
||||
YY_RULE_SETUP
|
||||
#line 177 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tSPRITE; }
|
||||
{ count(); return tTO; }
|
||||
YY_BREAK
|
||||
case 43:
|
||||
YY_RULE_SETUP
|
||||
#line 178 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tWITH; }
|
||||
{ count(); return tSPRITE; }
|
||||
YY_BREAK
|
||||
case 44:
|
||||
YY_RULE_SETUP
|
||||
#line 179 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tWITHIN; }
|
||||
{ count(); return tWITH; }
|
||||
YY_BREAK
|
||||
case 45:
|
||||
YY_RULE_SETUP
|
||||
#line 180 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tWHEN; }
|
||||
{ count(); return tWITHIN; }
|
||||
YY_BREAK
|
||||
case 46:
|
||||
YY_RULE_SETUP
|
||||
#line 181 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tWHILE; }
|
||||
{ count(); return tWHEN; }
|
||||
YY_BREAK
|
||||
case 47:
|
||||
YY_RULE_SETUP
|
||||
#line 183 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tNEQ; }
|
||||
#line 182 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tWHILE; }
|
||||
YY_BREAK
|
||||
case 48:
|
||||
YY_RULE_SETUP
|
||||
#line 184 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tGE; }
|
||||
{ count(); return tNEQ; }
|
||||
YY_BREAK
|
||||
case 49:
|
||||
YY_RULE_SETUP
|
||||
#line 185 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tLE; }
|
||||
{ count(); return tGE; }
|
||||
YY_BREAK
|
||||
case 50:
|
||||
YY_RULE_SETUP
|
||||
#line 186 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tCONCAT; }
|
||||
{ count(); return tLE; }
|
||||
YY_BREAK
|
||||
case 51:
|
||||
YY_RULE_SETUP
|
||||
#line 188 "engines/director/lingo/lingo-lex.l"
|
||||
#line 187 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return tCONCAT; }
|
||||
YY_BREAK
|
||||
case 52:
|
||||
YY_RULE_SETUP
|
||||
#line 189 "engines/director/lingo/lingo-lex.l"
|
||||
{
|
||||
count();
|
||||
yylval.s = new Common::String(yytext);
|
||||
@ -1320,43 +1327,43 @@ YY_RULE_SETUP
|
||||
return ID;
|
||||
}
|
||||
YY_BREAK
|
||||
case 52:
|
||||
YY_RULE_SETUP
|
||||
#line 214 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); yylval.f = atof(yytext); return FLOAT; }
|
||||
YY_BREAK
|
||||
case 53:
|
||||
YY_RULE_SETUP
|
||||
#line 215 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
|
||||
{ count(); yylval.f = atof(yytext); return FLOAT; }
|
||||
YY_BREAK
|
||||
case 54:
|
||||
YY_RULE_SETUP
|
||||
#line 216 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); return *yytext; }
|
||||
{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
|
||||
YY_BREAK
|
||||
case 55:
|
||||
/* rule 55 can match eol */
|
||||
YY_RULE_SETUP
|
||||
#line 217 "engines/director/lingo/lingo-lex.l"
|
||||
{ return '\n'; }
|
||||
{ count(); return *yytext; }
|
||||
YY_BREAK
|
||||
case 56:
|
||||
/* rule 56 can match eol */
|
||||
YY_RULE_SETUP
|
||||
#line 218 "engines/director/lingo/lingo-lex.l"
|
||||
{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
|
||||
{ return '\n'; }
|
||||
YY_BREAK
|
||||
case 57:
|
||||
YY_RULE_SETUP
|
||||
#line 219 "engines/director/lingo/lingo-lex.l"
|
||||
|
||||
{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
|
||||
YY_BREAK
|
||||
case 58:
|
||||
YY_RULE_SETUP
|
||||
#line 221 "engines/director/lingo/lingo-lex.l"
|
||||
#line 220 "engines/director/lingo/lingo-lex.l"
|
||||
|
||||
YY_BREAK
|
||||
case 59:
|
||||
YY_RULE_SETUP
|
||||
#line 222 "engines/director/lingo/lingo-lex.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 1360 "engines/director/lingo/lingo-lex.cpp"
|
||||
#line 1367 "engines/director/lingo/lingo-lex.cpp"
|
||||
case YY_STATE_EOF(INITIAL):
|
||||
yyterminate();
|
||||
|
||||
@ -1649,7 +1656,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 >= 205 )
|
||||
if ( yy_current_state >= 206 )
|
||||
yy_c = yy_meta[(unsigned int) yy_c];
|
||||
}
|
||||
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
|
||||
@ -1677,11 +1684,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 >= 205 )
|
||||
if ( yy_current_state >= 206 )
|
||||
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 == 204);
|
||||
yy_is_jam = (yy_current_state == 205);
|
||||
|
||||
return yy_is_jam ? 0 : yy_current_state;
|
||||
}
|
||||
@ -2356,7 +2363,7 @@ void yyfree (void * ptr )
|
||||
|
||||
#define YYTABLES_NAME "yytables"
|
||||
|
||||
#line 221 "engines/director/lingo/lingo-lex.l"
|
||||
#line 222 "engines/director/lingo/lingo-lex.l"
|
||||
|
||||
|
||||
|
||||
|
@ -93,6 +93,7 @@ whitespace [\t ]
|
||||
(?i:loop) { count(); return tLOOP; }
|
||||
(?i:macro) { count(); return tMACRO; }
|
||||
(?i:method) { count(); return tMETHOD; }
|
||||
(?i:mod) { count(); return tMOD; }
|
||||
(?i:movie) { count(); return tMOVIE; }
|
||||
(?i:next) { count(); return tNEXT; }
|
||||
(?i:not) { count(); return tNOT; }
|
||||
|
@ -236,6 +236,7 @@ public:
|
||||
static void c_sub();
|
||||
static void c_mul();
|
||||
static void c_div();
|
||||
static void c_mod();
|
||||
static void c_negate();
|
||||
|
||||
static void c_and();
|
||||
|
Loading…
Reference in New Issue
Block a user