[Scummvm-cvs-logs] scummvm master -> e926dbab655827d56701d2bdf3af2ddfeb4768ad

sev- sev at scummvm.org
Sat Aug 6 07:50:20 CEST 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e926dbab65 DIRECTOR: Lingo: Moved recently added functions to built-ins


Commit: e926dbab655827d56701d2bdf3af2ddfeb4768ad
    https://github.com/scummvm/scummvm/commit/e926dbab655827d56701d2bdf3af2ddfeb4768ad
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-08-06T07:49:55+02:00

Commit Message:
DIRECTOR: Lingo: Moved recently added functions to built-ins

Changed paths:
  A engines/director/lingo/tests/builtin.lingo
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-code.cpp
    engines/director/lingo/lingo-funcs.cpp
    engines/director/lingo/lingo-gr.cpp
    engines/director/lingo/lingo-gr.h
    engines/director/lingo/lingo-gr.y
    engines/director/lingo/lingo-lex.cpp
    engines/director/lingo/lingo-lex.l
    engines/director/lingo/lingo.h



diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 0361fa7..63b7fe9 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -50,8 +50,14 @@ static struct BuiltinProto {
 	{ "length",	Lingo::b_length,	1, 1, true },
 	{ "string",	Lingo::b_string,	1, 1, true },
 	// Misc
+	{ "alert",	 		Lingo::b_alert,			1, 1, false },
+	{ "beep",	 		Lingo::b_beep,			0, 1, false },
 	{ "closeDA",	 	Lingo::b_closeDA, 		0, 0, false },
+	{ "closeResFile",	Lingo::b_closeResFile,	0, 1, false },
+	{ "closeXlib",		Lingo::b_closeXlib,		0, 1, false },
 	{ "continue",		Lingo::b_continue,		0, 0, false },
+	{ "cursor",	 		Lingo::b_cursor,		1, 1, false },
+	{ "delay",	 		Lingo::b_delay,			1, 1, false },
 	{ "dontpassevent",	Lingo::b_dontpassevent,	0, 0, false },
 	{ "updatestage",	Lingo::b_updatestage,	0, 0, false },
 	{ "ilk",	 		Lingo::b_ilk,			1, 2, true },
@@ -253,6 +259,54 @@ void Lingo::b_continue() {
 	warning("STUB: b_continue");
 }
 
+void Lingo::b_alert() {
+	Datum d = g_lingo->pop();
+
+	d.toString();
+
+	warning("STUB: b_alert");
+
+	delete d.u.s;
+}
+
+void Lingo::b_closeResFile() {
+	Datum d = g_lingo->pop();
+
+	d.toString();
+
+	warning("STUB: c_closeResFile(%s)", d.u.s->c_str());
+
+	delete d.u.s;
+}
+
+void Lingo::b_closeXlib() {
+	Datum d = g_lingo->pop();
+
+	d.toString();
+
+	warning("STUB: c_closeXlib(%s)", d.u.s->c_str());
+
+	delete d.u.s;
+}
+
+void Lingo::b_beep() {
+	Datum d = g_lingo->pop();
+	warning("STUB: c_closeResFile(%d)", d.u.i);
+}
+
+void Lingo::b_cursor() {
+	Datum d = g_lingo->pop();
+	d.toInt();
+	warning("STUB: c_cursor(%d)", d.u.i);
+}
+
+void Lingo::b_delay() {
+	Datum d = g_lingo->pop();
+	d.toInt();
+	warning("STUB: c_delay(%d)", d.u.i);
+}
+
+
 ///////////////////
 // Point
 ///////////////////
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 67793c8..021cdd1 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -695,53 +695,6 @@ void Lingo::c_gotoprevious() {
 	g_lingo->func_gotoprevious();
 }
 
-void Lingo::c_alert() {
-	Datum d = g_lingo->pop();
-
-	d.toString();
-
-	g_lingo->func_alert(*d.u.s);
-
-	delete d.u.s;
-}
-
-void Lingo::c_closeResFile() {
-	Datum d = g_lingo->pop();
-
-	d.toString();
-
-	warning("STUB: c_closeResFile(%s)", d.u.s->c_str());
-
-	delete d.u.s;
-}
-
-void Lingo::c_closeXlib() {
-	Datum d = g_lingo->pop();
-
-	d.toString();
-
-	warning("STUB: c_closeXlib(%s)", d.u.s->c_str());
-
-	delete d.u.s;
-}
-
-void Lingo::c_beep() {
-	Datum d = g_lingo->pop();
-	g_lingo->func_beep(d.u.i);
-}
-
-void Lingo::c_cursor() {
-	Datum d = g_lingo->pop();
-	d.toInt();
-	warning("STUB: c_cursor(%d)", d.u.i);
-}
-
-void Lingo::c_delay() {
-	Datum d = g_lingo->pop();
-	d.toInt();
-	warning("STUB: c_delay(%d)", d.u.i);
-}
-
 void Lingo::c_call() {
 	Common::String name((char *)&(*g_lingo->_currentScript)[g_lingo->_pc]);
 	g_lingo->_pc += g_lingo->calcStringAlignment(name.c_str());
diff --git a/engines/director/lingo/lingo-funcs.cpp b/engines/director/lingo/lingo-funcs.cpp
index 4f48689..08b3d45 100644
--- a/engines/director/lingo/lingo-funcs.cpp
+++ b/engines/director/lingo/lingo-funcs.cpp
@@ -222,12 +222,4 @@ void Lingo::func_gotoprevious() {
 	_vm->_currentScore->gotoprevious();
 }
 
-void Lingo::func_alert(Common::String &s) {
-	warning("STUB: func_alert(%s)", s.c_str());
-}
-
-void Lingo::func_beep(int num) {
-	warning("STUB: func_beep(%d)", num);
-}
-
 }
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 715eb96..e309dc1 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -114,27 +114,21 @@
      tNLELSE = 303,
      tFACTORY = 304,
      tMETHOD = 305,
-     tALERT = 306,
-     tBEEP = 307,
-     tCLOSERESFILE = 308,
-     tCLOSEXLIB = 309,
-     tCURSOR = 310,
-     tDELAY = 311,
-     tGE = 312,
-     tLE = 313,
-     tGT = 314,
-     tLT = 315,
-     tEQ = 316,
-     tNEQ = 317,
-     tAND = 318,
-     tOR = 319,
-     tNOT = 320,
-     tCONCAT = 321,
-     tCONTAINS = 322,
-     tSTARTS = 323,
-     tSPRITE = 324,
-     tINTERSECTS = 325,
-     tWITHIN = 326
+     tGE = 306,
+     tLE = 307,
+     tGT = 308,
+     tLT = 309,
+     tEQ = 310,
+     tNEQ = 311,
+     tAND = 312,
+     tOR = 313,
+     tNOT = 314,
+     tCONCAT = 315,
+     tCONTAINS = 316,
+     tSTARTS = 317,
+     tSPRITE = 318,
+     tINTERSECTS = 319,
+     tWITHIN = 320
    };
 #endif
 /* Tokens.  */
@@ -186,27 +180,21 @@
 #define tNLELSE 303
 #define tFACTORY 304
 #define tMETHOD 305
-#define tALERT 306
-#define tBEEP 307
-#define tCLOSERESFILE 308
-#define tCLOSEXLIB 309
-#define tCURSOR 310
-#define tDELAY 311
-#define tGE 312
-#define tLE 313
-#define tGT 314
-#define tLT 315
-#define tEQ 316
-#define tNEQ 317
-#define tAND 318
-#define tOR 319
-#define tNOT 320
-#define tCONCAT 321
-#define tCONTAINS 322
-#define tSTARTS 323
-#define tSPRITE 324
-#define tINTERSECTS 325
-#define tWITHIN 326
+#define tGE 306
+#define tLE 307
+#define tGT 308
+#define tLT 309
+#define tEQ 310
+#define tNEQ 311
+#define tAND 312
+#define tOR 313
+#define tNOT 314
+#define tCONCAT 315
+#define tCONTAINS 316
+#define tSTARTS 317
+#define tSPRITE 318
+#define tINTERSECTS 319
+#define tWITHIN 320
 
 
 
@@ -264,7 +252,7 @@ typedef union YYSTYPE
 	Common::Array<double> *arr;
 }
 /* Line 193 of yacc.c.  */
-#line 268 "engines/director/lingo/lingo-gr.cpp"
+#line 256 "engines/director/lingo/lingo-gr.cpp"
 	YYSTYPE;
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
@@ -277,7 +265,7 @@ typedef union YYSTYPE
 
 
 /* Line 216 of yacc.c.  */
-#line 281 "engines/director/lingo/lingo-gr.cpp"
+#line 269 "engines/director/lingo/lingo-gr.cpp"
 
 #ifdef short
 # undef short
@@ -490,22 +478,22 @@ union yyalloc
 #endif
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  93
+#define YYFINAL  81
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   824
+#define YYLAST   742
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  85
+#define YYNTOKENS  79
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  34
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  130
+#define YYNRULES  121
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  270
+#define YYNSTATES  258
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   326
+#define YYMAXUTOK   320
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -514,12 +502,12 @@ union yyalloc
 static const yytype_uint8 yytranslate[] =
 {
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-      78,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+      72,     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,    77,    83,     2,
-      79,    80,    75,    73,    84,    74,     2,    76,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,    71,    77,     2,
+      73,    74,    69,    67,    78,    68,     2,    70,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-      82,    72,    81,     2,     2,     2,     2,     2,     2,     2,
+      76,    66,    75,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -545,7 +533,7 @@ static const yytype_uint8 yytranslate[] =
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
-      65,    66,    67,    68,    69,    70,    71
+      65
 };
 
 #if YYDEBUG
@@ -562,83 +550,79 @@ static const yytype_uint16 yyprhs[] =
      246,   248,   251,   253,   257,   261,   265,   269,   273,   277,
      281,   285,   289,   293,   297,   300,   304,   308,   312,   316,
      319,   322,   326,   331,   336,   339,   342,   345,   347,   349,
-     352,   355,   358,   360,   363,   366,   368,   371,   373,   376,
-     378,   381,   384,   386,   390,   393,   396,   399,   402,   406,
-     409,   413,   416,   419,   421,   425,   428,   432,   433,   442,
-     445,   446,   455,   456,   458,   462,   467,   468,   472,   473,
-     475
+     352,   355,   358,   360,   362,   366,   369,   372,   375,   378,
+     382,   385,   389,   392,   395,   397,   401,   404,   408,   409,
+     418,   421,   422,   431,   432,   434,   438,   443,   444,   448,
+     449,   451
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int8 yyrhs[] =
 {
-      86,     0,    -1,    86,    87,    88,    -1,    88,    -1,     1,
-      78,    -1,    78,    -1,    -1,   112,    -1,   107,    -1,   117,
-      -1,    89,    -1,    91,    -1,    40,   106,    31,    19,    -1,
-      42,    19,    72,   106,    -1,    42,    12,    72,   106,    -1,
-      42,    13,   106,    72,   106,    -1,    42,    19,    44,   106,
-      -1,    42,    12,    44,   106,    -1,    42,    13,   106,    44,
-     106,    -1,   106,    -1,   107,    -1,    90,    -1,    92,    -1,
-      99,    79,    98,    80,   105,   104,    25,    41,    -1,   100,
-      72,   106,   104,    44,   106,   104,   105,   104,    25,    41,
-      -1,   100,    72,   106,   104,    22,    44,   106,   104,   105,
-     104,    25,    41,    -1,    45,    19,    43,   106,    -1,   101,
-      98,    43,    87,   105,   104,    25,    30,    -1,   101,    98,
-      43,    87,   105,   104,    48,   105,   104,    25,    30,    -1,
-     101,    98,    43,    87,   105,   104,   103,    94,   104,    25,
-      30,    -1,   101,    98,    43,   103,    90,   104,    -1,   101,
-      98,    43,   103,    90,   104,    48,   103,    90,   104,    -1,
-     101,    98,    43,   103,    90,   104,    95,   104,    93,   104,
-      -1,    -1,    48,   103,    90,    -1,    94,    97,    -1,    97,
-      -1,    95,    96,    -1,    96,    -1,   102,    98,    43,   103,
-      91,   104,    -1,    95,    -1,   102,    98,    43,   105,   104,
-      -1,   106,    -1,   106,    72,   106,    -1,    79,    98,    80,
+      80,     0,    -1,    80,    81,    82,    -1,    82,    -1,     1,
+      72,    -1,    72,    -1,    -1,   106,    -1,   101,    -1,   111,
+      -1,    83,    -1,    85,    -1,    40,   100,    31,    19,    -1,
+      42,    19,    66,   100,    -1,    42,    12,    66,   100,    -1,
+      42,    13,   100,    66,   100,    -1,    42,    19,    44,   100,
+      -1,    42,    12,    44,   100,    -1,    42,    13,   100,    44,
+     100,    -1,   100,    -1,   101,    -1,    84,    -1,    86,    -1,
+      93,    73,    92,    74,    99,    98,    25,    41,    -1,    94,
+      66,   100,    98,    44,   100,    98,    99,    98,    25,    41,
+      -1,    94,    66,   100,    98,    22,    44,   100,    98,    99,
+      98,    25,    41,    -1,    45,    19,    43,   100,    -1,    95,
+      92,    43,    81,    99,    98,    25,    30,    -1,    95,    92,
+      43,    81,    99,    98,    48,    99,    98,    25,    30,    -1,
+      95,    92,    43,    81,    99,    98,    97,    88,    98,    25,
+      30,    -1,    95,    92,    43,    97,    84,    98,    -1,    95,
+      92,    43,    97,    84,    98,    48,    97,    84,    98,    -1,
+      95,    92,    43,    97,    84,    98,    89,    98,    87,    98,
+      -1,    -1,    48,    97,    84,    -1,    88,    91,    -1,    91,
+      -1,    89,    90,    -1,    90,    -1,    96,    92,    43,    97,
+      85,    98,    -1,    89,    -1,    96,    92,    43,    99,    98,
+      -1,   100,    -1,   100,    66,   100,    -1,    73,    92,    74,
       -1,    41,    47,    -1,    41,    46,    19,    -1,    30,    -1,
-      24,    -1,    -1,    -1,    -1,   105,    87,    -1,   105,    91,
+      24,    -1,    -1,    -1,    -1,    99,    81,    -1,    99,    85,
       -1,    11,    -1,    14,    -1,    20,    -1,    16,    -1,    19,
-      79,   118,    80,    -1,    19,    -1,    12,    -1,    13,   106,
-      -1,    89,    -1,   106,    73,   106,    -1,   106,    74,   106,
-      -1,   106,    75,   106,    -1,   106,    76,   106,    -1,   106,
-      81,   106,    -1,   106,    82,   106,    -1,   106,    62,   106,
-      -1,   106,    57,   106,    -1,   106,    58,   106,    -1,   106,
-      63,   106,    -1,   106,    64,   106,    -1,    65,   106,    -1,
-     106,    83,   106,    -1,   106,    66,   106,    -1,   106,    67,
-     106,    -1,   106,    68,   106,    -1,    73,   106,    -1,    74,
-     106,    -1,    79,   106,    80,    -1,    69,   106,    70,   106,
-      -1,    69,   106,    71,   106,    -1,    34,    20,    -1,    35,
-      19,    -1,    40,   106,    -1,   109,    -1,    26,    -1,    28,
-     108,    -1,    18,   106,    -1,    17,   106,    -1,    17,    -1,
-      51,   106,    -1,    52,    11,    -1,    52,    -1,    53,   106,
-      -1,    53,    -1,    54,   106,    -1,    54,    -1,    55,   106,
-      -1,    56,   106,    -1,    19,    -1,   108,    84,    19,    -1,
-      29,    32,    -1,    29,    37,    -1,    29,    39,    -1,    29,
-     110,    -1,    29,   110,   111,    -1,    29,   111,    -1,    44,
-      27,    20,    -1,    27,    20,    -1,    44,    20,    -1,    20,
-      -1,    38,    36,    20,    -1,    36,    20,    -1,    44,    36,
-      20,    -1,    -1,    33,    19,   113,   103,   115,    87,   116,
-     105,    -1,    49,    19,    -1,    -1,    50,    19,   114,   103,
-     115,    87,   116,   105,    -1,    -1,    19,    -1,   115,    84,
-      19,    -1,   115,    87,    84,    19,    -1,    -1,    19,   103,
-     118,    -1,    -1,   106,    -1,   118,    84,   106,    -1
+      73,   112,    74,    -1,    19,    -1,    12,    -1,    13,   100,
+      -1,    83,    -1,   100,    67,   100,    -1,   100,    68,   100,
+      -1,   100,    69,   100,    -1,   100,    70,   100,    -1,   100,
+      75,   100,    -1,   100,    76,   100,    -1,   100,    56,   100,
+      -1,   100,    51,   100,    -1,   100,    52,   100,    -1,   100,
+      57,   100,    -1,   100,    58,   100,    -1,    59,   100,    -1,
+     100,    77,   100,    -1,   100,    60,   100,    -1,   100,    61,
+     100,    -1,   100,    62,   100,    -1,    67,   100,    -1,    68,
+     100,    -1,    73,   100,    74,    -1,    63,   100,    64,   100,
+      -1,    63,   100,    65,   100,    -1,    34,    20,    -1,    35,
+      19,    -1,    40,   100,    -1,   103,    -1,    26,    -1,    28,
+     102,    -1,    18,   100,    -1,    17,   100,    -1,    17,    -1,
+      19,    -1,   102,    78,    19,    -1,    29,    32,    -1,    29,
+      37,    -1,    29,    39,    -1,    29,   104,    -1,    29,   104,
+     105,    -1,    29,   105,    -1,    44,    27,    20,    -1,    27,
+      20,    -1,    44,    20,    -1,    20,    -1,    38,    36,    20,
+      -1,    36,    20,    -1,    44,    36,    20,    -1,    -1,    33,
+      19,   107,    97,   109,    81,   110,    99,    -1,    49,    19,
+      -1,    -1,    50,    19,   108,    97,   109,    81,   110,    99,
+      -1,    -1,    19,    -1,   109,    78,    19,    -1,   109,    81,
+      78,    19,    -1,    -1,    19,    97,   112,    -1,    -1,   100,
+      -1,   112,    78,   100,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   104,   104,   105,   106,   109,   114,   115,   116,   117,
-     118,   119,   122,   128,   134,   142,   150,   156,   164,   173,
-     174,   176,   177,   182,   193,   209,   221,   226,   233,   242,
-     251,   261,   271,   282,   283,   286,   287,   290,   291,   294,
-     302,   303,   311,   312,   313,   315,   317,   323,   329,   336,
-     338,   340,   341,   342,   345,   346,   349,   352,   356,   359,
-     363,   370,   376,   377,   378,   379,   380,   381,   382,   383,
-     384,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,   397,   400,   401,   402,   403,   404,   406,
-     407,   410,   413,   416,   417,   420,   423,   424,   427,   428,
-     431,   432,   435,   436,   447,   448,   449,   450,   455,   461,
-     468,   469,   470,   471,   474,   475,   476,   504,   504,   510,
-     513,   513,   519,   520,   521,   522,   524,   528,   536,   537,
-     538
+       0,   103,   103,   104,   105,   108,   113,   114,   115,   116,
+     117,   118,   121,   127,   133,   141,   149,   155,   163,   172,
+     173,   175,   176,   181,   192,   208,   220,   225,   232,   241,
+     250,   260,   270,   281,   282,   285,   286,   289,   290,   293,
+     301,   302,   310,   311,   312,   314,   316,   322,   328,   335,
+     337,   339,   340,   341,   344,   345,   348,   351,   355,   358,
+     362,   369,   375,   376,   377,   378,   379,   380,   381,   382,
+     383,   384,   385,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   399,   400,   401,   402,   403,   405,
+     406,   409,   412,   417,   418,   429,   430,   431,   432,   437,
+     443,   450,   451,   452,   453,   456,   457,   458,   486,   486,
+     492,   495,   495,   501,   502,   503,   504,   506,   510,   518,
+     519,   520
 };
 #endif
 
