[Scummvm-git-logs] scummvm master -> 0c0863ce42a387766739f164fece8ae786027066

rvanlaar noreply at scummvm.org
Wed Sep 14 19:51:14 UTC 2022


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

Summary:
0c0863ce42 DIRECTOR: LINGO: Add floats and ints to proparrays


Commit: 0c0863ce42a387766739f164fece8ae786027066
    https://github.com/scummvm/scummvm/commit/0c0863ce42a387766739f164fece8ae786027066
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2022-09-14T21:50:53+02:00

Commit Message:
DIRECTOR: LINGO: Add floats and ints to proparrays

Implement the use of integers and floats as keys in property arrays.
Property arrays in lingo use the following syntax: [#a: "text"].
They are better known as HashMaps in CPP.

It resolves a bug in Star Trek Omnipedia which uses integers for keys.

- Includes lingo tests.

Changed paths:
    engines/director/lingo/lingo-gr.cpp
    engines/director/lingo/lingo-gr.h
    engines/director/lingo/lingo-gr.y
    engines/director/lingo/tests/lists.lingo


diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 8a9afa2efba..8177255d9c8 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.7.6.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
@@ -46,10 +46,10 @@
    USER NAME SPACE" below.  */
 
 /* Identify Bison output, and Bison version.  */
-#define YYBISON 30706
+#define YYBISON 30802
 
 /* Bison version string.  */
-#define YYBISON_VERSION "3.7.6"
+#define YYBISON_VERSION "3.8.2"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -67,7 +67,7 @@
 
 
 /* First part of user prologue.  */
-#line 54 "engines/director/lingo/lingo-gr.y"
+#line 53 "engines/director/lingo/lingo-gr.y"
 
 #define FORBIDDEN_SYMBOL_ALLOW_ALL
 
@@ -477,12 +477,18 @@ typedef int yy_state_fast_t;
 # define YY_USE(E) /* empty */
 #endif
 
-#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
-# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                            \
+#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
+# if __GNUC__ * 100 + __GNUC_MINOR__ < 407
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
+    _Pragma ("GCC diagnostic push")                                     \
+    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
+# else
+#  define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN                           \
     _Pragma ("GCC diagnostic push")                                     \
     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")              \
     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
+# endif
 # define YY_IGNORE_MAYBE_UNINITIALIZED_END      \
     _Pragma ("GCC diagnostic pop")
 #else
@@ -641,16 +647,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  191
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   4428
+#define YYLAST   4503
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  102
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  65
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  326
+#define YYNRULES  328
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  610
+#define YYNSTATES  618
 
 /* YYMAXUTOK -- Last valid token kind.  */
 #define YYMAXUTOK   342
@@ -705,42 +711,42 @@ static const yytype_int8 yytranslate[] =
 };
 
 #if YYDEBUG
-  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
+/* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_int16 yyrline[] =
 {
-       0,   201,   201,   203,   209,   216,   217,   218,   219,   220,
-     221,   250,   254,   256,   258,   259,   262,   268,   275,   276,
-     277,   282,   286,   290,   291,   292,   299,   300,   301,   302,
-     303,   304,   305,   306,   307,   308,   309,   310,   311,   312,
-     313,   314,   315,   316,   317,   318,   319,   320,   321,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,   331,   332,
-     333,   334,   335,   336,   337,   338,   339,   340,   341,   342,
-     343,   344,   345,   346,   347,   348,   349,   350,   351,   354,
-     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
-     365,   366,   367,   368,   369,   370,   371,   372,   375,   376,
-     377,   380,   384,   394,   395,   398,   399,   400,   401,   402,
-     403,   406,   407,   408,   411,   412,   413,   414,   415,   416,
-     417,   418,   423,   424,   425,   426,   427,   428,   431,   434,
-     439,   443,   449,   454,   457,   462,   468,   468,   474,   479,
-     485,   491,   497,   505,   506,   507,   508,   511,   511,   513,
-     514,   515,   518,   522,   526,   532,   536,   540,   544,   545,
-     547,   549,   551,   553,   557,   561,   565,   567,   568,   572,
-     578,   585,   586,   589,   590,   594,   600,   607,   608,   614,
-     615,   616,   617,   618,   619,   620,   621,   622,   623,   624,
-     625,   626,   629,   631,   632,   635,   636,   639,   640,   641,
-     643,   645,   647,   649,   651,   653,   655,   657,   660,   661,
-     662,   663,   666,   667,   670,   675,   678,   683,   689,   690,
-     691,   692,   693,   696,   697,   698,   699,   700,   703,   705,
-     706,   707,   708,   709,   710,   711,   712,   713,   714,   718,
-     719,   720,   721,   722,   725,   725,   727,   728,   731,   732,
-     733,   734,   735,   738,   739,   740,   743,   747,   752,   753,
-     754,   757,   758,   761,   762,   766,   767,   768,   769,   770,
-     771,   772,   773,   774,   775,   776,   777,   778,   779,   780,
-     781,   782,   783,   784,   791,   792,   793,   794,   795,   796,
-     797,   798,   799,   800,   801,   802,   803,   804,   805,   806,
-     807,   808,   809,   812,   813,   814,   815,   816,   817,   818,
-     819,   820,   821,   822,   823,   824,   825,   826,   827,   828,
-     829,   832,   833,   836,   837,   840,   844
+       0,   200,   200,   202,   208,   215,   216,   217,   218,   219,
+     220,   249,   253,   255,   257,   258,   261,   267,   274,   275,
+     276,   281,   285,   289,   290,   291,   298,   299,   300,   301,
+     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
+     312,   313,   314,   315,   316,   317,   318,   319,   320,   321,
+     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,   341,
+     342,   343,   344,   345,   346,   347,   348,   349,   350,   353,
+     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
+     364,   365,   366,   367,   368,   369,   370,   371,   374,   375,
+     376,   379,   383,   393,   394,   397,   398,   399,   400,   401,
+     402,   405,   406,   407,   410,   411,   412,   413,   414,   415,
+     416,   417,   422,   423,   424,   425,   426,   427,   430,   433,
+     438,   442,   448,   453,   456,   461,   467,   467,   473,   478,
+     484,   490,   496,   504,   505,   506,   507,   510,   510,   512,
+     513,   514,   517,   521,   525,   531,   535,   539,   543,   544,
+     546,   548,   550,   552,   556,   560,   564,   566,   567,   571,
+     577,   584,   585,   588,   589,   593,   599,   606,   607,   613,
+     614,   615,   616,   617,   618,   619,   620,   621,   622,   623,
+     624,   625,   628,   630,   631,   634,   635,   638,   639,   640,
+     642,   644,   646,   648,   650,   652,   654,   656,   659,   660,
+     661,   662,   665,   666,   669,   674,   677,   682,   688,   689,
+     690,   691,   692,   695,   696,   697,   698,   699,   702,   704,
+     705,   706,   707,   708,   709,   710,   711,   712,   713,   717,
+     718,   719,   720,   721,   724,   724,   726,   727,   730,   731,
+     732,   733,   734,   737,   738,   739,   742,   746,   751,   752,
+     753,   754,   755,   758,   759,   762,   763,   767,   768,   769,
+     770,   771,   772,   773,   774,   775,   776,   777,   778,   779,
+     780,   781,   782,   783,   784,   785,   792,   793,   794,   795,
+     796,   797,   798,   799,   800,   801,   802,   803,   804,   805,
+     806,   807,   808,   809,   810,   813,   814,   815,   816,   817,
+     818,   819,   820,   821,   822,   823,   824,   825,   826,   827,
+     828,   829,   830,   833,   834,   837,   838,   841,   845
 };
 #endif
 
@@ -790,26 +796,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
 }
 #endif
 
-#ifdef YYPRINT
-/* YYTOKNUM[NUM] -- (External) token number corresponding to the
-   (internal) symbol number NUM (which must be that of a token).  */
-static const yytype_int16 yytoknum[] =
-{
-       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
-     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
-     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
-     335,   336,   337,   338,   339,   340,   341,   342,    60,    62,
-      38,    43,    45,    42,    47,    10,    44,    40,    41,    91,
-      93,    58
-};
-#endif
-
-#define YYPACT_NINF (-507)
+#define YYPACT_NINF (-536)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
@@ -819,76 +806,77 @@ static const yytype_int16 yytoknum[] =
 #define yytable_value_is_error(Yyn) \
   0
 
-  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
-     STATE-NUM.  */
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    2904,  -507,  3468,  -507,  -507,  -507,  -507,    34,  -507,   -14,
-    -507,  3468,  1852,    34,  1948,  -507,  -507,  3468,  -507,     6,
-    -507,  -507,  2044,   112,  3547,  -507,   -61,  -507,  -507,  3468,
-    2044,  1852,  3468,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,  -507,  -507,  -507,  -507,  1948,  3468,  3468,   -47,
-    3783,  -507,    75,  2904,  -507,  -507,  -507,  -507,  2044,  -507,
-    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,  -507,   -64,  -507,  -507,  2140,  2140,  1948,  1948,
-    1948,  1948,    27,    22,    30,  -507,  -507,    43,    23,  -507,
-    -507,  -507,  -507,  2140,  2140,  2140,  2140,  1948,  1948,  2236,
-    1948,  1948,  1948,  1948,  3626,  1948,  2236,  2236,  1372,   794,
-      46,    51,    56,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,  -507,   892,  -507,    62,  1948,  3901,  3468,    64,
-      85,   988,  3468,  1948,  3468,  -507,  -507,    -5,  -507,  -507,
-      87,    99,  1084,   100,   108,   109,   693,   116,  3468,  -507,
-    -507,  -507,  -507,   118,  1180,  -507,  3468,  1468,  -507,  -507,
-    -507,   364,   387,   440,   515,    67,  -507,  -507,  -507,  3468,
-    -507,  -507,  1276,  4202,  -507,   -33,    10,    15,    19,    48,
-      67,   138,   162,  4189,  -507,  -507,  -507,  3921,   113,   114,
-     117,   -48,   -12,  -507,  4202,   119,   120,  1564,  -507,  -507,
-     194,  1948,  1948,  1948,  1948,  2620,  2620,  2812,  1948,  2716,
-    2716,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  -507,
-    -507,  4011,  -507,  -507,  3954,  2983,  1948,  1948,  1948,  1948,
-    1948,   126,  -507,  -507,  3705,  3705,  3705,     7,  4024,   196,
-    -507,  -507,  1948,     3,  -507,  1948,  -507,  -507,  -507,  3783,
-    3062,  -507,   127,  -507,  -507,  -507,  3934,  2236,  1948,  2236,
-    1948,  2236,  1948,  2236,  1948,  -507,  -507,  -507,  -507,    24,
-    -507,   199,  4255,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,  -507,  2332,  2428,  2236,  2236,  1660,  -507,  1948,
-    1948,  -507,  1948,  3389,  -507,  -507,  1948,  -507,   134,  1948,
-      81,    81,    81,    81,  4281,  4281,  -507,    71,    81,    81,
-      81,    81,    71,   -31,   -31,  -507,  -507,   134,  1948,  1948,
-    1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,
-    1948,  1948,  1948,  1948,  1948,  1948,  -507,  3299,   215,  3062,
-      27,  -507,   137,  -507,   139,   161,  1948,  1948,  3062,  2524,
-    4037,  3468,  3468,  -507,  -507,  -507,     3,  -507,  4091,  -507,
-    -507,  -507,   171,  3062,  -507,  3062,  1756,  -507,   568,  -507,
-     598,  -507,  3835,  -507,  3848,  -507,  -507,  2236,  1948,    24,
-      24,    24,    24,  2236,  2236,    24,  2236,  2236,  -507,  -507,
-    -507,  -507,  -507,  -507,  -507,   134,  4202,  4202,  4202,   113,
-     114,   158,  -507,  4202,  1948,   160,  4202,  -507,    81,    81,
-      81,    81,  4281,  4281,  -507,    71,    81,    81,    81,    81,
-      71,   -31,   -31,  -507,  -507,   134,  -507,  -507,    -2,  3299,
-    -507,  3141,  -507,  -507,  -507,  -507,  4104,    12,   182,  1948,
-    1948,  1948,  1948,  -507,  -507,  -507,    73,  3468,  -507,  -507,
-     173,  -507,   260,  -507,   134,  2236,  2236,  2236,  2236,  -507,
-    4202,  2236,  2236,  2236,  2236,  -507,   245,   204,  -507,  -507,
-     177,  -507,  -507,  3220,   183,  -507,  -507,  3299,  -507,  3062,
-     243,  1948,   185,  -507,  4268,  -507,  3868,  4268,  4268,  -507,
-     186,  -507,  3468,   184,  -507,  -507,  -507,  -507,  -507,  -507,
-    -507,  -507,   216,  2236,  -507,  -507,  3299,  -507,  -507,   203,
-     206,  1948,  4117,  -507,  1948,  1948,  1948,  1948,  1948,  1948,
-    1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,  1948,
-     218,  3062,    83,  -507,  2236,   203,  -507,   198,  4171,  3062,
-      95,    95,    95,  4334,  4334,  -507,   107,    95,    95,    95,
-      95,   107,   -26,   -26,  -507,  -507,  1948,  -507,  -507,  -507,
-    -507,  -507,  3062,   210,  4268,   212,   205,   224,  -507,  -507
+    2884,  -536,  3450,  -536,  -536,  -536,  -536,    33,  -536,   -14,
+    -536,  3450,  1832,    33,  1928,  -536,  -536,  3450,  -536,    -8,
+    -536,  -536,  2024,    22,  3529,  -536,   -67,  -536,  -536,  3450,
+    2024,  1832,  3450,  -536,  -536,  -536,  -536,  -536,  -536,  -536,
+    -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,
+    -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,
+    -536,  -536,  -536,  -536,  -536,  -536,  1928,  3450,  3450,   -59,
+    3765,  -536,    61,  2884,  -536,  -536,  -536,  -536,  2024,  -536,
+    -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,
+    -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,
+    -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,
+    -536,  -536,  -536,    54,  -536,  -536,  2120,  2120,  1928,  1928,
+    1928,  1928,    64,   -31,   -26,  -536,  -536,   -20,   -10,  -536,
+    -536,  -536,  -536,  2120,  2120,  2120,  2120,  1928,  1928,  2216,
+    1928,  1928,  1928,  1928,  3608,  1928,  2216,  2216,  1352,   774,
+      28,    43,    45,  -536,  -536,  -536,  -536,  -536,  -536,  -536,
+    -536,  -536,  -536,   872,  -536,    67,  1928,  4004,  3450,    81,
+      87,   968,  3450,  1928,  3450,  -536,  -536,    -5,  -536,  -536,
+      89,    95,  1064,    98,   100,   101,  3989,   103,  3450,  -536,
+    -536,  -536,  -536,   104,  1160,  -536,  3450,  1448,  -536,  -536,
+    -536,   577,   599,   668,  3817,   162,  -536,  -536,  -536,  3450,
+    -536,  -536,  1256,  4328,  -536,   -21,   -13,   -12,    10,    31,
+     162,    63,   102,  4315,  -536,  -536,  -536,  4017,    58,   105,
+     106,   115,   120,   -30,    56,  -536,  4328,   122,   107,  1544,
+    -536,  -536,   178,  1928,  1928,  1928,  1928,  2600,  2600,  2792,
+    1928,  2696,  2696,  1928,  1928,  1928,  1928,  1928,  1928,  1928,
+    1928,  -536,  -536,  4100,  -536,  -536,  4087,  2963,  1928,  1928,
+    1928,  1928,  1928,   129,  -536,  -536,  3687,  3687,  3687,     8,
+    4155,   197,  -536,  -536,  1928,     6,  -536,  1928,  -536,  -536,
+    -536,  3765,  3042,  -536,   131,  -536,  -536,  -536,  4074,  2216,
+    1928,  2216,  1928,  2216,  1928,  2216,  1928,  -536,  -536,  -536,
+    -536,     4,  -536,   201,  4343,  -536,  -536,  -536,  -536,  -536,
+    -536,  -536,  -536,  -536,  -536,  2312,  2408,  2216,  2216,  1640,
+    -536,  1928,  1928,  1928,  1928,  -536,  1928,  3371,  -536,  -536,
+    1928,  -536,   133,  1928,    30,    30,    30,    30,   121,   121,
+    -536,    17,    30,    30,    30,    30,    17,     2,     2,  -536,
+    -536,   133,  1928,  1928,  1928,  1928,  1928,  1928,  1928,  1928,
+    1928,  1928,  1928,  1928,  1928,  1928,  1928,  1928,  1928,  1928,
+    -536,  3279,   214,  3042,    64,  -536,   137,  -536,   139,   140,
+    1928,  1928,  3042,  2504,  4168,  3450,  3450,  -536,  -536,  -536,
+       6,  -536,  4181,  -536,  -536,  -536,   150,  3042,  -536,  3042,
+    1736,  -536,  3830,  -536,  3850,  -536,  3903,  -536,  3923,  -536,
+    -536,  2216,  1928,     4,     4,     4,     4,  2216,  2216,     4,
+    2216,  2216,  -536,  -536,  -536,  -536,  -536,  -536,  -536,   133,
+    4328,  4328,  4328,  4328,  4328,    58,   105,   106,   115,   157,
+    -536,  4328,  1928,   161,  4328,  -536,    30,    30,    30,    30,
+     121,   121,  -536,    17,    30,    30,    30,    30,    17,     2,
+       2,  -536,  -536,   133,  -536,  -536,     3,  3279,  -536,  3121,
+    -536,  -536,  -536,  -536,  4235,   492,   175,  1928,  1928,  1928,
+    1928,  -536,  -536,  -536,    73,  3450,  -536,  -536,   166,  -536,
+     260,  -536,   133,  2216,  2216,  2216,  2216,  -536,  4328,  2216,
+    2216,  2216,  2216,  -536,   242,   205,  -536,  -536,   179,  -536,
+    -536,  3200,   176,  -536,  -536,  3279,  -536,  3042,   245,  1928,
+     181,  -536,  4396,  -536,  3936,  4396,  4396,  -536,   185,  -536,
+    3450,   184,  -536,  -536,  -536,  -536,  -536,  -536,  -536,  -536,
+     213,  2216,  -536,  -536,  3279,  -536,  -536,   200,   203,  1928,
+    4248,  -536,  1928,  1928,  1928,  1928,  1928,  1928,  1928,  1928,
+    1928,  1928,  1928,  1928,  1928,  1928,  1928,  1928,   223,  3042,
+      76,  -536,  2216,   200,  -536,   202,  4261,  3042,    53,    53,
+      53,  4409,  4409,  -536,    35,    53,    53,    53,    53,    35,
+     108,   108,  -536,  -536,  1928,  -536,  -536,  -536,  -536,  -536,
+    3042,   210,  4396,   216,   204,   207,  -536,  -536
 };
 
