[Scummvm-git-logs] scummvm master -> 366982fbef8d168a9c1b17f842cf98ce4d0b887a

djsrv dservilla at gmail.com
Mon Jul 13 20:20:38 UTC 2020


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

Summary:
6b52393c47 DIRECTOR: LINGO: Hide movie name behind debug flag
366982fbef DIRECTOR: LINGO: Handle macro/var conflict


Commit: 6b52393c47254318445364d96fe8030f8f6c10f2
    https://github.com/scummvm/scummvm/commit/6b52393c47254318445364d96fe8030f8f6c10f2
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-13T16:19:51-04:00

Commit Message:
DIRECTOR: LINGO: Hide movie name behind debug flag

Changed paths:
    engines/director/stage.cpp


diff --git a/engines/director/stage.cpp b/engines/director/stage.cpp
index fc5dafecd1..fa0ef62b16 100644
--- a/engines/director/stage.cpp
+++ b/engines/director/stage.cpp
@@ -379,9 +379,9 @@ bool Stage::setNextMovie(Common::String &movieFilenameRaw) {
 bool Stage::step() {
 	// finish last movie
 	if (_currentMovie && _currentMovie->getScore()->_playState == kPlayStopped) {
-		debug(0, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
-		debug(0, "@@@@   Movie name '%s' in '%s'", _currentMovie->getMacName().c_str(), _currentPath.c_str());
-		debug(0, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
+		debugC(3, kDebugEvents, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
+		debugC(3, kDebugEvents, "@@@@   Movie name '%s' in '%s'", _currentMovie->getMacName().c_str(), _currentPath.c_str());
+		debugC(3, kDebugEvents, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
 
 		_currentMovie->getScore()->stopPlay();
 		debugC(1, kDebugEvents, "Finished playback of movie '%s'", _currentMovie->getMacName().c_str());
@@ -436,9 +436,11 @@ bool Stage::step() {
 
 	// play current movie
 	if (_currentMovie) {
-		debug(0, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
-		debug(0, "@@@@   Movie name '%s' in '%s'", _currentMovie->getMacName().c_str(), _currentPath.c_str());
-		debug(0, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
+		if (_newMovieStarted || debugChannelSet(3, kDebugEvents)) {
+			debug(0, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
+			debug(0, "@@@@   Movie name '%s' in '%s'", _currentMovie->getMacName().c_str(), _currentPath.c_str());
+			debug(0, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
+		}
 
 		switch (_currentMovie->getScore()->_playState) {
 		case kPlayNotStarted:


Commit: 366982fbef8d168a9c1b17f842cf98ce4d0b887a
    https://github.com/scummvm/scummvm/commit/366982fbef8d168a9c1b17f842cf98ce4d0b887a
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-13T16:19:51-04:00

Commit Message:
DIRECTOR: LINGO: Handle macro/var conflict

Changed paths:
    engines/director/lingo/lingo-gr.cpp
    engines/director/lingo/lingo-gr.y
    engines/director/lingo/lingo-preprocessor.cpp
    engines/director/lingo/tests/macros.lingo
    engines/director/lingo/tests/macros2.lingo


diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index c876cd3acb..fc764e7bad 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -473,37 +473,38 @@ enum yysymbol_kind_t
   YYSYMBOL_lbl = 126,                      /* lbl  */
   YYSYMBOL_stmtlist = 127,                 /* stmtlist  */
   YYSYMBOL_simpleexpr = 128,               /* simpleexpr  */
-  YYSYMBOL_expr = 129,                     /* expr  */
+  YYSYMBOL_funccall = 129,                 /* funccall  */
   YYSYMBOL_130_10 = 130,                   /* $@10  */
-  YYSYMBOL_chunkexpr = 131,                /* chunkexpr  */
-  YYSYMBOL_reference = 132,                /* reference  */
-  YYSYMBOL_proc = 133,                     /* proc  */
-  YYSYMBOL_134_11 = 134,                   /* $@11  */
-  YYSYMBOL_135_12 = 135,                   /* $@12  */
-  YYSYMBOL_136_13 = 136,                   /* $@13  */
-  YYSYMBOL_globallist = 137,               /* globallist  */
-  YYSYMBOL_propertylist = 138,             /* propertylist  */
-  YYSYMBOL_instancelist = 139,             /* instancelist  */
-  YYSYMBOL_gotofunc = 140,                 /* gotofunc  */
-  YYSYMBOL_gotomovie = 141,                /* gotomovie  */
-  YYSYMBOL_playfunc = 142,                 /* playfunc  */
-  YYSYMBOL_143_14 = 143,                   /* $@14  */
-  YYSYMBOL_defn = 144,                     /* defn  */
-  YYSYMBOL_145_15 = 145,                   /* $@15  */
-  YYSYMBOL_146_16 = 146,                   /* $@16  */
-  YYSYMBOL_on = 147,                       /* on  */
-  YYSYMBOL_148_17 = 148,                   /* $@17  */
-  YYSYMBOL_argdef = 149,                   /* argdef  */
-  YYSYMBOL_endargdef = 150,                /* endargdef  */
-  YYSYMBOL_argstore = 151,                 /* argstore  */
-  YYSYMBOL_macro = 152,                    /* macro  */
-  YYSYMBOL_arglist = 153,                  /* arglist  */
-  YYSYMBOL_nonemptyarglist = 154,          /* nonemptyarglist  */
-  YYSYMBOL_list = 155,                     /* list  */
-  YYSYMBOL_valuelist = 156,                /* valuelist  */
-  YYSYMBOL_linearlist = 157,               /* linearlist  */
-  YYSYMBOL_proplist = 158,                 /* proplist  */
-  YYSYMBOL_proppair = 159                  /* proppair  */
+  YYSYMBOL_expr = 131,                     /* expr  */
+  YYSYMBOL_chunkexpr = 132,                /* chunkexpr  */
+  YYSYMBOL_reference = 133,                /* reference  */
+  YYSYMBOL_proc = 134,                     /* proc  */
+  YYSYMBOL_135_11 = 135,                   /* $@11  */
+  YYSYMBOL_136_12 = 136,                   /* $@12  */
+  YYSYMBOL_137_13 = 137,                   /* $@13  */
+  YYSYMBOL_globallist = 138,               /* globallist  */
+  YYSYMBOL_propertylist = 139,             /* propertylist  */
+  YYSYMBOL_instancelist = 140,             /* instancelist  */
+  YYSYMBOL_gotofunc = 141,                 /* gotofunc  */
+  YYSYMBOL_gotomovie = 142,                /* gotomovie  */
+  YYSYMBOL_playfunc = 143,                 /* playfunc  */
+  YYSYMBOL_144_14 = 144,                   /* $@14  */
+  YYSYMBOL_defn = 145,                     /* defn  */
+  YYSYMBOL_146_15 = 146,                   /* $@15  */
+  YYSYMBOL_147_16 = 147,                   /* $@16  */
+  YYSYMBOL_on = 148,                       /* on  */
+  YYSYMBOL_149_17 = 149,                   /* $@17  */
+  YYSYMBOL_argdef = 150,                   /* argdef  */
+  YYSYMBOL_endargdef = 151,                /* endargdef  */
+  YYSYMBOL_argstore = 152,                 /* argstore  */
+  YYSYMBOL_macro = 153,                    /* macro  */
+  YYSYMBOL_arglist = 154,                  /* arglist  */
+  YYSYMBOL_nonemptyarglist = 155,          /* nonemptyarglist  */
+  YYSYMBOL_list = 156,                     /* list  */
+  YYSYMBOL_valuelist = 157,                /* valuelist  */
+  YYSYMBOL_linearlist = 158,               /* linearlist  */
+  YYSYMBOL_proplist = 159,                 /* proplist  */
+  YYSYMBOL_proppair = 160                  /* proppair  */
 };
 typedef enum yysymbol_kind_t yysymbol_kind_t;
 
@@ -811,18 +812,18 @@ union yyalloc
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  125
+#define YYFINAL  103
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2689
+#define YYLAST   2022
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  102
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  58
+#define YYNNTS  59
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  183
+#define YYNRULES  185
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  386
+#define YYNSTATES  385
 
 #define YYMAXUTOK   341
 
@@ -881,23 +882,23 @@ static const yytype_int16 yyrline[] =
 {
        0,   214,   214,   215,   217,   218,   219,   221,   228,   232,
      243,   250,   253,   260,   263,   270,   277,   284,   291,   297,
-     304,   315,   326,   333,   341,   342,   343,   345,   346,   351,
-     364,   368,   371,   363,   398,   402,   405,   397,   432,   439,
-     445,   431,   475,   483,   486,   487,   489,   491,   493,   500,
-     508,   509,   511,   517,   521,   525,   529,   532,   534,   535,
-     536,   538,   541,   544,   548,   552,   556,   564,   570,   571,
-     572,   583,   584,   585,   588,   591,   594,   597,   603,   603,
-     608,   611,   614,   620,   621,   622,   623,   624,   625,   626,
-     627,   628,   629,   630,   631,   632,   633,   634,   635,   636,
-     637,   638,   639,   640,   641,   642,   644,   645,   646,   647,
-     648,   649,   650,   651,   653,   656,   658,   659,   660,   661,
-     669,   670,   670,   671,   671,   672,   672,   673,   676,   679,
-     682,   686,   689,   693,   696,   700,   703,   714,   715,   716,
-     717,   721,   725,   730,   731,   733,   737,   741,   745,   745,
-     775,   775,   781,   782,   782,   788,   796,   802,   802,   804,
-     805,   806,   808,   809,   810,   812,   814,   822,   823,   824,
-     826,   827,   829,   831,   832,   833,   834,   836,   837,   839,
-     840,   842,   846,   850
+     304,   315,   326,   333,   341,   342,   343,   344,   346,   347,
+     352,   365,   369,   372,   364,   399,   403,   406,   398,   433,
+     440,   446,   432,   476,   484,   487,   488,   490,   492,   494,
+     501,   509,   510,   512,   518,   522,   526,   530,   533,   535,
+     536,   537,   539,   542,   545,   549,   553,   557,   565,   571,
+     572,   573,   584,   587,   590,   593,   596,   602,   602,   607,
+     611,   612,   613,   614,   617,   623,   624,   625,   626,   627,
+     628,   629,   630,   631,   632,   633,   634,   635,   636,   637,
+     638,   639,   640,   641,   642,   643,   644,   646,   647,   648,
+     649,   650,   651,   652,   653,   655,   658,   660,   661,   662,
+     663,   671,   672,   672,   673,   673,   674,   674,   675,   678,
+     681,   684,   687,   691,   694,   698,   701,   705,   708,   719,
+     720,   721,   722,   726,   730,   735,   736,   738,   742,   746,
+     750,   750,   780,   780,   786,   787,   787,   793,   801,   807,
+     807,   809,   810,   811,   813,   814,   815,   817,   819,   827,
+     828,   829,   831,   832,   834,   836,   837,   838,   839,   841,
+     842,   844,   845,   847,   851,   855
 };
 #endif
 
@@ -932,11 +933,12 @@ yysymbol_name (yysymbol_kind_t yysymbol)
   "stmtoneliner", "stmt", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7",
   "$@8", "$@9", "startrepeat", "tellstart", "ifstmt", "elseifstmtlist",
   "elseifstmt", "jumpifz", "jump", "varassign", "if", "lbl", "stmtlist",
-  "simpleexpr", "expr", "$@10", "chunkexpr", "reference", "proc", "$@11",
-  "$@12", "$@13", "globallist", "propertylist", "instancelist", "gotofunc",
-  "gotomovie", "playfunc", "$@14", "defn", "$@15", "$@16", "on", "$@17",
-  "argdef", "endargdef", "argstore", "macro", "arglist", "nonemptyarglist",
-  "list", "valuelist", "linearlist", "proplist", "proppair", YY_NULLPTR
+  "simpleexpr", "funccall", "$@10", "expr", "chunkexpr", "reference",
+  "proc", "$@11", "$@12", "$@13", "globallist", "propertylist",
+  "instancelist", "gotofunc", "gotomovie", "playfunc", "$@14", "defn",
+  "$@15", "$@16", "on", "$@17", "argdef", "endargdef", "argstore", "macro",
+  "arglist", "nonemptyarglist", "list", "valuelist", "linearlist",
+  "proplist", "proppair", YY_NULLPTR
   };
   return yy_sname[yysymbol];
 }
@@ -961,12 +963,12 @@ static const yytype_int16 yytoknum[] =
 };
 #endif
 
-#define YYPACT_NINF (-360)
+#define YYPACT_NINF (-349)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
 
-#define YYTABLE_NINF (-174)
+#define YYTABLE_NINF (-176)
 
 #define yytable_value_is_error(Yyn) \
   0
@@ -975,45 +977,45 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     891,   -88,  -360,  -360,    52,  -360,   717,   338,   439,    27,
-     620,  -360,  -360,  -360,  -360,  -360,    47,  -360,  1887,  -360,
-    -360,  -360,    71,  2045,   -37,    69,    50,    56,  2125,   237,
-    -360,  2125,  2125,  2125,  2125,  2125,  2125,  2125,  -360,  -360,
-    2125,  2125,  2125,   532,   119,    54,  -360,  -360,  -360,  -360,
-    2125,  -360,  2583,  -360,  -360,  -360,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,  -360,    51,  2045,  1923,  2583,    79,  1923,
-      79,  1923,    79,    52,  2009,  2583,    90,   804,  -360,  -360,
-     171,  2125,  -360,   154,  -360,  2164,  -360,   174,  -360,   175,
-     505,   176,  -360,   -11,    52,    52,    -5,    14,   152,  -360,
-    2500,  2164,  -360,   189,  -360,  2197,  2230,  2263,  2296,  2550,
-    2461,   190,   191,  -360,  -360,  2513,   -85,   117,   118,  -360,
-    2583,   120,   123,   124,  -360,  -360,   891,  2583,  2125,  2125,
-    2125,  2125,  2125,  2125,  2125,  2125,  2125,  2125,  2125,  2125,
-    2125,  2125,  2125,  2125,  2125,   197,  2009,   505,  2513,   -48,
-    2125,    48,    65,  -360,    45,    70,  2125,    79,   197,  -360,
-     126,  2583,  2125,  -360,  -360,    52,    17,    84,   131,     9,
-    2125,  2125,  2125,    36,   178,  2125,  2125,  2125,  2125,  2125,
-    2125,  -360,  -360,   128,  2125,  2125,  2125,  2125,  2125,  2125,
-    2125,  2125,  2125,  2125,  -360,  -360,  -360,   129,  -360,  -360,
-    2125,  2125,  2125,  -360,  2125,    85,  -360,   177,   121,   121,
-     121,   121,  2596,  2596,  -360,   -36,   121,   121,   121,   121,
-     -36,   -47,   -47,  -360,  -360,  -360,    18,  -360,  2583,  -360,
-    -360,  -360,  -360,  -360,  2583,    20,   202,  2583,   197,   187,
-      52,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  2125,  2125,
-    2583,  2583,   121,  2125,  2125,   205,  2583,   121,  2583,   121,
-    2583,  2583,   206,  2583,  2329,  2583,  2362,  2583,  2395,  2583,
-    2428,  2583,  2583,  1807,  -360,   207,  2583,  2583,  2583,  2583,
-     133,   117,   118,  -360,  -360,  -360,   209,  2125,  -360,  -360,
-      22,  2125,  -360,  2583,  2098,  -360,  2583,   121,    52,  -360,
-    2125,  2125,  2125,  2125,  -360,  1308,  -360,  1224,  -360,  -360,
-      93,  -360,  -360,  2583,  -360,  -360,  -360,  -360,    37,  2583,
-    2583,  2583,  2583,  -360,  -360,  -360,   153,  -360,   975,  -360,
-    1058,  -360,  -360,  -360,  -360,  1391,  2125,  2125,  -360,    26,
-     214,  1141,  -360,   188,   210,   160,  2583,   121,  -360,  2125,
-    -360,   165,  -360,   155,  -360,  2125,   199,  -360,  1474,  2583,
-    -360,   231,  -360,  2583,  2125,   181,   215,  -360,  -360,  -360,
-    2583,  -360,  -360,  1558,  -360,  -360,  1224,  -360,  -360,  -360,
-    -360,  1641,  -360,  -360,  1724,  -360
+    1422,   649,   367,   468,   823,  -349,  -349,   -43,  -349,   909,
+    -349,  -349,  -349,   -36,  1137,    37,   133,     9,    23,  1164,
+     944,  -349,  1164,  -349,  -349,    18,   -69,  -349,  -349,  -349,
+    -349,  1164,  -349,  -349,  -349,  -349,  -349,  -349,  -349,   -35,
+    -349,  -349,    10,  -349,    28,     7,  -349,  -349,  -349,  1164,
+    1164,  1164,  1164,  1164,  1164,  1164,  1164,  1024,   561,  -349,
+    -349,  1916,  -349,    14,  -349,  1024,    14,  1024,    14,  1051,
+    1916,    64,   736,  -349,  -349,    73,  1164,  -349,    81,  -349,
+    1164,  1497,  -349,    79,  -349,   138,  1463,   164,  -349,   -41,
+      10,    10,   -34,   -15,   139,  -349,  1833,  1497,  -349,   166,
+    1794,   178,   182,  -349,  1422,  1916,   189,  -349,  -349,  -349,
+      10,  1051,  -349,  1530,  1563,  1596,  1629,  1883,  -349,  -349,
+    1846,    21,   -25,   118,   119,  -349,  1916,   121,   124,   125,
+    -349,  1164,  1164,  1164,  1164,  1164,  1164,  1164,  1164,  1164,
+    1164,  1164,  1164,  1164,  1164,  1164,  1164,  1164,  1164,    60,
+      70,    84,    75,  1164,    14,   189,  -349,   126,  1916,  1164,
+    1846,  -349,  -349,    10,    48,    54,   137,    25,  1164,  1164,
+    1164,    26,   179,  1164,  1164,  1164,  1164,  1164,  1164,  -349,
+    -349,   127,  -349,  -349,  -349,   131,  -349,  -349,   180,  -349,
+     -11,  -349,  1164,  1164,  1164,  1164,  1164,  1164,  1164,  1164,
+    1164,  1164,  -349,  -349,  1164,  1164,  1164,  -349,  1164,    87,
+     -28,   -28,   -28,   -28,  1929,  1929,  -349,     5,   -28,   -28,
+     -28,   -28,     5,   -51,   -51,  -349,  -349,  1916,  -349,  -349,
+    -349,  -349,  -349,  1916,    22,   207,  1916,   189,   191,    10,
+    -349,  -349,  -349,  -349,  -349,  -349,  -349,  1164,  1164,  1916,
+    1916,  1916,  1164,  1164,   209,  1916,  1916,  1916,  1916,  1916,
+    1916,   210,  1461,  -349,   211,  -349,  -349,   212,  1916,  1662,
+    1916,  1695,  1916,  1728,  1916,  1761,  1916,  1916,  1916,  1916,
+    1916,  1916,   141,   118,   119,  -349,  1164,  -349,  -349,    58,
+    1164,  -349,  1916,   254,  -349,  1916,  1916,    10,  -349,  -349,
+    1383,  -349,  1383,  -349,  -349,  1164,  1164,  1164,  1164,    89,
+    -349,  -349,  1916,  -349,  -349,  -349,  -349,    38,  -349,  -349,
+    -349,   154,  -349,   573,  1916,  1916,  1916,  1916,  -349,  1383,
+    -349,  -349,  -349,  -349,  1383,  1164,  1164,  -349,   153,   213,
+    1383,  -349,   190,   216,   159,  1916,  1916,  -349,  1164,  -349,
+     161,  -349,   148,  -349,  1164,   198,  -349,  1383,  1916,  -349,
+     226,  -349,  1916,  1164,   171,   204,  -349,  -349,  -349,  1916,
+    -349,  -349,  1227,  -349,  -349,  1383,  -349,  -349,  -349,  -349,
+    1279,  -349,  -349,  1331,  -349
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1021,67 +1023,67 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,     0,    61,    66,     0,    62,     0,     0,     0,     0,
-       0,    64,    63,   148,   153,    82,   120,   121,     0,   137,
-      56,   150,     0,     0,     0,     0,     0,     0,     0,     0,
-     125,     0,     0,     0,     0,     0,     0,     0,   123,   157,
-       0,     0,     0,     0,     0,     2,    83,    27,     6,    28,
-       0,    71,    25,    72,    26,   117,   118,     5,    57,    24,
-      69,    70,    65,    67,    65,     0,     0,   168,   128,     0,
-      74,     0,    76,     0,     0,   170,   166,     0,    57,   119,
-       0,     0,   138,     0,   139,   140,   142,     0,    42,     0,
-     116,     0,    57,     0,     0,     0,     0,     0,     0,   152,
-     130,   145,   147,     0,    97,     0,     0,     0,     0,     0,
-       0,     0,     0,   102,   103,     0,    65,    64,    63,   174,
-     177,     0,   176,   175,   179,     1,     0,    53,     0,     0,
+       4,     0,     0,     0,     0,   150,   155,   121,   122,     0,
+     139,    57,   152,     0,     0,     0,     0,     0,     0,     0,
+       0,   126,     0,   124,   159,     0,     2,    26,    28,     6,
+      29,     0,    25,    27,   118,   119,     5,    58,    24,     0,
+      62,    67,     0,    63,     0,    66,    65,    64,    84,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    80,
+      82,   170,    81,   129,    70,     0,    73,     0,    75,     0,
+     172,   168,     0,    58,   120,     0,     0,   140,     0,   141,
+       0,   142,   144,     0,    43,     0,   117,     0,    58,     0,
+       0,     0,     0,     0,     0,   154,   131,   147,   149,     0,
+       0,     0,     0,     1,     4,    54,   161,    71,    66,    68,
+       0,     0,    98,     0,     0,     0,     0,     0,   103,   104,
+     170,     0,    66,    65,    64,   176,   179,     0,   178,   177,
+     181,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   159,     0,     0,   168,     0,
-       0,     0,     0,    81,    65,     0,     0,   149,   159,   131,
-     122,   144,     0,   141,    57,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   146,   135,   126,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    47,    47,   133,   124,   158,    68,
-       0,     0,     0,   172,     0,     0,     3,     0,    93,    94,
-      91,    92,    95,    96,    88,    99,   100,   101,    90,    89,
-      98,    84,    85,    86,    87,   160,     0,   127,   169,    73,
-      75,    77,    78,    80,   171,     0,     0,   143,   159,     0,
-       0,     7,   115,     8,    10,    11,    12,    13,     0,     0,
-      53,    17,    15,     0,     0,     0,    16,    14,    22,    23,
-      43,   129,     0,   106,     0,   108,     0,   110,     0,   112,
-       0,   104,   105,     0,    58,     0,   183,   182,   181,   178,
-       0,     0,     0,   180,    58,   165,     0,     0,   165,   132,
-       0,     0,   114,    38,    30,    46,    18,    19,     0,   136,
-       0,     0,     0,     0,    57,     0,   134,     0,    58,   161,
-       0,    58,   165,     9,    57,    55,    55,    58,     0,   107,
-     109,   111,   113,    45,    59,    60,     0,    50,     0,    79,
-       0,    58,    39,    31,    35,     0,     0,     0,    44,    57,
-     162,     0,    53,     0,     0,     0,    20,    21,    58,     0,
-      51,     0,   163,   155,    40,     0,     0,    29,     0,    53,
-      48,     0,    46,    32,     0,     0,     0,   164,    58,    53,
-      36,    49,    58,     0,    46,    53,     0,    41,    58,    46,
-      52,     0,    58,    33,     0,    37
+       0,    66,     0,     0,   151,   161,   133,   123,   146,     0,
+       0,   143,    58,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   148,
+     137,   127,    48,    48,   135,   125,   160,     3,     0,   162,
+       0,    83,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    69,   128,     0,     0,     0,   174,     0,     0,
+      94,    95,    92,    93,    96,    97,    89,   100,   101,   102,
+      91,    90,    99,    85,    86,    87,    88,   171,    72,    74,
+      76,    77,    79,   173,     0,     0,   145,   161,     0,     0,
+       7,   116,     8,    10,    11,    12,    13,     0,     0,    54,
+      17,    15,     0,     0,     0,    16,    14,    22,    23,    44,
+     130,     0,     0,    59,     0,    59,   167,     0,   107,     0,
+     109,     0,   111,     0,   113,     0,   105,   106,   185,   184,
+     183,   180,     0,     0,     0,   182,     0,   167,   134,     0,
+       0,   115,    39,    31,    47,    18,    19,     0,   138,    58,
+      58,   136,    55,    59,   163,     0,     0,     0,     0,     0,
+      59,   167,     9,    58,    56,    56,    59,     0,    46,    60,
+      61,     0,    51,   158,   108,   110,   112,   114,    78,   156,
+      59,    40,    32,    36,    55,     0,     0,    45,    58,   164,
+     153,    54,     0,     0,     0,    20,    21,    59,     0,    52,
+       0,   165,   157,    41,     0,     0,    30,    58,    54,    49,
+       0,    47,    33,     0,     0,     0,   166,    59,    54,    37,
+      50,    59,     0,    47,    54,    55,    42,    59,    47,    53,
+       0,    59,    34,     0,    38
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -360,   142,  -360,  -360,    -4,    13,  -360,  -360,  -360,  -360,
-    -360,  -360,  -360,  -360,  -360,  -359,    64,  -360,  -360,  -360,
-    -166,  -329,   -44,  -360,   -68,   -28,    10,    -6,  -360,   -14,
-     -61,  -360,  -360,  -360,  -360,  -360,  -360,  -360,  -360,   -21,
-    -360,  -360,  -360,  -360,  -360,  -360,  -360,  -153,  -360,  -279,
-    -360,    32,   -13,  -360,  -360,  -360,  -360,    68
+    -349,   155,  -349,  -349,    -5,     3,  -349,  -349,  -349,  -349,
+    -349,  -349,  -349,  -349,  -349,  -348,    77,  -349,  -349,  -349,
+    -247,  -328,   -57,  -349,   -72,  -100,    -8,     0,  -349,     1,
+      19,    52,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -349,
+     -12,  -349,  -349,  -349,  -349,  -349,  -349,  -349,  -151,  -349,
+    -278,  -349,    43,   -23,  -349,  -349,  -349,  -349,    55
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    44,    45,    46,    47,   325,   315,   343,   369,   316,
-     344,   375,   314,   342,   362,   317,   273,    49,   339,   350,
-     207,   327,   333,    50,   145,   305,    51,    52,   287,    53,
-     243,    54,    80,   111,   103,   160,   197,   183,    55,    86,
-      56,    77,    57,    87,    78,    58,   112,   226,   353,   308,
-      59,   155,    76,    60,   121,   122,   123,   124
+      -1,    25,    26,    27,    28,   320,   314,   342,   368,   315,
+     343,   374,   313,   341,   361,   316,   262,    30,   338,   349,
+     188,   322,   332,    31,   106,   300,    59,    60,   286,    61,
+      62,   242,    33,    75,   101,    99,   157,   185,   181,    34,
+      82,    35,    72,    36,    83,    73,    37,   102,   190,   352,
+     303,    38,   152,    71,    64,   127,   128,   129,   130
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -1089,315 +1091,262 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      67,    67,    67,   368,    75,   235,   345,    61,   102,   311,
-     158,   146,    85,    48,    63,   378,   200,    90,    91,    92,
-     382,   134,   100,   101,   170,   104,   105,   106,   107,   108,
-     109,   110,   134,   331,   113,   114,   115,   120,    68,    70,
-      72,   240,   171,   241,   127,   143,   144,   380,   175,   227,
-     150,   248,   172,     1,   141,   142,   143,   144,   176,   147,
-     148,   348,   349,   148,   163,   148,     2,   177,   148,     3,
-       4,    67,   249,     5,    73,   161,    98,   178,    62,    11,
-     181,    12,    99,   153,   295,   290,    93,    94,    95,   253,
-     336,    32,    33,    34,    35,    96,   238,    79,   149,   254,
-     337,   151,    97,   152,   173,   174,   245,   247,   240,   157,
-     244,   280,   281,   285,   282,   288,   286,   312,   286,   125,
-     286,    88,   208,   209,   210,   211,   212,   213,   214,   215,
-     216,   217,   218,   219,   220,   221,   222,   223,   224,    48,
-      67,   146,   231,   232,   228,   229,   150,   146,    42,   126,
-     234,    43,   242,   242,   242,   240,   237,   246,    32,    33,
-      34,    35,   230,   150,   250,   251,   252,   233,   150,   256,
-     257,   258,   259,   260,   261,   239,   354,   150,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   156,   134,
-     329,   156,   135,   366,   276,   277,   278,   159,   279,   162,
-     164,   165,   169,   374,   179,    32,    33,    34,    35,   379,
-     140,   141,   142,   143,   144,   182,   196,   198,   201,   202,
-     203,   204,   205,   225,   236,   255,   262,   275,   289,   284,
-     291,   298,   299,   306,   200,   309,   323,   326,     1,   338,
-     352,   355,   293,   294,   356,   357,   332,   296,   297,   360,
-     292,     2,   364,   361,     3,     4,   307,   367,     5,   274,
-       7,     8,     9,    64,    11,   371,    12,   372,   206,   304,
-      15,   351,   334,   283,   310,     0,     0,     0,     0,     0,
-     328,    75,    81,   330,    83,   313,    65,     0,    25,   335,
-     365,     0,     0,     0,   319,   320,   321,   322,     0,     0,
-       0,     0,     0,   341,    31,     0,     0,     0,   318,     0,
-       0,    32,    33,    34,    35,    36,     0,     0,     0,     0,
-     358,     0,     0,     0,     0,     0,     0,    40,    41,     0,
-     346,   347,     0,    42,     0,     0,    43,     0,  -167,     1,
-     373,     0,     0,   359,   376,     0,     0,     0,     0,   363,
-     381,     0,     2,     0,   384,     3,     4,     0,   370,     5,
-    -167,     7,     8,     9,    64,    11,     0,    12,  -167,  -167,
-       0,    15,  -167,  -167,  -167,  -167,  -167,  -167,  -167,  -167,
-       0,  -167,     0,  -167,  -167,  -167,     0,    65,  -167,    25,
-    -167,  -167,  -167,  -167,     0,     0,  -167,  -167,  -167,  -167,
-    -167,  -167,  -167,  -167,  -167,    31,  -167,  -167,  -167,  -167,
-    -167,  -167,    32,    33,    34,    35,    36,  -167,  -167,  -167,
-    -167,     0,  -167,  -167,  -167,  -167,  -167,  -167,    40,    41,
-    -167,  -167,     0,  -167,    69,  -167,  -167,    43,  -167,  -167,
-       1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     2,     0,     0,     3,     4,     0,     0,
-       5,  -167,     7,     8,     9,    64,    11,     0,    12,  -167,
-    -167,     0,    15,  -167,  -167,  -167,  -167,  -167,  -167,  -167,
-    -167,     0,  -167,     0,  -167,  -167,  -167,     0,    65,  -167,
-      25,  -167,  -167,  -167,  -167,     0,     0,  -167,  -167,  -167,
-    -167,  -167,  -167,  -167,  -167,  -167,    31,  -167,  -167,  -167,
-    -167,  -167,  -167,    32,    33,    34,    35,    36,  -167,  -167,
-    -167,  -167,     0,  -167,  -167,  -167,  -167,  -167,  -167,    40,
-      41,  -167,  -167,     1,  -167,    71,  -167,  -167,    43,  -167,
-       0,     0,     0,     0,     0,     0,     2,     0,   166,     3,
-       4,     0,     0,     5,     0,     7,     8,     9,   116,   117,
-       0,   118,     0,     0,     0,    15,   128,   129,   130,   131,
-     132,   133,     0,   134,   167,   168,   135,   136,   137,     0,
-       0,    65,     0,    25,     0,     0,     0,     0,     0,     0,
-       0,     0,   138,   139,   140,   141,   142,   143,   144,    31,
-       0,     0,     0,     0,     0,     0,    32,    33,    34,    35,
-      36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     -65,     1,    40,    41,     0,     0,     0,     0,    42,     0,
-       0,    43,  -173,   119,     2,     0,     0,     3,     4,     0,
-       0,     5,   -65,     7,     8,     9,    64,    11,     0,    12,
-     -65,   -65,     0,    15,     0,   -65,   -65,   -65,   -65,   -65,
-     -65,   -65,     0,     0,     0,     0,   -65,     0,     0,    65,
-     -65,    25,     0,     0,   -65,     0,     0,     0,   -65,   -65,
-     -65,   -65,   -65,   -65,   -65,   -65,   -65,    31,   -65,     0,
-       0,   -65,   -65,   -65,    32,    33,    34,    35,    36,     0,
-       0,   -65,   -65,     0,   -65,   -65,   -65,   -65,   -65,   -65,
-      40,    41,   -65,   -65,     0,   -65,    74,  -167,     1,    43,
+      32,   155,   294,    29,   234,    70,   344,    74,    98,   310,
+      81,    39,   169,   367,    84,    86,   168,   137,   103,   173,
+      96,    97,   170,   100,    40,   377,   104,    41,    42,   174,
+     381,    43,   105,   330,   109,    94,   108,    46,   175,    47,
+     137,   146,   147,   138,    63,    66,    68,   379,   176,    95,
+     112,   113,   114,   115,   116,   117,   118,   119,   120,   126,
+     107,   143,   144,   145,   146,   147,   120,   247,   120,   161,
+     120,   111,   239,   137,   240,   110,   204,   158,   239,   252,
+     243,   160,   171,   172,   266,   179,   289,   267,   248,   253,
+     237,   335,    87,    88,   353,   144,   145,   146,   147,   156,
+     121,   336,   191,   111,    32,   162,    80,    29,   149,    58,
+     150,   365,   148,   282,   283,   154,   284,   287,   203,   148,
+     267,   373,    50,    51,    52,    53,   159,   378,    50,    51,
+      52,    53,   210,   211,   212,   213,   214,   215,   216,   217,
+     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
+      89,    90,    91,   311,   233,   238,   267,   228,   148,    92,
+     236,   239,   153,   245,   163,   302,    93,   229,   148,   249,
+     250,   251,   232,   148,   255,   256,   257,   258,   259,   260,
+     111,   230,   231,   241,   241,   241,   328,   153,   347,   348,
+     167,   177,   180,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   323,   184,   278,   279,   280,   186,   281,
+     329,    50,    51,    52,    53,   189,   334,   244,   246,   205,
+     206,   207,   208,   209,   235,   261,   254,   318,   321,   264,
+     340,   291,   265,   288,   290,   297,   298,   301,   304,   351,
+     337,   331,   204,   354,   356,   359,   360,   357,   292,   293,
+     355,   363,   366,   295,   296,   370,   371,   299,   333,   187,
+     263,     0,    32,   309,   285,     0,   350,   372,     0,     0,
+       0,   375,     0,     0,     0,     0,     0,   380,     0,     0,
+       0,   383,     0,     0,     0,   364,     0,    70,   -35,   317,
+       0,   312,     0,     0,     0,     0,     0,     0,     0,     0,
+      32,     0,    32,     0,     0,     0,   324,   325,   326,   327,
+       0,     0,     0,     0,     0,   131,   132,   133,   134,   135,
+     136,     0,   137,    32,     0,   138,   139,   140,     0,    32,
+       0,     0,     0,     0,    32,     0,   345,   346,     0,     0,
+      32,   141,   142,   143,   144,   145,   146,   147,     0,   358,
+       0,     0,     0,     0,     0,   362,     0,    32,     0,     0,
+       0,     0,     0,     0,   369,     0,     0,  -169,    39,     0,
+       0,     0,    32,     0,     0,    32,     0,     0,     0,     0,
+      32,    40,     0,    32,    41,    42,     0,     0,    43,  -169,
+       2,     3,    44,    45,    46,     0,    47,  -169,  -169,     0,
+      48,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,     0,
+    -169,     0,  -169,  -169,  -169,     0,  -169,  -169,  -169,  -169,
+    -169,  -169,  -169,     0,     0,  -169,  -169,  -169,  -169,  -169,
+    -169,  -169,  -169,  -169,    49,  -169,  -169,  -169,  -169,  -169,
+    -169,    50,    51,    52,    53,    54,  -169,  -169,  -169,  -169,
+       0,  -169,  -169,  -169,  -169,  -169,  -169,    55,    56,  -169,
+    -169,     0,  -169,    65,  -169,  -169,    58,  -169,  -169,    39,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    40,     0,     0,    41,    42,     0,     0,    43,
+    -169,     2,     3,    44,    45,    46,     0,    47,  -169,  -169,
+       0,    48,  -169,  -169,  -169,  -169,  -169,  -169,  -169,  -169,
+       0,  -169,     0,  -169,  -169,  -169,     0,  -169,  -169,  -169,
+    -169,  -169,  -169,  -169,     0,     0,  -169,  -169,  -169,  -169,
+    -169,  -169,  -169,  -169,  -169,    49,  -169,  -169,  -169,  -169,
+    -169,  -169,    50,    51,    52,    53,    54,  -169,  -169,  -169,
+    -169,     0,  -169,  -169,  -169,  -169,  -169,  -169,    55,    56,
+    -169,  -169,    39,  -169,    67,  -169,  -169,    58,  -169,     0,
+       0,     0,     0,     0,     0,    40,     0,     0,    41,    42,
+       0,     0,    43,     0,     2,     3,    44,   122,   123,     0,
+     124,     0,     0,     0,    48,     1,     2,     3,     0,     4,
+       0,     0,     0,   339,     5,     0,     0,     0,     0,     0,
+       7,     8,     9,    10,    11,     0,     0,     0,     0,    13,
+       0,     0,    14,    15,    16,     0,     0,    17,    49,     0,
+       0,    19,    20,    21,     0,    50,    51,    52,    53,    54,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  -169,
+      39,    55,    56,     0,    22,    23,     0,    80,     0,     0,
+      58,  -175,   125,    40,     0,     0,    41,    42,   319,     0,
+      43,  -169,     2,     3,    44,    45,    46,     0,    47,  -169,
+    -169,     0,    48,     0,  -169,  -169,  -169,  -169,  -169,  -169,
+    -169,     0,     0,     0,     0,  -169,     0,     0,  -169,  -169,
+    -169,     0,     0,  -169,     0,     0,     0,  -169,  -169,  -169,
+       0,     0,     0,     0,     0,     0,    49,     0,     0,     0,
+       0,     0,     0,    50,    51,    52,    53,    54,     0,     0,
+    -169,  -169,     0,  -169,  -169,  -169,  -169,    39,     0,    55,
+      56,     0,     0,     0,  -169,    57,     0,  -169,    58,     0,
+      40,     0,     0,    41,    42,     0,     0,    43,  -169,     2,
+       3,    44,    45,    46,     0,    47,  -169,  -169,     0,    48,
+       0,  -169,  -169,  -169,  -169,  -169,  -169,  -169,     0,     0,
+       0,     0,  -169,     0,     0,  -169,  -169,  -169,     0,     0,
+    -169,     0,     0,     0,  -169,  -169,  -169,     0,     0,     0,
+       0,     0,     0,    49,     0,     0,     0,     0,     0,     0,
+      50,    51,    52,    53,    54,     0,     0,  -169,  -169,     0,
+    -169,  -169,  -169,  -132,    39,     0,    55,    56,     0,     0,
+       0,  -169,    80,     0,  -169,    58,     0,    40,     0,     0,
+      41,    42,     0,     0,    43,  -132,     2,     3,    44,    45,
+      46,     0,    47,  -132,  -132,     0,    48,     0,  -132,  -132,
+    -132,  -132,  -132,  -132,  -132,     0,     0,     0,     0,  -132,
+       0,     0,  -132,  -132,  -132,     0,     0,  -132,     0,     0,
+       0,  -132,  -132,  -132,     0,     0,     0,     0,     0,     0,
+      49,     0,     0,     0,     0,     0,     0,    50,    51,    52,
+      53,    54,     0,     0,  -132,  -132,     0,  -132,  -132,  -132,
+      39,     0,     0,    55,    56,     0,     0,     0,  -132,    69,
+       0,     0,    58,    40,     0,     0,    41,    42,     0,     0,
+      43,     0,     2,     3,    44,    45,    46,     0,    47,     0,
+       0,     0,    48,     0,     0,    39,     0,     0,     0,     0,
+       0,     0,     0,     0,    76,    77,    78,    79,    40,     0,
+       0,    41,    42,     0,     0,    43,     0,     2,     3,    44,
+      45,    46,     0,    47,     0,     0,    49,    48,     0,     0,
+       0,     0,     0,    50,    51,    52,    53,    54,     0,    76,
+       0,    78,     0,     0,     0,     0,     0,     0,     0,    55,
+      56,     0,     0,     0,     0,    80,     0,     0,    58,     0,
+       0,    49,     0,     0,     0,     0,     0,     0,    50,    51,
+      52,    53,    54,     0,     0,    39,     0,     0,     0,     0,
+       0,     0,     0,     0,    55,    56,     0,     0,    40,     0,
+      80,    41,    42,    58,     0,    43,     0,     2,     3,    44,
+      45,    46,    39,    47,     0,     0,     0,    48,     0,     0,
+       0,     0,     0,     0,     0,    40,     0,     0,    41,    42,
+       0,     0,    43,     0,     2,     3,    44,   151,    46,     0,
+      47,     0,     0,     0,    48,     0,     0,     0,     0,     0,
+       0,    49,     0,     0,     0,     0,     0,     0,    50,    51,
+      52,    53,    54,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    55,    56,     0,     0,    49,     0,
+      80,  -169,  -169,    58,     0,    50,    51,    52,    53,    54,
+       0,     0,     0,     0,     0,     0,     0,     0,    39,     0,
+       0,    55,    56,     0,     0,     0,     0,    80,  -169,  -169,
+      58,    40,     0,     0,    41,    42,     0,    85,    43,     0,
+       2,     3,    44,    45,    46,    39,    47,     0,     0,     0,
+      48,     0,     0,     0,     0,     0,     0,     0,    40,     0,
+       0,    41,    42,     0,     0,    43,     0,     2,     3,    44,
+      45,    46,     0,    47,     0,     0,     0,    48,     0,     0,
+       0,     0,     0,     0,    49,     0,     0,     0,     0,     0,
+       0,    50,    51,    52,    53,    54,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    55,    56,     0,
+       0,    49,     0,    80,     0,     0,    58,     0,    50,    51,
+      52,    53,    54,     0,     0,     0,     0,     0,     0,     1,
+       2,     3,     0,     4,    55,    56,     0,     0,     5,     0,
+      80,     0,     0,    58,     7,     8,     9,    10,    11,     0,
+       0,     0,     0,    13,     0,     0,    14,    15,    16,     0,
+       0,    17,     0,     0,     0,    19,    20,    21,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     1,     2,     3,     0,     4,     0,     0,    22,    23,
+       5,     0,   376,     0,     0,     0,     7,     8,     9,    10,
+      11,     0,   319,     0,     0,    13,     0,     0,    14,    15,
+      16,     0,     0,    17,     0,     0,     0,    19,    20,    21,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     1,     2,     3,     0,     4,     0,     0,
+      22,    23,     5,     0,   382,     0,     0,     0,     7,     8,
+       9,    10,    11,     0,   319,     0,     0,    13,     0,     0,
+      14,    15,    16,     0,     0,    17,     0,     0,     0,    19,
+      20,    21,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     1,     2,     3,     0,     4,
+       0,     0,    22,    23,     5,     0,   384,     0,     0,     0,
+       7,     8,     9,    10,    11,     0,   319,     0,     0,    13,
+       0,     0,    14,    15,    16,     0,     0,    17,     0,     0,
+       0,    19,    20,    21,     1,     2,     3,     0,     4,     0,
+       0,     0,     0,     5,     6,     0,     0,     0,     0,     7,
+       8,     9,    10,    11,    22,    23,    12,     0,    13,     0,
+       0,    14,    15,    16,     0,     0,    17,     0,   319,    18,
+      19,    20,    21,     1,     2,     3,     0,     4,     0,     0,
+       0,     0,     5,     0,     0,     0,     0,     0,     7,     8,
+       9,    10,     0,    22,    23,    24,   164,     0,     0,     0,
+      14,     0,    16,     0,     0,     0,     0,     0,     0,    19,
+      20,    21,     0,     0,   131,   132,   133,   134,   135,   136,
+       0,   137,   165,   166,   138,   139,   140,     0,     0,     0,
+       0,     0,    76,    23,    78,     0,     0,     0,     0,     0,
+     141,   142,   143,   144,   145,   146,   147,     0,   131,   132,
+     133,   134,   135,   136,     0,   137,     0,     0,   138,   139,
+     140,     0,     0,     0,     0,     0,     0,   192,     0,     0,
+       0,     0,     0,   193,   141,   142,   143,   144,   145,   146,
+     147,   131,   132,   133,   134,   135,   136,     0,   137,     0,
+       0,   138,   139,   140,     0,     0,     0,     0,     0,     0,
+     194,     0,     0,     0,     0,     0,   195,   141,   142,   143,
+     144,   145,   146,   147,   131,   132,   133,   134,   135,   136,
+       0,   137,     0,     0,   138,   139,   140,     0,     0,     0,
+       0,     0,     0,   196,     0,     0,     0,     0,     0,   197,
+     141,   142,   143,   144,   145,   146,   147,   131,   132,   133,
+     134,   135,   136,     0,   137,     0,     0,   138,   139,   140,
+       0,     0,     0,     0,     0,     0,   198,     0,     0,     0,
+       0,     0,   199,   141,   142,   143,   144,   145,   146,   147,
+     131,   132,   133,   134,   135,   136,     0,   137,     0,     0,
+     138,   139,   140,     0,     0,     0,     0,     0,     0,   305,
+       0,     0,     0,     0,     0,     0,   141,   142,   143,   144,
+     145,   146,   147,   131,   132,   133,   134,   135,   136,     0,
+     137,     0,     0,   138,   139,   140,     0,     0,     0,     0,
+       0,     0,   306,     0,     0,     0,     0,     0,     0,   141,
+     142,   143,   144,   145,   146,   147,   131,   132,   133,   134,
+     135,   136,     0,   137,     0,     0,   138,   139,   140,     0,
+       0,     0,     0,     0,     0,   307,     0,     0,     0,     0,
+       0,     0,   141,   142,   143,   144,   145,   146,   147,   131,
+     132,   133,   134,   135,   136,     0,   137,     0,     0,   138,
+     139,   140,     0,     0,     0,     0,     0,     0,   308,     0,
+       0,     0,     0,     0,     0,   141,   142,   143,   144,   145,
+     146,   147,   131,   132,   133,   134,   135,   136,     0,   137,
+       0,     0,   138,   139,   140,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   182,   141,   142,
+     143,   144,   145,   146,   147,   131,   132,   133,   134,   135,
+     136,     0,   137,     0,     0,   138,   139,   140,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     2,     0,     0,     3,     4,     0,     0,     5,  -167,
-       7,     8,     9,    64,    11,     0,    12,  -167,  -167,     0,
-      15,     0,  -167,  -167,  -167,  -167,  -167,  -167,  -167,     0,
-       0,     0,     0,  -167,     0,     0,    65,  -167,    25,     0,
-       0,  -167,     0,     0,     0,  -167,  -167,  -167,     0,     0,
-       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
-       0,    32,    33,    34,    35,    36,     0,     0,  -167,  -167,
-       0,  -167,  -167,  -167,  -167,     1,     0,    40,    41,     0,
-       0,     0,  -167,    66,     0,  -167,    43,     0,     2,     0,
-       0,     3,     4,     0,     0,     5,  -167,     7,     8,     9,
-      64,    11,     0,    12,  -167,  -167,     0,    15,     0,  -167,
-    -167,  -167,  -167,  -167,  -167,  -167,     0,     0,     0,     0,
-    -167,     0,     0,    65,  -167,    25,     0,     0,  -167,     0,
-       0,     0,  -167,  -167,  -167,     0,     0,     0,     0,     0,
-       0,    31,     0,     0,     0,     0,     0,     0,    32,    33,
-      34,    35,    36,     0,     0,  -167,  -167,     0,  -167,  -167,
-    -167,    -4,     1,     0,    40,    41,     0,     0,     0,  -167,
-      42,     0,  -167,    43,     0,     2,     0,     0,     3,     4,
-       0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
-      12,     0,    13,    14,    15,     0,     0,     0,    16,    17,
-      18,    19,    20,     0,     0,    21,     0,    22,     0,     0,
-      23,    24,    25,     0,     0,    26,     0,     0,    27,    28,
-      29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
-       0,     0,    37,    38,    39,  -156,     1,     0,     0,     0,
-       0,    40,    41,     0,     0,     0,    -4,    42,     0,     2,
-      43,     0,     3,     4,     0,     0,     5,     6,     7,     8,
-       9,    10,    11,     0,    12,   340,    13,     0,    15,     0,
-       0,     0,    16,    17,    18,    19,    20,     0,     0,     0,
-       0,    22,     0,     0,    23,    24,    25,     0,     0,    26,
-       0,     0,     0,    28,    29,    30,     0,     0,     0,     0,
-       0,     0,    31,     0,     0,     0,     0,     0,     0,    32,
-      33,    34,    35,    36,     0,     0,    37,    38,  -154,     1,
-       0,     0,     0,     0,     0,    40,    41,     0,     0,     0,
-     324,    42,     2,     0,    43,     3,     4,     0,     0,     5,
-       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
-       0,    15,     0,     0,     0,    16,    17,    18,    19,    20,
-       0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
-       0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
-       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
-       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
-      38,  -151,     1,     0,     0,     0,     0,     0,    40,    41,
-       0,     0,     0,   324,    42,     2,     0,    43,     3,     4,
-       0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
-      12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
-      18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
-      23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
-      29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
-       0,     0,    37,    38,     0,     1,     0,     0,     0,     0,
-       0,    40,    41,     0,     0,     0,   324,    42,     2,     0,
-      43,     3,     4,     0,     0,     5,     6,     7,     8,     9,
-      10,    11,     0,    12,     0,    13,     0,    15,     0,   -54,
-     -54,    16,    17,    18,    19,    20,     0,     0,     0,     0,
-      22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
-       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
-       0,    31,     0,     0,     0,     0,     0,     0,    32,    33,
-      34,    35,    36,     0,     0,    37,    38,     0,   -54,     1,
-       0,     0,     0,     0,    40,    41,     0,     0,     0,   324,
-      42,     0,     2,    43,     0,     3,     4,     0,     0,     5,
-       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
-       0,    15,     0,     0,     0,    16,    17,    18,    19,    20,
-       0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
-       0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
-       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
-       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
-      38,     0,     1,     0,   -57,     0,     0,     0,    40,    41,
-       0,     0,     0,   324,    42,     2,     0,    43,     3,     4,
-       0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
-      12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
-      18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
-      23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
-      29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
-       0,     0,    37,    38,     0,     1,   -54,     0,     0,     0,
-       0,    40,    41,     0,     0,     0,   324,    42,     2,     0,
-      43,     3,     4,     0,     0,     5,     6,     7,     8,     9,
-      10,    11,     0,    12,     0,    13,     0,    15,     0,     0,
-       0,    16,    17,    18,    19,    20,     0,     0,     0,     0,
-      22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
-       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
-       0,    31,     0,     0,     0,     0,     0,     0,    32,    33,
-      34,    35,    36,     0,     0,    37,    38,     0,   -57,     1,
-       0,     0,     0,     0,    40,    41,     0,     0,     0,   324,
-      42,     0,     2,    43,     0,     3,     4,     0,     0,     5,
-       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
-       0,    15,     0,     0,     0,    16,    17,    18,    19,    20,
-       0,     0,     0,     0,    22,     0,     0,    23,    24,    25,
-       0,     0,    26,     0,     0,     0,    28,    29,    30,     0,
-       0,     0,     0,     0,     0,    31,     0,     0,     0,     0,
-       0,     0,    32,    33,    34,    35,    36,     0,     0,    37,
-      38,     0,     1,   377,     0,     0,     0,     0,    40,    41,
-       0,     0,     0,   324,    42,     2,     0,    43,     3,     4,
-       0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
-      12,     0,    13,     0,    15,     0,     0,     0,    16,    17,
-      18,    19,    20,     0,     0,     0,     0,    22,     0,     0,
-      23,    24,    25,     0,     0,    26,     0,     0,     0,    28,
-      29,    30,     0,     0,     0,     0,     0,     0,    31,     0,
-       0,     0,     0,     0,     0,    32,    33,    34,    35,    36,
-       0,     0,    37,    38,     0,     1,   383,     0,     0,     0,
-       0,    40,    41,     0,     0,     0,   324,    42,     2,     0,
-      43,     3,     4,     0,     0,     5,     6,     7,     8,     9,
-      10,    11,     0,    12,     0,    13,     0,    15,     0,     0,
-       0,    16,    17,    18,    19,    20,     0,     0,     0,     0,
-      22,     0,     0,    23,    24,    25,     0,     0,    26,     0,
-       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
-       0,    31,     0,     0,     0,     0,     0,     0,    32,    33,
-      34,    35,    36,     0,     0,    37,    38,     0,     1,   385,
-       0,     0,     0,     0,    40,    41,     0,     0,     0,   324,
-      42,     2,     0,    43,     3,     4,     0,     0,     5,     6,
-       7,     8,     9,    10,    11,     0,    12,     0,    13,     0,
-      15,     0,     0,     0,    16,    17,    18,    19,     0,     0,
-       0,     0,     0,     0,     0,     0,    23,     0,    25,     0,
-       0,     0,     0,     0,     0,    28,    29,    30,     0,     0,
-       0,     0,     0,     0,    31,     0,     0,     0,     0,     0,
-       0,    32,    33,    34,    35,    36,     0,     0,     1,    38,
-       0,     0,     0,     0,     0,     0,     0,    40,    41,     0,
-       0,     2,     0,    42,     3,     4,    43,     0,     5,     0,
-       7,     8,     9,    64,    11,     0,    12,     0,     0,     0,
-      15,     0,     0,     0,     1,     0,     0,     0,     0,     0,
-       0,     0,    81,    82,    83,    84,    65,     2,    25,     0,
-       3,     4,     0,     0,     5,     0,     7,     8,     9,    64,
-      11,     0,    12,     0,    31,     0,    15,     0,     0,     0,
-       0,    32,    33,    34,    35,    36,     0,     0,     0,     0,
-       0,     0,    65,     0,    25,     0,     0,    40,    41,     0,
-       0,     0,     0,    42,     0,     0,    43,     0,     0,     0,
-      31,     0,     0,     0,     0,     0,     0,    32,    33,    34,
-      35,    36,     0,     0,     0,     0,     0,     0,     0,     0,
-       1,     0,     0,    40,    41,     0,     0,     0,     0,    42,
-    -167,  -167,    43,     2,     0,     0,     3,     4,     0,     0,
-       5,     0,     7,     8,     9,   154,    11,     0,    12,     0,
-       0,     0,    15,     0,     0,     0,     1,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,    65,     2,
-      25,     0,     3,     4,     0,    89,     5,     0,     7,     8,
-       9,    64,    11,     0,    12,     0,    31,     0,    15,     0,
-       0,     0,     0,    32,    33,    34,    35,    36,     0,     0,
-       0,     0,     0,     0,    65,     0,    25,     0,     0,    40,
-      41,     0,     0,     0,     0,    42,  -167,  -167,    43,     0,
-       0,     0,    31,     0,     0,     0,     0,     0,     0,    32,
-      33,    34,    35,    36,     0,     0,     1,     0,     0,     0,
-       0,     0,   -34,     0,     0,    40,    41,     0,     0,     2,
-       0,    42,     3,     4,    43,     0,     5,     0,     7,     8,
-       9,    64,    11,     0,    12,     0,     0,     0,    15,   128,
-     129,   130,   131,   132,   133,     0,   134,     0,     0,   135,
-     136,   137,     0,     0,    65,     0,    25,     0,     0,     0,
-       0,     0,     0,     0,     0,   138,   139,   140,   141,   142,
-     143,   144,    31,     0,     0,     0,     0,     0,     0,    32,
-      33,    34,    35,    36,     0,     0,     0,     0,     0,    81,
-       0,    83,     0,     0,     0,    40,    41,     0,     0,     0,
-       0,    42,     0,     0,    43,   128,   129,   130,   131,   132,
-     133,     0,   134,     0,     0,   135,   136,   137,     0,     0,
-       0,     0,     0,     0,   184,     0,     0,     0,     0,     0,
-     185,   138,   139,   140,   141,   142,   143,   144,   128,   129,
-     130,   131,   132,   133,     0,   134,     0,     0,   135,   136,
-     137,     0,     0,     0,     0,     0,     0,   186,     0,     0,
-       0,     0,     0,   187,   138,   139,   140,   141,   142,   143,
-     144,   128,   129,   130,   131,   132,   133,     0,   134,     0,
-       0,   135,   136,   137,     0,     0,     0,     0,     0,     0,
-     188,     0,     0,     0,     0,     0,   189,   138,   139,   140,
-     141,   142,   143,   144,   128,   129,   130,   131,   132,   133,
-       0,   134,     0,     0,   135,   136,   137,     0,     0,     0,
-       0,     0,     0,   190,     0,     0,     0,     0,     0,   191,
-     138,   139,   140,   141,   142,   143,   144,   128,   129,   130,
-     131,   132,   133,     0,   134,     0,     0,   135,   136,   137,
-       0,     0,     0,     0,     0,     0,   300,     0,     0,     0,
-       0,     0,     0,   138,   139,   140,   141,   142,   143,   144,
-     128,   129,   130,   131,   132,   133,     0,   134,     0,     0,
-     135,   136,   137,     0,     0,     0,     0,     0,     0,   301,
-       0,     0,     0,     0,     0,     0,   138,   139,   140,   141,
-     142,   143,   144,   128,   129,   130,   131,   132,   133,     0,
-     134,     0,     0,   135,   136,   137,     0,     0,     0,     0,
-       0,     0,   302,     0,     0,     0,     0,     0,     0,   138,
-     139,   140,   141,   142,   143,   144,   128,   129,   130,   131,
-     132,   133,     0,   134,     0,     0,   135,   136,   137,     0,
-       0,     0,     0,     0,     0,   303,     0,     0,     0,     0,
-       0,     0,   138,   139,   140,   141,   142,   143,   144,   128,
-     129,   130,   131,   132,   133,     0,   134,     0,     0,   135,
-     136,   137,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   194,   138,   139,   140,   141,   142,
-     143,   144,   128,   129,   130,   131,   132,   133,     0,   134,
-       0,     0,   135,   136,   137,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   138,   139,
-     140,   141,   142,   143,   144,   180,   195,     0,     0,     0,
-       0,   128,   129,   130,   131,   132,   133,     0,   134,     0,
-       0,   135,   136,   137,   128,   129,   130,   131,   132,   133,
-       0,   134,     0,     0,   135,   136,   137,   138,   139,   140,
-     141,   142,   143,   144,     0,     0,     0,     0,     0,     0,
-     138,   139,   140,   141,   142,   143,   144,     0,     0,     0,
-     199,   128,   129,   130,   131,   132,   133,     0,   134,     0,
-       0,   135,   136,   137,     0,     0,     0,     0,     0,   192,
-     193,     0,     0,     0,     0,     0,     0,   138,   139,   140,
-     141,   142,   143,   144,   128,   129,   130,   131,   132,   133,
-       0,   134,     0,     0,   135,   136,   137,   128,   129,   130,
-     131,     0,     0,     0,   134,     0,     0,   135,   136,   137,
-     138,   139,   140,   141,   142,   143,   144,     0,     0,     0,
-       0,     0,     0,   138,   139,   140,   141,   142,   143,   144
+       0,   141,   142,   143,   144,   145,   146,   147,   178,   183,
+       0,     0,     0,     0,   131,   132,   133,   134,   135,   136,
+       0,   137,     0,     0,   138,   139,   140,   131,   132,   133,
+     134,   135,   136,     0,   137,     0,     0,   138,   139,   140,
+     141,   142,   143,   144,   145,   146,   147,     0,     0,     0,
+       0,     0,     0,   141,   142,   143,   144,   145,   146,   147,
+       0,     0,     0,   202,   131,   132,   133,   134,   135,   136,
+       0,   137,     0,     0,   138,   139,   140,     0,     0,     0,
+       0,     0,   200,   201,     0,     0,     0,     0,     0,     0,
+     141,   142,   143,   144,   145,   146,   147,   131,   132,   133,
+     134,   135,   136,     0,   137,     0,     0,   138,   139,   140,
+     131,   132,   133,   134,     0,     0,     0,   137,     0,     0,
+     138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
+       0,     0,     0,     0,     0,     0,   141,   142,   143,   144,
+     145,   146,   147
 };
 
 static const yytype_int16 yycheck[] =
 {
-       6,     7,     8,   362,    10,   158,   335,    95,    29,   288,
-      78,    96,    18,     0,     4,   374,   101,    23,    55,    56,
-     379,    68,    28,    29,    92,    31,    32,    33,    34,    35,
-      36,    37,    68,   312,    40,    41,    42,    43,     6,     7,
-       8,    24,    53,    26,    50,    92,    93,   376,    53,    97,
-      98,    42,    63,     1,    90,    91,    92,    93,    63,    65,
-      66,    35,    36,    69,    85,    71,    14,    53,    74,    17,
-      18,    77,    63,    21,    47,    81,    26,    63,    26,    27,
-     101,    29,    26,    73,   250,   238,    17,    18,    19,    53,
-      53,    74,    75,    76,    77,    26,   164,    50,    66,    63,
-      63,    69,    33,    71,    94,    95,   167,   168,    24,    77,
-      26,    26,    27,    95,    29,    95,    98,    95,    98,     0,
-      98,    50,   128,   129,   130,   131,   132,   133,   134,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,   126,
-     146,    96,    97,    98,   150,    97,    98,    96,    96,    95,
-     156,    99,   166,   167,   168,    24,   162,    26,    74,    75,
-      76,    77,    97,    98,   170,   171,   172,    97,    98,   175,
-     176,   177,   178,   179,   180,   165,   342,    98,   184,   185,
-     186,   187,   188,   189,   190,   191,   192,   193,    98,    68,
-      97,    98,    71,   359,   200,   201,   202,    26,   204,    45,
-      26,    26,    26,   369,    52,    74,    75,    76,    77,   375,
-      89,    90,    91,    92,    93,    26,    26,    26,   101,   101,
-     100,    98,    98,    26,    98,    47,    98,    98,    26,    52,
-      43,    26,    26,    26,   101,    26,   304,   305,     1,    86,
-      26,    53,   248,   249,    34,    85,   314,   253,   254,    84,
-     240,    14,    53,    98,    17,    18,   284,    26,    21,   195,
-      23,    24,    25,    26,    27,    84,    29,    52,   126,   273,
-      33,   339,   316,   205,   287,    -1,    -1,    -1,    -1,    -1,
-     308,   287,    45,   311,    47,   291,    49,    -1,    51,   317,
-     358,    -1,    -1,    -1,   300,   301,   302,   303,    -1,    -1,
-      -1,    -1,    -1,   331,    67,    -1,    -1,    -1,   298,    -1,
-      -1,    74,    75,    76,    77,    78,    -1,    -1,    -1,    -1,
-     348,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
-     336,   337,    -1,    96,    -1,    -1,    99,    -1,     0,     1,
-     368,    -1,    -1,   349,   372,    -1,    -1,    -1,    -1,   355,
-     378,    -1,    14,    -1,   382,    17,    18,    -1,   364,    21,
+       0,    73,   249,     0,   155,     4,   334,    50,    20,   287,
+       9,     1,    53,   361,    50,    14,    88,    68,     0,    53,
+      19,    20,    63,    22,    14,   373,    95,    17,    18,    63,
+     378,    21,    31,   311,    42,    26,    26,    27,    53,    29,
+      68,    92,    93,    71,     1,     2,     3,   375,    63,    26,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      95,    89,    90,    91,    92,    93,    65,    42,    67,    81,
+      69,    96,    24,    68,    26,    47,   101,    76,    24,    53,
+      26,    80,    90,    91,    95,    97,   237,    98,    63,    63,
+     162,    53,    55,    56,   341,    90,    91,    92,    93,    26,
+      57,    63,   110,    96,   104,    26,    96,   104,    65,    99,
+      67,   358,    98,    26,    27,    72,    29,    95,    97,    98,
+      98,   368,    74,    75,    76,    77,    45,   374,    74,    75,
+      76,    77,   131,   132,   133,   134,   135,   136,   137,   138,
+     139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
+      17,    18,    19,    95,   153,   163,    98,    97,    98,    26,
+     159,    24,    98,    26,    26,   265,    33,    97,    98,   168,
+     169,   170,    97,    98,   173,   174,   175,   176,   177,   178,
+      96,    97,    98,   164,   165,   166,    97,    98,    35,    36,
+      26,    52,    26,   192,   193,   194,   195,   196,   197,   198,
+     199,   200,   201,   303,    26,   204,   205,   206,    26,   208,
+     310,    74,    75,    76,    77,    26,   316,   165,   166,   101,
+     101,   100,    98,    98,    98,    98,    47,   299,   300,    98,
+     330,   239,    52,    26,    43,    26,    26,    26,    26,    26,
+      86,   313,   101,    53,    85,    84,    98,   347,   247,   248,
+      34,    53,    26,   252,   253,    84,    52,   262,   315,   104,
+     183,    -1,   262,   286,   209,    -1,   338,   367,    -1,    -1,
+      -1,   371,    -1,    -1,    -1,    -1,    -1,   377,    -1,    -1,
+      -1,   381,    -1,    -1,    -1,   357,    -1,   286,    34,   297,
+      -1,   290,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     300,    -1,   302,    -1,    -1,    -1,   305,   306,   307,   308,
+      -1,    -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,
+      66,    -1,    68,   323,    -1,    71,    72,    73,    -1,   329,
+      -1,    -1,    -1,    -1,   334,    -1,   335,   336,    -1,    -1,
+     340,    87,    88,    89,    90,    91,    92,    93,    -1,   348,
+      -1,    -1,    -1,    -1,    -1,   354,    -1,   357,    -1,    -1,
+      -1,    -1,    -1,    -1,   363,    -1,    -1,     0,     1,    -1,
+      -1,    -1,   372,    -1,    -1,   375,    -1,    -1,    -1,    -1,
+     380,    14,    -1,   383,    17,    18,    -1,    -1,    21,    22,
+      23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
+      33,    34,    35,    36,    37,    38,    39,    40,    41,    -1,
+      43,    -1,    45,    46,    47,    -1,    49,    50,    51,    52,
+      53,    54,    55,    -1,    -1,    58,    59,    60,    61,    62,
+      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
+      -1,    84,    85,    86,    87,    88,    89,    90,    91,    92,
+      93,    -1,    95,    96,    97,    98,    99,   100,     0,     1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    14,    -1,    -1,    17,    18,    -1,    -1,    21,
       22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
       -1,    33,    34,    35,    36,    37,    38,    39,    40,    41,
       -1,    43,    -1,    45,    46,    47,    -1,    49,    50,    51,
@@ -1405,189 +1354,106 @@ static const yytype_int16 yycheck[] =
       62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
       72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
       82,    -1,    84,    85,    86,    87,    88,    89,    90,    91,
-      92,    93,    -1,    95,    96,    97,    98,    99,   100,     0,
-       1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    14,    -1,    -1,    17,    18,    -1,    -1,
+      92,    93,     1,    95,    96,    97,    98,    99,   100,    -1,
+      -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    17,    18,
+      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    -1,
+      29,    -1,    -1,    -1,    33,    22,    23,    24,    -1,    26,
+      -1,    -1,    -1,    30,    31,    -1,    -1,    -1,    -1,    -1,
+      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
+      -1,    -1,    49,    50,    51,    -1,    -1,    54,    67,    -1,
+      -1,    58,    59,    60,    -1,    74,    75,    76,    77,    78,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,
+       1,    90,    91,    -1,    81,    82,    -1,    96,    -1,    -1,
+      99,   100,   101,    14,    -1,    -1,    17,    18,    95,    -1,
       21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
-      31,    -1,    33,    34,    35,    36,    37,    38,    39,    40,
-      41,    -1,    43,    -1,    45,    46,    47,    -1,    49,    50,
-      51,    52,    53,    54,    55,    -1,    -1,    58,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
-      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
-      81,    82,    -1,    84,    85,    86,    87,    88,    89,    90,
-      91,    92,    93,     1,    95,    96,    97,    98,    99,   100,
-      -1,    -1,    -1,    -1,    -1,    -1,    14,    -1,    43,    17,
-      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
-      -1,    29,    -1,    -1,    -1,    33,    61,    62,    63,    64,
-      65,    66,    -1,    68,    69,    70,    71,    72,    73,    -1,
-      -1,    49,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    87,    88,    89,    90,    91,    92,    93,    67,
-      -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,
-      78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       0,     1,    90,    91,    -1,    -1,    -1,    -1,    96,    -1,
-      -1,    99,   100,   101,    14,    -1,    -1,    17,    18,    -1,
-      -1,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
-      30,    31,    -1,    33,    -1,    35,    36,    37,    38,    39,
-      40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,
-      50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    68,    -1,
-      -1,    71,    72,    73,    74,    75,    76,    77,    78,    -1,
-      -1,    81,    82,    -1,    84,    85,    86,    87,    88,    89,
-      90,    91,    92,    93,    -1,    95,    96,     0,     1,    99,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    14,    -1,    -1,    17,    18,    -1,    -1,    21,    22,
-      23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
-      33,    -1,    35,    36,    37,    38,    39,    40,    41,    -1,
-      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
-      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
-      -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    74,    75,    76,    77,    78,    -1,    -1,    81,    82,
-      -1,    84,    85,    86,     0,     1,    -1,    90,    91,    -1,
-      -1,    -1,    95,    96,    -1,    98,    99,    -1,    14,    -1,
-      -1,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
-      26,    27,    -1,    29,    30,    31,    -1,    33,    -1,    35,
-      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
-      -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
-      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
-      76,    77,    78,    -1,    -1,    81,    82,    -1,    84,    85,
-      86,     0,     1,    -1,    90,    91,    -1,    -1,    -1,    95,
-      96,    -1,    98,    99,    -1,    14,    -1,    -1,    17,    18,
-      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
-      29,    -1,    31,    32,    33,    -1,    -1,    -1,    37,    38,
-      39,    40,    41,    -1,    -1,    44,    -1,    46,    -1,    -1,
-      49,    50,    51,    -1,    -1,    54,    -1,    -1,    57,    58,
-      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
-      -1,    -1,    81,    82,    83,     0,     1,    -1,    -1,    -1,
-      -1,    90,    91,    -1,    -1,    -1,    95,    96,    -1,    14,
-      99,    -1,    17,    18,    -1,    -1,    21,    22,    23,    24,
-      25,    26,    27,    -1,    29,    30,    31,    -1,    33,    -1,
-      -1,    -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,
-      -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,
-      -1,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,
-      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    76,    77,    78,    -1,    -1,    81,    82,     0,     1,
-      -1,    -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,
-      95,    96,    14,    -1,    99,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
-      -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
-      -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
-      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
-      82,     0,     1,    -1,    -1,    -1,    -1,    -1,    90,    91,
-      -1,    -1,    -1,    95,    96,    14,    -1,    99,    17,    18,
-      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
-      29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
-      49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
-      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
-      -1,    -1,    81,    82,    -1,     1,    -1,    -1,    -1,    -1,
-      -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
-      99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
-      26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    35,
-      36,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
-      -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
-      -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
-      76,    77,    78,    -1,    -1,    81,    82,    -1,    84,     1,
-      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
-      96,    -1,    14,    99,    -1,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
-      -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
-      -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
-      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
-      82,    -1,     1,    -1,    86,    -1,    -1,    -1,    90,    91,
-      -1,    -1,    -1,    95,    96,    14,    -1,    99,    17,    18,
-      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
-      29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
-      49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
-      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
-      -1,    -1,    81,    82,    -1,     1,    85,    -1,    -1,    -1,
-      -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
-      99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
-      26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    -1,
-      -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
-      -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
+      31,    -1,    33,    -1,    35,    36,    37,    38,    39,    40,
+      41,    -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,
+      51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,
+      -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,
+      -1,    -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,
+      81,    82,    -1,    84,    85,    86,     0,     1,    -1,    90,
+      91,    -1,    -1,    -1,    95,    96,    -1,    98,    99,    -1,
+      14,    -1,    -1,    17,    18,    -1,    -1,    21,    22,    23,
+      24,    25,    26,    27,    -1,    29,    30,    31,    -1,    33,
+      -1,    35,    36,    37,    38,    39,    40,    41,    -1,    -1,
+      -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,    -1,
+      54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,    -1,
+      -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,
+      74,    75,    76,    77,    78,    -1,    -1,    81,    82,    -1,
+      84,    85,    86,     0,     1,    -1,    90,    91,    -1,    -1,
+      -1,    95,    96,    -1,    98,    99,    -1,    14,    -1,    -1,
+      17,    18,    -1,    -1,    21,    22,    23,    24,    25,    26,
+      27,    -1,    29,    30,    31,    -1,    33,    -1,    35,    36,
+      37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
+      -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,    -1,
+      -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,
+      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,
+      77,    78,    -1,    -1,    81,    82,    -1,    84,    85,    86,
+       1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,    96,
+      -1,    -1,    99,    14,    -1,    -1,    17,    18,    -1,    -1,
+      21,    -1,    23,    24,    25,    26,    27,    -1,    29,    -1,
+      -1,    -1,    33,    -1,    -1,     1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    45,    46,    47,    48,    14,    -1,
+      -1,    17,    18,    -1,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    -1,    67,    33,    -1,    -1,
+      -1,    -1,    -1,    74,    75,    76,    77,    78,    -1,    45,
+      -1,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
+      91,    -1,    -1,    -1,    -1,    96,    -1,    -1,    99,    -1,
       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
-      76,    77,    78,    -1,    -1,    81,    82,    -1,    84,     1,
-      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
-      96,    -1,    14,    99,    -1,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
-      -1,    33,    -1,    -1,    -1,    37,    38,    39,    40,    41,
-      -1,    -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,
-      -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,
-      -1,    -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
-      -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,    81,
-      82,    -1,     1,    85,    -1,    -1,    -1,    -1,    90,    91,
-      -1,    -1,    -1,    95,    96,    14,    -1,    99,    17,    18,
-      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
-      29,    -1,    31,    -1,    33,    -1,    -1,    -1,    37,    38,
-      39,    40,    41,    -1,    -1,    -1,    -1,    46,    -1,    -1,
-      49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
-      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    -1,    -1,    74,    75,    76,    77,    78,
-      -1,    -1,    81,    82,    -1,     1,    85,    -1,    -1,    -1,
-      -1,    90,    91,    -1,    -1,    -1,    95,    96,    14,    -1,
-      99,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
-      26,    27,    -1,    29,    -1,    31,    -1,    33,    -1,    -1,
-      -1,    37,    38,    39,    40,    41,    -1,    -1,    -1,    -1,
-      46,    -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,
-      -1,    -1,    58,    59,    60,    -1,    -1,    -1,    -1,    -1,
+      76,    77,    78,    -1,    -1,     1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    14,    -1,
+      96,    17,    18,    99,    -1,    21,    -1,    23,    24,    25,
+      26,    27,     1,    29,    -1,    -1,    -1,    33,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    17,    18,
+      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    -1,
+      29,    -1,    -1,    -1,    33,    -1,    -1,    -1,    -1,    -1,
       -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,
-      76,    77,    78,    -1,    -1,    81,    82,    -1,     1,    85,
-      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,    95,
-      96,    14,    -1,    99,    17,    18,    -1,    -1,    21,    22,
-      23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
-      33,    -1,    -1,    -1,    37,    38,    39,    40,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    49,    -1,    51,    -1,
-      -1,    -1,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
+      76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    90,    91,    -1,    -1,    67,    -1,
+      96,    97,    98,    99,    -1,    74,    75,    76,    77,    78,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
+      -1,    90,    91,    -1,    -1,    -1,    -1,    96,    97,    98,
+      99,    14,    -1,    -1,    17,    18,    -1,    20,    21,    -1,
+      23,    24,    25,    26,    27,     1,    29,    -1,    -1,    -1,
+      33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    -1,
+      -1,    17,    18,    -1,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    -1,    -1,    33,    -1,    -1,
       -1,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,
-      -1,    74,    75,    76,    77,    78,    -1,    -1,     1,    82,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
-      -1,    14,    -1,    96,    17,    18,    99,    -1,    21,    -1,
-      23,    24,    25,    26,    27,    -1,    29,    -1,    -1,    -1,
-      33,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    45,    46,    47,    48,    49,    14,    51,    -1,
-      17,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
-      27,    -1,    29,    -1,    67,    -1,    33,    -1,    -1,    -1,
       -1,    74,    75,    76,    77,    78,    -1,    -1,    -1,    -1,
-      -1,    -1,    49,    -1,    51,    -1,    -1,    90,    91,    -1,
-      -1,    -1,    -1,    96,    -1,    -1,    99,    -1,    -1,    -1,
-      67,    -1,    -1,    -1,    -1,    -1,    -1,    74,    75,    76,
-      77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-       1,    -1,    -1,    90,    91,    -1,    -1,    -1,    -1,    96,
-      97,    98,    99,    14,    -1,    -1,    17,    18,    -1,    -1,
-      21,    -1,    23,    24,    25,    26,    27,    -1,    29,    -1,
-      -1,    -1,    33,    -1,    -1,    -1,     1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    14,
-      51,    -1,    17,    18,    -1,    20,    21,    -1,    23,    24,
-      25,    26,    27,    -1,    29,    -1,    67,    -1,    33,    -1,
-      -1,    -1,    -1,    74,    75,    76,    77,    78,    -1,    -1,
-      -1,    -1,    -1,    -1,    49,    -1,    51,    -1,    -1,    90,
-      91,    -1,    -1,    -1,    -1,    96,    97,    98,    99,    -1,
-      -1,    -1,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    76,    77,    78,    -1,    -1,     1,    -1,    -1,    -1,
-      -1,    -1,    34,    -1,    -1,    90,    91,    -1,    -1,    14,
-      -1,    96,    17,    18,    99,    -1,    21,    -1,    23,    24,
-      25,    26,    27,    -1,    29,    -1,    -1,    -1,    33,    61,
-      62,    63,    64,    65,    66,    -1,    68,    -1,    -1,    71,
-      72,    73,    -1,    -1,    49,    -1,    51,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,    91,
-      92,    93,    67,    -1,    -1,    -1,    -1,    -1,    -1,    74,
-      75,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,    45,
-      -1,    47,    -1,    -1,    -1,    90,    91,    -1,    -1,    -1,
-      -1,    96,    -1,    -1,    99,    61,    62,    63,    64,    65,
-      66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,
-      -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,
-      53,    87,    88,    89,    90,    91,    92,    93,    61,    62,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    91,    -1,
+      -1,    67,    -1,    96,    -1,    -1,    99,    -1,    74,    75,
+      76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    22,
+      23,    24,    -1,    26,    90,    91,    -1,    -1,    31,    -1,
+      96,    -1,    -1,    99,    37,    38,    39,    40,    41,    -1,
+      -1,    -1,    -1,    46,    -1,    -1,    49,    50,    51,    -1,
+      -1,    54,    -1,    -1,    -1,    58,    59,    60,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    22,    23,    24,    -1,    26,    -1,    -1,    81,    82,
+      31,    -1,    85,    -1,    -1,    -1,    37,    38,    39,    40,
+      41,    -1,    95,    -1,    -1,    46,    -1,    -1,    49,    50,
+      51,    -1,    -1,    54,    -1,    -1,    -1,    58,    59,    60,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    22,    23,    24,    -1,    26,    -1,    -1,
+      81,    82,    31,    -1,    85,    -1,    -1,    -1,    37,    38,
+      39,    40,    41,    -1,    95,    -1,    -1,    46,    -1,    -1,
+      49,    50,    51,    -1,    -1,    54,    -1,    -1,    -1,    58,
+      59,    60,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    22,    23,    24,    -1,    26,
+      -1,    -1,    81,    82,    31,    -1,    85,    -1,    -1,    -1,
+      37,    38,    39,    40,    41,    -1,    95,    -1,    -1,    46,
+      -1,    -1,    49,    50,    51,    -1,    -1,    54,    -1,    -1,
+      -1,    58,    59,    60,    22,    23,    24,    -1,    26,    -1,
+      -1,    -1,    -1,    31,    32,    -1,    -1,    -1,    -1,    37,
+      38,    39,    40,    41,    81,    82,    44,    -1,    46,    -1,
+      -1,    49,    50,    51,    -1,    -1,    54,    -1,    95,    57,
+      58,    59,    60,    22,    23,    24,    -1,    26,    -1,    -1,
+      -1,    -1,    31,    -1,    -1,    -1,    -1,    -1,    37,    38,
+      39,    40,    -1,    81,    82,    83,    43,    -1,    -1,    -1,
+      49,    -1,    51,    -1,    -1,    -1,    -1,    -1,    -1,    58,
+      59,    60,    -1,    -1,    61,    62,    63,    64,    65,    66,
+      -1,    68,    69,    70,    71,    72,    73,    -1,    -1,    -1,
+      -1,    -1,    45,    82,    47,    -1,    -1,    -1,    -1,    -1,
+      87,    88,    89,    90,    91,    92,    93,    -1,    61,    62,
       63,    64,    65,    66,    -1,    68,    -1,    -1,    71,    72,
       73,    -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,
       -1,    -1,    -1,    53,    87,    88,    89,    90,    91,    92,
@@ -1600,7 +1466,7 @@ static const yytype_int16 yycheck[] =
       87,    88,    89,    90,    91,    92,    93,    61,    62,    63,
       64,    65,    66,    -1,    68,    -1,    -1,    71,    72,    73,
       -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,
-      -1,    -1,    -1,    87,    88,    89,    90,    91,    92,    93,
+      -1,    -1,    53,    87,    88,    89,    90,    91,    92,    93,
       61,    62,    63,    64,    65,    66,    -1,    68,    -1,    -1,
       71,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    47,
       -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,
@@ -1612,70 +1478,74 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,
       -1,    -1,    87,    88,    89,    90,    91,    92,    93,    61,
       62,    63,    64,    65,    66,    -1,    68,    -1,    -1,    71,
-      72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    53,    87,    88,    89,    90,    91,
+      72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,
+      -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,    91,
       92,    93,    61,    62,    63,    64,    65,    66,    -1,    68,
       -1,    -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    87,    88,
-      89,    90,    91,    92,    93,    55,    95,    -1,    -1,    -1,
-      -1,    61,    62,    63,    64,    65,    66,    -1,    68,    -1,
-      -1,    71,    72,    73,    61,    62,    63,    64,    65,    66,
-      -1,    68,    -1,    -1,    71,    72,    73,    87,    88,    89,
-      90,    91,    92,    93,    -1,    -1,    -1,    -1,    -1,    -1,
-      87,    88,    89,    90,    91,    92,    93,    -1,    -1,    -1,
-      97,    61,    62,    63,    64,    65,    66,    -1,    68,    -1,
-      -1,    71,    72,    73,    -1,    -1,    -1,    -1,    -1,    79,
-      80,    -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,
-      90,    91,    92,    93,    61,    62,    63,    64,    65,    66,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    53,    87,    88,
+      89,    90,    91,    92,    93,    61,    62,    63,    64,    65,
+      66,    -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    87,    88,    89,    90,    91,    92,    93,    55,    95,
+      -1,    -1,    -1,    -1,    61,    62,    63,    64,    65,    66,
       -1,    68,    -1,    -1,    71,    72,    73,    61,    62,    63,
-      64,    -1,    -1,    -1,    68,    -1,    -1,    71,    72,    73,
+      64,    65,    66,    -1,    68,    -1,    -1,    71,    72,    73,
       87,    88,    89,    90,    91,    92,    93,    -1,    -1,    -1,
-      -1,    -1,    -1,    87,    88,    89,    90,    91,    92,    93
+      -1,    -1,    -1,    87,    88,    89,    90,    91,    92,    93,
+      -1,    -1,    -1,    97,    61,    62,    63,    64,    65,    66,
+      -1,    68,    -1,    -1,    71,    72,    73,    -1,    -1,    -1,
+      -1,    -1,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
+      87,    88,    89,    90,    91,    92,    93,    61,    62,    63,
+      64,    65,    66,    -1,    68,    -1,    -1,    71,    72,    73,
+      61,    62,    63,    64,    -1,    -1,    -1,    68,    -1,    -1,
+      71,    72,    73,    87,    88,    89,    90,    91,    92,    93,
+      -1,    -1,    -1,    -1,    -1,    -1,    87,    88,    89,    90,
+      91,    92,    93
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,     1,    14,    17,    18,    21,    22,    23,    24,    25,
-      26,    27,    29,    31,    32,    33,    37,    38,    39,    40,
-      41,    44,    46,    49,    50,    51,    54,    57,    58,    59,
-      60,    67,    74,    75,    76,    77,    78,    81,    82,    83,
-      90,    91,    96,    99,   103,   104,   105,   106,   107,   119,
-     125,   128,   129,   131,   133,   140,   142,   144,   147,   152,
-     155,    95,    26,   128,    26,    49,    96,   129,   153,    96,
-     153,    96,   153,    47,    96,   129,   154,   143,   146,    50,
-     134,    45,    46,    47,    48,   129,   141,   145,    50,    20,
-     129,    55,    56,    17,    18,    19,    26,    33,    26,    26,
-     129,   129,   141,   136,   129,   129,   129,   129,   129,   129,
-     129,   135,   148,   129,   129,   129,    26,    27,    29,   101,
-     129,   156,   157,   158,   159,     0,    95,   129,    61,    62,
-      63,    64,    65,    66,    68,    71,    72,    73,    87,    88,
-      89,    90,    91,    92,    93,   126,    96,   129,   129,   153,
-      98,   153,   153,   128,    26,   153,    98,   153,   126,    26,
-     137,   129,    45,   141,    26,    26,    43,    69,    70,    26,
-     126,    53,    63,   128,   128,    53,    63,    53,    63,    52,
-      55,   141,    26,   139,    47,    53,    47,    53,    47,    53,
-      47,    53,    79,    80,    53,    95,    26,   138,    26,    97,
-     101,   101,   101,   100,    98,    98,   103,   122,   129,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,    26,   149,    97,   129,    97,
-      97,    97,    98,    97,   129,   149,    98,   129,   126,   128,
-      24,    26,   131,   132,    26,   132,    26,   132,    42,    63,
-     129,   129,   129,    53,    63,    47,   129,   129,   129,   129,
-     129,   129,    98,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   118,   118,    98,   129,   129,   129,   129,
-      26,    27,    29,   159,    52,    95,    98,   130,    95,    26,
-     149,    43,   128,   129,   129,   122,   129,   129,    26,    26,
-      47,    47,    47,    47,   106,   127,    26,   127,   151,    26,
-     154,   151,    95,   129,   114,   108,   111,   117,   128,   129,
-     129,   129,   129,   126,    95,   107,   126,   123,   127,    97,
-     127,   151,   126,   124,   124,   127,    53,    63,    86,   120,
-      30,   127,   115,   109,   112,   123,   129,   129,    35,    36,
-     121,   126,    26,   150,   122,    53,    34,    85,   127,   129,
-      84,    98,   116,   129,    53,   126,   122,    26,   117,   110,
-     129,    84,    52,   127,   122,   113,   127,    85,   117,   122,
-     123,   127,   117,    85,   127,    85
+       0,    22,    23,    24,    26,    31,    32,    37,    38,    39,
+      40,    41,    44,    46,    49,    50,    51,    54,    57,    58,
+      59,    60,    81,    82,    83,   103,   104,   105,   106,   107,
+     119,   125,   129,   134,   141,   143,   145,   148,   153,     1,
+      14,    17,    18,    21,    25,    26,    27,    29,    33,    67,
+      74,    75,    76,    77,    78,    90,    91,    96,    99,   128,
+     129,   131,   132,   154,   156,    96,   154,    96,   154,    96,
+     131,   155,   144,   147,    50,   135,    45,    46,    47,    48,
+      96,   131,   142,   146,    50,    20,   131,    55,    56,    17,
+      18,    19,    26,    33,    26,    26,   131,   131,   142,   137,
+     131,   136,   149,     0,    95,   131,   126,    95,    26,   128,
+      47,    96,   131,   131,   131,   131,   131,   131,   131,   131,
+     131,   154,    26,    27,    29,   101,   131,   157,   158,   159,
+     160,    61,    62,    63,    64,    65,    66,    68,    71,    72,
+      73,    87,    88,    89,    90,    91,    92,    93,    98,   154,
+     154,    26,   154,    98,   154,   126,    26,   138,   131,    45,
+     131,   142,    26,    26,    43,    69,    70,    26,   126,    53,
+      63,   128,   128,    53,    63,    53,    63,    52,    55,   142,
+      26,   140,    53,    95,    26,   139,    26,   103,   122,    26,
+     150,   128,    47,    53,    47,    53,    47,    53,    47,    53,
+      79,    80,    97,    97,   101,   101,   101,   100,    98,    98,
+     131,   131,   131,   131,   131,   131,   131,   131,   131,   131,
+     131,   131,   131,   131,   131,   131,   131,   131,    97,    97,
+      97,    98,    97,   131,   150,    98,   131,   126,   128,    24,
+      26,   132,   133,    26,   133,    26,   133,    42,    63,   131,
+     131,   131,    53,    63,    47,   131,   131,   131,   131,   131,
+     131,    98,   118,   118,    98,    52,    95,    98,   131,   131,
+     131,   131,   131,   131,   131,   131,   131,   131,   131,   131,
+     131,   131,    26,    27,    29,   160,   130,    95,    26,   150,
+      43,   128,   131,   131,   122,   131,   131,    26,    26,   106,
+     127,    26,   127,   152,    26,    47,    47,    47,    47,   155,
+     152,    95,   131,   114,   108,   111,   117,   128,   126,    95,
+     107,   126,   123,   127,   131,   131,   131,   131,    97,   127,
+     152,   126,   124,   124,   127,    53,    63,    86,   120,    30,
+     127,   115,   109,   112,   123,   131,   131,    35,    36,   121,
+     126,    26,   151,   122,    53,    34,    85,   127,   131,    84,
+      98,   116,   131,    53,   126,   122,    26,   117,   110,   131,
+      84,    52,   127,   122,   113,   127,    85,   117,   122,   123,
+     127,   117,    85,   127,    85
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1683,23 +1553,23 @@ static const yytype_uint8 yyr1[] =
 {
        0,   102,   103,   103,   104,   104,   104,   105,   105,   105,
      105,   105,   105,   105,   105,   105,   105,   105,   105,   105,
-     105,   105,   105,   105,   106,   106,   106,   107,   107,   107,
-     108,   109,   110,   107,   111,   112,   113,   107,   114,   115,
-     116,   107,   107,   107,   107,   107,   117,   118,   119,   119,
-     120,   120,   121,   122,   123,   124,   125,   126,   127,   127,
-     127,   128,   128,   128,   128,   128,   128,   128,   128,   128,
-     128,   129,   129,   129,   129,   129,   129,   129,   130,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,   129,   131,   131,   131,   131,
-     131,   131,   131,   131,   132,   132,   133,   133,   133,   133,
-     133,   134,   133,   135,   133,   136,   133,   133,   133,   133,
-     133,   137,   137,   138,   138,   139,   139,   140,   140,   140,
-     140,   140,   140,   141,   141,   142,   142,   142,   143,   142,
-     145,   144,   144,   146,   144,   144,   144,   148,   147,   149,
-     149,   149,   150,   150,   150,   151,   152,   153,   153,   153,
-     154,   154,   155,   156,   156,   156,   156,   157,   157,   158,
-     158,   159,   159,   159
+     105,   105,   105,   105,   106,   106,   106,   106,   107,   107,
+     107,   108,   109,   110,   107,   111,   112,   113,   107,   114,
+     115,   116,   107,   107,   107,   107,   107,   117,   118,   119,
+     119,   120,   120,   121,   122,   123,   124,   125,   126,   127,
+     127,   127,   128,   128,   128,   128,   128,   128,   128,   128,
+     128,   128,   129,   129,   129,   129,   129,   130,   129,   129,
+     131,   131,   131,   131,   131,   131,   131,   131,   131,   131,
+     131,   131,   131,   131,   131,   131,   131,   131,   131,   131,
+     131,   131,   131,   131,   131,   131,   131,   132,   132,   132,
+     132,   132,   132,   132,   132,   133,   133,   134,   134,   134,
+     134,   134,   135,   134,   136,   134,   137,   134,   134,   134,
+     134,   134,   134,   138,   138,   139,   139,   140,   140,   141,
+     141,   141,   141,   141,   141,   142,   142,   143,   143,   143,
+     144,   143,   146,   145,   145,   147,   145,   145,   145,   149,
+     148,   150,   150,   150,   151,   151,   151,   152,   153,   154,
+     154,   154,   155,   155,   156,   157,   157,   157,   157,   158,
+     158,   159,   159,   160,   160,   160
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1707,23 +1577,23 @@ static const yytype_int8 yyr2[] =
 {
        0,     2,     1,     3,     0,     1,     1,     4,     4,     6,
        4,     4,     4,     4,     4,     4,     4,     4,     5,     5,
-       8,     8,     4,     4,     1,     1,     1,     1,     1,     9,
-       0,     0,     0,    15,     0,     0,     0,    16,     0,     0,
-       0,    13,     2,     4,     7,     6,     0,     0,     9,    11,
-       0,     2,     6,     0,     0,     0,     1,     0,     0,     2,
-       2,     1,     1,     1,     1,     1,     1,     2,     3,     1,
-       2,     1,     1,     4,     2,     4,     2,     4,     0,     7,
-       4,     3,     1,     1,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     2,     3,     3,
-       3,     3,     2,     2,     4,     4,     4,     6,     4,     6,
-       4,     6,     4,     6,     2,     1,     2,     1,     1,     2,
-       1,     0,     3,     0,     3,     0,     3,     4,     2,     4,
-       2,     1,     3,     1,     3,     1,     3,     1,     2,     2,
-       2,     3,     2,     3,     2,     2,     3,     2,     0,     3,
-       0,     8,     2,     0,     7,     8,     6,     0,     3,     0,
-       1,     3,     0,     1,     3,     0,     2,     0,     1,     3,
-       1,     3,     3,     0,     1,     1,     1,     1,     3,     1,
-       3,     3,     3,     3
+       8,     8,     4,     4,     1,     1,     1,     1,     1,     1,
+       9,     0,     0,     0,    15,     0,     0,     0,    16,     0,
+       0,     0,    13,     2,     4,     7,     6,     0,     0,     9,
+      11,     0,     2,     6,     0,     0,     0,     1,     0,     0,
+       2,     2,     1,     1,     1,     1,     1,     1,     2,     3,
+       1,     2,     4,     2,     4,     2,     4,     0,     7,     4,
+       1,     1,     1,     3,     1,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     2,     3,
+       3,     3,     3,     2,     2,     4,     4,     4,     6,     4,
+       6,     4,     6,     4,     6,     2,     1,     2,     1,     1,
+       2,     1,     0,     3,     0,     3,     0,     3,     4,     2,
+       4,     2,     1,     1,     3,     1,     3,     1,     3,     1,
+       2,     2,     2,     3,     2,     3,     2,     2,     3,     2,
+       0,     3,     0,     8,     2,     0,     7,     8,     6,     0,
+       3,     0,     1,     3,     0,     1,     3,     0,     2,     0,
+       1,     3,     1,     3,     3,     0,     1,     1,     1,     1,
+       3,     1,     3,     3,     3,     3
 };
 
 
@@ -1997,73 +1867,73 @@ yydestruct (const char *yymsg,
     case 22: /* BLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 1871 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 23: /* FBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 1877 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 24: /* RBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2013 "engines/director/lingo/lingo-gr.cpp"
+#line 1883 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 25: /* THEFBLTIN  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2019 "engines/director/lingo/lingo-gr.cpp"
+#line 1889 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 26: /* ID  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2025 "engines/director/lingo/lingo-gr.cpp"
+#line 1895 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 27: /* STRING  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2031 "engines/director/lingo/lingo-gr.cpp"
+#line 1901 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 28: /* HANDLER  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2037 "engines/director/lingo/lingo-gr.cpp"
+#line 1907 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 29: /* SYMBOL  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2043 "engines/director/lingo/lingo-gr.cpp"
+#line 1913 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 30: /* ENDCLAUSE  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2049 "engines/director/lingo/lingo-gr.cpp"
+#line 1919 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 31: /* tPLAYACCEL  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2055 "engines/director/lingo/lingo-gr.cpp"
+#line 1925 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 32: /* tMETHOD  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2061 "engines/director/lingo/lingo-gr.cpp"
+#line 1931 "engines/director/lingo/lingo-gr.cpp"
         break;
 
-    case 147: /* on  */
+    case 148: /* on  */
 #line 210 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2067 "engines/director/lingo/lingo-gr.cpp"
+#line 1937 "engines/director/lingo/lingo-gr.cpp"
         break;
 
       default:
@@ -2350,7 +2220,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2354 "engines/director/lingo/lingo-gr.cpp"
+#line 2224 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 8:
@@ -2358,7 +2228,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2362 "engines/director/lingo/lingo-gr.cpp"
+#line 2232 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 9:
@@ -2374,7 +2244,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-4].e)[1]);
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2378 "engines/director/lingo/lingo-gr.cpp"
+#line 2248 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10:
@@ -2386,7 +2256,7 @@ yyreduce:
 		g_lingo->code1(LC::c_after);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2390 "engines/director/lingo/lingo-gr.cpp"
+#line 2260 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11:
@@ -2394,7 +2264,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_after);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2398 "engines/director/lingo/lingo-gr.cpp"
+#line 2268 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12:
@@ -2406,7 +2276,7 @@ yyreduce:
 		g_lingo->code1(LC::c_before);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2410 "engines/director/lingo/lingo-gr.cpp"
+#line 2280 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13:
@@ -2414,7 +2284,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_before);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2418 "engines/director/lingo/lingo-gr.cpp"
+#line 2288 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14:
@@ -2426,7 +2296,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2430 "engines/director/lingo/lingo-gr.cpp"
+#line 2300 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 15:
@@ -2438,7 +2308,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2442 "engines/director/lingo/lingo-gr.cpp"
+#line 2312 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16:
@@ -2450,7 +2320,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2454 "engines/director/lingo/lingo-gr.cpp"
+#line 2324 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17:
@@ -2462,7 +2332,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2466 "engines/director/lingo/lingo-gr.cpp"
+#line 2336 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18:
@@ -2473,7 +2343,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2477 "engines/director/lingo/lingo-gr.cpp"
+#line 2347 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 19:
@@ -2484,7 +2354,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2488 "engines/director/lingo/lingo-gr.cpp"
+#line 2358 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 20:
@@ -2500,7 +2370,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-6].e)[0]);
 		g_lingo->codeInt((yyvsp[-6].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2504 "engines/director/lingo/lingo-gr.cpp"
+#line 2374 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 21:
@@ -2516,7 +2386,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-6].e)[0]);
 		g_lingo->codeInt((yyvsp[-6].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2520 "engines/director/lingo/lingo-gr.cpp"
+#line 2390 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 22:
@@ -2528,7 +2398,7 @@ yyreduce:
 		delete (yyvsp[-2].objectprop).obj;
 		delete (yyvsp[-2].objectprop).prop;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2532 "engines/director/lingo/lingo-gr.cpp"
+#line 2402 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 23:
@@ -2540,11 +2410,11 @@ yyreduce:
 		delete (yyvsp[-2].objectprop).obj;
 		delete (yyvsp[-2].objectprop).prop;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2544 "engines/director/lingo/lingo-gr.cpp"
+#line 2414 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 29:
-#line 351 "engines/director/lingo/lingo-gr.y"
+  case 30:
+#line 352 "engines/director/lingo/lingo-gr.y"
                                                                                                 {
 		inst start = 0, end = 0;
 		WRITE_UINT32(&start, (yyvsp[-6].code) - (yyvsp[-1].code) + 1);
@@ -2552,32 +2422,32 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end;		/* end, if cond fails */
 		(*g_lingo->_currentAssembly)[(yyvsp[-1].code)] = start;	/* looping back */
 		endRepeat((yyvsp[-1].code) + 1, (yyvsp[-6].code));	}
-#line 2556 "engines/director/lingo/lingo-gr.cpp"
+#line 2426 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 30:
-#line 364 "engines/director/lingo/lingo-gr.y"
+  case 31:
+#line 365 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_varpush);
 				  g_lingo->codeString((yyvsp[-2].s)->c_str());
 				  mVar((yyvsp[-2].s), globalCheck()); }
-#line 2564 "engines/director/lingo/lingo-gr.cpp"
+#line 2434 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 31:
-#line 368 "engines/director/lingo/lingo-gr.y"
+  case 32:
+#line 369 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_eval);
 				  g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2571 "engines/director/lingo/lingo-gr.cpp"
+#line 2441 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 32:
-#line 371 "engines/director/lingo/lingo-gr.y"
+  case 33:
+#line 372 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_le); }
-#line 2577 "engines/director/lingo/lingo-gr.cpp"
+#line 2447 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 33:
-#line 371 "engines/director/lingo/lingo-gr.y"
+  case 34:
+#line 372 "engines/director/lingo/lingo-gr.y"
                                                                                                       {
 
 		int nextPos = g_lingo->_currentAssembly->size();
@@ -2598,32 +2468,32 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[pos] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end;	/* end, if cond fails */
 		endRepeat(pos + 1, nextPos); }
-#line 2602 "engines/director/lingo/lingo-gr.cpp"
+#line 2472 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 34:
-#line 398 "engines/director/lingo/lingo-gr.y"
+  case 35:
+#line 399 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_varpush);
 				  g_lingo->codeString((yyvsp[-2].s)->c_str());
 				  mVar((yyvsp[-2].s), globalCheck()); }
-#line 2610 "engines/director/lingo/lingo-gr.cpp"
+#line 2480 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 35:
-#line 402 "engines/director/lingo/lingo-gr.y"
+  case 36:
+#line 403 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_eval);
 				  g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2617 "engines/director/lingo/lingo-gr.cpp"
+#line 2487 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 36:
-#line 405 "engines/director/lingo/lingo-gr.y"
+  case 37:
+#line 406 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_ge); }
-#line 2623 "engines/director/lingo/lingo-gr.cpp"
+#line 2493 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 37:
-#line 406 "engines/director/lingo/lingo-gr.y"
+  case 38:
+#line 407 "engines/director/lingo/lingo-gr.y"
                                                                 {
 
 		int nextPos = g_lingo->_currentAssembly->size();
@@ -2644,32 +2514,32 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[pos] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end;	/* end, if cond fails */
 		endRepeat(pos + 1, nextPos); }
-#line 2648 "engines/director/lingo/lingo-gr.cpp"
+#line 2518 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 38:
-#line 432 "engines/director/lingo/lingo-gr.y"
+  case 39:
+#line 433 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_stackpeek);
 				  g_lingo->codeInt(0);
 				  Common::String count("count");
 				  g_lingo->codeFunc(&count, 1);
 				  g_lingo->code1(LC::c_intpush);	// start counter
 				  g_lingo->codeInt(1); }
-#line 2659 "engines/director/lingo/lingo-gr.cpp"
+#line 2529 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 39:
-#line 439 "engines/director/lingo/lingo-gr.y"
+  case 40:
+#line 440 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_stackpeek);	// get counter
 				  g_lingo->codeInt(0);
 				  g_lingo->code1(LC::c_stackpeek);	// get array size
 				  g_lingo->codeInt(2);
 				  g_lingo->code1(LC::c_le); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2539 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 40:
-#line 445 "engines/director/lingo/lingo-gr.y"
+  case 41:
+#line 446 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_stackpeek);	// get list
 				  g_lingo->codeInt(2);
 				  g_lingo->code1(LC::c_stackpeek);	// get counter
@@ -2680,11 +2550,11 @@ yyreduce:
 				  g_lingo->codeString((yyvsp[-6].s)->c_str());
 				  mVar((yyvsp[-6].s), globalCheck());
 				  g_lingo->code1(LC::c_assign); }
-#line 2684 "engines/director/lingo/lingo-gr.cpp"
+#line 2554 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 41:
-#line 455 "engines/director/lingo/lingo-gr.y"
+  case 42:
+#line 456 "engines/director/lingo/lingo-gr.y"
                                                         {
 
 		int nextPos = g_lingo->_currentAssembly->size();
@@ -2704,11 +2574,11 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[jump + 1] = loop;		/* final count value */
 		(*g_lingo->_currentAssembly)[(yyvsp[-4].code)] = end;		/* end, if cond fails */
 		endRepeat(end2, nextPos); }
-#line 2708 "engines/director/lingo/lingo-gr.cpp"
+#line 2578 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 42:
-#line 475 "engines/director/lingo/lingo-gr.y"
+  case 43:
+#line 476 "engines/director/lingo/lingo-gr.y"
                         {
 		if (g_lingo->_repeatStack.size()) {
 			g_lingo->code2(LC::c_jump, 0);
@@ -2717,43 +2587,43 @@ yyreduce:
 		} else {
 			warning("# LINGO: next repeat not inside repeat block");
 		} }
-#line 2721 "engines/director/lingo/lingo-gr.cpp"
+#line 2591 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 43:
-#line 483 "engines/director/lingo/lingo-gr.y"
+  case 44:
+#line 484 "engines/director/lingo/lingo-gr.y"
                               {
 		g_lingo->code1(LC::c_whencode);
 		g_lingo->codeString((yyvsp[-2].s)->c_str()); }
-#line 2729 "engines/director/lingo/lingo-gr.cpp"
+#line 2599 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 44:
-#line 486 "engines/director/lingo/lingo-gr.y"
+  case 45:
+#line 487 "engines/director/lingo/lingo-gr.y"
                                                           { g_lingo->code1(LC::c_telldone); }
-#line 2735 "engines/director/lingo/lingo-gr.cpp"
+#line 2605 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 45:
-#line 487 "engines/director/lingo/lingo-gr.y"
+  case 46:
+#line 488 "engines/director/lingo/lingo-gr.y"
                                                     { g_lingo->code1(LC::c_telldone); }
-#line 2741 "engines/director/lingo/lingo-gr.cpp"
+#line 2611 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 46:
-#line 489 "engines/director/lingo/lingo-gr.y"
+  case 47:
+#line 490 "engines/director/lingo/lingo-gr.y"
                                 { startRepeat(); }
-#line 2747 "engines/director/lingo/lingo-gr.cpp"
+#line 2617 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 47:
-#line 491 "engines/director/lingo/lingo-gr.y"
+  case 48:
+#line 492 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_tell); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2623 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 48:
-#line 493 "engines/director/lingo/lingo-gr.y"
+  case 49:
+#line 494 "engines/director/lingo/lingo-gr.y"
                                                                                          {
 		inst else1 = 0, end3 = 0;
 		WRITE_UINT32(&else1, (yyvsp[-3].code) + 1 - (yyvsp[-6].code) + 1);
@@ -2761,11 +2631,11 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-6].code)] = else1;		/* elsepart */
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = end3;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-3].code), (yyvsp[-1].code)); }
-#line 2765 "engines/director/lingo/lingo-gr.cpp"
+#line 2635 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 49:
-#line 500 "engines/director/lingo/lingo-gr.y"
+  case 50:
+#line 501 "engines/director/lingo/lingo-gr.y"
                                                                                                           {
 		inst else1 = 0, end = 0;
 		WRITE_UINT32(&else1, (yyvsp[-5].code) + 1 - (yyvsp[-8].code) + 1);
@@ -2773,107 +2643,107 @@ yyreduce:
 		(*g_lingo->_currentAssembly)[(yyvsp[-8].code)] = else1;		/* elsepart */
 		(*g_lingo->_currentAssembly)[(yyvsp[-5].code)] = end;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-5].code), (yyvsp[-1].code)); }
