diff options
| -rw-r--r-- | engines/director/lingo/lingo-code.cpp | 31 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 1120 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.h | 80 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.y | 6 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-lex.cpp | 555 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-lex.l | 1 | ||||
| -rw-r--r-- | engines/director/lingo/lingo.h | 2 | 
7 files changed, 930 insertions, 865 deletions
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index f950d35d59..4f4a2b3be1 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -60,7 +60,7 @@ static struct FuncDescr {  	{ Lingo::c_voidpush,	"c_voidpush",	"" },  	{ Lingo::c_fconstpush,	"c_fconstpush",	"f" },  	{ Lingo::c_stringpush,	"c_stringpush",	"s" }, -	{ Lingo::c_symbolpush,	"c_symbolpush","s" }, +	{ Lingo::c_symbolpush,	"c_symbolpush","s" },	// D3  	{ Lingo::c_varpush,		"c_varpush",	"s" },  	{ Lingo::c_assign,		"c_assign",		"" },  	{ Lingo::c_eval,		"c_eval",		"s" }, @@ -74,13 +74,15 @@ static struct FuncDescr {  	{ Lingo::c_mod,			"c_mod",		"" },  	{ Lingo::c_negate,		"c_negate",		"" },  	{ Lingo::c_ampersand,	"c_ampersand",	"" }, -	{ Lingo::c_after,		"c_after",		"" }, -	{ Lingo::c_before,		"c_before",		"" }, +	{ Lingo::c_after,		"c_after",		"" },	// D3 +	{ Lingo::c_before,		"c_before",		"" },	// D3  	{ Lingo::c_concat,		"c_concat",		"" },  	{ Lingo::c_contains,	"c_contains",	"" },  	{ Lingo::c_starts,		"c_starts",		"" },  	{ Lingo::c_intersects,	"c_intersects",	"" },  	{ Lingo::c_within,		"c_within",		"" }, +	{ Lingo::c_charOf,		"c_charOf",		"" },	// D3 +	{ Lingo::c_charToOf,	"c_charToOf",	"" },	// D3  	{ Lingo::c_and,			"c_and",		"" },  	{ Lingo::c_or,			"c_or",			"" },  	{ Lingo::c_not,			"c_not",		"" }, @@ -571,7 +573,7 @@ void Lingo::c_intersects() {  	Datum d2 = g_lingo->pop();  	Datum d1 = g_lingo->pop(); -	warning("STUB: c_intersects: %d", d2.u.i); +	warning("STUB: c_intersects: %d %d", d1.u.i, d2.u.i);  	g_lingo->push(d1);  } @@ -580,7 +582,26 @@ void Lingo::c_within() {  	Datum d2 = g_lingo->pop();  	Datum d1 = g_lingo->pop(); -	warning("STUB: c_within: %d", d2.u.i); +	warning("STUB: c_within: %d %d", d1.u.i, d2.u.i); + +	g_lingo->push(d1); +} + +void Lingo::c_charOf() { +	Datum d2 = g_lingo->pop(); +	Datum d1 = g_lingo->pop(); + +	warning("STUB: c_charOf: %d %d", d1.u.i, d2.u.i); + +	g_lingo->push(d1); +} + +void Lingo::c_charToOf() { +	Datum d3 = g_lingo->pop(); +	Datum d2 = g_lingo->pop(); +	Datum d1 = g_lingo->pop(); + +	warning("STUB: c_charToOf: %d %d %d", d1.u.i, d2.u.i, d3.u.i);  	g_lingo->push(d1);  } diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index a943ced02f..d5c57790ae 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -73,20 +73,20 @@       POINT = 262,       RECT = 263,       ARRAY = 264, -     SYMBOL = 265, -     OBJECT = 266, -     INT = 267, -     THEENTITY = 268, -     THEENTITYWITHID = 269, -     FLOAT = 270, -     BLTIN = 271, -     BLTINNOARGS = 272, -     BLTINNOARGSORONE = 273, -     BLTINONEARG = 274, -     BLTINARGLIST = 275, -     ID = 276, -     STRING = 277, -     HANDLER = 278, +     OBJECT = 265, +     INT = 266, +     THEENTITY = 267, +     THEENTITYWITHID = 268, +     FLOAT = 269, +     BLTIN = 270, +     BLTINNOARGS = 271, +     BLTINNOARGSORONE = 272, +     BLTINONEARG = 273, +     BLTINARGLIST = 274, +     ID = 275, +     STRING = 276, +     HANDLER = 277, +     SYMBOL = 278,       tDOWN = 279,       tELSE = 280,       tNLELSIF = 281, @@ -134,11 +134,12 @@       tCONCAT = 323,       tCONTAINS = 324,       tSTARTS = 325, -     tSPRITE = 326, -     tINTERSECTS = 327, -     tWITHIN = 328, -     tON = 329, -     tSOUND = 330 +     tCHAR = 326, +     tSPRITE = 327, +     tINTERSECTS = 328, +     tWITHIN = 329, +     tON = 330, +     tSOUND = 331     };  #endif  /* Tokens.  */ @@ -149,20 +150,20 @@  #define POINT 262  #define RECT 263  #define ARRAY 264 -#define SYMBOL 265 -#define OBJECT 266 -#define INT 267 -#define THEENTITY 268 -#define THEENTITYWITHID 269 -#define FLOAT 270 -#define BLTIN 271 -#define BLTINNOARGS 272 -#define BLTINNOARGSORONE 273 -#define BLTINONEARG 274 -#define BLTINARGLIST 275 -#define ID 276 -#define STRING 277 -#define HANDLER 278 +#define OBJECT 265 +#define INT 266 +#define THEENTITY 267 +#define THEENTITYWITHID 268 +#define FLOAT 269 +#define BLTIN 270 +#define BLTINNOARGS 271 +#define BLTINNOARGSORONE 272 +#define BLTINONEARG 273 +#define BLTINARGLIST 274 +#define ID 275 +#define STRING 276 +#define HANDLER 277 +#define SYMBOL 278  #define tDOWN 279  #define tELSE 280  #define tNLELSIF 281 @@ -210,11 +211,12 @@  #define tCONCAT 323  #define tCONTAINS 324  #define tSTARTS 325 -#define tSPRITE 326 -#define tINTERSECTS 327 -#define tWITHIN 328 -#define tON 329 -#define tSOUND 330 +#define tCHAR 326 +#define tSPRITE 327 +#define tINTERSECTS 328 +#define tWITHIN 329 +#define tON 330 +#define tSOUND 331 @@ -272,7 +274,7 @@ typedef union YYSTYPE  	Common::Array<double> *arr;  }  /* Line 193 of yacc.c.  */ -#line 276 "engines/director/lingo/lingo-gr.cpp" +#line 278 "engines/director/lingo/lingo-gr.cpp"  	YYSTYPE;  # define yystype YYSTYPE /* obsolescent; will be withdrawn */  # define YYSTYPE_IS_DECLARED 1 @@ -285,7 +287,7 @@ typedef union YYSTYPE  /* Line 216 of yacc.c.  */ -#line 289 "engines/director/lingo/lingo-gr.cpp" +#line 291 "engines/director/lingo/lingo-gr.cpp"  #ifdef short  # undef short @@ -498,22 +500,22 @@ union yyalloc  #endif  /* YYFINAL -- State number of the termination state.  */ -#define YYFINAL  97 +#define YYFINAL  99  /* YYLAST -- Last index in YYTABLE.  */ -#define YYLAST   1146 +#define YYLAST   1191  /* YYNTOKENS -- Number of terminals.  */ -#define YYNTOKENS  89 +#define YYNTOKENS  90  /* YYNNTS -- Number of nonterminals.  */  #define YYNNTS  39  /* YYNRULES -- Number of rules.  */ -#define YYNRULES  138 +#define YYNRULES  140  /* YYNRULES -- Number of states.  */ -#define YYNSTATES  289 +#define YYNSTATES  297  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  #define YYUNDEFTOK  2 -#define YYMAXUTOK   330 +#define YYMAXUTOK   331  #define YYTRANSLATE(YYX)						\    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -522,12 +524,12 @@ union yyalloc  static const yytype_uint8 yytranslate[] =  {         0,     2,     2,     2,     2,     2,     2,     2,     2,     2, -      83,     2,     2,     2,     2,     2,     2,     2,     2,     2, +      84,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -       2,     2,     2,     2,     2,     2,     2,    82,    77,     2, -      84,    85,    80,    78,    88,    79,     2,    81,     2,     2, +       2,     2,     2,     2,     2,     2,     2,    83,    78,     2, +      85,    86,    81,    79,    89,    80,     2,    82,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -      87,    76,    86,     2,     2,     2,     2,     2,     2,     2, +      88,    77,    87,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2, @@ -554,7 +556,7 @@ static const yytype_uint8 yytranslate[] =        45,    46,    47,    48,    49,    50,    51,    52,    53,    54,        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,        65,    66,    67,    68,    69,    70,    71,    72,    73,    74, -      75 +      75,    76  };  #if YYDEBUG @@ -571,68 +573,70 @@ static const yytype_uint16 yyprhs[] =       250,   252,   254,   259,   261,   263,   266,   268,   272,   276,       280,   284,   288,   292,   296,   300,   304,   308,   312,   316,       319,   323,   327,   331,   335,   339,   342,   345,   349,   354, -     359,   362,   364,   366,   369,   371,   374,   377,   380,   383, -     385,   388,   393,   396,   400,   402,   406,   408,   412,   415, -     418,   421,   424,   428,   431,   434,   436,   440,   443,   446, -     449,   453,   456,   457,   466,   469,   470,   479,   480,   481, -     492,   493,   495,   499,   504,   505,   509,   510,   512 +     359,   364,   371,   374,   376,   378,   381,   383,   386,   389, +     392,   395,   397,   400,   405,   408,   412,   414,   418,   420, +     424,   427,   430,   433,   436,   440,   443,   446,   448,   452, +     455,   458,   461,   465,   468,   469,   478,   481,   482,   491, +     492,   493,   504,   505,   507,   511,   516,   517,   521,   522, +     524  };  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */ -static const yytype_int8 yyrhs[] = +static const yytype_int16 yyrhs[] =  { -      90,     0,    -1,    90,    91,    92,    -1,    92,    -1,     1, -      91,    -1,    83,    -1,    -1,   119,    -1,   112,    -1,   126, -      -1,    93,    -1,    95,    -1,    40,   111,    33,    21,    -1, -      40,   111,    66,   111,    -1,    40,   111,    67,   111,    -1, -      42,    21,    76,   111,    -1,    42,    13,    76,   111,    -1, -      42,    14,   111,    76,   111,    -1,    42,    21,    44,   111, -      -1,    42,    13,    44,   111,    -1,    42,    14,   111,    44, -     111,    -1,   111,    -1,   112,    -1,    94,    -1,    96,    -1, -     103,    84,   102,    85,   109,   108,    27,    41,    -1,   104, -      76,   111,   108,    44,   111,   108,   109,   108,    27,    41, -      -1,   104,    76,   111,   108,    24,    44,   111,   108,   109, -     108,    27,    41,    -1,   110,   111,   108,    -1,   105,   102, -      43,    91,   109,   108,    27,    32,    -1,   105,   102,    43, -      91,   109,   108,    48,   109,   108,    27,    32,    -1,   105, -     102,    43,    91,   109,   108,   107,    98,   108,    27,    32, -      -1,   105,   102,    43,   107,    94,   108,    -1,   105,   102, -      43,   107,    94,   108,    48,   107,    94,   108,    -1,   105, -     102,    43,   107,    94,   108,    99,   108,    97,   108,    -1, -      -1,    48,   107,    94,    -1,    98,   101,    -1,   101,    -1, -      99,   100,    -1,   100,    -1,   106,   102,    43,   107,    95, -     108,    -1,    99,    -1,   106,   102,    43,   109,   108,    -1, -     111,    -1,   111,    76,   111,    -1,    84,   102,    85,    -1, -      41,    47,    -1,    41,    46,    21,    -1,    32,    -1,    26, -      -1,    -1,    -1,    -1,   109,    91,    -1,   109,    95,    -1, -      45,    21,    43,    -1,    12,    -1,    15,    -1,    10,    -1, -      22,    -1,    17,    -1,    21,    84,   127,    85,    -1,    21, -      -1,    13,    -1,    14,   111,    -1,    93,    -1,   111,    78, -     111,    -1,   111,    79,   111,    -1,   111,    80,   111,    -1, -     111,    81,   111,    -1,   111,    65,   111,    -1,   111,    86, -     111,    -1,   111,    87,   111,    -1,   111,    61,   111,    -1, -     111,    56,   111,    -1,   111,    57,   111,    -1,   111,    62, -     111,    -1,   111,    63,   111,    -1,    64,   111,    -1,   111, -      77,   111,    -1,   111,    66,   111,    -1,   111,    68,   111, -      -1,   111,    69,   111,    -1,   111,    70,   111,    -1,    78, -     111,    -1,    79,   111,    -1,    84,   111,    85,    -1,    71, -     111,    72,   111,    -1,    71,   111,    73,   111,    -1,    40, -     111,    -1,   115,    -1,   118,    -1,    28,    41,    -1,    28, -      -1,    30,   113,    -1,    55,   114,    -1,    19,   111,    -1, -      18,   111,    -1,    18,    -1,    20,   127,    -1,    51,   111, -      46,   111,    -1,    51,   111,    -1,    75,    21,   127,    -1, -      21,    -1,   113,    88,    21,    -1,    21,    -1,   114,    88, -      21,    -1,    31,    34,    -1,    31,    37,    -1,    31,    39, -      -1,    31,   116,    -1,    31,   116,   117,    -1,    31,   117, -      -1,    29,   111,    -1,   111,    -1,    38,    36,   111,    -1, -      36,   111,    -1,    52,    53,    -1,    52,   116,    -1,    52, -     116,   117,    -1,    52,   117,    -1,    -1,    35,    21,   120, -     107,   124,    91,   125,   109,    -1,    49,    21,    -1,    -1, -      50,    21,   121,   107,   124,    91,   125,   109,    -1,    -1, -      -1,    74,    21,   122,   107,   123,   124,    91,   125,   109, -      27,    -1,    -1,    21,    -1,   124,    88,    21,    -1,   124, -      91,    88,    21,    -1,    -1,    21,   107,   127,    -1,    -1, -     111,    -1,   127,    88,   111,    -1 +      91,     0,    -1,    91,    92,    93,    -1,    93,    -1,     1, +      92,    -1,    84,    -1,    -1,   120,    -1,   113,    -1,   127, +      -1,    94,    -1,    96,    -1,    40,   112,    33,    20,    -1, +      40,   112,    66,   112,    -1,    40,   112,    67,   112,    -1, +      42,    20,    77,   112,    -1,    42,    12,    77,   112,    -1, +      42,    13,   112,    77,   112,    -1,    42,    20,    44,   112, +      -1,    42,    12,    44,   112,    -1,    42,    13,   112,    44, +     112,    -1,   112,    -1,   113,    -1,    95,    -1,    97,    -1, +     104,    85,   103,    86,   110,   109,    27,    41,    -1,   105, +      77,   112,   109,    44,   112,   109,   110,   109,    27,    41, +      -1,   105,    77,   112,   109,    24,    44,   112,   109,   110, +     109,    27,    41,    -1,   111,   112,   109,    -1,   106,   103, +      43,    92,   110,   109,    27,    32,    -1,   106,   103,    43, +      92,   110,   109,    48,   110,   109,    27,    32,    -1,   106, +     103,    43,    92,   110,   109,   108,    99,   109,    27,    32, +      -1,   106,   103,    43,   108,    95,   109,    -1,   106,   103, +      43,   108,    95,   109,    48,   108,    95,   109,    -1,   106, +     103,    43,   108,    95,   109,   100,   109,    98,   109,    -1, +      -1,    48,   108,    95,    -1,    99,   102,    -1,   102,    -1, +     100,   101,    -1,   101,    -1,   107,   103,    43,   108,    96, +     109,    -1,   100,    -1,   107,   103,    43,   110,   109,    -1, +     112,    -1,   112,    77,   112,    -1,    85,   103,    86,    -1, +      41,    47,    -1,    41,    46,    20,    -1,    32,    -1,    26, +      -1,    -1,    -1,    -1,   110,    92,    -1,   110,    96,    -1, +      45,    20,    43,    -1,    11,    -1,    14,    -1,    23,    -1, +      21,    -1,    16,    -1,    20,    85,   128,    86,    -1,    20, +      -1,    12,    -1,    13,   112,    -1,    94,    -1,   112,    79, +     112,    -1,   112,    80,   112,    -1,   112,    81,   112,    -1, +     112,    82,   112,    -1,   112,    65,   112,    -1,   112,    87, +     112,    -1,   112,    88,   112,    -1,   112,    61,   112,    -1, +     112,    56,   112,    -1,   112,    57,   112,    -1,   112,    62, +     112,    -1,   112,    63,   112,    -1,    64,   112,    -1,   112, +      78,   112,    -1,   112,    66,   112,    -1,   112,    68,   112, +      -1,   112,    69,   112,    -1,   112,    70,   112,    -1,    79, +     112,    -1,    80,   112,    -1,    85,   112,    86,    -1,    72, +     112,    73,   112,    -1,    72,   112,    74,   112,    -1,    71, +     112,    38,   112,    -1,    71,   112,    44,   112,    38,   112, +      -1,    40,   112,    -1,   116,    -1,   119,    -1,    28,    41, +      -1,    28,    -1,    30,   114,    -1,    55,   115,    -1,    18, +     112,    -1,    17,   112,    -1,    17,    -1,    19,   128,    -1, +      51,   112,    46,   112,    -1,    51,   112,    -1,    76,    20, +     128,    -1,    20,    -1,   114,    89,    20,    -1,    20,    -1, +     115,    89,    20,    -1,    31,    34,    -1,    31,    37,    -1, +      31,    39,    -1,    31,   117,    -1,    31,   117,   118,    -1, +      31,   118,    -1,    29,   112,    -1,   112,    -1,    38,    36, +     112,    -1,    36,   112,    -1,    52,    53,    -1,    52,   117, +      -1,    52,   117,   118,    -1,    52,   118,    -1,    -1,    35, +      20,   121,   108,   125,    92,   126,   110,    -1,    49,    20, +      -1,    -1,    50,    20,   122,   108,   125,    92,   126,   110, +      -1,    -1,    -1,    75,    20,   123,   108,   124,   125,    92, +     126,   110,    27,    -1,    -1,    20,    -1,   125,    89,    20, +      -1,   125,    92,    89,    20,    -1,    -1,    20,   108,   128, +      -1,    -1,   112,    -1,   128,    89,   112,    -1  };  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */ @@ -647,11 +651,12 @@ static const yytype_uint16 yyrline[] =       365,   368,   371,   374,   378,   385,   391,   392,   393,   394,       395,   396,   397,   398,   399,   400,   401,   402,   403,   404,       405,   406,   407,   408,   409,   410,   411,   412,   413,   414, -     417,   418,   419,   420,   421,   423,   424,   425,   428,   431, -     434,   435,   436,   437,   440,   441,   444,   445,   456,   457, -     458,   459,   462,   465,   470,   471,   474,   475,   478,   479, -     482,   485,   515,   515,   521,   524,   524,   529,   530,   529, -     542,   543,   544,   545,   547,   551,   559,   560,   561 +     415,   416,   419,   420,   421,   422,   423,   425,   426,   427, +     430,   433,   436,   437,   438,   439,   442,   443,   446,   447, +     458,   459,   460,   461,   464,   467,   472,   473,   476,   477, +     480,   481,   484,   487,   517,   517,   523,   526,   526,   531, +     532,   531,   544,   545,   546,   547,   549,   553,   561,   562, +     563  };  #endif @@ -661,18 +666,18 @@ static const yytype_uint16 yyrline[] =  static const char *const yytname[] =  {    "$end", "error", "$undefined", "UNARY", "CASTREF", "VOID", "VAR", -  "POINT", "RECT", "ARRAY", "SYMBOL", "OBJECT", "INT", "THEENTITY", +  "POINT", "RECT", "ARRAY", "OBJECT", "INT", "THEENTITY",    "THEENTITYWITHID", "FLOAT", "BLTIN", "BLTINNOARGS", "BLTINNOARGSORONE", -  "BLTINONEARG", "BLTINARGLIST", "ID", "STRING", "HANDLER", "tDOWN", -  "tELSE", "tNLELSIF", "tEND", "tEXIT", "tFRAME", "tGLOBAL", "tGO", "tIF", -  "tINTO", "tLOOP", "tMACRO", "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", -  "tPUT", "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", -  "tNLELSE", "tFACTORY", "tMETHOD", "tOPEN", "tPLAY", "tDONE", +  "BLTINONEARG", "BLTINARGLIST", "ID", "STRING", "HANDLER", "SYMBOL", +  "tDOWN", "tELSE", "tNLELSIF", "tEND", "tEXIT", "tFRAME", "tGLOBAL", +  "tGO", "tIF", "tINTO", "tLOOP", "tMACRO", "tMOVIE", "tNEXT", "tOF", +  "tPREVIOUS", "tPUT", "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", "tWITH", +  "tWHILE", "tNLELSE", "tFACTORY", "tMETHOD", "tOPEN", "tPLAY", "tDONE",    "tPLAYACCEL", "tINSTANCE", "tGE", "tLE", "tGT", "tLT", "tEQ", "tNEQ",    "tAND", "tOR", "tNOT", "tMOD", "tAFTER", "tBEFORE", "tCONCAT", -  "tCONTAINS", "tSTARTS", "tSPRITE", "tINTERSECTS", "tWITHIN", "tON", -  "tSOUND", "'='", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'\\n'", -  "'('", "')'", "'>'", "'<'", "','", "$accept", "program", "nl", +  "tCONTAINS", "tSTARTS", "tCHAR", "tSPRITE", "tINTERSECTS", "tWITHIN", +  "tON", "tSOUND", "'='", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", +  "'\\n'", "'('", "')'", "'>'", "'<'", "','", "$accept", "program", "nl",    "programline", "asgn", "stmtoneliner", "stmt", "ifstmt",    "elsestmtoneliner", "elseifstmt", "elseifstmtoneliner",    "elseifstmtoneliner1", "elseifstmt1", "cond", "repeatwhile", @@ -695,28 +700,29 @@ static const yytype_uint16 yytoknum[] =       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,       305,   306,   307,   308,   309,   310,   311,   312,   313,   314,       315,   316,   317,   318,   319,   320,   321,   322,   323,   324, -     325,   326,   327,   328,   329,   330,    61,    38,    43,    45, -      42,    47,    37,    10,    40,    41,    62,    60,    44 +     325,   326,   327,   328,   329,   330,   331,    61,    38,    43, +      45,    42,    47,    37,    10,    40,    41,    62,    60,    44  };  # endif  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  static const yytype_uint8 yyr1[] =  { -       0,    89,    90,    90,    90,    91,    92,    92,    92,    92, -      92,    92,    93,    93,    93,    93,    93,    93,    93,    93, -      93,    94,    94,    95,    95,    95,    95,    95,    95,    96, -      96,    96,    96,    96,    96,    97,    97,    98,    98,    99, -      99,   100,   101,   101,   102,   102,   102,   103,   104,   105, -     106,   107,   108,   109,   109,   109,   110,   111,   111,   111, -     111,   111,   111,   111,   111,   111,   111,   111,   111,   111, -     111,   111,   111,   111,   111,   111,   111,   111,   111,   111, -     111,   111,   111,   111,   111,   111,   111,   111,   111,   111, +       0,    90,    91,    91,    91,    92,    93,    93,    93,    93, +      93,    93,    94,    94,    94,    94,    94,    94,    94,    94, +      94,    95,    95,    96,    96,    96,    96,    96,    96,    97, +      97,    97,    97,    97,    97,    98,    98,    99,    99,   100, +     100,   101,   102,   102,   103,   103,   103,   104,   105,   106, +     107,   108,   109,   110,   110,   110,   111,   112,   112,   112,       112,   112,   112,   112,   112,   112,   112,   112,   112,   112, -     112,   112,   112,   112,   113,   113,   114,   114,   115,   115, -     115,   115,   115,   115,   116,   116,   117,   117,   118,   118, -     118,   118,   120,   119,   119,   121,   119,   122,   123,   119, -     124,   124,   124,   124,   125,   126,   127,   127,   127 +     112,   112,   112,   112,   112,   112,   112,   112,   112,   112, +     112,   112,   112,   112,   112,   112,   112,   112,   112,   112, +     112,   112,   113,   113,   113,   113,   113,   113,   113,   113, +     113,   113,   113,   113,   113,   113,   114,   114,   115,   115, +     116,   116,   116,   116,   116,   116,   117,   117,   118,   118, +     119,   119,   119,   119,   121,   120,   120,   122,   120,   123, +     124,   120,   125,   125,   125,   125,   126,   127,   128,   128, +     128  };  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ @@ -731,11 +737,12 @@ static const yytype_uint8 yyr2[] =         1,     1,     4,     1,     1,     2,     1,     3,     3,     3,         3,     3,     3,     3,     3,     3,     3,     3,     3,     2,         3,     3,     3,     3,     3,     2,     2,     3,     4,     4, -       2,     1,     1,     2,     1,     2,     2,     2,     2,     1, -       2,     4,     2,     3,     1,     3,     1,     3,     2,     2, -       2,     2,     3,     2,     2,     1,     3,     2,     2,     2, -       3,     2,     0,     8,     2,     0,     8,     0,     0,    10, -       0,     1,     3,     4,     0,     3,     0,     1,     3 +       4,     6,     2,     1,     1,     2,     1,     2,     2,     2, +       2,     1,     2,     4,     2,     3,     1,     3,     1,     3, +       2,     2,     2,     2,     3,     2,     2,     1,     3,     2, +       2,     2,     3,     2,     0,     8,     2,     0,     8,     0, +       0,    10,     0,     1,     3,     4,     0,     3,     0,     1, +       3  };  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -743,89 +750,91 @@ static const yytype_uint8 yyr2[] =     means the default is an error.  */  static const yytype_uint8 yydefact[] =  { -       0,     0,    59,    57,    64,     0,    58,    61,    99,     0, -     136,    51,    60,    94,     0,     0,    49,     0,     0,     0, +       0,     0,    57,    64,     0,    58,    61,   101,     0,   138, +      51,    60,    59,    96,     0,     0,    49,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     3,    66,    23,    11,    24, -       0,     0,     0,     0,    21,     8,    91,    92,     7,     9, -       5,     4,    63,     0,    66,    65,    98,    97,   137,   100, -     136,   136,    93,   104,    95,     0,   108,     0,   109,     0, -     110,   115,   111,   113,   122,    90,     0,    47,     0,     0, -       0,     0,   124,   125,   102,   118,   119,   121,   106,    96, -      79,     0,   127,   136,    85,    86,     0,     1,     6,     0, -       0,     0,     0,    44,    52,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     3,    66,    23,    11, +      24,     0,     0,     0,     0,    21,     8,    93,    94,     7, +       9,     5,     4,    63,     0,    66,    65,   100,    99,   139, +     102,   138,   138,    95,   106,    97,     0,   110,     0,   111, +       0,   112,   117,   113,   115,   124,    92,     0,    47,     0, +       0,     0,     0,   126,   127,   104,   120,   121,   123,   108, +      98,    79,     0,     0,   129,   138,    85,    86,     0,     1, +       6,     0,     0,     0,     0,    44,    52,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,   135,     0,   114,   117,     0, -     112,    51,     0,     0,     0,    48,     0,     0,     0,     0, -       0,    56,    51,     0,   120,     0,     0,     0,    51,   103, -      87,     2,     0,    52,     0,     0,    51,     0,    28,    75, -      76,    74,    77,    78,    71,    81,    82,    83,    84,    80, -      67,    68,    69,    70,    72,    73,   138,    62,   105,   116, -     130,    12,    13,    14,    19,    16,     0,     0,    18,    15, -     130,   101,   107,    88,    89,   128,    53,     0,    46,    53, -       0,    45,   131,     0,    20,    17,     0,   130,    52,     0, -       0,    52,    52,    22,     0,   134,   134,     0,    54,    55, -       0,     0,    52,    51,    32,   132,     0,    53,    53,   134, -       0,    52,    53,     0,    53,     0,    50,    51,    52,    40, -       0,   133,   123,   126,    53,    25,    53,    52,    29,    52, -      52,    42,    38,     0,     0,    39,    35,     0,     0,    52, -       0,     0,    37,     0,     0,    52,    51,    52,    51,   129, -       0,     0,     0,     0,    51,    33,     0,    34,     0,     0, -      26,    30,    31,    52,    36,    52,    27,    43,    41 +       0,     0,     0,     0,     0,     0,     0,   137,     0,   116, +     119,     0,   114,    51,     0,     0,     0,    48,     0,     0, +       0,     0,     0,    56,    51,     0,   122,     0,     0,     0, +       0,     0,    51,   105,    87,     2,     0,    52,     0,     0, +      51,     0,    28,    75,    76,    74,    77,    78,    71,    81, +      82,    83,    84,    80,    67,    68,    69,    70,    72,    73, +     140,    62,   107,   118,   132,    12,    13,    14,    19,    16, +       0,     0,    18,    15,   132,   103,   109,    90,     0,    88, +      89,   130,    53,     0,    46,    53,     0,    45,   133,     0, +      20,    17,     0,     0,   132,    52,     0,     0,    52,    52, +      22,     0,   136,   136,    91,     0,    54,    55,     0,     0, +      52,    51,    32,   134,     0,    53,    53,   136,     0,    52, +      53,     0,    53,     0,    50,    51,    52,    40,     0,   135, +     125,   128,    53,    25,    53,    52,    29,    52,    52,    42, +      38,     0,     0,    39,    35,     0,     0,    52,     0,     0, +      37,     0,     0,    52,    51,    52,    51,   131,     0,     0, +       0,     0,    51,    33,     0,    34,     0,     0,    26,    30, +      31,    52,    36,    52,    27,    43,    41  };  /* YYDEFGOTO[NTERM-NUM].  */  static const yytype_int16 yydefgoto[] =  { -      -1,    34,   218,    35,    54,    37,   219,    39,   267,   250, -     251,   239,   252,   102,    40,    41,    42,   240,   278,   158, -     208,    43,    44,   213,    64,    89,    46,    72,    73,    47, -      48,   131,   142,   148,   207,   203,   227,    49,    59 +      -1,    35,   226,    36,    55,    38,   227,    40,   275,   258, +     259,   247,   260,   104,    41,    42,    43,   248,   286,   162, +     215,    44,    45,   220,    65,    90,    47,    73,    74,    48, +      49,   133,   144,   152,   214,   209,   235,    50,    60  };  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing     STATE-NUM.  */ -#define YYPACT_NINF -221 +#define YYPACT_NINF -228  static const yytype_int16 yypact[] =  { -     267,   -34,  -221,  -221,  -221,   790,  -221,  -221,   790,   790, -     790,  1059,  -221,    -6,    36,   711,  -221,    42,   790,   -22, -      52,    57,    59,    60,   790,   745,    62,   790,   790,    68, -      69,   790,   790,   790,     4,  -221,     5,  -221,  -221,  -221, -     -20,    15,   823,   790,  1032,  -221,  -221,  -221,  -221,  -221, -    -221,  -221,     8,   790,  -221,  1032,  1032,  1032,  1032,     7, -     790,   790,  -221,  -221,    11,   790,  -221,   790,  -221,    58, -    -221,  1032,    41,  -221,  -221,   843,    72,  -221,   -37,   790, -     -30,    54,  -221,  -221,   897,  -221,    41,  -221,  -221,    14, -     -46,   924,  -221,   790,   -46,   -46,   978,  -221,   342,   823, -     790,   823,    63,  1005,  1032,   790,   790,   790,   790,   790, -     790,   790,   790,   790,   790,   790,   790,   790,   790,   790, -     790,   790,   843,   790,   -26,     7,    84,  1032,  1032,   790, -    -221,  -221,    86,   790,   790,  -221,   790,   790,   870,   790, -     790,  -221,  -221,   790,  -221,    88,   790,   790,  -221,     7, -    -221,  -221,    26,  1032,    27,   951,   -34,   790,  -221,   396, -     396,   396,   -46,   -46,   -46,  1032,  1032,   396,   396,   179, -     471,   471,   -46,   -46,  1032,  1032,  1032,  -221,  -221,  1032, -      92,  -221,  1032,  1032,  1032,  1032,   790,   790,  1032,  1032, -      92,  1032,  -221,  1032,  1032,  -221,  -221,     6,  -221,  -221, -     638,  1032,  -221,   -60,  1032,  1032,   -60,    92,   490,    70, -     790,   490,  -221,  -221,    94,    28,    28,   -60,  -221,  -221, -      90,   790,  1032,    -1,   -15,  -221,    97,  -221,  -221,    28, -      78,  1032,  -221,    91,  -221,    98,  -221,  -221,    98,  -221, -     823,  -221,   490,   490,  -221,  -221,  -221,   490,  -221,   490, -      98,    98,  -221,   823,   638,  -221,    77,    83,   415,   490, -      93,   100,  -221,   101,    87,  -221,  -221,  -221,  -221,  -221, -     102,    96,    99,   103,   -11,  -221,   638,  -221,   565,   104, -    -221,  -221,  -221,   490,  -221,  -221,  -221,  -221,  -221 +     261,   -53,  -228,  -228,   760,  -228,  -228,   760,   760,   760, +    1103,  -228,  -228,     9,    32,   680,  -228,    33,   760,   -17, +      94,    38,    41,    44,   760,   726,    50,   760,   760,   760, +      53,    58,   760,   760,   760,     4,  -228,     5,  -228,  -228, +    -228,    -8,     6,   796,   760,  1075,  -228,  -228,  -228,  -228, +    -228,  -228,  -228,    -1,   760,  -228,  1075,  1075,  1075,  1075, +      -3,   760,   760,  -228,  -228,     8,   760,  -228,   760,  -228, +      63,  -228,  1075,    31,  -228,  -228,   817,    74,  -228,   -38, +     760,   -33,    61,  -228,  -228,   935,  -228,    31,  -228,  -228, +      16,   -52,   850,   963,  -228,   760,   -52,   -52,  1019,  -228, +     336,   796,   760,   796,    67,  1047,  1075,   760,   760,   760, +     760,   760,   760,   760,   760,   760,   760,   760,   760,   760, +     760,   760,   760,   760,   817,   760,   -61,    -3,    96,  1075, +    1075,   760,  -228,  -228,   101,   760,   760,  -228,   760,   760, +     907,   760,   760,  -228,  -228,   760,  -228,   106,   760,   760, +     760,   760,  -228,    -3,  -228,  -228,    42,  1075,    43,   991, +     -53,   760,  -228,   387,   387,   387,   -52,   -52,   -52,  1075, +    1075,   387,   387,    57,    30,    30,   -52,   -52,  1075,  1075, +    1075,  -228,  -228,  1075,   110,  -228,  1075,  1075,  1075,  1075, +     760,   760,  1075,  1075,   110,  1075,  -228,  1075,   879,  1075, +    1075,  -228,  -228,    -7,  -228,  -228,   626,  1075,  -228,   -62, +    1075,  1075,   -62,   760,   110,   481,    87,   760,   481,  -228, +    -228,   113,    45,    45,  1075,   -62,  -228,  -228,   114,   760, +    1075,    -6,    12,  -228,   120,  -228,  -228,    45,   105,  1075, +    -228,   115,  -228,   126,  -228,  -228,   126,  -228,   796,  -228, +     481,   481,  -228,  -228,  -228,   481,  -228,   481,   126,   126, +    -228,   796,   626,  -228,   125,   132,   406,   481,   149,   150, +    -228,   152,   137,  -228,  -228,  -228,  -228,  -228,   154,   112, +     155,   159,   -18,  -228,   626,  -228,   556,   158,  -228,  -228, +    -228,   481,  -228,  -228,  -228,  -228,  -228  };  /* YYPGOTO[NTERM-NUM].  */  static const yytype_int16 yypgoto[] =  { -    -221,  -221,     9,    35,     2,  -194,     0,  -221,  -221,  -221, -     -90,  -220,  -111,   -72,  -221,  -221,  -221,  -214,   -10,   -13, -    -190,  -221,    43,     3,  -221,  -221,  -221,   116,   -17,  -221, -    -221,  -221,  -221,  -221,  -221,  -173,  -197,  -221,   -48 +    -228,  -228,    14,   100,     2,  -199,     0,  -228,  -228,  -228, +     -31,  -227,   -56,   -77,  -228,  -228,  -228,  -225,    -9,   -25, +    -195,  -228,    47,     3,  -228,  -228,  -228,   178,    -5,  -228, +    -228,  -228,  -228,  -228,  -228,  -171,  -189,  -228,   -49  };  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If @@ -835,275 +844,286 @@ static const yytype_int16 yypgoto[] =  #define YYTABLE_NINF -64  static const yytype_int16 yytable[] =  { -      38,    61,    36,    45,    97,   -10,   212,   136,    87,   211, -      51,   236,   124,   125,   139,   -53,   -53,   206,   255,   228, -     111,   253,   112,    50,    76,    77,   233,   152,   214,   154, -     209,   255,   244,   237,   217,    62,   253,   242,   243,   137, -     120,   121,   247,    98,   249,   149,   140,   234,    55,    50, -     210,    56,    57,    58,   258,   130,   259,    63,    71,   177, -     265,    75,   123,    74,    99,    78,    79,    84,    71,   144, -      90,    91,   -53,    80,    94,    95,    96,    67,    81,    69, -      82,    83,   284,    88,   283,   103,   104,    50,   -10,    92, -      93,   100,    60,   135,   129,   123,   122,   141,    38,   126, -      36,    45,   145,    58,    58,   178,   156,   181,   127,   192, -     128,   196,   198,   202,   221,   225,   226,   230,   241,   245, -     271,   180,   138,   248,   236,   266,   268,   272,   273,   279, -     274,   281,   190,   151,   238,   282,    58,   280,   195,   262, -     197,    86,   103,   153,   155,   286,   200,     0,   159,   160, -     161,   162,   163,   164,   165,   166,   167,   168,   169,   170, -     171,   172,   173,   174,   175,   199,   176,     0,   257,     0, -       0,     0,   179,     0,     0,     0,   182,   183,     0,   184, -     185,   264,   188,   189,     0,     0,   191,     0,     0,   193, -     194,     0,     0,     0,     0,   220,     0,     0,   223,   224, -     201,     0,     0,     0,     0,     0,     0,     0,     0,   232, -       0,     0,   215,   235,     0,   216,     0,     0,   246,     0, -       0,     0,     0,     0,     0,   256,   229,   254,     0,   204, -     205,     0,     0,     0,   260,     0,   261,   263,     0,     0, -       0,   108,   109,     0,   110,   111,   270,   112,     0,     0, -       0,     0,   275,   222,   277,     0,   276,   116,   117,   118, -     119,     0,     0,     0,   231,   120,   121,    -6,     1,     0, -     287,     0,   288,     0,     0,     0,     0,     2,   285,     3, -       4,     5,     6,   103,     7,     8,     9,    10,    11,    12, -       0,     0,     0,     0,     0,    13,   103,    14,    15,    16, -       0,     0,    17,     0,     0,     0,     0,    18,    19,    20, -       0,     0,    21,     0,     0,     0,    22,    23,    24,    25, -       0,     0,    26,     0,     0,     0,     0,     0,     0,     0, -       0,    27,     0,     0,     0,     0,     0,     0,    28,     0, -       0,    29,    30,     0,     0,    31,    32,     0,     0,     0, -      -6,    33,     2,     0,     3,     4,     5,     6,     0,     7, -       8,     9,    10,    11,    12,     0,     0,     0,     0,     0, -      13,     0,    14,    15,    16,     0,     0,    17,     0,     0, -       0,     0,    18,    19,    20,     0,     0,    21,     0,     0, -       0,    22,    23,    24,    25,     0,     0,    26,     0,     0, -       0,     0,     0,     0,     0,     0,    27,     0,     0,     0, -       0,     0,     0,    28,     0,     0,    29,    30,     0,     0, -      31,    32,     0,     0,     0,     2,    33,     3,     4,     5, -       6,     0,     7,     8,     9,    10,    52,    12,     0,     0, -       0,     0,   269,    13,     0,    14,    15,    16,     0,     0, -       0,     0,     0,     0,     0,    18,    19,    20,   108,   109, -      21,   110,   111,     0,   112,     0,    24,    25,     0,     0, -      26,     0,     0,   115,   116,   117,   118,   119,     0,    27, -       0,     0,   120,   121,     0,     0,    28,     0,     0,     0, -      30,     0,     0,    31,    32,     0,     0,     0,    50,    33, -       2,     0,     3,     4,     5,     6,     0,     7,     8,     9, -      10,    52,    12,     0,     0,     0,     0,     0,    13,     0, -      14,    15,    16,     0,     0,     0,     0,     0,     0,     0, -      18,    19,    20,   108,   109,    21,   110,   111,     0,   112, -       0,    24,    25,     0,     0,    26,     0,     0,     0,     0, -       0,   118,   119,     0,    27,     0,     0,   120,   121,     0, -       0,    28,     0,     0,     0,    30,     0,     0,    31,    32, -       0,     0,     0,    50,    33,     2,     0,     3,     4,     5, -       6,     0,     7,     8,     9,    10,    52,    12,     0,     0, -       0,     0,     0,    13,     0,    14,    15,    16,     0,     0, -       0,     0,     0,     0,     0,    18,    19,    20,     0,     0, -      21,     0,     0,     0,     0,     0,    24,    25,     0,     0, -      26,     0,     0,     0,     0,     0,     0,     0,     0,    27, -       0,     0,     0,     0,     0,     0,    28,     0,     0,     0, -      30,     0,     0,    31,    32,     0,     0,     0,     2,    33, -       3,     4,     5,     6,     0,     7,     8,     9,    10,    52, -      12,     0,     0,     0,     0,     0,    13,     0,    14,    15, -       0,     0,     0,     0,     0,     0,     0,     0,    18,     0, -      20,     0,     0,     0,     0,     0,     0,     0,     0,    24, -      25,     0,     0,    26,     0,     0,     0,     0,     0,     0, -       0,     0,    27,     0,     0,     0,     0,     0,     0,    28, -       0,     0,     0,    30,     0,     0,    31,    32,     0,     0, -       0,     2,    33,     3,     4,     5,     6,     0,     7,     0, -       0,     0,    52,    12,     0,     0,     0,     0,     0,     0, -      65,     0,     0,     0,     0,    66,     0,    67,    68,    69, -      70,    53,     0,    20,     0,     2,     0,     3,     4,     5, -       6,     0,     7,     0,     0,     0,    52,    12,     0,     0, -       0,     0,     0,     0,    65,    27,     0,     0,     0,     0, -       0,    67,    28,    69,     0,    53,     0,    20,     0,    31, -      32,     0,     0,     0,     0,    33,     0,     0,    85,     0, -       2,     0,     3,     4,     5,     6,     0,     7,     0,    27, -       0,    52,    12,     0,     0,     0,    28,     0,     0,     0, -       0,     0,     0,    31,    32,     0,     0,     0,     0,    33, -      53,     0,    20,     2,     0,     3,     4,     5,     6,     0, -       7,     0,     0,     0,    52,    12,     0,     0,     0,     0, +      39,    62,    37,    46,    99,   -10,   138,   219,   -53,   -53, +     218,   141,   126,   127,   113,    52,   114,   216,   261,   263, +      88,   241,    51,   212,   156,   181,   158,   221,   125,    77, +      78,    51,   263,   261,   236,   122,   123,   217,   244,   139, +     250,   251,   242,   225,   142,   255,   153,   257,   252,   100, +      63,    56,    64,    75,    57,    58,    59,   266,    82,   267, +     245,    83,    72,   273,    84,    76,   -53,    68,   132,    70, +      89,    85,    72,    94,    91,    92,    93,   101,    95,    96, +      97,    98,   146,   102,    61,   292,   125,   291,    51,   -10, +     105,   106,   110,   111,   137,   112,   113,   128,   114,   131, +      39,   124,    37,    46,   143,   147,    79,    80,    59,    59, +     160,   120,   121,   129,    81,   130,   182,   122,   123,   110, +     111,   185,   112,   113,   184,   114,   196,   140,   202,   204, +     208,   229,   203,   233,   234,   194,   118,   119,   120,   121, +     249,   238,    59,   201,   122,   123,   253,   256,   105,   157, +     159,   206,   244,   288,   163,   164,   165,   166,   167,   168, +     169,   170,   171,   172,   173,   174,   175,   176,   177,   178, +     179,   265,   180,   274,   205,   276,   279,   280,   183,   281, +     282,   287,   186,   187,   272,   188,   189,   289,   192,   193, +     228,   290,   195,   231,   232,   197,   198,   199,   200,   294, +     155,   246,   270,    87,     0,   240,     0,     0,   207,     0, +       0,     0,     0,     0,   254,     0,     0,     0,     0,     0, +       0,   264,   243,   222,     0,     0,   223,     0,     0,     0, +     268,     0,   269,   271,     0,     0,   262,   210,   211,   237, +       0,     0,   278,     0,     0,     0,     0,     0,   283,     0, +     285,     0,     0,     0,     0,     0,     0,     0,     0,     0, +     224,    -6,     1,     0,   230,   284,   295,     0,   296,     0, +       0,     0,     2,     3,     4,     5,   239,     6,     7,     8, +       9,    10,    11,     0,    12,     0,   293,     0,     0,    13, +       0,    14,    15,    16,     0,   105,    17,     0,     0,     0, +       0,    18,    19,    20,     0,     0,    21,     0,   105,     0, +      22,    23,    24,    25,     0,     0,    26,     0,     0,     0, +       0,     0,     0,     0,     0,    27,     0,     0,     0,     0, +       0,     0,    28,    29,     0,     0,    30,    31,     0,     0, +      32,    33,     0,     0,     0,    -6,    34,     2,     3,     4, +       5,     0,     6,     7,     8,     9,    10,    11,     0,    12, +       0,     0,     0,     0,    13,     0,    14,    15,    16,     0, +       0,    17,     0,     0,     0,     0,    18,    19,    20,     0, +       0,    21,     0,     0,     0,    22,    23,    24,    25,     0, +       0,    26,     0,     0,     0,     0,     0,     0,     0,     0, +      27,     0,     0,     0,     0,     0,     0,    28,    29,     0, +       0,    30,    31,     0,     0,    32,    33,     2,     3,     4, +       5,    34,     6,     7,     8,     9,    53,    11,     0,    12, +       0,     0,     0,   277,    13,     0,    14,    15,    16,     0, +       0,     0,     0,     0,     0,     0,    18,    19,    20,   110, +     111,    21,   112,   113,     0,   114,     0,    24,    25,     0, +       0,    26,     0,     0,     0,   117,   118,   119,   120,   121, +      27,     0,     0,     0,   122,   123,     0,    28,    29,     0, +       0,     0,    31,     0,     0,    32,    33,     0,     0,     0, +      51,    34,     2,     3,     4,     5,     0,     6,     7,     8, +       9,    53,    11,     0,    12,     0,     0,     0,     0,    13, +       0,    14,    15,    16,     0,     0,     0,     0,     0,     0, +       0,    18,    19,    20,     0,     0,    21,     0,     0,     0, +       0,     0,    24,    25,     0,     0,    26,     0,     0,     0, +       0,     0,     0,     0,     0,    27,     0,     0,     0,     0, +       0,     0,    28,    29,     0,     0,     0,    31,     0,     0, +      32,    33,     0,     0,     0,    51,    34,     2,     3,     4, +       5,     0,     6,     7,     8,     9,    53,    11,     0,    12, +       0,     0,     0,     0,    13,     0,    14,    15,    16,     0, +       0,     0,     0,     0,     0,     0,    18,    19,    20,     0, +       0,    21,     0,     0,     0,     0,     0,    24,    25,     0, +       0,    26,     0,     0,     0,     0,     0,     0,     0,     0, +      27,     0,     0,     0,     0,     0,     0,    28,    29,     0, +       0,     0,    31,     0,     0,    32,    33,     2,     3,     4, +       5,    34,     6,     7,     8,     9,    53,    11,     0,    12, +       0,     0,     0,     0,    13,     0,    14,    15,     0,     0, +       0,     0,     0,     0,     0,     0,    18,     0,    20,     0, +       0,     0,     0,     0,     0,     0,     0,    24,    25,     0, +       0,    26,     0,     0,     0,     0,     0,     0,     0,     0, +      27,     2,     3,     4,     5,     0,     6,    28,    29,     0, +      53,    11,    31,    12,     0,    32,    33,     0,     0,    66, +       0,    34,     0,     0,    67,     0,    68,    69,    70,    71, +      54,     0,    20,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     2,     3,     4, +       5,     0,     6,     0,    27,     0,    53,    11,     0,    12, +       0,    28,    29,     0,     0,    66,     0,     0,     0,    32, +      33,     0,    68,     0,    70,    34,    54,     0,    20,     0, +       0,     2,     3,     4,     5,     0,     6,     0,     0,    86, +      53,    11,     0,    12,     0,     0,     0,     0,     0,     0, +      27,     0,     0,     0,     0,     0,     0,    28,    29,     0, +      54,     0,    20,     0,     0,    32,    33,     2,     3,     4, +       5,    34,     6,     0,     0,     0,    53,    11,     0,    12,         0,     0,     0,     0,    27,     0,     0,     0,     0,     0, -       0,    28,     0,    53,     0,    20,     0,     0,    31,    32, -       0,     0,     0,     0,    33,     0,   132,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,    27,     0,     0, -       0,     0,     0,     0,    28,     0,     0,     0,     0,   105, -     106,    31,    32,     0,   107,   108,   109,   101,   110,   133, -     134,   112,   113,   114,   186,     0,     0,     0,     0,     0, -     115,   116,   117,   118,   119,     0,   105,   106,     0,   120, -     121,   107,   108,   109,     0,   110,   111,     0,   112,   113, -     114,     0,     0,   143,     0,     0,   187,   115,   116,   117, -     118,   119,     0,   105,   106,     0,   120,   121,   107,   108, -     109,     0,   110,   111,     0,   112,   113,   114,     0,     0, -       0,     0,     0,     0,   115,   116,   117,   118,   119,     0, -     105,   106,     0,   120,   121,   107,   108,   109,     0,   110, -     111,     0,   112,   113,   114,     0,   146,   147,     0,     0, -       0,   115,   116,   117,   118,   119,     0,   105,   106,     0, -     120,   121,   107,   108,   109,     0,   110,   111,     0,   112, -     113,   114,     0,     0,     0,     0,     0,   157,   115,   116, -     117,   118,   119,     0,   105,   106,   150,   120,   121,   107, -     108,   109,     0,   110,   111,     0,   112,   113,   114,     0, -       0,     0,     0,     0,     0,   115,   116,   117,   118,   119, -       0,   105,   106,   150,   120,   121,   107,   108,   109,     0, -     110,   111,     0,   112,   113,   114,     0,     0,     0,     0, -       0,   157,   115,   116,   117,   118,   119,     0,   105,   106, -       0,   120,   121,   107,   108,   109,     0,   110,   111,     0, -     112,   113,   114,     0,     0,     0,     0,     0,     0,   115, -     116,   117,   118,   119,     0,   -63,   -63,     0,   120,   121, -     -63,   -63,   -63,     0,   -63,   -63,     0,   -63,   -63,   -63, -       0,     0,     0,     0,     0,     0,   -63,     0,     0,   -63, -     -63,     0,     0,    60,     0,   -63,   -63 +       0,    28,    29,     0,     0,     0,    54,     0,    20,    32, +      33,     0,     0,     0,     0,    34,     0,     0,     0,     0, +     134,     0,     0,     0,     0,     0,     0,     0,     0,     0, +      27,     0,     0,     0,     0,     0,     0,    28,    29,     0, +       0,     0,     0,   107,   108,    32,    33,     0,   109,   110, +     111,   103,   112,   135,   136,   114,   115,   116,   148,     0, +       0,     0,     0,     0,   149,   117,   118,   119,   120,   121, +       0,     0,     0,     0,   122,   123,   107,   108,     0,     0, +       0,   109,   110,   111,     0,   112,   113,   213,   114,   115, +     116,     0,     0,     0,     0,     0,     0,     0,   117,   118, +     119,   120,   121,     0,     0,   107,   108,   122,   123,     0, +     109,   110,   111,     0,   112,   113,     0,   114,   115,   116, +       0,   190,     0,     0,     0,     0,     0,   117,   118,   119, +     120,   121,     0,   107,   108,     0,   122,   123,   109,   110, +     111,     0,   112,   113,     0,   114,   115,   116,     0,     0, +       0,   145,     0,     0,   191,   117,   118,   119,   120,   121, +       0,   107,   108,     0,   122,   123,   109,   110,   111,     0, +     112,   113,     0,   114,   115,   116,     0,     0,     0,     0, +       0,     0,     0,   117,   118,   119,   120,   121,     0,   107, +     108,     0,   122,   123,   109,   110,   111,     0,   112,   113, +       0,   114,   115,   116,     0,     0,   150,   151,     0,     0, +       0,   117,   118,   119,   120,   121,     0,   107,   108,     0, +     122,   123,   109,   110,   111,     0,   112,   113,     0,   114, +     115,   116,     0,     0,     0,     0,     0,     0,   161,   117, +     118,   119,   120,   121,     0,   107,   108,   154,   122,   123, +     109,   110,   111,     0,   112,   113,     0,   114,   115,   116, +       0,     0,     0,     0,     0,     0,     0,   117,   118,   119, +     120,   121,     0,   107,   108,   154,   122,   123,   109,   110, +     111,     0,   112,   113,     0,   114,   115,   116,     0,     0, +       0,     0,     0,     0,   161,   117,   118,   119,   120,   121, +       0,   107,   108,     0,   122,   123,   109,   110,   111,     0, +     112,   113,     0,   114,   115,   116,     0,     0,     0,     0, +       0,     0,     0,   117,   118,   119,   120,   121,     0,   -63, +     -63,     0,   122,   123,   -63,   -63,   -63,     0,   -63,   -63, +       0,   -63,   -63,   -63,     0,     0,     0,     0,     0,     0, +       0,   -63,     0,     0,   -63,   -63,     0,     0,    61,     0, +     -63,   -63  };  static const yytype_int16 yycheck[] =  { -       0,    11,     0,     0,     0,     0,   200,    44,    25,   199, -       1,    26,    60,    61,    44,    26,    27,   190,   238,   216, -      66,   235,    68,    83,    46,    47,    27,    99,    88,   101, -      24,   251,   229,    48,   207,    41,   250,   227,   228,    76, -      86,    87,   232,    34,   234,    93,    76,    48,     5,    83, -      44,     8,     9,    10,   244,    72,   246,    21,    15,    85, -     254,    18,    88,    21,    84,    13,    14,    24,    25,    86, -      27,    28,    83,    21,    31,    32,    33,    36,    21,    38, -      21,    21,   276,    21,   274,    42,    43,    83,    83,    21, -      21,    76,    84,    21,    36,    88,    53,    43,    98,    88, -      98,    98,    88,    60,    61,    21,    43,    21,    65,    21, -      67,    85,    85,    21,    44,    21,    88,    27,    21,    41, -      27,   131,    79,    32,    26,    48,    43,    27,    27,    27, -      43,    32,   142,    98,   224,    32,    93,    41,   148,   250, -     153,    25,    99,   100,   101,    41,   156,    -1,   105,   106, -     107,   108,   109,   110,   111,   112,   113,   114,   115,   116, -     117,   118,   119,   120,   121,   156,   123,    -1,   240,    -1, -      -1,    -1,   129,    -1,    -1,    -1,   133,   134,    -1,   136, -     137,   253,   139,   140,    -1,    -1,   143,    -1,    -1,   146, -     147,    -1,    -1,    -1,    -1,   208,    -1,    -1,   211,   212, -     157,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   222, -      -1,    -1,   203,   223,    -1,   206,    -1,    -1,   231,    -1, -      -1,    -1,    -1,    -1,    -1,   238,   217,   237,    -1,   186, -     187,    -1,    -1,    -1,   247,    -1,   249,   250,    -1,    -1, -      -1,    62,    63,    -1,    65,    66,   259,    68,    -1,    -1, -      -1,    -1,   265,   210,   267,    -1,   266,    78,    79,    80, -      81,    -1,    -1,    -1,   221,    86,    87,     0,     1,    -1, -     283,    -1,   285,    -1,    -1,    -1,    -1,    10,   278,    12, -      13,    14,    15,   240,    17,    18,    19,    20,    21,    22, -      -1,    -1,    -1,    -1,    -1,    28,   253,    30,    31,    32, -      -1,    -1,    35,    -1,    -1,    -1,    -1,    40,    41,    42, -      -1,    -1,    45,    -1,    -1,    -1,    49,    50,    51,    52, -      -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    64,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1, -      -1,    74,    75,    -1,    -1,    78,    79,    -1,    -1,    -1, -      83,    84,    10,    -1,    12,    13,    14,    15,    -1,    17, -      18,    19,    20,    21,    22,    -1,    -1,    -1,    -1,    -1, -      28,    -1,    30,    31,    32,    -1,    -1,    35,    -1,    -1, -      -1,    -1,    40,    41,    42,    -1,    -1,    45,    -1,    -1, -      -1,    49,    50,    51,    52,    -1,    -1,    55,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1, -      -1,    -1,    -1,    71,    -1,    -1,    74,    75,    -1,    -1, -      78,    79,    -1,    -1,    -1,    10,    84,    12,    13,    14, -      15,    -1,    17,    18,    19,    20,    21,    22,    -1,    -1, -      -1,    -1,    27,    28,    -1,    30,    31,    32,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    40,    41,    42,    62,    63, -      45,    65,    66,    -1,    68,    -1,    51,    52,    -1,    -1, -      55,    -1,    -1,    77,    78,    79,    80,    81,    -1,    64, -      -1,    -1,    86,    87,    -1,    -1,    71,    -1,    -1,    -1, -      75,    -1,    -1,    78,    79,    -1,    -1,    -1,    83,    84, -      10,    -1,    12,    13,    14,    15,    -1,    17,    18,    19, -      20,    21,    22,    -1,    -1,    -1,    -1,    -1,    28,    -1, -      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      40,    41,    42,    62,    63,    45,    65,    66,    -1,    68, -      -1,    51,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1, -      -1,    80,    81,    -1,    64,    -1,    -1,    86,    87,    -1, -      -1,    71,    -1,    -1,    -1,    75,    -1,    -1,    78,    79, -      -1,    -1,    -1,    83,    84,    10,    -1,    12,    13,    14, -      15,    -1,    17,    18,    19,    20,    21,    22,    -1,    -1, -      -1,    -1,    -1,    28,    -1,    30,    31,    32,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    40,    41,    42,    -1,    -1, -      45,    -1,    -1,    -1,    -1,    -1,    51,    52,    -1,    -1, -      55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64, -      -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1, -      75,    -1,    -1,    78,    79,    -1,    -1,    -1,    10,    84, -      12,    13,    14,    15,    -1,    17,    18,    19,    20,    21, -      22,    -1,    -1,    -1,    -1,    -1,    28,    -1,    30,    31, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    -1, -      42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51, -      52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    64,    -1,    -1,    -1,    -1,    -1,    -1,    71, -      -1,    -1,    -1,    75,    -1,    -1,    78,    79,    -1,    -1, -      -1,    10,    84,    12,    13,    14,    15,    -1,    17,    -1, -      -1,    -1,    21,    22,    -1,    -1,    -1,    -1,    -1,    -1, -      29,    -1,    -1,    -1,    -1,    34,    -1,    36,    37,    38, -      39,    40,    -1,    42,    -1,    10,    -1,    12,    13,    14, -      15,    -1,    17,    -1,    -1,    -1,    21,    22,    -1,    -1, -      -1,    -1,    -1,    -1,    29,    64,    -1,    -1,    -1,    -1, -      -1,    36,    71,    38,    -1,    40,    -1,    42,    -1,    78, -      79,    -1,    -1,    -1,    -1,    84,    -1,    -1,    53,    -1, -      10,    -1,    12,    13,    14,    15,    -1,    17,    -1,    64, -      -1,    21,    22,    -1,    -1,    -1,    71,    -1,    -1,    -1, -      -1,    -1,    -1,    78,    79,    -1,    -1,    -1,    -1,    84, -      40,    -1,    42,    10,    -1,    12,    13,    14,    15,    -1, -      17,    -1,    -1,    -1,    21,    22,    -1,    -1,    -1,    -1, +       0,    10,     0,     0,     0,     0,    44,   206,    26,    27, +     205,    44,    61,    62,    66,     1,    68,    24,   243,   246, +      25,    27,    84,   194,   101,    86,   103,    89,    89,    46, +      47,    84,   259,   258,   223,    87,    88,    44,    26,    77, +     235,   236,    48,   214,    77,   240,    95,   242,   237,    35, +      41,     4,    20,    20,     7,     8,     9,   252,    20,   254, +      48,    20,    15,   262,    20,    18,    84,    36,    73,    38, +      20,    24,    25,    20,    27,    28,    29,    85,    20,    32, +      33,    34,    87,    77,    85,   284,    89,   282,    84,    84, +      43,    44,    62,    63,    20,    65,    66,    89,    68,    36, +     100,    54,   100,   100,    43,    89,    12,    13,    61,    62, +      43,    81,    82,    66,    20,    68,    20,    87,    88,    62, +      63,    20,    65,    66,   133,    68,    20,    80,    86,    86, +      20,    44,   157,    20,    89,   144,    79,    80,    81,    82, +      20,    27,    95,   152,    87,    88,    41,    32,   101,   102, +     103,   160,    26,    41,   107,   108,   109,   110,   111,   112, +     113,   114,   115,   116,   117,   118,   119,   120,   121,   122, +     123,   248,   125,    48,   160,    43,    27,    27,   131,    27, +      43,    27,   135,   136,   261,   138,   139,    32,   141,   142, +     215,    32,   145,   218,   219,   148,   149,   150,   151,    41, +     100,   232,   258,    25,    -1,   230,    -1,    -1,   161,    -1, +      -1,    -1,    -1,    -1,   239,    -1,    -1,    -1,    -1,    -1, +      -1,   246,   231,   209,    -1,    -1,   212,    -1,    -1,    -1, +     255,    -1,   257,   258,    -1,    -1,   245,   190,   191,   225, +      -1,    -1,   267,    -1,    -1,    -1,    -1,    -1,   273,    -1, +     275,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +     213,     0,     1,    -1,   217,   274,   291,    -1,   293,    -1, +      -1,    -1,    11,    12,    13,    14,   229,    16,    17,    18, +      19,    20,    21,    -1,    23,    -1,   286,    -1,    -1,    28, +      -1,    30,    31,    32,    -1,   248,    35,    -1,    -1,    -1, +      -1,    40,    41,    42,    -1,    -1,    45,    -1,   261,    -1, +      49,    50,    51,    52,    -1,    -1,    55,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1, +      -1,    -1,    71,    72,    -1,    -1,    75,    76,    -1,    -1, +      79,    80,    -1,    -1,    -1,    84,    85,    11,    12,    13, +      14,    -1,    16,    17,    18,    19,    20,    21,    -1,    23, +      -1,    -1,    -1,    -1,    28,    -1,    30,    31,    32,    -1, +      -1,    35,    -1,    -1,    -1,    -1,    40,    41,    42,    -1, +      -1,    45,    -1,    -1,    -1,    49,    50,    51,    52,    -1, +      -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      64,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    -1, +      -1,    75,    76,    -1,    -1,    79,    80,    11,    12,    13, +      14,    85,    16,    17,    18,    19,    20,    21,    -1,    23, +      -1,    -1,    -1,    27,    28,    -1,    30,    31,    32,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,    62, +      63,    45,    65,    66,    -1,    68,    -1,    51,    52,    -1, +      -1,    55,    -1,    -1,    -1,    78,    79,    80,    81,    82, +      64,    -1,    -1,    -1,    87,    88,    -1,    71,    72,    -1, +      -1,    -1,    76,    -1,    -1,    79,    80,    -1,    -1,    -1, +      84,    85,    11,    12,    13,    14,    -1,    16,    17,    18, +      19,    20,    21,    -1,    23,    -1,    -1,    -1,    -1,    28, +      -1,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    40,    41,    42,    -1,    -1,    45,    -1,    -1,    -1, +      -1,    -1,    51,    52,    -1,    -1,    55,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1, +      -1,    -1,    71,    72,    -1,    -1,    -1,    76,    -1,    -1, +      79,    80,    -1,    -1,    -1,    84,    85,    11,    12,    13, +      14,    -1,    16,    17,    18,    19,    20,    21,    -1,    23, +      -1,    -1,    -1,    -1,    28,    -1,    30,    31,    32,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,    -1, +      -1,    45,    -1,    -1,    -1,    -1,    -1,    51,    52,    -1, +      -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      64,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    -1, +      -1,    -1,    76,    -1,    -1,    79,    80,    11,    12,    13, +      14,    85,    16,    17,    18,    19,    20,    21,    -1,    23, +      -1,    -1,    -1,    -1,    28,    -1,    30,    31,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    40,    -1,    42,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    52,    -1, +      -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      64,    11,    12,    13,    14,    -1,    16,    71,    72,    -1, +      20,    21,    76,    23,    -1,    79,    80,    -1,    -1,    29, +      -1,    85,    -1,    -1,    34,    -1,    36,    37,    38,    39, +      40,    -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    11,    12,    13, +      14,    -1,    16,    -1,    64,    -1,    20,    21,    -1,    23, +      -1,    71,    72,    -1,    -1,    29,    -1,    -1,    -1,    79, +      80,    -1,    36,    -1,    38,    85,    40,    -1,    42,    -1, +      -1,    11,    12,    13,    14,    -1,    16,    -1,    -1,    53, +      20,    21,    -1,    23,    -1,    -1,    -1,    -1,    -1,    -1, +      64,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    -1, +      40,    -1,    42,    -1,    -1,    79,    80,    11,    12,    13, +      14,    85,    16,    -1,    -1,    -1,    20,    21,    -1,    23,        -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1,    -1, -      -1,    71,    -1,    40,    -1,    42,    -1,    -1,    78,    79, -      -1,    -1,    -1,    -1,    84,    -1,    33,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    -1,    -1, -      -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    56, -      57,    78,    79,    -1,    61,    62,    63,    84,    65,    66, -      67,    68,    69,    70,    44,    -1,    -1,    -1,    -1,    -1, -      77,    78,    79,    80,    81,    -1,    56,    57,    -1,    86, -      87,    61,    62,    63,    -1,    65,    66,    -1,    68,    69, -      70,    -1,    -1,    46,    -1,    -1,    76,    77,    78,    79, -      80,    81,    -1,    56,    57,    -1,    86,    87,    61,    62, +      -1,    71,    72,    -1,    -1,    -1,    40,    -1,    42,    79, +      80,    -1,    -1,    -1,    -1,    85,    -1,    -1,    -1,    -1, +      33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      64,    -1,    -1,    -1,    -1,    -1,    -1,    71,    72,    -1, +      -1,    -1,    -1,    56,    57,    79,    80,    -1,    61,    62, +      63,    85,    65,    66,    67,    68,    69,    70,    38,    -1, +      -1,    -1,    -1,    -1,    44,    78,    79,    80,    81,    82, +      -1,    -1,    -1,    -1,    87,    88,    56,    57,    -1,    -1, +      -1,    61,    62,    63,    -1,    65,    66,    38,    68,    69, +      70,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79, +      80,    81,    82,    -1,    -1,    56,    57,    87,    88,    -1, +      61,    62,    63,    -1,    65,    66,    -1,    68,    69,    70, +      -1,    44,    -1,    -1,    -1,    -1,    -1,    78,    79,    80, +      81,    82,    -1,    56,    57,    -1,    87,    88,    61,    62,        63,    -1,    65,    66,    -1,    68,    69,    70,    -1,    -1, -      -1,    -1,    -1,    -1,    77,    78,    79,    80,    81,    -1, -      56,    57,    -1,    86,    87,    61,    62,    63,    -1,    65, -      66,    -1,    68,    69,    70,    -1,    72,    73,    -1,    -1, -      -1,    77,    78,    79,    80,    81,    -1,    56,    57,    -1, -      86,    87,    61,    62,    63,    -1,    65,    66,    -1,    68, -      69,    70,    -1,    -1,    -1,    -1,    -1,    76,    77,    78, -      79,    80,    81,    -1,    56,    57,    85,    86,    87,    61, -      62,    63,    -1,    65,    66,    -1,    68,    69,    70,    -1, -      -1,    -1,    -1,    -1,    -1,    77,    78,    79,    80,    81, -      -1,    56,    57,    85,    86,    87,    61,    62,    63,    -1, +      -1,    46,    -1,    -1,    77,    78,    79,    80,    81,    82, +      -1,    56,    57,    -1,    87,    88,    61,    62,    63,    -1,        65,    66,    -1,    68,    69,    70,    -1,    -1,    -1,    -1, -      -1,    76,    77,    78,    79,    80,    81,    -1,    56,    57, -      -1,    86,    87,    61,    62,    63,    -1,    65,    66,    -1, -      68,    69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77, -      78,    79,    80,    81,    -1,    56,    57,    -1,    86,    87, +      -1,    -1,    -1,    78,    79,    80,    81,    82,    -1,    56, +      57,    -1,    87,    88,    61,    62,    63,    -1,    65,    66, +      -1,    68,    69,    70,    -1,    -1,    73,    74,    -1,    -1, +      -1,    78,    79,    80,    81,    82,    -1,    56,    57,    -1, +      87,    88,    61,    62,    63,    -1,    65,    66,    -1,    68, +      69,    70,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78, +      79,    80,    81,    82,    -1,    56,    57,    86,    87,    88,        61,    62,    63,    -1,    65,    66,    -1,    68,    69,    70, -      -1,    -1,    -1,    -1,    -1,    -1,    77,    -1,    -1,    80, -      81,    -1,    -1,    84,    -1,    86,    87 +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    78,    79,    80, +      81,    82,    -1,    56,    57,    86,    87,    88,    61,    62, +      63,    -1,    65,    66,    -1,    68,    69,    70,    -1,    -1, +      -1,    -1,    -1,    -1,    77,    78,    79,    80,    81,    82, +      -1,    56,    57,    -1,    87,    88,    61,    62,    63,    -1, +      65,    66,    -1,    68,    69,    70,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    78,    79,    80,    81,    82,    -1,    56, +      57,    -1,    87,    88,    61,    62,    63,    -1,    65,    66, +      -1,    68,    69,    70,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    78,    -1,    -1,    81,    82,    -1,    -1,    85,    -1, +      87,    88  };  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing     symbol of state STATE-NUM.  */  static const yytype_uint8 yystos[] =  { -       0,     1,    10,    12,    13,    14,    15,    17,    18,    19, -      20,    21,    22,    28,    30,    31,    32,    35,    40,    41, -      42,    45,    49,    50,    51,    52,    55,    64,    71,    74, -      75,    78,    79,    84,    90,    92,    93,    94,    95,    96, -     103,   104,   105,   110,   111,   112,   115,   118,   119,   126, -      83,    91,    21,    40,    93,   111,   111,   111,   111,   127, -      84,   107,    41,    21,   113,    29,    34,    36,    37,    38, -      39,   111,   116,   117,    21,   111,    46,    47,    13,    14, -      21,    21,    21,    21,   111,    53,   116,   117,    21,   114, -     111,   111,    21,    21,   111,   111,   111,     0,    91,    84, -      76,    84,   102,   111,   111,    56,    57,    61,    62,    63, -      65,    66,    68,    69,    70,    77,    78,    79,    80,    81, -      86,    87,   111,    88,   127,   127,    88,   111,   111,    36, -     117,   120,    33,    66,    67,    21,    44,    76,   111,    44, -      76,    43,   121,    46,   117,    88,    72,    73,   122,   127, -      85,    92,   102,   111,   102,   111,    43,    76,   108,   111, -     111,   111,   111,   111,   111,   111,   111,   111,   111,   111, -     111,   111,   111,   111,   111,   111,   111,    85,    21,   111, -     107,    21,   111,   111,   111,   111,    44,    76,   111,   111, -     107,   111,    21,   111,   111,   107,    85,   108,    85,    91, -     107,   111,    21,   124,   111,   111,   124,   123,   109,    24, -      44,   109,    94,   112,    88,    91,    91,   124,    91,    95, -     108,    44,   111,   108,   108,    21,    88,   125,   125,    91, -      27,   111,   108,    27,    48,   107,    26,    48,    99,   100, -     106,    21,   109,   109,   125,    41,   108,   109,    32,   109, -      98,    99,   101,   106,   107,   100,   108,   102,   109,   109, -     108,   108,   101,   108,   102,    94,    48,    97,    43,    27, -     108,    27,    27,    27,    43,   108,   107,   108,   107,    27, -      41,    32,    32,   109,    94,    95,    41,   108,   108 +       0,     1,    11,    12,    13,    14,    16,    17,    18,    19, +      20,    21,    23,    28,    30,    31,    32,    35,    40,    41, +      42,    45,    49,    50,    51,    52,    55,    64,    71,    72, +      75,    76,    79,    80,    85,    91,    93,    94,    95,    96, +      97,   104,   105,   106,   111,   112,   113,   116,   119,   120, +     127,    84,    92,    20,    40,    94,   112,   112,   112,   112, +     128,    85,   108,    41,    20,   114,    29,    34,    36,    37, +      38,    39,   112,   117,   118,    20,   112,    46,    47,    12, +      13,    20,    20,    20,    20,   112,    53,   117,   118,    20, +     115,   112,   112,   112,    20,    20,   112,   112,   112,     0, +      92,    85,    77,    85,   103,   112,   112,    56,    57,    61, +      62,    63,    65,    66,    68,    69,    70,    78,    79,    80, +      81,    82,    87,    88,   112,    89,   128,   128,    89,   112, +     112,    36,   118,   121,    33,    66,    67,    20,    44,    77, +     112,    44,    77,    43,   122,    46,   118,    89,    38,    44, +      73,    74,   123,   128,    86,    93,   103,   112,   103,   112, +      43,    77,   109,   112,   112,   112,   112,   112,   112,   112, +     112,   112,   112,   112,   112,   112,   112,   112,   112,   112, +     112,    86,    20,   112,   108,    20,   112,   112,   112,   112, +      44,    77,   112,   112,   108,   112,    20,   112,   112,   112, +     112,   108,    86,   109,    86,    92,   108,   112,    20,   125, +     112,   112,   125,    38,   124,   110,    24,    44,   110,    95, +     113,    89,    92,    92,   112,   125,    92,    96,   109,    44, +     112,   109,   109,    20,    89,   126,   126,    92,    27,   112, +     109,    27,    48,   108,    26,    48,   100,   101,   107,    20, +     110,   110,   126,    41,   109,   110,    32,   110,    99,   100, +     102,   107,   108,   101,   109,   103,   110,   110,   109,   109, +     102,   109,   103,    95,    48,    98,    43,    27,   109,    27, +      27,    27,    43,   109,   108,   109,   108,    27,    41,    32, +      32,   110,    95,    96,    41,   109,   109  };  #define yyerrok		(yyerrstatus = 0) @@ -2441,151 +2461,161 @@ yyreduce:      break;    case 90: -#line 417 "engines/director/lingo/lingo-gr.y" +#line 415 "engines/director/lingo/lingo-gr.y" +    { g_lingo->code1(g_lingo->c_charOf); ;} +    break; + +  case 91: +#line 416 "engines/director/lingo/lingo-gr.y" +    { g_lingo->code1(g_lingo->c_charToOf); ;} +    break; + +  case 92: +#line 419 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_printtop); ;}      break; -  case 93: -#line 420 "engines/director/lingo/lingo-gr.y" +  case 95: +#line 422 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_exitRepeat); ;}      break; -  case 94: -#line 421 "engines/director/lingo/lingo-gr.y" +  case 96: +#line 423 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeConst(0); // Push fake value on stack  							  g_lingo->code1(g_lingo->c_procret); ;}      break; -  case 97: -#line 425 "engines/director/lingo/lingo-gr.y" +  case 99: +#line 427 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->_handlers[*(yyvsp[(1) - (2)].s)]->u.func);  		delete (yyvsp[(1) - (2)].s); ;}      break; -  case 98: -#line 428 "engines/director/lingo/lingo-gr.y" +  case 100: +#line 430 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->_handlers[*(yyvsp[(1) - (2)].s)]->u.func);  		delete (yyvsp[(1) - (2)].s); ;}      break; -  case 99: -#line 431 "engines/director/lingo/lingo-gr.y" +  case 101: +#line 433 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code2(g_lingo->c_voidpush, g_lingo->_handlers[*(yyvsp[(1) - (1)].s)]->u.func);  		delete (yyvsp[(1) - (1)].s); ;}      break; -  case 100: -#line 434 "engines/director/lingo/lingo-gr.y" +  case 102: +#line 436 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}      break; -  case 101: -#line 435 "engines/director/lingo/lingo-gr.y" +  case 103: +#line 437 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_open); ;}      break; -  case 102: -#line 436 "engines/director/lingo/lingo-gr.y" +  case 104: +#line 438 "engines/director/lingo/lingo-gr.y"      { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;}      break; -  case 103: -#line 437 "engines/director/lingo/lingo-gr.y" +  case 105: +#line 439 "engines/director/lingo/lingo-gr.y"      { Common::String s("sound-"); s += *(yyvsp[(2) - (3)].s); g_lingo->codeFunc(&s, (yyvsp[(3) - (3)].narg)); ;}      break; -  case 104: -#line 440 "engines/director/lingo/lingo-gr.y" +  case 106: +#line 442 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}      break; -  case 105: -#line 441 "engines/director/lingo/lingo-gr.y" +  case 107: +#line 443 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}      break; -  case 106: -#line 444 "engines/director/lingo/lingo-gr.y" +  case 108: +#line 446 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}      break; -  case 107: -#line 445 "engines/director/lingo/lingo-gr.y" +  case 109: +#line 447 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}      break; -  case 108: -#line 456 "engines/director/lingo/lingo-gr.y" +  case 110: +#line 458 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotoloop); ;}      break; -  case 109: -#line 457 "engines/director/lingo/lingo-gr.y" +  case 111: +#line 459 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotonext); ;}      break; -  case 110: -#line 458 "engines/director/lingo/lingo-gr.y" +  case 112: +#line 460 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotoprevious); ;}      break; -  case 111: -#line 459 "engines/director/lingo/lingo-gr.y" +  case 113: +#line 461 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeConst(1);  		g_lingo->code1(g_lingo->c_goto); ;}      break; -  case 112: -#line 462 "engines/director/lingo/lingo-gr.y" +  case 114: +#line 464 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeConst(3);  		g_lingo->code1(g_lingo->c_goto); ;}      break; -  case 113: -#line 465 "engines/director/lingo/lingo-gr.y" +  case 115: +#line 467 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeConst(2);  		g_lingo->code1(g_lingo->c_goto); ;}      break; -  case 118: -#line 478 "engines/director/lingo/lingo-gr.y" +  case 120: +#line 480 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_playdone); ;}      break; -  case 119: -#line 479 "engines/director/lingo/lingo-gr.y" +  case 121: +#line 481 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeConst(1);  		g_lingo->code1(g_lingo->c_play); ;}      break; -  case 120: -#line 482 "engines/director/lingo/lingo-gr.y" +  case 122: +#line 484 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeConst(3);  		g_lingo->code1(g_lingo->c_play); ;}      break; -  case 121: -#line 485 "engines/director/lingo/lingo-gr.y" +  case 123: +#line 487 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeConst(2);  		g_lingo->code1(g_lingo->c_play); ;}      break; -  case 122: -#line 515 "engines/director/lingo/lingo-gr.y" +  case 124: +#line 517 "engines/director/lingo/lingo-gr.y"      { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;}      break; -  case 123: -#line 516 "engines/director/lingo/lingo-gr.y" +  case 125: +#line 518 "engines/director/lingo/lingo-gr.y"      {  			g_lingo->codeConst(0); // Push fake value on stack  			g_lingo->code1(g_lingo->c_procret); @@ -2593,38 +2623,38 @@ yyreduce:  			g_lingo->_indef = false; ;}      break; -  case 124: -#line 521 "engines/director/lingo/lingo-gr.y" +  case 126: +#line 523 "engines/director/lingo/lingo-gr.y"      {  			g_lingo->codeFactory(*(yyvsp[(2) - (2)].s));  		;}      break; -  case 125: -#line 524 "engines/director/lingo/lingo-gr.y" +  case 127: +#line 526 "engines/director/lingo/lingo-gr.y"      { g_lingo->_indef = true; ;}      break; -  case 126: -#line 525 "engines/director/lingo/lingo-gr.y" +  case 128: +#line 527 "engines/director/lingo/lingo-gr.y"      {  			g_lingo->code1(g_lingo->c_procret);  			g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg) + 1, &g_lingo->_currentFactory);  			g_lingo->_indef = false; ;}      break; -  case 127: -#line 529 "engines/director/lingo/lingo-gr.y" +  case 129: +#line 531 "engines/director/lingo/lingo-gr.y"      { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;}      break; -  case 128: -#line 530 "engines/director/lingo/lingo-gr.y" +  case 130: +#line 532 "engines/director/lingo/lingo-gr.y"      { g_lingo->_ignoreMe = true; ;}      break; -  case 129: -#line 530 "engines/director/lingo/lingo-gr.y" +  case 131: +#line 532 "engines/director/lingo/lingo-gr.y"      {  				g_lingo->codeConst(0); // Push fake value on stack  				g_lingo->code1(g_lingo->c_procret); @@ -2638,33 +2668,33 @@ yyreduce:  			;}      break; -  case 130: -#line 542 "engines/director/lingo/lingo-gr.y" +  case 132: +#line 544 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 0; ;}      break; -  case 131: -#line 543 "engines/director/lingo/lingo-gr.y" +  case 133: +#line 545 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}      break; -  case 132: -#line 544 "engines/director/lingo/lingo-gr.y" +  case 134: +#line 546 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break; -  case 133: -#line 545 "engines/director/lingo/lingo-gr.y" +  case 135: +#line 547 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}      break; -  case 134: -#line 547 "engines/director/lingo/lingo-gr.y" +  case 136: +#line 549 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArgStore(); ;}      break; -  case 135: -#line 551 "engines/director/lingo/lingo-gr.y" +  case 137: +#line 553 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_call);  		g_lingo->codeString((yyvsp[(1) - (3)].s)->c_str()); @@ -2673,24 +2703,24 @@ yyreduce:  		g_lingo->code1(numpar); ;}      break; -  case 136: -#line 559 "engines/director/lingo/lingo-gr.y" +  case 138: +#line 561 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 0; ;}      break; -  case 137: -#line 560 "engines/director/lingo/lingo-gr.y" +  case 139: +#line 562 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 1; ;}      break; -  case 138: -#line 561 "engines/director/lingo/lingo-gr.y" +  case 140: +#line 563 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break;  /* Line 1267 of yacc.c.  */ -#line 2694 "engines/director/lingo/lingo-gr.cpp" +#line 2724 "engines/director/lingo/lingo-gr.cpp"        default: break;      }    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2904,6 +2934,6 @@ yyreturn:  } -#line 564 "engines/director/lingo/lingo-gr.y" +#line 566 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h index d7482bc08e..11d2db10bc 100644 --- a/engines/director/lingo/lingo-gr.h +++ b/engines/director/lingo/lingo-gr.h @@ -46,20 +46,20 @@       POINT = 262,       RECT = 263,       ARRAY = 264, -     SYMBOL = 265, -     OBJECT = 266, -     INT = 267, -     THEENTITY = 268, -     THEENTITYWITHID = 269, -     FLOAT = 270, -     BLTIN = 271, -     BLTINNOARGS = 272, -     BLTINNOARGSORONE = 273, -     BLTINONEARG = 274, -     BLTINARGLIST = 275, -     ID = 276, -     STRING = 277, -     HANDLER = 278, +     OBJECT = 265, +     INT = 266, +     THEENTITY = 267, +     THEENTITYWITHID = 268, +     FLOAT = 269, +     BLTIN = 270, +     BLTINNOARGS = 271, +     BLTINNOARGSORONE = 272, +     BLTINONEARG = 273, +     BLTINARGLIST = 274, +     ID = 275, +     STRING = 276, +     HANDLER = 277, +     SYMBOL = 278,       tDOWN = 279,       tELSE = 280,       tNLELSIF = 281, @@ -107,11 +107,12 @@       tCONCAT = 323,       tCONTAINS = 324,       tSTARTS = 325, -     tSPRITE = 326, -     tINTERSECTS = 327, -     tWITHIN = 328, -     tON = 329, -     tSOUND = 330 +     tCHAR = 326, +     tSPRITE = 327, +     tINTERSECTS = 328, +     tWITHIN = 329, +     tON = 330, +     tSOUND = 331     };  #endif  /* Tokens.  */ @@ -122,20 +123,20 @@  #define POINT 262  #define RECT 263  #define ARRAY 264 -#define SYMBOL 265 -#define OBJECT 266 -#define INT 267 -#define THEENTITY 268 -#define THEENTITYWITHID 269 -#define FLOAT 270 -#define BLTIN 271 -#define BLTINNOARGS 272 -#define BLTINNOARGSORONE 273 -#define BLTINONEARG 274 -#define BLTINARGLIST 275 -#define ID 276 -#define STRING 277 -#define HANDLER 278 +#define OBJECT 265 +#define INT 266 +#define THEENTITY 267 +#define THEENTITYWITHID 268 +#define FLOAT 269 +#define BLTIN 270 +#define BLTINNOARGS 271 +#define BLTINNOARGSORONE 272 +#define BLTINONEARG 273 +#define BLTINARGLIST 274 +#define ID 275 +#define STRING 276 +#define HANDLER 277 +#define SYMBOL 278  #define tDOWN 279  #define tELSE 280  #define tNLELSIF 281 @@ -183,11 +184,12 @@  #define tCONCAT 323  #define tCONTAINS 324  #define tSTARTS 325 -#define tSPRITE 326 -#define tINTERSECTS 327 -#define tWITHIN 328 -#define tON 329 -#define tSOUND 330 +#define tCHAR 326 +#define tSPRITE 327 +#define tINTERSECTS 328 +#define tWITHIN 329 +#define tON 330 +#define tSOUND 331 @@ -205,7 +207,7 @@ typedef union YYSTYPE  	Common::Array<double> *arr;  }  /* Line 1529 of yacc.c.  */ -#line 209 "engines/director/lingo/lingo-gr.hpp" +#line 211 "engines/director/lingo/lingo-gr.hpp"  	YYSTYPE;  # define yystype YYSTYPE /* obsolescent; will be withdrawn */  # define YYSTYPE_IS_DECLARED 1 diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index 17391c60f5..4b2af27fa1 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -77,7 +77,7 @@ void yyerror(const char *s) {  }  %token UNARY -%token CASTREF VOID VAR POINT RECT ARRAY SYMBOL OBJECT +%token CASTREF VOID VAR POINT RECT ARRAY OBJECT  %token<i> INT  %token<e> THEENTITY THEENTITYWITHID  %token<f> FLOAT @@ -87,7 +87,7 @@ void yyerror(const char *s) {  %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 tMOD -%token tAFTER tBEFORE tCONCAT tCONTAINS tSTARTS +%token tAFTER tBEFORE tCONCAT tCONTAINS tSTARTS tCHAR  %token tSPRITE tINTERSECTS tWITHIN  %token tON tSOUND @@ -412,6 +412,8 @@ expr: INT		{ $$ = g_lingo->codeConst($1); }  	| '(' expr ')'				{ $$ = $2; }  	| tSPRITE expr tINTERSECTS expr 	{ g_lingo->code1(g_lingo->c_intersects); }  	| tSPRITE expr tWITHIN expr		 	{ g_lingo->code1(g_lingo->c_within); } +	| tCHAR expr tOF expr				{ g_lingo->code1(g_lingo->c_charOf); } +	| tCHAR expr tTO expr tOF expr		{ g_lingo->code1(g_lingo->c_charToOf); }  	;  func: tPUT expr				{ g_lingo->code1(g_lingo->c_printtop); } diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp index 2e4ba95cc8..54cf786f77 100644 --- a/engines/director/lingo/lingo-lex.cpp +++ b/engines/director/lingo/lingo-lex.cpp @@ -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 64 -#define YY_END_OF_BUFFER 65 +#define YY_NUM_RULES 65 +#define YY_END_OF_BUFFER 66  /* This struct is not used in this scanner,     but its presence is necessary. */  struct yy_trans_info @@ -373,33 +373,33 @@ struct yy_trans_info  	flex_int32_t yy_verify;  	flex_int32_t yy_nxt;  	}; -static yyconst flex_int16_t yy_accept[224] = +static yyconst flex_int16_t yy_accept[227] =      {   0, -        0,    0,   65,   63,    3,   61,   61,   63,   63,   63, -       60,   60,   60,   59,   60,   60,   57,   57,   57,   57, -       57,   57,   57,   57,   57,   57,   57,   57,   57,   57, -       57,   57,   57,   57,    2,    2,    3,   61,    0,    0, -        0,    0,    0,   62,    4,   56,    1,   58,   59,   55, -       53,   54,   57,   57,   57,   57,   57,   57,   57,   57, -       57,   57,   57,   57,   21,   11,   57,   57,   57,   57, -       57,   57,   57,   32,   33,   57,   35,   57,   57,   57, -       57,   57,   57,   57,   57,   57,   47,   57,   57,    2, -        2,    0,    4,    1,   58,   57,    6,   57,   57,   57, - -       57,   57,   15,   57,   57,   57,   57,    0,   57,   57, -       57,   57,   57,   28,   57,   57,   31,   57,   57,   57, -       38,   57,   40,   57,   57,   57,   57,   57,   57,   57, -        0,   57,   57,   57,    9,   10,   14,   17,   57,   57, -       57,    0,   57,   57,   24,   25,   57,   57,   57,   30, -       34,   36,   57,   57,   57,   57,   57,    0,   46,   51, -       57,   49,   13,    5,   57,   57,   57,   18,   57,   20, -       57,   57,   26,   57,   29,   57,   57,   41,   57,   57, -       45,   45,   52,   57,    0,    7,   57,   57,   19,   57, -       57,   27,   57,   39,   48,   42,    0,   45,   50,    0, - -       57,   16,   57,   57,   57,    0,   45,   12,    8,   22, -       57,   37,    0,   45,   57,    0,    0,   23,   44,    0, -        0,   43,    0 +        0,    0,   66,   64,    3,   62,   62,   64,   64,   64, +       61,   61,   61,   60,   61,   61,   58,   58,   58,   58, +       58,   58,   58,   58,   58,   58,   58,   58,   58,   58, +       58,   58,   58,   58,    2,    2,    3,   62,    0,    0, +        0,    0,    0,   63,    4,   57,    1,   59,   60,   56, +       54,   55,   58,   58,   58,   58,   58,   58,   58,   58, +       58,   58,   58,   58,   58,   22,   12,   58,   58,   58, +       58,   58,   58,   58,   33,   34,   58,   36,   58,   58, +       58,   58,   58,   58,   58,   58,   58,   48,   58,   58, +        2,    2,    0,    4,    1,   59,   58,    6,   58,   58, + +       58,   58,   58,   58,   16,   58,   58,   58,   58,    0, +       58,   58,   58,   58,   58,   29,   58,   58,   32,   58, +       58,   58,   39,   58,   41,   58,   58,   58,   58,   58, +       58,   58,    0,   58,   58,    8,   58,   10,   11,   15, +       18,   58,   58,   58,    0,   58,   58,   25,   26,   58, +       58,   58,   31,   35,   37,   58,   58,   58,   58,   58, +        0,   47,   52,   58,   50,   14,    5,   58,   58,   58, +       19,   58,   21,   58,   58,   27,   58,   30,   58,   58, +       42,   58,   58,   46,   46,   53,   58,    0,    7,   58, +       58,   20,   58,   58,   28,   58,   40,   49,   43,    0, + +       46,   51,    0,   58,   17,   58,   58,   58,    0,   46, +       13,    9,   23,   58,   38,    0,   46,   58,    0,    0, +       24,   45,    0,    0,   44,    0      } ;  static yyconst flex_int32_t yy_ec[256] = @@ -445,65 +445,67 @@ static yyconst flex_int32_t yy_meta[64] =          5,    5,    5      } ; -static yyconst flex_int16_t yy_base[231] = +static yyconst flex_int16_t yy_base[234] =      {   0, -        0,   62,  172,  556,   66,   70,   74,   78,  160,    0, -      556,  145,  143,   54,   70,  125,   65,   67,   60,   63, -       70,   86,   71,    0,   82,   70,   85,  111,  115,  109, -       84,  128,  126,  127,  185,  189,  193,  556,  197,  158, -      202,   83,  131,  556,    0,  556,    0,  113,   95,  556, -      556,  556,    0,  112,  133,  162,  157,  182,  178,  193, -      189,  196,  199,  188,   86,    0,  187,  189,  205,  191, -      210,  188,  193,    0,    0,  208,    0,  214,  211,  199, -      206,  218,  223,  227,  245,  242,    0,  243,  231,  269, -      275,  233,    0,    0,   83,  248,    0,  246,  247,  249, - -      256,  265,    0,  257,  261,  269,  280,  296,  266,  282, -      274,  275,  286,    0,  288,  280,    0,  288,  278,  282, -        0,  301,    0,  295,  301,  297,  331,  304,  313,  303, -      323,  313,  316,  333,    0,    0,    0,    0,  323,  335, -      341,  331,  345,  332,    0,    0,  336,  337,  342,    0, -        0,    0,  343,  354,  352,  339,  341,  376,    0,    0, -      357,  355,  301,    0,  365,  367,  361,    0,  368,  556, -      370,  367,    0,  382,    0,  374,  371,    0,  386,  375, -      409,  410,    0,  385,  418,    0,  391,  382,    0,  407, -      408,    0,  395,    0,    0,    0,  433,  434,    0,  413, - -      407,    0,  424,  428,  415,  428,  450,  556,    0,    0, -      417,    0,  455,  456,  423,  468,  474,    0,  476,  442, -      480,  487,  556,  527,  529,  532,  535,  541,  546,  550 +        0,   62,  228,  553,   66,   70,   74,   78,  205,    0, +      553,  161,  156,   54,   70,  135,   65,   67,   68,   60, +       70,   86,   75,    0,   78,   76,   94,  111,  113,  118, +      106,  128,  123,  131,  185,  189,  193,  553,  197,  158, +      202,   83,  132,  553,    0,  553,    0,   95,  125,  553, +      553,  553,    0,  127,  164,  163,  194,  184,  187,  180, +      197,  193,  200,  203,  185,   90,    0,  192,  192,  209, +      195,  215,  192,  197,    0,    0,  212,    0,  217,  220, +      212,  226,  226,  226,  230,  247,  244,    0,  247,  232, +      274,  295,  236,    0,    0,   76,  261,    0,  254,  255, + +      257,  274,  273,  275,    0,  268,  269,  277,  288,  307, +      274,  293,  280,  284,  291,    0,  293,  287,    0,  295, +      285,  293,    0,  298,    0,  303,  309,  303,  347,  308, +      311,  321,  331,  318,  322,    0,  340,    0,    0,    0, +        0,  333,  337,  347,  337,  348,  335,    0,    0,  339, +      341,  351,    0,    0,    0,  348,  357,  358,  345,  346, +      382,    0,    0,  363,  361,   98,    0,  373,  371,  368, +        0,  375,  553,  377,  373,    0,  388,    0,  380,  377, +        0,  392,  381,  170,  411,    0,  389,  421,    0,  391, +      383,    0,  409,  408,    0,  396,    0,    0,    0,  442, + +      446,    0,  413,  403,    0,  420,  431,  423,  429,  452, +      553,    0,    0,  424,    0,  218,  459,  430,  467,  471, +        0,  479,  446,  483,  488,  553,  524,  526,  529,  532, +      538,  543,  547      } ; -static yyconst flex_int16_t yy_def[231] = +static yyconst flex_int16_t yy_def[234] =      {   0, -      223,    1,  223,  223,  223,  223,  223,  223,  224,  225, -      223,  223,  223,  223,  223,  223,  226,  226,  226,  226, -      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, -      226,  226,  226,  226,  223,  223,  223,  223,  223,  223, -      223,  223,  224,  223,  227,  223,  228,  223,  223,  223, -      223,  223,  226,  226,  226,  226,  226,  226,  226,  226, -      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, -      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, -      226,  226,  226,  226,  226,  226,  226,  226,  226,  223, -      223,  223,  227,  228,  223,  226,  226,  226,  226,  226, - -      226,  226,  226,  226,  226,  226,  226,  223,  226,  226, -      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, -      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, -      223,  226,  226,  226,  226,  226,  226,  226,  226,  226, -      226,  223,  226,  226,  226,  226,  226,  226,  226,  226, -      226,  226,  226,  226,  226,  226,  226,  229,  226,  226, -      226,  226,  223,  226,  226,  226,  226,  226,  226,  223, -      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, -      229,  229,  226,  226,  223,  226,  226,  226,  226,  226, -      226,  226,  226,  226,  226,  226,  223,  229,  226,  223, - -      226,  226,  226,  226,  226,  223,  229,  223,  226,  226, -      226,  226,  223,  229,  226,  230,  223,  226,  230,  223, -      223,  230,    0,  223,  223,  223,  223,  223,  223,  223 +      226,    1,  226,  226,  226,  226,  226,  226,  227,  228, +      226,  226,  226,  226,  226,  226,  229,  229,  229,  229, +      229,  229,  229,  229,  229,  229,  229,  229,  229,  229, +      229,  229,  229,  229,  226,  226,  226,  226,  226,  226, +      226,  226,  227,  226,  230,  226,  231,  226,  226,  226, +      226,  226,  229,  229,  229,  229,  229,  229,  229,  229, +      229,  229,  229,  229,  229,  229,  229,  229,  229,  229, +      229,  229,  229,  229,  229,  229,  229,  229,  229,  229, +      229,  229,  229,  229,  229,  229,  229,  229,  229,  229, +      226,  226,  226,  230,  231,  226,  229,  229,  229,  229, + +      229,  229,  229,  229,  229,  229,  229,  229,  229,  226, +      229,  229,  229,  229,  229,  229,  229,  229,  229,  229, +      229,  229,  229,  229,  229,  229,  229,  229,  229,  229, +      229,  229,  226,  229,  229,  229,  229,  229,  229,  229, +      229,  229,  229,  229,  226,  229,  229,  229,  229,  229, +      229,  229,  229,  229,  229,  229,  229,  229,  229,  229, +      232,  229,  229,  229,  229,  226,  229,  229,  229,  229, +      229,  229,  226,  229,  229,  229,  229,  229,  229,  229, +      229,  229,  229,  232,  232,  229,  229,  226,  229,  229, +      229,  229,  229,  229,  229,  229,  229,  229,  229,  226, + +      232,  229,  226,  229,  229,  229,  229,  229,  226,  232, +      226,  229,  229,  229,  229,  226,  232,  229,  233,  226, +      229,  233,  226,  226,  233,    0,  226,  226,  226,  226, +      226,  226,  226      } ; -static yyconst flex_int16_t yy_nxt[620] = +static yyconst flex_int16_t yy_nxt[617] =      {   0,          4,    5,    6,    7,    8,    9,   10,   11,   12,   13,          4,   14,   15,   11,   16,   17,   18,   19,   20,   21, @@ -513,69 +515,69 @@ static yyconst flex_int16_t yy_nxt[620] =         27,   28,   29,   30,   24,   31,   32,   33,   24,   24,         34,   24,   24,   35,   48,   49,   36,   37,   38,   38,         39,   40,   41,   41,   40,   40,   41,   41,   40,   39, -       38,   38,   39,   50,   51,   54,   56,  108,   57,   42, -      108,   58,   55,   42,   95,   59,   64,   60,   68,   65, - -       69,   62,   66,   81,   70,   48,   49,   61,   92,   67, -       54,   56,   57,   71,   42,   58,   55,   63,   42,   59, -       64,   60,   68,   65,   95,   69,   62,   66,   81,   70, -       72,   61,   92,   67,   78,   74,   44,   71,   52,   73, -       79,   63,   75,   80,   76,   96,   77,   82,   86,   88, -       89,   97,   47,   46,   87,   72,   83,   84,   78,   40, -       74,   85,   40,   73,   79,   44,   75,   80,   76,   96, -       77,  223,   82,   86,   88,   89,   97,   42,   87,  223, -       83,   84,   98,  223,   99,   85,   90,   38,   38,   91, -       91,   38,   38,   91,   37,   38,   38,   39,   39,   38, +       38,   38,   39,   50,   51,   54,   56,   96,   59,   42, +       57,  110,   55,   42,  110,   60,   58,   61,   67,  188, + +       65,   63,  188,   66,   69,   68,   96,   62,   93,   70, +       54,   56,   59,   71,   42,   57,   55,   64,   42,   60, +       58,   61,   72,   67,   65,   82,   63,   66,   69,   68, +       73,   62,   93,   75,   70,   48,   49,   44,   71,   74, +       76,   64,   77,   79,   78,   87,   72,   83,   52,   80, +       82,   88,   81,   89,   90,   73,   84,   85,   75,   40, +       97,   86,   40,   74,   76,   47,   77,   79,   78,   46, +       87,  200,   83,   80,  200,   88,   81,   42,   89,   90, +       84,   85,   98,   99,   97,   86,   91,   38,   38,   92, +       92,   38,   38,   92,   37,   38,   38,   39,   39,   38,         38,   39,   42,   40,   41,   41,   40,   98,   99,  100, -      102,  103,  104,  105,  106,  223,  107,  111,  101,  109, -      110,   42,  112,  223,  113,  116,  117,  118,  114,  119, -      120,  223,  121,  100,  102,  122,  103,  104,  105,  106, -      107,  111,  101,  109,  110,  115,   42,  112,  113,  116, -      117,  123,  118,  114,  119,  120,  121,  124,  125,  122, -      126,  127,  128,  223,  130,  131,  129,  132,  135,  115, -       90,   38,   38,   91,  133,  123,   91,   38,   38,   91, -      134,  124,  125,  136,  137,  126,  127,  128,  130,  131, -      138,  129,  132,  135,  139,  140,  141,  108,  133,  143, - -      108,  144,  185,  146,  134,  185,  147,  136,  148,  137, -      145,  149,  223,  150,  138,  151,  152,  153,  139,  140, -      154,  141,  155,  143,  156,  162,  144,  146,  157,  142, -      147,  160,  158,  148,  145,  158,  149,  150,  161,  151, -      152,  153,  163,  223,  164,  154,  155,  165,  166,  156, -      162,  167,  157,  142,  168,  160,  169,  223,  159,  170, -      171,  175,  161,  172,  173,  174,  176,  163,  164,  177, -      178,  165,  179,  166,  180,  167,  183,  158,  184,  168, -      158,  169,  159,  170,  186,  171,  175,  172,  173,  174, -      187,  176,  188,  189,  177,  178,  179,  190,  180,  191, - -      192,  183,  193,  184,  194,  195,  223,  196,  182,  186, -      197,  197,  199,  197,  197,  187,  188,  189,  201,  185, -      202,  190,  185,  191,  203,  192,  193,  204,  194,  205, -      195,  196,  182,  208,  197,  197,  199,  197,  197,  209, -      198,  200,  201,  210,  202,  211,  223,  212,  213,  203, -      215,  197,  204,  205,  197,  218,  216,  217,  208,  216, -      217,  206,  221,  209,  198,  207,  200,  223,  210,  216, -      211,  212,  216,  213,  215,  217,  223,  223,  217,  218, -      223,  222,  223,  214,  222,  206,  223,  221,  222,  207, -      223,  222,  223,  223,  223,  223,  223,  223,  223,  223, - -      223,  223,  220,  223,  223,  223,  223,  214,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  220,   43,   43,  223, -       43,   43,   43,   45,   45,   53,   53,   53,   93,   93, -       93,   94,   94,  223,   94,   94,   94,  181,  223,  223, -      181,  219,  223,  223,  219,    3,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, - -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223 +       44,  101,  104,  109,  102,  105,  106,  107,  108,  219, +      113,   42,  219,  103,  111,  112,  114,  226,  115,  118, +      119,  120,  121,  116,  100,  101,  104,  109,  102,  122, +      105,  106,  107,  108,  113,  123,   42,  103,  111,  112, +      117,  114,  115,  118,  119,  124,  120,  121,  116,  125, +      126,  127,  128,  129,  122,  132,  130,  226,  133,  123, +      131,  226,  226,  226,  117,   91,   38,   38,   92,  124, +      134,  226,  135,  125,  126,  127,  136,  128,  129,  132, +      137,  130,  133,  138,  140,  131,   92,   38,   38,   92, + +      139,  141,  142,  143,  144,  134,  135,  146,  110,  149, +      136,  110,  147,  151,  137,  150,  152,  157,  138,  140, +      153,  148,  154,  155,  139,  141,  142,  143,  156,  144, +      158,  146,  159,  149,  160,  163,  164,  147,  151,  150, +      145,  152,  157,  165,  153,  148,  154,  155,  161,  167, +      166,  161,  156,  168,  158,  169,  171,  159,  160,  163, +      164,  170,  172,  174,  145,  173,  175,  176,  165,  177, +      178,  179,  180,  167,  162,  166,  181,  168,  182,  183, +      169,  171,  186,  161,  187,  170,  161,  172,  174,  173, +      175,  176,  189,  177,  190,  178,  179,  180,  162,  191, + +      192,  181,  182,  183,  193,  194,  195,  186,  196,  187, +      197,  198,  200,  199,  185,  200,  202,  189,  204,  190, +      226,  205,  188,  191,  192,  188,  206,  207,  193,  194, +      208,  195,  196,  211,  197,  212,  198,  199,  185,  213, +      202,  201,  204,  200,  203,  205,  200,  200,  214,  216, +      200,  206,  207,  200,  208,  215,  200,  218,  211,  212, +      220,  226,  221,  220,  213,  201,  224,  226,  219,  203, +      209,  219,  220,  214,  216,  220,  226,  210,  226,  215, +      226,  218,  226,  226,  225,  217,  221,  225,  226,  225, +      226,  224,  225,  226,  209,  226,  226,  226,  226,  223, + +      226,  210,  226,  226,  226,  226,  226,  226,  226,  217, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  223,   43,   43,  226,   43,   43,   43, +       45,   45,   53,   53,   53,   94,   94,   94,   95,   95, +      226,   95,   95,   95,  184,  226,  226,  184,  222,  226, +      226,  222,    3,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, + +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226      } ; -static yyconst flex_int16_t yy_chk[620] = +static yyconst flex_int16_t yy_chk[617] =      {   0,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    1,    1,    1,    1,    1,    1,    1,    1,    1, @@ -585,66 +587,66 @@ static yyconst flex_int16_t yy_chk[620] =          1,    1,    1,    1,    1,    1,    1,    1,    1,    1,          1,    1,    1,    2,   14,   14,    2,    5,    5,    5,          5,    6,    6,    6,    6,    7,    7,    7,    7,    8, -        8,    8,    8,   15,   15,   17,   18,   65,   19,    6, -       65,   20,   17,    7,   95,   21,   23,   21,   26,   23, - -       27,   22,   25,   31,   27,   49,   49,   21,   42,   25, -       17,   18,   19,   27,    6,   20,   17,   22,    7,   21, -       23,   21,   26,   23,   48,   27,   22,   25,   31,   27, -       28,   21,   42,   25,   30,   29,   43,   27,   16,   28, -       30,   22,   29,   30,   29,   54,   29,   32,   33,   34, -       34,   55,   13,   12,   33,   28,   32,   32,   30,   40, -       29,   32,   40,   28,   30,    9,   29,   30,   29,   54, -       29,    3,   32,   33,   34,   34,   55,   40,   33,    0, -       32,   32,   56,    0,   57,   32,   35,   35,   35,   35, +        8,    8,    8,   15,   15,   17,   18,   96,   20,    6, +       19,   66,   17,    7,   66,   21,   19,   21,   25,  166, + +       23,   22,  166,   23,   26,   25,   48,   21,   42,   27, +       17,   18,   20,   27,    6,   19,   17,   22,    7,   21, +       19,   21,   27,   25,   23,   31,   22,   23,   26,   25, +       28,   21,   42,   29,   27,   49,   49,   43,   27,   28, +       29,   22,   29,   30,   29,   33,   27,   32,   16,   30, +       31,   33,   30,   34,   34,   28,   32,   32,   29,   40, +       54,   32,   40,   28,   29,   13,   29,   30,   29,   12, +       33,  184,   32,   30,  184,   33,   30,   40,   34,   34, +       32,   32,   55,   56,   54,   32,   35,   35,   35,   35,         36,   36,   36,   36,   37,   37,   37,   37,   39,   39, -       39,   39,   40,   41,   41,   41,   41,   56,   57,   58, -       59,   60,   61,   62,   63,    0,   64,   68,   58,   67, -       67,   41,   69,    0,   70,   72,   73,   76,   71,   78, -       79,    0,   80,   58,   59,   81,   60,   61,   62,   63, -       64,   68,   58,   67,   67,   71,   41,   69,   70,   72, -       73,   82,   76,   71,   78,   79,   80,   83,   84,   81, -       85,   86,   88,    0,   89,   92,   88,   96,  100,   71, -       90,   90,   90,   90,   98,   82,   91,   91,   91,   91, -       99,   83,   84,  101,  102,   85,   86,   88,   89,   92, -      104,   88,   96,  100,  105,  106,  107,  108,   98,  109, - -      108,  110,  163,  111,   99,  163,  112,  101,  113,  102, -      110,  115,    0,  116,  104,  118,  119,  120,  105,  106, -      122,  107,  124,  109,  125,  130,  110,  111,  126,  108, -      112,  128,  127,  113,  110,  127,  115,  116,  129,  118, -      119,  120,  131,    0,  132,  122,  124,  133,  134,  125, -      130,  139,  126,  108,  140,  128,  141,    0,  127,  142, -      143,  149,  129,  144,  147,  148,  153,  131,  132,  154, -      155,  133,  156,  134,  157,  139,  161,  158,  162,  140, -      158,  141,  127,  142,  165,  143,  149,  144,  147,  148, -      166,  153,  167,  169,  154,  155,  156,  171,  157,  172, - -      174,  161,  176,  162,  177,  179,    0,  180,  158,  165, -      181,  182,  184,  181,  182,  166,  167,  169,  187,  185, -      188,  171,  185,  172,  190,  174,  176,  191,  177,  193, -      179,  180,  158,  200,  197,  198,  184,  197,  198,  201, -      182,  185,  187,  203,  188,  204,    0,  205,  206,  190, -      211,  207,  191,  193,  207,  215,  213,  214,  200,  213, -      214,  197,  220,  201,  182,  198,  185,    0,  203,  216, -      204,  205,  216,  206,  211,  217,    0,  219,  217,  215, -      219,  221,    0,  207,  221,  197,    0,  220,  222,  198, -        0,  222,    0,    0,    0,    0,    0,    0,    0,    0, - -        0,    0,  217,    0,    0,    0,    0,  207,    0,    0, +       39,   39,   40,   41,   41,   41,   41,   55,   56,   57, +        9,   58,   60,   65,   59,   61,   62,   63,   64,  216, +       69,   41,  216,   59,   68,   68,   70,    3,   71,   73, +       74,   77,   79,   72,   57,   58,   60,   65,   59,   80, +       61,   62,   63,   64,   69,   81,   41,   59,   68,   68, +       72,   70,   71,   73,   74,   82,   77,   79,   72,   83, +       84,   85,   86,   87,   80,   90,   89,    0,   93,   81, +       89,    0,    0,    0,   72,   91,   91,   91,   91,   82, +       97,    0,   99,   83,   84,   85,  100,   86,   87,   90, +      101,   89,   93,  102,  104,   89,   92,   92,   92,   92, + +      103,  106,  107,  108,  109,   97,   99,  111,  110,  113, +      100,  110,  112,  115,  101,  114,  117,  124,  102,  104, +      118,  112,  120,  121,  103,  106,  107,  108,  122,  109, +      126,  111,  127,  113,  128,  130,  131,  112,  115,  114, +      110,  117,  124,  132,  118,  112,  120,  121,  129,  134, +      133,  129,  122,  135,  126,  137,  143,  127,  128,  130, +      131,  142,  144,  146,  110,  145,  147,  150,  132,  151, +      152,  156,  157,  134,  129,  133,  158,  135,  159,  160, +      137,  143,  164,  161,  165,  142,  161,  144,  146,  145, +      147,  150,  168,  151,  169,  152,  156,  157,  129,  170, + +      172,  158,  159,  160,  174,  175,  177,  164,  179,  165, +      180,  182,  185,  183,  161,  185,  187,  168,  190,  169, +        0,  191,  188,  170,  172,  188,  193,  194,  174,  175, +      196,  177,  179,  203,  180,  204,  182,  183,  161,  206, +      187,  185,  190,  200,  188,  191,  200,  201,  207,  209, +      201,  193,  194,  210,  196,  208,  210,  214,  203,  204, +      217,    0,  218,  217,  206,  185,  223,    0,  219,  188, +      200,  219,  220,  207,  209,  220,    0,  201,    0,  208, +      222,  214,    0,  222,  224,  210,  218,  224,    0,  225, +        0,  223,  225,    0,  200,    0,    0,    0,    0,  220, + +        0,  201,    0,    0,    0,    0,    0,    0,    0,  210,          0,    0,    0,    0,    0,    0,    0,    0,    0,    0, -        0,    0,    0,    0,    0,    0,  217,  224,  224,    0, -      224,  224,  224,  225,  225,  226,  226,  226,  227,  227, -      227,  228,  228,    0,  228,  228,  228,  229,    0,    0, -      229,  230,    0,    0,  230,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, - -      223,  223,  223,  223,  223,  223,  223,  223,  223,  223, -      223,  223,  223,  223,  223,  223,  223,  223,  223 +        0,    0,    0,  220,  227,  227,    0,  227,  227,  227, +      228,  228,  229,  229,  229,  230,  230,  230,  231,  231, +        0,  231,  231,  231,  232,    0,    0,  232,  233,    0, +        0,  233,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, + +      226,  226,  226,  226,  226,  226,  226,  226,  226,  226, +      226,  226,  226,  226,  226,  226      } ;  static yy_state_type yy_last_accepting_state; @@ -718,7 +720,7 @@ static void countnl() {  	g_lingo->_colnumber = strlen(p);  } -#line 722 "engines/director/lingo/lingo-lex.cpp" +#line 724 "engines/director/lingo/lingo-lex.cpp"  #define INITIAL 0 @@ -906,7 +908,7 @@ YY_DECL  #line 69 "engines/director/lingo/lingo-lex.l" -#line 910 "engines/director/lingo/lingo-lex.cpp" +#line 912 "engines/director/lingo/lingo-lex.cpp"  	if ( !(yy_init) )  		{ @@ -960,13 +962,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 >= 224 ) +				if ( yy_current_state >= 227 )  					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] != 556 ); +		while ( yy_base[yy_current_state] != 553 );  yy_find_action:  		yy_act = yy_accept[yy_current_state]; @@ -1028,69 +1030,69 @@ YY_RULE_SETUP  case 8:  YY_RULE_SETUP  #line 80 "engines/director/lingo/lingo-lex.l" -{ count(); return tCONTAINS; } +{ count(); return tCHAR; }		// D3  	YY_BREAK  case 9:  YY_RULE_SETUP  #line 81 "engines/director/lingo/lingo-lex.l" -{ count(); return tDONE; } +{ count(); return tCONTAINS; }  	YY_BREAK  case 10:  YY_RULE_SETUP  #line 82 "engines/director/lingo/lingo-lex.l" -{ count(); return tDOWN; } +{ count(); return tDONE; }  	YY_BREAK  case 11:  YY_RULE_SETUP  #line 83 "engines/director/lingo/lingo-lex.l" -{ count(); return tIF; } +{ count(); return tDOWN; }  	YY_BREAK  case 12: -/* rule 12 can match eol */  YY_RULE_SETUP  #line 84 "engines/director/lingo/lingo-lex.l" -{ countnl(); return tNLELSIF; } +{ count(); return tIF; }  	YY_BREAK  case 13:  /* rule 13 can match eol */  YY_RULE_SETUP  #line 85 "engines/director/lingo/lingo-lex.l" -{ countnl(); return tNLELSE; } +{ countnl(); return tNLELSIF; }  	YY_BREAK  case 14: +/* rule 14 can match eol */  YY_RULE_SETUP  #line 86 "engines/director/lingo/lingo-lex.l" -{ count(); return tELSE; } +{ countnl(); return tNLELSE; }  	YY_BREAK  case 15:  YY_RULE_SETUP  #line 87 "engines/director/lingo/lingo-lex.l" -{ count(); return tEND; } +{ count(); return tELSE; }  	YY_BREAK  case 16:  YY_RULE_SETUP  #line 88 "engines/director/lingo/lingo-lex.l" -{ count(); return tFACTORY; } +{ count(); return tEND; }  	YY_BREAK  case 17:  YY_RULE_SETUP  #line 89 "engines/director/lingo/lingo-lex.l" -{ count(); return tEXIT; } +{ count(); return tFACTORY; }  	YY_BREAK  case 18:  YY_RULE_SETUP  #line 90 "engines/director/lingo/lingo-lex.l" -{ count(); return tFRAME; } +{ count(); return tEXIT; }  	YY_BREAK  case 19:  YY_RULE_SETUP  #line 91 "engines/director/lingo/lingo-lex.l" -{ count(); return tGLOBAL; } +{ count(); return tFRAME; }  	YY_BREAK  case 20:  YY_RULE_SETUP  #line 92 "engines/director/lingo/lingo-lex.l" -{ count(); return tGO; } +{ count(); return tGLOBAL; }  	YY_BREAK  case 21:  YY_RULE_SETUP @@ -1100,111 +1102,116 @@ YY_RULE_SETUP  case 22:  YY_RULE_SETUP  #line 94 "engines/director/lingo/lingo-lex.l" -{ count(); return tINSTANCE; } +{ count(); return tGO; }  	YY_BREAK  case 23:  YY_RULE_SETUP  #line 95 "engines/director/lingo/lingo-lex.l" -{ count(); return tINTERSECTS; } +{ count(); return tINSTANCE; }  	YY_BREAK  case 24:  YY_RULE_SETUP  #line 96 "engines/director/lingo/lingo-lex.l" -{ count(); return tINTO; } +{ count(); return tINTERSECTS; }  	YY_BREAK  case 25:  YY_RULE_SETUP  #line 97 "engines/director/lingo/lingo-lex.l" -{ count(); return tLOOP; } +{ count(); return tINTO; }  	YY_BREAK  case 26:  YY_RULE_SETUP  #line 98 "engines/director/lingo/lingo-lex.l" -{ count(); return tMACRO; } +{ count(); return tLOOP; }  	YY_BREAK  case 27:  YY_RULE_SETUP  #line 99 "engines/director/lingo/lingo-lex.l" -{ count(); return tMETHOD; } +{ count(); return tMACRO; }  	YY_BREAK  case 28:  YY_RULE_SETUP  #line 100 "engines/director/lingo/lingo-lex.l" -{ count(); return tMOD; } +{ count(); return tMETHOD; }  	YY_BREAK  case 29:  YY_RULE_SETUP  #line 101 "engines/director/lingo/lingo-lex.l" -{ count(); return tMOVIE; } +{ count(); return tMOD; }  	YY_BREAK  case 30:  YY_RULE_SETUP  #line 102 "engines/director/lingo/lingo-lex.l" -{ count(); return tNEXT; } +{ count(); return tMOVIE; }  	YY_BREAK  case 31:  YY_RULE_SETUP  #line 103 "engines/director/lingo/lingo-lex.l" -{ count(); return tNOT; } +{ count(); return tNEXT; }  	YY_BREAK  case 32:  YY_RULE_SETUP  #line 104 "engines/director/lingo/lingo-lex.l" -{ count(); return tOF; } +{ count(); return tNOT; }  	YY_BREAK  case 33:  YY_RULE_SETUP  #line 105 "engines/director/lingo/lingo-lex.l" -{ count(); return tON; }		// D3 +{ count(); return tOF; }  	YY_BREAK  case 34:  YY_RULE_SETUP  #line 106 "engines/director/lingo/lingo-lex.l" -{ count(); return tOPEN; } +{ count(); return tON; }		// D3  	YY_BREAK  case 35:  YY_RULE_SETUP  #line 107 "engines/director/lingo/lingo-lex.l" -{ count(); return tOR; } +{ count(); return tOPEN; }  	YY_BREAK  case 36:  YY_RULE_SETUP  #line 108 "engines/director/lingo/lingo-lex.l" -{ count(); return tPLAY; } +{ count(); return tOR; }  	YY_BREAK  case 37:  YY_RULE_SETUP  #line 109 "engines/director/lingo/lingo-lex.l" -{ count(); return tPREVIOUS; } +{ count(); return tPLAY; }  	YY_BREAK  case 38:  YY_RULE_SETUP  #line 110 "engines/director/lingo/lingo-lex.l" -{ count(); return tPUT; } +{ count(); return tPREVIOUS; }  	YY_BREAK  case 39:  YY_RULE_SETUP  #line 111 "engines/director/lingo/lingo-lex.l" -{ count(); return tREPEAT; } +{ count(); return tPUT; }  	YY_BREAK  case 40:  YY_RULE_SETUP  #line 112 "engines/director/lingo/lingo-lex.l" -{ count(); return tSET; } +{ count(); return tREPEAT; }  	YY_BREAK  case 41:  YY_RULE_SETUP  #line 113 "engines/director/lingo/lingo-lex.l" -{ count(); return tSOUND; }		// D3 +{ count(); return tSET; }  	YY_BREAK  case 42:  YY_RULE_SETUP  #line 114 "engines/director/lingo/lingo-lex.l" -{ count(); return tSTARTS; } +{ count(); return tSOUND; }		// D3  	YY_BREAK  case 43:  YY_RULE_SETUP  #line 115 "engines/director/lingo/lingo-lex.l" +{ count(); return tSTARTS; } +	YY_BREAK +case 44: +YY_RULE_SETUP +#line 116 "engines/director/lingo/lingo-lex.l"  {  		count(); @@ -1214,9 +1221,9 @@ YY_RULE_SETUP  		return THEENTITYWITHID;  	}  	YY_BREAK -case 44: +case 45:  YY_RULE_SETUP -#line 123 "engines/director/lingo/lingo-lex.l" +#line 124 "engines/director/lingo/lingo-lex.l"  {  		count(); @@ -1258,9 +1265,9 @@ YY_RULE_SETUP  		warning("Unhandled the entity %s", ptr);  	}  	YY_BREAK -case 45: +case 46:  YY_RULE_SETUP -#line 163 "engines/director/lingo/lingo-lex.l" +#line 164 "engines/director/lingo/lingo-lex.l"  {  		count(); @@ -1281,64 +1288,64 @@ YY_RULE_SETUP  		warning("Unhandled the entity %s", ptr);  	}  	YY_BREAK -case 46: -YY_RULE_SETUP -#line 182 "engines/director/lingo/lingo-lex.l" -{ count(); return tTHEN; } -	YY_BREAK  case 47:  YY_RULE_SETUP  #line 183 "engines/director/lingo/lingo-lex.l" -{ count(); return tTO; } +{ count(); return tTHEN; }  	YY_BREAK  case 48:  YY_RULE_SETUP  #line 184 "engines/director/lingo/lingo-lex.l" -{ count(); return tSPRITE; } +{ count(); return tTO; }  	YY_BREAK  case 49:  YY_RULE_SETUP  #line 185 "engines/director/lingo/lingo-lex.l" -{ count(); return tWITH; } +{ count(); return tSPRITE; }  	YY_BREAK  case 50:  YY_RULE_SETUP  #line 186 "engines/director/lingo/lingo-lex.l" -{ count(); return tWITHIN; } +{ count(); return tWITH; }  	YY_BREAK  case 51:  YY_RULE_SETUP  #line 187 "engines/director/lingo/lingo-lex.l" -{ count(); return tWHEN; } +{ count(); return tWITHIN; }  	YY_BREAK  case 52:  YY_RULE_SETUP  #line 188 "engines/director/lingo/lingo-lex.l" -{ count(); return tWHILE; } +{ count(); return tWHEN; }  	YY_BREAK  case 53:  YY_RULE_SETUP -#line 190 "engines/director/lingo/lingo-lex.l" -{ count(); return tNEQ; } +#line 189 "engines/director/lingo/lingo-lex.l" +{ count(); return tWHILE; }  	YY_BREAK  case 54:  YY_RULE_SETUP  #line 191 "engines/director/lingo/lingo-lex.l" -{ count(); return tGE; } +{ count(); return tNEQ; }  	YY_BREAK  case 55:  YY_RULE_SETUP  #line 192 "engines/director/lingo/lingo-lex.l" -{ count(); return tLE; } +{ count(); return tGE; }  	YY_BREAK  case 56:  YY_RULE_SETUP  #line 193 "engines/director/lingo/lingo-lex.l" -{ count(); return tCONCAT; } +{ count(); return tLE; }  	YY_BREAK  case 57:  YY_RULE_SETUP -#line 195 "engines/director/lingo/lingo-lex.l" +#line 194 "engines/director/lingo/lingo-lex.l" +{ count(); return tCONCAT; } +	YY_BREAK +case 58: +YY_RULE_SETUP +#line 196 "engines/director/lingo/lingo-lex.l"  {  		count();  		yylval.s = new Common::String(yytext); @@ -1369,43 +1376,43 @@ YY_RULE_SETUP  		return ID;  	}  	YY_BREAK -case 58: -YY_RULE_SETUP -#line 224 "engines/director/lingo/lingo-lex.l" -{ count(); yylval.f = atof(yytext); return FLOAT; } -	YY_BREAK  case 59:  YY_RULE_SETUP  #line 225 "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 60:  YY_RULE_SETUP  #line 226 "engines/director/lingo/lingo-lex.l" -{ count(); return *yytext; } +{ count(); yylval.i = strtol(yytext, NULL, 10); return INT; }  	YY_BREAK  case 61: -/* rule 61 can match eol */  YY_RULE_SETUP  #line 227 "engines/director/lingo/lingo-lex.l" -{ return '\n'; } +{ count(); return *yytext; }  	YY_BREAK  case 62: +/* rule 62 can match eol */  YY_RULE_SETUP  #line 228 "engines/director/lingo/lingo-lex.l" -{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; } +{ return '\n'; }  	YY_BREAK  case 63:  YY_RULE_SETUP  #line 229 "engines/director/lingo/lingo-lex.l" - +{ count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }  	YY_BREAK  case 64:  YY_RULE_SETUP -#line 231 "engines/director/lingo/lingo-lex.l" +#line 230 "engines/director/lingo/lingo-lex.l" + +	YY_BREAK +case 65: +YY_RULE_SETUP +#line 232 "engines/director/lingo/lingo-lex.l"  ECHO;  	YY_BREAK -#line 1409 "engines/director/lingo/lingo-lex.cpp" +#line 1416 "engines/director/lingo/lingo-lex.cpp"  case YY_STATE_EOF(INITIAL):  	yyterminate(); @@ -1698,7 +1705,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 >= 224 ) +			if ( yy_current_state >= 227 )  				yy_c = yy_meta[(unsigned int) yy_c];  			}  		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1726,11 +1733,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 >= 224 ) +		if ( yy_current_state >= 227 )  			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 == 223); +	yy_is_jam = (yy_current_state == 226);  	return yy_is_jam ? 0 : yy_current_state;  } @@ -2405,7 +2412,7 @@ void yyfree (void * ptr )  #define YYTABLES_NAME "yytables" -#line 231 "engines/director/lingo/lingo-lex.l" +#line 232 "engines/director/lingo/lingo-lex.l" diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l index 56317d10a1..2c6f079a05 100644 --- a/engines/director/lingo/lingo-lex.l +++ b/engines/director/lingo/lingo-lex.l @@ -77,6 +77,7 @@ whitespace [\t ]  (?i:after)			{ count(); return tAFTER; }		// D3  (?i:and)			{ count(); return tAND; }  (?i:before)			{ count(); return tBEFORE; }	// D3 +(?i:char)			{ count(); return tCHAR; }		// D3  (?i:contains)		{ count(); return tCONTAINS; }  (?i:done)			{ count(); return tDONE; }  (?i:down)			{ count(); return tDOWN; } diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index 89632eff75..d51a5f07a4 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -249,6 +249,8 @@ public:  	static void c_intersects();  	static void c_within(); +	static void c_charOf(); +	static void c_charToOf();  	static void c_constpush();  	static void c_voidpush();  | 