-  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
-     Performed when YYTABLE does not specify something else to do.  Zero
-     means the default is an error.  */
+/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
+   Performed when YYTABLE does not specify something else to do.  Zero
+   means the default is an error.  */
 static const yytype_int16 yydefact[] =
 {
        0,    26,    23,    33,    40,    64,    74,    38,    39,     0,
@@ -905,165 +893,164 @@ static const yytype_int16 yydefact[] =
       90,    89,    65,     0,    79,    24,     0,     0,     0,     0,
        0,     0,     0,     0,     0,   124,   101,     0,    99,   179,
      180,   182,   181,    33,    40,    64,    74,    41,    56,    58,
-      34,    46,    49,    77,    70,    68,     0,     0,     0,   323,
-     192,     0,     0,   263,   187,   188,   189,   190,   221,   222,
-     191,   264,   265,   136,   266,     0,     0,     0,    98,     0,
+      34,    46,    49,    77,    70,    68,     0,     0,     0,   325,
+     192,     0,     0,   265,   187,   188,   189,   190,   221,   222,
+     191,   266,   267,   136,   268,     0,     0,     0,    98,     0,
        0,   136,     0,     0,    70,   192,   195,     0,   196,   166,
        0,     0,   136,     0,     0,     0,     0,     0,    98,   104,
      127,     1,     4,     0,   136,    10,     0,     0,   198,   214,
      197,     0,     0,     0,     0,     0,   125,   123,   149,   100,
      212,   213,   138,   139,   183,    27,    28,    29,    51,    66,
-      48,    59,   218,     0,   261,   262,   133,     0,   182,   181,
-       0,   192,     0,   256,   325,     0,   324,     0,   116,   117,
-      60,     0,     0,     0,     0,    31,    61,    55,     0,    36,
-      69,     0,     0,     0,     0,     0,     0,     0,   137,   129,
-     284,   136,   285,   126,     0,     0,     0,     0,     0,     0,
-       0,     0,   122,   115,    45,    30,    32,     0,     0,   246,
-     147,   148,     0,    14,   120,    75,   118,   119,   151,     0,
-     167,   150,     0,   114,    25,   215,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   208,   210,   211,   209,     0,
-     102,    60,   142,   229,   230,   231,   232,   233,   234,   235,
-     236,   237,   238,     0,     0,     0,     0,     0,   186,     0,
-       0,   254,     0,     0,   255,   253,     0,   184,   136,     0,
-     276,   277,   274,   275,   278,   279,   271,   281,   282,   283,
-     273,   272,   280,   267,   268,   269,   270,   136,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   137,   131,   173,   152,   167,
-      70,   193,     0,   194,     0,     0,     0,     0,   167,     0,
-       0,    23,     0,    18,    19,    12,    15,    16,     0,   164,
-     171,   172,     0,   168,   169,   167,     0,   199,     0,   203,
-       0,   205,     0,   201,     0,   244,   245,     0,     0,    35,
-      47,    50,    78,    52,    53,    54,    67,    68,   220,   224,
-     223,   219,   321,   322,   134,   136,   260,   258,   259,     0,
-       0,     0,   257,   326,   137,     0,   141,   130,   295,   296,
-     293,   294,   297,   298,   290,   300,   301,   302,   292,   291,
-     299,   286,   287,   288,   289,   136,   177,   178,   158,   174,
-     175,     0,    11,   143,   144,   145,     0,     0,     0,    52,
-      53,    67,    68,   247,   248,   146,     0,    98,    17,   121,
-       0,   170,    22,   216,   136,     0,     0,     0,     0,   207,
-     140,     0,     0,     0,     0,   228,     0,     0,   226,   227,
-       0,   185,   132,     0,     0,   153,   176,   173,   154,   167,
-       0,     0,     0,   303,   249,   304,     0,   251,   252,    20,
-       0,   165,    23,     0,   200,   204,   206,   202,   239,   241,
-     242,   240,     0,     0,   243,   135,   173,   156,   159,   158,
-       0,     0,     0,   160,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   167,     0,   217,     0,   158,   155,     0,     0,   167,
-     313,   314,   312,   315,   316,   309,   318,   319,   320,   311,
-     310,   317,   305,   306,   307,   308,     0,    13,    21,   225,
-     157,   163,   167,     0,   250,     0,     0,     0,   161,   162
+      48,    59,   218,     0,   263,   264,   133,     0,   179,   180,
+     182,   181,     0,   192,     0,   256,   327,     0,   326,     0,
+     116,   117,    60,     0,     0,     0,     0,    31,    61,    55,
+       0,    36,    69,     0,     0,     0,     0,     0,     0,     0,
+     137,   129,   286,   136,   287,   126,     0,     0,     0,     0,
+       0,     0,     0,     0,   122,   115,    45,    30,    32,     0,
+       0,   246,   147,   148,     0,    14,   120,    75,   118,   119,
+     151,     0,   167,   150,     0,   114,    25,   215,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   208,   210,   211,
+     209,     0,   102,    60,   142,   229,   230,   231,   232,   233,
+     234,   235,   236,   237,   238,     0,     0,     0,     0,     0,
+     186,     0,     0,     0,     0,   254,     0,     0,   255,   253,
+       0,   184,   136,     0,   278,   279,   276,   277,   280,   281,
+     273,   283,   284,   285,   275,   274,   282,   269,   270,   271,
+     272,   136,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   137,
+     131,   173,   152,   167,    70,   193,     0,   194,     0,     0,
+       0,     0,   167,     0,     0,    23,     0,    18,    19,    12,
+      15,    16,     0,   164,   171,   172,     0,   168,   169,   167,
+       0,   199,     0,   203,     0,   205,     0,   201,     0,   244,
+     245,     0,     0,    35,    47,    50,    78,    52,    53,    54,
+      67,    68,   220,   224,   223,   219,   323,   324,   134,   136,
+     261,   262,   260,   258,   259,     0,     0,     0,     0,     0,
+     257,   328,   137,     0,   141,   130,   297,   298,   295,   296,
+     299,   300,   292,   302,   303,   304,   294,   293,   301,   288,
+     289,   290,   291,   136,   177,   178,   158,   174,   175,     0,
+      11,   143,   144,   145,     0,     0,     0,    52,    53,    67,
+      68,   247,   248,   146,     0,    98,    17,   121,     0,   170,
+      22,   216,   136,     0,     0,     0,     0,   207,   140,     0,
+       0,     0,     0,   228,     0,     0,   226,   227,     0,   185,
+     132,     0,     0,   153,   176,   173,   154,   167,     0,     0,
+       0,   305,   249,   306,     0,   251,   252,    20,     0,   165,
+      23,     0,   200,   204,   206,   202,   239,   241,   242,   240,
+       0,     0,   243,   135,   173,   156,   159,   158,     0,     0,
+       0,   160,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   167,
+       0,   217,     0,   158,   155,     0,     0,   167,   315,   316,
+     314,   317,   318,   311,   320,   321,   322,   313,   312,   319,
+     307,   308,   309,   310,     0,    13,    21,   225,   157,   163,
+     167,     0,   250,     0,     0,     0,   161,   162
 };
 
-  /* YYPGOTO[NTERM-NUM].  */
+/* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -507,  -507,  -507,   226,  -507,  -507,  -507,  -507,  -507,   -75,
-    -507,  -378,     0,     9,   -27,  -507,     1,  -362,   -66,  -507,
-      49,  -239,   291,  -507,  -507,  -507,  -507,  -507,  -506,  -507,
-    -507,  -507,  -369,  -507,   -78,  -496,  -507,  -142,   -42,   -22,
-     -83,  -507,    -4,  -507,  -507,   -25,  -507,     5,  -176,  -507,
-    -507,  -213,  -507,  -507,  -507,  -507,    -1,  -507,   201,    -6,
-     129,  -253,   157,  -507,  -230
+    -536,  -536,  -536,   230,  -536,  -536,  -536,  -536,  -536,   -96,
+    -536,  -385,     0,     9,   -27,  -536,     1,  -374,   -58,  -536,
+      15,  -245,   274,  -536,  -536,  -536,  -536,  -536,  -535,  -536,
+    -536,  -536,  -379,  -536,   -97,  -504,  -536,  -166,  -129,   -22,
+     -99,  -536,    -4,  -536,  -536,   -17,  -536,   -11,  -202,  -536,
+    -536,  -237,  -536,  -536,  -536,  -536,   -23,  -536,   173,    -6,
+     109,  -140,  -114,  -536,  -225
 };
 
-  /* YYDEFGOTO[NTERM-NUM].  */
+/* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-       0,    72,    73,    74,    75,    76,   394,   395,   396,   397,
-      77,   113,   114,   150,   127,   128,   401,    80,    81,    82,
-     151,   259,   152,    83,   282,    84,    85,    86,   515,    87,
-      88,    89,   402,   403,   404,   468,   469,   470,   153,   154,
-     382,   177,   155,   309,   156,   198,   157,   428,   429,   158,
-     159,   417,   178,   483,   160,   232,   233,   161,   162,   234,
-     261,   524,   164,   235,   236
+       0,    72,    73,    74,    75,    76,   398,   399,   400,   401,
+      77,   113,   114,   150,   127,   128,   405,    80,    81,    82,
+     151,   261,   152,    83,   284,    84,    85,    86,   523,    87,
+      88,    89,   406,   407,   408,   476,   477,   478,   153,   154,
+     386,   177,   155,   311,   156,   198,   157,   432,   433,   158,
+     159,   421,   178,   491,   160,   234,   235,   161,   162,   236,
+     263,   532,   164,   237,   238
 };
 
-  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
-     positive, shift that token.  If negative, reduce the rule whose
-     number is the opposite.  If YYTABLE_NINF, syntax error.  */
+/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule whose
+   number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      78,    79,   176,   123,   190,   185,   163,   338,   167,   165,
-     472,   115,   391,   486,   513,   467,   171,   124,   268,   478,
-     126,   549,   376,   559,   182,   163,   168,   520,   357,   280,
-     386,   195,   196,   175,   179,   313,   492,   169,   180,   281,
-     187,   126,   314,   576,   116,   117,   521,   415,   189,   237,
-     575,   387,   416,   332,   241,   242,   243,   244,   266,   267,
-     186,   268,   256,   257,   248,   269,   270,   568,   569,   600,
-      78,   170,   194,    78,    79,   191,   126,   188,   315,   181,
-     183,   125,   514,   317,   333,   316,   392,   319,   334,   118,
-     318,   119,   200,   120,   320,   121,   205,   435,   393,   445,
-     251,   252,   253,   254,   255,   256,   257,   467,   122,   200,
-     210,   211,   201,   202,   203,   204,   321,   206,   447,   209,
-     268,   260,   305,   322,   306,   207,   307,   193,   308,   260,
-     268,   212,   213,   248,   201,   202,   203,   204,   208,   223,
-     260,   271,   227,   237,   559,   465,   238,   560,   172,   173,
-     550,   239,   260,   222,   572,   467,   559,   263,   231,   272,
-     264,   292,   254,   255,   256,   257,   323,   278,   529,   196,
-     260,   253,   254,   255,   256,   257,   494,   126,   598,   196,
-     273,   277,   283,   279,   467,   565,   566,   567,   568,   569,
-     324,   296,   384,   385,   284,   286,   510,   126,   566,   567,
-     568,   569,   597,   287,   288,   294,   501,   502,   503,   504,
-     603,   291,   507,   293,   329,   330,   336,   331,   310,   335,
-     339,   379,   405,   399,   389,   418,   512,   526,   527,   528,
-     444,   471,   473,   605,   474,   340,   341,   342,   343,   344,
-     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   381,   381,   381,   533,   475,   490,   511,   332,
-     344,   345,   346,   348,   349,    78,   378,   522,   531,   532,
-     383,   383,   383,   542,   543,   545,   390,   551,   548,   398,
-     553,   571,   573,   175,   175,   175,   574,   514,   596,    78,
-      78,   577,   408,   601,   410,   606,   412,   607,   414,   192,
-     608,   580,   581,   582,   583,   584,   585,   586,   587,   588,
-     589,   590,   591,   592,   593,   594,   595,   199,   199,   609,
-     262,   488,   184,   436,   437,   491,   438,   516,   262,   431,
-     443,   544,   442,   446,   199,   199,   199,   199,     0,   262,
-     214,   312,   441,   604,     0,     0,     0,   224,   225,     0,
-       0,   262,   448,   449,   450,   451,   452,   453,   454,   455,
-     456,   457,   458,   459,   460,   461,   462,   463,   464,   262,
-       0,     0,     0,     0,     0,     0,     0,    78,     0,    78,
-     476,   477,     0,     0,     0,     0,     0,     0,    78,     0,
-       0,     0,   297,     0,     0,     0,     0,     0,   298,     0,
-     115,   487,     0,    78,     0,    78,   241,   242,   243,   244,
-     266,   267,   500,   268,     0,   299,   248,   269,   270,     0,
-       0,   300,     0,     0,     0,     0,     0,     0,     0,   241,
-     242,   243,   244,   266,   267,     0,   268,     0,   443,   248,
-     269,   270,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   251,   252,   253,   254,   255,   256,   257,     0,
-     530,     0,     0,     0,     0,     0,     0,     0,   301,    78,
-       0,    78,   518,     0,   302,   251,   252,   253,   254,   255,
-     256,   257,   241,   242,   243,   244,   266,   267,     0,   268,
-       0,     0,   248,   269,   270,     0,   126,     0,   407,     0,
-     409,     0,   411,     0,   413,     0,     0,     0,     0,     0,
-       0,     0,     0,    78,   547,   552,     0,    78,     0,    78,
-       0,     0,     0,     0,   430,   430,   432,   433,   251,   252,
-     253,   254,   255,   256,   257,     0,     0,     0,     0,     0,
-       0,   115,     0,   303,     0,   578,    78,     0,     0,   304,
-       0,     0,     0,     0,     0,     0,     0,   241,   242,   243,
-     244,   266,   267,     0,   268,     0,     0,   248,   269,   270,
-       0,    78,     0,     0,     0,     0,     0,     0,     0,    78,
+      78,    79,   176,   123,   480,   185,   163,   475,   167,   165,
+     494,   115,   190,   486,   342,   395,   171,   124,   380,   521,
+     126,   557,   584,   169,   182,   163,   168,   419,   179,   282,
+     500,   390,   420,   175,   262,   361,   189,   170,   180,   283,
+     187,   126,   262,   116,   117,   181,   183,   315,   608,   264,
+     583,   270,   391,   262,   316,   317,   319,   264,   172,   173,
+     186,   191,   318,   320,   206,   262,   270,   239,   264,   207,
+      78,   336,   194,    78,    79,   208,   126,   188,   321,   270,
+     264,   125,   250,   262,   567,   322,   209,   522,   118,   396,
+     119,   325,   120,   193,   121,   258,   259,   453,   264,   323,
+     200,   397,   567,   475,   439,   568,   324,   122,   256,   257,
+     258,   259,   201,   202,   203,   204,   455,   200,   210,   211,
+     255,   256,   257,   258,   259,   239,   574,   575,   576,   577,
+     326,   212,   213,   205,   201,   202,   203,   204,   240,   223,
+     241,   273,   227,   573,   574,   575,   576,   577,   558,   195,
+     196,   475,   337,   222,   473,   580,   338,   567,   233,   331,
+     266,   294,   265,   243,   244,   245,   246,   280,   537,   196,
+     270,   606,   196,   250,   271,   272,   274,   126,   388,   389,
+     475,   279,   275,   281,   285,   502,   509,   510,   511,   512,
+     286,   298,   515,   288,   518,   289,   290,   126,   293,   295,
+     605,   576,   577,   340,   343,   296,   332,   333,   611,   253,
+     254,   255,   256,   257,   258,   259,   334,   307,   312,   308,
+     335,   309,   339,   310,   383,   393,   409,   422,   520,   452,
+     479,   613,   481,   403,   482,   483,   498,   344,   345,   346,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,   356,
+     357,   358,   359,   360,   385,   385,   385,   541,   336,   519,
+     530,   539,   348,   349,   350,   352,   353,    78,   382,   540,
+     550,   556,   387,   387,   387,   551,   561,   553,   394,   559,
+     579,   402,   581,   582,   522,   175,   175,   175,   585,   199,
+     199,    78,    78,   604,   412,   614,   414,   609,   416,   616,
+     418,   615,   617,   192,   496,   184,   199,   199,   199,   199,
+     499,   524,   214,   552,   450,   435,     0,     0,     0,   224,
+     225,   314,     0,     0,     0,   440,   441,   442,   443,     0,
+     444,     0,     0,     0,   451,     0,     0,   454,     0,     0,
+       0,     0,     0,     0,     0,     0,   449,     0,   534,   535,
+     536,     0,     0,     0,     0,     0,   456,   457,   458,   459,
+     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
+     470,   471,   472,   533,   533,   533,   533,     0,     0,     0,
+       0,    78,     0,    78,   484,   485,     0,     0,     0,     0,
+       0,     0,    78,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   115,   495,     0,    78,     0,    78,
+       0,     0,     0,     0,     0,     0,   508,     0,     0,     0,
+       0,     0,   588,   589,   590,   591,   592,   593,   594,   595,
+     596,   597,   598,   599,   600,   601,   602,   603,     0,     0,
+       0,     0,     0,     0,     0,     0,   451,     0,   533,   533,
+     533,   533,   533,   533,   533,   533,   533,   533,   533,   533,
+     533,   533,   533,   533,   612,     0,     0,     0,   538,     0,
+       0,     0,   411,     0,   413,     0,   415,    78,   417,    78,
+     526,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     533,     0,     0,     0,     0,     0,     0,     0,   434,   434,
+     436,   437,     0,     0,   126,     0,     0,   528,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     484,     0,     0,     0,     0,     0,   495,     0,     0,     0,
-       0,     0,    78,   251,   252,   253,   254,   255,   256,   257,
-     241,   242,   243,   244,   266,   267,     0,   268,   499,     0,
-     248,   269,   270,     0,   505,   506,   496,   508,   509,     0,
-       0,     0,     0,     0,     0,     0,   525,   525,   525,   525,
-     241,   242,   243,   244,   266,   267,     0,   268,     0,     0,
-     248,   269,   270,     0,     0,     0,   251,   252,   253,   254,
-     255,   256,   257,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     523,   523,   523,   523,     0,     0,   251,   252,   253,   254,
-     255,   256,   257,     0,     0,     0,   534,   535,   536,   537,
-       0,     0,   538,   539,   540,   541,     0,     0,     0,     0,
-       0,   525,   525,   525,   525,   525,   525,   525,   525,   525,
-     525,   525,   525,   525,   525,   525,   525,   289,     0,     0,
-       0,     0,     0,     0,     0,   241,   242,   243,   244,   266,
-     267,     0,   268,     0,   505,   248,   269,   270,     0,     0,
-       0,     0,     0,   525,     0,   523,   523,   523,   523,   523,
-     523,   523,   523,   523,   523,   523,   523,   523,   523,   523,
-     523,     0,     0,     0,     0,   599,     0,     0,     0,     0,
-       0,   251,   252,   253,   254,   255,   256,   257,   290,     0,
-       0,     0,     0,     0,     0,     0,     0,   523,   129,   130,
-       1,   228,   229,    90,   133,   134,   135,   136,    91,     8,
+       0,    78,   555,   560,     0,    78,   529,    78,     0,     0,
+       0,     0,     0,     0,   243,   244,   245,   246,   268,   269,
+       0,   270,     0,     0,   250,   271,   272,     0,     0,   115,
+       0,     0,     0,   586,    78,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   492,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    78,
+     253,   254,   255,   256,   257,   258,   259,    78,     0,     0,
+       0,     0,     0,     0,   507,     0,     0,     0,     0,     0,
+     513,   514,     0,   516,   517,   299,     0,     0,     0,     0,
+      78,   300,     0,     0,     0,     0,     0,     0,     0,   243,
+     244,   245,   246,   268,   269,     0,   270,   301,     0,   250,
+     271,   272,     0,   302,     0,     0,     0,     0,     0,     0,
+       0,   243,   244,   245,   246,   268,   269,     0,   270,     0,
+       0,   250,   271,   272,     0,     0,     0,     0,     0,     0,
+     531,   531,   531,   531,     0,   253,   254,   255,   256,   257,
+     258,   259,     0,     0,     0,     0,   542,   543,   544,   545,
+       0,     0,   546,   547,   548,   549,     0,   253,   254,   255,
+     256,   257,   258,   259,     0,     0,   303,     0,     0,     0,
+       0,     0,   304,     0,     0,     0,     0,     0,     0,     0,
+     243,   244,   245,   246,   268,   269,     0,   270,     0,     0,
+     250,   271,   272,     0,   513,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   531,   531,   531,   531,   531,
+     531,   531,   531,   531,   531,   531,   531,   531,   531,   531,
+     531,     0,     0,     0,     0,   607,   253,   254,   255,   256,
+     257,   258,   259,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   531,   228,   229,
+       1,   230,   231,    90,   133,   134,   135,   136,    91,     8,
       92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
       18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
       27,    28,   104,   105,   106,   107,     0,     0,     0,     0,
@@ -1072,55 +1059,55 @@ static const yytype_int16 yytable[] =
       52,    53,    54,    55,    56,    57,    58,    59,   144,    61,
       62,   145,    64,    65,   108,   109,   110,   111,     0,     0,
        0,   112,     0,     0,     0,   146,   147,     0,     0,     0,
-       0,   166,     0,   149,     0,   230,   129,   130,     1,   131,
+       0,   166,     0,   149,     0,   232,   129,   130,     1,   131,
      132,    90,   133,   134,   135,   136,    91,     8,    92,    93,
       10,    94,    95,    96,    97,    15,    16,    98,    18,    99,
-     240,    21,   100,   101,   102,   103,    25,     0,    27,    28,
-     104,   105,   106,   107,   241,   242,   243,   244,   245,   246,
-     139,   247,    37,    38,   248,   249,   250,   140,    42,   141,
+     242,    21,   100,   101,   102,   103,    25,     0,    27,    28,
+     104,   105,   106,   107,   243,   244,   245,   246,   247,   248,
+     139,   249,    37,    38,   250,   251,   252,   140,    42,   141,
       44,   142,    46,   143,    48,    49,    50,    51,    52,    53,
       54,    55,    56,    57,    58,    59,   144,    61,    62,   145,
       64,    65,   108,   109,   110,   111,     0,     0,     0,   112,
-     251,   252,   253,   254,   255,   256,   257,     0,   258,   166,
+     253,   254,   255,   256,   257,   258,   259,     0,   260,   166,
        0,   149,   129,   130,     1,   131,   132,    90,   133,   134,
      135,   136,    91,     8,    92,    93,    10,    94,    95,    96,
-      97,    15,   274,    98,    18,    99,    20,    21,   100,   101,
+      97,    15,   276,    98,    18,    99,    20,    21,   100,   101,
      102,   103,    25,     0,    27,    28,   104,   105,   106,   107,
-     241,   242,   243,   244,   245,   246,   139,   247,   275,   276,
-     248,   249,   250,   140,    42,   141,    44,   142,    46,   143,
+     243,   244,   245,   246,   247,   248,   139,   249,   277,   278,
+     250,   251,   252,   140,    42,   141,    44,   142,    46,   143,
       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
       58,    59,   144,    61,    62,   145,    64,    65,   108,   109,
-     110,   111,     0,     0,     0,   112,   251,   252,   253,   254,
-     255,   256,   257,     0,   258,   166,     0,   149,   129,   130,
+     110,   111,     0,     0,     0,   112,   253,   254,   255,   256,
+     257,   258,   259,     0,   260,   166,     0,   149,   129,   130,
        1,   131,   132,    90,   133,   134,   135,   136,    91,     8,
       92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
       18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
-     285,    28,   104,   105,   106,   107,   241,   242,   243,   244,
-     245,   246,   139,   247,    37,    38,   248,   249,   250,   140,
+     287,    28,   104,   105,   106,   107,   243,   244,   245,   246,
+     247,   248,   139,   249,    37,    38,   250,   251,   252,   140,
       42,   141,    44,   142,    46,   143,    48,    49,    50,    51,
       52,    53,    54,    55,    56,    57,    58,    59,   144,    61,
       62,   145,    64,    65,   108,   109,   110,   111,     0,     0,
-       0,   112,   251,   252,   253,   254,   255,   256,   257,     0,
-     258,   166,     0,   149,   129,   130,     1,   131,   132,    90,
+       0,   112,   253,   254,   255,   256,   257,   258,   259,     0,
+     260,   166,     0,   149,   129,   130,     1,   131,   132,    90,
      133,   134,   135,   136,    91,     8,    92,    93,    10,    94,
       95,    96,    97,    15,    16,    98,    18,    99,    20,    21,
      100,   101,   102,   103,    25,     0,    27,    28,   104,   105,