-#line 2777 "engines/director/lingo/lingo-gr.cpp"
+#line 2647 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 52:
-#line 511 "engines/director/lingo/lingo-gr.y"
+  case 53:
+#line 512 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		inst else1 = 0;
 		WRITE_UINT32(&else1, (yyvsp[0].code) + 1 - (yyvsp[-3].code) + 1);
 		(*g_lingo->_currentAssembly)[(yyvsp[-3].code)] = else1;	/* end, if cond fails */
 		g_lingo->codeLabel((yyvsp[0].code)); }
-#line 2787 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 53:
-#line 517 "engines/director/lingo/lingo-gr.y"
+  case 54:
+#line 518 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code2(LC::c_jumpifz, 0);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2795 "engines/director/lingo/lingo-gr.cpp"
+#line 2665 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 54:
-#line 521 "engines/director/lingo/lingo-gr.y"
+  case 55:
+#line 522 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code2(LC::c_jump, 0);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2803 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 55:
-#line 525 "engines/director/lingo/lingo-gr.y"
+  case 56:
+#line 526 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = g_lingo->_currentAssembly->size() - 1; }
-#line 2811 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 56:
-#line 529 "engines/director/lingo/lingo-gr.y"
+  case 57:
+#line 530 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeLabel(0); }
-#line 2818 "engines/director/lingo/lingo-gr.cpp"
+#line 2688 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 57:
-#line 532 "engines/director/lingo/lingo-gr.y"
+  case 58:
+#line 533 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2824 "engines/director/lingo/lingo-gr.cpp"
+#line 2694 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 58:
-#line 534 "engines/director/lingo/lingo-gr.y"
+  case 59:
+#line 535 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->_currentAssembly->size(); }
-#line 2830 "engines/director/lingo/lingo-gr.cpp"
+#line 2700 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 61:
-#line 538 "engines/director/lingo/lingo-gr.y"
+  case 62:
+#line 539 "engines/director/lingo/lingo-gr.y"
                         {
 		(yyval.code) = g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt((yyvsp[0].i)); }