@@ -654,8 +638,7 @@ static const char *const yytname[] =
   "tEND", "tEXIT", "tFRAME", "tGLOBAL", "tGO", "tIF", "tINTO", "tLOOP",
   "tMACRO", "tMCI", "tMCIWAIT", "tMOVIE", "tNEXT", "tOF", "tPREVIOUS",
   "tPUT", "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE",
-  "tNLELSE", "tFACTORY", "tMETHOD", "tALERT", "tBEEP", "tCLOSERESFILE",
-  "tCLOSEXLIB", "tCURSOR", "tDELAY", "tGE", "tLE", "tGT", "tLT", "tEQ",
+  "tNLELSE", "tFACTORY", "tMETHOD", "tGE", "tLE", "tGT", "tLT", "tEQ",
   "tNEQ", "tAND", "tOR", "tNOT", "tCONCAT", "tCONTAINS", "tSTARTS",
   "tSPRITE", "tINTERSECTS", "tWITHIN", "'='", "'+'", "'-'", "'*'", "'/'",
   "'%'", "'\\n'", "'('", "')'", "'>'", "'<'", "'&'", "','", "$accept",
@@ -679,29 +662,27 @@ static const yytype_uint16 yytoknum[] =
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     325,   326,    61,    43,    45,    42,    47,    37,    10,    40,
-      41,    62,    60,    38,    44
+     315,   316,   317,   318,   319,   320,    61,    43,    45,    42,
+      47,    37,    10,    40,    41,    62,    60,    38,    44
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    85,    86,    86,    86,    87,    88,    88,    88,    88,
-      88,    88,    89,    89,    89,    89,    89,    89,    89,    90,
-      90,    91,    91,    91,    91,    91,    91,    92,    92,    92,
-      92,    92,    92,    93,    93,    94,    94,    95,    95,    96,
-      97,    97,    98,    98,    98,    99,   100,   101,   102,   103,
-     104,   105,   105,   105,   106,   106,   106,   106,   106,   106,
-     106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
-     106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
-     106,   106,   106,   106,   107,   107,   107,   107,   107,   107,
-     107,   107,   107,   107,   107,   107,   107,   107,   107,   107,
-     107,   107,   108,   108,   109,   109,   109,   109,   109,   109,
-     110,   110,   110,   110,   111,   111,   111,   113,   112,   112,
-     114,   112,   115,   115,   115,   115,   116,   117,   118,   118,
-     118
+       0,    79,    80,    80,    80,    81,    82,    82,    82,    82,
+      82,    82,    83,    83,    83,    83,    83,    83,    83,    84,
+      84,    85,    85,    85,    85,    85,    85,    86,    86,    86,
+      86,    86,    86,    87,    87,    88,    88,    89,    89,    90,
+      91,    91,    92,    92,    92,    93,    94,    95,    96,    97,
+      98,    99,    99,    99,   100,   100,   100,   100,   100,   100,
+     100,   100,   100,   100,   100,   100,   100,   100,   100,   100,
+     100,   100,   100,   100,   100,   100,   100,   100,   100,   100,
+     100,   100,   100,   100,   101,   101,   101,   101,   101,   101,
+     101,   101,   101,   102,   102,   103,   103,   103,   103,   103,
+     103,   104,   104,   104,   104,   105,   105,   105,   107,   106,
+     106,   108,   106,   109,   109,   109,   109,   110,   111,   112,
+     112,   112
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -716,11 +697,10 @@ static const yytype_uint8 yyr2[] =
        1,     2,     1,     3,     3,     3,     3,     3,     3,     3,
        3,     3,     3,     3,     2,     3,     3,     3,     3,     2,
        2,     3,     4,     4,     2,     2,     2,     1,     1,     2,