-     106,   107,   241,   242,   243,   244,   245,   246,   139,   247,
-      37,    38,   248,   249,   250,   140,    42,   141,    44,   142,
+     106,   107,   243,   244,   245,   246,   247,   248,   139,   249,
+      37,    38,   250,   251,   252,   140,    42,   141,    44,   142,
       46,   143,    48,    49,    50,    51,    52,    53,    54,    55,
       56,    57,    58,    59,   144,    61,    62,   145,    64,    65,
-     108,   109,   110,   111,     0,     0,     0,   112,   251,   252,
-     253,   254,   255,   256,   257,     0,   258,   166,     0,   149,
+     108,   109,   110,   111,     0,     0,     0,   112,   253,   254,
+     255,   256,   257,   258,   259,     0,   260,   166,     0,   149,
      129,   130,     1,   131,   132,    90,   133,   134,   135,   136,
       91,     8,    92,    93,    10,    94,    95,    96,    97,    15,
-      16,    98,    18,    99,   311,    21,   100,   101,   102,   103,
-      25,     0,    27,    28,   104,   105,   106,   107,   241,   242,
-     243,   244,   245,   246,   139,   247,    37,    38,   248,   249,
-     250,   140,    42,   141,    44,   142,    46,   143,    48,    49,
+      16,    98,    18,    99,   313,    21,   100,   101,   102,   103,
+      25,     0,    27,    28,   104,   105,   106,   107,   243,   244,
+     245,   246,   247,   248,   139,   249,    37,    38,   250,   251,
+     252,   140,    42,   141,    44,   142,    46,   143,    48,    49,
       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
      144,    61,    62,   145,    64,    65,   108,   109,   110,   111,
-       0,     0,     0,   112,   251,   252,   253,   254,   255,   256,
-     257,     0,     0,   166,     0,   149,   129,   130,     1,   131,
+       0,     0,     0,   112,   253,   254,   255,   256,   257,   258,
+     259,     0,     0,   166,     0,   149,   129,   130,     1,   131,
      132,    90,   133,   134,   135,   136,    91,     8,    92,    93,
       10,    94,    95,    96,    97,    15,    16,    98,    18,    99,
       20,    21,   100,   101,   102,   103,    25,     0,    27,    28,
@@ -1139,7 +1126,7 @@ static const yytype_int16 yytable[] =
       48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
       58,    59,   144,    61,    62,   145,    64,    65,   108,   109,
      110,   111,     0,     0,     0,   112,     0,     0,     0,   146,
-     147,     0,     0,     0,     0,   166,   295,   149,   129,   130,
+     147,     0,     0,     0,     0,   166,   297,   149,   129,   130,
        1,   131,   132,    90,   133,   134,   135,   136,    91,     8,
       92,    93,    10,    94,    95,    96,    97,    15,    16,    98,
       18,    99,    20,    21,   100,   101,   102,   103,    25,     0,
@@ -1149,7 +1136,7 @@ static const yytype_int16 yytable[] =
       52,    53,    54,    55,    56,    57,    58,    59,   144,    61,
       62,   145,    64,    65,   108,   109,   110,   111,     0,     0,
        0,   112,     0,     0,     0,   146,   147,     0,     0,     0,
-       0,   166,   337,   149,   129,   130,     1,   131,   132,    90,
+       0,   166,   341,   149,   129,   130,     1,   131,   132,    90,
      133,   134,   135,   136,    91,     8,    92,    93,    10,    94,
       95,    96,    97,    15,    16,    98,    18,    99,    20,    21,
      100,   101,   102,   103,    25,     0,    27,    28,   104,   105,
@@ -1158,7 +1145,7 @@ static const yytype_int16 yytable[] =
       46,   143,    48,    49,    50,    51,    52,    53,    54,    55,
       56,    57,    58,    59,   144,    61,    62,   145,    64,    65,
      108,   109,   110,   111,     0,     0,     0,   112,     0,     0,
-       0,   146,   147,     0,     0,     0,     0,   166,   434,   149,
+       0,   146,   147,     0,     0,     0,     0,   166,   438,   149,
      129,   130,     1,   131,   132,    90,   133,   134,   135,   136,
       91,     8,    92,    93,    10,    94,    95,    96,    97,    15,
       16,    98,    18,    99,    20,    21,   100,   101,   102,   103,
@@ -1168,7 +1155,7 @@ static const yytype_int16 yytable[] =
       50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
      144,    61,    62,   145,    64,    65,   108,   109,   110,   111,
        0,     0,     0,   112,     0,     0,     0,   146,   147,     0,
-       0,     0,     0,   166,   493,   149,   129,   130,     1,   131,
+       0,     0,     0,   166,   501,   149,   129,   130,     1,   131,
      132,    90,   133,   134,   135,   136,    91,     8,    92,    93,
      137,    94,    95,    96,    97,    15,    16,    98,   138,    99,
       20,    21,   100,   101,   102,   103,    25,     0,    27,    28,
@@ -1221,9 +1208,9 @@ static const yytype_int16 yytable[] =
       10,    94,    95,    96,    97,    15,    16,    98,    18,    99,
       20,    21,   100,   101,   102,   103,    25,     0,    27,    28,
      104,   105,   106,   107,     0,     0,     0,     0,    33,    34,
-     139,    36,    37,    38,     0,    39,    40,   140,   419,   141,
-     420,   142,   421,   143,   422,    49,    50,    51,    52,    53,
-      54,    55,   423,   424,   425,    59,   144,    61,   426,   427,
+     139,    36,    37,    38,     0,    39,    40,   140,   423,   141,
+     424,   142,   425,   143,   426,    49,    50,    51,    52,    53,
+      54,    55,   427,   428,   429,    59,   144,    61,   430,   431,
       64,    65,   108,   109,   110,   111,     0,     0,     0,   112,
        0,     0,     0,   146,   147,     0,     0,     0,     0,   166,
        0,   149,   129,   130,     1,   131,   132,    90,   133,   134,
@@ -1232,8 +1219,8 @@ static const yytype_int16 yytable[] =
      102,   103,    25,     0,    27,    28,   104,   105,   106,   107,
        0,     0,     0,     0,    33,    34,   139,    36,    37,    38,
        0,    39,    40,   140,    42,   141,    44,   142,    46,   143,
-      48,    49,    50,    51,    52,    53,    54,    55,   423,   424,
-      58,    59,   144,    61,   426,   427,    64,    65,   108,   109,
+      48,    49,    50,    51,    52,    53,    54,    55,   427,   428,
+      58,    59,   144,    61,   430,   431,    64,    65,   108,   109,
      110,   111,     0,     0,     0,   112,     0,     0,     0,   146,
      147,     0,     0,     0,     0,   166,     0,   149,   129,   130,
        1,   131,   132,    90,   133,   134,   135,   136,    91,     8,
@@ -1242,8 +1229,8 @@ static const yytype_int16 yytable[] =
       27,    28,   104,   105,   106,   107,     0,     0,     0,     0,
       33,    34,   139,    36,    37,    38,     0,    39,    40,   140,
       42,   141,    44,   142,    46,   143,    48,    49,    50,    51,
-      52,    53,    54,    55,   479,   480,    58,    59,   144,    61,
-     481,   482,    64,    65,   108,   109,   110,   111,     0,     0,
+      52,    53,    54,    55,   487,   488,    58,    59,   144,    61,
+     489,   490,    64,    65,   108,   109,   110,   111,     0,     0,
        0,   112,     0,     0,     0,   146,   147,     0,     0,     0,
        0,   166,     0,   149,   129,   130,     1,   131,   132,    90,
      133,   134,   135,   136,    91,     8,    92,    93,    10,    94,
@@ -1290,7 +1277,7 @@ static const yytype_int16 yytable[] =
       43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,     0,     0,    69,     1,     0,
-      70,     0,     3,     4,     5,     6,     7,     8,   377,     9,
+      70,     0,     3,     4,     5,     6,     7,     8,   381,     9,
       10,    11,    12,    13,    14,    15,    16,     0,    18,    19,
       20,    21,    22,    23,    24,     0,    25,    26,    27,    28,
        0,    30,    31,    32,     0,     0,     0,     0,    33,    34,
@@ -1298,7 +1285,7 @@ static const yytype_int16 yytable[] =
       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
       64,    65,    66,    67,     0,     0,    69,     1,     0,    70,
-       0,     3,     4,     5,     6,     7,     8,   400,     9,    10,
+       0,     3,     4,     5,     6,     7,     8,   404,     9,    10,
       11,    12,    13,    14,    15,    16,     0,    18,    19,    20,
       21,    22,    23,    24,     0,    25,    26,    27,    28,     0,
       30,    31,    32,     0,     0,     0,     0,    33,    34,    35,
@@ -1306,7 +1293,7 @@ static const yytype_int16 yytable[] =
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
       65,    66,    67,     0,     0,    69,     1,     0,    70,     0,
-       3,     4,     5,     6,     7,     8,   517,     9,    10,    11,
+       3,     4,     5,     6,     7,     8,   525,     9,    10,    11,
       12,    13,    14,    15,    16,     0,    18,    19,    20,    21,
       22,    23,    24,     0,    25,    26,    27,    28,     0,    30,
       31,    32,     0,     0,     0,     0,    33,    34,    35,    36,
@@ -1314,7 +1301,7 @@ static const yytype_int16 yytable[] =
       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
       56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
       66,    67,     0,     0,    69,     1,     0,    70,     0,     3,
-       4,     5,     6,     7,     8,   546,     9,    10,    11,    12,
+       4,     5,     6,     7,     8,   554,     9,    10,    11,    12,
       13,    14,    15,    16,     0,    18,    19,    20,    21,    22,
       23,    24,     0,    25,    26,    27,    28,     0,    30,    31,
       32,     0,     0,     0,     0,    33,    34,    35,    36,    37,
@@ -1322,194 +1309,202 @@ static const yytype_int16 yytable[] =
       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
       67,     0,     0,     0,     0,     0,    70,     0,     0,     0,
-       0,     0,     0,     0,   466,     1,   439,   440,    90,     3,
+       0,     0,     0,     0,   474,   445,   446,     1,   447,   448,
+      90,     3,     4,     5,     6,    91,     8,    92,    93,    10,
+      94,    95,    96,    97,    15,    16,    98,    18,    99,    20,
+      21,   100,   101,   102,   103,    25,     0,    27,    28,   104,
+     105,   106,   107,     0,     0,     0,     0,    33,    34,    35,
+      36,    37,    38,     0,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,   108,   109,   110,   111,     0,     1,     0,   112,    90,
+       3,     4,     5,     6,    91,     8,    92,    93,    10,    94,
+      95,    96,    97,    15,    16,    98,    18,    99,    20,    21,
+     100,   101,   102,   103,    25,     0,    27,    28,   104,   105,
+     106,   107,     0,     0,     0,     0,    33,    34,    35,    36,
+      37,    38,     0,    39,    40,    41,    42,    43,    44,    45,
+      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
+      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
+     108,   109,   110,   111,     0,     1,     0,   112,    90,     3,
        4,     5,     6,    91,     8,    92,    93,    10,    94,    95,
       96,    97,    15,    16,    98,    18,    99,    20,    21,   100,
      101,   102,   103,    25,     0,    27,    28,   104,   105,   106,
      107,     0,     0,     0,     0,    33,    34,    35,    36,    37,
       38,     0,    39,    40,    41,    42,    43,    44,    45,    46,
       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,   108,
+      57,    58,    59,   174,    61,    62,    63,    64,    65,   108,
      109,   110,   111,     0,     1,     0,   112,    90,     3,     4,
        5,     6,    91,     8,    92,    93,    10,    94,    95,    96,
       97,    15,    16,    98,    18,    99,    20,    21,   100,   101,
      102,   103,    25,     0,    27,    28,   104,   105,   106,   107,
        0,     0,     0,     0,    33,    34,    35,    36,    37,    38,
        0,    39,    40,    41,    42,    43,    44,    45,    46,    47,
-      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
-      58,    59,    60,    61,    62,    63,    64,    65,   108,   109,
-     110,   111,     0,     1,     0,   112,    90,     3,     4,     5,
+      48,   215,   216,   217,   218,   219,    54,   220,    56,    57,
+      58,   221,    60,    61,    62,    63,    64,    65,   108,   109,
+     110,   111,     0,     1,     0,   112,    90,   133,   134,     5,
        6,    91,     8,    92,    93,    10,    94,    95,    96,    97,
       15,    16,    98,    18,    99,    20,    21,   100,   101,   102,
      103,    25,     0,    27,    28,   104,   105,   106,   107,     0,
        0,     0,     0,    33,    34,    35,    36,    37,    38,     0,
-      39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
+      39,    40,   140,    42,   141,    44,   142,    46,   143,    48,
       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,   174,    61,    62,    63,    64,    65,   108,   109,   110,
-     111,     0,     1,     0,   112,    90,     3,     4,     5,     6,
-      91,     8,    92,    93,    10,    94,    95,    96,    97,    15,
-      16,    98,    18,    99,    20,    21,   100,   101,   102,   103,
-      25,     0,    27,    28,   104,   105,   106,   107,     0,     0,
-       0,     0,    33,    34,    35,    36,    37,    38,     0,    39,
-      40,    41,    42,    43,    44,    45,    46,    47,    48,   215,
-     216,   217,   218,   219,    54,   220,    56,    57,    58,   221,
-      60,    61,    62,    63,    64,    65,   108,   109,   110,   111,
-       0,     1,     0,   112,    90,   133,   134,     5,     6,    91,
-       8,    92,    93,    10,    94,    95,    96,    97,    15,    16,
-      98,    18,    99,    20,    21,   100,   101,   102,   103,    25,
-       0,    27,    28,   104,   105,   106,   107,     0,     0,     0,
+      59,   384,    61,    62,    63,    64,    65,   108,   109,   110,
+     111,     1,     0,     0,   112,     3,     4,     5,     6,     7,
+       8,     0,     9,    10,    11,    12,    13,     0,    15,    16,
+       0,    18,    19,    20,    21,    22,   101,    24,     0,    25,
+       0,    27,    28,     0,    30,    31,    32,     0,     0,     0,
        0,    33,    34,    35,    36,    37,    38,     0,    39,    40,