-#line 2838 "engines/director/lingo/lingo-gr.cpp"
+#line 2708 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 62:
-#line 541 "engines/director/lingo/lingo-gr.y"
+  case 63:
+#line 542 "engines/director/lingo/lingo-gr.y"
                         {
 		(yyval.code) = g_lingo->code1(LC::c_floatpush);
 		g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2846 "engines/director/lingo/lingo-gr.cpp"
+#line 2716 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 63:
-#line 544 "engines/director/lingo/lingo-gr.y"
+  case 64:
+#line 545 "engines/director/lingo/lingo-gr.y"
                         {											// D3
 		(yyval.code) = g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2855 "engines/director/lingo/lingo-gr.cpp"
+#line 2725 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 64:
-#line 548 "engines/director/lingo/lingo-gr.y"
+  case 65:
+#line 549 "engines/director/lingo/lingo-gr.y"
                                 {
 		(yyval.code) = g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2864 "engines/director/lingo/lingo-gr.cpp"
+#line 2734 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 65:
-#line 552 "engines/director/lingo/lingo-gr.y"
+  case 66:
+#line 553 "engines/director/lingo/lingo-gr.y"
                         {
 		(yyval.code) = g_lingo->code1(LC::c_eval);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2873 "engines/director/lingo/lingo-gr.cpp"
+#line 2743 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 66:
-#line 556 "engines/director/lingo/lingo-gr.y"
+  case 67:
+#line 557 "engines/director/lingo/lingo-gr.y"
                         {
 		(yyval.code) = g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(0); // Put dummy id
@@ -2882,28 +2752,28 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[0].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[0].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2886 "engines/director/lingo/lingo-gr.cpp"
+#line 2756 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 67:
-#line 564 "engines/director/lingo/lingo-gr.y"
+  case 68:
+#line 565 "engines/director/lingo/lingo-gr.y"
                                      {
 		(yyval.code) = g_lingo->code1(LC::c_theentitypush);
 		inst e = 0, f = 0;
 		WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2897 "engines/director/lingo/lingo-gr.cpp"
+#line 2767 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 68:
-#line 570 "engines/director/lingo/lingo-gr.y"
+  case 69:
+#line 571 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = (yyvsp[-1].code); }
-#line 2903 "engines/director/lingo/lingo-gr.cpp"
+#line 2773 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 70:
-#line 572 "engines/director/lingo/lingo-gr.y"
+  case 71:
+#line 573 "engines/director/lingo/lingo-gr.y"
                                 {
 		// Director parser till D3 was forgiving for any hanging parentheses
 		if (g_lingo->_ignoreError) {
@@ -2914,296 +2784,296 @@ yyreduce:
 			yyerrok;
 		}
 	}
-#line 2918 "engines/director/lingo/lingo-gr.cpp"
+#line 2788 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 71:
-#line 583 "engines/director/lingo/lingo-gr.y"
-                 { (yyval.code) = (yyvsp[0].code); }
-#line 2924 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 73:
-#line 585 "engines/director/lingo/lingo-gr.y"
+  case 72:
+#line 584 "engines/director/lingo/lingo-gr.y"
                                  {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2932 "engines/director/lingo/lingo-gr.cpp"
+#line 2796 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 74:
-#line 588 "engines/director/lingo/lingo-gr.y"
+  case 73:
+#line 587 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2940 "engines/director/lingo/lingo-gr.cpp"
+#line 2804 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 75:
-#line 591 "engines/director/lingo/lingo-gr.y"
+  case 74:
+#line 590 "engines/director/lingo/lingo-gr.y"
                                  {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2948 "engines/director/lingo/lingo-gr.cpp"
+#line 2812 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 76:
-#line 594 "engines/director/lingo/lingo-gr.y"
+  case 75:
+#line 593 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2956 "engines/director/lingo/lingo-gr.cpp"
+#line 2820 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 77:
-#line 597 "engines/director/lingo/lingo-gr.y"
+  case 76:
+#line 596 "engines/director/lingo/lingo-gr.y"
                                       {
 			g_lingo->code1(LC::c_lazyeval);
 			g_lingo->codeString((yyvsp[-1].s)->c_str());
 			g_lingo->codeFunc((yyvsp[-3].s), 1);
 			delete (yyvsp[-3].s);
 			delete (yyvsp[-1].s); }
-#line 2967 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 78:
-#line 603 "engines/director/lingo/lingo-gr.y"
+  case 77:
+#line 602 "engines/director/lingo/lingo-gr.y"
                                       { g_lingo->code1(LC::c_lazyeval); g_lingo->codeString((yyvsp[-1].s)->c_str()); }
-#line 2973 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 79:
-#line 604 "engines/director/lingo/lingo-gr.y"
+  case 78:
+#line 603 "engines/director/lingo/lingo-gr.y"
                                                     {
 			g_lingo->codeFunc((yyvsp[-6].s), (yyvsp[-1].narg) + 1);
 			delete (yyvsp[-6].s);
 			delete (yyvsp[-4].s); }
-#line 2982 "engines/director/lingo/lingo-gr.cpp"
+#line 2846 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 80:
-#line 608 "engines/director/lingo/lingo-gr.y"
+  case 79:
+#line 607 "engines/director/lingo/lingo-gr.y"
                                 {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2990 "engines/director/lingo/lingo-gr.cpp"
+#line 2854 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 81:
+  case 80:
 #line 611 "engines/director/lingo/lingo-gr.y"
+                 { (yyval.code) = (yyvsp[0].code); }
+#line 2860 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 83:
+#line 614 "engines/director/lingo/lingo-gr.y"
                                         {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
 		delete (yyvsp[-2].s); }
-#line 2998 "engines/director/lingo/lingo-gr.cpp"
+#line 2868 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 82:
-#line 614 "engines/director/lingo/lingo-gr.y"
+  case 84:
+#line 617 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_objectproppush);
 		g_lingo->codeString((yyvsp[0].objectprop).obj->c_str());
 		g_lingo->codeString((yyvsp[0].objectprop).prop->c_str());
 		delete (yyvsp[0].objectprop).obj;
 		delete (yyvsp[0].objectprop).prop; }
-#line 3009 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 84:
-#line 621 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_add); }
-#line 3015 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 85:
-#line 622 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_sub); }
-#line 3021 "engines/director/lingo/lingo-gr.cpp"
+#line 623 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_add); }
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 86:
-#line 623 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_mul); }
-#line 3027 "engines/director/lingo/lingo-gr.cpp"
+#line 624 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_sub); }
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 87:
-#line 624 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_div); }
-#line 3033 "engines/director/lingo/lingo-gr.cpp"
+#line 625 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_mul); }
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 88:
-#line 625 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_mod); }
-#line 3039 "engines/director/lingo/lingo-gr.cpp"
+#line 626 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_div); }
+#line 2903 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 89:
-#line 626 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_gt); }
-#line 3045 "engines/director/lingo/lingo-gr.cpp"
+#line 627 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_mod); }
+#line 2909 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 90:
-#line 627 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_lt); }
-#line 3051 "engines/director/lingo/lingo-gr.cpp"
+#line 628 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_gt); }
+#line 2915 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 91:
-#line 628 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_eq); }
-#line 3057 "engines/director/lingo/lingo-gr.cpp"
+#line 629 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_lt); }
+#line 2921 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 92:
-#line 629 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_neq); }
-#line 3063 "engines/director/lingo/lingo-gr.cpp"
+#line 630 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_eq); }
+#line 2927 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 93:
-#line 630 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_ge); }
-#line 3069 "engines/director/lingo/lingo-gr.cpp"
+#line 631 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_neq); }
+#line 2933 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 94:
-#line 631 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_le); }
-#line 3075 "engines/director/lingo/lingo-gr.cpp"
+#line 632 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_ge); }
+#line 2939 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 95:
-#line 632 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_and); }
-#line 3081 "engines/director/lingo/lingo-gr.cpp"
+#line 633 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_le); }
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 96:
-#line 633 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_or); }
-#line 3087 "engines/director/lingo/lingo-gr.cpp"
+#line 634 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_and); }
+#line 2951 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 97:
-#line 634 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_not); }
-#line 3093 "engines/director/lingo/lingo-gr.cpp"
+#line 635 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_or); }
+#line 2957 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 98:
-#line 635 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_ampersand); }
-#line 3099 "engines/director/lingo/lingo-gr.cpp"
+#line 636 "engines/director/lingo/lingo-gr.y"
+                                        { g_lingo->code1(LC::c_not); }
+#line 2963 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 99:
-#line 636 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_concat); }
-#line 3105 "engines/director/lingo/lingo-gr.cpp"
+#line 637 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_ampersand); }
+#line 2969 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 100:
-#line 637 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_contains); }
-#line 3111 "engines/director/lingo/lingo-gr.cpp"
+#line 638 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_concat); }
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 101:
-#line 638 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_starts); }
-#line 3117 "engines/director/lingo/lingo-gr.cpp"
+#line 639 "engines/director/lingo/lingo-gr.y"
+                                        { g_lingo->code1(LC::c_contains); }
+#line 2981 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 102:
-#line 639 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.code) = (yyvsp[0].code); }
-#line 3123 "engines/director/lingo/lingo-gr.cpp"
+#line 640 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_starts); }
+#line 2987 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 103:
-#line 640 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 3129 "engines/director/lingo/lingo-gr.cpp"
+#line 641 "engines/director/lingo/lingo-gr.y"
+                                        { (yyval.code) = (yyvsp[0].code); }
+#line 2993 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 104:
-#line 641 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_intersects); }
-#line 3135 "engines/director/lingo/lingo-gr.cpp"
+#line 642 "engines/director/lingo/lingo-gr.y"
+                                        { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
+#line 2999 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 105:
-#line 642 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_within); }
-#line 3141 "engines/director/lingo/lingo-gr.cpp"
+#line 643 "engines/director/lingo/lingo-gr.y"
+                                        { g_lingo->code1(LC::c_intersects); }
+#line 3005 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 106:
 #line 644 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_charOf); }
-#line 3147 "engines/director/lingo/lingo-gr.cpp"
+                                                { g_lingo->code1(LC::c_within); }
+#line 3011 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 107:
-#line 645 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_charToOf); }
-#line 3153 "engines/director/lingo/lingo-gr.cpp"
+#line 646 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_charOf); }
+#line 3017 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 108:
-#line 646 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_itemOf); }
-#line 3159 "engines/director/lingo/lingo-gr.cpp"
+#line 647 "engines/director/lingo/lingo-gr.y"
+                                        { g_lingo->code1(LC::c_charToOf); }
+#line 3023 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 109:
-#line 647 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_itemToOf); }
-#line 3165 "engines/director/lingo/lingo-gr.cpp"
+#line 648 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_itemOf); }
+#line 3029 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 110:
-#line 648 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_lineOf); }
-#line 3171 "engines/director/lingo/lingo-gr.cpp"
+#line 649 "engines/director/lingo/lingo-gr.y"
+                                        { g_lingo->code1(LC::c_itemToOf); }
+#line 3035 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 111:
-#line 649 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_lineToOf); }
-#line 3177 "engines/director/lingo/lingo-gr.cpp"
+#line 650 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_lineOf); }
+#line 3041 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 112:
-#line 650 "engines/director/lingo/lingo-gr.y"
-                                                { g_lingo->code1(LC::c_wordOf); }
-#line 3183 "engines/director/lingo/lingo-gr.cpp"
+#line 651 "engines/director/lingo/lingo-gr.y"
+                                        { g_lingo->code1(LC::c_lineToOf); }
+#line 3047 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 113:
-#line 651 "engines/director/lingo/lingo-gr.y"
-                                        { g_lingo->code1(LC::c_wordToOf); }
-#line 3189 "engines/director/lingo/lingo-gr.cpp"
+#line 652 "engines/director/lingo/lingo-gr.y"
+                                                { g_lingo->code1(LC::c_wordOf); }
+#line 3053 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 114:
 #line 653 "engines/director/lingo/lingo-gr.y"
+                                        { g_lingo->code1(LC::c_wordToOf); }
+#line 3059 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 115:
+#line 655 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->codeFunc((yyvsp[-1].s), 1);
 		delete (yyvsp[-1].s); }
-#line 3197 "engines/director/lingo/lingo-gr.cpp"
+#line 3067 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 116:
-#line 658 "engines/director/lingo/lingo-gr.y"
+  case 117:
+#line 660 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_printtop); }
-#line 3203 "engines/director/lingo/lingo-gr.cpp"
+#line 3073 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 119:
-#line 661 "engines/director/lingo/lingo-gr.y"
+  case 120:
+#line 663 "engines/director/lingo/lingo-gr.y"
                                                 {
 		if (g_lingo->_repeatStack.size()) {
 			g_lingo->code2(LC::c_jump, 0);
@@ -3212,258 +3082,266 @@ yyreduce:
 		} else {
 			warning("# LINGO: exit repeat not inside repeat block");
 		} }
-#line 3216 "engines/director/lingo/lingo-gr.cpp"
+#line 3086 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 120:
-#line 669 "engines/director/lingo/lingo-gr.y"
+  case 121:
+#line 671 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_procret); }
-#line 3222 "engines/director/lingo/lingo-gr.cpp"
+#line 3092 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 121:
-#line 670 "engines/director/lingo/lingo-gr.y"
+  case 122:
+#line 672 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3228 "engines/director/lingo/lingo-gr.cpp"
+#line 3098 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 122:
-#line 670 "engines/director/lingo/lingo-gr.y"
+  case 123:
+#line 672 "engines/director/lingo/lingo-gr.y"
                                                                                  { inLast(); }
-#line 3234 "engines/director/lingo/lingo-gr.cpp"
+#line 3104 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 123:
-#line 671 "engines/director/lingo/lingo-gr.y"
+  case 124:
+#line 673 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3240 "engines/director/lingo/lingo-gr.cpp"
+#line 3110 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 124:
-#line 671 "engines/director/lingo/lingo-gr.y"
+  case 125:
+#line 673 "engines/director/lingo/lingo-gr.y"
                                                                                    { inLast(); }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 3116 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 125:
-#line 672 "engines/director/lingo/lingo-gr.y"
+  case 126:
+#line 674 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 3122 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 126:
-#line 672 "engines/director/lingo/lingo-gr.y"
+  case 127:
+#line 674 "engines/director/lingo/lingo-gr.y"
                                                                                    { inLast(); }
-#line 3258 "engines/director/lingo/lingo-gr.cpp"
+#line 3128 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 127:
-#line 673 "engines/director/lingo/lingo-gr.y"
+  case 128:
+#line 675 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 3266 "engines/director/lingo/lingo-gr.cpp"
+#line 3136 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 128:
-#line 676 "engines/director/lingo/lingo-gr.y"
+  case 129:
+#line 678 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 3274 "engines/director/lingo/lingo-gr.cpp"
+#line 3144 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 129:
-#line 679 "engines/director/lingo/lingo-gr.y"
+  case 130:
+#line 681 "engines/director/lingo/lingo-gr.y"
                                         {
 		Common::String open("open");
 		g_lingo->codeFunc(&open, 2); }
-#line 3282 "engines/director/lingo/lingo-gr.cpp"
+#line 3152 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 130:
-#line 682 "engines/director/lingo/lingo-gr.y"
+  case 131:
+#line 684 "engines/director/lingo/lingo-gr.y"
                                                 {
 		Common::String open("open");
 		g_lingo->codeFunc(&open, 1); }
-#line 3290 "engines/director/lingo/lingo-gr.cpp"
+#line 3160 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 131:
-#line 686 "engines/director/lingo/lingo-gr.y"
+  case 132:
+#line 687 "engines/director/lingo/lingo-gr.y"
+                                                        {
+		g_lingo->codeFunc((yyvsp[0].s), 0);
+		delete (yyvsp[0].s); }
+#line 3168 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 133:
+#line 691 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3298 "engines/director/lingo/lingo-gr.cpp"
+#line 3176 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 132:
-#line 689 "engines/director/lingo/lingo-gr.y"
+  case 134:
+#line 694 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3306 "engines/director/lingo/lingo-gr.cpp"
+#line 3184 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 133:
-#line 693 "engines/director/lingo/lingo-gr.y"
+  case 135:
+#line 698 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3314 "engines/director/lingo/lingo-gr.cpp"
+#line 3192 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 134:
-#line 696 "engines/director/lingo/lingo-gr.y"
+  case 136:
+#line 701 "engines/director/lingo/lingo-gr.y"
                                         {
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3322 "engines/director/lingo/lingo-gr.cpp"
+#line 3200 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 135:
-#line 700 "engines/director/lingo/lingo-gr.y"
+  case 137:
+#line 705 "engines/director/lingo/lingo-gr.y"
                                                 {
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3330 "engines/director/lingo/lingo-gr.cpp"
+#line 3208 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 136:
-#line 703 "engines/director/lingo/lingo-gr.y"
+  case 138:
+#line 708 "engines/director/lingo/lingo-gr.y"
                                         {
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3338 "engines/director/lingo/lingo-gr.cpp"
+#line 3216 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 137:
-#line 714 "engines/director/lingo/lingo-gr.y"
+  case 139:
+#line 719 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoloop); }
-#line 3344 "engines/director/lingo/lingo-gr.cpp"
+#line 3222 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 138:
-#line 715 "engines/director/lingo/lingo-gr.y"
+  case 140:
+#line 720 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_gotonext); }
-#line 3350 "engines/director/lingo/lingo-gr.cpp"
+#line 3228 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 139:
-#line 716 "engines/director/lingo/lingo-gr.y"
+  case 141:
+#line 721 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoprevious); }
-#line 3356 "engines/director/lingo/lingo-gr.cpp"
+#line 3234 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 140:
-#line 717 "engines/director/lingo/lingo-gr.y"
+  case 142:
+#line 722 "engines/director/lingo/lingo-gr.y"
                                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_goto); }
-#line 3365 "engines/director/lingo/lingo-gr.cpp"
+#line 3243 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 141:
-#line 721 "engines/director/lingo/lingo-gr.y"
+  case 143:
+#line 726 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_goto); }
-#line 3374 "engines/director/lingo/lingo-gr.cpp"
+#line 3252 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 142:
-#line 725 "engines/director/lingo/lingo-gr.y"
+  case 144:
+#line 730 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_goto); }
-#line 3383 "engines/director/lingo/lingo-gr.cpp"
+#line 3261 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 145:
-#line 733 "engines/director/lingo/lingo-gr.y"
+  case 147:
+#line 738 "engines/director/lingo/lingo-gr.y"
                                         { // "play #done" is also caught by this
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_play); }
-#line 3392 "engines/director/lingo/lingo-gr.cpp"
+#line 3270 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 146:
-#line 737 "engines/director/lingo/lingo-gr.y"
+  case 148:
+#line 742 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_play); }
-#line 3401 "engines/director/lingo/lingo-gr.cpp"
+#line 3279 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 147:
-#line 741 "engines/director/lingo/lingo-gr.y"
+  case 149:
+#line 746 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_play); }
-#line 3410 "engines/director/lingo/lingo-gr.cpp"
+#line 3288 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 148:
-#line 745 "engines/director/lingo/lingo-gr.y"
+  case 150:
+#line 750 "engines/director/lingo/lingo-gr.y"
                      { g_lingo->codeSetImmediate(true); }
-#line 3416 "engines/director/lingo/lingo-gr.cpp"
+#line 3294 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 149:
-#line 745 "engines/director/lingo/lingo-gr.y"
+  case 151:
+#line 750 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		g_lingo->codeSetImmediate(false);
 		g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg));
 		delete (yyvsp[-2].s); }
-#line 3425 "engines/director/lingo/lingo-gr.cpp"
+#line 3303 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 150:
-#line 775 "engines/director/lingo/lingo-gr.y"
+  case 152:
+#line 780 "engines/director/lingo/lingo-gr.y"
              { startDef(); }
-#line 3431 "engines/director/lingo/lingo-gr.cpp"
+#line 3309 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 151:
-#line 776 "engines/director/lingo/lingo-gr.y"
+  case 153:
+#line 781 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3441 "engines/director/lingo/lingo-gr.cpp"
+#line 3319 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 152:
-#line 781 "engines/director/lingo/lingo-gr.y"
+  case 154:
+#line 786 "engines/director/lingo/lingo-gr.y"
                         { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3447 "engines/director/lingo/lingo-gr.cpp"
+#line 3325 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 153:
-#line 782 "engines/director/lingo/lingo-gr.y"
+  case 155:
+#line 787 "engines/director/lingo/lingo-gr.y"
                   { startDef(); (*g_lingo->_methodVars)["me"] = kVarArgument; }
-#line 3453 "engines/director/lingo/lingo-gr.cpp"
+#line 3331 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 154:
-#line 783 "engines/director/lingo/lingo-gr.y"
+  case 156:
+#line 788 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1);
 		endDef();
 		delete (yyvsp[-6].s); }
-#line 3463 "engines/director/lingo/lingo-gr.cpp"
+#line 3341 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 155:
-#line 788 "engines/director/lingo/lingo-gr.y"
+  case 157:
+#line 793 "engines/director/lingo/lingo-gr.y"
                                                                    {	// D3
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-7].s), (yyvsp[-6].code), (yyvsp[-5].narg));
@@ -3472,69 +3350,69 @@ yyreduce:
 		checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
 		delete (yyvsp[-7].s);
 		delete (yyvsp[-1].s); }
-#line 3476 "engines/director/lingo/lingo-gr.cpp"
+#line 3354 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 156:
-#line 796 "engines/director/lingo/lingo-gr.y"
+  case 158:
+#line 801 "engines/director/lingo/lingo-gr.y"
                                                {	// D4. No 'end' clause
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3486 "engines/director/lingo/lingo-gr.cpp"
+#line 3364 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 157:
-#line 802 "engines/director/lingo/lingo-gr.y"
+  case 159:
+#line 807 "engines/director/lingo/lingo-gr.y"
          { startDef(); }
-#line 3492 "engines/director/lingo/lingo-gr.cpp"
+#line 3370 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 158:
-#line 802 "engines/director/lingo/lingo-gr.y"
+  case 160:
+#line 807 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = (yyvsp[0].s); }
-#line 3498 "engines/director/lingo/lingo-gr.cpp"
+#line 3376 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 159:
-#line 804 "engines/director/lingo/lingo-gr.y"
+  case 161:
+#line 809 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3504 "engines/director/lingo/lingo-gr.cpp"
+#line 3382 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 160:
-#line 805 "engines/director/lingo/lingo-gr.y"
+  case 162:
+#line 810 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = 1; delete (yyvsp[0].s); }
-#line 3510 "engines/director/lingo/lingo-gr.cpp"
+#line 3388 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 161:
-#line 806 "engines/director/lingo/lingo-gr.y"
+  case 163:
+#line 811 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); }
-#line 3516 "engines/director/lingo/lingo-gr.cpp"
+#line 3394 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 163:
-#line 809 "engines/director/lingo/lingo-gr.y"
+  case 165:
+#line 814 "engines/director/lingo/lingo-gr.y"
                                                         { delete (yyvsp[0].s); }
-#line 3522 "engines/director/lingo/lingo-gr.cpp"
+#line 3400 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 164:
-#line 810 "engines/director/lingo/lingo-gr.y"
+  case 166:
+#line 815 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 3528 "engines/director/lingo/lingo-gr.cpp"
+#line 3406 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 165:
-#line 812 "engines/director/lingo/lingo-gr.y"
+  case 167:
+#line 817 "engines/director/lingo/lingo-gr.y"
                                         { inDef(); }
-#line 3534 "engines/director/lingo/lingo-gr.cpp"
+#line 3412 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 166:
-#line 814 "engines/director/lingo/lingo-gr.y"
+  case 168:
+#line 819 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_call);
 		g_lingo->codeString((yyvsp[-1].s)->c_str());
@@ -3542,122 +3420,122 @@ yyreduce:
 		WRITE_UINT32(&numpar, (yyvsp[0].narg));
 		g_lingo->code1(numpar);
 		delete (yyvsp[-1].s); }
-#line 3546 "engines/director/lingo/lingo-gr.cpp"
+#line 3424 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 167:
-#line 822 "engines/director/lingo/lingo-gr.y"
+  case 169:
+#line 827 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3552 "engines/director/lingo/lingo-gr.cpp"
+#line 3430 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 168:
-#line 823 "engines/director/lingo/lingo-gr.y"
+  case 170:
+#line 828 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.narg) = 1; }
-#line 3558 "engines/director/lingo/lingo-gr.cpp"
+#line 3436 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 169:
-#line 824 "engines/director/lingo/lingo-gr.y"
+  case 171:
+#line 829 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3564 "engines/director/lingo/lingo-gr.cpp"
+#line 3442 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 170:
-#line 826 "engines/director/lingo/lingo-gr.y"
+  case 172:
+#line 831 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 1; }
-#line 3570 "engines/director/lingo/lingo-gr.cpp"
+#line 3448 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 171:
-#line 827 "engines/director/lingo/lingo-gr.y"
+  case 173:
+#line 832 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3576 "engines/director/lingo/lingo-gr.cpp"
+#line 3454 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 172:
-#line 829 "engines/director/lingo/lingo-gr.y"
+  case 174:
+#line 834 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[-1].code); }
-#line 3582 "engines/director/lingo/lingo-gr.cpp"
+#line 3460 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 173:
-#line 831 "engines/director/lingo/lingo-gr.y"
+  case 175:
+#line 836 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3588 "engines/director/lingo/lingo-gr.cpp"
+#line 3466 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 174:
-#line 832 "engines/director/lingo/lingo-gr.y"
+  case 176:
+#line 837 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3594 "engines/director/lingo/lingo-gr.cpp"
+#line 3472 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 175:
-#line 833 "engines/director/lingo/lingo-gr.y"
+  case 177:
+#line 838 "engines/director/lingo/lingo-gr.y"
                          { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3600 "engines/director/lingo/lingo-gr.cpp"
+#line 3478 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 176:
-#line 834 "engines/director/lingo/lingo-gr.y"
+  case 178:
+#line 839 "engines/director/lingo/lingo-gr.y"
                      { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3606 "engines/director/lingo/lingo-gr.cpp"
+#line 3484 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 177:
-#line 836 "engines/director/lingo/lingo-gr.y"
+  case 179:
+#line 841 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3612 "engines/director/lingo/lingo-gr.cpp"
+#line 3490 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 178:
-#line 837 "engines/director/lingo/lingo-gr.y"
+  case 180:
+#line 842 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3618 "engines/director/lingo/lingo-gr.cpp"
+#line 3496 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 179:
-#line 839 "engines/director/lingo/lingo-gr.y"
+  case 181:
+#line 844 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3624 "engines/director/lingo/lingo-gr.cpp"
+#line 3502 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 180:
-#line 840 "engines/director/lingo/lingo-gr.y"
+  case 182:
+#line 845 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3630 "engines/director/lingo/lingo-gr.cpp"
+#line 3508 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 181:
-#line 842 "engines/director/lingo/lingo-gr.y"
+  case 183:
+#line 847 "engines/director/lingo/lingo-gr.y"
                           {
 		g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3639 "engines/director/lingo/lingo-gr.cpp"
+#line 3517 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 182:
-#line 846 "engines/director/lingo/lingo-gr.y"
+  case 184:
+#line 851 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3648 "engines/director/lingo/lingo-gr.cpp"
+#line 3526 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 183:
-#line 850 "engines/director/lingo/lingo-gr.y"
+  case 185:
+#line 855 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3657 "engines/director/lingo/lingo-gr.cpp"
+#line 3535 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 3661 "engines/director/lingo/lingo-gr.cpp"
+#line 3539 "engines/director/lingo/lingo-gr.cpp"
 
       default: break;
     }
@@ -3856,7 +3734,7 @@ yyreturn:
   return yyresult;
 }
 
-#line 856 "engines/director/lingo/lingo-gr.y"
+#line 861 "engines/director/lingo/lingo-gr.y"
 
 
 int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 82596ef7a0..b1482bf3f4 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -194,7 +194,7 @@ static void mVar(Common::String *s, VarType type) {
 %token tSPRITE tINTERSECTS tWITHIN tTELL tPROPERTY
 %token tON tENDIF tENDREPEAT tENDTELL
 
-%type<code> asgn lbl expr if chunkexpr
+%type<code> asgn lbl expr if chunkexpr funccall
 %type<code> stmtlist tellstart reference simpleexpr list valuelist
 %type<code> jump jumpifz varassign
 %type<narg> argdef arglist nonemptyarglist linearlist proplist
@@ -339,7 +339,8 @@ asgn: tPUT expr tINTO ID 		{
 		$$ = $expr; }
 
 stmtoneliner: macro
-	| expr
+	| funccall
+	| asgn
 	| proc
 
 stmt: stmtoneliner
@@ -580,9 +581,7 @@ simpleexpr: INT		{
 		}
 	}
 
-expr: simpleexpr { $$ = $simpleexpr; }
-	| chunkexpr
-	| FBLTIN '(' arglist ')' {
+funccall: FBLTIN '(' arglist ')' {
 		g_lingo->codeFunc($FBLTIN, $arglist);
 		delete $FBLTIN; }
 	| FBLTIN arglist	{
@@ -608,6 +607,10 @@ expr: simpleexpr { $$ = $simpleexpr; }
 	| ID '(' arglist ')'	{
 		$$ = g_lingo->codeFunc($ID, $arglist);
 		delete $ID; }
+
+expr: simpleexpr { $$ = $simpleexpr; }
+	| chunkexpr
+	| funccall
 	| THEFBLTIN tOF simpleexpr	{
 		$$ = g_lingo->codeFunc($THEFBLTIN, 1);
 		delete $THEFBLTIN; }
@@ -617,7 +620,6 @@ expr: simpleexpr { $$ = $simpleexpr; }
 		g_lingo->codeString($THEOBJECTPROP.prop->c_str());
 		delete $THEOBJECTPROP.obj;
 		delete $THEOBJECTPROP.prop; }
-	| asgn
 	| expr '+' expr				{ g_lingo->code1(LC::c_add); }
 	| expr '-' expr				{ g_lingo->code1(LC::c_sub); }
 	| expr '*' expr				{ g_lingo->code1(LC::c_mul); }
@@ -682,6 +684,9 @@ proc: tPUT expr					{ g_lingo->code1(LC::c_printtop); }
 	| tOPEN expr 				{
 		Common::String open("open");
 		g_lingo->codeFunc(&open, 1); }
+	| ID						{
+		g_lingo->codeFunc($ID, 0);
+		delete $ID; }
 
 globallist: ID					{
 		mVar($ID, kVarGlobal);
diff --git a/engines/director/lingo/lingo-preprocessor.cpp b/engines/director/lingo/lingo-preprocessor.cpp
index a8e6bd4a2a..11e181de1d 100644
--- a/engines/director/lingo/lingo-preprocessor.cpp
+++ b/engines/director/lingo/lingo-preprocessor.cpp
@@ -29,7 +29,6 @@ Common::String preprocessWhen(Common::String in, bool *changed);
 Common::String preprocessReturn(Common::String in);
 Common::String preprocessPlay(Common::String in);
 Common::String preprocessSound(Common::String in);
-Common::String preprocessSimpleMacro(Common::String in);
 
 bool isspec(char c) {
 	return strchr("-+*/%%^:,()><&[]=", c) != NULL;
@@ -247,7 +246,6 @@ Common::String Lingo::codePreprocessor(const char *s, ScriptType type, uint16 id
 			res1 = preprocessReturn(res1);
 			res1 = preprocessPlay(res1);
 			res1 = preprocessSound(res1);
-			res1 = preprocessSimpleMacro(res1);
 		}
 
 		res += res1;
@@ -640,22 +638,4 @@ Common::String preprocessSound(Common::String in) {
 	return res;
 }
 
-// <macro> '\n' -> <macro>() '\n'
-Common::String preprocessSimpleMacro(Common::String in) {
-	const char *second;
-	Common::String next = nexttok(in.c_str(), &second);
-
-	if (!next.empty() && Common::isAlpha(next[0]))
-		if (nexttok(second).empty() && // Filter out possible standalone tokens
-				!next.equalsIgnoreCase("end") &&
-				!next.equalsIgnoreCase("exit") &&
-				!next.equalsIgnoreCase("else")) {
-			debugC(2, kDebugParse | kDebugPreprocess, "MACRO: in: %s\nout: %s()", in.c_str(), in.c_str());
-
-			return in + "()";
-		}
-
-	return in;
-}
-
 } // End of namespace Director
diff --git a/engines/director/lingo/tests/macros.lingo b/engines/director/lingo/tests/macros.lingo
index 91dc2928e2..0a6cee714d 100644
--- a/engines/director/lingo/tests/macros.lingo
+++ b/engines/director/lingo/tests/macros.lingo
@@ -24,3 +24,7 @@ put x
 check x, 5
 exit
 end if
+
+--
+macro test
+return "a"
diff --git a/engines/director/lingo/tests/macros2.lingo b/engines/director/lingo/tests/macros2.lingo
index b587ae421c..bb35ca1d36 100644
--- a/engines/director/lingo/tests/macros2.lingo
+++ b/engines/director/lingo/tests/macros2.lingo
@@ -9,3 +9,9 @@ put y
 check(1, 2, 3)
 check 4, 5, 6
 check 7, 8
+
+test
+test()
+put test
+put test()
+if test then test end if




More information about the Scummvm-git-logs mailing list