-       2,     2,     1,     2,     2,     1,     2,     1,     2,     1,
-       2,     2,     1,     3,     2,     2,     2,     2,     3,     2,
-       3,     2,     2,     1,     3,     2,     3,     0,     8,     2,
-       0,     8,     0,     1,     3,     4,     0,     3,     0,     1,
-       3
+       2,     2,     1,     1,     3,     2,     2,     2,     2,     3,
+       2,     3,     2,     2,     1,     3,     2,     3,     0,     8,
+       2,     0,     8,     0,     1,     3,     4,     0,     3,     0,
+       1,     3
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -730,83 +710,81 @@ static const yytype_uint8 yydefact[] =
 {
        0,     0,    54,    60,     0,    55,    57,    92,     0,    49,
       56,    88,     0,     0,    47,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    95,    97,    99,     0,     0,
-       0,     0,     0,     0,     0,     0,     3,    62,    21,    11,
-      22,     0,     0,     0,    19,     8,    87,     7,     9,     4,
-      59,     0,    62,    61,    91,    90,   128,   128,   102,    89,
-     113,     0,   104,     0,   105,     0,   106,     0,   107,   109,
-     117,    84,    85,    86,     0,    45,     0,     0,     0,     0,
-     119,   120,    93,    94,    96,    98,   100,   101,    74,     0,
-      79,    80,     0,     1,     5,     6,     0,     0,     0,     0,
-      42,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   129,     0,   127,
-       0,   111,   115,     0,   112,     0,     0,     0,   108,    49,
-       0,    46,     0,     0,     0,     0,     0,     0,    49,     0,
-       0,    81,     2,     0,    50,     0,     0,    49,     0,    70,
-      71,    69,    72,    73,    76,    77,    78,    63,    64,    65,
-      66,    67,    68,    75,    58,     0,   103,   114,   110,   116,
-     122,    12,    17,    14,     0,     0,    16,    13,    26,   122,
-      82,    83,    51,     0,    44,    51,     0,    43,   130,   123,
-       0,    18,    15,     0,    50,     0,     0,    50,    50,    20,
-       0,   126,   126,    52,    53,     0,     0,    50,    49,    30,
-     124,     0,    51,    51,     0,    50,    51,     0,    51,     0,
-      48,    49,    50,    38,     0,   125,   118,   121,    23,    51,
-      50,    27,    50,    50,    40,    36,     0,     0,    37,    33,
-       0,    50,     0,     0,    35,     0,     0,    50,    49,    50,
-      49,     0,     0,     0,     0,    49,    31,     0,    32,     0,
-       0,    24,    28,    29,    50,    34,    50,    25,    41,    39
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       3,    62,    21,    11,    22,     0,     0,     0,    19,     8,
+      87,     7,     9,     4,    59,     0,    62,    61,    91,    90,
+     119,   119,    93,    89,   104,     0,    95,     0,    96,     0,
+      97,     0,    98,   100,   108,    84,    85,    86,     0,    45,
+       0,     0,     0,     0,   110,   111,    74,     0,    79,    80,
+       0,     1,     5,     6,     0,     0,     0,     0,    42,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   120,     0,   118,     0,   102,
+     106,     0,   103,     0,     0,     0,    99,    49,     0,    46,
+       0,     0,     0,     0,     0,     0,    49,     0,     0,    81,
+       2,     0,    50,     0,     0,    49,     0,    70,    71,    69,
+      72,    73,    76,    77,    78,    63,    64,    65,    66,    67,
+      68,    75,    58,     0,    94,   105,   101,   107,   113,    12,
+      17,    14,     0,     0,    16,    13,    26,   113,    82,    83,
+      51,     0,    44,    51,     0,    43,   121,   114,     0,    18,
+      15,     0,    50,     0,     0,    50,    50,    20,     0,   117,
+     117,    52,    53,     0,     0,    50,    49,    30,   115,     0,
+      51,    51,     0,    50,    51,     0,    51,     0,    48,    49,
+      50,    38,     0,   116,   109,   112,    23,    51,    50,    27,
+      50,    50,    40,    36,     0,     0,    37,    33,     0,    50,
+       0,     0,    35,     0,     0,    50,    49,    50,    49,     0,
+       0,     0,     0,    49,    31,     0,    32,     0,     0,    24,
+      28,    29,    50,    34,    50,    25,    41,    39
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    35,   203,    36,    52,    38,   204,    40,   249,   233,
-     234,   223,   235,    99,    41,    42,    43,   224,   259,   183,
-     194,    44,   199,    59,    46,    68,    69,    47,   129,   138,
-     190,   212,    48,   118
+      -1,    29,   191,    30,    46,    32,   192,    34,   237,   221,
+     222,   211,   223,    87,    35,    36,    37,   212,   247,   171,
+     182,    38,   187,    53,    40,    62,    63,    41,   117,   126,
+     178,   200,    42,   106
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -213
+#define YYPACT_NINF -180
 static const yytype_int16 yypact[] =
 {
-     215,   -61,  -213,  -213,   563,  -213,  -213,   563,   563,   714,
-    -213,  -213,     7,   135,  -213,    18,    29,    32,   563,    27,
-      64,    44,    60,    65,   563,    78,   563,   563,   563,   563,
-     563,   563,   563,   563,   563,     2,  -213,     3,  -213,  -213,
-    -213,    12,    20,   580,   241,  -213,  -213,  -213,  -213,  -213,
-      14,   563,  -213,   241,   241,   241,   563,   563,  -213,    10,
-    -213,    81,  -213,   100,  -213,    86,  -213,    33,    52,  -213,
-    -213,  -213,  -213,   120,   104,  -213,   -31,   563,   -26,    57,
-    -213,  -213,   241,  -213,   241,   241,   241,   241,     4,   616,
-       4,     4,   665,  -213,  -213,   319,   580,   563,   580,    82,
-     692,   563,   563,   563,   563,   563,   563,   563,   563,   563,
-     563,   563,   563,   563,   563,   563,   120,   241,   -30,    40,
-     107,  -213,  -213,   108,  -213,   109,   111,    91,  -213,  -213,
-     113,  -213,   563,   563,   594,   563,   563,   563,  -213,   563,
-     563,  -213,  -213,    55,   241,    63,   638,    66,   563,   241,
-     241,   241,   241,   241,   241,   241,   241,   741,   741,     4,
-       4,   241,   241,   241,  -213,   563,  -213,  -213,  -213,  -213,
-     126,  -213,   241,   241,   563,   563,   241,   241,   241,   126,
-     241,   241,  -213,    -2,  -213,  -213,   516,   241,   241,  -213,
-     -19,   241,   241,   -19,   383,   102,   563,   383,  -213,  -213,
-     128,    68,    68,  -213,  -213,   123,   563,   241,   -10,    -1,
-    -213,   131,  -213,  -213,   112,   241,  -213,   127,  -213,   132,
-    -213,  -213,   132,  -213,   580,  -213,   383,   383,  -213,  -213,
-     383,  -213,   383,   132,   132,  -213,   580,   516,  -213,   110,
-     116,   383,   138,   140,  -213,   143,   117,  -213,  -213,  -213,
-    -213,   144,   129,   150,   151,   -14,  -213,   516,  -213,   452,
-     148,  -213,  -213,  -213,   383,  -213,  -213,  -213,  -213,  -213
+     203,   -51,  -180,  -180,   428,  -180,  -180,   428,   428,   638,
+    -180,  -180,     4,   219,  -180,    15,    12,    35,   428,    13,
+      36,    38,    46,    49,   428,   428,   428,   428,   428,     2,
+    -180,     3,  -180,  -180,  -180,   -32,     5,   460,   616,  -180,
+    -180,  -180,  -180,  -180,     8,   428,  -180,   616,   616,   616,
+     428,   428,  -180,    -5,  -180,    50,  -180,    56,  -180,    41,
+    -180,    -3,     9,  -180,  -180,  -180,  -180,   474,    60,  -180,
+     -29,   428,   -26,    39,  -180,  -180,   270,   518,   270,   270,
+     567,  -180,  -180,   266,   460,   428,   460,    45,   594,   428,
+     428,   428,   428,   428,   428,   428,   428,   428,   428,   428,
+     428,   428,   428,   428,   474,   616,   -12,    29,    65,  -180,
+    -180,    88,  -180,    91,    92,    77,  -180,  -180,    95,  -180,
+     428,   428,   496,   428,   428,   428,  -180,   428,   428,  -180,
+    -180,    42,   616,    43,   540,    47,   428,   616,   616,   616,
+     616,   616,   616,   616,   616,   665,   665,   270,   270,   616,
+     616,   616,  -180,   428,  -180,  -180,  -180,  -180,    96,  -180,
+     616,   616,   428,   428,   616,   616,   616,    96,   616,   616,
+    -180,    -2,  -180,  -180,   396,   616,   616,  -180,   -22,   616,
+     616,   -22,   324,    76,   428,   324,  -180,  -180,   104,    52,
+      52,  -180,  -180,   106,   428,   616,    -9,   -13,  -180,   113,
+    -180,  -180,    93,   616,  -180,   103,  -180,   111,  -180,  -180,
+     111,  -180,   460,  -180,   324,   324,  -180,  -180,   324,  -180,
+     324,   111,   111,  -180,   460,   396,  -180,    97,    98,   324,
+     115,   119,  -180,   121,   105,  -180,  -180,  -180,  -180,   122,
+     108,   125,   127,   -11,  -180,   396,  -180,   360,   110,  -180,
+    -180,  -180,   324,  -180,  -180,  -180,  -180,  -180
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -213,  -213,   -29,    90,    22,  -182,     0,  -213,  -213,  -213,
-     -18,  -186,   -43,   -82,  -213,  -213,  -213,  -212,    -8,    80,
-    -173,     1,    24,  -213,  -213,  -213,   124,  -213,  -213,  -213,
-      19,    -3,  -213,   147
+    -180,  -180,   -25,    53,     6,  -167,     0,  -180,  -180,  -180,
+     -39,  -179,   -62,   -74,  -180,  -180,  -180,  -177,    -8,   -43,
+    -137,     1,    22,  -180,  -180,  -180,    99,  -180,  -180,  -180,
+      -1,   -28,  -180,   114
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -816,176 +794,160 @@ static const yytype_int16 yypgoto[] =
 #define YYTABLE_NINF -60
 static const yytype_int16 yytable[] =
 {
-      39,    57,    93,   -10,   198,    53,    95,   236,    54,    55,
-     -51,   -51,   197,   132,   143,   217,   145,    49,   135,    73,
-     195,   236,    37,   220,    45,    82,    58,    84,    85,    86,
-      87,    88,    89,    90,    91,    92,   238,    70,   218,   226,
-     227,   133,   196,   230,   100,   232,   136,   221,   238,    71,
-     164,    72,   116,   124,   165,   247,   241,   117,   117,    94,
-     125,   101,   102,    79,   -51,   200,   103,   104,   105,   126,
-     106,   107,   108,    74,    75,   265,    76,    77,   134,    80,
-      94,   -10,   264,    78,    81,   113,   114,   115,    63,    83,
-      65,    96,    97,    56,   120,    39,   127,   100,   144,   146,
-     137,   121,   149,   150,   151,   152,   153,   154,   155,   156,
-     157,   158,   159,   160,   161,   162,   163,    37,   185,    45,
-     122,   170,   123,   131,   165,   147,   166,   126,   167,   168,
-     179,   169,   171,   172,   173,   182,   176,   177,   178,   186,
-     180,   181,   240,   184,    94,   189,   206,   210,   214,   187,
-     225,   130,   211,   228,   246,    60,   220,   231,   248,   250,
-     255,   201,    61,   252,   202,   253,   188,    62,   254,   260,
-     261,    63,    64,    65,    66,   191,   192,   101,   102,    67,
-     262,   263,   103,   104,   105,   142,   106,   107,   108,   267,
-     244,   222,   128,   109,   110,   111,   112,   207,   193,   213,
-     219,   113,   114,   115,   119,     0,     0,   215,     0,     0,
-       0,     0,     0,   237,     0,    -6,     1,     0,     0,     0,
-       0,     0,     0,     0,     0,   100,     2,     3,     4,     5,
-       0,     6,     7,     8,     9,    10,     0,   100,     0,     0,
-     257,    11,     0,    12,    13,    14,     0,     0,    15,    16,
-      17,     0,     0,     0,     0,    18,    19,    20,     0,   266,
-      21,     0,     0,     0,    22,    23,    24,    25,    26,    27,
-      28,    29,     0,     0,   205,     0,     0,   208,   209,     0,
-      30,     0,     0,     0,    31,     0,     0,   216,    32,    33,
-       0,     0,     0,    -6,    34,   229,     0,     0,   101,   102,
-       0,     0,   239,   103,   104,   105,     0,   106,   107,   108,
-     242,     0,   243,   245,   109,   110,   111,   112,     0,     0,
-       0,   251,   113,   114,   115,     0,     0,   256,     0,   258,
-       2,     3,     4,     5,     0,     6,     7,     8,     9,    10,
-       0,     0,     0,     0,   268,    11,   269,    12,    13,    14,
-       0,     0,    15,    16,    17,     0,     0,     0,     0,    18,
-      19,    20,     0,     0,    21,     0,     0,     0,    22,    23,
-      24,    25,    26,    27,    28,    29,     0,     0,     0,     0,
-       0,     0,     0,     0,    30,     0,     0,     0,    31,     0,
-       0,     0,    32,    33,     2,     3,     4,     5,    34,     6,
-       7,     8,    50,    10,     0,     0,     0,     0,     0,    11,
-       0,    12,    13,    14,     0,     0,     0,    16,    17,     0,
-       0,     0,     0,    18,    19,    20,     0,     0,    21,     0,
-       0,     0,     0,     0,    24,    25,    26,    27,    28,    29,
-       0,     0,     0,     0,     0,     0,     0,     0,    30,     0,
-       0,     0,    31,     0,     0,     0,    32,    33,     0,     0,
-       0,    94,    34,     2,     3,     4,     5,     0,     6,     7,
-       8,    50,    10,     0,     0,     0,     0,     0,    11,     0,
-      12,    13,    14,     0,     0,     0,    16,    17,     0,     0,
-       0,     0,    18,    19,    20,     0,     0,    21,     0,     0,
-       0,     0,     0,    24,    25,    26,    27,    28,    29,     0,
-       0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
-       0,    31,     0,     0,     0,    32,    33,     2,     3,     4,
-       5,    34,     6,     7,     8,    50,    10,     0,     0,     0,
-       0,     0,    11,     0,    12,    13,     0,     0,     0,     0,
-      16,    17,     0,     0,     0,     0,    18,     0,    20,     0,
-       0,     0,     0,     0,     0,     0,     0,    24,    25,    26,
-      27,    28,    29,     0,     2,     3,     4,     5,     0,     6,
-       0,    30,    50,    10,     0,    31,     0,     0,     0,    32,
-      33,     2,     3,     4,     5,    34,     6,     0,     0,    50,
-      10,     0,     0,    51,     0,    20,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      51,     0,    20,     0,     0,     0,     0,     0,    30,     0,
-       0,     0,    31,     0,     0,     0,    32,    33,   174,     0,
-       0,     0,    34,     0,     0,    30,     0,     0,     0,    31,
-       0,   101,   102,    32,    33,     0,   103,   104,   105,    98,
-     106,   107,   108,     0,     0,     0,   175,   109,   110,   111,
-     112,     0,     0,   101,   102,   113,   114,   115,   103,   104,
-     105,     0,   106,   107,   108,     0,   139,   140,     0,   109,
-     110,   111,   112,     0,     0,   101,   102,   113,   114,   115,
-     103,   104,   105,     0,   106,   107,   108,     0,     0,     0,
-     148,   109,   110,   111,   112,     0,     0,     0,   141,   113,
-     114,   115,   101,   102,     0,     0,     0,   103,   104,   105,
-       0,   106,   107,   108,     0,     0,     0,     0,   109,   110,
-     111,   112,     0,     0,     0,   141,   113,   114,   115,   101,
-     102,     0,     0,     0,   103,   104,   105,     0,   106,   107,
-     108,     0,     0,     0,   148,   109,   110,   111,   112,     0,
-       0,   -59,   -59,   113,   114,   115,   -59,   -59,   -59,     0,
-     -59,   -59,   -59,     0,     0,     0,     0,     0,     0,   -59,
-     -59,     0,     0,    56,     0,   -59,   -59,   -59,   101,   102,
-       0,     0,     0,   103,   104,   105,     0,   106,   107,   108,
-       0,     0,     0,     0,     0,     0,   111,   112,     0,     0,
-       0,     0,   113,   114,   115
+      33,    51,    81,   -10,    83,    47,    31,   186,    48,    49,
+     131,   208,   133,   -51,   -51,   120,   205,   112,   123,    67,
+     183,    43,    39,    52,   113,    76,    77,    78,    79,    80,
+     224,   226,    65,   114,    64,   209,   185,   121,    88,   206,
+     124,    84,   184,   226,   224,    57,   104,    59,    70,    71,
+      82,   105,   105,   115,    66,    72,   188,    73,   235,    68,
+      69,   -51,   152,   214,   215,    74,   153,   218,    75,   220,
+     109,    85,   122,   108,    82,   -10,   110,   111,   253,   119,
+     229,    50,   125,    33,   154,    88,   132,   134,   135,    31,
+     137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
+     147,   148,   149,   150,   151,    39,   252,   153,   155,   158,
+     173,   156,   157,   114,   159,   177,   170,   172,   167,    82,
+     194,   160,   161,   198,   164,   165,   166,   174,   168,   169,
+     199,   202,   213,   219,   216,   208,   130,   175,   228,   193,
+     240,   238,   196,   197,   241,   236,   242,   248,   243,   249,
+     234,   255,   204,   189,   176,   250,   190,   251,   210,   232,
+     217,   116,   201,   179,   180,   107,   181,   227,     0,     0,
+       0,     0,     0,     0,     0,   230,     0,   231,   233,     0,
+       0,     0,     0,     0,     0,   195,   239,     0,   207,     0,
+       0,     0,   244,     0,   246,   203,     0,     0,     0,     0,
+       0,   225,     0,    -6,     1,     0,     0,     0,     0,   256,
+       0,   257,     0,    88,     2,     3,     4,     5,     0,     6,
+       7,     8,     9,    10,     0,    88,     0,     0,   245,    11,
+       0,    12,    13,    14,     0,     0,    15,    16,    17,    54,
+       0,     0,     0,    18,    19,    20,    55,   254,    21,     0,
+       0,    56,    22,    23,     0,    57,    58,    59,    60,     0,
+       0,     0,    24,    61,     0,     0,    25,     0,     0,     0,
+      26,    27,     0,     0,     0,    -6,    28,     2,     3,     4,
+       5,     0,     6,     7,     8,     9,    10,     0,     0,     0,
+       0,     0,    11,     0,    12,    13,    14,     0,     0,    15,
+      16,    17,     0,     0,     0,     0,    18,    19,    20,     0,
+       0,    21,     0,     0,     0,    22,    23,     0,     0,     0,
+       0,    89,    90,     0,     0,    24,    91,    92,    93,    25,
+      94,    95,    96,    26,    27,     2,     3,     4,     5,    28,
+       6,     7,     8,    44,    10,   101,   102,   103,     0,     0,
+      11,     0,    12,    13,    14,     0,     0,     0,    16,    17,
+       0,     0,     0,     0,    18,    19,    20,     0,     0,    21,
+       0,     2,     3,     4,     5,     0,     6,     7,     8,    44,
+      10,     0,     0,    24,     0,     0,    11,    25,    12,    13,
+      14,    26,    27,     0,    16,    17,    82,    28,     0,     0,
+      18,    19,    20,     0,     0,    21,     0,     2,     3,     4,
+       5,     0,     6,     7,     8,    44,    10,     0,     0,    24,
+       0,     0,    11,    25,    12,    13,     0,    26,    27,     0,
+      16,    17,     0,    28,     0,     0,    18,     0,    20,     2,
+       3,     4,     5,     0,     6,     0,     0,    44,    10,     0,
+       0,     0,     0,     0,     0,    24,     0,     0,     0,    25,
+       0,     0,     0,    26,    27,     0,     0,     0,    45,    28,
+      20,     2,     3,     4,     5,     0,     6,     0,     0,    44,
+      10,     0,     0,     0,     0,     0,     0,    24,     0,     0,
+       0,    25,     0,     0,     0,    26,    27,     0,     0,     0,
+      45,    28,    20,     0,     0,   118,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    24,
+       0,     0,     0,    25,     0,    89,    90,    26,    27,     0,
+      91,    92,    93,    86,    94,    95,    96,     0,     0,     0,
+     162,    97,    98,    99,   100,     0,     0,    89,    90,   101,
+     102,   103,    91,    92,    93,     0,    94,    95,    96,     0,
+       0,     0,   163,    97,    98,    99,   100,     0,     0,    89,
+      90,   101,   102,   103,    91,    92,    93,     0,    94,    95,
+      96,     0,   127,   128,     0,    97,    98,    99,   100,     0,
+       0,    89,    90,   101,   102,   103,    91,    92,    93,     0,
+      94,    95,    96,     0,     0,     0,   136,    97,    98,    99,
+     100,     0,     0,     0,   129,   101,   102,   103,    89,    90,
+       0,     0,     0,    91,    92,    93,     0,    94,    95,    96,
+       0,     0,     0,     0,    97,    98,    99,   100,     0,     0,
+       0,   129,   101,   102,   103,    89,    90,     0,     0,     0,
+      91,    92,    93,     0,    94,    95,    96,     0,     0,     0,
+     136,    97,    98,    99,   100,     0,     0,    89,    90,   101,
+     102,   103,    91,    92,    93,     0,    94,    95,    96,     0,
+       0,     0,     0,    97,    98,    99,   100,     0,     0,   -59,
+     -59,   101,   102,   103,   -59,   -59,   -59,     0,   -59,   -59,
+     -59,     0,     0,     0,     0,     0,     0,   -59,   -59,     0,
+       0,    50,     0,   -59,   -59,   -59,    89,    90,     0,     0,
+       0,    91,    92,    93,     0,    94,    95,    96,     0,     0,
+       0,     0,     0,     0,    99,   100,     0,     0,     0,     0,
+     101,   102,   103
 };
 
 static const yytype_int16 yycheck[] =
 {
-       0,     9,     0,     0,   186,     4,    35,   219,     7,     8,
-      24,    25,   185,    44,    96,    25,    98,    78,    44,    18,
-      22,   233,     0,    24,     0,    24,    19,    26,    27,    28,
-      29,    30,    31,    32,    33,    34,   222,    19,    48,   212,
-     213,    72,    44,   216,    43,   218,    72,    48,   234,    20,
-      80,    19,    51,    20,    84,   237,   229,    56,    57,    78,
-      27,    57,    58,    19,    78,    84,    62,    63,    64,    36,
-      66,    67,    68,    46,    47,   257,    12,    13,    77,    19,
-      78,    78,   255,    19,    19,    81,    82,    83,    36,    11,
-      38,    79,    72,    79,    84,    95,    44,    96,    97,    98,
-      43,    20,   101,   102,   103,   104,   105,   106,   107,   108,
-     109,   110,   111,   112,   113,   114,   115,    95,   147,    95,
-      20,   129,    36,    19,    84,    43,    19,    36,    20,    20,
-     138,    20,    19,   132,   133,    80,   135,   136,   137,   147,
-     139,   140,   224,    80,    78,    19,    44,    19,    25,   148,
-      19,    31,    84,    41,   236,    20,    24,    30,    48,    43,
-      43,   190,    27,    25,   193,    25,   165,    32,    25,    25,
-      41,    36,    37,    38,    39,   174,   175,    57,    58,    44,
-      30,    30,    62,    63,    64,    95,    66,    67,    68,    41,
-     233,   209,    68,    73,    74,    75,    76,   196,   179,   202,
-     208,    81,    82,    83,    57,    -1,    -1,   206,    -1,    -1,
-      -1,    -1,    -1,   221,    -1,     0,     1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   224,    11,    12,    13,    14,
-      -1,    16,    17,    18,    19,    20,    -1,   236,    -1,    -1,
-     248,    26,    -1,    28,    29,    30,    -1,    -1,    33,    34,
-      35,    -1,    -1,    -1,    -1,    40,    41,    42,    -1,   259,
-      45,    -1,    -1,    -1,    49,    50,    51,    52,    53,    54,
-      55,    56,    -1,    -1,   194,    -1,    -1,   197,   198,    -1,
-      65,    -1,    -1,    -1,    69,    -1,    -1,   207,    73,    74,
-      -1,    -1,    -1,    78,    79,   215,    -1,    -1,    57,    58,
-      -1,    -1,   222,    62,    63,    64,    -1,    66,    67,    68,
-     230,    -1,   232,   233,    73,    74,    75,    76,    -1,    -1,
-      -1,   241,    81,    82,    83,    -1,    -1,   247,    -1,   249,
-      11,    12,    13,    14,    -1,    16,    17,    18,    19,    20,
-      -1,    -1,    -1,    -1,   264,    26,   266,    28,    29,    30,
-      -1,    -1,    33,    34,    35,    -1,    -1,    -1,    -1,    40,
-      41,    42,    -1,    -1,    45,    -1,    -1,    -1,    49,    50,
-      51,    52,    53,    54,    55,    56,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    69,    -1,
-      -1,    -1,    73,    74,    11,    12,    13,    14,    79,    16,
-      17,    18,    19,    20,    -1,    -1,    -1,    -1,    -1,    26,
-      -1,    28,    29,    30,    -1,    -1,    -1,    34,    35,    -1,
-      -1,    -1,    -1,    40,    41,    42,    -1,    -1,    45,    -1,
-      -1,    -1,    -1,    -1,    51,    52,    53,    54,    55,    56,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,
-      -1,    -1,    69,    -1,    -1,    -1,    73,    74,    -1,    -1,
-      -1,    78,    79,    11,    12,    13,    14,    -1,    16,    17,
-      18,    19,    20,    -1,    -1,    -1,    -1,    -1,    26,    -1,
-      28,    29,    30,    -1,    -1,    -1,    34,    35,    -1,    -1,
-      -1,    -1,    40,    41,    42,    -1,    -1,    45,    -1,    -1,
-      -1,    -1,    -1,    51,    52,    53,    54,    55,    56,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,
-      -1,    69,    -1,    -1,    -1,    73,    74,    11,    12,    13,
-      14,    79,    16,    17,    18,    19,    20,    -1,    -1,    -1,
-      -1,    -1,    26,    -1,    28,    29,    -1,    -1,    -1,    -1,
-      34,    35,    -1,    -1,    -1,    -1,    40,    -1,    42,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    52,    53,
-      54,    55,    56,    -1,    11,    12,    13,    14,    -1,    16,
-      -1,    65,    19,    20,    -1,    69,    -1,    -1,    -1,    73,
-      74,    11,    12,    13,    14,    79,    16,    -1,    -1,    19,
-      20,    -1,    -1,    40,    -1,    42,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      40,    -1,    42,    -1,    -1,    -1,    -1,    -1,    65,    -1,
-      -1,    -1,    69,    -1,    -1,    -1,    73,    74,    44,    -1,
-      -1,    -1,    79,    -1,    -1,    65,    -1,    -1,    -1,    69,
-      -1,    57,    58,    73,    74,    -1,    62,    63,    64,    79,
-      66,    67,    68,    -1,    -1,    -1,    72,    73,    74,    75,
-      76,    -1,    -1,    57,    58,    81,    82,    83,    62,    63,
-      64,    -1,    66,    67,    68,    -1,    70,    71,    -1,    73,
-      74,    75,    76,    -1,    -1,    57,    58,    81,    82,    83,
-      62,    63,    64,    -1,    66,    67,    68,    -1,    -1,    -1,
-      72,    73,    74,    75,    76,    -1,    -1,    -1,    80,    81,
-      82,    83,    57,    58,    -1,    -1,    -1,    62,    63,    64,
-      -1,    66,    67,    68,    -1,    -1,    -1,    -1,    73,    74,
-      75,    76,    -1,    -1,    -1,    80,    81,    82,    83,    57,
-      58,    -1,    -1,    -1,    62,    63,    64,    -1,    66,    67,
-      68,    -1,    -1,    -1,    72,    73,    74,    75,    76,    -1,
-      -1,    57,    58,    81,    82,    83,    62,    63,    64,    -1,
-      66,    67,    68,    -1,    -1,    -1,    -1,    -1,    -1,    75,
-      76,    -1,    -1,    79,    -1,    81,    82,    83,    57,    58,
-      -1,    -1,    -1,    62,    63,    64,    -1,    66,    67,    68,
-      -1,    -1,    -1,    -1,    -1,    -1,    75,    76,    -1,    -1,
-      -1,    -1,    81,    82,    83
+       0,     9,     0,     0,    29,     4,     0,   174,     7,     8,
+      84,    24,    86,    24,    25,    44,    25,    20,    44,    18,
+      22,    72,     0,    19,    27,    24,    25,    26,    27,    28,
+     207,   210,    20,    36,    19,    48,   173,    66,    37,    48,
+      66,    73,    44,   222,   221,    36,    45,    38,    12,    13,
+      72,    50,    51,    44,    19,    19,    78,    19,   225,    46,
+      47,    72,    74,   200,   201,    19,    78,   204,    19,   206,
+      20,    66,    71,    78,    72,    72,    20,    36,   245,    19,
+     217,    73,    43,    83,    19,    84,    85,    86,    43,    83,
+      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+      99,   100,   101,   102,   103,    83,   243,    78,    20,   117,
+     135,    20,    20,    36,    19,    19,    74,    74,   126,    72,
+      44,   120,   121,    19,   123,   124,   125,   135,   127,   128,
+      78,    25,    19,    30,    41,    24,    83,   136,   212,   182,
+      25,    43,   185,   186,    25,    48,    25,    25,    43,    41,
+     224,    41,   195,   178,   153,    30,   181,    30,   197,   221,
+     203,    62,   190,   162,   163,    51,   167,   210,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   218,    -1,   220,   221,    -1,
+      -1,    -1,    -1,    -1,    -1,   184,   229,    -1,   196,    -1,
+      -1,    -1,   235,    -1,   237,   194,    -1,    -1,    -1,    -1,
+      -1,   209,    -1,     0,     1,    -1,    -1,    -1,    -1,   252,
+      -1,   254,    -1,   212,    11,    12,    13,    14,    -1,    16,
+      17,    18,    19,    20,    -1,   224,    -1,    -1,   236,    26,
+      -1,    28,    29,    30,    -1,    -1,    33,    34,    35,    20,
+      -1,    -1,    -1,    40,    41,    42,    27,   247,    45,    -1,
+      -1,    32,    49,    50,    -1,    36,    37,    38,    39,    -1,
+      -1,    -1,    59,    44,    -1,    -1,    63,    -1,    -1,    -1,
+      67,    68,    -1,    -1,    -1,    72,    73,    11,    12,    13,
+      14,    -1,    16,    17,    18,    19,    20,    -1,    -1,    -1,
+      -1,    -1,    26,    -1,    28,    29,    30,    -1,    -1,    33,
+      34,    35,    -1,    -1,    -1,    -1,    40,    41,    42,    -1,
+      -1,    45,    -1,    -1,    -1,    49,    50,    -1,    -1,    -1,
+      -1,    51,    52,    -1,    -1,    59,    56,    57,    58,    63,
+      60,    61,    62,    67,    68,    11,    12,    13,    14,    73,
+      16,    17,    18,    19,    20,    75,    76,    77,    -1,    -1,
+      26,    -1,    28,    29,    30,    -1,    -1,    -1,    34,    35,
+      -1,    -1,    -1,    -1,    40,    41,    42,    -1,    -1,    45,
+      -1,    11,    12,    13,    14,    -1,    16,    17,    18,    19,
+      20,    -1,    -1,    59,    -1,    -1,    26,    63,    28,    29,
+      30,    67,    68,    -1,    34,    35,    72,    73,    -1,    -1,
+      40,    41,    42,    -1,    -1,    45,    -1,    11,    12,    13,
+      14,    -1,    16,    17,    18,    19,    20,    -1,    -1,    59,
+      -1,    -1,    26,    63,    28,    29,    -1,    67,    68,    -1,
+      34,    35,    -1,    73,    -1,    -1,    40,    -1,    42,    11,
+      12,    13,    14,    -1,    16,    -1,    -1,    19,    20,    -1,
+      -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,    -1,    63,
+      -1,    -1,    -1,    67,    68,    -1,    -1,    -1,    40,    73,
+      42,    11,    12,    13,    14,    -1,    16,    -1,    -1,    19,
+      20,    -1,    -1,    -1,    -1,    -1,    -1,    59,    -1,    -1,
+      -1,    63,    -1,    -1,    -1,    67,    68,    -1,    -1,    -1,
+      40,    73,    42,    -1,    -1,    31,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    59,
+      -1,    -1,    -1,    63,    -1,    51,    52,    67,    68,    -1,
+      56,    57,    58,    73,    60,    61,    62,    -1,    -1,    -1,
+      44,    67,    68,    69,    70,    -1,    -1,    51,    52,    75,
+      76,    77,    56,    57,    58,    -1,    60,    61,    62,    -1,
+      -1,    -1,    66,    67,    68,    69,    70,    -1,    -1,    51,
+      52,    75,    76,    77,    56,    57,    58,    -1,    60,    61,
+      62,    -1,    64,    65,    -1,    67,    68,    69,    70,    -1,
+      -1,    51,    52,    75,    76,    77,    56,    57,    58,    -1,
+      60,    61,    62,    -1,    -1,    -1,    66,    67,    68,    69,
+      70,    -1,    -1,    -1,    74,    75,    76,    77,    51,    52,
+      -1,    -1,    -1,    56,    57,    58,    -1,    60,    61,    62,
+      -1,    -1,    -1,    -1,    67,    68,    69,    70,    -1,    -1,
+      -1,    74,    75,    76,    77,    51,    52,    -1,    -1,    -1,
+      56,    57,    58,    -1,    60,    61,    62,    -1,    -1,    -1,
+      66,    67,    68,    69,    70,    -1,    -1,    51,    52,    75,
+      76,    77,    56,    57,    58,    -1,    60,    61,    62,    -1,
+      -1,    -1,    -1,    67,    68,    69,    70,    -1,    -1,    51,
+      52,    75,    76,    77,    56,    57,    58,    -1,    60,    61,
+      62,    -1,    -1,    -1,    -1,    -1,    -1,    69,    70,    -1,
+      -1,    73,    -1,    75,    76,    77,    51,    52,    -1,    -1,
+      -1,    56,    57,    58,    -1,    60,    61,    62,    -1,    -1,
+      -1,    -1,    -1,    -1,    69,    70,    -1,    -1,    -1,    -1,
+      75,    76,    77
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -994,31 +956,30 @@ static const yytype_uint8 yystos[] =
 {
        0,     1,    11,    12,    13,    14,    16,    17,    18,    19,
       20,    26,    28,    29,    30,    33,    34,    35,    40,    41,
-      42,    45,    49,    50,    51,    52,    53,    54,    55,    56,
-      65,    69,    73,    74,    79,    86,    88,    89,    90,    91,
-      92,    99,   100,   101,   106,   107,   109,   112,   117,    78,
-      19,    40,    89,   106,   106,   106,    79,   103,    19,   108,
-      20,    27,    32,    36,    37,    38,    39,    44,   110,   111,
-      19,    20,    19,   106,    46,    47,    12,    13,    19,    19,
-      19,    19,   106,    11,   106,   106,   106,   106,   106,   106,
-     106,   106,   106,     0,    78,    87,    79,    72,    79,    98,
-     106,    57,    58,    62,    63,    64,    66,    67,    68,    73,
-      74,    75,    76,    81,    82,    83,   106,   106,   118,   118,
-      84,    20,    20,    36,    20,    27,    36,    44,   111,   113,
-      31,    19,    44,    72,   106,    44,    72,    43,   114,    70,
-      71,    80,    88,    98,   106,    98,   106,    43,    72,   106,
-     106,   106,   106,   106,   106,   106,   106,   106,   106,   106,
-     106,   106,   106,   106,    80,    84,    19,    20,    20,    20,
-     103,    19,   106,   106,    44,    72,   106,   106,   106,   103,
-     106,   106,    80,   104,    80,    87,   103,   106,   106,    19,
-     115,   106,   106,   115,   105,    22,    44,   105,    90,   107,
-      84,    87,    87,    87,    91,   104,    44,   106,   104,   104,
-      19,    84,   116,   116,    25,   106,   104,    25,    48,   103,
-      24,    48,    95,    96,   102,    19,   105,   105,    41,   104,
-     105,    30,   105,    94,    95,    97,   102,   103,    96,   104,
-      98,   105,   104,   104,    97,   104,    98,    90,    48,    93,
-      43,   104,    25,    25,    25,    43,   104,   103,   104,   103,
-      25,    41,    30,    30,   105,    90,    91,    41,   104,   104
+      42,    45,    49,    50,    59,    63,    67,    68,    73,    80,
+      82,    83,    84,    85,    86,    93,    94,    95,   100,   101,
+     103,   106,   111,    72,    19,    40,    83,   100,   100,   100,
+      73,    97,    19,   102,    20,    27,    32,    36,    37,    38,
+      39,    44,   104,   105,    19,    20,    19,   100,    46,    47,
+      12,    13,    19,    19,    19,    19,   100,   100,   100,   100,
+     100,     0,    72,    81,    73,    66,    73,    92,   100,    51,
+      52,    56,    57,    58,    60,    61,    62,    67,    68,    69,
+      70,    75,    76,    77,   100,   100,   112,   112,    78,    20,
+      20,    36,    20,    27,    36,    44,   105,   107,    31,    19,
+      44,    66,   100,    44,    66,    43,   108,    64,    65,    74,
+      82,    92,   100,    92,   100,    43,    66,   100,   100,   100,
+     100,   100,   100,   100,   100,   100,   100,   100,   100,   100,
+     100,   100,    74,    78,    19,    20,    20,    20,    97,    19,
+     100,   100,    44,    66,   100,   100,   100,    97,   100,   100,
+      74,    98,    74,    81,    97,   100,   100,    19,   109,   100,
+     100,   109,    99,    22,    44,    99,    84,   101,    78,    81,
+      81,    81,    85,    98,    44,   100,    98,    98,    19,    78,
+     110,   110,    25,   100,    98,    25,    48,    97,    24,    48,
+      89,    90,    96,    19,    99,    99,    41,    98,    99,    30,
+      99,    88,    89,    91,    96,    97,    90,    98,    92,    99,
+      98,    98,    91,    98,    92,    84,    48,    87,    43,    98,
+      25,    25,    25,    43,    98,    97,    98,    97,    25,    41,
+      30,    30,    99,    84,    85,    41,    98,    98
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -1833,12 +1794,12 @@ yyreduce:
   switch (yyn)
     {
         case 4:
-#line 106 "engines/director/lingo/lingo-gr.y"
+#line 105 "engines/director/lingo/lingo-gr.y"
     { yyerrok; ;}
     break;
 
   case 5:
-#line 109 "engines/director/lingo/lingo-gr.y"
+#line 108 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->_linenumber++;
 		g_lingo->_colnumber = 1;
@@ -1846,12 +1807,12 @@ yyreduce:
     break;
 
   case 10:
-#line 118 "engines/director/lingo/lingo-gr.y"
+#line 117 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_xpop); ;}
     break;
 
   case 12:
-#line 122 "engines/director/lingo/lingo-gr.y"
+#line 121 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_varpush);
 		g_lingo->codeString((yyvsp[(4) - (4)].s)->c_str());
@@ -1861,7 +1822,7 @@ yyreduce:
     break;
 
   case 13:
-#line 128 "engines/director/lingo/lingo-gr.y"
+#line 127 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_varpush);
 		g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str());
@@ -1871,7 +1832,7 @@ yyreduce:
     break;
 
   case 14:
-#line 134 "engines/director/lingo/lingo-gr.y"
+#line 133 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeConst(0); // Put dummy id
 		g_lingo->code1(g_lingo->c_theentityassign);
@@ -1883,7 +1844,7 @@ yyreduce:
     break;
 
   case 15:
-#line 142 "engines/director/lingo/lingo-gr.y"
+#line 141 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_swap);
 		g_lingo->code1(g_lingo->c_theentityassign);
@@ -1895,7 +1856,7 @@ yyreduce:
     break;
 
   case 16:
-#line 150 "engines/director/lingo/lingo-gr.y"
+#line 149 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_varpush);
 		g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str());
@@ -1905,7 +1866,7 @@ yyreduce:
     break;
 
   case 17:
-#line 156 "engines/director/lingo/lingo-gr.y"
+#line 155 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeConst(0); // Put dummy id
 		g_lingo->code1(g_lingo->c_theentityassign);
@@ -1917,7 +1878,7 @@ yyreduce:
     break;
 
   case 18:
-#line 164 "engines/director/lingo/lingo-gr.y"
+#line 163 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_swap);
 		g_lingo->code1(g_lingo->c_theentityassign);
@@ -1929,12 +1890,12 @@ yyreduce:
     break;
 
   case 19:
-#line 173 "engines/director/lingo/lingo-gr.y"
+#line 172 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_xpop); ;}
     break;
 
   case 23:
-#line 182 "engines/director/lingo/lingo-gr.y"
+#line 181 "engines/director/lingo/lingo-gr.y"
     {
 		inst body = 0, end = 0;
 		WRITE_UINT32(&body, (yyvsp[(5) - (8)].code));
@@ -1944,7 +1905,7 @@ yyreduce:
     break;
 
   case 24:
-#line 193 "engines/director/lingo/lingo-gr.y"
+#line 192 "engines/director/lingo/lingo-gr.y"
     {
 		inst init = 0, finish = 0, body = 0, end = 0, inc = 0;
 		WRITE_UINT32(&init, (yyvsp[(3) - (11)].code));
@@ -1960,7 +1921,7 @@ yyreduce:
     break;
 
   case 25:
-#line 209 "engines/director/lingo/lingo-gr.y"
+#line 208 "engines/director/lingo/lingo-gr.y"
     {
 		inst init = 0, finish = 0, body = 0, end = 0, inc = 0;
 		WRITE_UINT32(&init, (yyvsp[(3) - (12)].code));
@@ -1976,14 +1937,14 @@ yyreduce:
     break;
 
   case 26:
-#line 221 "engines/director/lingo/lingo-gr.y"
+#line 220 "engines/director/lingo/lingo-gr.y"
     {
 			g_lingo->code1(g_lingo->c_ifcode);
 		;}
     break;
 
   case 27:
-#line 226 "engines/director/lingo/lingo-gr.y"
+#line 225 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(5) - (8)].code));
@@ -1994,7 +1955,7 @@ yyreduce:
     break;
 
   case 28:
-#line 233 "engines/director/lingo/lingo-gr.y"
+#line 232 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(5) - (11)].code));
@@ -2007,7 +1968,7 @@ yyreduce:
     break;
 
   case 29:
-#line 242 "engines/director/lingo/lingo-gr.y"
+#line 241 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(5) - (11)].code));
@@ -2020,7 +1981,7 @@ yyreduce:
     break;
 
   case 30:
-#line 251 "engines/director/lingo/lingo-gr.y"
+#line 250 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (6)].code));
@@ -2034,7 +1995,7 @@ yyreduce:
     break;
 
   case 31:
-#line 261 "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[(4) - (10)].code));
@@ -2048,7 +2009,7 @@ yyreduce:
     break;
 
   case 32:
-#line 271 "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[(4) - (10)].code));
@@ -2062,17 +2023,17 @@ yyreduce:
     break;
 
   case 33:
-#line 282 "engines/director/lingo/lingo-gr.y"
+#line 281 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = 0; ;}
     break;
 
   case 34:
-#line 283 "engines/director/lingo/lingo-gr.y"
+#line 282 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = (yyvsp[(2) - (3)].code); ;}
     break;
 
   case 39:
-#line 294 "engines/director/lingo/lingo-gr.y"
+#line 293 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (6)].code));
@@ -2082,7 +2043,7 @@ yyreduce:
     break;
 
   case 41:
-#line 303 "engines/director/lingo/lingo-gr.y"
+#line 302 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (5)].code));
@@ -2092,22 +2053,22 @@ yyreduce:
     break;
 
   case 42:
-#line 311 "engines/director/lingo/lingo-gr.y"
+#line 310 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(STOP); ;}
     break;
 
   case 43:
-#line 312 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code2(g_lingo->c_eq, STOP); ;}
     break;
 
   case 45:
-#line 315 "engines/director/lingo/lingo-gr.y"
+#line 314 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); ;}
     break;
 
   case 46:
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP);
 		g_lingo->code3(STOP, STOP, STOP);
@@ -2116,7 +2077,7 @@ yyreduce:
     break;
 
   case 47:
-#line 323 "engines/director/lingo/lingo-gr.y"
+#line 322 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_ifcode);
 		g_lingo->code3(STOP, STOP, STOP);
@@ -2125,7 +2086,7 @@ yyreduce:
     break;
 
   case 48:
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
     {
 		inst skipEnd;
 		WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions
@@ -2135,41 +2096,41 @@ yyreduce:
     break;
 
   case 49:
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 335 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->_currentScript->size(); ;}
     break;
 
   case 50:
-#line 338 "engines/director/lingo/lingo-gr.y"
+#line 337 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); ;}
     break;
 
   case 51:
-#line 340 "engines/director/lingo/lingo-gr.y"
+#line 339 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->_currentScript->size(); ;}
     break;
 
   case 54:
-#line 345 "engines/director/lingo/lingo-gr.y"
+#line 344 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->codeConst((yyvsp[(1) - (1)].i)); ;}
     break;
 
   case 55:
-#line 346 "engines/director/lingo/lingo-gr.y"
+#line 345 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_fconstpush);
 		g_lingo->codeFloat((yyvsp[(1) - (1)].f)); ;}
     break;
 
   case 56:
-#line 349 "engines/director/lingo/lingo-gr.y"
+#line 348 "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 57:
-#line 352 "engines/director/lingo/lingo-gr.y"
+#line 351 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->_handlers[*(yyvsp[(1) - (1)].s)]->u.func);
 		g_lingo->codeConst(0); // Put dummy value
@@ -2177,14 +2138,14 @@ yyreduce:
     break;
 
   case 58:
-#line 356 "engines/director/lingo/lingo-gr.y"
+#line 355 "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 59:
-#line 359 "engines/director/lingo/lingo-gr.y"
+#line 358 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_eval);
 		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str());
@@ -2192,7 +2153,7 @@ yyreduce:
     break;
 
   case 60:
-#line 363 "engines/director/lingo/lingo-gr.y"
+#line 362 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->codeConst(0); // Put dummy id
 		g_lingo->code1(g_lingo->c_theentitypush);
@@ -2203,7 +2164,7 @@ yyreduce:
     break;
 
   case 61:
-#line 370 "engines/director/lingo/lingo-gr.y"
+#line 369 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_theentitypush);
 		inst e = 0, f = 0;
@@ -2213,232 +2174,179 @@ yyreduce:
     break;
 
   case 63:
-#line 377 "engines/director/lingo/lingo-gr.y"
+#line 376 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_add); ;}
     break;
 
   case 64:
-#line 378 "engines/director/lingo/lingo-gr.y"
+#line 377 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_sub); ;}
     break;
 
   case 65:
-#line 379 "engines/director/lingo/lingo-gr.y"
+#line 378 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_mul); ;}
     break;
 
   case 66:
-#line 380 "engines/director/lingo/lingo-gr.y"
+#line 379 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_div); ;}
     break;
 
   case 67:
-#line 381 "engines/director/lingo/lingo-gr.y"
+#line 380 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_gt); ;}
     break;
 
   case 68:
-#line 382 "engines/director/lingo/lingo-gr.y"
+#line 381 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_lt); ;}
     break;
 
   case 69:
-#line 383 "engines/director/lingo/lingo-gr.y"
+#line 382 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_neq); ;}
     break;
 
   case 70:
-#line 384 "engines/director/lingo/lingo-gr.y"
+#line 383 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_ge); ;}
     break;
 
   case 71:
-#line 385 "engines/director/lingo/lingo-gr.y"
+#line 384 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_le); ;}
     break;
 
   case 72:
-#line 386 "engines/director/lingo/lingo-gr.y"
+#line 385 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_and); ;}
     break;
 
   case 73:
-#line 387 "engines/director/lingo/lingo-gr.y"
+#line 386 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_or); ;}
     break;
 
   case 74:
-#line 388 "engines/director/lingo/lingo-gr.y"
+#line 387 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_not); ;}
     break;
 
   case 75:
-#line 389 "engines/director/lingo/lingo-gr.y"
+#line 388 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_ampersand); ;}
     break;
 
   case 76:
-#line 390 "engines/director/lingo/lingo-gr.y"
+#line 389 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_concat); ;}
     break;
 
   case 77:
-#line 391 "engines/director/lingo/lingo-gr.y"
+#line 390 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_contains); ;}
     break;
 
   case 78:
-#line 392 "engines/director/lingo/lingo-gr.y"
+#line 391 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_starts); ;}
     break;
 
   case 79:
-#line 393 "engines/director/lingo/lingo-gr.y"
+#line 392 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = (yyvsp[(2) - (2)].code); ;}
     break;
 
   case 80:
-#line 394 "engines/director/lingo/lingo-gr.y"
+#line 393 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;}
     break;
 
   case 81:
-#line 395 "engines/director/lingo/lingo-gr.y"
+#line 394 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = (yyvsp[(2) - (3)].code); ;}
     break;
 
   case 82:
-#line 396 "engines/director/lingo/lingo-gr.y"
+#line 395 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_intersects); ;}
     break;
 
   case 83:
-#line 397 "engines/director/lingo/lingo-gr.y"
+#line 396 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_within); ;}
     break;
 
   case 84:
-#line 400 "engines/director/lingo/lingo-gr.y"
+#line 399 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_mci); g_lingo->codeString((yyvsp[(2) - (2)].s)->c_str()); delete (yyvsp[(2) - (2)].s); ;}
     break;
 
   case 85:
-#line 401 "engines/director/lingo/lingo-gr.y"
+#line 400 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_mciwait); g_lingo->codeString((yyvsp[(2) - (2)].s)->c_str()); delete (yyvsp[(2) - (2)].s); ;}
     break;
 
   case 86:
-#line 402 "engines/director/lingo/lingo-gr.y"
+#line 401 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_printtop); ;}
     break;
 
   case 88:
-#line 404 "engines/director/lingo/lingo-gr.y"
+#line 403 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeConst(0); // Push fake value on stack
 							  g_lingo->code1(g_lingo->c_procret); ;}
     break;
 
   case 90:
-#line 407 "engines/director/lingo/lingo-gr.y"
+#line 406 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->_handlers[*(yyvsp[(1) - (2)].s)]->u.func);
 		delete (yyvsp[(1) - (2)].s); ;}
     break;
 
   case 91:
-#line 410 "engines/director/lingo/lingo-gr.y"
+#line 409 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->_handlers[*(yyvsp[(1) - (2)].s)]->u.func);
 		delete (yyvsp[(1) - (2)].s); ;}
     break;
 
   case 92:
-#line 413 "engines/director/lingo/lingo-gr.y"
+#line 412 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code2(g_lingo->c_voidpush, g_lingo->_handlers[*(yyvsp[(1) - (1)].s)]->u.func);
 		delete (yyvsp[(1) - (1)].s); ;}
     break;
 
   case 93:
-#line 416 "engines/director/lingo/lingo-gr.y"
-    { g_lingo->code1(g_lingo->c_alert); ;}
-    break;
-
-  case 94:
 #line 417 "engines/director/lingo/lingo-gr.y"
-    {
-		g_lingo->codeConst((yyvsp[(2) - (2)].i));
-		g_lingo->code1(g_lingo->c_beep); ;}
-    break;
-
-  case 95:
-#line 420 "engines/director/lingo/lingo-gr.y"
-    {
-		g_lingo->codeConst(0);
-		g_lingo->code1(g_lingo->c_beep); ;}
-    break;
-
-  case 96:
-#line 423 "engines/director/lingo/lingo-gr.y"
-    { g_lingo->code1(g_lingo->c_closeResFile); ;}
-    break;
-
-  case 97:
-#line 424 "engines/director/lingo/lingo-gr.y"
-    {
-		g_lingo->codeConst(0);
-		g_lingo->code1(g_lingo->c_closeResFile); ;}
-    break;
-
-  case 98:
-#line 427 "engines/director/lingo/lingo-gr.y"
-    { g_lingo->code1(g_lingo->c_closeXlib); ;}
-    break;
-
-  case 99:
-#line 428 "engines/director/lingo/lingo-gr.y"
-    {
-		g_lingo->codeConst(0);
-		g_lingo->code1(g_lingo->c_closeXlib); ;}
-    break;
-
-  case 100:
-#line 431 "engines/director/lingo/lingo-gr.y"
-    { g_lingo->code1(g_lingo->c_cursor); ;}
-    break;
-
-  case 101:
-#line 432 "engines/director/lingo/lingo-gr.y"
-    { g_lingo->code1(g_lingo->c_delay); ;}
-    break;
-
-  case 102:
-#line 435 "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 103:
-#line 436 "engines/director/lingo/lingo-gr.y"
+  case 94:
+#line 418 "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 104:
-#line 447 "engines/director/lingo/lingo-gr.y"
+  case 95:
+#line 429 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_gotoloop); ;}
     break;
 