-     140,    42,   141,    44,   142,    46,   143,    48,    49,    50,
-      51,    52,    53,    54,    55,    56,    57,    58,    59,   380,
-      61,    62,    63,    64,    65,   108,   109,   110,   111,     1,
-       0,     0,   112,     3,     4,     5,     6,     7,     8,     0,
-       9,    10,    11,    12,    13,     0,    15,    16,     0,    18,
-      19,    20,    21,    22,   101,    24,     0,    25,     0,    27,
-      28,     0,    30,    31,    32,     0,     0,     0,     0,    33,
-      34,    35,    36,    37,    38,     0,    39,    40,    41,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,   497,    67,     0,     0,     0,     0,     0,
-      70,     0,     0,     0,     0,     0,   498,   241,   242,   243,
-     244,   266,   267,     0,   268,     0,     0,   248,   269,   270,
-     241,   242,   243,   244,   266,   267,   570,   268,     0,     0,
-     248,   269,   270,     0,     0,     0,     0,     0,     0,     0,
-     554,   555,     0,   556,   557,   558,     0,   559,     0,     0,
-     560,   561,   562,   251,   252,   253,   254,   255,   256,   257,
-       0,     0,     0,     0,   265,     0,   251,   252,   253,   254,
-     255,   256,   257,   241,   242,   243,   244,   266,   267,     0,
-     268,     0,     0,   248,   269,   270,   563,   564,   565,   566,
-     567,   568,   569,   241,   242,   243,   244,   266,   267,     0,
-     268,     0,     0,   248,   269,   270,   241,   242,   243,   244,
-     266,   267,     0,   268,     0,     0,   248,   269,   270,   251,
-     252,   253,   254,   255,   256,   257,   241,   242,   243,   244,
-     266,   267,     0,   268,     0,     0,   248,   269,   270,   251,
-     252,   253,   254,   255,   256,   257,     0,   327,     0,   328,
-       0,     0,   251,   252,   253,   254,   255,   256,   257,     0,
-     406,     0,   328,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   251,   252,   253,   254,   255,   256,   257,     0,
-       0,     0,   328,   358,   359,   360,   361,   362,   363,     0,
-     364,     0,     0,   365,   366,   367,   241,   242,   243,   244,
-     266,   267,     0,   268,     0,     0,   248,   269,   270,   241,
-     242,   243,   244,   266,   267,     0,   268,     0,     0,   248,
-     269,   270,     0,     0,     0,     0,     0,     0,     0,   368,
-     369,   370,   371,   372,   373,   374,     0,   375,     0,     0,
-       0,     0,   251,   252,   253,   254,   255,   256,   257,   388,
-       0,     0,     0,     0,     0,   251,   252,   253,   254,   255,
-     256,   257,   485,   241,   242,   243,   244,   266,   267,     0,
-     268,     0,     0,   248,   269,   270,   241,   242,   243,   244,
-     266,   267,     0,   268,     0,     0,   248,   269,   270,   241,
-     242,   243,   244,   266,   267,     0,   268,     0,     0,   248,
-     269,   270,     0,     0,     0,     0,     0,     0,     0,   251,
-     252,   253,   254,   255,   256,   257,   489,     0,     0,     0,
-       0,     0,   251,   252,   253,   254,   255,   256,   257,   519,
-       0,     0,     0,     0,     0,   251,   252,   253,   254,   255,
-     256,   257,   579,   241,   242,   243,   244,   266,   267,     0,
-     268,     0,     0,   248,   269,   270,     0,     0,     0,     0,
-       0,   241,   242,   243,   244,   266,   267,     0,   268,     0,
-       0,   248,   269,   270,   241,   242,   243,   244,   266,   267,
-       0,   268,     0,     0,   248,   269,   270,     0,     0,   251,
-     252,   253,   254,   255,   256,   257,   602,   325,   326,     0,
-       0,     0,     0,     0,     0,     0,     0,   251,   252,   253,
-     254,   255,   256,   257,     0,     0,     0,     0,     0,     0,
-     251,   252,   253,   254,   255,   256,   257,   358,   359,   360,
-     361,   362,   363,     0,   364,     0,     0,   365,   366,   367,
-     554,   555,     0,   556,   557,   558,     0,   559,     0,     0,
-     560,   561,   562,   241,   242,   243,   244,     0,     0,     0,
-     268,     0,     0,   248,   269,   270,     0,     0,     0,     0,
-       0,     0,     0,   368,   369,   370,   371,   372,   373,   374,
-       0,     0,     0,     0,     0,     0,   563,   564,   565,   566,
-     567,   568,   569,     0,     0,     0,     0,     0,     0,   251,
-     252,   253,   254,   255,   256,   257,   554,   555,     0,   556,
-       0,     0,     0,   559,     0,     0,   560,   561,   562,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    64,    65,   305,    67,     0,     0,     0,
+       0,   306,    70,     0,     0,     0,     0,     0,   503,   243,
+     244,   245,   246,   268,   269,     0,   270,     0,     0,   250,
+     271,   272,   243,   244,   245,   246,   268,   269,   504,   270,
+       0,     0,   250,   271,   272,     0,     0,     0,     0,     0,
+       0,     0,   243,   244,   245,   246,   268,   269,     0,   270,
+       0,     0,   250,   271,   272,   253,   254,   255,   256,   257,
+     258,   259,     0,     0,     0,     0,     0,     0,   253,   254,
+     255,   256,   257,   258,   259,     0,     0,     0,     0,     0,
+       0,   505,     0,     0,     0,     0,     0,     0,   253,   254,
+     255,   256,   257,   258,   259,   243,   244,   245,   246,   268,
+     269,   506,   270,     0,     0,   250,   271,   272,     0,     0,
+       0,     0,     0,     0,   578,   243,   244,   245,   246,   268,
+     269,     0,   270,     0,     0,   250,   271,   272,   562,   563,
+       0,   564,   565,   566,     0,   567,     0,     0,   568,   569,
+     570,   253,   254,   255,   256,   257,   258,   259,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   253,   254,   255,   256,   257,   258,   259,     0,     0,
+       0,     0,     0,   291,   571,   572,   573,   574,   575,   576,
+     577,   243,   244,   245,   246,   268,   269,   267,   270,     0,
+       0,   250,   271,   272,     0,     0,   243,   244,   245,   246,
+     268,   269,     0,   270,     0,     0,   250,   271,   272,   243,
+     244,   245,   246,   268,   269,     0,   270,     0,     0,   250,
+     271,   272,     0,     0,     0,     0,     0,   253,   254,   255,
+     256,   257,   258,   259,   292,     0,     0,     0,     0,     0,
+       0,     0,   253,   254,   255,   256,   257,   258,   259,     0,
+       0,     0,     0,     0,     0,   253,   254,   255,   256,   257,
+     258,   259,     0,   329,     0,   330,   243,   244,   245,   246,
+     268,   269,     0,   270,     0,     0,   250,   271,   272,   243,
+     244,   245,   246,   268,   269,     0,   270,     0,     0,   250,
+     271,   272,   362,   363,   364,   365,   366,   367,     0,   368,
+       0,     0,   369,   370,   371,     0,     0,     0,     0,     0,
+       0,     0,   253,   254,   255,   256,   257,   258,   259,     0,
+     410,     0,   330,     0,     0,   253,   254,   255,   256,   257,
+     258,   259,     0,     0,     0,   330,     0,     0,   372,   373,
+     374,   375,   376,   377,   378,     0,   379,   243,   244,   245,
+     246,   268,   269,     0,   270,     0,     0,   250,   271,   272,
+     243,   244,   245,   246,   268,   269,     0,   270,     0,     0,
+     250,   271,   272,   243,   244,   245,   246,   268,   269,     0,
+     270,     0,     0,   250,   271,   272,     0,     0,     0,     0,
+       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
+     392,     0,     0,     0,     0,     0,   253,   254,   255,   256,
+     257,   258,   259,   493,     0,     0,     0,     0,     0,   253,
+     254,   255,   256,   257,   258,   259,   497,   243,   244,   245,
+     246,   268,   269,     0,   270,     0,     0,   250,   271,   272,
+     243,   244,   245,   246,   268,   269,     0,   270,     0,     0,
+     250,   271,   272,   243,   244,   245,   246,   268,   269,     0,
+     270,     0,     0,   250,   271,   272,     0,     0,     0,     0,
+       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
+     527,     0,     0,     0,     0,     0,   253,   254,   255,   256,
+     257,   258,   259,   587,     0,     0,     0,     0,     0,   253,
+     254,   255,   256,   257,   258,   259,   610,   243,   244,   245,
+     246,   268,   269,     0,   270,     0,     0,   250,   271,   272,
+     243,   244,   245,   246,   268,   269,     0,   270,     0,     0,
+     250,   271,   272,     0,     0,   362,   363,   364,   365,   366,
+     367,     0,   368,   327,   328,   369,   370,   371,     0,     0,
+       0,     0,     0,   253,   254,   255,   256,   257,   258,   259,
+       0,     0,     0,     0,     0,     0,   253,   254,   255,   256,
+     257,   258,   259,     0,     0,     0,     0,     0,     0,     0,
+       0,   372,   373,   374,   375,   376,   377,   378,   562,   563,
+       0,   564,   565,   566,     0,   567,     0,     0,   568,   569,
+     570,   562,   563,     0,   564,     0,     0,     0,   567,     0,
+       0,   568,   569,   570,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   563,   564,   565,   566,   567,   568,   569
+       0,     0,     0,     0,   571,   572,   573,   574,   575,   576,
+     577,     0,     0,     0,     0,     0,     0,   571,   572,   573,
+     574,   575,   576,   577
 };
 
 static const yytype_int16 yycheck[] =
 {
-       0,     0,    24,     7,    70,    32,    12,   237,    14,    13,
-     379,     2,     9,   391,    16,   377,    22,    31,    49,   388,
-      11,   517,   261,    49,    30,    31,    17,    15,   258,    34,
-      23,    95,    96,    24,    95,    68,   405,    31,    29,    44,
-      67,    32,    75,   549,    10,    11,    34,    23,    95,    97,
-     546,    44,    28,   101,    42,    43,    44,    45,    46,    47,
-      66,    49,    93,    94,    52,    53,    54,    93,    94,   575,
-      70,    22,    78,    73,    73,     0,    67,    68,    68,    30,
-      31,    95,    84,    68,    96,    75,    83,    68,   100,    55,
-      75,    57,   117,    59,    75,    61,    69,   327,    95,   338,
-      88,    89,    90,    91,    92,    93,    94,   469,    74,   134,
-     135,   136,   118,   119,   120,   121,    68,    95,   357,    96,
-      49,   163,    55,    75,    57,    95,    59,    78,    61,   171,
-      49,   137,   138,    52,   140,   141,   142,   143,    95,   145,
-     182,   168,   148,    97,    49,   375,    95,    52,    36,    37,
-     519,    95,   194,   144,   532,   517,    49,    95,   149,    95,
-     166,   188,    91,    92,    93,    94,    28,   173,    95,    96,
-     212,    90,    91,    92,    93,    94,   406,   168,    95,    96,
-      95,   172,    95,   174,   546,    90,    91,    92,    93,    94,
-      28,   197,   275,   276,    95,    95,   435,   188,    91,    92,
-      93,    94,   571,    95,    95,   196,   419,   420,   421,   422,
-     579,    95,   425,    95,   101,   101,    96,   100,   209,   100,
-      26,    95,    95,   289,    28,    26,   465,   480,   481,   482,
-      96,    16,    95,   602,    95,   241,   242,   243,   244,   245,
+       0,     0,    24,     7,   383,    32,    12,   381,    14,    13,
+     395,     2,    70,   392,   239,     9,    22,    31,   263,    16,
+      11,   525,   557,    31,    30,    31,    17,    23,    95,    34,
+     409,    23,    28,    24,   163,   260,    95,    22,    29,    44,
+      67,    32,   171,    10,    11,    30,    31,    68,   583,   163,
+     554,    49,    44,   182,    75,    68,    68,   171,    36,    37,
+      66,     0,    75,    75,    95,   194,    49,    97,   182,    95,
+      70,   101,    78,    73,    73,    95,    67,    68,    68,    49,
+     194,    95,    52,   212,    49,    75,    96,    84,    55,    83,
+      57,    28,    59,    78,    61,    93,    94,   342,   212,    68,
+     117,    95,    49,   477,   329,    52,    75,    74,    91,    92,
+      93,    94,   118,   119,   120,   121,   361,   134,   135,   136,
+      90,    91,    92,    93,    94,    97,    91,    92,    93,    94,
+      28,   137,   138,    69,   140,   141,   142,   143,    95,   145,
+      95,   168,   148,    90,    91,    92,    93,    94,   527,    95,
+      96,   525,    96,   144,   379,   540,   100,    49,   149,   101,
+     166,   188,    95,    42,    43,    44,    45,   173,    95,    96,
+      49,    95,    96,    52,    53,    54,    95,   168,   277,   278,
+     554,   172,    95,   174,    95,   410,   423,   424,   425,   426,
+      95,   197,   429,    95,   439,    95,    95,   188,    95,    95,
+     579,    93,    94,    96,    26,   196,   101,   101,   587,    88,
+      89,    90,    91,    92,    93,    94,   101,    55,   209,    57,
+     100,    59,   100,    61,    95,    28,    95,    26,   473,    96,
+      16,   610,    95,   291,    95,    95,    86,   243,   244,   245,
      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
-     256,   257,   274,   275,   276,   494,    95,    86,    98,   101,
-     266,   267,   268,   269,   270,   265,   265,    85,    95,     9,
-     274,   275,   276,    28,    70,    98,   282,    34,    95,   285,
-      95,    95,    98,   274,   275,   276,    70,    84,    70,   289,
-     290,    85,   298,    95,   300,    85,   302,    85,   304,    73,
-      95,   554,   555,   556,   557,   558,   559,   560,   561,   562,
-     563,   564,   565,   566,   567,   568,   569,   116,   117,    95,
-     163,   396,    31,   329,   330,   403,   332,   469,   171,   324,
-     336,   507,   333,   339,   133,   134,   135,   136,    -1,   182,
-     139,   212,   333,   596,    -1,    -1,    -1,   146,   147,    -1,
-      -1,   194,   358,   359,   360,   361,   362,   363,   364,   365,
-     366,   367,   368,   369,   370,   371,   372,   373,   374,   212,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   377,    -1,   379,
-     386,   387,    -1,    -1,    -1,    -1,    -1,    -1,   388,    -1,
-      -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,    34,    -1,
-     391,   392,    -1,   403,    -1,   405,    42,    43,    44,    45,
-      46,    47,   418,    49,    -1,    28,    52,    53,    54,    -1,
-      -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
-      43,    44,    45,    46,    47,    -1,    49,    -1,   444,    52,
-      53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
-     487,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,   469,
-      -1,   471,   471,    -1,    34,    88,    89,    90,    91,    92,
-      93,    94,    42,    43,    44,    45,    46,    47,    -1,    49,
-      -1,    -1,    52,    53,    54,    -1,   487,    -1,   297,    -1,
-     299,    -1,   301,    -1,   303,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   513,   513,   521,    -1,   517,    -1,   519,
-      -1,    -1,    -1,    -1,   323,   324,   325,   326,    88,    89,
-      90,    91,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,
-      -1,   532,    -1,    28,    -1,   551,   546,    -1,    -1,    34,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44,
-      45,    46,    47,    -1,    49,    -1,    -1,    52,    53,    54,
-      -1,   571,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   579,
+     256,   257,   258,   259,   276,   277,   278,   502,   101,    98,
+      85,    95,   268,   269,   270,   271,   272,   267,   267,     9,
+      28,    95,   276,   277,   278,    70,    95,    98,   284,    34,
+      95,   287,    98,    70,    84,   276,   277,   278,    85,   116,
+     117,   291,   292,    70,   300,    85,   302,    95,   304,    95,
+     306,    85,    95,    73,   400,    31,   133,   134,   135,   136,
+     407,   477,   139,   515,   337,   326,    -1,    -1,    -1,   146,
+     147,   212,    -1,    -1,    -1,   331,   332,   333,   334,    -1,
+     336,    -1,    -1,    -1,   340,    -1,    -1,   343,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   337,    -1,   488,   489,
+     490,    -1,    -1,    -1,    -1,    -1,   362,   363,   364,   365,
+     366,   367,   368,   369,   370,   371,   372,   373,   374,   375,
+     376,   377,   378,   487,   488,   489,   490,    -1,    -1,    -1,
+      -1,   381,    -1,   383,   390,   391,    -1,    -1,    -1,    -1,
+      -1,    -1,   392,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   395,   396,    -1,   407,    -1,   409,
+      -1,    -1,    -1,    -1,    -1,    -1,   422,    -1,    -1,    -1,
+      -1,    -1,   562,   563,   564,   565,   566,   567,   568,   569,
+     570,   571,   572,   573,   574,   575,   576,   577,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   452,    -1,   562,   563,
+     564,   565,   566,   567,   568,   569,   570,   571,   572,   573,
+     574,   575,   576,   577,   604,    -1,    -1,    -1,   495,    -1,
+      -1,    -1,   299,    -1,   301,    -1,   303,   477,   305,   479,
+     479,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     604,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   325,   326,
+     327,   328,    -1,    -1,   495,    -1,    -1,    15,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     389,    -1,    -1,    -1,    -1,    -1,    28,    -1,    -1,    -1,
-      -1,    -1,   602,    88,    89,    90,    91,    92,    93,    94,
-      42,    43,    44,    45,    46,    47,    -1,    49,   417,    -1,
-      52,    53,    54,    -1,   423,   424,    28,   426,   427,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   479,   480,   481,   482,
+      -1,   521,   521,   529,    -1,   525,    34,   527,    -1,    -1,
+      -1,    -1,    -1,    -1,    42,    43,    44,    45,    46,    47,
+      -1,    49,    -1,    -1,    52,    53,    54,    -1,    -1,   540,
+      -1,    -1,    -1,   559,   554,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   393,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   579,
+      88,    89,    90,    91,    92,    93,    94,   587,    -1,    -1,
+      -1,    -1,    -1,    -1,   421,    -1,    -1,    -1,    -1,    -1,
+     427,   428,    -1,   430,   431,    28,    -1,    -1,    -1,    -1,
+     610,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,
+      43,    44,    45,    46,    47,    -1,    49,    28,    -1,    52,
+      53,    54,    -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    42,    43,    44,    45,    46,    47,    -1,    49,    -1,
+      -1,    52,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,
+     487,   488,   489,   490,    -1,    88,    89,    90,    91,    92,
+      93,    94,    -1,    -1,    -1,    -1,   503,   504,   505,   506,
+      -1,    -1,   509,   510,   511,   512,    -1,    88,    89,    90,
+      91,    92,    93,    94,    -1,    -1,    28,    -1,    -1,    -1,
+      -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
-      52,    53,    54,    -1,    -1,    -1,    88,    89,    90,    91,
+      52,    53,    54,    -1,   551,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   562,   563,   564,   565,   566,
+     567,   568,   569,   570,   571,   572,   573,   574,   575,   576,
+     577,    -1,    -1,    -1,    -1,   582,    88,    89,    90,    91,
       92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     479,   480,   481,   482,    -1,    -1,    88,    89,    90,    91,
-      92,    93,    94,    -1,    -1,    -1,   495,   496,   497,   498,
-      -1,    -1,   501,   502,   503,   504,    -1,    -1,    -1,    -1,
-      -1,   554,   555,   556,   557,   558,   559,   560,   561,   562,
-     563,   564,   565,   566,   567,   568,   569,    34,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    42,    43,    44,    45,    46,
-      47,    -1,    49,    -1,   543,    52,    53,    54,    -1,    -1,
-      -1,    -1,    -1,   596,    -1,   554,   555,   556,   557,   558,
-     559,   560,   561,   562,   563,   564,   565,   566,   567,   568,
-     569,    -1,    -1,    -1,    -1,   574,    -1,    -1,    -1,    -1,
-      -1,    88,    89,    90,    91,    92,    93,    94,    95,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   596,     4,     5,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   604,     4,     5,
        6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
       16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,    31,    32,    33,    34,    -1,
@@ -1769,7 +1764,23 @@ static const yytype_int16 yycheck[] =
       61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
       71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
       81,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    95,     6,     7,     8,     9,    10,
+      -1,    -1,    -1,    -1,    95,     4,     5,     6,     7,     8,
+       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    33,    34,    -1,    36,    37,    38,
+      39,    40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,
+      49,    50,    51,    -1,    53,    54,    55,    56,    57,    58,
+      59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
+      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
+      79,    80,    81,    82,    83,    -1,     6,    -1,    87,     9,
+      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    -1,    36,    37,    38,    39,
+      40,    41,    -1,    -1,    -1,    -1,    46,    47,    48,    49,
+      50,    51,    -1,    53,    54,    55,    56,    57,    58,    59,
+      60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    83,    -1,     6,    -1,    87,     9,    10,
       11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
       21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
       31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
@@ -1793,90 +1804,84 @@ static const yytype_int16 yycheck[] =
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    -1,     6,    -1,    87,     9,    10,    11,    12,    13,
-      14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    -1,    36,    37,    38,    39,    40,    41,    -1,    -1,
-      -1,    -1,    46,    47,    48,    49,    50,    51,    -1,    53,
-      54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
-      64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
-      -1,     6,    -1,    87,     9,    10,    11,    12,    13,    14,
-      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
-      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      -1,    36,    37,    38,    39,    40,    41,    -1,    -1,    -1,
+      83,     6,    -1,    -1,    87,    10,    11,    12,    13,    14,
+      15,    -1,    17,    18,    19,    20,    21,    -1,    23,    24,
+      -1,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
+      -1,    36,    37,    -1,    39,    40,    41,    -1,    -1,    -1,
       -1,    46,    47,    48,    49,    50,    51,    -1,    53,    54,
       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-      75,    76,    77,    78,    79,    80,    81,    82,    83,     6,
-      -1,    -1,    87,    10,    11,    12,    13,    14,    15,    -1,
-      17,    18,    19,    20,    21,    -1,    23,    24,    -1,    26,
-      27,    28,    29,    30,    31,    32,    -1,    34,    -1,    36,
-      37,    -1,    39,    40,    41,    -1,    -1,    -1,    -1,    46,
-      47,    48,    49,    50,    51,    -1,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    28,    81,    -1,    -1,    -1,    -1,    -1,
-      87,    -1,    -1,    -1,    -1,    -1,    28,    42,    43,    44,
-      45,    46,    47,    -1,    49,    -1,    -1,    52,    53,    54,
-      42,    43,    44,    45,    46,    47,    28,    49,    -1,    -1,
-      52,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      42,    43,    -1,    45,    46,    47,    -1,    49,    -1,    -1,
-      52,    53,    54,    88,    89,    90,    91,    92,    93,    94,
-      -1,    -1,    -1,    -1,    33,    -1,    88,    89,    90,    91,
-      92,    93,    94,    42,    43,    44,    45,    46,    47,    -1,
-      49,    -1,    -1,    52,    53,    54,    88,    89,    90,    91,
-      92,    93,    94,    42,    43,    44,    45,    46,    47,    -1,
-      49,    -1,    -1,    52,    53,    54,    42,    43,    44,    45,
-      46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    88,
-      89,    90,    91,    92,    93,    94,    42,    43,    44,    45,
-      46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    88,
-      89,    90,    91,    92,    93,    94,    -1,    96,    -1,    98,
-      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
-      96,    -1,    98,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
-      -1,    -1,    98,    42,    43,    44,    45,    46,    47,    -1,
-      49,    -1,    -1,    52,    53,    54,    42,    43,    44,    45,
+      75,    76,    77,    78,    79,    28,    81,    -1,    -1,    -1,
+      -1,    34,    87,    -1,    -1,    -1,    -1,    -1,    28,    42,
+      43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    52,
+      53,    54,    42,    43,    44,    45,    46,    47,    28,    49,
+      -1,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    42,    43,    44,    45,    46,    47,    -1,    49,
+      -1,    -1,    52,    53,    54,    88,    89,    90,    91,    92,
+      93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
+      90,    91,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,
+      -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,
+      90,    91,    92,    93,    94,    42,    43,    44,    45,    46,
+      47,    28,    49,    -1,    -1,    52,    53,    54,    -1,    -1,
+      -1,    -1,    -1,    -1,    28,    42,    43,    44,    45,    46,
+      47,    -1,    49,    -1,    -1,    52,    53,    54,    42,    43,
+      -1,    45,    46,    47,    -1,    49,    -1,    -1,    52,    53,
+      54,    88,    89,    90,    91,    92,    93,    94,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    88,    89,    90,    91,    92,    93,    94,    -1,    -1,
+      -1,    -1,    -1,    34,    88,    89,    90,    91,    92,    93,
+      94,    42,    43,    44,    45,    46,    47,    33,    49,    -1,
+      -1,    52,    53,    54,    -1,    -1,    42,    43,    44,    45,
       46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    42,
       43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    52,
-      53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    90,    91,    92,    93,    94,    -1,    96,    -1,    -1,
-      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    95,
+      53,    54,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
+      91,    92,    93,    94,    95,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
       -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-      93,    94,    95,    42,    43,    44,    45,    46,    47,    -1,
-      49,    -1,    -1,    52,    53,    54,    42,    43,    44,    45,
+      93,    94,    -1,    96,    -1,    98,    42,    43,    44,    45,
       46,    47,    -1,    49,    -1,    -1,    52,    53,    54,    42,
       43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    52,
-      53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    90,    91,    92,    93,    94,    95,    -1,    -1,    -1,
-      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    95,
-      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-      93,    94,    95,    42,    43,    44,    45,    46,    47,    -1,
+      53,    54,    42,    43,    44,    45,    46,    47,    -1,    49,
+      -1,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    88,    89,    90,    91,    92,    93,    94,    -1,
+      96,    -1,    98,    -1,    -1,    88,    89,    90,    91,    92,
+      93,    94,    -1,    -1,    -1,    98,    -1,    -1,    88,    89,
+      90,    91,    92,    93,    94,    -1,    96,    42,    43,    44,
+      45,    46,    47,    -1,    49,    -1,    -1,    52,    53,    54,
+      42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
+      52,    53,    54,    42,    43,    44,    45,    46,    47,    -1,
       49,    -1,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,
-      -1,    42,    43,    44,    45,    46,    47,    -1,    49,    -1,
-      -1,    52,    53,    54,    42,    43,    44,    45,    46,    47,
-      -1,    49,    -1,    -1,    52,    53,    54,    -1,    -1,    88,
-      89,    90,    91,    92,    93,    94,    95,    78,    79,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
-      91,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,
-      88,    89,    90,    91,    92,    93,    94,    42,    43,    44,
+      -1,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
+      95,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
+      92,    93,    94,    95,    -1,    -1,    -1,    -1,    -1,    88,
+      89,    90,    91,    92,    93,    94,    95,    42,    43,    44,
       45,    46,    47,    -1,    49,    -1,    -1,    52,    53,    54,
-      42,    43,    -1,    45,    46,    47,    -1,    49,    -1,    -1,
-      52,    53,    54,    42,    43,    44,    45,    -1,    -1,    -1,
+      42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
+      52,    53,    54,    42,    43,    44,    45,    46,    47,    -1,
       49,    -1,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
+      95,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
+      92,    93,    94,    95,    -1,    -1,    -1,    -1,    -1,    88,
+      89,    90,    91,    92,    93,    94,    95,    42,    43,    44,
+      45,    46,    47,    -1,    49,    -1,    -1,    52,    53,    54,
+      42,    43,    44,    45,    46,    47,    -1,    49,    -1,    -1,
+      52,    53,    54,    -1,    -1,    42,    43,    44,    45,    46,
+      47,    -1,    49,    78,    79,    52,    53,    54,    -1,    -1,
+      -1,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
       -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
-      92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    88,
-      89,    90,    91,    92,    93,    94,    42,    43,    -1,    45,
-      -1,    -1,    -1,    49,    -1,    -1,    52,    53,    54,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      92,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    88,    89,    90,    91,    92,    93,    94,    42,    43,
+      -1,    45,    46,    47,    -1,    49,    -1,    -1,    52,    53,
+      54,    42,    43,    -1,    45,    -1,    -1,    -1,    49,    -1,
+      -1,    52,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    88,    89,    90,    91,    92,    93,    94
+      -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,    93,
+      94,    -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,
+      91,    92,    93,    94
 };
 
-  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
-     symbol of state STATE-NUM.  */
+/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
+   state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
        0,     6,     9,    10,    11,    12,    13,    14,    15,    17,
@@ -1901,48 +1906,49 @@ static const yytype_uint8 yystos[] =
      120,     0,   105,   122,   161,    95,    96,    97,   147,   160,
      147,   161,   161,   161,   161,    69,    95,    95,    95,    96,
      147,   147,   161,   161,   160,    63,    64,    65,    66,    67,
