diff options
| -rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 1449 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.h | 241 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.y | 7 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-lex.cpp | 63 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-lex.l | 13 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-the.cpp | 5 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-the.h | 3 | ||||
| -rw-r--r-- | engines/director/lingo/lingo.h | 3 | 
8 files changed, 920 insertions, 864 deletions
| diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index 249314d4b1..8cfbb58bcc 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -97,64 +97,65 @@       STRING = 286,       HANDLER = 287,       SYMBOL = 288, -     ENDCLAUSE = 289, -     tPLAYACCEL = 290, -     tMETHOD = 291, -     tDOWN = 292, -     tELSE = 293, -     tELSIF = 294, -     tEXIT = 295, -     tGLOBAL = 296, -     tGO = 297, -     tIF = 298, -     tINTO = 299, -     tLOOP = 300, -     tMACRO = 301, -     tMOVIE = 302, -     tNEXT = 303, -     tOF = 304, -     tPREVIOUS = 305, -     tPUT = 306, -     tREPEAT = 307, -     tSET = 308, -     tTHEN = 309, -     tTO = 310, -     tWHEN = 311, -     tWITH = 312, -     tWHILE = 313, -     tNLELSE = 314, -     tFACTORY = 315, -     tOPEN = 316, -     tPLAY = 317, -     tDONE = 318, -     tINSTANCE = 319, -     tGE = 320, -     tLE = 321, -     tEQ = 322, -     tNEQ = 323, -     tAND = 324, -     tOR = 325, -     tNOT = 326, -     tMOD = 327, -     tAFTER = 328, -     tBEFORE = 329, -     tCONCAT = 330, -     tCONTAINS = 331, -     tSTARTS = 332, -     tCHAR = 333, -     tITEM = 334, -     tLINE = 335, -     tWORD = 336, -     tSPRITE = 337, -     tINTERSECTS = 338, -     tWITHIN = 339, -     tTELL = 340, -     tPROPERTY = 341, -     tON = 342, -     tME = 343, -     tENDIF = 344, -     tENDREPEAT = 345, -     tENDTELL = 346 +     THEOBJECTFIELD = 289, +     ENDCLAUSE = 290, +     tPLAYACCEL = 291, +     tMETHOD = 292, +     tDOWN = 293, +     tELSE = 294, +     tELSIF = 295, +     tEXIT = 296, +     tGLOBAL = 297, +     tGO = 298, +     tIF = 299, +     tINTO = 300, +     tLOOP = 301, +     tMACRO = 302, +     tMOVIE = 303, +     tNEXT = 304, +     tOF = 305, +     tPREVIOUS = 306, +     tPUT = 307, +     tREPEAT = 308, +     tSET = 309, +     tTHEN = 310, +     tTO = 311, +     tWHEN = 312, +     tWITH = 313, +     tWHILE = 314, +     tNLELSE = 315, +     tFACTORY = 316, +     tOPEN = 317, +     tPLAY = 318, +     tDONE = 319, +     tINSTANCE = 320, +     tGE = 321, +     tLE = 322, +     tEQ = 323, +     tNEQ = 324, +     tAND = 325, +     tOR = 326, +     tNOT = 327, +     tMOD = 328, +     tAFTER = 329, +     tBEFORE = 330, +     tCONCAT = 331, +     tCONTAINS = 332, +     tSTARTS = 333, +     tCHAR = 334, +     tITEM = 335, +     tLINE = 336, +     tWORD = 337, +     tSPRITE = 338, +     tINTERSECTS = 339, +     tWITHIN = 340, +     tTELL = 341, +     tPROPERTY = 342, +     tON = 343, +     tME = 344, +     tENDIF = 345, +     tENDREPEAT = 346, +     tENDTELL = 347     };  #endif  /* Tokens.  */ @@ -189,64 +190,65 @@  #define STRING 286  #define HANDLER 287  #define SYMBOL 288 -#define ENDCLAUSE 289 -#define tPLAYACCEL 290 -#define tMETHOD 291 -#define tDOWN 292 -#define tELSE 293 -#define tELSIF 294 -#define tEXIT 295 -#define tGLOBAL 296 -#define tGO 297 -#define tIF 298 -#define tINTO 299 -#define tLOOP 300 -#define tMACRO 301 -#define tMOVIE 302 -#define tNEXT 303 -#define tOF 304 -#define tPREVIOUS 305 -#define tPUT 306 -#define tREPEAT 307 -#define tSET 308 -#define tTHEN 309 -#define tTO 310 -#define tWHEN 311 -#define tWITH 312 -#define tWHILE 313 -#define tNLELSE 314 -#define tFACTORY 315 -#define tOPEN 316 -#define tPLAY 317 -#define tDONE 318 -#define tINSTANCE 319 -#define tGE 320 -#define tLE 321 -#define tEQ 322 -#define tNEQ 323 -#define tAND 324 -#define tOR 325 -#define tNOT 326 -#define tMOD 327 -#define tAFTER 328 -#define tBEFORE 329 -#define tCONCAT 330 -#define tCONTAINS 331 -#define tSTARTS 332 -#define tCHAR 333 -#define tITEM 334 -#define tLINE 335 -#define tWORD 336 -#define tSPRITE 337 -#define tINTERSECTS 338 -#define tWITHIN 339 -#define tTELL 340 -#define tPROPERTY 341 -#define tON 342 -#define tME 343 -#define tENDIF 344 -#define tENDREPEAT 345 -#define tENDTELL 346 +#define THEOBJECTFIELD 289 +#define ENDCLAUSE 290 +#define tPLAYACCEL 291 +#define tMETHOD 292 +#define tDOWN 293 +#define tELSE 294 +#define tELSIF 295 +#define tEXIT 296 +#define tGLOBAL 297 +#define tGO 298 +#define tIF 299 +#define tINTO 300 +#define tLOOP 301 +#define tMACRO 302 +#define tMOVIE 303 +#define tNEXT 304 +#define tOF 305 +#define tPREVIOUS 306 +#define tPUT 307 +#define tREPEAT 308 +#define tSET 309 +#define tTHEN 310 +#define tTO 311 +#define tWHEN 312 +#define tWITH 313 +#define tWHILE 314 +#define tNLELSE 315 +#define tFACTORY 316 +#define tOPEN 317 +#define tPLAY 318 +#define tDONE 319 +#define tINSTANCE 320 +#define tGE 321 +#define tLE 322 +#define tEQ 323 +#define tNEQ 324 +#define tAND 325 +#define tOR 326 +#define tNOT 327 +#define tMOD 328 +#define tAFTER 329 +#define tBEFORE 330 +#define tCONCAT 331 +#define tCONTAINS 332 +#define tSTARTS 333 +#define tCHAR 334 +#define tITEM 335 +#define tLINE 336 +#define tWORD 337 +#define tSPRITE 338 +#define tINTERSECTS 339 +#define tWITHIN 340 +#define tTELL 341 +#define tPROPERTY 342 +#define tON 343 +#define tME 344 +#define tENDIF 345 +#define tENDREPEAT 346 +#define tENDTELL 347 @@ -314,9 +316,14 @@ typedef union YYSTYPE  	int code;  	int narg;	/* number of arguments */  	Common::Array<double> *arr; + +	struct { +		Common::String *s; +		int e; +	} objectfield;  }  /* Line 193 of yacc.c.  */ -#line 320 "engines/director/lingo/lingo-gr.cpp" +#line 327 "engines/director/lingo/lingo-gr.cpp"  	YYSTYPE;  # define yystype YYSTYPE /* obsolescent; will be withdrawn */  # define YYSTYPE_IS_DECLARED 1 @@ -329,7 +336,7 @@ typedef union YYSTYPE  /* Line 216 of yacc.c.  */ -#line 333 "engines/director/lingo/lingo-gr.cpp" +#line 340 "engines/director/lingo/lingo-gr.cpp"  #ifdef short  # undef short @@ -544,10 +551,10 @@ union yyalloc  /* YYFINAL -- State number of the termination state.  */  #define YYFINAL  124  /* YYLAST -- Last index in YYTABLE.  */ -#define YYLAST   1612 +#define YYLAST   1621  /* YYNTOKENS -- Number of terminals.  */ -#define YYNTOKENS  106 +#define YYNTOKENS  107  /* YYNNTS -- Number of nonterminals.  */  #define YYNNTS  41  /* YYNRULES -- Number of rules.  */ @@ -557,7 +564,7 @@ union yyalloc  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  #define YYUNDEFTOK  2 -#define YYMAXUTOK   346 +#define YYMAXUTOK   347  #define YYTRANSLATE(YYX)						\    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -566,15 +573,15 @@ union yyalloc  static const yytype_uint8 yytranslate[] =  {         0,     2,     2,     2,     2,     2,     2,     2,     2,     2, -     100,     2,     2,     2,     2,     2,     2,     2,     2,     2, +     101,     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,    99,    94,     2, -     101,   102,    97,    95,   105,    96,     2,    98,     2,     2, +       2,     2,     2,     2,     2,     2,     2,   100,    95,     2, +     102,   103,    98,    96,   106,    97,     2,    99,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2, -      92,     2,    93,     2,     2,     2,     2,     2,     2,     2, +      93,     2,    94,     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,   103,     2,   104,     2,     2,     2,     2,     2,     2, +       2,   104,     2,   105,     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, @@ -599,7 +606,7 @@ static const yytype_uint8 yytranslate[] =        55,    56,    57,    58,    59,    60,    61,    62,    63,    64,        65,    66,    67,    68,    69,    70,    71,    72,    73,    74,        75,    76,    77,    78,    79,    80,    81,    82,    83,    84, -      85,    86,    87,    88,    89,    90,    91 +      85,    86,    87,    88,    89,    90,    91,    92  };  #if YYDEBUG @@ -628,87 +635,87 @@ static const yytype_uint16 yyprhs[] =  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */  static const yytype_int16 yyrhs[] =  { -     107,     0,    -1,   107,   100,   108,    -1,   108,    -1,     1, -     100,    -1,    -1,   137,    -1,   112,    -1,    51,   127,    44, -      30,    -1,    51,   127,    44,   128,    -1,    51,   127,    73, -     127,    -1,    51,   127,    74,   127,    -1,    53,    30,    67, -     127,    -1,    53,    15,    67,   127,    -1,    53,    30,    55, -     127,    -1,    53,    15,    55,   127,    -1,    53,    16,   127, -      55,   127,    -1,    53,    16,   126,    67,   127,    -1,   144, -      -1,   127,    -1,   129,    -1,   144,    -1,   127,    -1,   129, -      -1,   116,    -1,   110,    -1,   113,    -1,   117,   127,   122, -     123,   122,    90,    -1,   118,    67,   127,   122,    55,   127, -     122,   123,   122,    90,    -1,   118,    67,   127,   122,    37, -      55,   127,   122,   123,   122,    90,    -1,   124,   111,   122, -      -1,   125,   127,   100,   123,   122,    91,    -1,   125,   127, -      55,   127,    -1,   119,   127,   122,    54,   123,   122,   114, -     122,    89,    -1,   119,   127,   122,    54,   123,   122,   114, -      38,   121,   123,   122,    89,    -1,    -1,   115,   114,    -1, -     120,   127,   122,    54,   123,   122,    -1,   119,   127,   122, -      54,   110,   122,    38,   121,   110,   122,    89,    -1,   119, -     127,   122,    54,   110,   122,    89,    -1,    52,    58,    -1, -      52,    57,    30,    -1,    43,    -1,    39,    -1,    -1,    -1, -      -1,   123,   100,    -1,   123,   112,    -1,    56,    30,    54, -      -1,    85,    -1,    12,    -1,    17,    -1,    33,    -1,    31, -      -1,    30,    -1,   126,    -1,   128,    -1,    25,    -1,    26, -     127,    -1,    27,   146,    -1,    30,   101,   145,   102,    -1, -      15,    -1,    16,   127,    -1,   109,    -1,   127,    95,   127, -      -1,   127,    96,   127,    -1,   127,    97,   127,    -1,   127, -      98,   127,    -1,   127,    72,   127,    -1,   127,    93,   127, -      -1,   127,    92,   127,    -1,   127,    67,   127,    -1,   127, -      68,   127,    -1,   127,    65,   127,    -1,   127,    66,   127, -      -1,   127,    69,   127,    -1,   127,    70,   127,    -1,    71, -     127,    -1,   127,    94,   127,    -1,   127,    75,   127,    -1, -     127,    76,   127,    -1,   127,    77,   127,    -1,    95,   127, -      -1,    96,   127,    -1,   101,   127,   102,    -1,   103,   145, -     104,    -1,    82,   127,    83,   127,    -1,    82,   127,    84, -     127,    -1,    78,   127,    49,   127,    -1,    78,   127,    55, -     127,    49,   127,    -1,    79,   127,    49,   127,    -1,    79, -     127,    55,   127,    49,   127,    -1,    80,   127,    49,   127, -      -1,    80,   127,    55,   127,    49,   127,    -1,    81,   127, -      49,   127,    -1,    81,   127,    55,   127,    49,   127,    -1, -      88,   101,    30,   102,    -1,    88,   101,    30,   105,   145, -     102,    -1,    88,    -1,    29,   126,    -1,    51,   127,    -1, -     133,    -1,   135,    -1,    40,    52,    -1,    40,    -1,    41, -     130,    -1,    86,   131,    -1,    64,   132,    -1,    19,    -1, -      21,   127,    -1,    20,   127,    -1,    20,    -1,    22,   146, -      -1,    61,   127,    57,   127,    -1,    61,   127,    -1,    23, -      30,   145,    -1,    30,    -1,   130,   105,    30,    -1,    30, -      -1,   131,   105,    30,    -1,    30,    -1,   132,   105,    30, -      -1,    42,    45,    -1,    42,    48,    -1,    42,    50,    -1, -      42,   127,    -1,    42,   127,   134,    -1,    42,   134,    -1, -      49,    47,   127,    -1,    47,   127,    -1,    62,    63,    -1, -      62,   127,    -1,    62,   127,   134,    -1,    62,   134,    -1, -      -1,    35,   136,   145,    -1,    -1,    46,    30,   138,   121, -     141,   100,   143,   123,    -1,    60,    30,    -1,    -1,    36, -     139,   121,   141,   100,   143,   123,    -1,   140,   121,   141, -     100,   143,   123,    34,   142,    -1,   140,   121,   141,   100, -     143,   123,    -1,    87,    30,    -1,    -1,    30,    -1,   141, -     105,    30,    -1,   141,   100,   105,    30,    -1,    -1,    30, -      -1,   142,   105,    30,    -1,    -1,    30,   146,    -1,    -1, -     127,    -1,   145,   105,   127,    -1,   127,    -1,   146,   105, -     127,    -1 +     108,     0,    -1,   108,   101,   109,    -1,   109,    -1,     1, +     101,    -1,    -1,   138,    -1,   113,    -1,    52,   128,    45, +      30,    -1,    52,   128,    45,   129,    -1,    52,   128,    74, +     128,    -1,    52,   128,    75,   128,    -1,    54,    30,    68, +     128,    -1,    54,    15,    68,   128,    -1,    54,    30,    56, +     128,    -1,    54,    15,    56,   128,    -1,    54,    16,   128, +      56,   128,    -1,    54,    16,   127,    68,   128,    -1,   145, +      -1,   128,    -1,   130,    -1,   145,    -1,   128,    -1,   130, +      -1,   117,    -1,   111,    -1,   114,    -1,   118,   128,   123, +     124,   123,    91,    -1,   119,    68,   128,   123,    56,   128, +     123,   124,   123,    91,    -1,   119,    68,   128,   123,    38, +      56,   128,   123,   124,   123,    91,    -1,   125,   112,   123, +      -1,   126,   128,   101,   124,   123,    92,    -1,   126,   128, +      56,   128,    -1,   120,   128,   123,    55,   124,   123,   115, +     123,    90,    -1,   120,   128,   123,    55,   124,   123,   115, +      39,   122,   124,   123,    90,    -1,    -1,   116,   115,    -1, +     121,   128,   123,    55,   124,   123,    -1,   120,   128,   123, +      55,   111,   123,    39,   122,   111,   123,    90,    -1,   120, +     128,   123,    55,   111,   123,    90,    -1,    53,    59,    -1, +      53,    58,    30,    -1,    44,    -1,    40,    -1,    -1,    -1, +      -1,   124,   101,    -1,   124,   113,    -1,    57,    30,    55, +      -1,    86,    -1,    12,    -1,    17,    -1,    33,    -1,    31, +      -1,    30,    -1,   127,    -1,   129,    -1,    25,    -1,    26, +     128,    -1,    27,   147,    -1,    30,   102,   146,   103,    -1, +      15,    -1,    16,   128,    -1,   110,    -1,   128,    96,   128, +      -1,   128,    97,   128,    -1,   128,    98,   128,    -1,   128, +      99,   128,    -1,   128,    73,   128,    -1,   128,    94,   128, +      -1,   128,    93,   128,    -1,   128,    68,   128,    -1,   128, +      69,   128,    -1,   128,    66,   128,    -1,   128,    67,   128, +      -1,   128,    70,   128,    -1,   128,    71,   128,    -1,    72, +     128,    -1,   128,    95,   128,    -1,   128,    76,   128,    -1, +     128,    77,   128,    -1,   128,    78,   128,    -1,    96,   128, +      -1,    97,   128,    -1,   102,   128,   103,    -1,   104,   146, +     105,    -1,    83,   128,    84,   128,    -1,    83,   128,    85, +     128,    -1,    79,   128,    50,   128,    -1,    79,   128,    56, +     128,    50,   128,    -1,    80,   128,    50,   128,    -1,    80, +     128,    56,   128,    50,   128,    -1,    81,   128,    50,   128, +      -1,    81,   128,    56,   128,    50,   128,    -1,    82,   128, +      50,   128,    -1,    82,   128,    56,   128,    50,   128,    -1, +      89,   102,    30,   103,    -1,    89,   102,    30,   106,   146, +     103,    -1,    89,    -1,    29,   127,    -1,    52,   128,    -1, +     134,    -1,   136,    -1,    41,    53,    -1,    41,    -1,    42, +     131,    -1,    87,   132,    -1,    65,   133,    -1,    19,    -1, +      21,   128,    -1,    20,   128,    -1,    20,    -1,    22,   147, +      -1,    62,   128,    58,   128,    -1,    62,   128,    -1,    23, +      30,   146,    -1,    30,    -1,   131,   106,    30,    -1,    30, +      -1,   132,   106,    30,    -1,    30,    -1,   133,   106,    30, +      -1,    43,    46,    -1,    43,    49,    -1,    43,    51,    -1, +      43,   128,    -1,    43,   128,   135,    -1,    43,   135,    -1, +      50,    48,   128,    -1,    48,   128,    -1,    63,    64,    -1, +      63,   128,    -1,    63,   128,   135,    -1,    63,   135,    -1, +      -1,    36,   137,   146,    -1,    -1,    47,    30,   139,   122, +     142,   101,   144,   124,    -1,    61,    30,    -1,    -1,    37, +     140,   122,   142,   101,   144,   124,    -1,   141,   122,   142, +     101,   144,   124,    35,   143,    -1,   141,   122,   142,   101, +     144,   124,    -1,    88,    30,    -1,    -1,    30,    -1,   142, +     106,    30,    -1,   142,   101,   106,    30,    -1,    -1,    30, +      -1,   143,   106,    30,    -1,    -1,    30,   147,    -1,    -1, +     128,    -1,   146,   106,   128,    -1,   128,    -1,   147,   106, +     128,    -1  };  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  static const yytype_uint16 yyrline[] =  { -       0,   125,   125,   126,   127,   130,   131,   132,   135,   141, -     144,   145,   146,   152,   159,   165,   172,   178,   186,   187, -     188,   191,   192,   193,   194,   197,   198,   203,   214,   231, -     243,   248,   250,   255,   265,   277,   278,   281,   289,   299, -     312,   315,   322,   329,   337,   340,   343,   344,   345,   348, -     354,   358,   361,   364,   367,   370,   376,   377,   378,   381, -     384,   385,   388,   396,   402,   403,   404,   405,   406,   407, -     408,   409,   410,   411,   412,   413,   414,   415,   416,   417, -     418,   419,   420,   421,   422,   423,   424,   425,   426,   427, -     428,   429,   430,   431,   432,   433,   434,   435,   436,   437, -     440,   445,   446,   447,   448,   449,   450,   451,   452,   453, -     456,   459,   462,   466,   467,   468,   469,   472,   473,   476, -     477,   480,   481,   492,   493,   494,   495,   499,   503,   509, -     510,   513,   514,   518,   522,   526,   526,   556,   556,   562, -     563,   563,   569,   577,   584,   586,   587,   588,   589,   592, -     593,   594,   597,   600,   608,   609,   610,   613,   614 +       0,   130,   130,   131,   132,   135,   136,   137,   140,   146, +     149,   150,   151,   157,   164,   170,   177,   183,   191,   192, +     193,   196,   197,   198,   199,   202,   203,   208,   219,   236, +     248,   253,   255,   260,   270,   282,   283,   286,   294,   304, +     317,   320,   327,   334,   342,   345,   348,   349,   350,   353, +     359,   363,   366,   369,   372,   375,   381,   382,   383,   386, +     389,   390,   393,   401,   407,   408,   409,   410,   411,   412, +     413,   414,   415,   416,   417,   418,   419,   420,   421,   422, +     423,   424,   425,   426,   427,   428,   429,   430,   431,   432, +     433,   434,   435,   436,   437,   438,   439,   440,   441,   442, +     445,   450,   451,   452,   453,   454,   455,   456,   457,   458, +     461,   464,   467,   471,   472,   473,   474,   477,   478,   481, +     482,   485,   486,   497,   498,   499,   500,   504,   508,   514, +     515,   518,   519,   523,   527,   531,   531,   561,   561,   567, +     568,   568,   574,   582,   589,   591,   592,   593,   594,   597, +     598,   599,   602,   605,   613,   614,   615,   618,   619  };  #endif @@ -723,12 +730,12 @@ static const char *const yytname[] =    "BLTINNOARGS", "BLTINNOARGSORONE", "BLTINONEARG", "BLTINARGLIST",    "TWOWORDBUILTIN", "FBLTIN", "FBLTINNOARGS", "FBLTINONEARG",    "FBLTINARGLIST", "RBLTIN", "RBLTINONEARG", "ID", "STRING", "HANDLER", -  "SYMBOL", "ENDCLAUSE", "tPLAYACCEL", "tMETHOD", "tDOWN", "tELSE", -  "tELSIF", "tEXIT", "tGLOBAL", "tGO", "tIF", "tINTO", "tLOOP", "tMACRO", -  "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", "tREPEAT", "tSET", -  "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tNLELSE", "tFACTORY", -  "tOPEN", "tPLAY", "tDONE", "tINSTANCE", "tGE", "tLE", "tEQ", "tNEQ", -  "tAND", "tOR", "tNOT", "tMOD", "tAFTER", "tBEFORE", "tCONCAT", +  "SYMBOL", "THEOBJECTFIELD", "ENDCLAUSE", "tPLAYACCEL", "tMETHOD", +  "tDOWN", "tELSE", "tELSIF", "tEXIT", "tGLOBAL", "tGO", "tIF", "tINTO", +  "tLOOP", "tMACRO", "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT", +  "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tNLELSE", +  "tFACTORY", "tOPEN", "tPLAY", "tDONE", "tINSTANCE", "tGE", "tLE", "tEQ", +  "tNEQ", "tAND", "tOR", "tNOT", "tMOD", "tAFTER", "tBEFORE", "tCONCAT",    "tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE",    "tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tME", "tENDIF",    "tENDREPEAT", "tENDTELL", "'<'", "'>'", "'&'", "'+'", "'-'", "'*'", @@ -757,30 +764,30 @@ static const yytype_uint16 yytoknum[] =       315,   316,   317,   318,   319,   320,   321,   322,   323,   324,       325,   326,   327,   328,   329,   330,   331,   332,   333,   334,       335,   336,   337,   338,   339,   340,   341,   342,   343,   344, -     345,   346,    60,    62,    38,    43,    45,    42,    47,    37, -      10,    40,    41,    91,    93,    44 +     345,   346,   347,    60,    62,    38,    43,    45,    42,    47, +      37,    10,    40,    41,    91,    93,    44  };  # endif  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  static const yytype_uint8 yyr1[] =  { -       0,   106,   107,   107,   107,   108,   108,   108,   109,   109, -     109,   109,   109,   109,   109,   109,   109,   109,   110,   110, -     110,   111,   111,   111,   111,   112,   112,   112,   112,   112, -     112,   112,   112,   113,   113,   114,   114,   115,   116,   116, -     117,   118,   119,   120,   121,   122,   123,   123,   123,   124, -     125,   126,   126,   126,   126,   126,   127,   127,   127,   127, -     127,   127,   127,   127,   127,   127,   127,   127,   127,   127, -     127,   127,   127,   127,   127,   127,   127,   127,   127,   127, -     127,   127,   127,   127,   127,   127,   127,   127,   127,   127, -     127,   127,   127,   127,   127,   127,   127,   127,   127,   127, -     128,   129,   129,   129,   129,   129,   129,   129,   129,   129, -     129,   129,   129,   129,   129,   129,   129,   130,   130,   131, -     131,   132,   132,   133,   133,   133,   133,   133,   133,   134, -     134,   135,   135,   135,   135,   136,   135,   138,   137,   137, -     139,   137,   137,   137,   140,   141,   141,   141,   141,   142, -     142,   142,   143,   144,   145,   145,   145,   146,   146 +       0,   107,   108,   108,   108,   109,   109,   109,   110,   110, +     110,   110,   110,   110,   110,   110,   110,   110,   111,   111, +     111,   112,   112,   112,   112,   113,   113,   113,   113,   113, +     113,   113,   113,   114,   114,   115,   115,   116,   117,   117, +     118,   119,   120,   121,   122,   123,   124,   124,   124,   125, +     126,   127,   127,   127,   127,   127,   128,   128,   128,   128, +     128,   128,   128,   128,   128,   128,   128,   128,   128,   128, +     128,   128,   128,   128,   128,   128,   128,   128,   128,   128, +     128,   128,   128,   128,   128,   128,   128,   128,   128,   128, +     128,   128,   128,   128,   128,   128,   128,   128,   128,   128, +     129,   130,   130,   130,   130,   130,   130,   130,   130,   130, +     130,   130,   130,   130,   130,   130,   130,   131,   131,   132, +     132,   133,   133,   134,   134,   134,   134,   134,   134,   135, +     135,   136,   136,   136,   136,   137,   136,   139,   138,   138, +     140,   138,   138,   138,   141,   142,   142,   142,   142,   143, +     143,   143,   144,   145,   146,   146,   146,   147,   147  };  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ @@ -860,50 +867,50 @@ static const yytype_int16 yydefgoto[] =  #define YYPACT_NINF -265  static const yytype_int16 yypact[] =  { -     312,   -76,  -265,  -265,   964,  -265,  -265,   964,   964,   964, -      20,  -265,   964,   964,    42,   997,  -265,  -265,  -265,  -265, -       4,    49,   844,  -265,    53,   964,   -38,    52,    60,    64, -     964,   904,    75,   964,   964,   964,   964,   964,   964,  -265, -      77,    78,     9,   964,   964,   964,   964,     6,  -265,  -265, -    -265,  -265,  -265,   964,    46,   964,   672,   964,  -265,  1514, -    -265,  -265,  -265,  -265,  -265,  -265,  -265,  -265,    13,   964, -    1514,  1514,  1514,  1514,    10,   964,  1514,    10,  -265,  -265, -     964,    10,   964,  -265,  -265,  -265,    11,  -265,   964,  -265, -      70,  -265,  1050,  -265,  -265,  1036,    88,  -265,     2,   964, -       3,    65,  -265,  1408,  -265,  1050,  -265,  -265,    17,  -265, -    1086,  1120,  1154,  1188,  1480,  -265,    19,  -265,    95,  -265, -    -265,  1442,  1514,     7,  -265,   402,  1514,   964,  1514,  -265, -    -265,   964,  1514,  -265,  -265,  1358,   964,   964,   964,   964, -     964,   964,   964,   964,   964,   964,   964,   964,   964,   964, -     964,   964,   964,    98,   964,  1036,   964,    24,  1442,   -13, -      24,    98,   100,  1514,   964,  -265,  -265,    73,   964,   964, -    -265,   964,   964,    82,  1394,   964,   964,  -265,   964,  -265, -     101,   964,   964,   964,   964,   964,   964,   964,   964,   964, -     964,   121,    -6,  -265,  -265,   964,  -265,  -265,  1514,    99, -    -265,  1514,   964,  -265,   -50,   -50,   -50,   -50,   144,   144, -    -265,   -34,   -50,   -50,   -50,   -50,   -34,   -17,   -17,  -265, -    -265,  -265,   -77,  1514,  -265,   -14,  -265,  1514,    98,  -265, -    -265,  1514,  1514,  1514,   -50,   964,   964,  1514,   -50,  1514, -    -265,  1514,  1222,  1514,  1256,  1514,  1290,  1514,  1324,  1514, -    1514,  -265,  -265,   964,  1514,   582,   -20,  -265,   102,  1514, -     582,    50,   124,    50,   -12,   -50,  1514,   964,   964,   964, -     964,    -1,  -265,  -265,    67,   103,   964,   582,   762,    68, -     131,  -265,  -265,  -265,    50,  1514,  1514,  1514,  1514,  -265, -    -265,   964,  1514,   123,  -265,  -265,  -265,   492,   582,  -265, -    1514,  -265,  -265,   128,   123,   964,   -23,   139,   582,  -265, -     582,  -265,    81,  -265,  1514,  -265,  -265,  -265,    71,   582, -      83,  -265,  -265,   134,   762,   145,   104,  -265,   582,  -265, -    -265,  -265,  -265,   106,   582,   107,  -265,  -265,  -265 +     312,   -42,  -265,  -265,   972,  -265,  -265,   972,   972,   972, +     -10,  -265,   972,   972,    58,  1005,  -265,  -265,  -265,  -265, +      16,    20,   850,  -265,    43,   972,    24,    42,    70,    76, +     972,   911,    78,   972,   972,   972,   972,   972,   972,  -265, +      80,    81,    10,   972,   972,   972,   972,     6,  -265,  -265, +    -265,  -265,  -265,   972,    45,   972,   676,   972,  -265,  1522, +    -265,  -265,  -265,  -265,  -265,  -265,  -265,  -265,    12,   972, +    1522,  1522,  1522,  1522,     9,   972,  1522,     9,  -265,  -265, +     972,     9,   972,  -265,  -265,  -265,    11,  -265,   972,  -265, +      68,  -265,  1058,  -265,  -265,  1044,    88,  -265,    -1,   972, +       0,    64,  -265,  1416,  -265,  1058,  -265,  -265,    18,  -265, +    1094,  1128,  1162,  1196,  1488,  -265,    19,  -265,    92,  -265, +    -265,  1450,  1522,    -3,  -265,   403,  1522,   972,  1522,  -265, +    -265,   972,  1522,  -265,  -265,  1366,   972,   972,   972,   972, +     972,   972,   972,   972,   972,   972,   972,   972,   972,   972, +     972,   972,   972,    98,   972,  1044,   972,    23,  1450,   -13, +      23,    98,   100,  1522,   972,  -265,  -265,    75,   972,   972, +    -265,   972,   972,    63,  1402,   972,   972,  -265,   972,  -265, +     119,   972,   972,   972,   972,   972,   972,   972,   972,   972, +     972,   121,    -7,  -265,  -265,   972,  -265,  -265,  1522,    99, +    -265,  1522,   972,  -265,   -51,   -51,   -51,   -51,   143,   143, +    -265,   -35,   -51,   -51,   -51,   -51,   -35,   -19,   -19,  -265, +    -265,  -265,   -82,  1522,  -265,   -78,  -265,  1522,    98,  -265, +    -265,  1522,  1522,  1522,   -51,   972,   972,  1522,   -51,  1522, +    -265,  1522,  1230,  1522,  1264,  1522,  1298,  1522,  1332,  1522, +    1522,  -265,  -265,   972,  1522,   585,   -21,  -265,   101,  1522, +     585,    47,   125,    47,   -20,   -51,  1522,   972,   972,   972, +     972,    -5,  -265,  -265,    66,   102,   972,   585,   767,    67, +     131,  -265,  -265,  -265,    47,  1522,  1522,  1522,  1522,  -265, +    -265,   972,  1522,   122,  -265,  -265,  -265,   494,   585,  -265, +    1522,  -265,  -265,   127,   122,   972,   -24,   139,   585,  -265, +     585,  -265,    83,  -265,  1522,  -265,  -265,  -265,    69,   585, +      85,  -265,  -265,   115,   767,   158,   103,  -265,   585,  -265, +    -265,  -265,  -265,   105,   585,   106,  -265,  -265,  -265  };  /* YYPGOTO[NTERM-NUM].  */  static const yytype_int16 yypgoto[] =  {      -265,  -265,    72,  -265,  -264,  -265,     1,  -265,  -112,  -265, -    -265,  -265,  -265,   143,  -265,   -81,    -8,   -94,  -265,  -265, -      -2,    -4,    33,   146,  -265,  -265,  -265,  -265,   -18,  -265, -    -265,  -265,  -265,  -265,  -265,  -151,  -265,  -247,   147,   -39, -      85 +    -265,  -265,  -265,   144,  -265,   -81,    -8,   -94,  -265,  -265, +      -2,    -4,    32,   145,  -265,  -265,  -265,  -265,   -18,  -265, +    -265,  -265,  -265,  -265,  -265,  -151,  -265,  -247,   146,   -39, +      79  };  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If @@ -914,26 +921,26 @@ static const yytype_int16 yypgoto[] =  static const yytype_int16 yytable[] =  {        70,    51,   161,    71,    72,    73,   124,   123,    76,    73, -     225,    73,    79,   106,   294,   315,   283,   275,    92,    96, -      97,    95,   142,   261,    67,   143,   103,   105,   262,   109, +     225,    73,    79,   106,   294,   315,   283,   275,    92,   261, +      75,    95,   142,   263,   262,   143,   103,   105,   262,   109,       110,   111,   112,   113,   114,   276,   157,   299,   142,   119,       120,   121,   122,   160,   148,   149,   150,   151,   152,   126, -      75,   128,   132,   135,     2,   142,    84,   171,   175,     5, -     330,   149,   150,   151,   152,   155,   316,    98,    99,   172, -     176,   122,    78,    16,   165,    17,   158,   264,   122,    85, -     151,   152,   100,    94,   163,   228,   263,   179,   284,   224, -     101,   262,   195,   262,   102,   174,   252,   173,    77,   253, -      81,   289,    14,   229,   195,   107,   125,   115,   117,   260, -     118,   194,   195,   127,   154,   156,   162,   164,   170,   177, -     199,   200,   180,   198,   191,   192,    51,   201,   221,   195, -     226,   240,   204,   205,   206,   207,   208,   209,   210,   211, -     212,   213,   214,   215,   216,   217,   218,   219,   220,   235, -     122,   251,   223,   257,   282,   280,   278,   290,   291,   295, +      85,   128,   132,   135,   142,   171,   175,    98,    99,    67, +     330,   149,   150,   151,   152,   155,   316,   172,   176,    84, +       2,   122,   100,    94,   165,     5,   158,   264,   122,   151, +     152,   284,    96,    97,   163,   228,   262,   179,    78,    16, +     224,    17,    77,   195,    81,   174,   252,   173,   289,   253, +     101,   195,   194,   195,    14,   229,   102,   125,   107,   260, +     115,   117,   118,   127,   154,   156,   164,   162,   170,   177, +     199,   200,   192,   198,   180,   191,    51,   201,   221,   195, +     226,   235,   204,   205,   206,   207,   208,   209,   210,   211, +     212,   213,   214,   215,   216,   217,   218,   219,   220,   240, +     122,   251,   223,   280,   257,   282,   278,   290,   291,   295,       227,   296,   302,   277,   231,   232,   311,   233,   234,   317, -     322,   237,   238,   327,   239,   331,   325,   241,   242,   243, -     244,   245,   246,   247,   248,   249,   250,   297,   329,   298, -     256,   254,   313,   258,   332,   336,   338,   196,   259,   131, -     230,     0,   133,   134,     0,   308,     0,   310,     0,   136, +     329,   237,   238,   322,   239,   325,   327,   241,   242,   243, +     244,   245,   246,   247,   248,   249,   250,   297,   331,   298, +     256,   254,   313,   258,   332,   336,   338,   196,   259,   230, +     131,   133,   134,     0,     0,   308,     0,   310,     0,   136,       137,   138,   139,     0,   271,   319,   142,     0,     0,   143,       144,   145,     0,     0,     0,     0,     0,   328,     0,     0,       321,   265,   266,     0,   324,   334,   146,   147,   148,   149, @@ -947,163 +954,164 @@ static const yytype_int16 yytable[] =         0,   326,    -5,     1,     0,     0,     0,     0,     0,     0,       333,     0,   335,     0,     2,     0,   337,     3,     4,     5,         0,     6,     7,     8,     9,    10,     0,    11,    12,    13, -       0,    14,    15,    16,     0,    17,     0,    18,    19,     0, -       0,     0,    20,    21,    22,    23,     0,     0,    24,     0, -       0,     0,     0,    25,    26,    27,     0,     0,    28,     0, -       0,     0,    29,    30,    31,     0,    32,     0,     0,     0, -       0,     0,     0,    33,     0,     0,     0,     0,     0,     0, -      34,    35,    36,    37,    38,     0,     0,    39,    40,    41, -      42,     0,     0,     0,     0,     0,     0,    43,    44,     0, -       0,     0,    -5,    45,     2,    46,     0,     3,     4,     5, -       0,     6,     7,     8,     9,    10,     0,    11,    12,    13, -       0,    14,    15,    16,     0,    17,     0,    18,    19,     0, -       0,     0,    20,    21,    22,    23,     0,     0,    24,     0, -       0,     0,     0,    25,    26,    27,     0,     0,    28,     0, -       0,     0,    29,    30,    31,     0,    32,     0,     0,     0, -       0,     0,     0,    33,     0,     0,     0,     0,     0,     0, -      34,    35,    36,    37,    38,     0,     0,    39,    40,    41, -      42,     0,     0,     0,     0,     0,     0,    43,    44,     0, -       0,     0,     0,    45,     2,    46,     0,     3,     4,     5, -       0,     6,     7,     8,     9,    10,     0,    11,    12,    13, -       0,    14,    15,    16,     0,    17,   307,    18,     0,     0, -       0,     0,    20,    21,    22,    23,     0,     0,     0,     0, -       0,     0,     0,    25,    26,    27,     0,     0,    28,     0, -       0,     0,     0,    30,    31,     0,    32,     0,     0,     0, -       0,     0,     0,    33,     0,     0,     0,     0,     0,     0, -      34,    35,    36,    37,    38,     0,     0,    39,    40,     0, -      42,     0,     0,     0,     0,     0,     0,    43,    44,     0, -       0,     0,   272,    45,     2,    46,     0,     3,     4,     5, -       0,     6,     7,     8,     9,    10,     0,    11,    12,    13, -       0,    14,    15,    16,     0,    17,     0,    18,     0,     0, -       0,     0,    20,    21,    22,    23,     0,     0,     0,     0, -       0,     0,     0,    25,    26,    27,     0,     0,    28,     0, -       0,     0,     0,    30,    31,     0,    32,     0,     0,     0, -       0,     0,     0,    33,     0,     0,     0,     0,     0,     0, -      34,    35,    36,    37,    38,     0,     0,    39,    40,     0, -      42,     0,     0,     0,     0,     0,     0,    43,    44,     0, -       0,     0,   272,    45,     2,    46,     0,     3,     4,     5, -       0,     6,     7,     8,     9,    10,     0,    11,    12,    13, -       0,    14,    15,    16,     0,    17,     0,    18,     0,     0, -       0,     0,    20,    21,    22,    23,     0,     0,     0,     0, -       0,     0,     0,    25,     0,    27,     0,     0,     0,     0, -       0,     0,     0,    30,    31,     0,    32,     0,     0,     0, -       0,     0,     0,    33,     0,     0,     0,     0,     0,     0, -      34,    35,    36,    37,    38,     0,     0,     0,    40,     0, -      42,     0,     0,     0,     0,     0,     0,    43,    44,     0, -       0,     0,     0,    45,     2,    46,     0,     3,     4,     5, -       0,     6,     7,     8,     9,    10,     0,    11,    12,    13, -       0,    14,    15,    16,     0,    17,     0,    18,     0,     0, -       0,     0,    20,    21,    22,     0,     0,     0,     0,     0, -       0,     0,     0,    25,     0,    27,     0,     0,     0,     0, -       0,     0,     0,    30,    31,     0,    32,     0,     0,     0, -       0,     0,     0,    33,     0,     0,     0,     0,     0,     0, -      34,    35,    36,    37,    38,     0,     0,     0,    40,     0, -      42,     0,     0,     0,     0,     0,     2,    43,    44,     3, -       4,     5,     0,    45,     0,    46,     0,     0,     0,    11, -      12,    13,     0,    14,    68,    16,     0,    17,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,    87, -       0,    88,    89,    90,    91,    69,     0,    27,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,    33,     2,     0,     0,     3, -       4,     5,    34,    35,    36,    37,    38,     0,     0,    11, -      12,    13,    42,    14,    68,    16,     0,    17,     0,    43, -      44,     0,     0,     0,     0,    45,     0,    46,     0,     0, -       0,    88,     0,    90,     0,    69,     0,    27,     0,     0, -       0,     0,     0,     0,     0,     0,     0,   104,     0,     0, -       0,     0,     0,     0,     0,    33,     2,     0,     0,     3, -       4,     5,    34,    35,    36,    37,    38,     0,     0,    11, -      12,    13,    42,    14,    68,    16,     0,    17,     0,    43, -      44,     0,     0,     0,     0,    45,     0,    46,     0,     2, -       0,     0,     3,     4,     5,    69,     0,    27,     0,     0, -       0,     0,    11,    12,    13,     0,    14,    68,    16,     0, -      17,     0,     0,     0,     0,    33,     0,     0,     0,     0, -       0,     0,    34,    35,    36,    37,    38,     0,    69,     0, -      27,     0,    42,     0,     0,     0,     0,     0,     0,    43, -      44,     0,     0,     0,     0,    45,     0,    46,    33,     0, +       0,    14,    15,    16,     0,    17,     0,     0,    18,    19, +       0,     0,     0,    20,    21,    22,    23,     0,     0,    24, +       0,     0,     0,     0,    25,    26,    27,     0,     0,    28, +       0,     0,     0,    29,    30,    31,     0,    32,     0,     0, +       0,     0,     0,     0,    33,     0,     0,     0,     0,     0, +       0,    34,    35,    36,    37,    38,     0,     0,    39,    40, +      41,    42,     0,     0,     0,     0,     0,     0,    43,    44, +       0,     0,     0,    -5,    45,     2,    46,     0,     3,     4, +       5,     0,     6,     7,     8,     9,    10,     0,    11,    12, +      13,     0,    14,    15,    16,     0,    17,     0,     0,    18, +      19,     0,     0,     0,    20,    21,    22,    23,     0,     0, +      24,     0,     0,     0,     0,    25,    26,    27,     0,     0, +      28,     0,     0,     0,    29,    30,    31,     0,    32,     0, +       0,     0,     0,     0,     0,    33,     0,     0,     0,     0, +       0,     0,    34,    35,    36,    37,    38,     0,     0,    39, +      40,    41,    42,     0,     0,     0,     0,     0,     0,    43, +      44,     0,     0,     0,     0,    45,     2,    46,     0,     3, +       4,     5,     0,     6,     7,     8,     9,    10,     0,    11, +      12,    13,     0,    14,    15,    16,     0,    17,     0,   307, +      18,     0,     0,     0,     0,    20,    21,    22,    23,     0, +       0,     0,     0,     0,     0,     0,    25,    26,    27,     0, +       0,    28,     0,     0,     0,     0,    30,    31,     0,    32, +       0,     0,     0,     0,     0,     0,    33,     0,     0,     0, +       0,     0,     0,    34,    35,    36,    37,    38,     0,     0, +      39,    40,     0,    42,     0,     0,     0,     0,     0,     0, +      43,    44,     0,     0,     0,   272,    45,     2,    46,     0, +       3,     4,     5,     0,     6,     7,     8,     9,    10,     0, +      11,    12,    13,     0,    14,    15,    16,     0,    17,     0, +       0,    18,     0,     0,     0,     0,    20,    21,    22,    23, +       0,     0,     0,     0,     0,     0,     0,    25,    26,    27, +       0,     0,    28,     0,     0,     0,     0,    30,    31,     0, +      32,     0,     0,     0,     0,     0,     0,    33,     0,     0, +       0,     0,     0,     0,    34,    35,    36,    37,    38,     0, +       0,    39,    40,     0,    42,     0,     0,     0,     0,     0, +       0,    43,    44,     0,     0,     0,   272,    45,     2,    46, +       0,     3,     4,     5,     0,     6,     7,     8,     9,    10, +       0,    11,    12,    13,     0,    14,    15,    16,     0,    17, +       0,     0,    18,     0,     0,     0,     0,    20,    21,    22, +      23,     0,     0,     0,     0,     0,     0,     0,    25,     0, +      27,     0,     0,     0,     0,     0,     0,     0,    30,    31, +       0,    32,     0,     0,     0,     0,     0,     0,    33,     0,         0,     0,     0,     0,     0,    34,    35,    36,    37,    38, -     167,     0,     0,     0,     0,    42,     0,     0,     0,     0, -       0,     0,    43,    44,     0,     0,     0,    88,    80,    90, -      46,   136,   137,   138,   139,   140,   141,     0,   142,   168, -     169,   143,   144,   145,     0,   136,   137,   138,   139,   140, -     141,     0,   142,     0,     0,   143,   144,   145,   146,   147, -     148,   149,   150,   151,   152,   181,     0,     0,     0,     0, -       0,   182,   146,   147,   148,   149,   150,   151,   152,     0, -       0,   136,   137,   138,   139,   140,   141,     0,   142,     0, -       0,   143,   144,   145,     0,     0,     0,     0,     0,   183, -       0,     0,     0,     0,     0,   184,     0,     0,   146,   147, -     148,   149,   150,   151,   152,   136,   137,   138,   139,   140, -     141,     0,   142,     0,     0,   143,   144,   145,     0,     0, -       0,     0,     0,   185,     0,     0,     0,     0,     0,   186, -       0,     0,   146,   147,   148,   149,   150,   151,   152,   136, -     137,   138,   139,   140,   141,     0,   142,     0,     0,   143, -     144,   145,     0,     0,     0,     0,     0,   187,     0,     0, -       0,     0,     0,   188,     0,     0,   146,   147,   148,   149, -     150,   151,   152,   136,   137,   138,   139,   140,   141,     0, -     142,     0,     0,   143,   144,   145,     0,     0,     0,     0, -       0,   267,     0,     0,     0,     0,     0,     0,     0,     0, -     146,   147,   148,   149,   150,   151,   152,   136,   137,   138, -     139,   140,   141,     0,   142,     0,     0,   143,   144,   145, -       0,     0,     0,     0,     0,   268,     0,     0,     0,     0, -       0,     0,     0,     0,   146,   147,   148,   149,   150,   151, -     152,   136,   137,   138,   139,   140,   141,     0,   142,     0, -       0,   143,   144,   145,     0,     0,     0,     0,     0,   269, -       0,     0,     0,     0,     0,     0,     0,     0,   146,   147, -     148,   149,   150,   151,   152,   136,   137,   138,   139,   140, -     141,     0,   142,     0,     0,   143,   144,   145,     0,     0, -       0,     0,     0,   270,     0,     0,     0,     0,     0,     0, -       0,     0,   146,   147,   148,   149,   150,   151,   152,   136, -     137,   138,   139,   140,   141,     0,   142,     0,     0,   143, -     144,   145,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,   202,     0,     0,   146,   147,   148,   149, -     150,   151,   152,   136,   137,   138,   139,   140,   141,     0, -     142,     0,     0,   143,   144,   145,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,   236, -     146,   147,   148,   149,   150,   151,   152,     0,   203,   136, -     137,   138,   139,   140,   141,   178,   142,     0,     0,   143, -     144,   145,     0,   136,   137,   138,   139,   140,   141,     0, -     142,     0,     0,   143,   144,   145,   146,   147,   148,   149, -     150,   151,   152,     0,     0,     0,     0,     0,     0,     0, -     146,   147,   148,   149,   150,   151,   152,   136,   137,   138, -     139,   140,   141,     0,   142,     0,     0,   143,   144,   145, +       0,     0,     0,    40,     0,    42,     0,     0,     0,     0, +       0,     0,    43,    44,     0,     0,     0,     0,    45,     2, +      46,     0,     3,     4,     5,     0,     6,     7,     8,     9, +      10,     0,    11,    12,    13,     0,    14,    15,    16,     0, +      17,     0,     0,    18,     0,     0,     0,     0,    20,    21, +      22,     0,     0,     0,     0,     0,     0,     0,     0,    25, +       0,    27,     0,     0,     0,     0,     0,     0,     0,    30, +      31,     0,    32,     0,     0,     0,     0,     0,     0,    33, +       0,     0,     0,     0,     0,     0,    34,    35,    36,    37, +      38,     0,     0,     0,    40,     0,    42,     0,     0,     0, +       0,     0,     2,    43,    44,     3,     4,     5,     0,    45, +       0,    46,     0,     0,     0,    11,    12,    13,     0,    14, +      68,    16,     0,    17,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,    87,     0,    88,    89, +      90,    91,    69,     0,    27,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,    33,     2,     0,     0,     3,     4,     5,    34, +      35,    36,    37,    38,     0,     0,    11,    12,    13,    42, +      14,    68,    16,     0,    17,     0,    43,    44,     0,     0, +       0,     0,    45,     0,    46,     0,     0,     0,     0,    88, +       0,    90,     0,    69,     0,    27,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   104,     0,     0,     0,     0, +       0,     0,     0,    33,     2,     0,     0,     3,     4,     5, +      34,    35,    36,    37,    38,     0,     0,    11,    12,    13, +      42,    14,    68,    16,     0,    17,     0,    43,    44,     0, +       0,     0,     0,    45,     0,    46,     0,     2,     0,     0, +       3,     4,     5,     0,    69,     0,    27,     0,     0,     0, +      11,    12,    13,     0,    14,    68,    16,     0,    17,     0, +       0,     0,     0,     0,    33,     0,     0,     0,     0,     0, +       0,    34,    35,    36,    37,    38,     0,    69,     0,    27, +       0,    42,     0,     0,     0,     0,     0,     0,    43,    44, +       0,     0,     0,     0,    45,     0,    46,    33,     0,     0, +       0,     0,     0,     0,    34,    35,    36,    37,    38,   167, +       0,     0,     0,     0,    42,     0,     0,     0,     0,     0, +       0,    43,    44,     0,     0,     0,    88,    80,    90,    46, +     136,   137,   138,   139,   140,   141,     0,   142,   168,   169, +     143,   144,   145,     0,   136,   137,   138,   139,   140,   141, +       0,   142,     0,     0,   143,   144,   145,   146,   147,   148, +     149,   150,   151,   152,   181,     0,     0,     0,     0,     0, +     182,   146,   147,   148,   149,   150,   151,   152,     0,     0, +     136,   137,   138,   139,   140,   141,     0,   142,     0,     0, +     143,   144,   145,     0,     0,     0,     0,     0,   183,     0, +       0,     0,     0,     0,   184,     0,     0,   146,   147,   148, +     149,   150,   151,   152,   136,   137,   138,   139,   140,   141, +       0,   142,     0,     0,   143,   144,   145,     0,     0,     0, +       0,     0,   185,     0,     0,     0,     0,     0,   186,     0, +       0,   146,   147,   148,   149,   150,   151,   152,   136,   137, +     138,   139,   140,   141,     0,   142,     0,     0,   143,   144, +     145,     0,     0,     0,     0,     0,   187,     0,     0,     0, +       0,     0,   188,     0,     0,   146,   147,   148,   149,   150, +     151,   152,   136,   137,   138,   139,   140,   141,     0,   142, +       0,     0,   143,   144,   145,     0,     0,     0,     0,     0, +     267,     0,     0,     0,     0,     0,     0,     0,     0,   146, +     147,   148,   149,   150,   151,   152,   136,   137,   138,   139, +     140,   141,     0,   142,     0,     0,   143,   144,   145,     0, +       0,     0,     0,     0,   268,     0,     0,     0,     0,     0, +       0,     0,     0,   146,   147,   148,   149,   150,   151,   152, +     136,   137,   138,   139,   140,   141,     0,   142,     0,     0, +     143,   144,   145,     0,     0,     0,     0,     0,   269,     0, +       0,     0,     0,     0,     0,     0,     0,   146,   147,   148, +     149,   150,   151,   152,   136,   137,   138,   139,   140,   141, +       0,   142,     0,     0,   143,   144,   145,     0,     0,     0, +       0,     0,   270,     0,     0,     0,     0,     0,     0,     0, +       0,   146,   147,   148,   149,   150,   151,   152,   136,   137, +     138,   139,   140,   141,     0,   142,     0,     0,   143,   144, +     145,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,   202,     0,     0,   146,   147,   148,   149,   150, +     151,   152,   136,   137,   138,   139,   140,   141,     0,   142, +       0,     0,   143,   144,   145,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,   236,   146, +     147,   148,   149,   150,   151,   152,     0,   203,   136,   137, +     138,   139,   140,   141,   178,   142,     0,     0,   143,   144, +     145,     0,   136,   137,   138,   139,   140,   141,     0,   142, +       0,     0,   143,   144,   145,   146,   147,   148,   149,   150, +     151,   152,     0,     0,     0,     0,     0,     0,     0,   146, +     147,   148,   149,   150,   151,   152,   136,   137,   138,   139, +     140,   141,     0,   142,     0,     0,   143,   144,   145,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,   146,   147,   148,   149,   150,   151, -     152,     0,     0,     0,   193,   136,   137,   138,   139,   140, -     141,     0,   142,     0,     0,   143,   144,   145,     0,     0, -       0,     0,     0,   189,   190,     0,     0,     0,     0,     0, -       0,     0,   146,   147,   148,   149,   150,   151,   152,   136, -     137,   138,   139,   140,   141,     0,   142,     0,     0,   143, -     144,   145,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,   146,   147,   148,   149, -     150,   151,   152 +       0,     0,     0,   146,   147,   148,   149,   150,   151,   152, +       0,     0,     0,   193,   136,   137,   138,   139,   140,   141, +       0,   142,     0,     0,   143,   144,   145,     0,     0,     0, +       0,     0,   189,   190,     0,     0,     0,     0,     0,     0, +       0,   146,   147,   148,   149,   150,   151,   152,   136,   137, +     138,   139,   140,   141,     0,   142,     0,     0,   143,   144, +     145,     0,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   146,   147,   148,   149,   150, +     151,   152  };  static const yytype_int16 yycheck[] =  {         4,     0,    83,     7,     8,     9,     0,    46,    12,    13, -     161,    15,    14,    31,   278,    38,   263,    37,    22,    57, -      58,    25,    72,   100,   100,    75,    30,    31,   105,    33, -      34,    35,    36,    37,    38,    55,    75,   284,    72,    43, -      44,    45,    46,    82,    94,    95,    96,    97,    98,    53, -      30,    55,    56,    57,    12,    72,    52,    55,    55,    17, -     324,    95,    96,    97,    98,    69,    89,    15,    16,    67, -      67,    75,    30,    31,    92,    33,    80,   228,    82,    30, -      97,    98,    30,    30,    88,   166,   100,   105,   100,   102, -      30,   105,   105,   105,    30,    99,   102,    99,    13,   105, -      15,   102,    29,    30,   105,    30,   100,    30,    30,   203, -     101,   104,   105,    67,   101,   105,   105,    47,    30,    54, -     128,   129,   105,   127,   105,    30,   125,   131,    30,   105, -      30,    30,   136,   137,   138,   139,   140,   141,   142,   143, -     144,   145,   146,   147,   148,   149,   150,   151,   152,    67, -     154,    30,   156,    54,    30,   105,    54,    90,    55,    91, -     164,    30,    39,   257,   168,   169,    38,   171,   172,    30, -      89,   175,   176,    90,   178,    30,   105,   181,   182,   183, -     184,   185,   186,   187,   188,   189,   190,   281,    54,   283, -     198,   195,   304,   201,    90,    89,    89,   125,   202,    56, -     167,    -1,    56,    56,    -1,   299,    -1,   301,    -1,    65, -      66,    67,    68,    -1,   253,   309,    72,    -1,    -1,    75, -      76,    77,    -1,    -1,    -1,    -1,    -1,   321,    -1,    -1, -     311,   235,   236,    -1,   315,   329,    92,    93,    94,    95, -      96,    97,    98,    -1,    -1,    -1,    -1,   255,    -1,   253, +     161,    15,    14,    31,   278,    39,   263,    38,    22,   101, +      30,    25,    73,   101,   106,    76,    30,    31,   106,    33, +      34,    35,    36,    37,    38,    56,    75,   284,    73,    43, +      44,    45,    46,    82,    95,    96,    97,    98,    99,    53, +      30,    55,    56,    57,    73,    56,    56,    15,    16,   101, +     324,    96,    97,    98,    99,    69,    90,    68,    68,    53, +      12,    75,    30,    30,    92,    17,    80,   228,    82,    98, +      99,   101,    58,    59,    88,   166,   106,   105,    30,    31, +     103,    33,    13,   106,    15,    99,   103,    99,   103,   106, +      30,   106,   105,   106,    29,    30,    30,   101,    30,   203, +      30,    30,   102,    68,   102,   106,    48,   106,    30,    55, +     128,   129,    30,   127,   106,   106,   125,   131,    30,   106, +      30,    68,   136,   137,   138,   139,   140,   141,   142,   143, +     144,   145,   146,   147,   148,   149,   150,   151,   152,    30, +     154,    30,   156,   106,    55,    30,    55,    91,    56,    92, +     164,    30,    40,   257,   168,   169,    39,   171,   172,    30, +      55,   175,   176,    90,   178,   106,    91,   181,   182,   183, +     184,   185,   186,   187,   188,   189,   190,   281,    30,   283, +     198,   195,   304,   201,    91,    90,    90,   125,   202,   167, +      56,    56,    56,    -1,    -1,   299,    -1,   301,    -1,    66, +      67,    68,    69,    -1,   253,   309,    73,    -1,    -1,    76, +      77,    78,    -1,    -1,    -1,    -1,    -1,   321,    -1,    -1, +     311,   235,   236,    -1,   315,   329,    93,    94,    95,    96, +      97,    98,    99,    -1,    -1,    -1,    -1,   255,    -1,   253,        -1,    -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,   267,   268,   269,   270,    -1,    -1,   277,        -1,    -1,   276,    -1,    -1,    -1,    -1,    -1,    -1,    -1, @@ -1113,134 +1121,135 @@ static const yytype_int16 yycheck[] =        -1,   319,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,       328,    -1,   330,    -1,    12,    -1,   334,    15,    16,    17,        -1,    19,    20,    21,    22,    23,    -1,    25,    26,    27, -      -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    -1, -      -1,    -1,    40,    41,    42,    43,    -1,    -1,    46,    -1, -      -1,    -1,    -1,    51,    52,    53,    -1,    -1,    56,    -1, -      -1,    -1,    60,    61,    62,    -1,    64,    -1,    -1,    -1, -      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1, -      78,    79,    80,    81,    82,    -1,    -1,    85,    86,    87, -      88,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    -1, -      -1,    -1,   100,   101,    12,   103,    -1,    15,    16,    17, -      -1,    19,    20,    21,    22,    23,    -1,    25,    26,    27, -      -1,    29,    30,    31,    -1,    33,    -1,    35,    36,    -1, -      -1,    -1,    40,    41,    42,    43,    -1,    -1,    46,    -1, -      -1,    -1,    -1,    51,    52,    53,    -1,    -1,    56,    -1, -      -1,    -1,    60,    61,    62,    -1,    64,    -1,    -1,    -1, -      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1, -      78,    79,    80,    81,    82,    -1,    -1,    85,    86,    87, -      88,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    -1, -      -1,    -1,    -1,   101,    12,   103,    -1,    15,    16,    17, -      -1,    19,    20,    21,    22,    23,    -1,    25,    26,    27, -      -1,    29,    30,    31,    -1,    33,    34,    35,    -1,    -1, -      -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    51,    52,    53,    -1,    -1,    56,    -1, -      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    -1,    -1, -      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1, -      78,    79,    80,    81,    82,    -1,    -1,    85,    86,    -1, -      88,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    -1, -      -1,    -1,   100,   101,    12,   103,    -1,    15,    16,    17, -      -1,    19,    20,    21,    22,    23,    -1,    25,    26,    27, -      -1,    29,    30,    31,    -1,    33,    -1,    35,    -1,    -1, -      -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    51,    52,    53,    -1,    -1,    56,    -1, -      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    -1,    -1, -      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1, -      78,    79,    80,    81,    82,    -1,    -1,    85,    86,    -1, -      88,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    -1, -      -1,    -1,   100,   101,    12,   103,    -1,    15,    16,    17, -      -1,    19,    20,    21,    22,    23,    -1,    25,    26,    27, -      -1,    29,    30,    31,    -1,    33,    -1,    35,    -1,    -1, -      -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    -1,    -1, -      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1, -      78,    79,    80,    81,    82,    -1,    -1,    -1,    86,    -1, -      88,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    -1, -      -1,    -1,    -1,   101,    12,   103,    -1,    15,    16,    17, -      -1,    19,    20,    21,    22,    23,    -1,    25,    26,    27, -      -1,    29,    30,    31,    -1,    33,    -1,    35,    -1,    -1, -      -1,    -1,    40,    41,    42,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    61,    62,    -1,    64,    -1,    -1,    -1, -      -1,    -1,    -1,    71,    -1,    -1,    -1,    -1,    -1,    -1, -      78,    79,    80,    81,    82,    -1,    -1,    -1,    86,    -1, -      88,    -1,    -1,    -1,    -1,    -1,    12,    95,    96,    15, -      16,    17,    -1,   101,    -1,   103,    -1,    -1,    -1,    25, -      26,    27,    -1,    29,    30,    31,    -1,    33,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45, -      -1,    47,    48,    49,    50,    51,    -1,    53,    -1,    -1, +      -1,    29,    30,    31,    -1,    33,    -1,    -1,    36,    37, +      -1,    -1,    -1,    41,    42,    43,    44,    -1,    -1,    47, +      -1,    -1,    -1,    -1,    52,    53,    54,    -1,    -1,    57, +      -1,    -1,    -1,    61,    62,    63,    -1,    65,    -1,    -1, +      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1, +      -1,    79,    80,    81,    82,    83,    -1,    -1,    86,    87, +      88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97, +      -1,    -1,    -1,   101,   102,    12,   104,    -1,    15,    16, +      17,    -1,    19,    20,    21,    22,    23,    -1,    25,    26, +      27,    -1,    29,    30,    31,    -1,    33,    -1,    -1,    36, +      37,    -1,    -1,    -1,    41,    42,    43,    44,    -1,    -1, +      47,    -1,    -1,    -1,    -1,    52,    53,    54,    -1,    -1, +      57,    -1,    -1,    -1,    61,    62,    63,    -1,    65,    -1, +      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1, +      -1,    -1,    79,    80,    81,    82,    83,    -1,    -1,    86, +      87,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96, +      97,    -1,    -1,    -1,    -1,   102,    12,   104,    -1,    15, +      16,    17,    -1,    19,    20,    21,    22,    23,    -1,    25, +      26,    27,    -1,    29,    30,    31,    -1,    33,    -1,    35, +      36,    -1,    -1,    -1,    -1,    41,    42,    43,    44,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    52,    53,    54,    -1, +      -1,    57,    -1,    -1,    -1,    -1,    62,    63,    -1,    65, +      -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1, +      -1,    -1,    -1,    79,    80,    81,    82,    83,    -1,    -1, +      86,    87,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1, +      96,    97,    -1,    -1,    -1,   101,   102,    12,   104,    -1, +      15,    16,    17,    -1,    19,    20,    21,    22,    23,    -1, +      25,    26,    27,    -1,    29,    30,    31,    -1,    33,    -1, +      -1,    36,    -1,    -1,    -1,    -1,    41,    42,    43,    44, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    52,    53,    54, +      -1,    -1,    57,    -1,    -1,    -1,    -1,    62,    63,    -1, +      65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1, +      -1,    -1,    -1,    -1,    79,    80,    81,    82,    83,    -1, +      -1,    86,    87,    -1,    89,    -1,    -1,    -1,    -1,    -1, +      -1,    96,    97,    -1,    -1,    -1,   101,   102,    12,   104, +      -1,    15,    16,    17,    -1,    19,    20,    21,    22,    23, +      -1,    25,    26,    27,    -1,    29,    30,    31,    -1,    33, +      -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    42,    43, +      44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    52,    -1, +      54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    63, +      -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1, +      -1,    -1,    -1,    -1,    -1,    79,    80,    81,    82,    83, +      -1,    -1,    -1,    87,    -1,    89,    -1,    -1,    -1,    -1, +      -1,    -1,    96,    97,    -1,    -1,    -1,    -1,   102,    12, +     104,    -1,    15,    16,    17,    -1,    19,    20,    21,    22, +      23,    -1,    25,    26,    27,    -1,    29,    30,    31,    -1, +      33,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    42, +      43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    52, +      -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62, +      63,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72, +      -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    82, +      83,    -1,    -1,    -1,    87,    -1,    89,    -1,    -1,    -1, +      -1,    -1,    12,    96,    97,    15,    16,    17,    -1,   102, +      -1,   104,    -1,    -1,    -1,    25,    26,    27,    -1,    29, +      30,    31,    -1,    33,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    48,    49, +      50,    51,    52,    -1,    54,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    71,    12,    -1,    -1,    15, -      16,    17,    78,    79,    80,    81,    82,    -1,    -1,    25, -      26,    27,    88,    29,    30,    31,    -1,    33,    -1,    95, -      96,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    -1, -      -1,    47,    -1,    49,    -1,    51,    -1,    53,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    71,    12,    -1,    -1,    15, -      16,    17,    78,    79,    80,    81,    82,    -1,    -1,    25, -      26,    27,    88,    29,    30,    31,    -1,    33,    -1,    95, -      96,    -1,    -1,    -1,    -1,   101,    -1,   103,    -1,    12, -      -1,    -1,    15,    16,    17,    51,    -1,    53,    -1,    -1, -      -1,    -1,    25,    26,    27,    -1,    29,    30,    31,    -1, -      33,    -1,    -1,    -1,    -1,    71,    -1,    -1,    -1,    -1, -      -1,    -1,    78,    79,    80,    81,    82,    -1,    51,    -1, -      53,    -1,    88,    -1,    -1,    -1,    -1,    -1,    -1,    95, -      96,    -1,    -1,    -1,    -1,   101,    -1,   103,    71,    -1, -      -1,    -1,    -1,    -1,    -1,    78,    79,    80,    81,    82, -      44,    -1,    -1,    -1,    -1,    88,    -1,    -1,    -1,    -1, -      -1,    -1,    95,    96,    -1,    -1,    -1,    47,   101,    49, -     103,    65,    66,    67,    68,    69,    70,    -1,    72,    73, -      74,    75,    76,    77,    -1,    65,    66,    67,    68,    69, -      70,    -1,    72,    -1,    -1,    75,    76,    77,    92,    93, -      94,    95,    96,    97,    98,    49,    -1,    -1,    -1,    -1, -      -1,    55,    92,    93,    94,    95,    96,    97,    98,    -1, -      -1,    65,    66,    67,    68,    69,    70,    -1,    72,    -1, -      -1,    75,    76,    77,    -1,    -1,    -1,    -1,    -1,    49, -      -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    92,    93, -      94,    95,    96,    97,    98,    65,    66,    67,    68,    69, -      70,    -1,    72,    -1,    -1,    75,    76,    77,    -1,    -1, -      -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    55, -      -1,    -1,    92,    93,    94,    95,    96,    97,    98,    65, -      66,    67,    68,    69,    70,    -1,    72,    -1,    -1,    75, -      76,    77,    -1,    -1,    -1,    -1,    -1,    49,    -1,    -1, -      -1,    -1,    -1,    55,    -1,    -1,    92,    93,    94,    95, -      96,    97,    98,    65,    66,    67,    68,    69,    70,    -1, -      72,    -1,    -1,    75,    76,    77,    -1,    -1,    -1,    -1, -      -1,    49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      92,    93,    94,    95,    96,    97,    98,    65,    66,    67, -      68,    69,    70,    -1,    72,    -1,    -1,    75,    76,    77, -      -1,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    92,    93,    94,    95,    96,    97, -      98,    65,    66,    67,    68,    69,    70,    -1,    72,    -1, -      -1,    75,    76,    77,    -1,    -1,    -1,    -1,    -1,    49, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93, -      94,    95,    96,    97,    98,    65,    66,    67,    68,    69, -      70,    -1,    72,    -1,    -1,    75,    76,    77,    -1,    -1, -      -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    92,    93,    94,    95,    96,    97,    98,    65, -      66,    67,    68,    69,    70,    -1,    72,    -1,    -1,    75, -      76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    55,    -1,    -1,    92,    93,    94,    95, -      96,    97,    98,    65,    66,    67,    68,    69,    70,    -1, -      72,    -1,    -1,    75,    76,    77,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55, -      92,    93,    94,    95,    96,    97,    98,    -1,   100,    65, -      66,    67,    68,    69,    70,    57,    72,    -1,    -1,    75, -      76,    77,    -1,    65,    66,    67,    68,    69,    70,    -1, -      72,    -1,    -1,    75,    76,    77,    92,    93,    94,    95, -      96,    97,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      92,    93,    94,    95,    96,    97,    98,    65,    66,    67, -      68,    69,    70,    -1,    72,    -1,    -1,    75,    76,    77, +      -1,    -1,    72,    12,    -1,    -1,    15,    16,    17,    79, +      80,    81,    82,    83,    -1,    -1,    25,    26,    27,    89, +      29,    30,    31,    -1,    33,    -1,    96,    97,    -1,    -1, +      -1,    -1,   102,    -1,   104,    -1,    -1,    -1,    -1,    48, +      -1,    50,    -1,    52,    -1,    54,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    72,    12,    -1,    -1,    15,    16,    17, +      79,    80,    81,    82,    83,    -1,    -1,    25,    26,    27, +      89,    29,    30,    31,    -1,    33,    -1,    96,    97,    -1, +      -1,    -1,    -1,   102,    -1,   104,    -1,    12,    -1,    -1, +      15,    16,    17,    -1,    52,    -1,    54,    -1,    -1,    -1, +      25,    26,    27,    -1,    29,    30,    31,    -1,    33,    -1, +      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1, +      -1,    79,    80,    81,    82,    83,    -1,    52,    -1,    54, +      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97, +      -1,    -1,    -1,    -1,   102,    -1,   104,    72,    -1,    -1, +      -1,    -1,    -1,    -1,    79,    80,    81,    82,    83,    45, +      -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1, +      -1,    96,    97,    -1,    -1,    -1,    48,   102,    50,   104, +      66,    67,    68,    69,    70,    71,    -1,    73,    74,    75, +      76,    77,    78,    -1,    66,    67,    68,    69,    70,    71, +      -1,    73,    -1,    -1,    76,    77,    78,    93,    94,    95, +      96,    97,    98,    99,    50,    -1,    -1,    -1,    -1,    -1, +      56,    93,    94,    95,    96,    97,    98,    99,    -1,    -1, +      66,    67,    68,    69,    70,    71,    -1,    73,    -1,    -1, +      76,    77,    78,    -1,    -1,    -1,    -1,    -1,    50,    -1, +      -1,    -1,    -1,    -1,    56,    -1,    -1,    93,    94,    95, +      96,    97,    98,    99,    66,    67,    68,    69,    70,    71, +      -1,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1, +      -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    56,    -1, +      -1,    93,    94,    95,    96,    97,    98,    99,    66,    67, +      68,    69,    70,    71,    -1,    73,    -1,    -1,    76,    77, +      78,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1, +      -1,    -1,    56,    -1,    -1,    93,    94,    95,    96,    97, +      98,    99,    66,    67,    68,    69,    70,    71,    -1,    73, +      -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1, +      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    93, +      94,    95,    96,    97,    98,    99,    66,    67,    68,    69, +      70,    71,    -1,    73,    -1,    -1,    76,    77,    78,    -1, +      -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    99, +      66,    67,    68,    69,    70,    71,    -1,    73,    -1,    -1, +      76,    77,    78,    -1,    -1,    -1,    -1,    -1,    50,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95, +      96,    97,    98,    99,    66,    67,    68,    69,    70,    71, +      -1,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1, +      -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    93,    94,    95,    96,    97,    98,    99,    66,    67, +      68,    69,    70,    71,    -1,    73,    -1,    -1,    76,    77, +      78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    56,    -1,    -1,    93,    94,    95,    96,    97, +      98,    99,    66,    67,    68,    69,    70,    71,    -1,    73, +      -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,    93, +      94,    95,    96,    97,    98,    99,    -1,   101,    66,    67, +      68,    69,    70,    71,    58,    73,    -1,    -1,    76,    77, +      78,    -1,    66,    67,    68,    69,    70,    71,    -1,    73, +      -1,    -1,    76,    77,    78,    93,    94,    95,    96,    97, +      98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    93, +      94,    95,    96,    97,    98,    99,    66,    67,    68,    69, +      70,    71,    -1,    73,    -1,    -1,    76,    77,    78,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    92,    93,    94,    95,    96,    97, -      98,    -1,    -1,    -1,   102,    65,    66,    67,    68,    69, -      70,    -1,    72,    -1,    -1,    75,    76,    77,    -1,    -1, -      -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    92,    93,    94,    95,    96,    97,    98,    65, -      66,    67,    68,    69,    70,    -1,    72,    -1,    -1,    75, -      76,    77,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    94,    95, -      96,    97,    98 +      -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    99, +      -1,    -1,    -1,   103,    66,    67,    68,    69,    70,    71, +      -1,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1, +      -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    93,    94,    95,    96,    97,    98,    99,    66,    67, +      68,    69,    70,    71,    -1,    73,    -1,    -1,    76,    77, +      78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    93,    94,    95,    96,    97, +      98,    99  };  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1248,39 +1257,39 @@ static const yytype_int16 yycheck[] =  static const yytype_uint8 yystos[] =  {         0,     1,    12,    15,    16,    17,    19,    20,    21,    22, -      23,    25,    26,    27,    29,    30,    31,    33,    35,    36, -      40,    41,    42,    43,    46,    51,    52,    53,    56,    60, -      61,    62,    64,    71,    78,    79,    80,    81,    82,    85, -      86,    87,    88,    95,    96,   101,   103,   107,   108,   109, -     110,   112,   113,   117,   118,   119,   124,   125,   126,   127, -     128,   129,   133,   135,   137,   140,   144,   100,    30,    51, -     127,   127,   127,   127,   146,    30,   127,   146,    30,   126, -     101,   146,   136,   139,    52,    30,   130,    45,    47,    48, -      49,    50,   127,   134,    30,   127,    57,    58,    15,    16, -      30,    30,    30,   127,    63,   127,   134,    30,   132,   127, -     127,   127,   127,   127,   127,    30,   131,    30,   101,   127, -     127,   127,   127,   145,     0,   100,   127,    67,   127,   111, -     116,   119,   127,   129,   144,   127,    65,    66,    67,    68, -      69,    70,    72,    75,    76,    77,    92,    93,    94,    95, -      96,    97,    98,   121,   101,   127,   105,   145,   127,   145, -     145,   121,   105,   127,    47,   134,   138,    44,    73,    74, -      30,    55,    67,   126,   127,    55,    67,    54,    57,   134, -     105,    49,    55,    49,    55,    49,    55,    49,    55,    83, -      84,   105,    30,   102,   104,   105,   108,   122,   127,   122, -     122,   127,    55,   100,   127,   127,   127,   127,   127,   127, -     127,   127,   127,   127,   127,   127,   127,   127,   127,   127, -     127,    30,   141,   127,   102,   141,    30,   127,   121,    30, -     128,   127,   127,   127,   127,    67,    55,   127,   127,   127, -      30,   127,   127,   127,   127,   127,   127,   127,   127,   127, -     127,    30,   102,   105,   127,   123,   122,    54,   122,   127, -     123,   100,   105,   100,   141,   127,   127,    49,    49,    49, -      49,   145,   100,   112,   122,    37,    55,   123,    54,   122, -     105,   143,    30,   143,   100,   127,   127,   127,   127,   102, -      90,    55,   127,   122,   110,    91,    30,   123,   123,   143, -     127,   122,    39,   114,   115,   120,   122,    34,   123,   122, -     123,    38,   122,   114,   127,    38,    89,    30,   142,   123, -     122,   121,    89,   122,   121,   105,   122,    90,   123,    54, -     110,    30,    90,   122,   123,   122,    89,   122,    89 +      23,    25,    26,    27,    29,    30,    31,    33,    36,    37, +      41,    42,    43,    44,    47,    52,    53,    54,    57,    61, +      62,    63,    65,    72,    79,    80,    81,    82,    83,    86, +      87,    88,    89,    96,    97,   102,   104,   108,   109,   110, +     111,   113,   114,   118,   119,   120,   125,   126,   127,   128, +     129,   130,   134,   136,   138,   141,   145,   101,    30,    52, +     128,   128,   128,   128,   147,    30,   128,   147,    30,   127, +     102,   147,   137,   140,    53,    30,   131,    46,    48,    49, +      50,    51,   128,   135,    30,   128,    58,    59,    15,    16, +      30,    30,    30,   128,    64,   128,   135,    30,   133,   128, +     128,   128,   128,   128,   128,    30,   132,    30,   102,   128, +     128,   128,   128,   146,     0,   101,   128,    68,   128,   112, +     117,   120,   128,   130,   145,   128,    66,    67,    68,    69, +      70,    71,    73,    76,    77,    78,    93,    94,    95,    96, +      97,    98,    99,   122,   102,   128,   106,   146,   128,   146, +     146,   122,   106,   128,    48,   135,   139,    45,    74,    75, +      30,    56,    68,   127,   128,    56,    68,    55,    58,   135, +     106,    50,    56,    50,    56,    50,    56,    50,    56,    84, +      85,   106,    30,   103,   105,   106,   109,   123,   128,   123, +     123,   128,    56,   101,   128,   128,   128,   128,   128,   128, +     128,   128,   128,   128,   128,   128,   128,   128,   128,   128, +     128,    30,   142,   128,   103,   142,    30,   128,   122,    30, +     129,   128,   128,   128,   128,    68,    56,   128,   128,   128, +      30,   128,   128,   128,   128,   128,   128,   128,   128,   128, +     128,    30,   103,   106,   128,   124,   123,    55,   123,   128, +     124,   101,   106,   101,   142,   128,   128,    50,    50,    50, +      50,   146,   101,   113,   123,    38,    56,   124,    55,   123, +     106,   144,    30,   144,   101,   128,   128,   128,   128,   103, +      91,    56,   128,   123,   111,    92,    30,   124,   124,   144, +     128,   123,    40,   115,   116,   121,   123,    35,   124,   123, +     124,    39,   123,   115,   128,    39,    90,    30,   143,   124, +     123,   122,    90,   123,   122,   106,   123,    91,   124,    55, +     111,    30,    91,   123,   124,   123,    90,   123,    90  };  #define yyerrok		(yyerrstatus = 0) @@ -2095,12 +2104,12 @@ yyreduce:    switch (yyn)      {          case 4: -#line 127 "engines/director/lingo/lingo-gr.y" +#line 132 "engines/director/lingo/lingo-gr.y"      { yyerrok; ;}      break;    case 8: -#line 135 "engines/director/lingo/lingo-gr.y" +#line 140 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_varpush);  		g_lingo->codeString((yyvsp[(4) - (4)].s)->c_str()); @@ -2110,24 +2119,24 @@ yyreduce:      break;    case 9: -#line 141 "engines/director/lingo/lingo-gr.y" +#line 146 "engines/director/lingo/lingo-gr.y"      {  			g_lingo->code1(g_lingo->c_assign);  			(yyval.code) = (yyvsp[(2) - (4)].code); ;}      break;    case 10: -#line 144 "engines/director/lingo/lingo-gr.y" +#line 149 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->code1(g_lingo->c_after); ;}      break;    case 11: -#line 145 "engines/director/lingo/lingo-gr.y" +#line 150 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->code1(g_lingo->c_before); ;}      break;    case 12: -#line 146 "engines/director/lingo/lingo-gr.y" +#line 151 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_varpush);  		g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str()); @@ -2137,7 +2146,7 @@ yyreduce:      break;    case 13: -#line 152 "engines/director/lingo/lingo-gr.y" +#line 157 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(0); // Put dummy id @@ -2148,7 +2157,7 @@ yyreduce:      break;    case 14: -#line 159 "engines/director/lingo/lingo-gr.y" +#line 164 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_varpush);  		g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str()); @@ -2158,7 +2167,7 @@ yyreduce:      break;    case 15: -#line 165 "engines/director/lingo/lingo-gr.y" +#line 170 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(0); // Put dummy id @@ -2169,7 +2178,7 @@ yyreduce:      break;    case 16: -#line 172 "engines/director/lingo/lingo-gr.y" +#line 177 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_swap);  		g_lingo->code1(g_lingo->c_theentityassign); @@ -2179,7 +2188,7 @@ yyreduce:      break;    case 17: -#line 178 "engines/director/lingo/lingo-gr.y" +#line 183 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_swap);  		g_lingo->code1(g_lingo->c_theentityassign); @@ -2189,7 +2198,7 @@ yyreduce:      break;    case 27: -#line 203 "engines/director/lingo/lingo-gr.y" +#line 208 "engines/director/lingo/lingo-gr.y"      {  		inst body = 0, end = 0;  		WRITE_UINT32(&body, (yyvsp[(3) - (6)].code) - (yyvsp[(1) - (6)].code)); @@ -2199,7 +2208,7 @@ yyreduce:      break;    case 28: -#line 214 "engines/director/lingo/lingo-gr.y" +#line 219 "engines/director/lingo/lingo-gr.y"      {  		inst init = 0, finish = 0, body = 0, end = 0, inc = 0;  		WRITE_UINT32(&init, (yyvsp[(3) - (10)].code) - (yyvsp[(1) - (10)].code)); @@ -2215,7 +2224,7 @@ yyreduce:      break;    case 29: -#line 231 "engines/director/lingo/lingo-gr.y" +#line 236 "engines/director/lingo/lingo-gr.y"      {  		inst init = 0, finish = 0, body = 0, end = 0, inc = 0;  		WRITE_UINT32(&init, (yyvsp[(3) - (11)].code) - (yyvsp[(1) - (11)].code)); @@ -2231,7 +2240,7 @@ yyreduce:      break;    case 30: -#line 243 "engines/director/lingo/lingo-gr.y" +#line 248 "engines/director/lingo/lingo-gr.y"      {  		inst end = 0;  		WRITE_UINT32(&end, (yyvsp[(3) - (3)].code) - (yyvsp[(1) - (3)].code)); @@ -2240,20 +2249,20 @@ yyreduce:      break;    case 31: -#line 248 "engines/director/lingo/lingo-gr.y" +#line 253 "engines/director/lingo/lingo-gr.y"      {  			warning("STUB: TELL is not implemented"); ;}      break;    case 32: -#line 250 "engines/director/lingo/lingo-gr.y" +#line 255 "engines/director/lingo/lingo-gr.y"      {  			warning("STUB: TELL is not implemented");  		;}      break;    case 33: -#line 255 "engines/director/lingo/lingo-gr.y" +#line 260 "engines/director/lingo/lingo-gr.y"      {  		inst then = 0, else1 = 0, end = 0;  		WRITE_UINT32(&then, (yyvsp[(3) - (9)].code) - (yyvsp[(1) - (9)].code)); @@ -2267,7 +2276,7 @@ yyreduce:      break;    case 34: -#line 265 "engines/director/lingo/lingo-gr.y" +#line 270 "engines/director/lingo/lingo-gr.y"      {  		inst then = 0, else1 = 0, end = 0;  		WRITE_UINT32(&then, (yyvsp[(3) - (12)].code) - (yyvsp[(1) - (12)].code)); @@ -2281,7 +2290,7 @@ yyreduce:      break;    case 37: -#line 281 "engines/director/lingo/lingo-gr.y" +#line 286 "engines/director/lingo/lingo-gr.y"      {  		inst then = 0;  		WRITE_UINT32(&then, (yyvsp[(3) - (6)].code) - (yyvsp[(1) - (6)].code)); @@ -2291,7 +2300,7 @@ yyreduce:      break;    case 38: -#line 289 "engines/director/lingo/lingo-gr.y" +#line 294 "engines/director/lingo/lingo-gr.y"      {  		inst then = 0, else1 = 0, end = 0;  		WRITE_UINT32(&then, (yyvsp[(3) - (11)].code) - (yyvsp[(1) - (11)].code)); @@ -2305,7 +2314,7 @@ yyreduce:      break;    case 39: -#line 299 "engines/director/lingo/lingo-gr.y" +#line 304 "engines/director/lingo/lingo-gr.y"      {  			inst then = 0, else1 = 0, end = 0;  			WRITE_UINT32(&then, (yyvsp[(3) - (7)].code) - (yyvsp[(1) - (7)].code)); @@ -2319,12 +2328,12 @@ yyreduce:      break;    case 40: -#line 312 "engines/director/lingo/lingo-gr.y" +#line 317 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); ;}      break;    case 41: -#line 315 "engines/director/lingo/lingo-gr.y" +#line 320 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP);  		g_lingo->code3(STOP, STOP, STOP); @@ -2333,7 +2342,7 @@ yyreduce:      break;    case 42: -#line 322 "engines/director/lingo/lingo-gr.y" +#line 327 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_ifcode);  		g_lingo->code3(STOP, STOP, STOP); @@ -2342,7 +2351,7 @@ yyreduce:      break;    case 43: -#line 329 "engines/director/lingo/lingo-gr.y" +#line 334 "engines/director/lingo/lingo-gr.y"      {  		inst skipEnd;  		WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions @@ -2352,22 +2361,22 @@ yyreduce:      break;    case 44: -#line 337 "engines/director/lingo/lingo-gr.y" +#line 342 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->_currentScript->size(); ;}      break;    case 45: -#line 340 "engines/director/lingo/lingo-gr.y" +#line 345 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); ;}      break;    case 46: -#line 343 "engines/director/lingo/lingo-gr.y" +#line 348 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->_currentScript->size(); ;}      break;    case 49: -#line 348 "engines/director/lingo/lingo-gr.y" +#line 353 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_whencode);  		g_lingo->code1(STOP); @@ -2376,42 +2385,42 @@ yyreduce:      break;    case 50: -#line 354 "engines/director/lingo/lingo-gr.y" +#line 359 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_tellcode);  		g_lingo->code1(STOP); ;}      break;    case 51: -#line 358 "engines/director/lingo/lingo-gr.y" +#line 363 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt((yyvsp[(1) - (1)].i)); ;}      break;    case 52: -#line 361 "engines/director/lingo/lingo-gr.y" +#line 366 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_floatpush);  		g_lingo->codeFloat((yyvsp[(1) - (1)].f)); ;}      break;    case 53: -#line 364 "engines/director/lingo/lingo-gr.y" +#line 369 "engines/director/lingo/lingo-gr.y"      {											// D3  		(yyval.code) = g_lingo->code1(g_lingo->c_symbolpush);  		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}      break;    case 54: -#line 367 "engines/director/lingo/lingo-gr.y" +#line 372 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_stringpush);  		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}      break;    case 55: -#line 370 "engines/director/lingo/lingo-gr.y" +#line 375 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_eval);  		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); @@ -2419,38 +2428,38 @@ yyreduce:      break;    case 56: -#line 376 "engines/director/lingo/lingo-gr.y" +#line 381 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = (yyvsp[(1) - (1)].code); ;}      break;    case 58: -#line 378 "engines/director/lingo/lingo-gr.y" +#line 383 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);  		delete (yyvsp[(1) - (1)].s); ;}      break;    case 59: -#line 381 "engines/director/lingo/lingo-gr.y" +#line 386 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);  		delete (yyvsp[(1) - (2)].s); ;}      break;    case 60: -#line 384 "engines/director/lingo/lingo-gr.y" +#line 389 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}      break;    case 61: -#line 385 "engines/director/lingo/lingo-gr.y" +#line 390 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg));  		delete (yyvsp[(1) - (4)].s); ;}      break;    case 62: -#line 388 "engines/director/lingo/lingo-gr.y" +#line 393 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(0); // Put dummy id @@ -2462,7 +2471,7 @@ yyreduce:      break;    case 63: -#line 396 "engines/director/lingo/lingo-gr.y" +#line 401 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_theentitypush);  		inst e = 0, f = 0; @@ -2472,225 +2481,225 @@ yyreduce:      break;    case 65: -#line 403 "engines/director/lingo/lingo-gr.y" +#line 408 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_add); ;}      break;    case 66: -#line 404 "engines/director/lingo/lingo-gr.y" +#line 409 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_sub); ;}      break;    case 67: -#line 405 "engines/director/lingo/lingo-gr.y" +#line 410 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_mul); ;}      break;    case 68: -#line 406 "engines/director/lingo/lingo-gr.y" +#line 411 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_div); ;}      break;    case 69: -#line 407 "engines/director/lingo/lingo-gr.y" +#line 412 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_mod); ;}      break;    case 70: -#line 408 "engines/director/lingo/lingo-gr.y" +#line 413 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gt); ;}      break;    case 71: -#line 409 "engines/director/lingo/lingo-gr.y" +#line 414 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_lt); ;}      break;    case 72: -#line 410 "engines/director/lingo/lingo-gr.y" +#line 415 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_eq); ;}      break;    case 73: -#line 411 "engines/director/lingo/lingo-gr.y" +#line 416 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_neq); ;}      break;    case 74: -#line 412 "engines/director/lingo/lingo-gr.y" +#line 417 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_ge); ;}      break;    case 75: -#line 413 "engines/director/lingo/lingo-gr.y" +#line 418 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_le); ;}      break;    case 76: -#line 414 "engines/director/lingo/lingo-gr.y" +#line 419 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_and); ;}      break;    case 77: -#line 415 "engines/director/lingo/lingo-gr.y" +#line 420 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_or); ;}      break;    case 78: -#line 416 "engines/director/lingo/lingo-gr.y" +#line 421 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_not); ;}      break;    case 79: -#line 417 "engines/director/lingo/lingo-gr.y" +#line 422 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_ampersand); ;}      break;    case 80: -#line 418 "engines/director/lingo/lingo-gr.y" +#line 423 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_concat); ;}      break;    case 81: -#line 419 "engines/director/lingo/lingo-gr.y" +#line 424 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_contains); ;}      break;    case 82: -#line 420 "engines/director/lingo/lingo-gr.y" +#line 425 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_starts); ;}      break;    case 83: -#line 421 "engines/director/lingo/lingo-gr.y" +#line 426 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = (yyvsp[(2) - (2)].code); ;}      break;    case 84: -#line 422 "engines/director/lingo/lingo-gr.y" +#line 427 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;}      break;    case 85: -#line 423 "engines/director/lingo/lingo-gr.y" +#line 428 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = (yyvsp[(2) - (3)].code); ;}      break;    case 86: -#line 424 "engines/director/lingo/lingo-gr.y" +#line 429 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;}      break;    case 87: -#line 425 "engines/director/lingo/lingo-gr.y" +#line 430 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_intersects); ;}      break;    case 88: -#line 426 "engines/director/lingo/lingo-gr.y" +#line 431 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_within); ;}      break;    case 89: -#line 427 "engines/director/lingo/lingo-gr.y" +#line 432 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_charOf); ;}      break;    case 90: -#line 428 "engines/director/lingo/lingo-gr.y" +#line 433 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_charToOf); ;}      break;    case 91: -#line 429 "engines/director/lingo/lingo-gr.y" +#line 434 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_itemOf); ;}      break;    case 92: -#line 430 "engines/director/lingo/lingo-gr.y" +#line 435 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_itemToOf); ;}      break;    case 93: -#line 431 "engines/director/lingo/lingo-gr.y" +#line 436 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_lineOf); ;}      break;    case 94: -#line 432 "engines/director/lingo/lingo-gr.y" +#line 437 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_lineToOf); ;}      break;    case 95: -#line 433 "engines/director/lingo/lingo-gr.y" +#line 438 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_wordOf); ;}      break;    case 96: -#line 434 "engines/director/lingo/lingo-gr.y" +#line 439 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_wordToOf); ;}      break;    case 97: -#line 435 "engines/director/lingo/lingo-gr.y" +#line 440 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;}      break;    case 98: -#line 436 "engines/director/lingo/lingo-gr.y" +#line 441 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;}      break;    case 99: -#line 437 "engines/director/lingo/lingo-gr.y" +#line 442 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeMe(nullptr, 0); ;}      break;    case 100: -#line 440 "engines/director/lingo/lingo-gr.y" +#line 445 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);  		delete (yyvsp[(1) - (2)].s); ;}      break;    case 101: -#line 445 "engines/director/lingo/lingo-gr.y" +#line 450 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_printtop); ;}      break;    case 104: -#line 448 "engines/director/lingo/lingo-gr.y" +#line 453 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_exitRepeat); ;}      break;    case 105: -#line 449 "engines/director/lingo/lingo-gr.y" +#line 454 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_procret); ;}      break;    case 109: -#line 453 "engines/director/lingo/lingo-gr.y" +#line 458 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);  		delete (yyvsp[(1) - (1)].s); ;}      break;    case 110: -#line 456 "engines/director/lingo/lingo-gr.y" +#line 461 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);  		delete (yyvsp[(1) - (2)].s); ;}      break;    case 111: -#line 459 "engines/director/lingo/lingo-gr.y" +#line 464 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);  		delete (yyvsp[(1) - (2)].s); ;}      break;    case 112: -#line 462 "engines/director/lingo/lingo-gr.y" +#line 467 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_voidpush);  		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 1); @@ -2698,72 +2707,72 @@ yyreduce:      break;    case 113: -#line 466 "engines/director/lingo/lingo-gr.y" +#line 471 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}      break;    case 114: -#line 467 "engines/director/lingo/lingo-gr.y" +#line 472 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_open); ;}      break;    case 115: -#line 468 "engines/director/lingo/lingo-gr.y" +#line 473 "engines/director/lingo/lingo-gr.y"      { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;}      break;    case 116: -#line 469 "engines/director/lingo/lingo-gr.y" +#line 474 "engines/director/lingo/lingo-gr.y"      { Common::String s(*(yyvsp[(1) - (3)].s)); s += '-'; s += *(yyvsp[(2) - (3)].s); g_lingo->codeFunc(&s, (yyvsp[(3) - (3)].narg)); ;}      break;    case 117: -#line 472 "engines/director/lingo/lingo-gr.y" +#line 477 "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 118: -#line 473 "engines/director/lingo/lingo-gr.y" +#line 478 "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 119: -#line 476 "engines/director/lingo/lingo-gr.y" +#line 481 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}      break;    case 120: -#line 477 "engines/director/lingo/lingo-gr.y" +#line 482 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}      break;    case 121: -#line 480 "engines/director/lingo/lingo-gr.y" +#line 485 "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 122: -#line 481 "engines/director/lingo/lingo-gr.y" +#line 486 "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 123: -#line 492 "engines/director/lingo/lingo-gr.y" +#line 497 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotoloop); ;}      break;    case 124: -#line 493 "engines/director/lingo/lingo-gr.y" +#line 498 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotonext); ;}      break;    case 125: -#line 494 "engines/director/lingo/lingo-gr.y" +#line 499 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotoprevious); ;}      break;    case 126: -#line 495 "engines/director/lingo/lingo-gr.y" +#line 500 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(1); @@ -2771,7 +2780,7 @@ yyreduce:      break;    case 127: -#line 499 "engines/director/lingo/lingo-gr.y" +#line 504 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(3); @@ -2779,7 +2788,7 @@ yyreduce:      break;    case 128: -#line 503 "engines/director/lingo/lingo-gr.y" +#line 508 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(2); @@ -2787,12 +2796,12 @@ yyreduce:      break;    case 131: -#line 513 "engines/director/lingo/lingo-gr.y" +#line 518 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_playdone); ;}      break;    case 132: -#line 514 "engines/director/lingo/lingo-gr.y" +#line 519 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(1); @@ -2800,7 +2809,7 @@ yyreduce:      break;    case 133: -#line 518 "engines/director/lingo/lingo-gr.y" +#line 523 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(3); @@ -2808,7 +2817,7 @@ yyreduce:      break;    case 134: -#line 522 "engines/director/lingo/lingo-gr.y" +#line 527 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(2); @@ -2816,24 +2825,24 @@ yyreduce:      break;    case 135: -#line 526 "engines/director/lingo/lingo-gr.y" +#line 531 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeSetImmediate(true); ;}      break;    case 136: -#line 526 "engines/director/lingo/lingo-gr.y" +#line 531 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeSetImmediate(false);  		g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;}      break;    case 137: -#line 556 "engines/director/lingo/lingo-gr.y" +#line 561 "engines/director/lingo/lingo-gr.y"      { g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); ;}      break;    case 138: -#line 557 "engines/director/lingo/lingo-gr.y" +#line 562 "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)); @@ -2842,17 +2851,17 @@ yyreduce:      break;    case 139: -#line 562 "engines/director/lingo/lingo-gr.y" +#line 567 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeFactory(*(yyvsp[(2) - (2)].s)); ;}      break;    case 140: -#line 563 "engines/director/lingo/lingo-gr.y" +#line 568 "engines/director/lingo/lingo-gr.y"      { g_lingo->_indef = kStateInArgs; ;}      break;    case 141: -#line 564 "engines/director/lingo/lingo-gr.y" +#line 569 "engines/director/lingo/lingo-gr.y"      {  			g_lingo->code1(g_lingo->c_procret);  			g_lingo->define(*(yyvsp[(1) - (7)].s), (yyvsp[(3) - (7)].code), (yyvsp[(4) - (7)].narg) + 1, &g_lingo->_currentFactory); @@ -2861,7 +2870,7 @@ yyreduce:      break;    case 142: -#line 569 "engines/director/lingo/lingo-gr.y" +#line 574 "engines/director/lingo/lingo-gr.y"      {	// D3  		g_lingo->code1(g_lingo->c_procret);  		g_lingo->define(*(yyvsp[(1) - (8)].s), (yyvsp[(2) - (8)].code), (yyvsp[(3) - (8)].narg)); @@ -2873,7 +2882,7 @@ yyreduce:      break;    case 143: -#line 577 "engines/director/lingo/lingo-gr.y" +#line 582 "engines/director/lingo/lingo-gr.y"      {	// D4. No 'end' clause  		g_lingo->code1(g_lingo->c_procret);  		g_lingo->define(*(yyvsp[(1) - (6)].s), (yyvsp[(2) - (6)].code), (yyvsp[(3) - (6)].narg)); @@ -2883,37 +2892,37 @@ yyreduce:      break;    case 144: -#line 584 "engines/director/lingo/lingo-gr.y" +#line 589 "engines/director/lingo/lingo-gr.y"      { (yyval.s) = (yyvsp[(2) - (2)].s); g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; ;}      break;    case 145: -#line 586 "engines/director/lingo/lingo-gr.y" +#line 591 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 0; ;}      break;    case 146: -#line 587 "engines/director/lingo/lingo-gr.y" +#line 592 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}      break;    case 147: -#line 588 "engines/director/lingo/lingo-gr.y" +#line 593 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break;    case 148: -#line 589 "engines/director/lingo/lingo-gr.y" +#line 594 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}      break;    case 152: -#line 597 "engines/director/lingo/lingo-gr.y" +#line 602 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArgStore(); g_lingo->_indef = kStateInDef; ;}      break;    case 153: -#line 600 "engines/director/lingo/lingo-gr.y" +#line 605 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_call);  		g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str()); @@ -2923,33 +2932,33 @@ yyreduce:      break;    case 154: -#line 608 "engines/director/lingo/lingo-gr.y" +#line 613 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 0; ;}      break;    case 155: -#line 609 "engines/director/lingo/lingo-gr.y" +#line 614 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 1; ;}      break;    case 156: -#line 610 "engines/director/lingo/lingo-gr.y" +#line 615 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break;    case 157: -#line 613 "engines/director/lingo/lingo-gr.y" +#line 618 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 1; ;}      break;    case 158: -#line 614 "engines/director/lingo/lingo-gr.y" +#line 619 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break;  /* Line 1267 of yacc.c.  */ -#line 2953 "engines/director/lingo/lingo-gr.cpp" +#line 2962 "engines/director/lingo/lingo-gr.cpp"        default: break;      }    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3163,6 +3172,6 @@ yyreturn:  } -#line 617 "engines/director/lingo/lingo-gr.y" +#line 622 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h index e98d53ebf3..c5e73ff8f4 100644 --- a/engines/director/lingo/lingo-gr.h +++ b/engines/director/lingo/lingo-gr.h @@ -70,64 +70,65 @@       STRING = 286,       HANDLER = 287,       SYMBOL = 288, -     ENDCLAUSE = 289, -     tPLAYACCEL = 290, -     tMETHOD = 291, -     tDOWN = 292, -     tELSE = 293, -     tELSIF = 294, -     tEXIT = 295, -     tGLOBAL = 296, -     tGO = 297, -     tIF = 298, -     tINTO = 299, -     tLOOP = 300, -     tMACRO = 301, -     tMOVIE = 302, -     tNEXT = 303, -     tOF = 304, -     tPREVIOUS = 305, -     tPUT = 306, -     tREPEAT = 307, -     tSET = 308, -     tTHEN = 309, -     tTO = 310, -     tWHEN = 311, -     tWITH = 312, -     tWHILE = 313, -     tNLELSE = 314, -     tFACTORY = 315, -     tOPEN = 316, -     tPLAY = 317, -     tDONE = 318, -     tINSTANCE = 319, -     tGE = 320, -     tLE = 321, -     tEQ = 322, -     tNEQ = 323, -     tAND = 324, -     tOR = 325, -     tNOT = 326, -     tMOD = 327, -     tAFTER = 328, -     tBEFORE = 329, -     tCONCAT = 330, -     tCONTAINS = 331, -     tSTARTS = 332, -     tCHAR = 333, -     tITEM = 334, -     tLINE = 335, -     tWORD = 336, -     tSPRITE = 337, -     tINTERSECTS = 338, -     tWITHIN = 339, -     tTELL = 340, -     tPROPERTY = 341, -     tON = 342, -     tME = 343, -     tENDIF = 344, -     tENDREPEAT = 345, -     tENDTELL = 346 +     THEOBJECTFIELD = 289, +     ENDCLAUSE = 290, +     tPLAYACCEL = 291, +     tMETHOD = 292, +     tDOWN = 293, +     tELSE = 294, +     tELSIF = 295, +     tEXIT = 296, +     tGLOBAL = 297, +     tGO = 298, +     tIF = 299, +     tINTO = 300, +     tLOOP = 301, +     tMACRO = 302, +     tMOVIE = 303, +     tNEXT = 304, +     tOF = 305, +     tPREVIOUS = 306, +     tPUT = 307, +     tREPEAT = 308, +     tSET = 309, +     tTHEN = 310, +     tTO = 311, +     tWHEN = 312, +     tWITH = 313, +     tWHILE = 314, +     tNLELSE = 315, +     tFACTORY = 316, +     tOPEN = 317, +     tPLAY = 318, +     tDONE = 319, +     tINSTANCE = 320, +     tGE = 321, +     tLE = 322, +     tEQ = 323, +     tNEQ = 324, +     tAND = 325, +     tOR = 326, +     tNOT = 327, +     tMOD = 328, +     tAFTER = 329, +     tBEFORE = 330, +     tCONCAT = 331, +     tCONTAINS = 332, +     tSTARTS = 333, +     tCHAR = 334, +     tITEM = 335, +     tLINE = 336, +     tWORD = 337, +     tSPRITE = 338, +     tINTERSECTS = 339, +     tWITHIN = 340, +     tTELL = 341, +     tPROPERTY = 342, +     tON = 343, +     tME = 344, +     tENDIF = 345, +     tENDREPEAT = 346, +     tENDTELL = 347     };  #endif  /* Tokens.  */ @@ -162,64 +163,65 @@  #define STRING 286  #define HANDLER 287  #define SYMBOL 288 -#define ENDCLAUSE 289 -#define tPLAYACCEL 290 -#define tMETHOD 291 -#define tDOWN 292 -#define tELSE 293 -#define tELSIF 294 -#define tEXIT 295 -#define tGLOBAL 296 -#define tGO 297 -#define tIF 298 -#define tINTO 299 -#define tLOOP 300 -#define tMACRO 301 -#define tMOVIE 302 -#define tNEXT 303 -#define tOF 304 -#define tPREVIOUS 305 -#define tPUT 306 -#define tREPEAT 307 -#define tSET 308 -#define tTHEN 309 -#define tTO 310 -#define tWHEN 311 -#define tWITH 312 -#define tWHILE 313 -#define tNLELSE 314 -#define tFACTORY 315 -#define tOPEN 316 -#define tPLAY 317 -#define tDONE 318 -#define tINSTANCE 319 -#define tGE 320 -#define tLE 321 -#define tEQ 322 -#define tNEQ 323 -#define tAND 324 -#define tOR 325 -#define tNOT 326 -#define tMOD 327 -#define tAFTER 328 -#define tBEFORE 329 -#define tCONCAT 330 -#define tCONTAINS 331 -#define tSTARTS 332 -#define tCHAR 333 -#define tITEM 334 -#define tLINE 335 -#define tWORD 336 -#define tSPRITE 337 -#define tINTERSECTS 338 -#define tWITHIN 339 -#define tTELL 340 -#define tPROPERTY 341 -#define tON 342 -#define tME 343 -#define tENDIF 344 -#define tENDREPEAT 345 -#define tENDTELL 346 +#define THEOBJECTFIELD 289 +#define ENDCLAUSE 290 +#define tPLAYACCEL 291 +#define tMETHOD 292 +#define tDOWN 293 +#define tELSE 294 +#define tELSIF 295 +#define tEXIT 296 +#define tGLOBAL 297 +#define tGO 298 +#define tIF 299 +#define tINTO 300 +#define tLOOP 301 +#define tMACRO 302 +#define tMOVIE 303 +#define tNEXT 304 +#define tOF 305 +#define tPREVIOUS 306 +#define tPUT 307 +#define tREPEAT 308 +#define tSET 309 +#define tTHEN 310 +#define tTO 311 +#define tWHEN 312 +#define tWITH 313 +#define tWHILE 314 +#define tNLELSE 315 +#define tFACTORY 316 +#define tOPEN 317 +#define tPLAY 318 +#define tDONE 319 +#define tINSTANCE 320 +#define tGE 321 +#define tLE 322 +#define tEQ 323 +#define tNEQ 324 +#define tAND 325 +#define tOR 326 +#define tNOT 327 +#define tMOD 328 +#define tAFTER 329 +#define tBEFORE 330 +#define tCONCAT 331 +#define tCONTAINS 332 +#define tSTARTS 333 +#define tCHAR 334 +#define tITEM 335 +#define tLINE 336 +#define tWORD 337 +#define tSPRITE 338 +#define tINTERSECTS 339 +#define tWITHIN 340 +#define tTELL 341 +#define tPROPERTY 342 +#define tON 343 +#define tME 344 +#define tENDIF 345 +#define tENDREPEAT 346 +#define tENDTELL 347 @@ -235,9 +237,14 @@ typedef union YYSTYPE  	int code;  	int narg;	/* number of arguments */  	Common::Array<double> *arr; + +	struct { +		Common::String *s; +		int e; +	} objectfield;  }  /* Line 1529 of yacc.c.  */ -#line 241 "engines/director/lingo/lingo-gr.hpp" +#line 248 "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 c97ee46cb1..93d61a58ad 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -89,6 +89,11 @@ void checkEnd(Common::String *token, const char *expect, bool required) {  	int code;  	int narg;	/* number of arguments */  	Common::Array<double> *arr; + +	struct { +		Common::String *s; +		int e; +	} objectfield;  }  %token UNARY @@ -98,7 +103,7 @@ void checkEnd(Common::String *token, const char *expect, bool required) {  %token<f> FLOAT  %token<s> BLTIN BLTINNOARGS BLTINNOARGSORONE BLTINONEARG BLTINARGLIST TWOWORDBUILTIN  %token<s> FBLTIN FBLTINNOARGS FBLTINONEARG FBLTINARGLIST RBLTIN RBLTINONEARG -%token<s> ID STRING HANDLER SYMBOL +%token<s> ID STRING HANDLER SYMBOL THEOBJECTFIELD  %token<s> ENDCLAUSE tPLAYACCEL tMETHOD  %token tDOWN tELSE tELSIF tEXIT tGLOBAL tGO tIF tINTO tLOOP tMACRO  %token tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp index ef41566b84..5e600a0dcf 100644 --- a/engines/director/lingo/lingo-lex.cpp +++ b/engines/director/lingo/lingo-lex.cpp @@ -1411,6 +1411,19 @@ YY_RULE_SETUP  				return THEENTITYWITHID;  			else  				return THEENTITY; +		} else { +			if (g_director->getVersion() >= 4) { +				field = Common::String::format("%d%s", g_lingo->_objectEntityId, field.c_str()); + +				if (!g_lingo->_theEntityFields.contains(field)) { +					error("LEXER: Unhandled the field %s for object", field.c_str()); +				} + +				yylval.objectfield.s = new Common::String(ptr); +				yylval.objectfield.e = g_lingo->_theEntityFields[field]->field; + +				return THEOBJECTFIELD; +			}  		}  		warning("LEXER: Unhandled the entity %s", ptr); @@ -1418,7 +1431,7 @@ YY_RULE_SETUP  	YY_BREAK  case 53:  YY_RULE_SETUP -#line 229 "engines/director/lingo/lingo-lex.l" +#line 242 "engines/director/lingo/lingo-lex.l"  {  		count(); @@ -1453,7 +1466,7 @@ YY_RULE_SETUP  	YY_BREAK  case 54:  YY_RULE_SETUP -#line 260 "engines/director/lingo/lingo-lex.l" +#line 273 "engines/director/lingo/lingo-lex.l"  {  		count(); @@ -1476,72 +1489,72 @@ YY_RULE_SETUP  	YY_BREAK  case 55:  YY_RULE_SETUP -#line 279 "engines/director/lingo/lingo-lex.l" +#line 292 "engines/director/lingo/lingo-lex.l"  { count(); return tTHEN; }  	YY_BREAK  case 56:  YY_RULE_SETUP -#line 280 "engines/director/lingo/lingo-lex.l" +#line 293 "engines/director/lingo/lingo-lex.l"  { count(); return tTO; }  	YY_BREAK  case 57:  YY_RULE_SETUP -#line 281 "engines/director/lingo/lingo-lex.l" +#line 294 "engines/director/lingo/lingo-lex.l"  { count(); return tSPRITE; }  	YY_BREAK  case 58:  YY_RULE_SETUP -#line 282 "engines/director/lingo/lingo-lex.l" +#line 295 "engines/director/lingo/lingo-lex.l"  { count(); return tWITH; }  	YY_BREAK  case 59:  YY_RULE_SETUP -#line 283 "engines/director/lingo/lingo-lex.l" +#line 296 "engines/director/lingo/lingo-lex.l"  { count(); return tWITHIN; }  	YY_BREAK  case 60:  YY_RULE_SETUP -#line 284 "engines/director/lingo/lingo-lex.l" +#line 297 "engines/director/lingo/lingo-lex.l"  { count(); return tWHEN; }  	YY_BREAK  case 61:  YY_RULE_SETUP -#line 285 "engines/director/lingo/lingo-lex.l" +#line 298 "engines/director/lingo/lingo-lex.l"  { count(); return tWHILE; }  	YY_BREAK  case 62:  YY_RULE_SETUP -#line 286 "engines/director/lingo/lingo-lex.l" +#line 299 "engines/director/lingo/lingo-lex.l"  { count(); return tWORD; }  	YY_BREAK  case 63:  YY_RULE_SETUP -#line 288 "engines/director/lingo/lingo-lex.l" +#line 301 "engines/director/lingo/lingo-lex.l"  { count(); return tNEQ; }  	YY_BREAK  case 64:  YY_RULE_SETUP -#line 289 "engines/director/lingo/lingo-lex.l" +#line 302 "engines/director/lingo/lingo-lex.l"  { count(); return tGE; }  	YY_BREAK  case 65:  YY_RULE_SETUP -#line 290 "engines/director/lingo/lingo-lex.l" +#line 303 "engines/director/lingo/lingo-lex.l"  { count(); return tLE; }  	YY_BREAK  case 66:  YY_RULE_SETUP -#line 291 "engines/director/lingo/lingo-lex.l" +#line 304 "engines/director/lingo/lingo-lex.l"  { count(); return tCONCAT; }  	YY_BREAK  case 67:  YY_RULE_SETUP -#line 292 "engines/director/lingo/lingo-lex.l" +#line 305 "engines/director/lingo/lingo-lex.l"  { count(); return tEQ; }  	YY_BREAK  case 68:  YY_RULE_SETUP -#line 294 "engines/director/lingo/lingo-lex.l" +#line 307 "engines/director/lingo/lingo-lex.l"  {  		count();  		yylval.s = new Common::String(yytext); @@ -1599,41 +1612,41 @@ YY_RULE_SETUP  	YY_BREAK  case 69:  YY_RULE_SETUP -#line 348 "engines/director/lingo/lingo-lex.l" +#line 361 "engines/director/lingo/lingo-lex.l"  { count(); yylval.f = atof(yytext); return FLOAT; }  	YY_BREAK  case 70:  YY_RULE_SETUP -#line 349 "engines/director/lingo/lingo-lex.l" +#line 362 "engines/director/lingo/lingo-lex.l"  { count(); yylval.i = strtol(yytext, NULL, 10); return INT; }  	YY_BREAK  case 71:  YY_RULE_SETUP -#line 350 "engines/director/lingo/lingo-lex.l" +#line 363 "engines/director/lingo/lingo-lex.l"  { count(); return *yytext; }  	YY_BREAK  case 72:  /* rule 72 can match eol */  YY_RULE_SETUP -#line 351 "engines/director/lingo/lingo-lex.l" +#line 364 "engines/director/lingo/lingo-lex.l"  { count(); return '\n'; }  	YY_BREAK  case 73:  YY_RULE_SETUP -#line 352 "engines/director/lingo/lingo-lex.l" +#line 365 "engines/director/lingo/lingo-lex.l"  { count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }  	YY_BREAK  case 74:  YY_RULE_SETUP -#line 353 "engines/director/lingo/lingo-lex.l" +#line 366 "engines/director/lingo/lingo-lex.l"  { count(); }  	YY_BREAK  case 75:  YY_RULE_SETUP -#line 355 "engines/director/lingo/lingo-lex.l" +#line 368 "engines/director/lingo/lingo-lex.l"  ECHO;  	YY_BREAK -#line 1637 "engines/director/lingo/lingo-lex.cpp" +#line 1650 "engines/director/lingo/lingo-lex.cpp"  case YY_STATE_EOF(INITIAL):  	yyterminate(); @@ -2593,7 +2606,7 @@ void yyfree (void * ptr )  #define YYTABLES_NAME "yytables" -#line 355 "engines/director/lingo/lingo-lex.l" +#line 368 "engines/director/lingo/lingo-lex.l" diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l index cedcee1d89..16e26526d4 100644 --- a/engines/director/lingo/lingo-lex.l +++ b/engines/director/lingo/lingo-lex.l @@ -222,6 +222,19 @@ whitespace [\t ]  				return THEENTITYWITHID;  			else  				return THEENTITY; +		} else { +			if (g_director->getVersion() >= 4) { +				field = Common::String::format("%d%s", g_lingo->_objectEntityId, field.c_str()); + +				if (!g_lingo->_theEntityFields.contains(field)) { +					error("LEXER: Unhandled the field %s for object", field.c_str()); +				} + +				yylval.objectfield.s = new Common::String(ptr); +				yylval.objectfield.e = g_lingo->_theEntityFields[field]->field; + +				return THEOBJECTFIELD; +			}  		}  		warning("LEXER: Unhandled the entity %s", ptr); diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index a9bffbbd57..e90fa3f60d 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -274,6 +274,8 @@ TheEntityField fields[] = {  };  void Lingo::initTheEntities() { +	_objectEntityId = kTheObject; +  	TheEntity *e = entities;  	while (e->entity != kTheNOEntity) { @@ -289,6 +291,9 @@ void Lingo::initTheEntities() {  		if (f->version <= _vm->getVersion())  			_theEntityFields[Common::String::format("%d%s", f->entity, f->name)] = f; +		// Store all fields for kTheObject +		_theEntityFields[Common::String::format("%d%s", _objectEntityId, f->name)] = f; +  		f++;  	}  } diff --git a/engines/director/lingo/lingo-the.h b/engines/director/lingo/lingo-the.h index e9c7f96320..c4306d4416 100644 --- a/engines/director/lingo/lingo-the.h +++ b/engines/director/lingo/lingo-the.h @@ -27,7 +27,8 @@ namespace Director {  enum TheEntityType {  	kTheNOEntity = 0, -	kTheActorList = 1, +	kTheObject = 1, +	kTheActorList = 2,  	kTheBeepOn,  	kTheButtonStyle,  	kTheCast, diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index caaac44a67..57eb36f993 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -591,6 +591,9 @@ public:  	Common::Array<Common::String *> _argstack;  	TheEntityHash _theEntities;  	TheEntityFieldHash _theEntityFields; + +	int _objectEntityId; +  	Common::Array<int> _labelstack;  	Common::Array<Common::String> _namelist; | 