-  case 105:
-#line 448 "engines/director/lingo/lingo-gr.y"
+  case 96:
+#line 430 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_gotonext); ;}
     break;
 
-  case 106:
-#line 449 "engines/director/lingo/lingo-gr.y"
+  case 97:
+#line 431 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_gotoprevious); ;}
     break;
 
-  case 107:
-#line 450 "engines/director/lingo/lingo-gr.y"
+  case 98:
+#line 432 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_goto);
 		g_lingo->codeString((yyvsp[(2) - (2)].s)->c_str());
@@ -2446,8 +2354,8 @@ yyreduce:
 		delete (yyvsp[(2) - (2)].s); ;}
     break;
 
-  case 108:
-#line 455 "engines/director/lingo/lingo-gr.y"
+  case 99:
+#line 437 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_goto);
 		g_lingo->codeString((yyvsp[(2) - (3)].s)->c_str());
@@ -2456,8 +2364,8 @@ yyreduce:
 		delete (yyvsp[(3) - (3)].s); ;}
     break;
 
-  case 109:
-#line 461 "engines/director/lingo/lingo-gr.y"
+  case 100:
+#line 443 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_goto);
 		g_lingo->codeString("");
@@ -2465,48 +2373,48 @@ yyreduce:
 		delete (yyvsp[(2) - (2)].s); ;}
     break;
 