-      69,    73,   115,   161,   160,   160,    98,   161,     7,     8,
-     101,   115,   157,   158,   161,   165,   166,    97,    95,    95,
-      28,    42,    43,    44,    45,    46,    47,    49,    52,    53,
-      54,    88,    89,    90,    91,    92,    93,    94,    96,   123,
-     140,   162,   164,    95,   161,    33,    46,    47,    49,    53,
-      54,   116,    95,    95,    24,    50,    51,   115,   161,   115,
-      34,    44,   126,    95,    95,    36,    95,    95,    95,    34,
-      95,    95,   116,    95,   115,    98,   161,    28,    34,    28,
-      34,    28,    34,    28,    34,    55,    57,    59,    61,   145,
-     115,    28,   162,    68,    75,    68,    75,    68,    75,    68,
-      75,    68,    75,    28,    28,    78,    79,    96,    98,   101,
-     101,   100,   101,    96,   100,   100,    96,    98,   166,    26,
+      69,    73,   115,   161,   160,   160,    98,   161,     4,     5,
+       7,     8,   101,   115,   157,   158,   161,   165,   166,    97,
+      95,    95,    28,    42,    43,    44,    45,    46,    47,    49,
+      52,    53,    54,    88,    89,    90,    91,    92,    93,    94,
+      96,   123,   140,   162,   164,    95,   161,    33,    46,    47,
+      49,    53,    54,   116,    95,    95,    24,    50,    51,   115,
+     161,   115,    34,    44,   126,    95,    95,    36,    95,    95,
+      95,    34,    95,    95,   116,    95,   115,    98,   161,    28,
+      34,    28,    34,    28,    34,    28,    34,    55,    57,    59,
+      61,   145,   115,    28,   162,    68,    75,    68,    75,    68,
+      75,    68,    75,    68,    75,    28,    28,    78,    79,    96,
+      98,   101,   101,   101,   101,   100,   101,    96,   100,   100,
+      96,    98,   166,    26,   161,   161,   161,   161,   161,   161,
      161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
-     161,   161,   161,   161,   161,   161,   161,   166,    42,    43,
-      44,    45,    46,    47,    49,    52,    53,    54,    88,    89,
-      90,    91,    92,    93,    94,    96,   123,    95,   118,    95,
-      74,   141,   142,   144,   142,   142,    23,    44,    95,    28,
-     161,     9,    83,    95,   108,   109,   110,   111,   161,   120,
-      95,   118,   134,   135,   136,    95,    96,   160,   161,   160,
-     161,   160,   161,   160,   161,    23,    28,   153,    26,    56,
-      58,    60,    62,    70,    71,    72,    76,    77,   149,   150,
-     160,   149,   160,   160,    98,   166,   161,   161,   161,     7,
-       8,   115,   158,   161,    96,   123,   161,   123,   161,   161,
+     161,   166,    42,    43,    44,    45,    46,    47,    49,    52,
+      53,    54,    88,    89,    90,    91,    92,    93,    94,    96,
+     123,    95,   118,    95,    74,   141,   142,   144,   142,   142,
+      23,    44,    95,    28,   161,     9,    83,    95,   108,   109,
+     110,   111,   161,   120,    95,   118,   134,   135,   136,    95,
+      96,   160,   161,   160,   161,   160,   161,   160,   161,    23,
+      28,   153,    26,    56,    58,    60,    62,    70,    71,    72,
+      76,    77,   149,   150,   160,   149,   160,   160,    98,   166,
+     161,   161,   161,   161,   161,     4,     5,     7,     8,   115,
+     158,   161,    96,   123,   161,   123,   161,   161,   161,   161,
      161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
-     161,   161,   161,   161,   161,   166,    95,   119,   137,   138,
-     139,    16,   134,    95,    95,    95,   161,   161,   134,    70,
-      71,    76,    77,   155,   160,    95,   113,   115,   111,    95,
-      86,   136,   134,    98,   166,    28,    28,    28,    28,   160,
-     161,   153,   153,   153,   153,   160,   160,   153,   160,   160,
-     123,    98,   123,    16,    84,   130,   139,    95,   118,    95,
-      15,    34,    85,   160,   163,   164,   163,   163,   163,    95,
-     116,    95,     9,   123,   160,   160,   160,   160,   160,   160,
-     160,   160,    28,    70,   150,    98,    95,   118,    95,   137,
-     134,    34,   161,    95,    42,    43,    45,    46,    47,    49,
-      52,    53,    54,    88,    89,    90,    91,    92,    93,    94,
-      28,    95,   113,    98,    70,   137,   130,    85,   161,    95,
+     161,   161,   161,   166,    95,   119,   137,   138,   139,    16,
+     134,    95,    95,    95,   161,   161,   134,    70,    71,    76,
+      77,   155,   160,    95,   113,   115,   111,    95,    86,   136,
+     134,    98,   166,    28,    28,    28,    28,   160,   161,   153,
+     153,   153,   153,   160,   160,   153,   160,   160,   123,    98,
+     123,    16,    84,   130,   139,    95,   118,    95,    15,    34,
+      85,   160,   163,   164,   163,   163,   163,    95,   116,    95,
+       9,   123,   160,   160,   160,   160,   160,   160,   160,   160,
+      28,    70,   150,    98,    95,   118,    95,   137,   134,    34,
+     161,    95,    42,    43,    45,    46,    47,    49,    52,    53,
+      54,    88,    89,    90,    91,    92,    93,    94,    28,    95,
+     113,    98,    70,   137,   130,    85,   161,    95,   163,   163,
      163,   163,   163,   163,   163,   163,   163,   163,   163,   163,
-     163,   163,   163,   163,   163,   163,    70,   134,    95,   160,
-     130,    95,    95,   134,   163,   134,    85,    85,    95,    95
+     163,   163,   163,   163,    70,   134,    95,   160,   130,    95,
+      95,   134,   163,   134,    85,    85,    95,    95
 };
 
-  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM.  */
 static const yytype_uint8 yyr1[] =
 {
        0,   102,   103,   104,   104,   105,   105,   105,   105,   105,
@@ -1971,16 +1977,16 @@ static const yytype_uint8 yyr1[] =
      151,   151,   151,   151,   151,   151,   151,   151,   151,   152,
      152,   152,   152,   152,   153,   153,   154,   154,   155,   155,
      155,   155,   155,   156,   156,   156,   157,   157,   158,   158,
-     158,   159,   159,   160,   160,   161,   161,   161,   161,   161,
+     158,   158,   158,   159,   159,   160,   160,   161,   161,   161,
      161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
-     161,   161,   161,   161,   162,   162,   162,   162,   162,   162,
+     161,   161,   161,   161,   161,   161,   162,   162,   162,   162,
      162,   162,   162,   162,   162,   162,   162,   162,   162,   162,
-     162,   162,   162,   163,   163,   163,   163,   163,   163,   163,
+     162,   162,   162,   162,   162,   163,   163,   163,   163,   163,
      163,   163,   163,   163,   163,   163,   163,   163,   163,   163,
-     163,   164,   164,   165,   165,   166,   166
+     163,   163,   163,   164,   164,   165,   165,   166,   166
 };
 
-  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
+/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM.  */
 static const yytype_int8 yyr2[] =
 {
        0,     2,     1,     1,     2,     1,     1,     1,     1,     1,
@@ -2009,13 +2015,13 @@ static const yytype_int8 yyr2[] =
        3,     3,     3,     3,     3,     3,     3,     3,     3,     6,
        6,     6,     6,     6,     1,     1,     2,     4,     1,     2,
        5,     2,     2,     3,     3,     3,     1,     3,     3,     3,
-       3,     2,     2,     1,     1,     1,     1,     3,     3,     3,
+       3,     3,     3,     2,     2,     1,     1,     1,     1,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     1,     1,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     1,     1,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     1,     1,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     1,     1,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
-       3,     4,     4,     0,     1,     1,     3
+       3,     3,     3,     4,     4,     0,     1,     1,     3
 };
 
 
@@ -2027,6 +2033,7 @@ enum { YYENOMEM = -2 };
 #define YYACCEPT        goto yyacceptlab
 #define YYABORT         goto yyabortlab
 #define YYERROR         goto yyerrorlab
+#define YYNOMEM         goto yyexhaustedlab
 
 
 #define YYRECOVERING()  (!!yyerrstatus)
@@ -2067,10 +2074,7 @@ do {                                            \
     YYFPRINTF Args;                             \
 } while (0)
 
-/* This macro is provided for backward compatibility. */
-# ifndef YY_LOCATION_PRINT
-#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-# endif
+
 
 
 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