-  case 110:
-#line 468 "engines/director/lingo/lingo-gr.y"
+  case 101:
+#line 450 "engines/director/lingo/lingo-gr.y"
     { (yyval.s) = (yyvsp[(3) - (3)].s); ;}
     break;
 
-  case 111:
-#line 469 "engines/director/lingo/lingo-gr.y"
+  case 102:
+#line 451 "engines/director/lingo/lingo-gr.y"
     { (yyval.s) = (yyvsp[(2) - (2)].s); ;}
     break;
 
-  case 112:
-#line 470 "engines/director/lingo/lingo-gr.y"
+  case 103:
+#line 452 "engines/director/lingo/lingo-gr.y"
     { (yyval.s) = (yyvsp[(2) - (2)].s); ;}
     break;
 
-  case 113:
-#line 471 "engines/director/lingo/lingo-gr.y"
+  case 104:
+#line 453 "engines/director/lingo/lingo-gr.y"
     { (yyval.s) = (yyvsp[(1) - (1)].s); ;}
     break;
 
-  case 114:
-#line 474 "engines/director/lingo/lingo-gr.y"
+  case 105:
+#line 456 "engines/director/lingo/lingo-gr.y"
     { (yyval.s) = (yyvsp[(3) - (3)].s); ;}
     break;
 
-  case 115:
-#line 475 "engines/director/lingo/lingo-gr.y"
+  case 106:
+#line 457 "engines/director/lingo/lingo-gr.y"
     { (yyval.s) = (yyvsp[(2) - (2)].s); ;}
     break;
 
-  case 116:
-#line 476 "engines/director/lingo/lingo-gr.y"
+  case 107:
+#line 458 "engines/director/lingo/lingo-gr.y"
     { (yyval.s) = (yyvsp[(3) - (3)].s); ;}
     break;
 
-  case 117:
-#line 504 "engines/director/lingo/lingo-gr.y"
+  case 108:
+#line 486 "engines/director/lingo/lingo-gr.y"
     { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;}
     break;
 
-  case 118:
-#line 505 "engines/director/lingo/lingo-gr.y"
+  case 109:
+#line 487 "engines/director/lingo/lingo-gr.y"
     {
 			g_lingo->codeConst(0); // Push fake value on stack
 			g_lingo->code1(g_lingo->c_procret);
@@ -2514,20 +2422,20 @@ yyreduce:
 			g_lingo->_indef = false; ;}
     break;
 
-  case 119:
-#line 510 "engines/director/lingo/lingo-gr.y"
+  case 110:
+#line 492 "engines/director/lingo/lingo-gr.y"
     {
 			g_lingo->codeFactory(*(yyvsp[(2) - (2)].s));
 		;}
     break;
 
-  case 120:
-#line 513 "engines/director/lingo/lingo-gr.y"
+  case 111:
+#line 495 "engines/director/lingo/lingo-gr.y"
     { g_lingo->_indef = true; ;}
     break;
 
-  case 121:
-#line 514 "engines/director/lingo/lingo-gr.y"
+  case 112:
+#line 496 "engines/director/lingo/lingo-gr.y"
     {
 			g_lingo->codeConst(0); // Push fake value on stack
 			g_lingo->code1(g_lingo->c_procret);
@@ -2535,33 +2443,33 @@ yyreduce:
 			g_lingo->_indef = false; ;}
     break;
 
-  case 122:
-#line 519 "engines/director/lingo/lingo-gr.y"
+  case 113:
+#line 501 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = 0; ;}
     break;
 
-  case 123:
-#line 520 "engines/director/lingo/lingo-gr.y"
+  case 114:
+#line 502 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}
     break;
 
-  case 124:
-#line 521 "engines/director/lingo/lingo-gr.y"
+  case 115:
+#line 503 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
     break;
 
-  case 125:
-#line 522 "engines/director/lingo/lingo-gr.y"
+  case 116:
+#line 504 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}
     break;
 
-  case 126:
-#line 524 "engines/director/lingo/lingo-gr.y"
+  case 117:
+#line 506 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeArgStore(); ;}
     break;
 
-  case 127:
-#line 528 "engines/director/lingo/lingo-gr.y"
+  case 118:
+#line 510 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_call);
 		g_lingo->codeString((yyvsp[(1) - (3)].s)->c_str());
@@ -2570,24 +2478,24 @@ yyreduce:
 		g_lingo->code1(numpar); ;}
     break;
 
-  case 128:
-#line 536 "engines/director/lingo/lingo-gr.y"
+  case 119:
+#line 518 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = 0; ;}
     break;
 
-  case 129:
-#line 537 "engines/director/lingo/lingo-gr.y"
+  case 120:
+#line 519 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = 1; ;}
     break;
 
-  case 130:
-#line 538 "engines/director/lingo/lingo-gr.y"
+  case 121:
+#line 520 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
     break;
 
 
 /* Line 1267 of yacc.c.  */
-#line 2591 "engines/director/lingo/lingo-gr.cpp"
+#line 2499 "engines/director/lingo/lingo-gr.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2801,6 +2709,6 @@ yyreturn:
 }
 
 
-#line 541 "engines/director/lingo/lingo-gr.y"
+#line 523 "engines/director/lingo/lingo-gr.y"
 
 
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index d8799a2..6050189 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -87,27 +87,21 @@
      tNLELSE = 303,
      tFACTORY = 304,
      tMETHOD = 305,
-     tALERT = 306,
-     tBEEP = 307,
-     tCLOSERESFILE = 308,
-     tCLOSEXLIB = 309,
-     tCURSOR = 310,
-     tDELAY = 311,
-     tGE = 312,
-     tLE = 313,
-     tGT = 314,
-     tLT = 315,
-     tEQ = 316,
-     tNEQ = 317,
-     tAND = 318,
-     tOR = 319,
-     tNOT = 320,
-     tCONCAT = 321,
-     tCONTAINS = 322,
-     tSTARTS = 323,
-     tSPRITE = 324,
-     tINTERSECTS = 325,
-     tWITHIN = 326
+     tGE = 306,
+     tLE = 307,
+     tGT = 308,
+     tLT = 309,
+     tEQ = 310,
+     tNEQ = 311,
+     tAND = 312,
+     tOR = 313,
+     tNOT = 314,
+     tCONCAT = 315,
+     tCONTAINS = 316,
+     tSTARTS = 317,
+     tSPRITE = 318,
+     tINTERSECTS = 319,
+     tWITHIN = 320
    };
 #endif
 /* Tokens.  */
@@ -159,27 +153,21 @@
 #define tNLELSE 303
 #define tFACTORY 304
 #define tMETHOD 305
-#define tALERT 306
-#define tBEEP 307
-#define tCLOSERESFILE 308
-#define tCLOSEXLIB 309
-#define tCURSOR 310
-#define tDELAY 311
-#define tGE 312
-#define tLE 313
-#define tGT 314
-#define tLT 315
-#define tEQ 316
-#define tNEQ 317
-#define tAND 318
-#define tOR 319
-#define tNOT 320
-#define tCONCAT 321
-#define tCONTAINS 322
-#define tSTARTS 323
-#define tSPRITE 324
-#define tINTERSECTS 325
-#define tWITHIN 326
+#define tGE 306
+#define tLE 307
+#define tGT 308
+#define tLT 309
+#define tEQ 310
+#define tNEQ 311
+#define tAND 312
+#define tOR 313
+#define tNOT 314
+#define tCONCAT 315
+#define tCONTAINS 316
+#define tSTARTS 317
+#define tSPRITE 318
+#define tINTERSECTS 319
+#define tWITHIN 320
 
 
 
@@ -197,7 +185,7 @@ typedef union YYSTYPE
 	Common::Array<double> *arr;
 }
 /* Line 1529 of yacc.c.  */
-#line 201 "engines/director/lingo/lingo-gr.hpp"
+#line 189 "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 ebcfa0a..89cbb05 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -84,8 +84,7 @@ void yyerror(char *s) {
 %token<s> BLTIN BLTINNOARGS BLTINNOARGSORONE BLTINONEARG ID STRING HANDLER
 %token tDOWN tELSE tNLELSIF tEND tEXIT tFRAME tGLOBAL tGO tIF tINTO tLOOP tMACRO
 %token tMCI tMCIWAIT tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN
-%token tWITH tWHILE tNLELSE tFACTORY tMETHOD tALERT tBEEP tCLOSERESFILE tCLOSEXLIB
-%token tCURSOR tDELAY
+%token tWITH tWHILE tNLELSE tFACTORY tMETHOD
 %token tGE tLE tGT tLT tEQ tNEQ tAND tOR tNOT
 %token tCONCAT tCONTAINS tSTARTS
 %token tSPRITE tINTERSECTS tWITHIN