@@ -2097,10 +2101,6 @@ yy_symbol_value_print (FILE *yyo,
   YY_USE (yyoutput);
   if (!yyvaluep)
     return;
-# ifdef YYPRINT
-  if (yykind < YYNTOKENS)
-    YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
-# endif
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   YY_USE (yykind);
   YY_IGNORE_MAYBE_UNINITIALIZED_END
@@ -2287,37 +2287,37 @@ yydestruct (const char *yymsg,
   switch (yykind)
     {
     case YYSYMBOL_tVARID: /* tVARID  */
-#line 195 "engines/director/lingo/lingo-gr.y"
+#line 194 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
 #line 2293 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tSTRING: /* tSTRING  */
-#line 195 "engines/director/lingo/lingo-gr.y"
+#line 194 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
 #line 2299 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tSYMBOL: /* tSYMBOL  */
-#line 195 "engines/director/lingo/lingo-gr.y"
+#line 194 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
 #line 2305 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE  */
-#line 195 "engines/director/lingo/lingo-gr.y"
+#line 194 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
 #line 2311 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_CMDID: /* CMDID  */
-#line 195 "engines/director/lingo/lingo-gr.y"
+#line 194 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
 #line 2317 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_ID: /* ID  */
-#line 195 "engines/director/lingo/lingo-gr.y"
+#line 194 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
 #line 2323 "engines/director/lingo/lingo-gr.cpp"
         break;
@@ -2387,6 +2387,7 @@ yyparse (void)
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yychar = YYEMPTY; /* Cause a token to be read.  */
+
   goto yysetstate;
 
 
@@ -2412,7 +2413,7 @@ yysetstate:
 
   if (yyss + yystacksize - 1 <= yyssp)
 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
-    goto yyexhaustedlab;
+    YYNOMEM;
 #else
     {
       /* Get the current used size of the three stacks, in elements.  */
@@ -2440,7 +2441,7 @@ yysetstate:
 # else /* defined YYSTACK_RELOCATE */
       /* Extend the stack our own way.  */
       if (YYMAXDEPTH <= yystacksize)
-        goto yyexhaustedlab;
+        YYNOMEM;
       yystacksize *= 2;
       if (YYMAXDEPTH < yystacksize)
         yystacksize = YYMAXDEPTH;
@@ -2451,7 +2452,7 @@ yysetstate:
           YY_CAST (union yyalloc *,
                    YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
         if (! yyptr)
-          goto yyexhaustedlab;
+          YYNOMEM;
         YYSTACK_RELOCATE (yyss_alloc, yyss);
         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
@@ -2473,6 +2474,7 @@ yysetstate:
     }
 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 
+
   if (yystate == YYFINAL)
     YYACCEPT;
 
@@ -2585,1782 +2587,1794 @@ yyreduce:
   switch (yyn)
     {
   case 2: /* script: scriptpartlist  */
-#line 201 "engines/director/lingo/lingo-gr.y"
+#line 200 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2591 "engines/director/lingo/lingo-gr.cpp"
+#line 2593 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 3: /* scriptpartlist: scriptpart  */
-#line 203 "engines/director/lingo/lingo-gr.y"
+#line 202 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		NodeList *list = new NodeList;
 		if ((yyvsp[0].node)) {
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 2602 "engines/director/lingo/lingo-gr.cpp"
+#line 2604 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 4: /* scriptpartlist: scriptpartlist scriptpart  */
-#line 209 "engines/director/lingo/lingo-gr.y"
+#line 208 "engines/director/lingo/lingo-gr.y"
                                                         {
 		if ((yyvsp[0].node)) {
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2612 "engines/director/lingo/lingo-gr.cpp"
+#line 2614 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 5: /* scriptpart: '\n'  */
-#line 216 "engines/director/lingo/lingo-gr.y"
+#line 215 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = nullptr; }
-#line 2618 "engines/director/lingo/lingo-gr.cpp"
+#line 2620 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10: /* scriptpart: tENDCLAUSE endargdef '\n'  */
-#line 221 "engines/director/lingo/lingo-gr.y"
+#line 220 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = nullptr; delete (yyvsp[-2].s); }
-#line 2624 "engines/director/lingo/lingo-gr.cpp"
+#line 2626 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11: /* macro: tMACRO ID idlist '\n' stmtlist  */
-#line 250 "engines/director/lingo/lingo-gr.y"
+#line 249 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2630 "engines/director/lingo/lingo-gr.cpp"
+#line 2632 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12: /* factory: tFACTORY ID '\n' methodlist  */
-#line 254 "engines/director/lingo/lingo-gr.y"
+#line 253 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2636 "engines/director/lingo/lingo-gr.cpp"
+#line 2638 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13: /* method: tMETHOD ID idlist '\n' stmtlist  */
-#line 256 "engines/director/lingo/lingo-gr.y"
+#line 255 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2642 "engines/director/lingo/lingo-gr.cpp"
+#line 2644 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14: /* methodlist: %empty  */
-#line 258 "engines/director/lingo/lingo-gr.y"
+#line 257 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.nodelist) = new NodeList; }
-#line 2648 "engines/director/lingo/lingo-gr.cpp"
+#line 2650 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16: /* nonemptymethodlist: methodlistline  */
-#line 262 "engines/director/lingo/lingo-gr.y"
+#line 261 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		NodeList *list = new NodeList;
 		if ((yyvsp[0].node)) {
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 2659 "engines/director/lingo/lingo-gr.cpp"
+#line 2661 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17: /* nonemptymethodlist: nonemptymethodlist methodlistline  */
-#line 268 "engines/director/lingo/lingo-gr.y"
+#line 267 "engines/director/lingo/lingo-gr.y"
                                                         {
 		if ((yyvsp[0].node)) {
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2669 "engines/director/lingo/lingo-gr.cpp"
+#line 2671 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18: /* methodlistline: '\n'  */
-#line 275 "engines/director/lingo/lingo-gr.y"
+#line 274 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = nullptr; }
-#line 2675 "engines/director/lingo/lingo-gr.cpp"
+#line 2677 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 20: /* methodlistline: tENDCLAUSE endargdef '\n'  */
-#line 277 "engines/director/lingo/lingo-gr.y"
+#line 276 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = nullptr; delete (yyvsp[-2].s); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2683 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 21: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n'  */
-#line 282 "engines/director/lingo/lingo-gr.y"
+#line 281 "engines/director/lingo/lingo-gr.y"
                                                                {	// D3
 		(yyval.node) = new HandlerNode((yyvsp[-6].s), (yyvsp[-5].idlist), (yyvsp[-3].nodelist));
 		checkEnd((yyvsp[-2].s), (yyvsp[-6].s), false);
 		delete (yyvsp[-2].s); }
-#line 2690 "engines/director/lingo/lingo-gr.cpp"
+#line 2692 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 22: /* handler: tON ID idlist '\n' stmtlist  */
-#line 286 "engines/director/lingo/lingo-gr.y"
+#line 285 "engines/director/lingo/lingo-gr.y"
                                       {	// D4. No 'end' clause
 		(yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2697 "engines/director/lingo/lingo-gr.cpp"
+#line 2699 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 24: /* endargdef: ID  */
-#line 291 "engines/director/lingo/lingo-gr.y"
+#line 290 "engines/director/lingo/lingo-gr.y"
                                                         { delete (yyvsp[0].s); }
-#line 2703 "engines/director/lingo/lingo-gr.cpp"
+#line 2705 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 25: /* endargdef: endargdef ',' ID  */
-#line 292 "engines/director/lingo/lingo-gr.y"
+#line 291 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 2709 "engines/director/lingo/lingo-gr.cpp"
+#line 2711 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 27: /* CMDID: tABBREVIATED  */
-#line 300 "engines/director/lingo/lingo-gr.y"
+#line 299 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("abbreviated"); }
-#line 2715 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 28: /* CMDID: tABBREV  */
-#line 301 "engines/director/lingo/lingo-gr.y"
+#line 300 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("abbrev"); }
-#line 2721 "engines/director/lingo/lingo-gr.cpp"
+#line 2723 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 29: /* CMDID: tABBR  */
-#line 302 "engines/director/lingo/lingo-gr.y"
+#line 301 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("abbr"); }
-#line 2727 "engines/director/lingo/lingo-gr.cpp"
+#line 2729 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 30: /* CMDID: tAFTER  */
-#line 303 "engines/director/lingo/lingo-gr.y"
+#line 302 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("after"); }
-#line 2733 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 31: /* CMDID: tAND  */
-#line 304 "engines/director/lingo/lingo-gr.y"
+#line 303 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("and"); }
-#line 2739 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 32: /* CMDID: tBEFORE  */
-#line 305 "engines/director/lingo/lingo-gr.y"
+#line 304 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("before"); }
-#line 2745 "engines/director/lingo/lingo-gr.cpp"
+#line 2747 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 33: /* CMDID: tCAST  */
-#line 306 "engines/director/lingo/lingo-gr.y"
+#line 305 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("cast"); }
-#line 2751 "engines/director/lingo/lingo-gr.cpp"
+#line 2753 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 34: /* CMDID: tCHAR  */
-#line 307 "engines/director/lingo/lingo-gr.y"
+#line 306 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("char"); }
-#line 2757 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 35: /* CMDID: tCHARS  */
-#line 308 "engines/director/lingo/lingo-gr.y"
+#line 307 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("chars"); }
-#line 2763 "engines/director/lingo/lingo-gr.cpp"
+#line 2765 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 36: /* CMDID: tCONTAINS  */
-#line 309 "engines/director/lingo/lingo-gr.y"
+#line 308 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("contains"); }
-#line 2769 "engines/director/lingo/lingo-gr.cpp"
+#line 2771 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 37: /* CMDID: tDATE  */
-#line 310 "engines/director/lingo/lingo-gr.y"
+#line 309 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("date"); }
-#line 2775 "engines/director/lingo/lingo-gr.cpp"
+#line 2777 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 38: /* CMDID: tDELETE  */
-#line 311 "engines/director/lingo/lingo-gr.y"
+#line 310 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("delete"); }
-#line 2781 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 39: /* CMDID: tDOWN  */
-#line 312 "engines/director/lingo/lingo-gr.y"
+#line 311 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("down"); }
-#line 2787 "engines/director/lingo/lingo-gr.cpp"
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 40: /* CMDID: tFIELD  */
-#line 313 "engines/director/lingo/lingo-gr.y"
+#line 312 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("field"); }
-#line 2793 "engines/director/lingo/lingo-gr.cpp"
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 41: /* CMDID: tFRAME  */
-#line 314 "engines/director/lingo/lingo-gr.y"
+#line 313 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("frame"); }
-#line 2799 "engines/director/lingo/lingo-gr.cpp"
+#line 2801 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 42: /* CMDID: tHILITE  */
-#line 315 "engines/director/lingo/lingo-gr.y"
+#line 314 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("hilite"); }
-#line 2805 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 43: /* CMDID: tIN  */
-#line 316 "engines/director/lingo/lingo-gr.y"
+#line 315 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("in"); }
-#line 2811 "engines/director/lingo/lingo-gr.cpp"
+#line 2813 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 44: /* CMDID: tINTERSECTS  */
-#line 317 "engines/director/lingo/lingo-gr.y"
+#line 316 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("intersects"); }
-#line 2817 "engines/director/lingo/lingo-gr.cpp"
+#line 2819 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 45: /* CMDID: tINTO  */
-#line 318 "engines/director/lingo/lingo-gr.y"
+#line 317 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("into"); }
-#line 2823 "engines/director/lingo/lingo-gr.cpp"
+#line 2825 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 46: /* CMDID: tITEM  */
-#line 319 "engines/director/lingo/lingo-gr.y"
+#line 318 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("item"); }
-#line 2829 "engines/director/lingo/lingo-gr.cpp"
+#line 2831 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 47: /* CMDID: tITEMS  */
-#line 320 "engines/director/lingo/lingo-gr.y"
+#line 319 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("items"); }
-#line 2835 "engines/director/lingo/lingo-gr.cpp"
+#line 2837 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 48: /* CMDID: tLAST  */
-#line 321 "engines/director/lingo/lingo-gr.y"
+#line 320 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("last"); }
-#line 2841 "engines/director/lingo/lingo-gr.cpp"
+#line 2843 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 49: /* CMDID: tLINE  */
-#line 322 "engines/director/lingo/lingo-gr.y"
+#line 321 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("line"); }
-#line 2847 "engines/director/lingo/lingo-gr.cpp"
+#line 2849 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 50: /* CMDID: tLINES  */
-#line 323 "engines/director/lingo/lingo-gr.y"
+#line 322 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("lines"); }
-#line 2853 "engines/director/lingo/lingo-gr.cpp"
+#line 2855 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 51: /* CMDID: tLONG  */
-#line 324 "engines/director/lingo/lingo-gr.y"
+#line 323 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("long"); }
-#line 2859 "engines/director/lingo/lingo-gr.cpp"
+#line 2861 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 52: /* CMDID: tMENU  */
-#line 325 "engines/director/lingo/lingo-gr.y"
+#line 324 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("menu"); }
-#line 2865 "engines/director/lingo/lingo-gr.cpp"
+#line 2867 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 53: /* CMDID: tMENUITEM  */
-#line 326 "engines/director/lingo/lingo-gr.y"
+#line 325 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("menuItem"); }
-#line 2871 "engines/director/lingo/lingo-gr.cpp"
+#line 2873 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 54: /* CMDID: tMENUITEMS  */
-#line 327 "engines/director/lingo/lingo-gr.y"
+#line 326 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("menuItems"); }
-#line 2877 "engines/director/lingo/lingo-gr.cpp"
+#line 2879 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 55: /* CMDID: tMOD  */
-#line 328 "engines/director/lingo/lingo-gr.y"
+#line 327 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("mod"); }
-#line 2883 "engines/director/lingo/lingo-gr.cpp"
+#line 2885 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 56: /* CMDID: tMOVIE  */
-#line 329 "engines/director/lingo/lingo-gr.y"
+#line 328 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("movie"); }
-#line 2889 "engines/director/lingo/lingo-gr.cpp"
+#line 2891 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 57: /* CMDID: tNEXT  */
-#line 330 "engines/director/lingo/lingo-gr.y"
+#line 329 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("next"); }
-#line 2895 "engines/director/lingo/lingo-gr.cpp"
+#line 2897 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 58: /* CMDID: tNOT  */
-#line 331 "engines/director/lingo/lingo-gr.y"
+#line 330 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("not"); }
-#line 2901 "engines/director/lingo/lingo-gr.cpp"
+#line 2903 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 59: /* CMDID: tNUMBER  */
-#line 332 "engines/director/lingo/lingo-gr.y"
+#line 331 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("number"); }
-#line 2907 "engines/director/lingo/lingo-gr.cpp"
+#line 2909 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 60: /* CMDID: tOF  */
-#line 333 "engines/director/lingo/lingo-gr.y"
+#line 332 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("of"); }
-#line 2913 "engines/director/lingo/lingo-gr.cpp"
+#line 2915 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 61: /* CMDID: tOR  */
-#line 334 "engines/director/lingo/lingo-gr.y"
+#line 333 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("or"); }
-#line 2919 "engines/director/lingo/lingo-gr.cpp"
+#line 2921 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 62: /* CMDID: tPREVIOUS  */
-#line 335 "engines/director/lingo/lingo-gr.y"
+#line 334 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("previous"); }
-#line 2925 "engines/director/lingo/lingo-gr.cpp"
+#line 2927 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 63: /* CMDID: tREPEAT  */
-#line 336 "engines/director/lingo/lingo-gr.y"
+#line 335 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("repeat"); }
-#line 2931 "engines/director/lingo/lingo-gr.cpp"
+#line 2933 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 64: /* CMDID: tSCRIPT  */
-#line 337 "engines/director/lingo/lingo-gr.y"
+#line 336 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("script"); }
-#line 2937 "engines/director/lingo/lingo-gr.cpp"
+#line 2939 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 65: /* CMDID: tASSERTERROR  */
-#line 338 "engines/director/lingo/lingo-gr.y"
+#line 337 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2943 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 66: /* CMDID: tSHORT  */
-#line 339 "engines/director/lingo/lingo-gr.y"
+#line 338 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("short"); }
-#line 2949 "engines/director/lingo/lingo-gr.cpp"
+#line 2951 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 67: /* CMDID: tSOUND  */
-#line 340 "engines/director/lingo/lingo-gr.y"
+#line 339 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("sound"); }
-#line 2955 "engines/director/lingo/lingo-gr.cpp"
+#line 2957 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 68: /* CMDID: tSPRITE  */
-#line 341 "engines/director/lingo/lingo-gr.y"
+#line 340 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("sprite"); }
-#line 2961 "engines/director/lingo/lingo-gr.cpp"
+#line 2963 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 69: /* CMDID: tSTARTS  */
-#line 342 "engines/director/lingo/lingo-gr.y"
+#line 341 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("starts"); }
-#line 2967 "engines/director/lingo/lingo-gr.cpp"
+#line 2969 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 70: /* CMDID: tTHE  */
-#line 343 "engines/director/lingo/lingo-gr.y"
+#line 342 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("the"); }
-#line 2973 "engines/director/lingo/lingo-gr.cpp"
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 71: /* CMDID: tTIME  */
-#line 344 "engines/director/lingo/lingo-gr.y"
+#line 343 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("time"); }
-#line 2979 "engines/director/lingo/lingo-gr.cpp"
+#line 2981 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 72: /* CMDID: tTO  */
-#line 345 "engines/director/lingo/lingo-gr.y"
+#line 344 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("to"); }
-#line 2985 "engines/director/lingo/lingo-gr.cpp"
+#line 2987 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 73: /* CMDID: tWHILE  */
-#line 346 "engines/director/lingo/lingo-gr.y"
+#line 345 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("while"); }
-#line 2991 "engines/director/lingo/lingo-gr.cpp"
+#line 2993 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 74: /* CMDID: tWINDOW  */
-#line 347 "engines/director/lingo/lingo-gr.y"
+#line 346 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("window"); }
-#line 2997 "engines/director/lingo/lingo-gr.cpp"
+#line 2999 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 75: /* CMDID: tWITH  */
-#line 348 "engines/director/lingo/lingo-gr.y"
+#line 347 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("with"); }
-#line 3003 "engines/director/lingo/lingo-gr.cpp"
+#line 3005 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 76: /* CMDID: tWITHIN  */
-#line 349 "engines/director/lingo/lingo-gr.y"
+#line 348 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("within"); }
-#line 3009 "engines/director/lingo/lingo-gr.cpp"
+#line 3011 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 77: /* CMDID: tWORD  */
-#line 350 "engines/director/lingo/lingo-gr.y"
+#line 349 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("word"); }
-#line 3015 "engines/director/lingo/lingo-gr.cpp"
+#line 3017 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 78: /* CMDID: tWORDS  */
-#line 351 "engines/director/lingo/lingo-gr.y"
+#line 350 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("words"); }
-#line 3021 "engines/director/lingo/lingo-gr.cpp"
+#line 3023 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 80: /* ID: tELSE  */
-#line 355 "engines/director/lingo/lingo-gr.y"
+#line 354 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("else"); }
-#line 3027 "engines/director/lingo/lingo-gr.cpp"
+#line 3029 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 81: /* ID: tENDCLAUSE  */
-#line 356 "engines/director/lingo/lingo-gr.y"
+#line 355 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("end"); delete (yyvsp[0].s); }
-#line 3033 "engines/director/lingo/lingo-gr.cpp"
+#line 3035 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 82: /* ID: tEXIT  */
-#line 357 "engines/director/lingo/lingo-gr.y"
+#line 356 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("exit"); }
-#line 3039 "engines/director/lingo/lingo-gr.cpp"
+#line 3041 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 83: /* ID: tFACTORY  */
-#line 358 "engines/director/lingo/lingo-gr.y"
+#line 357 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("factory"); }
-#line 3045 "engines/director/lingo/lingo-gr.cpp"
+#line 3047 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 84: /* ID: tGLOBAL  */
-#line 359 "engines/director/lingo/lingo-gr.y"
+#line 358 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("global"); }
-#line 3051 "engines/director/lingo/lingo-gr.cpp"
+#line 3053 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 85: /* ID: tGO  */
-#line 360 "engines/director/lingo/lingo-gr.y"
+#line 359 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("go"); }
-#line 3057 "engines/director/lingo/lingo-gr.cpp"
+#line 3059 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 86: /* ID: tIF  */
-#line 361 "engines/director/lingo/lingo-gr.y"
+#line 360 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("if"); }
-#line 3063 "engines/director/lingo/lingo-gr.cpp"
+#line 3065 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 87: /* ID: tINSTANCE  */
-#line 362 "engines/director/lingo/lingo-gr.y"
+#line 361 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("instance"); }
-#line 3069 "engines/director/lingo/lingo-gr.cpp"
+#line 3071 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 88: /* ID: tMACRO  */
-#line 363 "engines/director/lingo/lingo-gr.y"
+#line 362 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("macro"); }
-#line 3075 "engines/director/lingo/lingo-gr.cpp"
+#line 3077 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 89: /* ID: tMETHOD  */
-#line 364 "engines/director/lingo/lingo-gr.y"
+#line 363 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("method"); }
-#line 3081 "engines/director/lingo/lingo-gr.cpp"
+#line 3083 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 90: /* ID: tON  */
-#line 365 "engines/director/lingo/lingo-gr.y"
+#line 364 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("on"); }
-#line 3087 "engines/director/lingo/lingo-gr.cpp"
+#line 3089 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 91: /* ID: tOPEN  */
-#line 366 "engines/director/lingo/lingo-gr.y"
+#line 365 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("open"); }
-#line 3093 "engines/director/lingo/lingo-gr.cpp"
+#line 3095 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 92: /* ID: tPLAY  */
-#line 367 "engines/director/lingo/lingo-gr.y"
+#line 366 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("play"); }
-#line 3099 "engines/director/lingo/lingo-gr.cpp"
+#line 3101 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 93: /* ID: tPROPERTY  */
-#line 368 "engines/director/lingo/lingo-gr.y"
+#line 367 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("property"); }
-#line 3105 "engines/director/lingo/lingo-gr.cpp"
+#line 3107 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 94: /* ID: tPUT  */
-#line 369 "engines/director/lingo/lingo-gr.y"
+#line 368 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("put"); }
-#line 3111 "engines/director/lingo/lingo-gr.cpp"
+#line 3113 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 95: /* ID: tSET  */
-#line 370 "engines/director/lingo/lingo-gr.y"
+#line 369 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("set"); }
-#line 3117 "engines/director/lingo/lingo-gr.cpp"
+#line 3119 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 96: /* ID: tTELL  */
-#line 371 "engines/director/lingo/lingo-gr.y"
+#line 370 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("tell"); }
-#line 3123 "engines/director/lingo/lingo-gr.cpp"
+#line 3125 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 97: /* ID: tTHEN  */
-#line 372 "engines/director/lingo/lingo-gr.y"
+#line 371 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("then"); }
-#line 3129 "engines/director/lingo/lingo-gr.cpp"
+#line 3131 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 98: /* idlist: %empty  */
-#line 375 "engines/director/lingo/lingo-gr.y"
+#line 374 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.idlist) = new IDList; }
-#line 3135 "engines/director/lingo/lingo-gr.cpp"
+#line 3137 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 101: /* nonemptyidlist: ID  */
-#line 380 "engines/director/lingo/lingo-gr.y"
+#line 379 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		Common::Array<Common::String *> *list = new IDList;
 		list->push_back((yyvsp[0].s));
 		(yyval.idlist) = list; }
-#line 3144 "engines/director/lingo/lingo-gr.cpp"
+#line 3146 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 102: /* nonemptyidlist: nonemptyidlist ',' ID  */
-#line 384 "engines/director/lingo/lingo-gr.y"
+#line 383 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
 		(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 3152 "engines/director/lingo/lingo-gr.cpp"
+#line 3154 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 104: /* stmt: tENDIF '\n'  */
-#line 395 "engines/director/lingo/lingo-gr.y"
+#line 394 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = nullptr; }
-#line 3158 "engines/director/lingo/lingo-gr.cpp"
+#line 3160 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 114: /* proc: CMDID cmdargs '\n'  */
-#line 411 "engines/director/lingo/lingo-gr.y"
+#line 410 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3164 "engines/director/lingo/lingo-gr.cpp"
+#line 3166 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 115: /* proc: tPUT cmdargs '\n'  */
-#line 412 "engines/director/lingo/lingo-gr.y"
+#line 411 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new CmdNode(new Common::String("put"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3170 "engines/director/lingo/lingo-gr.cpp"
+#line 3172 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 116: /* proc: tGO cmdargs '\n'  */
-#line 413 "engines/director/lingo/lingo-gr.y"
+#line 412 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3176 "engines/director/lingo/lingo-gr.cpp"
+#line 3178 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 117: /* proc: tGO frameargs '\n'  */
-#line 414 "engines/director/lingo/lingo-gr.y"
+#line 413 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode(new Common::String("go"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3182 "engines/director/lingo/lingo-gr.cpp"
+#line 3184 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 118: /* proc: tPLAY cmdargs '\n'  */
-#line 415 "engines/director/lingo/lingo-gr.y"
+#line 414 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3188 "engines/director/lingo/lingo-gr.cpp"
+#line 3190 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 119: /* proc: tPLAY frameargs '\n'  */
-#line 416 "engines/director/lingo/lingo-gr.y"
+#line 415 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode(new Common::String("play"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3194 "engines/director/lingo/lingo-gr.cpp"
+#line 3196 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 120: /* proc: tOPEN cmdargs '\n'  */
-#line 417 "engines/director/lingo/lingo-gr.y"
+#line 416 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode(new Common::String("open"), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3200 "engines/director/lingo/lingo-gr.cpp"
+#line 3202 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 121: /* proc: tOPEN expr tWITH expr '\n'  */
-#line 418 "engines/director/lingo/lingo-gr.y"
+#line 417 "engines/director/lingo/lingo-gr.y"
                                                  {
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-3].node));
 		args->push_back((yyvsp[-1].node));
 		(yyval.node) = new CmdNode(new Common::String("open"), args, g_lingo->_compiler->_linenumber - 1); }
-#line 3210 "engines/director/lingo/lingo-gr.cpp"
+#line 3212 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 122: /* proc: tNEXT tREPEAT '\n'  */
-#line 423 "engines/director/lingo/lingo-gr.y"
+#line 422 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new NextRepeatNode(); }
-#line 3216 "engines/director/lingo/lingo-gr.cpp"
+#line 3218 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 123: /* proc: tEXIT tREPEAT '\n'  */
-#line 424 "engines/director/lingo/lingo-gr.y"
+#line 423 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new ExitRepeatNode(); }
-#line 3222 "engines/director/lingo/lingo-gr.cpp"
+#line 3224 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 124: /* proc: tEXIT '\n'  */
-#line 425 "engines/director/lingo/lingo-gr.y"
+#line 424 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new ExitNode(); }
-#line 3228 "engines/director/lingo/lingo-gr.cpp"
+#line 3230 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 125: /* proc: tDELETE chunk '\n'  */
-#line 426 "engines/director/lingo/lingo-gr.y"
+#line 425 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new DeleteNode((yyvsp[-1].node)); }
-#line 3234 "engines/director/lingo/lingo-gr.cpp"
+#line 3236 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 126: /* proc: tHILITE chunk '\n'  */
-#line 427 "engines/director/lingo/lingo-gr.y"
+#line 426 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new HiliteNode((yyvsp[-1].node)); }
-#line 3240 "engines/director/lingo/lingo-gr.cpp"
+#line 3242 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 127: /* proc: tASSERTERROR stmtoneliner  */
-#line 428 "engines/director/lingo/lingo-gr.y"
+#line 427 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 3248 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 128: /* cmdargs: %empty  */
-#line 431 "engines/director/lingo/lingo-gr.y"
+#line 430 "engines/director/lingo/lingo-gr.y"
                                                                                         {
 		// This matches `cmd`
 		(yyval.nodelist) = new NodeList; }
-#line 3254 "engines/director/lingo/lingo-gr.cpp"
+#line 3256 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 129: /* cmdargs: expr trailingcomma  */
-#line 434 "engines/director/lingo/lingo-gr.y"
+#line 433 "engines/director/lingo/lingo-gr.y"
                                                                                         {
 		// This matches `cmd arg` and `cmd(arg)`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-1].node));
 		(yyval.nodelist) = args; }
-#line 3264 "engines/director/lingo/lingo-gr.cpp"
+#line 3266 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 130: /* cmdargs: expr ',' nonemptyexprlist trailingcomma  */
-#line 439 "engines/director/lingo/lingo-gr.y"
+#line 438 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `cmd args, ...)
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3273 "engines/director/lingo/lingo-gr.cpp"
+#line 3275 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 131: /* cmdargs: expr expr_nounarymath trailingcomma  */
-#line 443 "engines/director/lingo/lingo-gr.y"
+#line 442 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		// This matches `cmd arg arg`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-2].node));
 		args->push_back((yyvsp[-1].node));
 		(yyval.nodelist) = args; }
-#line 3284 "engines/director/lingo/lingo-gr.cpp"
+#line 3286 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 132: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma  */
-#line 449 "engines/director/lingo/lingo-gr.y"
+#line 448 "engines/director/lingo/lingo-gr.y"
                                                                                 {
 		// This matches `cmd arg arg, ...`
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3294 "engines/director/lingo/lingo-gr.cpp"
+#line 3296 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 133: /* cmdargs: '(' ')'  */
-#line 454 "engines/director/lingo/lingo-gr.y"
+#line 453 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		// This matches `cmd()`
 		(yyval.nodelist) = new NodeList; }
-#line 3302 "engines/director/lingo/lingo-gr.cpp"
+#line 3304 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 134: /* cmdargs: '(' expr ',' ')'  */
-#line 457 "engines/director/lingo/lingo-gr.y"
+#line 456 "engines/director/lingo/lingo-gr.y"
                            {
 		// This matches `cmd(args,)`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-2].node));
 		(yyval.nodelist) = args; }
-#line 3312 "engines/director/lingo/lingo-gr.cpp"
+#line 3314 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 135: /* cmdargs: '(' expr ',' nonemptyexprlist trailingcomma ')'  */
-#line 462 "engines/director/lingo/lingo-gr.y"
+#line 461 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `cmd(args, ...)`
 		(yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3321 "engines/director/lingo/lingo-gr.cpp"
+#line 3323 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 138: /* frameargs: tFRAME expr  */
-#line 474 "engines/director/lingo/lingo-gr.y"
+#line 473 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		// This matches `play frame arg`
 		NodeList *args = new NodeList;
 		args->push_back(new FrameNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3331 "engines/director/lingo/lingo-gr.cpp"
+#line 3333 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 139: /* frameargs: tMOVIE expr  */
-#line 479 "engines/director/lingo/lingo-gr.y"
+#line 478 "engines/director/lingo/lingo-gr.y"
                                                                                 {
 		// This matches `play movie arg`
 		NodeList *args = new NodeList;
 		args->push_back(new IntNode(1));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3342 "engines/director/lingo/lingo-gr.cpp"
+#line 3344 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 140: /* frameargs: tFRAME expr tOF tMOVIE expr  */
-#line 485 "engines/director/lingo/lingo-gr.y"
+#line 484 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `play frame arg of movie arg`
 		NodeList *args = new NodeList;
 		args->push_back(new FrameNode((yyvsp[-3].node)));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3353 "engines/director/lingo/lingo-gr.cpp"
+#line 3355 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 141: /* frameargs: expr tOF tMOVIE expr  */
-#line 491 "engines/director/lingo/lingo-gr.y"
+#line 490 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `play arg of movie arg` (weird but valid)
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-3].node));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3364 "engines/director/lingo/lingo-gr.cpp"
+#line 3366 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 142: /* frameargs: tFRAME expr expr_nounarymath  */
-#line 497 "engines/director/lingo/lingo-gr.y"
+#line 496 "engines/director/lingo/lingo-gr.y"
                                                         {
 		// This matches `play frame arg arg` (also weird but valid)
 		NodeList *args = new NodeList;
 		args->push_back(new FrameNode((yyvsp[-1].node)));
 		args->push_back((yyvsp[0].node));
 		(yyval.nodelist) = args; }
-#line 3375 "engines/director/lingo/lingo-gr.cpp"
+#line 3377 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 143: /* asgn: tPUT expr tINTO varorchunk '\n'  */
-#line 505 "engines/director/lingo/lingo-gr.y"
+#line 504 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3381 "engines/director/lingo/lingo-gr.cpp"
+#line 3383 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 144: /* asgn: tPUT expr tAFTER varorchunk '\n'  */
-#line 506 "engines/director/lingo/lingo-gr.y"
+#line 505 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3387 "engines/director/lingo/lingo-gr.cpp"
+#line 3389 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 145: /* asgn: tPUT expr tBEFORE varorchunk '\n'  */
-#line 507 "engines/director/lingo/lingo-gr.y"
+#line 506 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3393 "engines/director/lingo/lingo-gr.cpp"
+#line 3395 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 146: /* asgn: tSET varorthe to expr '\n'  */
-#line 508 "engines/director/lingo/lingo-gr.y"
+#line 507 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3399 "engines/director/lingo/lingo-gr.cpp"
+#line 3401 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 149: /* definevars: tGLOBAL idlist '\n'  */
-#line 513 "engines/director/lingo/lingo-gr.y"
+#line 512 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3405 "engines/director/lingo/lingo-gr.cpp"
+#line 3407 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 150: /* definevars: tPROPERTY idlist '\n'  */
-#line 514 "engines/director/lingo/lingo-gr.y"
+#line 513 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3411 "engines/director/lingo/lingo-gr.cpp"
+#line 3413 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 151: /* definevars: tINSTANCE idlist '\n'  */
-#line 515 "engines/director/lingo/lingo-gr.y"
+#line 514 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3417 "engines/director/lingo/lingo-gr.cpp"
+#line 3419 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 152: /* ifstmt: tIF expr tTHEN stmt  */
-#line 518 "engines/director/lingo/lingo-gr.y"
+#line 517 "engines/director/lingo/lingo-gr.y"
                             {
 		NodeList *stmtlist = new NodeList;
 		stmtlist->push_back((yyvsp[0].node));
 		(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3426 "engines/director/lingo/lingo-gr.cpp"
+#line 3428 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 153: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif endif  */
-#line 522 "engines/director/lingo/lingo-gr.y"
+#line 521 "engines/director/lingo/lingo-gr.y"
                                                       {
 		(yyval.node) = new IfStmtNode((yyvsp[-4].node), (yyvsp[-1].nodelist)); }
-#line 3433 "engines/director/lingo/lingo-gr.cpp"
+#line 3435 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 154: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt  */
-#line 526 "engines/director/lingo/lingo-gr.y"
+#line 525 "engines/director/lingo/lingo-gr.y"
                                                          {
 		NodeList *stmtlist1 = new NodeList;
 		stmtlist1->push_back((yyvsp[-2].node));
 		NodeList *stmtlist2 = new NodeList;
 		stmtlist2->push_back((yyvsp[0].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3444 "engines/director/lingo/lingo-gr.cpp"
+#line 3446 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 155: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif endif  */
-#line 532 "engines/director/lingo/lingo-gr.y"
+#line 531 "engines/director/lingo/lingo-gr.y"
                                                                                    {
 		NodeList *stmtlist1 = new NodeList;
 		stmtlist1->push_back((yyvsp[-4].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-6].node), stmtlist1, (yyvsp[-1].nodelist)); }
-#line 3453 "engines/director/lingo/lingo-gr.cpp"
+#line 3455 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 156: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt  */
-#line 536 "engines/director/lingo/lingo-gr.y"
+#line 535 "engines/director/lingo/lingo-gr.y"
                                                                              {
 		NodeList *stmtlist2 = new NodeList;
 		stmtlist2->push_back((yyvsp[0].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3462 "engines/director/lingo/lingo-gr.cpp"
+#line 3464 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 157: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif endif  */
-#line 540 "engines/director/lingo/lingo-gr.y"
+#line 539 "engines/director/lingo/lingo-gr.y"
                                                                                                          {
 		(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), (yyvsp[-4].nodelist), (yyvsp[-1].nodelist)); }
-#line 3469 "engines/director/lingo/lingo-gr.cpp"
+#line 3471 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 158: /* endif: %empty  */
-#line 544 "engines/director/lingo/lingo-gr.y"
+#line 543 "engines/director/lingo/lingo-gr.y"
                         { warning("LingoCompiler::parse: no end if"); }
-#line 3475 "engines/director/lingo/lingo-gr.cpp"
+#line 3477 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 160: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n'  */
-#line 547 "engines/director/lingo/lingo-gr.y"
+#line 546 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3482 "engines/director/lingo/lingo-gr.cpp"
+#line 3484 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 161: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n'  */
-#line 549 "engines/director/lingo/lingo-gr.y"
+#line 548 "engines/director/lingo/lingo-gr.y"
                                                                                        {
 		(yyval.node) = new RepeatWithToNode((yyvsp[-8].s), (yyvsp[-6].node), false, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3489 "engines/director/lingo/lingo-gr.cpp"
+#line 3491 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 162: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n'  */
-#line 551 "engines/director/lingo/lingo-gr.y"
+#line 550 "engines/director/lingo/lingo-gr.y"
                                                                                              {
 		(yyval.node) = new RepeatWithToNode((yyvsp[-9].s), (yyvsp[-7].node), true, (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3496 "engines/director/lingo/lingo-gr.cpp"
+#line 3498 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 163: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n'  */
-#line 553 "engines/director/lingo/lingo-gr.y"
+#line 552 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3503 "engines/director/lingo/lingo-gr.cpp"
+#line 3505 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 164: /* tell: tTELL expr tTO stmtoneliner  */
-#line 557 "engines/director/lingo/lingo-gr.y"
+#line 556 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		NodeList *stmtlist = new NodeList;
 		stmtlist->push_back((yyvsp[0].node));
 		(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3512 "engines/director/lingo/lingo-gr.cpp"
+#line 3514 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 165: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n'  */
-#line 561 "engines/director/lingo/lingo-gr.y"
+#line 560 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3519 "engines/director/lingo/lingo-gr.cpp"
+#line 3521 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 166: /* when: tWHEN '\n'  */
-#line 565 "engines/director/lingo/lingo-gr.y"
+#line 564 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new WhenNode((yyvsp[-1].w).eventName, (yyvsp[-1].w).stmt); }
-#line 3525 "engines/director/lingo/lingo-gr.cpp"
+#line 3527 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 167: /* stmtlist: %empty  */
-#line 567 "engines/director/lingo/lingo-gr.y"
+#line 566 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.nodelist) = new NodeList; }
-#line 3531 "engines/director/lingo/lingo-gr.cpp"
+#line 3533 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 169: /* nonemptystmtlist: stmtlistline  */
-#line 572 "engines/director/lingo/lingo-gr.y"
+#line 571 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		NodeList *list = new NodeList;
 		if ((yyvsp[0].node)) {
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 3542 "engines/director/lingo/lingo-gr.cpp"
+#line 3544 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 170: /* nonemptystmtlist: nonemptystmtlist stmtlistline  */
-#line 578 "engines/director/lingo/lingo-gr.y"
+#line 577 "engines/director/lingo/lingo-gr.y"
                                                         {
 		if ((yyvsp[0].node)) {
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3552 "engines/director/lingo/lingo-gr.cpp"
+#line 3554 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 171: /* stmtlistline: '\n'  */
-#line 585 "engines/director/lingo/lingo-gr.y"
+#line 584 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = nullptr; }
-#line 3558 "engines/director/lingo/lingo-gr.cpp"
+#line 3560 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 173: /* stmtlist_insideif: %empty  */
-#line 589 "engines/director/lingo/lingo-gr.y"
+#line 588 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.nodelist) = new NodeList; }
-#line 3564 "engines/director/lingo/lingo-gr.cpp"
+#line 3566 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 175: /* nonemptystmtlist_insideif: stmtlistline_insideif  */
-#line 594 "engines/director/lingo/lingo-gr.y"
+#line 593 "engines/director/lingo/lingo-gr.y"
                                                 {
 		NodeList *list = new NodeList;
 		if ((yyvsp[0].node)) {
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 3575 "engines/director/lingo/lingo-gr.cpp"
+#line 3577 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 176: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif  */
-#line 600 "engines/director/lingo/lingo-gr.y"
+#line 599 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		if ((yyvsp[0].node)) {
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3585 "engines/director/lingo/lingo-gr.cpp"
+#line 3587 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 177: /* stmtlistline_insideif: '\n'  */
-#line 607 "engines/director/lingo/lingo-gr.y"
+#line 606 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = nullptr; }
-#line 3591 "engines/director/lingo/lingo-gr.cpp"
+#line 3593 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 179: /* simpleexpr_nounarymath: tINT  */
-#line 614 "engines/director/lingo/lingo-gr.y"
+#line 613 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3597 "engines/director/lingo/lingo-gr.cpp"
+#line 3599 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 180: /* simpleexpr_nounarymath: tFLOAT  */
-#line 615 "engines/director/lingo/lingo-gr.y"
+#line 614 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3603 "engines/director/lingo/lingo-gr.cpp"
+#line 3605 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 181: /* simpleexpr_nounarymath: tSYMBOL  */
-#line 616 "engines/director/lingo/lingo-gr.y"
+#line 615 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3609 "engines/director/lingo/lingo-gr.cpp"
+#line 3611 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 182: /* simpleexpr_nounarymath: tSTRING  */
-#line 617 "engines/director/lingo/lingo-gr.y"
+#line 616 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3615 "engines/director/lingo/lingo-gr.cpp"
+#line 3617 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 183: /* simpleexpr_nounarymath: tNOT simpleexpr  */
-#line 618 "engines/director/lingo/lingo-gr.y"
+#line 617 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3621 "engines/director/lingo/lingo-gr.cpp"
+#line 3623 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 184: /* simpleexpr_nounarymath: ID '(' ')'  */
-#line 619 "engines/director/lingo/lingo-gr.y"
+#line 618 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new FuncNode((yyvsp[-2].s), new NodeList); }
-#line 3627 "engines/director/lingo/lingo-gr.cpp"
+#line 3629 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 185: /* simpleexpr_nounarymath: ID '(' nonemptyexprlist trailingcomma ')'  */
-#line 620 "engines/director/lingo/lingo-gr.y"
+#line 619 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new FuncNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 3633 "engines/director/lingo/lingo-gr.cpp"
+#line 3635 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 186: /* simpleexpr_nounarymath: '(' expr ')'  */
-#line 621 "engines/director/lingo/lingo-gr.y"
+#line 620 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = (yyvsp[-1].node); }
-#line 3639 "engines/director/lingo/lingo-gr.cpp"
+#line 3641 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 192: /* var: ID  */
-#line 629 "engines/director/lingo/lingo-gr.y"
+#line 628 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3645 "engines/director/lingo/lingo-gr.cpp"
+#line 3647 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 197: /* chunk: tFIELD refargs  */
-#line 639 "engines/director/lingo/lingo-gr.y"
+#line 638 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.node) = new FuncNode(new Common::String("field"), (yyvsp[0].nodelist)); }
-#line 3651 "engines/director/lingo/lingo-gr.cpp"
+#line 3653 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 198: /* chunk: tCAST refargs  */
-#line 640 "engines/director/lingo/lingo-gr.y"
+#line 639 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FuncNode(new Common::String("cast"), (yyvsp[0].nodelist)); }
-#line 3657 "engines/director/lingo/lingo-gr.cpp"
+#line 3659 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 199: /* chunk: tCHAR expr tOF simpleexpr  */
-#line 641 "engines/director/lingo/lingo-gr.y"
+#line 640 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3664 "engines/director/lingo/lingo-gr.cpp"
+#line 3666 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 200: /* chunk: tCHAR expr tTO expr tOF simpleexpr  */
-#line 643 "engines/director/lingo/lingo-gr.y"
+#line 642 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3671 "engines/director/lingo/lingo-gr.cpp"
+#line 3673 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 201: /* chunk: tWORD expr tOF simpleexpr  */
-#line 645 "engines/director/lingo/lingo-gr.y"
+#line 644 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3678 "engines/director/lingo/lingo-gr.cpp"
+#line 3680 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 202: /* chunk: tWORD expr tTO expr tOF simpleexpr  */
-#line 647 "engines/director/lingo/lingo-gr.y"
+#line 646 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3685 "engines/director/lingo/lingo-gr.cpp"
+#line 3687 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 203: /* chunk: tITEM expr tOF simpleexpr  */
-#line 649 "engines/director/lingo/lingo-gr.y"
+#line 648 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3692 "engines/director/lingo/lingo-gr.cpp"
+#line 3694 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 204: /* chunk: tITEM expr tTO expr tOF simpleexpr  */
-#line 651 "engines/director/lingo/lingo-gr.y"
+#line 650 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3699 "engines/director/lingo/lingo-gr.cpp"
+#line 3701 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 205: /* chunk: tLINE expr tOF simpleexpr  */
-#line 653 "engines/director/lingo/lingo-gr.y"
+#line 652 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3706 "engines/director/lingo/lingo-gr.cpp"
+#line 3708 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 206: /* chunk: tLINE expr tTO expr tOF simpleexpr  */
-#line 655 "engines/director/lingo/lingo-gr.y"
+#line 654 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3713 "engines/director/lingo/lingo-gr.cpp"
+#line 3715 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 207: /* chunk: tTHE tLAST chunktype inof simpleexpr  */
-#line 657 "engines/director/lingo/lingo-gr.y"
+#line 656 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3719 "engines/director/lingo/lingo-gr.cpp"
+#line 3721 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 208: /* chunktype: tCHAR  */
-#line 660 "engines/director/lingo/lingo-gr.y"
+#line 659 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.chunktype) = kChunkChar; }
-#line 3725 "engines/director/lingo/lingo-gr.cpp"
+#line 3727 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 209: /* chunktype: tWORD  */
-#line 661 "engines/director/lingo/lingo-gr.y"
+#line 660 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkWord; }
-#line 3731 "engines/director/lingo/lingo-gr.cpp"
+#line 3733 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 210: /* chunktype: tITEM  */
-#line 662 "engines/director/lingo/lingo-gr.y"
+#line 661 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkItem; }
-#line 3737 "engines/director/lingo/lingo-gr.cpp"
+#line 3739 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 211: /* chunktype: tLINE  */
-#line 663 "engines/director/lingo/lingo-gr.y"
+#line 662 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkLine; }
-#line 3743 "engines/director/lingo/lingo-gr.cpp"
+#line 3745 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 212: /* object: tSCRIPT refargs  */
-#line 666 "engines/director/lingo/lingo-gr.y"
+#line 665 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.node) = new FuncNode(new Common::String("script"), (yyvsp[0].nodelist)); }
-#line 3749 "engines/director/lingo/lingo-gr.cpp"
+#line 3751 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 213: /* object: tWINDOW refargs  */
-#line 667 "engines/director/lingo/lingo-gr.y"
+#line 666 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FuncNode(new Common::String("window"), (yyvsp[0].nodelist)); }
-#line 3755 "engines/director/lingo/lingo-gr.cpp"
+#line 3757 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 214: /* refargs: simpleexpr  */
-#line 670 "engines/director/lingo/lingo-gr.y"
+#line 669 "engines/director/lingo/lingo-gr.y"
                                                                                 {
 		// This matches `ref arg` and `ref(arg)`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[0].node));
 		(yyval.nodelist) = args; }
-#line 3765 "engines/director/lingo/lingo-gr.cpp"
+#line 3767 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 215: /* refargs: '(' ')'  */
-#line 675 "engines/director/lingo/lingo-gr.y"
+#line 674 "engines/director/lingo/lingo-gr.y"
                                                                                         {
 		// This matches `ref()`
 		(yyval.nodelist) = new NodeList; }
-#line 3773 "engines/director/lingo/lingo-gr.cpp"
+#line 3775 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 216: /* refargs: '(' expr ',' ')'  */
-#line 678 "engines/director/lingo/lingo-gr.y"
+#line 677 "engines/director/lingo/lingo-gr.y"
                            {
 		// This matches `ref(args,)`
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-2].node));
 		(yyval.nodelist) = args; }
-#line 3783 "engines/director/lingo/lingo-gr.cpp"
+#line 3785 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 217: /* refargs: '(' expr ',' nonemptyexprlist trailingcomma ')'  */
-#line 683 "engines/director/lingo/lingo-gr.y"
+#line 682 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		// This matches `ref(args, ...)`
 		(yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3792 "engines/director/lingo/lingo-gr.cpp"
+#line 3794 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 218: /* the: tTHE ID  */
-#line 689 "engines/director/lingo/lingo-gr.y"
+#line 688 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3798 "engines/director/lingo/lingo-gr.cpp"
+#line 3800 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 219: /* the: tTHE ID tOF theobj  */
-#line 690 "engines/director/lingo/lingo-gr.y"
+#line 689 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3804 "engines/director/lingo/lingo-gr.cpp"
+#line 3806 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 220: /* the: tTHE tNUMBER tOF theobj  */
-#line 691 "engines/director/lingo/lingo-gr.y"
+#line 690 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3810 "engines/director/lingo/lingo-gr.cpp"
+#line 3812 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 225: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr  */
-#line 698 "engines/director/lingo/lingo-gr.y"
+#line 697 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3816 "engines/director/lingo/lingo-gr.cpp"
+#line 3818 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 226: /* theobj: tSOUND simpleexpr  */
-#line 699 "engines/director/lingo/lingo-gr.y"
+#line 698 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3822 "engines/director/lingo/lingo-gr.cpp"
+#line 3824 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 227: /* theobj: tSPRITE simpleexpr  */
-#line 700 "engines/director/lingo/lingo-gr.y"
+#line 699 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3828 "engines/director/lingo/lingo-gr.cpp"
+#line 3830 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 228: /* menu: tMENU simpleexpr  */
-#line 703 "engines/director/lingo/lingo-gr.y"
+#line 702 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3834 "engines/director/lingo/lingo-gr.cpp"
+#line 3836 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 229: /* thedatetime: tTHE tABBREVIATED tDATE  */
-#line 705 "engines/director/lingo/lingo-gr.y"
+#line 704 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3840 "engines/director/lingo/lingo-gr.cpp"
+#line 3842 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 230: /* thedatetime: tTHE tABBREVIATED tTIME  */
-#line 706 "engines/director/lingo/lingo-gr.y"
+#line 705 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3846 "engines/director/lingo/lingo-gr.cpp"
+#line 3848 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 231: /* thedatetime: tTHE tABBREV tDATE  */
-#line 707 "engines/director/lingo/lingo-gr.y"
+#line 706 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3852 "engines/director/lingo/lingo-gr.cpp"
+#line 3854 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 232: /* thedatetime: tTHE tABBREV tTIME  */
-#line 708 "engines/director/lingo/lingo-gr.y"
+#line 707 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3858 "engines/director/lingo/lingo-gr.cpp"
+#line 3860 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 233: /* thedatetime: tTHE tABBR tDATE  */
-#line 709 "engines/director/lingo/lingo-gr.y"
+#line 708 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3864 "engines/director/lingo/lingo-gr.cpp"
+#line 3866 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 234: /* thedatetime: tTHE tABBR tTIME  */
-#line 710 "engines/director/lingo/lingo-gr.y"
+#line 709 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3870 "engines/director/lingo/lingo-gr.cpp"
+#line 3872 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 235: /* thedatetime: tTHE tLONG tDATE  */
-#line 711 "engines/director/lingo/lingo-gr.y"
+#line 710 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3876 "engines/director/lingo/lingo-gr.cpp"
+#line 3878 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 236: /* thedatetime: tTHE tLONG tTIME  */
-#line 712 "engines/director/lingo/lingo-gr.y"
+#line 711 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3882 "engines/director/lingo/lingo-gr.cpp"
+#line 3884 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 237: /* thedatetime: tTHE tSHORT tDATE  */
-#line 713 "engines/director/lingo/lingo-gr.y"
+#line 712 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3888 "engines/director/lingo/lingo-gr.cpp"
+#line 3890 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 238: /* thedatetime: tTHE tSHORT tTIME  */
-#line 714 "engines/director/lingo/lingo-gr.y"
+#line 713 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3894 "engines/director/lingo/lingo-gr.cpp"
+#line 3896 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 239: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr  */
-#line 718 "engines/director/lingo/lingo-gr.y"
+#line 717 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3900 "engines/director/lingo/lingo-gr.cpp"
+#line 3902 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 240: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr  */
-#line 719 "engines/director/lingo/lingo-gr.y"
+#line 718 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3906 "engines/director/lingo/lingo-gr.cpp"
+#line 3908 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 241: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr  */
-#line 720 "engines/director/lingo/lingo-gr.y"
+#line 719 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3912 "engines/director/lingo/lingo-gr.cpp"
+#line 3914 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 242: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr  */
-#line 721 "engines/director/lingo/lingo-gr.y"
+#line 720 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3918 "engines/director/lingo/lingo-gr.cpp"
+#line 3920 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 243: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu  */
-#line 722 "engines/director/lingo/lingo-gr.y"
+#line 721 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3924 "engines/director/lingo/lingo-gr.cpp"
+#line 3926 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 246: /* writablethe: tTHE ID  */
-#line 727 "engines/director/lingo/lingo-gr.y"
+#line 726 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3930 "engines/director/lingo/lingo-gr.cpp"
+#line 3932 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 247: /* writablethe: tTHE ID tOF writabletheobj  */
-#line 728 "engines/director/lingo/lingo-gr.y"
+#line 727 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3936 "engines/director/lingo/lingo-gr.cpp"
+#line 3938 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 249: /* writabletheobj: tMENU expr_noeq  */
-#line 732 "engines/director/lingo/lingo-gr.y"
+#line 731 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3942 "engines/director/lingo/lingo-gr.cpp"
+#line 3944 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 250: /* writabletheobj: tMENUITEM expr_noeq tOF tMENU expr_noeq  */
-#line 733 "engines/director/lingo/lingo-gr.y"
+#line 732 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3948 "engines/director/lingo/lingo-gr.cpp"
+#line 3950 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 251: /* writabletheobj: tSOUND expr_noeq  */
-#line 734 "engines/director/lingo/lingo-gr.y"
+#line 733 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3954 "engines/director/lingo/lingo-gr.cpp"
+#line 3956 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 252: /* writabletheobj: tSPRITE expr_noeq  */
-#line 735 "engines/director/lingo/lingo-gr.y"
+#line 734 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3960 "engines/director/lingo/lingo-gr.cpp"
+#line 3962 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 253: /* list: '[' exprlist ']'  */
-#line 738 "engines/director/lingo/lingo-gr.y"
+#line 737 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3966 "engines/director/lingo/lingo-gr.cpp"
+#line 3968 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 254: /* list: '[' ':' ']'  */
-#line 739 "engines/director/lingo/lingo-gr.y"
+#line 738 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropListNode(new NodeList); }
-#line 3972 "engines/director/lingo/lingo-gr.cpp"
+#line 3974 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 255: /* list: '[' proplist ']'  */
-#line 740 "engines/director/lingo/lingo-gr.y"
+#line 739 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3978 "engines/director/lingo/lingo-gr.cpp"
+#line 3980 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 256: /* proplist: proppair  */
-#line 743 "engines/director/lingo/lingo-gr.y"
+#line 742 "engines/director/lingo/lingo-gr.y"
                                                         {
 		NodeList *list = new NodeList; 
 		list->push_back((yyvsp[0].node));
 		(yyval.nodelist) = list; }
-#line 3987 "engines/director/lingo/lingo-gr.cpp"
+#line 3989 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 257: /* proplist: proplist ',' proppair  */
-#line 747 "engines/director/lingo/lingo-gr.y"
+#line 746 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3995 "engines/director/lingo/lingo-gr.cpp"
+#line 3997 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 258: /* proppair: tSYMBOL ':' expr  */
-#line 752 "engines/director/lingo/lingo-gr.y"
+#line 751 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 4001 "engines/director/lingo/lingo-gr.cpp"
+#line 4003 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 259: /* proppair: ID ':' expr  */
-#line 753 "engines/director/lingo/lingo-gr.y"
+#line 752 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 4007 "engines/director/lingo/lingo-gr.cpp"
+#line 4009 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 260: /* proppair: tSTRING ':' expr  */
-#line 754 "engines/director/lingo/lingo-gr.y"
+#line 753 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 4013 "engines/director/lingo/lingo-gr.cpp"
+#line 4015 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 261: /* unarymath: '+' simpleexpr  */
-#line 757 "engines/director/lingo/lingo-gr.y"
-                                                { (yyval.node) = (yyvsp[0].node); }
-#line 4019 "engines/director/lingo/lingo-gr.cpp"
+  case 261: /* proppair: tINT ':' expr  */
+#line 754 "engines/director/lingo/lingo-gr.y"
+                                    { (yyval.node) = new PropPairNode(new IntNode((yyvsp[-2].i)), (yyvsp[0].node)); }
+#line 4021 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 262: /* proppair: tFLOAT ':' expr  */
+#line 755 "engines/director/lingo/lingo-gr.y"
+                                    { (yyval.node) = new PropPairNode(new FloatNode((yyvsp[-2].f)), (yyvsp[0].node)); }
+#line 4027 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 262: /* unarymath: '-' simpleexpr  */
+  case 263: /* unarymath: '+' simpleexpr  */
 #line 758 "engines/director/lingo/lingo-gr.y"
+                                                { (yyval.node) = (yyvsp[0].node); }
+#line 4033 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 264: /* unarymath: '-' simpleexpr  */
+#line 759 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 4025 "engines/director/lingo/lingo-gr.cpp"
+#line 4039 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 267: /* expr: expr '+' expr  */
-#line 768 "engines/director/lingo/lingo-gr.y"
+  case 269: /* expr: expr '+' expr  */
+#line 769 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4031 "engines/director/lingo/lingo-gr.cpp"
+#line 4045 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 268: /* expr: expr '-' expr  */
-#line 769 "engines/director/lingo/lingo-gr.y"
+  case 270: /* expr: expr '-' expr  */
+#line 770 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4037 "engines/director/lingo/lingo-gr.cpp"
+#line 4051 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 269: /* expr: expr '*' expr  */
-#line 770 "engines/director/lingo/lingo-gr.y"
+  case 271: /* expr: expr '*' expr  */
+#line 771 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4043 "engines/director/lingo/lingo-gr.cpp"
+#line 4057 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 270: /* expr: expr '/' expr  */
-#line 771 "engines/director/lingo/lingo-gr.y"
+  case 272: /* expr: expr '/' expr  */
+#line 772 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4049 "engines/director/lingo/lingo-gr.cpp"
+#line 4063 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 271: /* expr: expr tMOD expr  */
-#line 772 "engines/director/lingo/lingo-gr.y"
+  case 273: /* expr: expr tMOD expr  */
+#line 773 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4055 "engines/director/lingo/lingo-gr.cpp"
+#line 4069 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 272: /* expr: expr '>' expr  */
-#line 773 "engines/director/lingo/lingo-gr.y"
+  case 274: /* expr: expr '>' expr  */
+#line 774 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4061 "engines/director/lingo/lingo-gr.cpp"
+#line 4075 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 273: /* expr: expr '<' expr  */
-#line 774 "engines/director/lingo/lingo-gr.y"
+  case 275: /* expr: expr '<' expr  */
+#line 775 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4067 "engines/director/lingo/lingo-gr.cpp"
+#line 4081 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 274: /* expr: expr tEQ expr  */
-#line 775 "engines/director/lingo/lingo-gr.y"
+  case 276: /* expr: expr tEQ expr  */
+#line 776 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4073 "engines/director/lingo/lingo-gr.cpp"
+#line 4087 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 275: /* expr: expr tNEQ expr  */
-#line 776 "engines/director/lingo/lingo-gr.y"
+  case 277: /* expr: expr tNEQ expr  */
+#line 777 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4079 "engines/director/lingo/lingo-gr.cpp"
+#line 4093 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 276: /* expr: expr tGE expr  */
-#line 777 "engines/director/lingo/lingo-gr.y"
+  case 278: /* expr: expr tGE expr  */
+#line 778 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4085 "engines/director/lingo/lingo-gr.cpp"
+#line 4099 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 277: /* expr: expr tLE expr  */
-#line 778 "engines/director/lingo/lingo-gr.y"
+  case 279: /* expr: expr tLE expr  */
+#line 779 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4091 "engines/director/lingo/lingo-gr.cpp"
+#line 4105 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 278: /* expr: expr tAND expr  */
-#line 779 "engines/director/lingo/lingo-gr.y"
+  case 280: /* expr: expr tAND expr  */
+#line 780 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4097 "engines/director/lingo/lingo-gr.cpp"
+#line 4111 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 279: /* expr: expr tOR expr  */
-#line 780 "engines/director/lingo/lingo-gr.y"
+  case 281: /* expr: expr tOR expr  */
+#line 781 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4103 "engines/director/lingo/lingo-gr.cpp"
+#line 4117 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 280: /* expr: expr '&' expr  */
-#line 781 "engines/director/lingo/lingo-gr.y"
+  case 282: /* expr: expr '&' expr  */
+#line 782 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4109 "engines/director/lingo/lingo-gr.cpp"
+#line 4123 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 281: /* expr: expr tCONCAT expr  */
-#line 782 "engines/director/lingo/lingo-gr.y"
+  case 283: /* expr: expr tCONCAT expr  */
+#line 783 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4115 "engines/director/lingo/lingo-gr.cpp"
+#line 4129 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 282: /* expr: expr tCONTAINS expr  */
-#line 783 "engines/director/lingo/lingo-gr.y"
+  case 284: /* expr: expr tCONTAINS expr  */
+#line 784 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4121 "engines/director/lingo/lingo-gr.cpp"
+#line 4135 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 283: /* expr: expr tSTARTS expr  */
-#line 784 "engines/director/lingo/lingo-gr.y"
+  case 285: /* expr: expr tSTARTS expr  */
+#line 785 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4127 "engines/director/lingo/lingo-gr.cpp"
+#line 4141 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 286: /* expr_nounarymath: expr_nounarymath '+' expr  */
-#line 793 "engines/director/lingo/lingo-gr.y"
+  case 288: /* expr_nounarymath: expr_nounarymath '+' expr  */
+#line 794 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4133 "engines/director/lingo/lingo-gr.cpp"
+#line 4147 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 287: /* expr_nounarymath: expr_nounarymath '-' expr  */
-#line 794 "engines/director/lingo/lingo-gr.y"
+  case 289: /* expr_nounarymath: expr_nounarymath '-' expr  */
+#line 795 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4139 "engines/director/lingo/lingo-gr.cpp"
+#line 4153 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 288: /* expr_nounarymath: expr_nounarymath '*' expr  */
-#line 795 "engines/director/lingo/lingo-gr.y"
+  case 290: /* expr_nounarymath: expr_nounarymath '*' expr  */
+#line 796 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4145 "engines/director/lingo/lingo-gr.cpp"
+#line 4159 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 289: /* expr_nounarymath: expr_nounarymath '/' expr  */
-#line 796 "engines/director/lingo/lingo-gr.y"
+  case 291: /* expr_nounarymath: expr_nounarymath '/' expr  */
+#line 797 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4151 "engines/director/lingo/lingo-gr.cpp"
+#line 4165 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 290: /* expr_nounarymath: expr_nounarymath tMOD expr  */
-#line 797 "engines/director/lingo/lingo-gr.y"
+  case 292: /* expr_nounarymath: expr_nounarymath tMOD expr  */
+#line 798 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4157 "engines/director/lingo/lingo-gr.cpp"
+#line 4171 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 291: /* expr_nounarymath: expr_nounarymath '>' expr  */
-#line 798 "engines/director/lingo/lingo-gr.y"
+  case 293: /* expr_nounarymath: expr_nounarymath '>' expr  */
+#line 799 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4163 "engines/director/lingo/lingo-gr.cpp"
+#line 4177 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 292: /* expr_nounarymath: expr_nounarymath '<' expr  */
-#line 799 "engines/director/lingo/lingo-gr.y"
+  case 294: /* expr_nounarymath: expr_nounarymath '<' expr  */
+#line 800 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4169 "engines/director/lingo/lingo-gr.cpp"
+#line 4183 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 293: /* expr_nounarymath: expr_nounarymath tEQ expr  */
-#line 800 "engines/director/lingo/lingo-gr.y"
+  case 295: /* expr_nounarymath: expr_nounarymath tEQ expr  */
+#line 801 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4175 "engines/director/lingo/lingo-gr.cpp"
+#line 4189 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 294: /* expr_nounarymath: expr_nounarymath tNEQ expr  */
-#line 801 "engines/director/lingo/lingo-gr.y"
+  case 296: /* expr_nounarymath: expr_nounarymath tNEQ expr  */
+#line 802 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4181 "engines/director/lingo/lingo-gr.cpp"
+#line 4195 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 295: /* expr_nounarymath: expr_nounarymath tGE expr  */
-#line 802 "engines/director/lingo/lingo-gr.y"
+  case 297: /* expr_nounarymath: expr_nounarymath tGE expr  */
+#line 803 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4187 "engines/director/lingo/lingo-gr.cpp"
+#line 4201 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 296: /* expr_nounarymath: expr_nounarymath tLE expr  */
-#line 803 "engines/director/lingo/lingo-gr.y"
+  case 298: /* expr_nounarymath: expr_nounarymath tLE expr  */
+#line 804 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4193 "engines/director/lingo/lingo-gr.cpp"
+#line 4207 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 297: /* expr_nounarymath: expr_nounarymath tAND expr  */
-#line 804 "engines/director/lingo/lingo-gr.y"
+  case 299: /* expr_nounarymath: expr_nounarymath tAND expr  */
+#line 805 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4199 "engines/director/lingo/lingo-gr.cpp"
+#line 4213 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 298: /* expr_nounarymath: expr_nounarymath tOR expr  */
-#line 805 "engines/director/lingo/lingo-gr.y"
+  case 300: /* expr_nounarymath: expr_nounarymath tOR expr  */
+#line 806 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4205 "engines/director/lingo/lingo-gr.cpp"
+#line 4219 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 299: /* expr_nounarymath: expr_nounarymath '&' expr  */
-#line 806 "engines/director/lingo/lingo-gr.y"
+  case 301: /* expr_nounarymath: expr_nounarymath '&' expr  */
+#line 807 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4211 "engines/director/lingo/lingo-gr.cpp"
+#line 4225 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 300: /* expr_nounarymath: expr_nounarymath tCONCAT expr  */
-#line 807 "engines/director/lingo/lingo-gr.y"
+  case 302: /* expr_nounarymath: expr_nounarymath tCONCAT expr  */
+#line 808 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4217 "engines/director/lingo/lingo-gr.cpp"
+#line 4231 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 301: /* expr_nounarymath: expr_nounarymath tCONTAINS expr  */
-#line 808 "engines/director/lingo/lingo-gr.y"
+  case 303: /* expr_nounarymath: expr_nounarymath tCONTAINS expr  */
+#line 809 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4223 "engines/director/lingo/lingo-gr.cpp"
+#line 4237 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 302: /* expr_nounarymath: expr_nounarymath tSTARTS expr  */
-#line 809 "engines/director/lingo/lingo-gr.y"
+  case 304: /* expr_nounarymath: expr_nounarymath tSTARTS expr  */
+#line 810 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4229 "engines/director/lingo/lingo-gr.cpp"
+#line 4243 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 305: /* expr_noeq: expr_noeq '+' expr_noeq  */
-#line 814 "engines/director/lingo/lingo-gr.y"
+  case 307: /* expr_noeq: expr_noeq '+' expr_noeq  */
+#line 815 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4235 "engines/director/lingo/lingo-gr.cpp"
+#line 4249 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 306: /* expr_noeq: expr_noeq '-' expr_noeq  */
-#line 815 "engines/director/lingo/lingo-gr.y"
+  case 308: /* expr_noeq: expr_noeq '-' expr_noeq  */
+#line 816 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4241 "engines/director/lingo/lingo-gr.cpp"
+#line 4255 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 307: /* expr_noeq: expr_noeq '*' expr_noeq  */
-#line 816 "engines/director/lingo/lingo-gr.y"
+  case 309: /* expr_noeq: expr_noeq '*' expr_noeq  */
+#line 817 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4247 "engines/director/lingo/lingo-gr.cpp"
+#line 4261 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 308: /* expr_noeq: expr_noeq '/' expr_noeq  */
-#line 817 "engines/director/lingo/lingo-gr.y"
+  case 310: /* expr_noeq: expr_noeq '/' expr_noeq  */
+#line 818 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4253 "engines/director/lingo/lingo-gr.cpp"
+#line 4267 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 309: /* expr_noeq: expr_noeq tMOD expr_noeq  */
-#line 818 "engines/director/lingo/lingo-gr.y"
+  case 311: /* expr_noeq: expr_noeq tMOD expr_noeq  */
+#line 819 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4259 "engines/director/lingo/lingo-gr.cpp"
+#line 4273 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 310: /* expr_noeq: expr_noeq '>' expr_noeq  */
-#line 819 "engines/director/lingo/lingo-gr.y"
+  case 312: /* expr_noeq: expr_noeq '>' expr_noeq  */
+#line 820 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4265 "engines/director/lingo/lingo-gr.cpp"
+#line 4279 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 311: /* expr_noeq: expr_noeq '<' expr_noeq  */
-#line 820 "engines/director/lingo/lingo-gr.y"
+  case 313: /* expr_noeq: expr_noeq '<' expr_noeq  */
+#line 821 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4271 "engines/director/lingo/lingo-gr.cpp"
+#line 4285 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 312: /* expr_noeq: expr_noeq tNEQ expr_noeq  */
-#line 821 "engines/director/lingo/lingo-gr.y"
+  case 314: /* expr_noeq: expr_noeq tNEQ expr_noeq  */
+#line 822 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4277 "engines/director/lingo/lingo-gr.cpp"
+#line 4291 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 313: /* expr_noeq: expr_noeq tGE expr_noeq  */
-#line 822 "engines/director/lingo/lingo-gr.y"
+  case 315: /* expr_noeq: expr_noeq tGE expr_noeq  */
+#line 823 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4283 "engines/director/lingo/lingo-gr.cpp"
+#line 4297 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 314: /* expr_noeq: expr_noeq tLE expr_noeq  */
-#line 823 "engines/director/lingo/lingo-gr.y"
+  case 316: /* expr_noeq: expr_noeq tLE expr_noeq  */
+#line 824 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4289 "engines/director/lingo/lingo-gr.cpp"
+#line 4303 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 315: /* expr_noeq: expr_noeq tAND expr_noeq  */
-#line 824 "engines/director/lingo/lingo-gr.y"
+  case 317: /* expr_noeq: expr_noeq tAND expr_noeq  */
+#line 825 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4295 "engines/director/lingo/lingo-gr.cpp"
+#line 4309 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 316: /* expr_noeq: expr_noeq tOR expr_noeq  */
-#line 825 "engines/director/lingo/lingo-gr.y"
+  case 318: /* expr_noeq: expr_noeq tOR expr_noeq  */
+#line 826 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4301 "engines/director/lingo/lingo-gr.cpp"
+#line 4315 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 317: /* expr_noeq: expr_noeq '&' expr_noeq  */
-#line 826 "engines/director/lingo/lingo-gr.y"
+  case 319: /* expr_noeq: expr_noeq '&' expr_noeq  */
+#line 827 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4307 "engines/director/lingo/lingo-gr.cpp"
+#line 4321 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 318: /* expr_noeq: expr_noeq tCONCAT expr_noeq  */
-#line 827 "engines/director/lingo/lingo-gr.y"
+  case 320: /* expr_noeq: expr_noeq tCONCAT expr_noeq  */
+#line 828 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4313 "engines/director/lingo/lingo-gr.cpp"
+#line 4327 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 319: /* expr_noeq: expr_noeq tCONTAINS expr_noeq  */
-#line 828 "engines/director/lingo/lingo-gr.y"
+  case 321: /* expr_noeq: expr_noeq tCONTAINS expr_noeq  */
+#line 829 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4319 "engines/director/lingo/lingo-gr.cpp"
+#line 4333 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 320: /* expr_noeq: expr_noeq tSTARTS expr_noeq  */
-#line 829 "engines/director/lingo/lingo-gr.y"
+  case 322: /* expr_noeq: expr_noeq tSTARTS expr_noeq  */
+#line 830 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4325 "engines/director/lingo/lingo-gr.cpp"
+#line 4339 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 321: /* sprite: tSPRITE expr tINTERSECTS simpleexpr  */
-#line 832 "engines/director/lingo/lingo-gr.y"
+  case 323: /* sprite: tSPRITE expr tINTERSECTS simpleexpr  */
+#line 833 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4331 "engines/director/lingo/lingo-gr.cpp"
+#line 4345 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 322: /* sprite: tSPRITE expr tWITHIN simpleexpr  */
-#line 833 "engines/director/lingo/lingo-gr.y"
+  case 324: /* sprite: tSPRITE expr tWITHIN simpleexpr  */
+#line 834 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4337 "engines/director/lingo/lingo-gr.cpp"
+#line 4351 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 323: /* exprlist: %empty  */
-#line 836 "engines/director/lingo/lingo-gr.y"
+  case 325: /* exprlist: %empty  */
+#line 837 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.nodelist) = new NodeList; }
-#line 4343 "engines/director/lingo/lingo-gr.cpp"
+#line 4357 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 325: /* nonemptyexprlist: expr  */
-#line 840 "engines/director/lingo/lingo-gr.y"
+  case 327: /* nonemptyexprlist: expr  */
+#line 841 "engines/director/lingo/lingo-gr.y"
                                                         {
 		NodeList *list = new NodeList; 
 		list->push_back((yyvsp[0].node));
 		(yyval.nodelist) = list; }
-#line 4352 "engines/director/lingo/lingo-gr.cpp"
+#line 4366 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 326: /* nonemptyexprlist: nonemptyexprlist ',' expr  */
-#line 844 "engines/director/lingo/lingo-gr.y"
+  case 328: /* nonemptyexprlist: nonemptyexprlist ',' expr  */
+#line 845 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 4360 "engines/director/lingo/lingo-gr.cpp"
+#line 4374 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 4364 "engines/director/lingo/lingo-gr.cpp"
+#line 4378 "engines/director/lingo/lingo-gr.cpp"
 
       default: break;
     }
@@ -4411,7 +4425,7 @@ yyerrlab:
         yypcontext_t yyctx
           = {yyssp, yytoken};
         if (yyreport_syntax_error (&yyctx) == 2)
-          goto yyexhaustedlab;
+          YYNOMEM;
       }
     }
 
@@ -4447,6 +4461,7 @@ yyerrorlab:
      label yyerrorlab therefore never appears in user code.  */
   if (0)
     YYERROR;
+  ++yynerrs;
 
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
@@ -4507,7 +4522,7 @@ yyerrlab1:
 `-------------------------------------*/
 yyacceptlab:
   yyresult = 0;
-  goto yyreturn;
+  goto yyreturnlab;
 
 
 /*-----------------------------------.
@@ -4515,24 +4530,22 @@ yyacceptlab:
 `-----------------------------------*/
 yyabortlab:
   yyresult = 1;
-  goto yyreturn;
+  goto yyreturnlab;
 
 
-#if 1
-/*-------------------------------------------------.
-| yyexhaustedlab -- memory exhaustion comes here.  |
-`-------------------------------------------------*/
+/*-----------------------------------------------------------.
+| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
+`-----------------------------------------------------------*/
 yyexhaustedlab:
   yyerror (YY_("memory exhausted"));
   yyresult = 2;
-  goto yyreturn;
-#endif
+  goto yyreturnlab;
 
 
-/*-------------------------------------------------------.
-| yyreturn -- parsing is finished, clean up and return.  |
-`-------------------------------------------------------*/
-yyreturn:
+/*----------------------------------------------------------.
+| yyreturnlab -- parsing is finished, clean up and return.  |
+`----------------------------------------------------------*/
+yyreturnlab:
   if (yychar != YYEMPTY)
     {
       /* Make sure we have latest lookahead translation.  See comments at
@@ -4559,7 +4572,7 @@ yyreturn:
   return yyresult;
 }
 
-#line 849 "engines/director/lingo/lingo-gr.y"
+#line 850 "engines/director/lingo/lingo-gr.y"
 
 
 int yyreport_syntax_error(const yypcontext_t *ctx) {
diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h
index 92d7bdcf923..3a172df111c 100644
--- a/engines/director/lingo/lingo-gr.h
+++ b/engines/director/lingo/lingo-gr.h
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.7.6.  */
+/* A Bison parser, made by GNU Bison 3.8.2.  */
 
 /* Bison interface for Yacc-like parsers in C
 
@@ -147,7 +147,7 @@ extern int yydebug;
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 union YYSTYPE
 {
-#line 112 "engines/director/lingo/lingo-gr.y"
+#line 111 "engines/director/lingo/lingo-gr.y"
 
 	Common::String *s;
 	int i;
@@ -173,6 +173,8 @@ typedef union YYSTYPE YYSTYPE;
 
 extern YYSTYPE yylval;
 
-//int yyparse (void);
+
+int yyparse (void);
+
 
 #endif /* !YY_YY_ENGINES_DIRECTOR_LINGO_LINGO_GR_H_INCLUDED  */
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index ed1a31aa277..e41251e6e64 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -751,6 +751,8 @@ proplist: proppair[item]				{
 proppair: tSYMBOL ':' expr		{ $$ = new PropPairNode(new SymbolNode($tSYMBOL), $expr); }
 	| ID ':' expr				{ $$ = new PropPairNode(new SymbolNode($ID), $expr); }
 	| tSTRING ':' expr 			{ $$ = new PropPairNode(new StringNode($tSTRING), $expr); }
+	| tINT ':' expr             { $$ = new PropPairNode(new IntNode($tINT), $expr); }
+	| tFLOAT ':' expr           { $$ = new PropPairNode(new FloatNode($tFLOAT), $expr); }
 	;
 
 unarymath: '+' simpleexpr[arg]  %prec tUNARY	{ $$ = $arg; }
diff --git a/engines/director/lingo/tests/lists.lingo b/engines/director/lingo/tests/lists.lingo
index f6a336dfe14..ffbfa83ffa5 100644
--- a/engines/director/lingo/tests/lists.lingo
+++ b/engines/director/lingo/tests/lists.lingo
@@ -47,6 +47,20 @@ set res to a >= machinery
 set res to machinery = a
 set res to machinery >= a
 
+-- property Array tests
+set propArray to [501: "cast", 502: "value", 1.5: "script", a: "score", #b: "member"]
+set var to getPropAt(propArray, 1)
+scummvmAssertEqual(var, 501)
+set var to getAt(propArray, 1)
+scummvmAssertEqual(var, "cast")
+
+set var to getProp(propArray, 1.5)
+scummvmAssertEqual(var, "script")
+set var to getProp(propArray, #a)
+scummvmAssertEqual(var, "score")
+set var to getProp(propArray, #b)
+scummvmAssertEqual(var, "member")
+
 -- itemOf
 set string_array to "one,, three, four"
 set res to item 2 of string_array




More information about the Scummvm-git-logs mailing list