@@ -413,23 +412,6 @@ func: tMCI STRING			{ g_lingo->code1(g_lingo->c_mci); g_lingo->codeString($2->c_
 	| BLTINNOARGSORONE 		{
 		g_lingo->code2(g_lingo->c_voidpush, g_lingo->_handlers[*$1]->u.func);
 		delete $1; }
-	| tALERT expr		{ g_lingo->code1(g_lingo->c_alert); }
-	| tBEEP INT			{
-		g_lingo->codeConst($2);
-		g_lingo->code1(g_lingo->c_beep); }
-	| tBEEP 				{
-		g_lingo->codeConst(0);
-		g_lingo->code1(g_lingo->c_beep); }
-	| tCLOSERESFILE expr	{ g_lingo->code1(g_lingo->c_closeResFile); }
-	| tCLOSERESFILE 		{
-		g_lingo->codeConst(0);
-		g_lingo->code1(g_lingo->c_closeResFile); }
-	| tCLOSEXLIB expr	{ g_lingo->code1(g_lingo->c_closeXlib); }
-	| tCLOSEXLIB 		{
-		g_lingo->codeConst(0);
-		g_lingo->code1(g_lingo->c_closeXlib); }
-	| tCURSOR expr		{ g_lingo->code1(g_lingo->c_cursor); }
-	| tDELAY expr		{ g_lingo->code1(g_lingo->c_delay); }
 	;
 
 globallist: ID				{ g_lingo->code1(g_lingo->c_global); g_lingo->codeString($1->c_str()); delete $1; }
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 0b95167..86f70de 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -364,8 +364,8 @@ static void yy_fatal_error (yyconst char msg[]  );
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 60
-#define YY_END_OF_BUFFER 61
+#define YY_NUM_RULES 54
+#define YY_END_OF_BUFFER 55
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -373,32 +373,28 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[218] =
+static yyconst flex_int16_t yy_accept[186] =
     {   0,
-        0,    0,   61,   59,    3,   57,   57,   59,   59,   56,
-       56,   56,   55,   56,   56,   53,   53,   53,   53,   53,
-       53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
-       53,   53,   53,    2,    2,    3,   57,    0,    0,   57,
-        0,    0,   58,   52,    1,   54,   55,   51,   49,   50,
-       53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
-       53,   53,   53,   53,   53,   22,   13,   53,   53,   53,
-       53,   53,   53,   53,   53,   33,   34,   53,   53,   53,
-       53,   53,   53,   53,   43,   53,   53,    2,    2,    0,
-        1,   54,   53,    5,   53,   53,   53,   53,   53,   53,
-
-       53,   17,   53,   53,   53,   53,   53,   53,   53,   27,
-       53,   53,   53,   32,   53,   36,   53,   38,   53,   53,
-       53,   53,   53,   53,    0,   53,    6,   53,   53,   53,
-       53,   12,   16,   19,   53,   53,   53,   53,   24,   25,
-       53,   53,   53,   53,   31,   53,   53,   53,   53,    0,
-       42,   47,   53,   45,   15,    4,   53,   53,   53,   11,
-       53,   20,   53,   53,   26,   53,   53,   30,   53,   53,
-       53,   53,   41,   48,   53,    0,   53,   53,   53,   10,
-       53,   21,   53,   53,   29,   53,   37,   44,   39,    0,
-       46,    0,   53,   53,   53,   18,   53,   28,   53,    0,
-
-       14,   53,   53,    9,   53,   35,    0,   53,    8,   53,
-        0,   53,   23,   40,   53,    7,    0
+        0,    0,   55,   53,    3,   51,   51,   53,   53,   50,
+       50,   50,   49,   50,   50,   47,   47,   47,   47,   47,
+       47,   47,   47,   47,   47,   47,   47,   47,   47,   47,
+       47,   47,    2,    2,    3,   51,    0,    0,   51,    0,
+        0,   52,   46,    1,   48,   49,   45,   43,   44,   47,
+       47,   47,   47,   47,   47,   47,   47,   47,   47,   16,
+        7,   47,   47,   47,   47,   47,   47,   47,   47,   27,
+       28,   47,   47,   47,   47,   47,   47,   47,   37,   47,
+       47,    2,    2,    0,    1,   48,    4,   47,   47,   47,
+       11,   47,   47,   47,   47,   47,   47,   47,   21,   47,
+
+       47,   47,   26,   47,   30,   47,   32,   47,   47,   47,
+       47,   47,   47,    0,   47,    6,   10,   13,   47,   47,
+       47,   47,   18,   19,   47,   47,   47,   47,   25,   47,
+       47,   47,   47,    0,   36,   41,   47,   39,    9,   47,
+       47,   14,   47,   47,   20,   47,   47,   24,   47,   47,
+       47,   47,   35,   42,   47,    0,   47,   47,   15,   47,
+       47,   23,   47,   31,   38,   33,    0,   40,    0,   47,
+       12,   47,   22,   47,    0,    8,    5,   47,   29,    0,
+       47,    0,   17,   34,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -443,131 +439,115 @@ static yyconst flex_int32_t yy_meta[61] =
         6,    6,    6,    6,    6,    6,    6,    6,    6,    6
     } ;
 
-static yyconst flex_int16_t yy_base[223] =
+static yyconst flex_int16_t yy_base[191] =
     {   0,
-        0,   59,  176,  504,   63,   67,   71,   75,  169,  504,
-      141,  136,   52,   68,   92,   58,   68,   64,   74,   71,
-       79,   75,    0,  102,   73,  116,   85,  107,  108,   97,
-      134,  128,  125,  178,  188,  192,  139,  196,  168,  200,
-      114,   93,  504,  504,    0,   84,  158,  504,  504,  504,
-        0,  115,  136,  165,  137,  179,  177,  184,  175,  181,
-      195,  191,  198,  201,  190,    0,    0,  189,  194,  206,
-      201,  194,  193,  192,  199,    0,    0,  215,  204,  213,
-      214,  222,  238,  236,    0,  237,  230,  268,  284,  236,
-        0,   73,  238,    0,  245,  245,  246,  250,  267,  265,
-
-      264,    0,  261,  262,  269,  280,  281,  269,  272,  268,
-      283,  287,  276,    0,  278,    0,  294,    0,  291,  289,
-      325,  295,  298,  311,  317,  296,    0,  320,  325,  315,
-      307,    0,    0,    0,  319,  322,  333,  320,    0,    0,
-      325,  339,  328,  339,    0,  336,  346,  336,  337,   86,
-        0,    0,  343,  348,  215,    0,  344,  354,  351,    0,
-      354,    0,  362,  357,    0,  366,  372,    0,  365,  362,
-      377,  367,  259,    0,  372,  400,  381,  381,  381,    0,
-      372,    0,  393,  383,    0,  385,    0,    0,    0,  423,
-        0,  399,  395,  407,  396,    0,  416,    0,  404,  417,
-
-      504,  419,  424,    0,  410,    0,  261,  421,    0,  415,
-      443,  427,    0,  451,  436,    0,  504,  479,  481,  487,
-      492,  497
+        0,   59,  210,  446,   63,   67,   71,   75,  192,  446,
+      150,  148,   52,   68,  137,   56,    0,   56,   57,   67,
+       72,   68,   68,   69,  112,   70,   79,  103,   81,  109,
+      120,  121,  170,  174,  178,  101,  182,  186,  190,   97,
+      143,  446,  446,    0,   90,  124,  446,  446,  446,    0,
+      112,  110,  104,  115,  147,  167,  179,  182,  119,    0,
+        0,  167,  172,  184,  179,  172,  173,  172,  179,    0,
+        0,  193,  183,  187,  185,  188,  198,  200,    0,  205,
+      200,  242,  254,  211,    0,   80,    0,  217,  223,  232,
+        0,  221,  222,  234,  245,  243,  235,  236,  232,  246,
+
+      246,  242,    0,  244,    0,  260,    0,  257,  252,  279,
+      261,  266,  273,  277,  283,    0,    0,    0,  272,  283,
+      292,  279,    0,    0,  282,  297,  287,  294,    0,  293,
+      302,  289,  292,  201,    0,    0,  299,  302,  325,  305,
+      304,    0,  310,  308,    0,  320,  327,    0,  320,  318,
+      327,  320,  351,    0,  327,  358,  328,  322,    0,  342,
+      332,    0,  332,    0,    0,    0,  370,    0,  346,  337,
+        0,  359,    0,  348,  360,  446,    0,  351,    0,  384,
+      353,  390,    0,  391,  446,  421,  423,  429,  434,  439
     } ;
 
-static yyconst flex_int16_t yy_def[223] =
+static yyconst flex_int16_t yy_def[191] =
     {   0,
-      217,    1,  217,  217,  217,  217,  217,  217,  218,  217,
-      217,  217,  217,  217,  217,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  219,  217,  217,  217,  217,  217,  217,  217,
-      217,  218,  217,  217,  220,  217,  217,  217,  217,  217,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  217,  217,  217,
-      220,  217,  219,  219,  219,  219,  219,  219,  219,  219,
-
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  217,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  221,
-      219,  219,  219,  219,  217,  219,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  219,
-      219,  219,  221,  219,  219,  217,  219,  219,  219,  219,
-      219,  219,  219,  219,  219,  219,  219,  219,  219,  217,
-      219,  217,  219,  219,  219,  219,  219,  219,  219,  217,
-
-      217,  219,  219,  219,  219,  219,  217,  219,  219,  219,
-      222,  219,  219,  222,  219,  219,    0,  217,  217,  217,
-      217,  217
+      185,    1,  185,  185,  185,  185,  185,  185,  186,  185,
+      185,  185,  185,  185,  185,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  185,  185,  185,  185,  185,  185,  185,  185,
+      186,  185,  185,  188,  185,  185,  185,  185,  185,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  185,  185,  185,  188,  185,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  185,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  187,  189,  187,  187,  187,  187,  185,  187,
+      187,  187,  187,  187,  187,  187,  187,  187,  187,  187,
+      187,  187,  189,  187,  187,  185,  187,  187,  187,  187,
+      187,  187,  187,  187,  187,  187,  185,  187,  185,  187,
+      187,  187,  187,  187,  185,  185,  187,  187,  187,  185,
+      187,  190,  187,  190,    0,  185,  185,  185,  185,  185
     } ;
 
-static yyconst flex_int16_t yy_nxt[565] =
+static yyconst flex_int16_t yy_nxt[507] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,    4,
        13,   14,   10,   15,   16,   17,   18,   19,   20,   21,
-       22,   23,   24,   23,   25,   26,   27,   28,   29,   30,
-       31,   32,   23,   23,   33,   23,   23,   23,   16,   17,
-       18,   19,   20,   21,   22,   23,   24,   25,   26,   27,
-       28,   29,   30,   31,   32,   23,   23,   33,   23,   23,
-       34,   46,   47,   35,   36,   37,   37,   38,   39,   40,
-       40,   39,   39,   40,   40,   39,   38,   37,   37,   38,
-       48,   49,   52,   92,   53,   41,   54,  150,   55,   41,
-      150,   56,   58,   63,   92,   60,   57,   61,   43,   65,
-
-       69,   59,   66,   74,   50,   52,   62,   53,   64,   41,
-       54,   55,   75,   41,   56,   80,   58,   63,   60,   57,
-       61,   67,   65,   69,   59,   66,   76,   74,   68,   62,
-       70,   64,   71,   93,   72,   75,   77,   78,   90,   80,
-       79,   37,   37,   73,   45,   67,   86,   87,   44,   84,
-       76,   68,   81,   94,   70,   85,   71,   93,   72,   77,
-       78,   90,   82,   79,   96,   83,   73,   46,   47,   39,
-       86,   87,   39,   84,   43,  217,   81,   94,   85,   88,
-       37,   37,   89,   95,  217,   82,   41,   96,   83,   89,
-       37,   37,   89,   36,   37,   37,   38,   38,   37,   37,
-
-       38,   39,   40,   40,   39,   97,   98,   95,   99,  100,
-       41,  101,  102,  103,  104,  105,  176,  106,   41,  176,
-      107,  108,  109,  110,  217,  111,  112,  113,   97,   98,
-      114,   99,  100,  115,  101,  116,  102,  103,  104,  105,
-      106,  117,   41,  107,  108,  118,  109,  110,  111,  112,
-      113,  119,  120,  114,  121,  122,  217,  115,  116,  123,
-      190,  124,  211,  190,  117,  211,  125,  126,  118,   88,
-       37,   37,   89,  127,  119,  128,  120,  129,  121,  122,
-      130,  131,  133,  123,  124,   89,   37,   37,   89,  125,
-      126,  132,  134,  135,  136,  137,  127,  140,  128,  138,
-
-      129,  141,  142,  130,  143,  131,  133,  145,  139,  144,
-      217,  146,  147,  148,  132,  134,  135,  136,  149,  137,
-      140,  152,  153,  138,  141,  142,  150,  156,  143,  150,
-      145,  139,  154,  144,  146,  155,  147,  148,  157,  158,
-      162,  149,  159,  160,  152,  153,  161,  163,  217,  164,
-      156,  151,  165,  166,  217,  167,  154,  168,  169,  155,
-      170,  174,  157,  158,  162,  159,  160,  171,  172,  161,
-      175,  163,  164,  177,  151,  165,  179,  166,  167,  178,
-      180,  168,  169,  181,  170,  174,  182,  183,  184,  185,
-      171,  172,  186,  187,  175,  188,  177,  189,  191,  193,
-
-      179,  176,  178,  180,  176,  194,  181,  195,  196,  182,
-      183,  197,  184,  185,  198,  186,  187,  199,  201,  188,
-      189,  191,  192,  193,  190,  202,  204,  190,  194,  203,
-      195,  196,  205,  217,  206,  197,  207,  198,  208,  209,
-      199,  210,  201,  212,  211,  213,  192,  211,  202,  204,
-      200,  215,  217,  203,  216,  217,  205,  206,  217,  217,
-      207,  217,  208,  209,  210,  217,  217,  212,  213,  217,
-      217,  217,  217,  200,  215,  217,  217,  217,  216,   42,
-       42,  217,   42,   42,   42,   51,   51,   91,   91,  217,
-      217,   91,   91,  173,  217,  217,  217,  173,  214,  217,
-
-      217,  217,  214,    3,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217
+       22,   17,   23,   17,   24,   25,   26,   27,   28,   29,
+       30,   31,   17,   17,   32,   17,   17,   17,   16,   17,
+       18,   19,   20,   21,   22,   17,   23,   24,   25,   26,
+       27,   28,   29,   30,   31,   17,   17,   32,   17,   17,
+       33,   45,   46,   34,   35,   36,   36,   37,   38,   39,
+       39,   38,   38,   39,   39,   38,   37,   36,   36,   37,
+       47,   48,   51,   52,   53,   40,   57,   61,   68,   40,
+       86,   54,   59,   55,   62,   60,   63,   69,   70,   74,
+
+       86,   58,   56,   36,   36,   51,   52,   53,   71,   40,
+       57,   61,   68,   40,   54,   59,   55,   62,   60,   63,
+       69,   84,   70,   74,   58,   56,   64,   75,   65,   87,
+       66,   71,   72,   45,   46,   73,   88,   76,   89,   67,
+       77,   78,   80,   81,   84,   90,   95,   79,   42,   49,
+       64,   75,   65,   87,   66,   72,   44,   43,   73,   88,
+       76,   89,   67,   77,   91,   78,   80,   81,   90,   95,
+       79,   82,   36,   36,   83,   83,   36,   36,   83,   35,
+       36,   36,   37,   37,   36,   36,   37,   38,   91,   92,
+       38,   38,   39,   39,   38,   93,   94,   42,   96,   97,
+
+       98,   99,  134,  100,   40,  134,  101,  102,   40,  185,
+      103,  104,  109,   92,  105,  106,  107,  108,  110,   93,
+       94,   96,   97,  111,   98,   99,  100,  112,   40,  101,
+      102,  113,   40,  103,  185,  104,  109,  105,  106,  107,
+      108,  114,  110,   82,   36,   36,   83,  111,  115,  116,
+      117,  112,  118,  119,  113,   83,   36,   36,   83,  120,
+      121,  122,  185,  124,  114,  125,  126,  127,  128,  185,
+      123,  115,  116,  129,  117,  118,  119,  130,  131,  132,
+      134,  133,  120,  134,  121,  122,  124,  136,  125,  126,
+      137,  127,  128,  123,  138,  139,  129,  140,  185,  141,
+
+      130,  142,  131,  132,  133,  135,  143,  185,  144,  145,
+      136,  146,  148,  137,  147,  149,  150,  154,  138,  139,
+      151,  140,  141,  152,  155,  142,  156,  157,  135,  156,
+      143,  144,  145,  158,  159,  146,  148,  147,  160,  149,
+      150,  154,  161,  151,  162,  165,  152,  163,  155,  164,
+      166,  157,  167,  168,  170,  167,  158,  159,  171,  156,
+      172,  160,  156,  173,  174,  176,  161,  177,  162,  165,
+      163,  167,  164,  166,  167,  178,  168,  170,  179,  180,
+      169,  171,  181,  183,  172,  182,  173,  174,  182,  176,
+      177,  182,  185,  185,  182,  185,  185,  175,  185,  178,
+
+      185,  179,  185,  180,  169,  181,  183,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      175,   41,   41,  185,   41,   41,   41,   50,   50,   85,
+       85,  185,  185,   85,   85,  153,  185,  185,  185,  153,
+      184,  185,  185,  185,  184,    3,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185
     } ;
 
-static yyconst flex_int16_t yy_chk[565] =
+static yyconst flex_int16_t yy_chk[507] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -577,60 +557,54 @@ static yyconst flex_int16_t yy_chk[565] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         2,   13,   13,    2,    5,    5,    5,    5,    6,    6,
         6,    6,    7,    7,    7,    7,    8,    8,    8,    8,
-       14,   14,   16,   92,   16,    6,   17,  150,   18,    7,
-      150,   18,   19,   21,   46,   20,   18,   20,   42,   22,
-
-       25,   19,   22,   27,   15,   16,   20,   16,   21,    6,
-       17,   18,   27,    7,   18,   30,   19,   21,   20,   18,
-       20,   24,   22,   25,   19,   22,   28,   27,   24,   20,
-       26,   21,   26,   52,   26,   27,   28,   29,   41,   30,
-       29,   37,   37,   26,   12,   24,   33,   33,   11,   32,
-       28,   24,   31,   53,   26,   32,   26,   52,   26,   28,
-       29,   41,   31,   29,   55,   31,   26,   47,   47,   39,
-       33,   33,   39,   32,    9,    3,   31,   53,   32,   34,
-       34,   34,   34,   54,    0,   31,   39,   55,   31,   35,
-       35,   35,   35,   36,   36,   36,   36,   38,   38,   38,
-
-       38,   40,   40,   40,   40,   56,   57,   54,   58,   59,
-       39,   60,   61,   62,   63,   64,  155,   65,   40,  155,
-       68,   69,   70,   71,    0,   72,   73,   74,   56,   57,
-       75,   58,   59,   78,   60,   79,   61,   62,   63,   64,
-       65,   80,   40,   68,   69,   81,   70,   71,   72,   73,
-       74,   82,   83,   75,   84,   86,    0,   78,   79,   86,
-      173,   87,  207,  173,   80,  207,   90,   93,   81,   88,
-       88,   88,   88,   95,   82,   96,   83,   97,   84,   86,
-       98,   99,  101,   86,   87,   89,   89,   89,   89,   90,
-       93,  100,  103,  104,  105,  106,   95,  108,   96,  107,
-
-       97,  109,  110,   98,  111,   99,  101,  113,  107,  112,
-        0,  115,  117,  119,  100,  103,  104,  105,  120,  106,
-      108,  122,  123,  107,  109,  110,  121,  126,  111,  121,
-      113,  107,  124,  112,  115,  125,  117,  119,  128,  129,
-      136,  120,  130,  131,  122,  123,  135,  137,    0,  138,
-      126,  121,  141,  142,    0,  143,  124,  144,  146,  125,
-      147,  153,  128,  129,  136,  130,  131,  148,  149,  135,
-      154,  137,  138,  157,  121,  141,  158,  142,  143,  157,
-      159,  144,  146,  161,  147,  153,  163,  164,  166,  167,
-      148,  149,  169,  170,  154,  171,  157,  172,  175,  177,
-
-      158,  176,  157,  159,  176,  178,  161,  179,  181,  163,
-      164,  183,  166,  167,  184,  169,  170,  186,  192,  171,
-      172,  175,  176,  177,  190,  193,  195,  190,  178,  194,
-      179,  181,  197,    0,  199,  183,  200,  184,  202,  203,
-      186,  205,  192,  208,  211,  210,  176,  211,  193,  195,
-      190,  212,  214,  194,  215,  214,  197,  199,    0,    0,
-      200,    0,  202,  203,  205,    0,    0,  208,  210,    0,
-        0,    0,    0,  190,  212,    0,    0,    0,  215,  218,
-      218,    0,  218,  218,  218,  219,  219,  220,  220,    0,
-        0,  220,  220,  221,    0,    0,    0,  221,  222,    0,
-
-        0,    0,  222,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217,  217,  217,  217,  217,  217,  217,
-      217,  217,  217,  217
+       14,   14,   16,   18,   19,    6,   21,   23,   26,    7,
+       86,   20,   22,   20,   23,   22,   24,   26,   27,   29,
+
+       45,   21,   20,   36,   36,   16,   18,   19,   27,    6,
+       21,   23,   26,    7,   20,   22,   20,   23,   22,   24,
+       26,   40,   27,   29,   21,   20,   25,   30,   25,   51,
+       25,   27,   28,   46,   46,   28,   52,   30,   53,   25,
+       30,   31,   32,   32,   40,   54,   59,   31,   41,   15,
+       25,   30,   25,   51,   25,   28,   12,   11,   28,   52,
+       30,   53,   25,   30,   55,   31,   32,   32,   54,   59,
+       31,   33,   33,   33,   33,   34,   34,   34,   34,   35,
+       35,   35,   35,   37,   37,   37,   37,   38,   55,   56,
+       38,   39,   39,   39,   39,   57,   58,    9,   62,   63,
+
+       64,   65,  134,   66,   38,  134,   67,   68,   39,    3,
+       69,   72,   77,   56,   73,   74,   75,   76,   78,   57,
+       58,   62,   63,   80,   64,   65,   66,   80,   38,   67,
+       68,   81,   39,   69,    0,   72,   77,   73,   74,   75,
+       76,   84,   78,   82,   82,   82,   82,   80,   88,   89,
+       90,   80,   92,   93,   81,   83,   83,   83,   83,   94,
+       95,   96,    0,   97,   84,   98,   99,  100,  101,    0,
+       96,   88,   89,  102,   90,   92,   93,  104,  106,  108,
+      110,  109,   94,  110,   95,   96,   97,  111,   98,   99,
+      112,  100,  101,   96,  113,  114,  102,  115,    0,  119,
+
+      104,  120,  106,  108,  109,  110,  121,    0,  122,  125,
+      111,  126,  128,  112,  127,  130,  131,  137,  113,  114,
+      132,  115,  119,  133,  138,  120,  139,  140,  110,  139,
+      121,  122,  125,  141,  143,  126,  128,  127,  144,  130,
+      131,  137,  146,  132,  147,  151,  133,  149,  138,  150,
+      152,  140,  153,  155,  157,  153,  141,  143,  158,  156,
+      160,  144,  156,  161,  163,  169,  146,  170,  147,  151,
+      149,  167,  150,  152,  167,  172,  155,  157,  174,  175,
+      156,  158,  178,  181,  160,  180,  161,  163,  180,  169,
+      170,  182,  184,    0,  182,  184,    0,  167,    0,  172,
+
+        0,  174,    0,  175,  156,  178,  181,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+      167,  186,  186,    0,  186,  186,  186,  187,  187,  188,
+      188,    0,    0,  188,  188,  189,    0,    0,    0,  189,
+      190,    0,    0,    0,  190,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+      185,  185,  185,  185,  185,  185,  185,  185,  185,  185,
+
+      185,  185,  185,  185,  185,  185
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -704,7 +678,7 @@ static void countnl() {
 	g_lingo->_colnumber = strlen(p);
 }
 
-#line 708 "engines/director/lingo/lingo-lex.cpp"
+#line 682 "engines/director/lingo/lingo-lex.cpp"
 
 #define INITIAL 0
 
@@ -892,7 +866,7 @@ YY_DECL
 #line 69 "engines/director/lingo/lingo-lex.l"
 
 
-#line 896 "engines/director/lingo/lingo-lex.cpp"
+#line 870 "engines/director/lingo/lingo-lex.cpp"
 
 	if ( !(yy_init) )
 		{
@@ -946,13 +920,13 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 218 )
+				if ( yy_current_state >= 186 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 504 );
+		while ( yy_base[yy_current_state] != 446 );
 
 yy_find_action:
 		yy_act = yy_accept[yy_current_state];
@@ -994,188 +968,158 @@ YY_RULE_SETUP
 case 4:
 YY_RULE_SETUP
 #line 75 "engines/director/lingo/lingo-lex.l"
-{ count(); return tALERT; }
+{ count(); return tAND; }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
 #line 76 "engines/director/lingo/lingo-lex.l"
-{ count(); return tAND; }
+{ count(); return tCONTAINS; }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
 #line 77 "engines/director/lingo/lingo-lex.l"
-{ count(); return tBEEP; }
+{ count(); return tDOWN; }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
 #line 78 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCLOSERESFILE; }
+{ count(); return tIF; }
 	YY_BREAK
 case 8:
+/* rule 8 can match eol */
 YY_RULE_SETUP
 #line 79 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCLOSEXLIB; }
+{ countnl(); return tNLELSIF; }
 	YY_BREAK
 case 9:
+/* rule 9 can match eol */
 YY_RULE_SETUP
 #line 80 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCONTAINS; }
+{ countnl(); return tNLELSE; }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
 #line 81 "engines/director/lingo/lingo-lex.l"
-{ count(); return tCURSOR; }
+{ count(); return tELSE; }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
 #line 82 "engines/director/lingo/lingo-lex.l"
-{ count(); return tDELAY; }
+{ count(); return tEND; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
 #line 83 "engines/director/lingo/lingo-lex.l"
-{ count(); return tDOWN; }
+{ count(); return tFACTORY; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
 #line 84 "engines/director/lingo/lingo-lex.l"
-{ count(); return tIF; }
+{ count(); return tEXIT; }
 	YY_BREAK
 case 14:
-/* rule 14 can match eol */
 YY_RULE_SETUP
 #line 85 "engines/director/lingo/lingo-lex.l"
-{ countnl(); return tNLELSIF; }
+{ count(); return tFRAME; }
 	YY_BREAK
 case 15:
-/* rule 15 can match eol */
 YY_RULE_SETUP
 #line 86 "engines/director/lingo/lingo-lex.l"
-{ countnl(); return tNLELSE; }
+{ count(); return tGLOBAL; }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
 #line 87 "engines/director/lingo/lingo-lex.l"
-{ count(); return tELSE; }
+{ count(); return tGO; }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
 #line 88 "engines/director/lingo/lingo-lex.l"
-{ count(); return tEND; }
+{ count(); return tINTERSECTS; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
 #line 89 "engines/director/lingo/lingo-lex.l"
-{ count(); return tFACTORY; }
+{ count(); return tINTO; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
 #line 90 "engines/director/lingo/lingo-lex.l"
-{ count(); return tEXIT; }
+{ count(); return tLOOP; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
 #line 91 "engines/director/lingo/lingo-lex.l"
-{ count(); return tFRAME; }
+{ count(); return tMACRO; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
 #line 92 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGLOBAL; }
+{ count(); return tMCI; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
 #line 93 "engines/director/lingo/lingo-lex.l"
-{ count(); return tGO; }
+{ count(); return tMCIWAIT; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
 #line 94 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTERSECTS; }
+{ count(); return tMETHOD; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
 #line 95 "engines/director/lingo/lingo-lex.l"
-{ count(); return tINTO; }
+{ count(); return tMOVIE; }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
 #line 96 "engines/director/lingo/lingo-lex.l"
-{ count(); return tLOOP; }
+{ count(); return tNEXT; }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
 #line 97 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMACRO; }
+{ count(); return tNOT; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
 #line 98 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMCI; }
+{ count(); return tOF; }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
 #line 99 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMCIWAIT; }
+{ count(); return tOR; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
 #line 100 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMETHOD; }
+{ count(); return tPREVIOUS; }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
 #line 101 "engines/director/lingo/lingo-lex.l"
-{ count(); return tMOVIE; }
+{ count(); return tPUT; }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
 #line 102 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNEXT; }
+{ count(); return tREPEAT; }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
 #line 103 "engines/director/lingo/lingo-lex.l"
-{ count(); return tNOT; }
+{ count(); return tSET; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
 #line 104 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOF; }
+{ count(); return tSTARTS; }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
 #line 105 "engines/director/lingo/lingo-lex.l"
-{ count(); return tOR; }
-	YY_BREAK
-case 35:
-YY_RULE_SETUP
-#line 106 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPREVIOUS; }
-	YY_BREAK
-case 36:
-YY_RULE_SETUP
-#line 107 "engines/director/lingo/lingo-lex.l"
-{ count(); return tPUT; }
-	YY_BREAK
-case 37:
-YY_RULE_SETUP
-#line 108 "engines/director/lingo/lingo-lex.l"
-{ count(); return tREPEAT; }
-	YY_BREAK
-case 38:
-YY_RULE_SETUP
-#line 109 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSET; }
-	YY_BREAK
-case 39:
-YY_RULE_SETUP
-#line 110 "engines/director/lingo/lingo-lex.l"
-{ count(); return tSTARTS; }
-	YY_BREAK
-case 40:
-YY_RULE_SETUP
-#line 111 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1217,9 +1161,9 @@ YY_RULE_SETUP
 		warning("Unhandled the entity %s", ptr);
 	}
 	YY_BREAK
-case 41:
+case 35:
 YY_RULE_SETUP
-#line 151 "engines/director/lingo/lingo-lex.l"
+#line 145 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 
@@ -1240,64 +1184,64 @@ YY_RULE_SETUP
 		warning("Unhandled the entity %s", ptr);
 	}
 	YY_BREAK
-case 42:
+case 36:
 YY_RULE_SETUP
-#line 170 "engines/director/lingo/lingo-lex.l"
+#line 164 "engines/director/lingo/lingo-lex.l"
 { count(); return tTHEN; }
 	YY_BREAK
-case 43:
+case 37:
 YY_RULE_SETUP
-#line 171 "engines/director/lingo/lingo-lex.l"
+#line 165 "engines/director/lingo/lingo-lex.l"
 { count(); return tTO; }
 	YY_BREAK
-case 44:
+case 38:
 YY_RULE_SETUP
-#line 172 "engines/director/lingo/lingo-lex.l"
+#line 166 "engines/director/lingo/lingo-lex.l"
 { count(); return tSPRITE; }
 	YY_BREAK
-case 45:
+case 39:
 YY_RULE_SETUP
-#line 173 "engines/director/lingo/lingo-lex.l"
+#line 167 "engines/director/lingo/lingo-lex.l"
 { count(); return tWITH; }
 	YY_BREAK
-case 46:
+case 40:
 YY_RULE_SETUP
-#line 174 "engines/director/lingo/lingo-lex.l"
+#line 168 "engines/director/lingo/lingo-lex.l"
 { count(); return tWITHIN; }
 	YY_BREAK
-case 47:
+case 41:
 YY_RULE_SETUP
-#line 175 "engines/director/lingo/lingo-lex.l"
+#line 169 "engines/director/lingo/lingo-lex.l"
 { count(); return tWHEN; }
 	YY_BREAK
-case 48:
+case 42:
 YY_RULE_SETUP
-#line 176 "engines/director/lingo/lingo-lex.l"
+#line 170 "engines/director/lingo/lingo-lex.l"
 { count(); return tWHILE; }
 	YY_BREAK
-case 49:
+case 43:
 YY_RULE_SETUP
-#line 178 "engines/director/lingo/lingo-lex.l"
+#line 172 "engines/director/lingo/lingo-lex.l"
 { count(); return tNEQ; }
 	YY_BREAK
-case 50:
+case 44:
 YY_RULE_SETUP
-#line 179 "engines/director/lingo/lingo-lex.l"
+#line 173 "engines/director/lingo/lingo-lex.l"
 { count(); return tGE; }
 	YY_BREAK
-case 51:
+case 45:
 YY_RULE_SETUP
-#line 180 "engines/director/lingo/lingo-lex.l"
+#line 174 "engines/director/lingo/lingo-lex.l"
 { count(); return tLE; }
 	YY_BREAK
-case 52:
+case 46:
 YY_RULE_SETUP
-#line 181 "engines/director/lingo/lingo-lex.l"
+#line 175 "engines/director/lingo/lingo-lex.l"
 { count(); return tCONCAT; }
 	YY_BREAK
-case 53:
+case 47:
 YY_RULE_SETUP
-#line 183 "engines/director/lingo/lingo-lex.l"
+#line 177 "engines/director/lingo/lingo-lex.l"
 {
 		count();
 		yylval.s = new Common::String(yytext);
@@ -1323,43 +1267,43 @@ YY_RULE_SETUP
 		return ID;
 	}
 	YY_BREAK
-case 54:
+case 48:
 YY_RULE_SETUP
-#line 207 "engines/director/lingo/lingo-lex.l"
+#line 201 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.f = atof(yytext); return FLOAT; }
 	YY_BREAK
-case 55:
+case 49:
 YY_RULE_SETUP
-#line 208 "engines/director/lingo/lingo-lex.l"
+#line 202 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.i = strtol(yytext, NULL, 10); return INT; }
 	YY_BREAK
-case 56:
+case 50:
 YY_RULE_SETUP
-#line 209 "engines/director/lingo/lingo-lex.l"
+#line 203 "engines/director/lingo/lingo-lex.l"
 { count(); return *yytext; }
 	YY_BREAK
-case 57:
-/* rule 57 can match eol */
+case 51:
+/* rule 51 can match eol */
 YY_RULE_SETUP
-#line 210 "engines/director/lingo/lingo-lex.l"
+#line 204 "engines/director/lingo/lingo-lex.l"
 { return '\n'; }
 	YY_BREAK
-case 58:
+case 52:
 YY_RULE_SETUP
-#line 211 "engines/director/lingo/lingo-lex.l"
+#line 205 "engines/director/lingo/lingo-lex.l"
 { count(); yylval.s = new Common::String(&yytext[1]); yylval.s->deleteLastChar(); return STRING; }
 	YY_BREAK
-case 59:
+case 53:
 YY_RULE_SETUP
-#line 212 "engines/director/lingo/lingo-lex.l"
+#line 206 "engines/director/lingo/lingo-lex.l"
 
 	YY_BREAK
-case 60:
+case 54:
 YY_RULE_SETUP
-#line 214 "engines/director/lingo/lingo-lex.l"
+#line 208 "engines/director/lingo/lingo-lex.l"
 ECHO;
 	YY_BREAK
-#line 1363 "engines/director/lingo/lingo-lex.cpp"
+#line 1307 "engines/director/lingo/lingo-lex.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -1652,7 +1596,7 @@ static int yy_get_next_buffer (void)
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 218 )
+			if ( yy_current_state >= 186 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1680,11 +1624,11 @@ static int yy_get_next_buffer (void)
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 218 )
+		if ( yy_current_state >= 186 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 217);
+	yy_is_jam = (yy_current_state == 185);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2359,7 +2303,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 214 "engines/director/lingo/lingo-lex.l"
+#line 208 "engines/director/lingo/lingo-lex.l"
 
 
 
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 81ce73d..8795464 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -72,14 +72,8 @@ whitespace [\t ]
 ^{whitespace}+		{ count(); }
 [\t]+				{ count(); return ' '; }
 
-(?i:alert)			{ count(); return tALERT; }
 (?i:and)			{ count(); return tAND; }
-(?i:beep)			{ count(); return tBEEP; }
-(?i:closeResFile)	{ count(); return tCLOSERESFILE; }
-(?i:closeXlib)		{ count(); return tCLOSEXLIB; }
 (?i:contains)		{ count(); return tCONTAINS; }
-(?i:cursor)			{ count(); return tCURSOR; }
-(?i:delay)			{ count(); return tDELAY; }
 (?i:down)			{ count(); return tDOWN; }
 (?i:if)				{ count(); return tIF; }
 (?i:[\n\r]+[\t ]*else[\t ]+if)	{ countnl(); return tNLELSIF; }
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 52da1bb..c0b59d5 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -249,13 +249,6 @@ public:
 	static void c_gotoprevious();
 	static void c_global();
 
-	static void c_alert();
-	static void c_beep();
-	static void c_closeResFile();
-	static void c_closeXlib();
-	static void c_cursor();
-	static void c_delay();
-
 	static void b_abs();
 	static void b_atan();
 	static void b_chars();
@@ -279,6 +272,13 @@ public:
 	static void b_closeDA();
 	static void b_continue();
 
+	static void b_alert();
+	static void b_beep();
+	static void b_closeResFile();
+	static void b_closeXlib();
+	static void b_cursor();
+	static void b_delay();
+
 	static void b_point();
 
 	void func_mci(Common::String &s);
@@ -287,8 +287,6 @@ public:
 	void func_gotoloop();
 	void func_gotonext();
 	void func_gotoprevious();
-	void func_alert(Common::String &s);
-	void func_beep(int num);
 
 public:
 	void setTheEntity(int entity, Datum &id, int field, Datum &d);
diff --git a/engines/director/lingo/tests/builtin.lingo b/engines/director/lingo/tests/builtin.lingo
new file mode 100644
index 0000000..5d427ba
--- /dev/null
+++ b/engines/director/lingo/tests/builtin.lingo
@@ -0,0 +1,4 @@
+beep
+beep 3
+alert "Hi"
+alert "Hi" && "there"






More information about the Scummvm-git-logs mailing list