[Scummvm-git-logs] scummvm master -> 4796729a58bde562a16dd0561e5998db44c13ea3

djsrv dservilla at gmail.com
Wed Aug 25 02:42:03 UTC 2021


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:
4796729a58 DIRECTOR: LINGO: Terminate when stmt with newline


Commit: 4796729a58bde562a16dd0561e5998db44c13ea3
    https://github.com/scummvm/scummvm/commit/4796729a58bde562a16dd0561e5998db44c13ea3
Author: djsrv (dservilla at gmail.com)
Date: 2021-08-24T22:41:33-04:00

Commit Message:
DIRECTOR: LINGO: Terminate when stmt with newline

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


diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 4b9b82e96c..fd74bb74e8 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -639,9 +639,9 @@ union yyalloc
 #endif /* !YYCOPY_NEEDED */
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  190
+#define YYFINAL  191
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   4482
+#define YYLAST   4445
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  102
@@ -650,7 +650,7 @@ union yyalloc
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  325
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  606
+#define YYNSTATES  607
 
 /* YYMAXUTOK -- Last valid token kind.  */
 #define YYMAXUTOK   342
@@ -809,7 +809,7 @@ static const yytype_int16 yytoknum[] =
 };
 #endif
 
-#define YYPACT_NINF (-519)
+#define YYPACT_NINF (-512)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
@@ -823,67 +823,67 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    2899,  -519,  3463,  -519,  -519,  -519,  -519,     4,  -519,   -13,
-    -519,  3463,  1847,     4,  1943,  -519,  -519,  3463,  -519,     3,
-    -519,  -519,  2039,    32,  3542,  -519,  -519,  -519,  -519,  3463,
-    2039,  1847,  3463,  -519,  -519,  -519,  -519,  -519,  -519,  -519,
-    -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,
-    -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,
-    -519,  -519,  -519,  -519,  -519,  -519,  1943,  3463,  3463,   -37,
-    3778,  -519,    43,  2899,  -519,  -519,  -519,  -519,  2039,  -519,
-    -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,
-    -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,
-    -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,
-    -519,  -519,  -519,   -64,  -519,  -519,  2135,  2135,  1943,  1943,
-    1943,  1943,     6,   -29,    25,  -519,  -519,    27,    34,  -519,
-    -519,  -519,  -519,  2135,  2135,  2135,  2135,  1943,  1943,  2231,
-    1943,  1943,  1943,  1943,  3621,  1943,  2231,  2231,  1367,   789,
-       7,    33,    54,  -519,  -519,  -519,  -519,  -519,  -519,  -519,
-    -519,  -519,  -519,   887,  -519,    87,  1943,  3969,  3463,    93,
-      94,   983,  3463,  1943,  3463,  -519,  -519,    -5,  -519,    97,
-      98,  1079,   100,   102,   103,  3896,   110,  3463,  -519,  -519,
-    -519,  -519,   116,  1175,  -519,  3463,  1463,  -519,  -519,  -519,
-     370,   397,   540,   614,   153,  -519,  -519,  -519,  3463,  -519,
-    -519,  1271,  4296,  -519,   -45,    48,    50,    65,    76,   153,
-     115,   118,  4243,  -519,  -519,  -519,  3982,    55,   112,   119,
-      75,    84,  -519,  4296,   120,   122,  1559,  -519,  -519,   189,
-    1943,  1943,  1943,  1943,  2615,  2615,  2807,  1943,  2711,  2711,
-    1943,  1943,  1943,  1943,  1943,  1943,  1943,  1943,  -519,  -519,
-    4065,  -519,  -519,  4052,  2978,  1943,  1943,  1943,  1943,  1943,
-     121,  -519,  -519,  3700,  3700,  3700,    39,  4078,   193,  -519,
-    -519,  1943,   -43,  -519,  1943,  -519,  -519,  -519,  3778,  3057,
-    -519,   127,  -519,  -519,  -519,  3995,  2231,  1943,  2231,  1943,
-    2231,  1943,  2231,  1943,  -519,  -519,  -519,  -519,   124,  -519,
-     199,  4309,  -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,
-    -519,  -519,  2327,  2423,  2231,  2231,  1655,  -519,  1943,  1943,
-    -519,  1943,  3384,  -519,  -519,  1943,  -519,   133,  1943,    15,
-      15,    15,    15,  4375,  4375,  -519,    -7,    15,    15,    15,
-      15,    -7,    61,    61,  -519,  -519,   133,  1943,  1943,  1943,
-    1943,  1943,  1943,  1943,  1943,  1943,  1943,  1943,  1943,  1943,
-    1943,  1943,  1943,  1943,  1943,  -519,  3294,   215,  3057,     6,
-    -519,   137,  -519,   138,   156,  1943,  1943,  3057,  2519,  4132,
-    3463,  -519,  -519,  -519,   -43,  -519,  4145,  -519,  -519,  -519,
-     170,  3057,  -519,  3057,  1751,  -519,   683,  -519,  3830,  -519,
-    3843,  -519,  3863,  -519,  -519,  2231,  1943,   124,   124,   124,
-     124,  2231,  2231,   124,  2231,  2231,  -519,  -519,  -519,  -519,
-    -519,  -519,  -519,   133,  4296,  4296,  4296,    55,   112,   157,
-    -519,  4296,  1943,   159,  4296,  -519,    15,    15,    15,    15,
-    4375,  4375,  -519,    -7,    15,    15,    15,    15,    -7,    61,
-      61,  -519,  -519,   133,  -519,  -519,    -3,  3294,  -519,  3136,
-    -519,  -519,  -519,  -519,  4158,     2,   181,  1943,  1943,  1943,
-    1943,  -519,  -519,  -519,  3463,  -519,  -519,   172,  -519,   259,
-    -519,   133,  2231,  2231,  2231,  2231,  -519,  4296,  2231,  2231,
-    2231,  2231,  -519,   244,   203,  -519,  -519,   176,  -519,  -519,
-    3215,   182,  -519,  -519,  3294,  -519,  3057,   242,  1943,   184,
-    -519,  4322,  -519,  3916,  4322,  4322,   185,  -519,  3463,   183,
-    -519,  -519,  -519,  -519,  -519,  -519,  -519,  -519,   216,  2231,
-    -519,  -519,  3294,  -519,  -519,   201,   202,  1943,  4212,  -519,
-    1943,  1943,  1943,  1943,  1943,  1943,  1943,  1943,  1943,  1943,
-    1943,  1943,  1943,  1943,  1943,  1943,   220,  3057,    78,  -519,
-    2231,   201,  -519,   197,  4225,  3057,    72,    72,    72,  4388,
-    4388,  -519,     8,    72,    72,    72,    72,     8,    77,    77,
-    -519,  -519,  1943,  -519,  -519,  -519,  -519,  -519,  3057,   209,
-    4322,   211,   219,   223,  -519,  -519
+    2901,  -512,  3465,  -512,  -512,  -512,  -512,     8,  -512,   -16,
+    -512,  3465,  1849,     8,  1945,  -512,  -512,  3465,  -512,    31,
+    -512,  -512,  2041,    16,  3544,  -512,    -8,  -512,  -512,  3465,
+    2041,  1849,  3465,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
+    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
+    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
+    -512,  -512,  -512,  -512,  -512,  -512,  1945,  3465,  3465,     3,
+    3780,  -512,    68,  2901,  -512,  -512,  -512,  -512,  2041,  -512,
+    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
+    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
+    -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
+    -512,  -512,  -512,    77,  -512,  -512,  2137,  2137,  1945,  1945,
+    1945,  1945,    61,     6,    27,  -512,  -512,    59,   -12,  -512,
+    -512,  -512,  -512,  2137,  2137,  2137,  2137,  1945,  1945,  2233,
+    1945,  1945,  1945,  1945,  3623,  1945,  2233,  2233,  1369,   791,
+      62,    67,    81,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
+    -512,  -512,  -512,   889,  -512,    87,  1945,   691,  3465,    89,
+      98,   985,  3465,  1945,  3465,  -512,  -512,    -2,  -512,  -512,
+     100,   103,  1081,   104,   107,   108,   517,   109,  3465,  -512,
+    -512,  -512,  -512,   111,  1177,  -512,  3465,  1465,  -512,  -512,
+    -512,   363,   386,   503,   597,   135,  -512,  -512,  -512,  3465,
+    -512,  -512,  1273,  4272,  -512,   -45,    32,    35,    65,    76,
+     135,   161,   179,  4219,  -512,  -512,  -512,  3951,   110,   112,
+     114,   -58,   -11,  -512,  4272,   115,   116,  1561,  -512,  -512,
+     182,  1945,  1945,  1945,  1945,  2617,  2617,  2809,  1945,  2713,
+    2713,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  -512,
+    -512,  4041,  -512,  -512,  4028,  2980,  1945,  1945,  1945,  1945,
+    1945,   121,  -512,  -512,  3702,  3702,  3702,   -13,  4054,   189,
+    -512,  -512,  1945,   -61,  -512,  1945,  -512,  -512,  -512,  3780,
+    3059,  -512,   124,  -512,  -512,  -512,  3971,  2233,  1945,  2233,
+    1945,  2233,  1945,  2233,  1945,  -512,  -512,  -512,  -512,    43,
+    -512,   184,  4285,  -512,  -512,  -512,  -512,  -512,  -512,  -512,
+    -512,  -512,  -512,  2329,  2425,  2233,  2233,  1657,  -512,  1945,
+    1945,  -512,  1945,  3386,  -512,  -512,  1945,  -512,   125,  1945,
+      26,    26,    26,    26,  4351,  4351,  -512,    72,    26,    26,
+      26,    26,    72,    15,    15,  -512,  -512,   125,  1945,  1945,
+    1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,
+    1945,  1945,  1945,  1945,  1945,  1945,  -512,  3296,   204,  3059,
+      61,  -512,   127,  -512,   129,   130,  1945,  1945,  3059,  2521,
+    4108,  3465,  -512,  -512,  -512,   -61,  -512,  4121,  -512,  -512,
+    -512,   140,  3059,  -512,  3059,  1753,  -512,  3832,  -512,  3845,
+    -512,  3865,  -512,  3918,  -512,  -512,  2233,  1945,    43,    43,
+      43,    43,  2233,  2233,    43,  2233,  2233,  -512,  -512,  -512,
+    -512,  -512,  -512,  -512,   125,  4272,  4272,  4272,   110,   112,
+     132,  -512,  4272,  1945,   133,  4272,  -512,    26,    26,    26,
+      26,  4351,  4351,  -512,    72,    26,    26,    26,    26,    72,
+      15,    15,  -512,  -512,   125,  -512,  -512,    -3,  3296,  -512,
+    3138,  -512,  -512,  -512,  -512,  4134,     2,   149,  1945,  1945,
+    1945,  1945,  -512,  -512,  -512,  3465,  -512,  -512,   160,  -512,
+     247,  -512,   125,  2233,  2233,  2233,  2233,  -512,  4272,  2233,
+    2233,  2233,  2233,  -512,   229,   197,  -512,  -512,   170,  -512,
+    -512,  3217,   164,  -512,  -512,  3296,  -512,  3059,   235,  1945,
+     178,  -512,  4298,  -512,  3938,  4298,  4298,   180,  -512,  3465,
+     176,  -512,  -512,  -512,  -512,  -512,  -512,  -512,  -512,   207,
+    2233,  -512,  -512,  3296,  -512,  -512,   194,   195,  1945,  4188,
+    -512,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,  1945,
+    1945,  1945,  1945,  1945,  1945,  1945,  1945,   211,  3059,    83,
+    -512,  2233,   194,  -512,   187,  4201,  3059,    34,    34,    34,
+     333,   333,  -512,    94,    34,    34,    34,    34,    94,    53,
+      53,  -512,  -512,  1945,  -512,  -512,  -512,  -512,  -512,  3059,
+     202,  4298,   203,   191,   196,  -512,  -512
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -893,7 +893,7 @@ static const yytype_int16 yydefact[] =
 {
        0,    25,    22,    32,    39,    63,    73,    37,    38,     0,
       40,    97,   127,    41,     0,    42,    44,     0,    55,    56,
-      59,    61,   127,    62,     0,    71,   165,    74,    72,     0,
+      59,    61,   127,    62,     0,    71,     0,    74,    72,     0,
      127,   127,    97,    30,    60,    57,    54,    29,    31,    35,
       68,    33,    34,    45,    46,    48,    49,    76,    77,    26,
       27,    28,    50,    65,    36,    47,    51,    52,    53,    58,
@@ -908,74 +908,74 @@ static const yytype_int16 yydefact[] =
       33,    45,    48,    76,    69,    67,     0,     0,     0,   322,
      191,     0,     0,   262,   186,   187,   188,   189,   220,   221,
      190,   263,   264,   135,   265,     0,     0,     0,    97,     0,
-       0,   135,     0,     0,    69,   191,   194,     0,   195,     0,
-       0,   135,     0,     0,     0,     0,     0,    97,   103,   126,
-       1,     4,     0,   135,    10,     0,     0,   197,   213,   196,
-       0,     0,     0,     0,     0,   124,   122,   148,    99,   211,
-     212,   137,   138,   182,    26,    27,    28,    50,    65,    47,
-      58,   217,     0,   260,   261,   132,     0,   181,   180,     0,
-     191,     0,   255,   324,     0,   323,     0,   115,   116,    59,
-       0,     0,     0,     0,    30,    60,    54,     0,    35,    68,
-       0,     0,     0,     0,     0,     0,     0,   136,   128,   283,
-     135,   284,   125,     0,     0,     0,     0,     0,     0,     0,
-       0,   121,   114,    44,    29,    31,     0,     0,   245,   146,
-     147,     0,    14,   119,    74,   117,   118,   150,     0,   166,
-     149,     0,   113,    24,   214,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   207,   209,   210,   208,     0,   101,
-      59,   141,   228,   229,   230,   231,   232,   233,   234,   235,
-     236,   237,     0,     0,     0,     0,     0,   185,     0,     0,
-     253,     0,     0,   254,   252,     0,   183,   135,     0,   275,
-     276,   273,   274,   277,   278,   270,   280,   281,   282,   272,
-     271,   279,   266,   267,   268,   269,   135,     0,     0,     0,
+       0,   135,     0,     0,    69,   191,   194,     0,   195,   165,
+       0,     0,   135,     0,     0,     0,     0,     0,    97,   103,
+     126,     1,     4,     0,   135,    10,     0,     0,   197,   213,
+     196,     0,     0,     0,     0,     0,   124,   122,   148,    99,
+     211,   212,   137,   138,   182,    26,    27,    28,    50,    65,
+      47,    58,   217,     0,   260,   261,   132,     0,   181,   180,
+       0,   191,     0,   255,   324,     0,   323,     0,   115,   116,
+      59,     0,     0,     0,     0,    30,    60,    54,     0,    35,
+      68,     0,     0,     0,     0,     0,     0,     0,   136,   128,
+     283,   135,   284,   125,     0,     0,     0,     0,     0,     0,
+       0,     0,   121,   114,    44,    29,    31,     0,     0,   245,
+     146,   147,     0,    14,   119,    74,   117,   118,   150,     0,
+     166,   149,     0,   113,    24,   214,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   207,   209,   210,   208,     0,
+     101,    59,   141,   228,   229,   230,   231,   232,   233,   234,
+     235,   236,   237,     0,     0,     0,     0,     0,   185,     0,
+       0,   253,     0,     0,   254,   252,     0,   183,   135,     0,
+     275,   276,   273,   274,   277,   278,   270,   280,   281,   282,
+     272,   271,   279,   266,   267,   268,   269,   135,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   136,   130,   172,   151,   166,    69,
-     192,     0,   193,     0,     0,     0,     0,   166,     0,     0,
-       0,    18,    19,    12,    15,    16,     0,   163,   170,   171,
-       0,   167,   168,   166,     0,   198,     0,   202,     0,   204,
-       0,   200,     0,   243,   244,     0,     0,    34,    46,    49,
-      77,    51,    52,    53,    66,    67,   219,   223,   222,   218,
-     320,   321,   133,   135,   259,   257,   258,     0,     0,     0,
-     256,   325,   136,     0,   140,   129,   294,   295,   292,   293,
-     296,   297,   289,   299,   300,   301,   291,   290,   298,   285,
-     286,   287,   288,   135,   176,   177,   157,   173,   174,     0,
-      11,   142,   143,   144,     0,     0,     0,    51,    52,    66,
-      67,   246,   247,   145,    97,    17,   120,     0,   169,    21,
-     215,   135,     0,     0,     0,     0,   206,   139,     0,     0,
-       0,     0,   227,     0,     0,   225,   226,     0,   184,   131,
-       0,     0,   152,   175,   172,   153,   166,     0,     0,     0,
-     302,   248,   303,     0,   250,   251,     0,   164,    22,     0,
-     199,   203,   205,   201,   238,   240,   241,   239,     0,     0,
-     242,   134,   172,   155,   158,   157,     0,     0,     0,   159,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   166,     0,   216,
-       0,   157,   154,     0,     0,   166,   312,   313,   311,   314,
-     315,   308,   317,   318,   319,   310,   309,   316,   304,   305,
-     306,   307,     0,    13,    20,   224,   156,   162,   166,     0,
-     249,     0,     0,     0,   160,   161
+       0,     0,     0,     0,     0,   136,   130,   172,   151,   166,
+      69,   192,     0,   193,     0,     0,     0,     0,   166,     0,
+       0,     0,    18,    19,    12,    15,    16,     0,   163,   170,
+     171,     0,   167,   168,   166,     0,   198,     0,   202,     0,
+     204,     0,   200,     0,   243,   244,     0,     0,    34,    46,
+      49,    77,    51,    52,    53,    66,    67,   219,   223,   222,
+     218,   320,   321,   133,   135,   259,   257,   258,     0,     0,
+       0,   256,   325,   136,     0,   140,   129,   294,   295,   292,
+     293,   296,   297,   289,   299,   300,   301,   291,   290,   298,
+     285,   286,   287,   288,   135,   176,   177,   157,   173,   174,
+       0,    11,   142,   143,   144,     0,     0,     0,    51,    52,
+      66,    67,   246,   247,   145,    97,    17,   120,     0,   169,
+      21,   215,   135,     0,     0,     0,     0,   206,   139,     0,
+       0,     0,     0,   227,     0,     0,   225,   226,     0,   184,
+     131,     0,     0,   152,   175,   172,   153,   166,     0,     0,
+       0,   302,   248,   303,     0,   250,   251,     0,   164,    22,
+       0,   199,   203,   205,   201,   238,   240,   241,   239,     0,
+       0,   242,   134,   172,   155,   158,   157,     0,     0,     0,
+     159,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   166,     0,
+     216,     0,   157,   154,     0,     0,   166,   312,   313,   311,
+     314,   315,   308,   317,   318,   319,   310,   309,   316,   304,
+     305,   306,   307,     0,    13,    20,   224,   156,   162,   166,
+       0,   249,     0,     0,     0,   160,   161
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -519,  -519,  -519,   246,  -519,  -519,  -519,  -519,  -519,   -79,
-    -519,  -208,     0,     9,   -30,  -519,     1,  -364,   -65,  -519,
-      49,  -239,   290,  -519,  -519,  -519,  -519,  -519,  -518,  -519,
-    -519,  -519,  -368,  -519,   -77,  -492,  -519,  -141,   -52,   -20,
-    -186,  -519,    -4,  -519,  -519,    51,  -519,     5,  -177,  -519,
-    -519,  -217,  -519,  -519,  -519,  -519,    -1,  -519,   200,    -6,
-     126,  -252,    -2,  -519,  -229
+    -512,  -512,  -512,   220,  -512,  -512,  -512,  -512,  -512,  -100,
+    -512,  -232,     0,     9,   -27,  -512,     1,  -363,   -66,  -512,
+      28,  -234,   284,  -512,  -512,  -512,  -512,  -512,  -511,  -512,
+    -512,  -512,  -367,  -512,   -86,  -486,  -512,  -149,   -83,   -22,
+    -127,  -512,    -4,  -512,  -512,    21,  -512,     5,  -184,  -512,
+    -512,  -250,  -512,  -512,  -512,  -512,    -1,  -512,   201,    -6,
+     113,  -252,   157,  -512,  -230
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-       0,    72,    73,    74,    75,    76,   392,   393,   394,   395,
-      77,   113,   114,   150,   127,   128,   399,    80,    81,    82,
-     151,   258,   152,    83,   281,    84,    85,    86,   512,    87,
-      88,    89,   400,   401,   402,   466,   467,   468,   153,   154,
-     381,   177,   155,   308,   156,   197,   157,   426,   427,   158,
-     159,   415,   178,   481,   160,   231,   232,   161,   162,   233,
-     260,   521,   164,   234,   235
+       0,    72,    73,    74,    75,    76,   393,   394,   395,   396,
+      77,   113,   114,   150,   127,   128,   400,    80,    81,    82,
+     151,   259,   152,    83,   282,    84,    85,    86,   513,    87,
+      88,    89,   401,   402,   403,   467,   468,   469,   153,   154,
+     382,   177,   155,   309,   156,   198,   157,   427,   428,   158,
+     159,   416,   178,   482,   160,   232,   233,   161,   162,   234,
+     261,   522,   164,   235,   236
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -983,163 +983,144 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      78,    79,   184,   123,   176,   189,   163,   337,   167,   165,
-     470,   115,   465,   510,   116,   117,   171,   517,   124,   476,
-     126,   375,   545,   312,   181,   163,   168,   572,   356,   279,
-     313,   194,   195,   175,   169,   489,   518,   186,   179,   280,
-     390,   126,   267,   190,   240,   241,   242,   243,   265,   266,
-     571,   267,   391,   596,   247,   268,   269,   555,   188,   118,
-     185,   119,   385,   120,   267,   121,   205,   247,   172,   173,
-      78,   170,   193,    78,    79,   204,   126,   187,   122,   180,
-     182,   511,   125,   386,   253,   254,   255,   256,   383,   384,
-     250,   251,   252,   253,   254,   255,   256,   433,   443,   562,
-     563,   564,   565,   465,   236,   252,   253,   254,   255,   256,
-     267,   259,   200,   201,   202,   203,   314,   445,   316,   259,
-     206,   555,   207,   315,   556,   317,   555,   192,   237,   259,
-     208,   211,   212,   318,   200,   201,   202,   203,   270,   222,
-     319,   259,   226,   322,   320,   463,   323,   413,   546,   238,
-     465,   321,   414,   221,   255,   256,   328,   291,   230,   259,
-     263,   261,   561,   562,   563,   564,   565,   277,   199,   261,
-     564,   565,   236,   594,   195,   491,   331,   126,   465,   261,
-     332,   276,   262,   278,   333,   199,   209,   210,   271,   272,
-     295,   261,   282,   283,   507,   285,   126,   286,   287,   593,
-     498,   499,   500,   501,   293,   290,   504,   599,   304,   261,
-     305,   292,   306,   329,   307,   338,   378,   309,   335,   330,
-     334,   388,   403,   397,   509,   416,   523,   524,   525,   442,
-     601,   469,   471,   472,   339,   340,   341,   342,   343,   344,
+      78,    79,   176,   123,   190,   185,   163,   338,   167,   165,
+     386,   115,   471,   511,   466,   124,   171,   518,   116,   117,
+     126,   477,   391,   313,   182,   163,   168,   376,   357,   546,
+     314,   387,   280,   175,   392,   573,   519,   490,   180,   237,
+     187,   126,   281,   332,   241,   242,   243,   244,   266,   267,
+     170,   268,   172,   173,   248,   269,   270,   572,   181,   183,
+     186,   597,   169,   118,   268,   119,   414,   120,   191,   121,
+      78,   415,   194,    78,    79,   268,   126,   188,   248,   125,
+     260,   512,   122,   556,   209,   333,   557,   179,   260,   334,
+     251,   252,   253,   254,   255,   256,   257,   434,   189,   260,
+     315,   206,   556,   317,   444,   466,   193,   316,   256,   257,
+     318,   260,   201,   202,   203,   204,   253,   254,   255,   256,
+     257,   268,   207,   446,   562,   563,   564,   565,   566,   260,
+     205,   212,   213,   319,   201,   202,   203,   204,   200,   223,
+     320,   271,   227,   556,   321,   464,   565,   566,   384,   385,
+     547,   322,   466,   222,   208,   200,   210,   211,   231,   237,
+     264,   292,   238,   254,   255,   256,   257,   278,   499,   500,
+     501,   502,   195,   196,   505,   492,   239,   126,   595,   196,
+     466,   277,   263,   279,   272,   563,   564,   565,   566,   323,
+     305,   296,   306,   273,   307,   283,   308,   126,   284,   286,
+     508,   594,   287,   288,   291,   294,   293,   324,   339,   600,
+     417,   329,   336,   330,   331,   335,   379,   389,   310,   404,
+     470,   443,   472,   398,   473,   474,   488,   524,   525,   526,
+     510,   509,   602,   332,   520,   340,   341,   342,   343,   344,
      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
-     355,   473,   529,   380,   380,   380,   487,   508,   331,   343,
-     344,   345,   347,   348,    78,   377,   519,   527,   528,   382,
-     382,   382,   538,   539,   541,   389,   547,   544,   396,   549,
-     567,   569,   175,   175,   175,   511,   570,   573,    78,    78,
-     592,   406,   597,   408,   602,   410,   603,   412,   576,   577,
+     355,   356,   381,   381,   381,   528,   529,   539,   530,   545,
+     344,   345,   346,   348,   349,    78,   378,   540,   542,   548,
+     383,   383,   383,   550,   570,   568,   390,   571,   512,   397,
+     574,   593,   598,   175,   175,   175,   605,   603,   604,    78,
+      78,   606,   407,   192,   409,   486,   411,   569,   413,   577,
      578,   579,   580,   581,   582,   583,   584,   585,   586,   587,
-     588,   589,   590,   591,   604,   485,   198,   198,   605,   191,
-     568,   183,   434,   435,   488,   436,   513,   540,   429,   441,
-       0,   440,   444,   198,   198,   198,   198,   311,     0,   213,
-     600,   439,     0,     0,     0,     0,   223,   224,     0,     0,
-       0,   446,   447,   448,   449,   450,   451,   452,   453,   454,
-     455,   456,   457,   458,   459,   460,   461,   462,     0,     0,
-       0,     0,     0,     0,     0,     0,    78,     0,    78,   474,
-     475,     0,     0,     0,     0,     0,     0,    78,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   296,   484,
-       0,    78,     0,    78,   297,     0,     0,     0,     0,     0,
-     497,     0,   240,   241,   242,   243,   265,   266,     0,   267,
-       0,     0,   247,   268,   269,   298,     0,     0,     0,     0,
-       0,   299,     0,     0,     0,     0,   441,     0,     0,   240,
-     241,   242,   243,   265,   266,     0,   267,     0,     0,   247,
-     268,   269,     0,     0,   526,     0,     0,     0,   250,   251,
-     252,   253,   254,   255,   256,     0,     0,    78,     0,    78,
-     515,     0,     0,     0,     0,   522,   522,   522,   522,     0,
-       0,     0,     0,     0,     0,   250,   251,   252,   253,   254,
-     255,   256,     0,   126,     0,     0,   405,     0,   407,     0,
-     409,     0,   411,     0,     0,     0,     0,     0,     0,     0,
-      78,   543,   548,     0,    78,     0,    78,     0,     0,     0,
-       0,     0,   428,   428,   430,   431,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   115,     0,     0,
-       0,   574,    78,     0,     0,     0,     0,     0,   522,   522,
-     522,   522,   522,   522,   522,   522,   522,   522,   522,   522,
-     522,   522,   522,   522,     0,     0,     0,    78,   300,     0,
-       0,     0,     0,     0,   301,    78,     0,     0,     0,     0,
-       0,     0,   240,   241,   242,   243,   265,   266,   482,   267,
-     522,     0,   247,   268,   269,     0,     0,     0,    78,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   496,     0,     0,     0,     0,
-       0,   502,   503,     0,   505,   506,     0,     0,   250,   251,
-     252,   253,   254,   255,   256,     0,     0,     0,     0,     0,
-       0,     0,   302,     0,     0,     0,     0,     0,   303,     0,
-       0,     0,     0,     0,     0,     0,   240,   241,   242,   243,
-     265,   266,     0,   267,     0,     0,   247,   268,   269,     0,
-       0,     0,     0,     0,     0,     0,     0,   520,   520,   520,
-     520,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   530,   531,   532,   533,     0,     0,   534,   535,
-     536,   537,   250,   251,   252,   253,   254,   255,   256,     0,
-       0,   492,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   240,   241,   242,   243,   265,
-     266,     0,   267,     0,     0,   247,   268,   269,     0,   502,
+     588,   589,   590,   591,   592,   184,   489,   199,   199,   514,
+     262,   541,     0,   435,   436,   312,   437,     0,   262,   430,
+     442,     0,   441,   445,   199,   199,   199,   199,     0,   262,
+     214,   601,   440,     0,     0,     0,     0,   224,   225,     0,
+       0,   262,   447,   448,   449,   450,   451,   452,   453,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,   262,
+       0,     0,     0,     0,     0,   551,   552,    78,   553,    78,
+     475,   476,   556,     0,     0,   557,   558,   559,    78,     0,
+       0,   297,     0,     0,     0,     0,     0,   298,     0,     0,
+     485,     0,    78,     0,    78,   241,   242,   243,   244,   266,
+     267,   498,   268,     0,   299,   248,   269,   270,     0,     0,
+     300,   560,   561,   562,   563,   564,   565,   566,   241,   242,
+     243,   244,   266,   267,     0,   268,     0,   442,   248,   269,
+     270,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   251,   252,   253,   254,   255,   256,   257,   527,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    78,     0,
+      78,   516,     0,     0,   251,   252,   253,   254,   255,   256,
+     257,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   126,     0,     0,     0,   406,     0,
+     408,     0,   410,     0,   412,     0,     0,     0,     0,     0,
+       0,    78,   544,   549,     0,    78,     0,    78,     0,     0,
+       0,     0,     0,     0,   429,   429,   431,   432,     0,     0,
+       0,   301,     0,     0,     0,     0,     0,   302,   115,     0,
+       0,     0,   575,    78,     0,   241,   242,   243,   244,   266,
+     267,   289,   268,     0,     0,   248,   269,   270,     0,   241,
+     242,   243,   244,   266,   267,     0,   268,     0,    78,   248,
+     269,   270,     0,     0,     0,     0,    78,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     520,   520,   520,   520,   520,   520,   520,   520,   520,   520,
-     520,   520,   520,   520,   520,   520,     0,     0,     0,     0,
-     595,   250,   251,   252,   253,   254,   255,   256,     0,     0,
+     483,   251,   252,   253,   254,   255,   256,   257,     0,    78,
+       0,     0,     0,     0,     0,   251,   252,   253,   254,   255,
+     256,   257,   290,     0,     0,     0,     0,   497,     0,     0,
+       0,     0,     0,   503,   504,   303,   506,   507,     0,     0,
+       0,   304,     0,     0,     0,   523,   523,   523,   523,   241,
+     242,   243,   244,   266,   267,     0,   268,     0,     0,   248,
+     269,   270,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   520,   129,   130,     1,   227,   228,    90,   133,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   521,
+     521,   521,   521,     0,     0,   251,   252,   253,   254,   255,
+     256,   257,     0,     0,   531,   532,   533,   534,     0,     0,
+     535,   536,   537,   538,     0,     0,     0,     0,   523,   523,
+     523,   523,   523,   523,   523,   523,   523,   523,   523,   523,
+     523,   523,   523,   523,   265,     0,     0,     0,     0,     0,
+       0,     0,     0,   241,   242,   243,   244,   266,   267,     0,
+     268,   503,     0,   248,   269,   270,     0,     0,     0,     0,
+     523,     0,   521,   521,   521,   521,   521,   521,   521,   521,
+     521,   521,   521,   521,   521,   521,   521,   521,     0,     0,
+       0,     0,   596,     0,     0,     0,     0,     0,     0,   251,
+     252,   253,   254,   255,   256,   257,     0,     0,     0,     0,
+       0,     0,     0,     0,   521,   129,   130,     1,   228,   229,
+      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,    33,    34,   139,
+      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,   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,   132,    90,   133,
      134,   135,   136,    91,     8,    92,    93,    10,    94,    95,
-      96,    97,    15,    16,    98,    18,    99,    20,    21,   100,
+      96,    97,    15,    16,    98,    18,    99,   240,    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,    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,     0,     0,     0,
-     146,   147,     0,     0,     0,     0,   166,     0,   149,     0,
-     229,   129,   130,     1,   131,   132,    90,   133,   134,   135,
-     136,    91,     8,    92,    93,    10,    94,    95,    96,    97,
-      15,    16,    98,    18,    99,   239,    21,   100,   101,   102,
-     103,    25,     0,    27,    28,   104,   105,   106,   107,   240,
-     241,   242,   243,   244,   245,   139,   246,    37,    38,   247,
-     248,   249,   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,   250,   251,   252,   253,   254,
-     255,   256,     0,   257,   166,     0,   149,   129,   130,     1,
-     131,   132,    90,   133,   134,   135,   136,    91,     8,    92,
-      93,    10,    94,    95,    96,    97,    15,   273,    98,    18,
-      99,    20,    21,   100,   101,   102,   103,    25,     0,    27,
-      28,   104,   105,   106,   107,   240,   241,   242,   243,   244,
-     245,   139,   246,   274,   275,   247,   248,   249,   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,   250,   251,   252,   253,   254,   255,   256,     0,   257,
-     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,   284,    28,   104,   105,   106,
-     107,   240,   241,   242,   243,   244,   245,   139,   246,    37,
-      38,   247,   248,   249,   140,    42,   141,    44,   142,    46,
+     107,   241,   242,   243,   244,   245,   246,   139,   247,    37,
+      38,   248,   249,   250,   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,   250,   251,   252,
-     253,   254,   255,   256,     0,   257,   166,     0,   149,   129,
+     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,   133,   134,   135,   136,    91,
-       8,    92,    93,    10,    94,    95,    96,    97,    15,    16,
+       8,    92,    93,    10,    94,    95,    96,    97,    15,   274,
       98,    18,    99,    20,    21,   100,   101,   102,   103,    25,
-       0,    27,    28,   104,   105,   106,   107,   240,   241,   242,
-     243,   244,   245,   139,   246,    37,    38,   247,   248,   249,
+       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,    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,   250,   251,   252,   253,   254,   255,   256,
-       0,   257,   166,     0,   149,   129,   130,     1,   131,   132,
+       0,     0,   112,   251,   252,   253,   254,   255,   256,   257,
+       0,   258,   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,   310,
-      21,   100,   101,   102,   103,    25,     0,    27,    28,   104,
-     105,   106,   107,   240,   241,   242,   243,   244,   245,   139,
-     246,    37,    38,   247,   248,   249,   140,    42,   141,    44,
+      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,    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,   250,
-     251,   252,   253,   254,   255,   256,     0,     0,   166,     0,
+      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,   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,    33,    34,   139,    36,    37,    38,     0,
-      39,    40,   140,    42,   141,    44,   142,    46,   143,    48,
+     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,    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,   225,   149,   129,   130,     1,
+     111,     0,     0,     0,   112,   251,   252,   253,   254,   255,
+     256,   257,     0,   258,   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,     0,     0,     0,     0,    33,
-      34,   139,    36,    37,    38,     0,    39,    40,   140,    42,
+      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,    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,   294,   149,   129,   130,     1,   131,   132,    90,   133,
+     112,   251,   252,   253,   254,   255,   256,   257,     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,   104,   105,   106,
@@ -1148,7 +1129,7 @@ static const yytype_int16 yytable[] =
      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,   336,   149,   129,
+     146,   147,     0,     0,     0,     0,   166,   226,   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,
@@ -1158,7 +1139,7 @@ static const yytype_int16 yytable[] =
       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,   432,   149,   129,   130,     1,   131,   132,
+       0,     0,   166,   295,   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,
@@ -1167,17 +1148,17 @@ static const yytype_int16 yytable[] =
      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,     0,
-       0,     0,   146,   147,     0,     0,     0,     0,   166,   490,
+       0,     0,   146,   147,     0,     0,     0,     0,   166,   337,
      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,
+     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,    33,    34,   139,    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,   144,    61,    62,   145,    64,    65,   108,   109,   110,
      111,     0,     0,     0,   112,     0,     0,     0,   146,   147,
-       0,     0,     0,     0,   148,     0,   149,   129,   130,     1,
+       0,     0,     0,     0,   166,   433,   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,
@@ -1187,9 +1168,9 @@ static const yytype_int16 yytable[] =
       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,   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,
+     166,   491,   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,   104,   105,   106,
      107,     0,     0,     0,     0,    33,    34,   139,    36,    37,
       38,     0,    39,    40,   140,    42,   141,    44,   142,    46,
@@ -1204,85 +1185,120 @@ static const yytype_int16 yytable[] =
        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,    56,    57,    58,    59,   144,
-      61,    62,    63,    64,    65,   108,   109,   110,   111,     0,
+      61,    62,   145,    64,    65,   108,   109,   110,   111,     0,
        0,     0,   112,     0,     0,     0,   146,   147,     0,     0,
-       0,     0,   196,     0,   149,   129,   130,     1,   131,   132,
+       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,   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,    56,    57,    58,    59,   144,    61,    62,    63,    64,
+      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,
+       0,     0,   146,   147,     0,     0,     0,     0,   148,     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,     0,
        0,     0,     0,    33,    34,   139,    36,    37,    38,     0,
-      39,    40,   140,   417,   141,   418,   142,   419,   143,   420,
-      49,    50,    51,    52,    53,    54,    55,   421,   422,   423,
-      59,   144,    61,   424,   425,    64,    65,   108,   109,   110,
+      39,    40,   140,    42,   141,    44,   142,    46,   143,    48,
+      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
+      59,   144,    61,    62,    63,    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,
+       0,     0,     0,     0,   197,     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,     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,   421,   422,    58,    59,   144,    61,   424,
-     425,    64,    65,   108,   109,   110,   111,     0,     0,     0,
+      53,    54,    55,    56,    57,    58,    59,   144,    61,    62,
+      63,    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,    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,    42,   141,    44,   142,    46,
-     143,    48,    49,    50,    51,    52,    53,    54,    55,   477,
-     478,    58,    59,   144,    61,   479,   480,    64,    65,   108,
+      38,     0,    39,    40,   140,   418,   141,   419,   142,   420,
+     143,   421,    49,    50,    51,    52,    53,    54,    55,   422,
+     423,   424,    59,   144,    61,   425,   426,    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,    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,     0,     0,   139,    36,    37,    38,     0,    39,    40,
+       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,    56,    57,    58,    59,   144,
-      61,    62,   145,    64,    65,   108,   109,   110,   111,     0,
+      51,    52,    53,    54,    55,   422,   423,    58,    59,   144,
+      61,   425,   426,    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,    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,     0,     0,   139,
-      36,    37,    38,     0,     0,     0,   140,    42,   141,    44,
+     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,    56,    57,    58,    59,   144,    61,    62,   145,    64,
+      55,   478,   479,    58,    59,   144,    61,   480,   481,    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,    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,     0,     0,   139,     0,    37,    38,     0,
-       0,     0,   140,    42,   141,    44,   142,    46,   143,    48,
+       0,     0,     0,     0,     0,   139,    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,   144,    61,    62,   145,    64,    65,   108,   109,   110,
-     111,     0,     0,     0,   112,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   166,     1,   149,     0,     2,     3,
-       4,     5,     6,     7,     8,     0,     9,    10,    11,    12,
-      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
-      23,    24,     0,    25,    26,    27,    28,    29,    30,    31,
+     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,    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,     0,
+       0,   139,    36,    37,    38,     0,     0,     0,   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,     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,    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,     0,     0,   139,     0,    37,
+      38,     0,     0,     0,   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,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   166,     1,   149,     0,
+       2,     3,     4,     5,     6,     7,     8,     0,     9,    10,
+      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
+      21,    22,    23,    24,     0,    25,    26,    27,    28,    29,
+      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,    66,    67,    68,     0,    69,     1,     0,    70,     0,
+       3,     4,     5,     6,     7,     8,    71,     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,    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,
+      66,    67,     0,     0,    69,     1,     0,    70,     0,     3,
+       4,     5,     6,     7,     8,   377,     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,
       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,    66,
-      67,    68,     0,    69,     1,     0,    70,     0,     3,     4,
-       5,     6,     7,     8,    71,     9,    10,    11,    12,    13,
+      67,     0,     0,    69,     1,     0,    70,     0,     3,     4,
+       5,     6,     7,     8,   399,     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,    38,
@@ -1290,7 +1306,7 @@ static const yytype_int16 yytable[] =
       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,   376,     9,    10,    11,    12,    13,    14,
+       6,     7,     8,   515,     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,    38,     0,
@@ -1298,253 +1314,214 @@ static const yytype_int16 yytable[] =
       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,   398,     9,    10,    11,    12,    13,    14,    15,
+       7,     8,   543,     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,    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,    66,    67,     0,     0,
-      69,     1,     0,    70,     0,     3,     4,     5,     6,     7,
-       8,   514,     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,     0,     0,    70,     0,     0,     0,     0,     0,     0,
+       0,   465,     1,   438,   439,    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,    66,    67,     0,     0,    69,
-       1,     0,    70,     0,     3,     4,     5,     6,     7,     8,
-     542,     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,    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,    66,    67,     0,     0,     0,     0,
-       0,    70,     0,     0,     0,     0,     0,     0,     0,   464,
-       1,   437,   438,    90,     3,     4,     5,     6,    91,     8,
+      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,
+      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,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      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,     3,     4,     5,     6,    91,     8,    92,    93,
+     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,    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,   214,   215,   216,   217,   218,    54,
-     219,    56,    57,    58,   220,    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,   140,    42,   141,    44,   142,
-      46,   143,    48,    49,    50,    51,    52,    53,    54,    55,
-      56,    57,    58,    59,   379,    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,   493,    67,
-       0,     0,     0,     0,     0,    70,     0,     0,     0,     0,
-       0,   494,   240,   241,   242,   243,   265,   266,     0,   267,
-       0,     0,   247,   268,   269,   240,   241,   242,   243,   265,
-     266,   495,   267,     0,     0,   247,   268,   269,     0,     0,
-       0,     0,     0,     0,     0,   240,   241,   242,   243,   265,
-     266,     0,   267,     0,     0,   247,   268,   269,   250,   251,
-     252,   253,   254,   255,   256,     0,     0,     0,     0,     0,
-     288,   250,   251,   252,   253,   254,   255,   256,   240,   241,
-     242,   243,   265,   266,   566,   267,     0,     0,   247,   268,
-     269,   250,   251,   252,   253,   254,   255,   256,   550,   551,
-       0,   552,   553,   554,     0,   555,     0,     0,   556,   557,
-     558,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   250,   251,   252,   253,   254,   255,
-     256,   289,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   264,     0,   559,   560,   561,   562,   563,   564,
-     565,   240,   241,   242,   243,   265,   266,     0,   267,     0,
-       0,   247,   268,   269,   240,   241,   242,   243,   265,   266,
-       0,   267,     0,     0,   247,   268,   269,   240,   241,   242,
-     243,   265,   266,     0,   267,     0,     0,   247,   268,   269,
-       0,     0,     0,     0,     0,     0,     0,   250,   251,   252,
-     253,   254,   255,   256,     0,     0,     0,     0,     0,     0,
-     250,   251,   252,   253,   254,   255,   256,     0,   326,     0,
-     327,     0,     0,   250,   251,   252,   253,   254,   255,   256,
-       0,   404,     0,   327,   240,   241,   242,   243,   265,   266,
-       0,   267,     0,     0,   247,   268,   269,   357,   358,   359,
-     360,   361,   362,     0,   363,     0,     0,   364,   365,   366,
-     240,   241,   242,   243,   265,   266,     0,   267,     0,     0,
-     247,   268,   269,     0,     0,     0,     0,     0,     0,     0,
-     250,   251,   252,   253,   254,   255,   256,     0,     0,     0,
-     327,     0,     0,   367,   368,   369,   370,   371,   372,   373,
-       0,   374,     0,     0,     0,     0,   250,   251,   252,   253,
-     254,   255,   256,   387,   240,   241,   242,   243,   265,   266,
-       0,   267,     0,     0,   247,   268,   269,   240,   241,   242,
-     243,   265,   266,     0,   267,     0,     0,   247,   268,   269,
-     240,   241,   242,   243,   265,   266,     0,   267,     0,     0,
-     247,   268,   269,     0,     0,     0,     0,     0,     0,     0,
-     250,   251,   252,   253,   254,   255,   256,   483,     0,     0,
-       0,     0,     0,   250,   251,   252,   253,   254,   255,   256,
-     486,     0,     0,     0,     0,     0,   250,   251,   252,   253,
-     254,   255,   256,   516,   240,   241,   242,   243,   265,   266,
-       0,   267,     0,     0,   247,   268,   269,   240,   241,   242,
-     243,   265,   266,     0,   267,     0,     0,   247,   268,   269,
-       0,     0,     0,     0,     0,   240,   241,   242,   243,   265,
-     266,     0,   267,     0,     0,   247,   268,   269,     0,     0,
-     250,   251,   252,   253,   254,   255,   256,   575,     0,     0,
-       0,     0,     0,   250,   251,   252,   253,   254,   255,   256,
-     598,   324,   325,     0,     0,     0,     0,     0,     0,     0,
-       0,   250,   251,   252,   253,   254,   255,   256,   240,   241,
-     242,   243,   265,   266,     0,   267,     0,     0,   247,   268,
-     269,   357,   358,   359,   360,   361,   362,     0,   363,     0,
-       0,   364,   365,   366,   550,   551,     0,   552,   553,   554,
-       0,   555,     0,     0,   556,   557,   558,     0,     0,     0,
-       0,     0,     0,     0,   250,   251,   252,   253,   254,   255,
-     256,     0,     0,     0,     0,     0,     0,   367,   368,   369,
-     370,   371,   372,   373,     0,     0,     0,     0,     0,     0,
-     559,   560,   561,   562,   563,   564,   565,   240,   241,   242,
-     243,     0,     0,     0,   267,     0,     0,   247,   268,   269,
-     550,   551,     0,   552,     0,     0,     0,   555,     0,     0,
-     556,   557,   558,     0,     0,     0,     0,     0,     0,     0,
+      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,
+     493,    67,     0,     0,     0,     0,     0,    70,     0,     0,
+       0,     0,     0,   494,   241,   242,   243,   244,   266,   267,
+       0,   268,     0,     0,   248,   269,   270,   241,   242,   243,
+     244,   266,   267,   495,   268,     0,     0,   248,   269,   270,
+       0,     0,     0,     0,     0,     0,     0,   241,   242,   243,
+     244,   266,   267,     0,   268,     0,     0,   248,   269,   270,
+     251,   252,   253,   254,   255,   256,   257,     0,     0,     0,
+       0,     0,     0,   251,   252,   253,   254,   255,   256,   257,
+       0,     0,     0,     0,     0,     0,   496,     0,     0,     0,
+       0,     0,     0,   251,   252,   253,   254,   255,   256,   257,
+     241,   242,   243,   244,   266,   267,   567,   268,     0,     0,
+     248,   269,   270,     0,     0,     0,     0,     0,     0,     0,
+     551,   552,     0,   553,   554,   555,     0,   556,     0,     0,
+     557,   558,   559,   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,   560,   561,   562,   563,
+     564,   565,   566,     0,     0,     0,     0,     0,     0,   251,
+     252,   253,   254,   255,   256,   257,     0,   327,     0,   328,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   251,
+     252,   253,   254,   255,   256,   257,     0,   405,     0,   328,
+     241,   242,   243,   244,   266,   267,     0,   268,     0,     0,
+     248,   269,   270,   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,     0,
+       0,     0,     0,     0,     0,     0,   251,   252,   253,   254,
+     255,   256,   257,     0,     0,     0,   328,     0,     0,   368,
+     369,   370,   371,   372,   373,   374,     0,   375,     0,     0,
+       0,     0,   251,   252,   253,   254,   255,   256,   257,   388,
+     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,   484,     0,     0,     0,     0,     0,   251,
+     252,   253,   254,   255,   256,   257,   487,     0,     0,     0,
+       0,     0,   251,   252,   253,   254,   255,   256,   257,   517,
+     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,   241,   242,   243,   244,   266,   267,     0,   268,     0,
+       0,   248,   269,   270,     0,     0,   251,   252,   253,   254,
+     255,   256,   257,   576,     0,     0,     0,     0,     0,   251,
+     252,   253,   254,   255,   256,   257,   599,   325,   326,     0,
+       0,     0,     0,     0,     0,     0,     0,   251,   252,   253,
+     254,   255,   256,   257,   241,   242,   243,   244,   266,   267,
+       0,   268,     0,     0,   248,   269,   270,   358,   359,   360,
+     361,   362,   363,     0,   364,     0,     0,   365,   366,   367,
+     551,   552,     0,   553,   554,   555,     0,   556,     0,     0,
+     557,   558,   559,     0,     0,     0,     0,     0,     0,     0,
+     251,   252,   253,   254,   255,   256,   257,     0,     0,     0,
+       0,     0,     0,   368,   369,   370,   371,   372,   373,   374,
+       0,     0,     0,     0,     0,     0,   560,   561,   562,   563,
+     564,   565,   566,   241,   242,   243,   244,     0,     0,     0,
+     268,     0,     0,   248,   269,   270,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   250,   251,   252,   253,   254,   255,   256,
-       0,     0,     0,     0,     0,     0,   559,   560,   561,   562,
-     563,   564,   565
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   251,
+     252,   253,   254,   255,   256,   257
 };
 
 static const yytype_int16 yycheck[] =
 {
-       0,     0,    32,     7,    24,    70,    12,   236,    14,    13,
-     378,     2,   376,    16,    10,    11,    22,    15,    31,   387,
-      11,   260,   514,    68,    30,    31,    17,   545,   257,    34,
-      75,    95,    96,    24,    31,   403,    34,    67,    29,    44,
-      83,    32,    49,     0,    42,    43,    44,    45,    46,    47,
-     542,    49,    95,   571,    52,    53,    54,    49,    95,    55,
-      66,    57,    23,    59,    49,    61,    95,    52,    36,    37,
-      70,    22,    78,    73,    73,    69,    67,    68,    74,    30,
-      31,    84,    95,    44,    91,    92,    93,    94,   274,   275,
-      88,    89,    90,    91,    92,    93,    94,   326,   337,    91,
-      92,    93,    94,   467,    97,    90,    91,    92,    93,    94,
-      49,   163,   118,   119,   120,   121,    68,   356,    68,   171,
-      95,    49,    95,    75,    52,    75,    49,    78,    95,   181,
-      96,   137,   138,    68,   140,   141,   142,   143,   168,   145,
-      75,   193,   148,    28,    68,   374,    28,    23,   516,    95,
-     514,    75,    28,   144,    93,    94,   101,   187,   149,   211,
-     166,   163,    90,    91,    92,    93,    94,   173,   117,   171,
-      93,    94,    97,    95,    96,   404,   101,   168,   542,   181,
-      96,   172,    95,   174,   100,   134,   135,   136,    95,    95,
-     196,   193,    95,    95,   433,    95,   187,    95,    95,   567,
-     417,   418,   419,   420,   195,    95,   423,   575,    55,   211,
-      57,    95,    59,   101,    61,    26,    95,   208,    96,   100,
-     100,    28,    95,   288,   463,    26,   478,   479,   480,    96,
-     598,    16,    95,    95,   240,   241,   242,   243,   244,   245,
+       0,     0,    24,     7,    70,    32,    12,   237,    14,    13,
+      23,     2,   379,    16,   377,    31,    22,    15,    10,    11,
+      11,   388,    83,    68,    30,    31,    17,   261,   258,   515,
+      75,    44,    34,    24,    95,   546,    34,   404,    29,    97,
+      67,    32,    44,   101,    42,    43,    44,    45,    46,    47,
+      22,    49,    36,    37,    52,    53,    54,   543,    30,    31,
+      66,   572,    31,    55,    49,    57,    23,    59,     0,    61,
+      70,    28,    78,    73,    73,    49,    67,    68,    52,    95,
+     163,    84,    74,    49,    96,    96,    52,    95,   171,   100,
+      88,    89,    90,    91,    92,    93,    94,   327,    95,   182,
+      68,    95,    49,    68,   338,   468,    78,    75,    93,    94,
+      75,   194,   118,   119,   120,   121,    90,    91,    92,    93,
+      94,    49,    95,   357,    90,    91,    92,    93,    94,   212,
+      69,   137,   138,    68,   140,   141,   142,   143,   117,   145,
+      75,   168,   148,    49,    68,   375,    93,    94,   275,   276,
+     517,    75,   515,   144,    95,   134,   135,   136,   149,    97,
+     166,   188,    95,    91,    92,    93,    94,   173,   418,   419,
+     420,   421,    95,    96,   424,   405,    95,   168,    95,    96,
+     543,   172,    95,   174,    95,    91,    92,    93,    94,    28,
+      55,   197,    57,    95,    59,    95,    61,   188,    95,    95,
+     434,   568,    95,    95,    95,   196,    95,    28,    26,   576,
+      26,   101,    96,   101,   100,   100,    95,    28,   209,    95,
+      16,    96,    95,   289,    95,    95,    86,   479,   480,   481,
+     464,    98,   599,   101,    85,   241,   242,   243,   244,   245,
      246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
-     256,    95,   491,   273,   274,   275,    86,    98,   101,   265,
-     266,   267,   268,   269,   264,   264,    85,    95,     9,   273,
-     274,   275,    28,    70,    98,   281,    34,    95,   284,    95,
-      95,    98,   273,   274,   275,    84,    70,    85,   288,   289,
-      70,   297,    95,   299,    85,   301,    85,   303,   550,   551,
+     256,   257,   274,   275,   276,    95,     9,    28,   492,    95,
+     266,   267,   268,   269,   270,   265,   265,    70,    98,    34,
+     274,   275,   276,    95,    98,    95,   282,    70,    84,   285,
+      85,    70,    95,   274,   275,   276,    95,    85,    85,   289,
+     290,    95,   298,    73,   300,   395,   302,   529,   304,   551,
      552,   553,   554,   555,   556,   557,   558,   559,   560,   561,
-     562,   563,   564,   565,    95,   394,   116,   117,    95,    73,
-     528,    31,   328,   329,   401,   331,   467,   504,   323,   335,
-      -1,   332,   338,   133,   134,   135,   136,   211,    -1,   139,
-     592,   332,    -1,    -1,    -1,    -1,   146,   147,    -1,    -1,
-      -1,   357,   358,   359,   360,   361,   362,   363,   364,   365,
-     366,   367,   368,   369,   370,   371,   372,   373,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   376,    -1,   378,   385,
-     386,    -1,    -1,    -1,    -1,    -1,    -1,   387,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    28,   390,
-      -1,   401,    -1,   403,    34,    -1,    -1,    -1,    -1,    -1,
-     416,    -1,    42,    43,    44,    45,    46,    47,    -1,    49,
-      -1,    -1,    52,    53,    54,    28,    -1,    -1,    -1,    -1,
-      -1,    34,    -1,    -1,    -1,    -1,   442,    -1,    -1,    42,
-      43,    44,    45,    46,    47,    -1,    49,    -1,    -1,    52,
-      53,    54,    -1,    -1,   484,    -1,    -1,    -1,    88,    89,
-      90,    91,    92,    93,    94,    -1,    -1,   467,    -1,   469,
-     469,    -1,    -1,    -1,    -1,   477,   478,   479,   480,    -1,
-      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
-      93,    94,    -1,   484,    -1,    -1,   296,    -1,   298,    -1,
-     300,    -1,   302,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     510,   510,   518,    -1,   514,    -1,   516,    -1,    -1,    -1,
-      -1,    -1,   322,   323,   324,   325,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   528,    -1,    -1,
-      -1,   547,   542,    -1,    -1,    -1,    -1,    -1,   550,   551,
-     552,   553,   554,   555,   556,   557,   558,   559,   560,   561,
-     562,   563,   564,   565,    -1,    -1,    -1,   567,    28,    -1,
-      -1,    -1,    -1,    -1,    34,   575,    -1,    -1,    -1,    -1,
-      -1,    -1,    42,    43,    44,    45,    46,    47,   388,    49,
-     592,    -1,    52,    53,    54,    -1,    -1,    -1,   598,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   415,    -1,    -1,    -1,    -1,
-      -1,   421,   422,    -1,   424,   425,    -1,    -1,    88,    89,
-      90,    91,    92,    93,    94,    -1,    -1,    -1,    -1,    -1,
-      -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,    -1,    -1,    -1,    -1,    -1,   477,   478,   479,
-     480,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   492,   493,   494,   495,    -1,    -1,   498,   499,
-     500,   501,    88,    89,    90,    91,    92,    93,    94,    -1,
-      -1,    28,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    42,    43,    44,    45,    46,
-      47,    -1,    49,    -1,    -1,    52,    53,    54,    -1,   539,
+     562,   563,   564,   565,   566,    31,   402,   116,   117,   468,
+     163,   505,    -1,   329,   330,   212,   332,    -1,   171,   324,
+     336,    -1,   333,   339,   133,   134,   135,   136,    -1,   182,
+     139,   593,   333,    -1,    -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,    42,    43,   377,    45,   379,
+     386,   387,    49,    -1,    -1,    52,    53,    54,   388,    -1,
+      -1,    28,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,
+     391,    -1,   402,    -1,   404,    42,    43,    44,    45,    46,
+      47,   417,    49,    -1,    28,    52,    53,    54,    -1,    -1,
+      34,    88,    89,    90,    91,    92,    93,    94,    42,    43,
+      44,    45,    46,    47,    -1,    49,    -1,   443,    52,    53,
+      54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    88,    89,    90,    91,    92,    93,    94,   485,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   468,    -1,
+     470,   470,    -1,    -1,    88,    89,    90,    91,    92,    93,
+      94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   485,    -1,    -1,    -1,   297,    -1,
+     299,    -1,   301,    -1,   303,    -1,    -1,    -1,    -1,    -1,
+      -1,   511,   511,   519,    -1,   515,    -1,   517,    -1,    -1,
+      -1,    -1,    -1,    -1,   323,   324,   325,   326,    -1,    -1,
+      -1,    28,    -1,    -1,    -1,    -1,    -1,    34,   529,    -1,
+      -1,    -1,   548,   543,    -1,    42,    43,    44,    45,    46,
+      47,    34,    49,    -1,    -1,    52,    53,    54,    -1,    42,
+      43,    44,    45,    46,    47,    -1,    49,    -1,   568,    52,
+      53,    54,    -1,    -1,    -1,    -1,   576,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     550,   551,   552,   553,   554,   555,   556,   557,   558,   559,
-     560,   561,   562,   563,   564,   565,    -1,    -1,    -1,    -1,
-     570,    88,    89,    90,    91,    92,    93,    94,    -1,    -1,
+     389,    88,    89,    90,    91,    92,    93,    94,    -1,   599,
+      -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,
+      93,    94,    95,    -1,    -1,    -1,    -1,   416,    -1,    -1,
+      -1,    -1,    -1,   422,   423,    28,   425,   426,    -1,    -1,
+      -1,    34,    -1,    -1,    -1,   478,   479,   480,   481,    42,
+      43,    44,    45,    46,    47,    -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,   592,     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,    -1,    -1,    87,    -1,    -1,    -1,
-      91,    92,    -1,    -1,    -1,    -1,    97,    -1,    99,    -1,
-     101,     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,    42,
-      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
-      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
-      63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
-      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    -1,    -1,    -1,    87,    88,    89,    90,    91,    92,
-      93,    94,    -1,    96,    97,    -1,    99,     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,    42,    43,    44,    45,    46,
-      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    78,    79,    80,    81,    82,    83,    -1,    -1,    -1,
-      87,    88,    89,    90,    91,    92,    93,    94,    -1,    96,
-      97,    -1,    99,     4,     5,     6,     7,     8,     9,    10,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   478,
+     479,   480,   481,    -1,    -1,    88,    89,    90,    91,    92,
+      93,    94,    -1,    -1,   493,   494,   495,   496,    -1,    -1,
+     499,   500,   501,   502,    -1,    -1,    -1,    -1,   551,   552,
+     553,   554,   555,   556,   557,   558,   559,   560,   561,   562,
+     563,   564,   565,   566,    33,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    42,    43,    44,    45,    46,    47,    -1,
+      49,   540,    -1,    52,    53,    54,    -1,    -1,    -1,    -1,
+     593,    -1,   551,   552,   553,   554,   555,   556,   557,   558,
+     559,   560,   561,   562,   563,   564,   565,   566,    -1,    -1,
+      -1,    -1,   571,    -1,    -1,    -1,    -1,    -1,    -1,    88,
+      89,    90,    91,    92,    93,    94,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   593,     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,    -1,    -1,    87,    -1,
+      -1,    -1,    91,    92,    -1,    -1,    -1,    -1,    97,    -1,
+      99,    -1,   101,     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,
@@ -1572,27 +1549,27 @@ static const yytype_int16 yycheck[] =
       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,    -1,    -1,    87,    88,
-      89,    90,    91,    92,    93,    94,    -1,    -1,    97,    -1,
+      89,    90,    91,    92,    93,    94,    -1,    96,    97,    -1,
       99,     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,
+      33,    34,    -1,    36,    37,    38,    39,    40,    41,    42,
+      43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
       53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
-      83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,
-      -1,    -1,    -1,    -1,    97,    98,    99,     4,     5,     6,
+      83,    -1,    -1,    -1,    87,    88,    89,    90,    91,    92,
+      93,    94,    -1,    96,    97,    -1,    99,     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,
+      37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
+      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
       77,    78,    79,    80,    81,    82,    83,    -1,    -1,    -1,
-      87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,
-      97,    98,    99,     4,     5,     6,     7,     8,     9,    10,
+      87,    88,    89,    90,    91,    92,    93,    94,    -1,    -1,
+      97,    -1,    99,     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,
@@ -1630,7 +1607,7 @@ static const yytype_int16 yycheck[] =
       63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
       73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
       83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,
-      -1,    -1,    -1,    -1,    97,    -1,    99,     4,     5,     6,
+      -1,    -1,    -1,    -1,    97,    98,    99,     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,
@@ -1640,7 +1617,7 @@ static const yytype_int16 yycheck[] =
       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
       77,    78,    79,    80,    81,    82,    83,    -1,    -1,    -1,
       87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,
-      97,    -1,    99,     4,     5,     6,     7,     8,     9,    10,
+      97,    98,    99,     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,
@@ -1702,7 +1679,7 @@ static const yytype_int16 yycheck[] =
       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,    -1,    -1,    48,    49,    50,    51,    -1,    53,    54,
+      -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,
@@ -1711,8 +1688,8 @@ static const yytype_int16 yycheck[] =
        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,    -1,    -1,    48,
-      49,    50,    51,    -1,    -1,    -1,    55,    56,    57,    58,
+      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,    -1,    -1,    87,    -1,
@@ -1721,20 +1698,55 @@ static const yytype_int16 yycheck[] =
       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,    -1,    -1,    48,    -1,    50,    51,    -1,
-      -1,    -1,    55,    56,    57,    58,    59,    60,    61,    62,
+      -1,    -1,    -1,    -1,    -1,    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,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    97,     6,    99,    -1,     9,    10,
-      11,    12,    13,    14,    15,    -1,    17,    18,    19,    20,
+      83,    -1,    -1,    -1,    87,    -1,    -1,    -1,    91,    92,
+      -1,    -1,    -1,    -1,    97,    -1,    99,     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,    -1,
+      -1,    48,    49,    50,    51,    -1,    -1,    -1,    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,    -1,    -1,
+      87,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1,
+      97,    -1,    99,     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,    -1,    34,    35,    36,    37,    38,    39,    40,
+      31,    32,    33,    34,    -1,    36,    37,    38,    39,    40,
+      41,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,    50,
+      51,    -1,    -1,    -1,    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,    -1,    -1,    87,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    97,     6,    99,    -1,
+       9,    10,    11,    12,    13,    14,    15,    -1,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+      29,    30,    31,    32,    -1,    34,    35,    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,    -1,    84,     6,    -1,    87,    -1,
+      10,    11,    12,    13,    14,    15,    95,    17,    18,    19,
+      20,    21,    22,    23,    24,    -1,    26,    27,    28,    29,
+      30,    31,    32,    -1,    34,    35,    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,    -1,    -1,    84,     6,    -1,    87,    -1,    10,
+      11,    12,    13,    14,    15,    95,    17,    18,    19,    20,
+      21,    22,    23,    24,    -1,    26,    27,    28,    29,    30,
+      31,    32,    -1,    34,    35,    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,    -1,    84,     6,    -1,    87,    -1,    10,    11,
+      81,    -1,    -1,    84,     6,    -1,    87,    -1,    10,    11,
       12,    13,    14,    15,    95,    17,    18,    19,    20,    21,
       22,    23,    24,    -1,    26,    27,    28,    29,    30,    31,
       32,    -1,    34,    35,    36,    37,    -1,    39,    40,    41,
@@ -1758,24 +1770,24 @@ static const yytype_int16 yycheck[] =
       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,    -1,    -1,
-      84,     6,    -1,    87,    -1,    10,    11,    12,    13,    14,
-      15,    95,    17,    18,    19,    20,    21,    22,    23,    24,
-      -1,    26,    27,    28,    29,    30,    31,    32,    -1,    34,
-      35,    36,    37,    -1,    39,    40,    41,    -1,    -1,    -1,
+      -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    95,     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,    -1,    -1,    84,
-       6,    -1,    87,    -1,    10,    11,    12,    13,    14,    15,
-      95,    17,    18,    19,    20,    21,    22,    23,    24,    -1,
-      26,    27,    28,    29,    30,    31,    32,    -1,    34,    35,
-      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,    -1,    -1,    -1,    -1,
-      -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
+      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,
@@ -1798,93 +1810,73 @@ static const yytype_int16 yycheck[] =
       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,
+      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,
-      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,    44,    45,    46,
-      47,    -1,    49,    -1,    -1,    52,    53,    54,    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,    28,    49,    -1,    -1,    52,    53,
-      54,    88,    89,    90,    91,    92,    93,    94,    42,    43,
-      -1,    45,    46,    47,    -1,    49,    -1,    -1,    52,    53,
-      54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    88,    89,    90,    91,    92,    93,
-      94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -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,    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,    -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,    96,    -1,    98,    42,    43,    44,    45,    46,    47,
+      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,    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,    -1,    -1,
-      98,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
-      -1,    96,    -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,
-      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,    -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,    -1,
+      42,    43,    -1,    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,    -1,    -1,    -1,    -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,    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,    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,    -1,    -1,    98,    -1,    -1,    88,
+      89,    90,    91,    92,    93,    94,    -1,    96,    -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,    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,    -1,    -1,
+      -1,    42,    43,    44,    45,    46,    47,    -1,    49,    -1,
+      -1,    52,    53,    54,    -1,    -1,    88,    89,    90,    91,
+      92,    93,    94,    95,    -1,    -1,    -1,    -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,    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,    -1,    -1,
-      88,    89,    90,    91,    92,    93,    94,    95,    -1,    -1,
-      -1,    -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,    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,    -1,    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,    -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,
-      45,    -1,    -1,    -1,    49,    -1,    -1,    52,    53,    54,
-      42,    43,    -1,    45,    -1,    -1,    -1,    49,    -1,    -1,
+      42,    43,    -1,    45,    46,    47,    -1,    49,    -1,    -1,
       52,    53,    54,    -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,    -1,    -1,    88,    89,    90,    91,    92,    93,    94,
       -1,    -1,    -1,    -1,    -1,    -1,    88,    89,    90,    91,
-      92,    93,    94
+      92,    93,    94,    42,    43,    44,    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,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    88,
+      89,    90,    91,    92,    93,    94
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1908,50 +1900,50 @@ static const yytype_uint8 yystos[] =
       55,    57,    59,    61,    74,    77,    91,    92,    97,    99,
      115,   122,   124,   140,   141,   144,   146,   148,   151,   152,
      156,   159,   160,   161,   164,   144,    97,   161,   115,    31,
-     122,   161,    36,    37,    74,   115,   141,   143,   154,   115,
-     122,   161,   122,   124,   116,   161,   116,   115,    95,   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,   161,
+     122,   161,    36,    37,    74,   115,   141,   143,   154,    95,
+     115,   122,   161,   122,   124,   116,   161,   116,   115,    95,
+     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,
      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,
-      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,   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,    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,
      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,   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,   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,
+     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,   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,   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,    70,   134,    95,   160,   130,    95,    95,   134,
-     163,   134,    85,    85,    95,    95
+     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.  */
@@ -2011,7 +2003,7 @@ static const yytype_int8 yyr2[] =
        3,     5,     2,     4,     6,     0,     1,     2,     2,     5,
        4,     3,     5,     5,     5,     5,     1,     1,     3,     3,
        3,     4,     6,     6,     8,     7,     9,     0,     2,     7,
-      11,    12,     9,     4,     6,     1,     0,     1,     1,     2,
+      11,    12,     9,     4,     6,     2,     0,     1,     1,     2,
        1,     1,     0,     1,     1,     2,     1,     1,     1,     1,
        1,     1,     2,     3,     5,     3,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     2,     2,     4,     6,
@@ -2301,37 +2293,37 @@ yydestruct (const char *yymsg,
     case YYSYMBOL_tVARID: /* tVARID  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2305 "engines/director/lingo/lingo-gr.cpp"
+#line 2297 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tSTRING: /* tSTRING  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2311 "engines/director/lingo/lingo-gr.cpp"
+#line 2303 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tSYMBOL: /* tSYMBOL  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2317 "engines/director/lingo/lingo-gr.cpp"
+#line 2309 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_tENDCLAUSE: /* tENDCLAUSE  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2323 "engines/director/lingo/lingo-gr.cpp"
+#line 2315 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_CMDID: /* CMDID  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2329 "engines/director/lingo/lingo-gr.cpp"
+#line 2321 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case YYSYMBOL_ID: /* ID  */
 #line 195 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 2335 "engines/director/lingo/lingo-gr.cpp"
+#line 2327 "engines/director/lingo/lingo-gr.cpp"
         break;
 
       default:
@@ -2599,7 +2591,7 @@ yyreduce:
   case 2: /* script: scriptpartlist  */
 #line 201 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->_compiler->_assemblyAST = new ScriptNode((yyvsp[0].nodelist)); }
-#line 2603 "engines/director/lingo/lingo-gr.cpp"
+#line 2595 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 3: /* scriptpartlist: scriptpart  */
@@ -2610,7 +2602,7 @@ yyreduce:
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 2614 "engines/director/lingo/lingo-gr.cpp"
+#line 2606 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 4: /* scriptpartlist: scriptpartlist scriptpart  */
@@ -2620,43 +2612,43 @@ yyreduce:
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2624 "engines/director/lingo/lingo-gr.cpp"
+#line 2616 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 5: /* scriptpart: '\n'  */
 #line 216 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = nullptr; }
-#line 2630 "engines/director/lingo/lingo-gr.cpp"
+#line 2622 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10: /* scriptpart: tENDCLAUSE endargdef '\n'  */
 #line 221 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = nullptr; delete (yyvsp[-2].s); }
-#line 2636 "engines/director/lingo/lingo-gr.cpp"
+#line 2628 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11: /* macro: tMACRO ID idlist '\n' stmtlist  */
 #line 250 "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 2634 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12: /* factory: tFACTORY ID '\n' methodlist  */
 #line 254 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FactoryNode((yyvsp[-2].s), (yyvsp[0].nodelist)); }
-#line 2648 "engines/director/lingo/lingo-gr.cpp"
+#line 2640 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13: /* method: tMETHOD ID idlist '\n' stmtlist  */
 #line 256 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new HandlerNode((yyvsp[-3].s), (yyvsp[-2].idlist), (yyvsp[0].nodelist)); }
-#line 2654 "engines/director/lingo/lingo-gr.cpp"
+#line 2646 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14: /* methodlist: %empty  */
 #line 258 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.nodelist) = new NodeList; }
-#line 2660 "engines/director/lingo/lingo-gr.cpp"
+#line 2652 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16: /* nonemptymethodlist: methodlistline  */
@@ -2667,7 +2659,7 @@ yyreduce:
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 2671 "engines/director/lingo/lingo-gr.cpp"
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17: /* nonemptymethodlist: nonemptymethodlist methodlistline  */
@@ -2677,13 +2669,13 @@ yyreduce:
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 2681 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18: /* methodlistline: '\n'  */
 #line 275 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = nullptr; }
-#line 2687 "engines/director/lingo/lingo-gr.cpp"
+#line 2679 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 20: /* handler: tON ID idlist '\n' stmtlist tENDCLAUSE endargdef '\n'  */
@@ -2692,452 +2684,452 @@ yyreduce:
 		(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 2696 "engines/director/lingo/lingo-gr.cpp"
+#line 2688 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 21: /* handler: tON ID idlist '\n' stmtlist  */
 #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 2703 "engines/director/lingo/lingo-gr.cpp"
+#line 2695 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 23: /* endargdef: ID  */
 #line 290 "engines/director/lingo/lingo-gr.y"
                                                         { delete (yyvsp[0].s); }
-#line 2709 "engines/director/lingo/lingo-gr.cpp"
+#line 2701 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 24: /* endargdef: endargdef ',' ID  */
 #line 291 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 2715 "engines/director/lingo/lingo-gr.cpp"
+#line 2707 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 26: /* CMDID: tABBREVIATED  */
 #line 299 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("abbreviated"); }
-#line 2721 "engines/director/lingo/lingo-gr.cpp"
+#line 2713 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 27: /* CMDID: tABBREV  */
 #line 300 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("abbrev"); }
-#line 2727 "engines/director/lingo/lingo-gr.cpp"
+#line 2719 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 28: /* CMDID: tABBR  */
 #line 301 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("abbr"); }
-#line 2733 "engines/director/lingo/lingo-gr.cpp"
+#line 2725 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 29: /* CMDID: tAFTER  */
 #line 302 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("after"); }
-#line 2739 "engines/director/lingo/lingo-gr.cpp"
+#line 2731 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 30: /* CMDID: tAND  */
 #line 303 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("and"); }
-#line 2745 "engines/director/lingo/lingo-gr.cpp"
+#line 2737 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 31: /* CMDID: tBEFORE  */
 #line 304 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("before"); }
-#line 2751 "engines/director/lingo/lingo-gr.cpp"
+#line 2743 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 32: /* CMDID: tCAST  */
 #line 305 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("cast"); }
-#line 2757 "engines/director/lingo/lingo-gr.cpp"
+#line 2749 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 33: /* CMDID: tCHAR  */
 #line 306 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("char"); }
-#line 2763 "engines/director/lingo/lingo-gr.cpp"
+#line 2755 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 34: /* CMDID: tCHARS  */
 #line 307 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("chars"); }
-#line 2769 "engines/director/lingo/lingo-gr.cpp"
+#line 2761 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 35: /* CMDID: tCONTAINS  */
 #line 308 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("contains"); }
-#line 2775 "engines/director/lingo/lingo-gr.cpp"
+#line 2767 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 36: /* CMDID: tDATE  */
 #line 309 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("date"); }
-#line 2781 "engines/director/lingo/lingo-gr.cpp"
+#line 2773 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 37: /* CMDID: tDELETE  */
 #line 310 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("delete"); }
-#line 2787 "engines/director/lingo/lingo-gr.cpp"
+#line 2779 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 38: /* CMDID: tDOWN  */
 #line 311 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("down"); }
-#line 2793 "engines/director/lingo/lingo-gr.cpp"
+#line 2785 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 39: /* CMDID: tFIELD  */
 #line 312 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("field"); }
-#line 2799 "engines/director/lingo/lingo-gr.cpp"
+#line 2791 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 40: /* CMDID: tFRAME  */
 #line 313 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("frame"); }
-#line 2805 "engines/director/lingo/lingo-gr.cpp"
+#line 2797 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 41: /* CMDID: tHILITE  */
 #line 314 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("hilite"); }
-#line 2811 "engines/director/lingo/lingo-gr.cpp"
+#line 2803 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 42: /* CMDID: tIN  */
 #line 315 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("in"); }
-#line 2817 "engines/director/lingo/lingo-gr.cpp"
+#line 2809 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 43: /* CMDID: tINTERSECTS  */
 #line 316 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("intersects"); }
-#line 2823 "engines/director/lingo/lingo-gr.cpp"
+#line 2815 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 44: /* CMDID: tINTO  */
 #line 317 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("into"); }
-#line 2829 "engines/director/lingo/lingo-gr.cpp"
+#line 2821 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 45: /* CMDID: tITEM  */
 #line 318 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("item"); }
-#line 2835 "engines/director/lingo/lingo-gr.cpp"
+#line 2827 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 46: /* CMDID: tITEMS  */
 #line 319 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("items"); }
-#line 2841 "engines/director/lingo/lingo-gr.cpp"
+#line 2833 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 47: /* CMDID: tLAST  */
 #line 320 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("last"); }
-#line 2847 "engines/director/lingo/lingo-gr.cpp"
+#line 2839 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 48: /* CMDID: tLINE  */
 #line 321 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("line"); }
-#line 2853 "engines/director/lingo/lingo-gr.cpp"
+#line 2845 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 49: /* CMDID: tLINES  */
 #line 322 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("lines"); }
-#line 2859 "engines/director/lingo/lingo-gr.cpp"
+#line 2851 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 50: /* CMDID: tLONG  */
 #line 323 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("long"); }
-#line 2865 "engines/director/lingo/lingo-gr.cpp"
+#line 2857 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 51: /* CMDID: tMENU  */
 #line 324 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("menu"); }
-#line 2871 "engines/director/lingo/lingo-gr.cpp"
+#line 2863 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 52: /* CMDID: tMENUITEM  */
 #line 325 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("menuItem"); }
-#line 2877 "engines/director/lingo/lingo-gr.cpp"
+#line 2869 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 53: /* CMDID: tMENUITEMS  */
 #line 326 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("menuItems"); }
-#line 2883 "engines/director/lingo/lingo-gr.cpp"
+#line 2875 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 54: /* CMDID: tMOD  */
 #line 327 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("mod"); }
-#line 2889 "engines/director/lingo/lingo-gr.cpp"
+#line 2881 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 55: /* CMDID: tMOVIE  */
 #line 328 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("movie"); }
-#line 2895 "engines/director/lingo/lingo-gr.cpp"
+#line 2887 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 56: /* CMDID: tNEXT  */
 #line 329 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("next"); }
-#line 2901 "engines/director/lingo/lingo-gr.cpp"
+#line 2893 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 57: /* CMDID: tNOT  */
 #line 330 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("not"); }
-#line 2907 "engines/director/lingo/lingo-gr.cpp"
+#line 2899 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 58: /* CMDID: tNUMBER  */
 #line 331 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("number"); }
-#line 2913 "engines/director/lingo/lingo-gr.cpp"
+#line 2905 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 59: /* CMDID: tOF  */
 #line 332 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("of"); }
-#line 2919 "engines/director/lingo/lingo-gr.cpp"
+#line 2911 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 60: /* CMDID: tOR  */
 #line 333 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("or"); }
-#line 2925 "engines/director/lingo/lingo-gr.cpp"
+#line 2917 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 61: /* CMDID: tPREVIOUS  */
 #line 334 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("previous"); }
-#line 2931 "engines/director/lingo/lingo-gr.cpp"
+#line 2923 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 62: /* CMDID: tREPEAT  */
 #line 335 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("repeat"); }
-#line 2937 "engines/director/lingo/lingo-gr.cpp"
+#line 2929 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 63: /* CMDID: tSCRIPT  */
 #line 336 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("script"); }
-#line 2943 "engines/director/lingo/lingo-gr.cpp"
+#line 2935 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 64: /* CMDID: tASSERTERROR  */
 #line 337 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("scummvmAssertError"); }
-#line 2949 "engines/director/lingo/lingo-gr.cpp"
+#line 2941 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 65: /* CMDID: tSHORT  */
 #line 338 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("short"); }
-#line 2955 "engines/director/lingo/lingo-gr.cpp"
+#line 2947 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 66: /* CMDID: tSOUND  */
 #line 339 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("sound"); }
-#line 2961 "engines/director/lingo/lingo-gr.cpp"
+#line 2953 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 67: /* CMDID: tSPRITE  */
 #line 340 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("sprite"); }
-#line 2967 "engines/director/lingo/lingo-gr.cpp"
+#line 2959 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 68: /* CMDID: tSTARTS  */
 #line 341 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("starts"); }
-#line 2973 "engines/director/lingo/lingo-gr.cpp"
+#line 2965 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 69: /* CMDID: tTHE  */
 #line 342 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("the"); }
-#line 2979 "engines/director/lingo/lingo-gr.cpp"
+#line 2971 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 70: /* CMDID: tTIME  */
 #line 343 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("time"); }
-#line 2985 "engines/director/lingo/lingo-gr.cpp"
+#line 2977 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 71: /* CMDID: tTO  */
 #line 344 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("to"); }
-#line 2991 "engines/director/lingo/lingo-gr.cpp"
+#line 2983 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 72: /* CMDID: tWHILE  */
 #line 345 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("while"); }
-#line 2997 "engines/director/lingo/lingo-gr.cpp"
+#line 2989 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 73: /* CMDID: tWINDOW  */
 #line 346 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("window"); }
-#line 3003 "engines/director/lingo/lingo-gr.cpp"
+#line 2995 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 74: /* CMDID: tWITH  */
 #line 347 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("with"); }
-#line 3009 "engines/director/lingo/lingo-gr.cpp"
+#line 3001 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 75: /* CMDID: tWITHIN  */
 #line 348 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("within"); }
-#line 3015 "engines/director/lingo/lingo-gr.cpp"
+#line 3007 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 76: /* CMDID: tWORD  */
 #line 349 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("word"); }
-#line 3021 "engines/director/lingo/lingo-gr.cpp"
+#line 3013 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 77: /* CMDID: tWORDS  */
 #line 350 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("words"); }
-#line 3027 "engines/director/lingo/lingo-gr.cpp"
+#line 3019 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 79: /* ID: tELSE  */
 #line 354 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("else"); }
-#line 3033 "engines/director/lingo/lingo-gr.cpp"
+#line 3025 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 80: /* ID: tENDCLAUSE  */
 #line 355 "engines/director/lingo/lingo-gr.y"
                         { (yyval.s) = new Common::String("end"); delete (yyvsp[0].s); }
-#line 3039 "engines/director/lingo/lingo-gr.cpp"
+#line 3031 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 81: /* ID: tEXIT  */
 #line 356 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("exit"); }
-#line 3045 "engines/director/lingo/lingo-gr.cpp"
+#line 3037 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 82: /* ID: tFACTORY  */
 #line 357 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("factory"); }
-#line 3051 "engines/director/lingo/lingo-gr.cpp"
+#line 3043 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 83: /* ID: tGLOBAL  */
 #line 358 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("global"); }
-#line 3057 "engines/director/lingo/lingo-gr.cpp"
+#line 3049 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 84: /* ID: tGO  */
 #line 359 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("go"); }
-#line 3063 "engines/director/lingo/lingo-gr.cpp"
+#line 3055 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 85: /* ID: tIF  */
 #line 360 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("if"); }
-#line 3069 "engines/director/lingo/lingo-gr.cpp"
+#line 3061 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 86: /* ID: tINSTANCE  */
 #line 361 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("instance"); }
-#line 3075 "engines/director/lingo/lingo-gr.cpp"
+#line 3067 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 87: /* ID: tMACRO  */
 #line 362 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("macro"); }
-#line 3081 "engines/director/lingo/lingo-gr.cpp"
+#line 3073 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 88: /* ID: tMETHOD  */
 #line 363 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("method"); }
-#line 3087 "engines/director/lingo/lingo-gr.cpp"
+#line 3079 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 89: /* ID: tON  */
 #line 364 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("on"); }
-#line 3093 "engines/director/lingo/lingo-gr.cpp"
+#line 3085 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 90: /* ID: tOPEN  */
 #line 365 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("open"); }
-#line 3099 "engines/director/lingo/lingo-gr.cpp"
+#line 3091 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 91: /* ID: tPLAY  */
 #line 366 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("play"); }
-#line 3105 "engines/director/lingo/lingo-gr.cpp"
+#line 3097 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 92: /* ID: tPROPERTY  */
 #line 367 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("property"); }
-#line 3111 "engines/director/lingo/lingo-gr.cpp"
+#line 3103 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 93: /* ID: tPUT  */
 #line 368 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("put"); }
-#line 3117 "engines/director/lingo/lingo-gr.cpp"
+#line 3109 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 94: /* ID: tSET  */
 #line 369 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("set"); }
-#line 3123 "engines/director/lingo/lingo-gr.cpp"
+#line 3115 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 95: /* ID: tTELL  */
 #line 370 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("tell"); }
-#line 3129 "engines/director/lingo/lingo-gr.cpp"
+#line 3121 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 96: /* ID: tTHEN  */
 #line 371 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.s) = new Common::String("then"); }
-#line 3135 "engines/director/lingo/lingo-gr.cpp"
+#line 3127 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 97: /* idlist: %empty  */
 #line 374 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.idlist) = new IDList; }
-#line 3141 "engines/director/lingo/lingo-gr.cpp"
+#line 3133 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 100: /* nonemptyidlist: ID  */
@@ -3146,7 +3138,7 @@ yyreduce:
 		Common::Array<Common::String *> *list = new IDList;
 		list->push_back((yyvsp[0].s));
 		(yyval.idlist) = list; }
-#line 3150 "engines/director/lingo/lingo-gr.cpp"
+#line 3142 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 101: /* nonemptyidlist: nonemptyidlist ',' ID  */
@@ -3154,55 +3146,55 @@ yyreduce:
                                                         {
 		(yyvsp[-2].idlist)->push_back((yyvsp[0].s));
 		(yyval.idlist) = (yyvsp[-2].idlist); }
-#line 3158 "engines/director/lingo/lingo-gr.cpp"
+#line 3150 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 103: /* stmt: tENDIF '\n'  */
 #line 394 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = nullptr; }
-#line 3164 "engines/director/lingo/lingo-gr.cpp"
+#line 3156 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 113: /* proc: CMDID cmdargs '\n'  */
 #line 410 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new CmdNode((yyvsp[-2].s), (yyvsp[-1].nodelist), g_lingo->_compiler->_linenumber - 1); }
-#line 3170 "engines/director/lingo/lingo-gr.cpp"
+#line 3162 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 114: /* proc: tPUT cmdargs '\n'  */
 #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 3176 "engines/director/lingo/lingo-gr.cpp"
+#line 3168 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 115: /* proc: tGO cmdargs '\n'  */
 #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 3182 "engines/director/lingo/lingo-gr.cpp"
+#line 3174 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 116: /* proc: tGO frameargs '\n'  */
 #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 3188 "engines/director/lingo/lingo-gr.cpp"
+#line 3180 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 117: /* proc: tPLAY cmdargs '\n'  */
 #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 3194 "engines/director/lingo/lingo-gr.cpp"
+#line 3186 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 118: /* proc: tPLAY frameargs '\n'  */
 #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 3200 "engines/director/lingo/lingo-gr.cpp"
+#line 3192 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 119: /* proc: tOPEN cmdargs '\n'  */
 #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 3206 "engines/director/lingo/lingo-gr.cpp"
+#line 3198 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 120: /* proc: tOPEN expr tWITH expr '\n'  */
@@ -3212,43 +3204,43 @@ yyreduce:
 		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 3216 "engines/director/lingo/lingo-gr.cpp"
+#line 3208 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 121: /* proc: tNEXT tREPEAT '\n'  */
 #line 422 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new NextRepeatNode(); }
-#line 3222 "engines/director/lingo/lingo-gr.cpp"
+#line 3214 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 122: /* proc: tEXIT tREPEAT '\n'  */
 #line 423 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new ExitRepeatNode(); }
-#line 3228 "engines/director/lingo/lingo-gr.cpp"
+#line 3220 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 123: /* proc: tEXIT '\n'  */
 #line 424 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new ExitNode(); }
-#line 3234 "engines/director/lingo/lingo-gr.cpp"
+#line 3226 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 124: /* proc: tDELETE chunk '\n'  */
 #line 425 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new DeleteNode((yyvsp[-1].node)); }
-#line 3240 "engines/director/lingo/lingo-gr.cpp"
+#line 3232 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 125: /* proc: tHILITE chunk '\n'  */
 #line 426 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new HiliteNode((yyvsp[-1].node)); }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 3238 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 126: /* proc: tASSERTERROR stmtoneliner  */
 #line 427 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new AssertErrorNode((yyvsp[0].node)); }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 3244 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 127: /* cmdargs: %empty  */
@@ -3256,7 +3248,7 @@ yyreduce:
                                                                                         {
 		// This matches `cmd`
 		(yyval.nodelist) = new NodeList; }
-#line 3260 "engines/director/lingo/lingo-gr.cpp"
+#line 3252 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 128: /* cmdargs: expr trailingcomma  */
@@ -3266,7 +3258,7 @@ yyreduce:
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-1].node));
 		(yyval.nodelist) = args; }
-#line 3270 "engines/director/lingo/lingo-gr.cpp"
+#line 3262 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 129: /* cmdargs: expr ',' nonemptyexprlist trailingcomma  */
@@ -3275,7 +3267,7 @@ yyreduce:
 		// This matches `cmd args, ...)
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3279 "engines/director/lingo/lingo-gr.cpp"
+#line 3271 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 130: /* cmdargs: expr expr_nounarymath trailingcomma  */
@@ -3286,7 +3278,7 @@ yyreduce:
 		args->push_back((yyvsp[-2].node));
 		args->push_back((yyvsp[-1].node));
 		(yyval.nodelist) = args; }
-#line 3290 "engines/director/lingo/lingo-gr.cpp"
+#line 3282 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 131: /* cmdargs: expr expr_nounarymath ',' nonemptyexprlist trailingcomma  */
@@ -3296,7 +3288,7 @@ yyreduce:
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-3].node));
 		(yyvsp[-1].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3300 "engines/director/lingo/lingo-gr.cpp"
+#line 3292 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 132: /* cmdargs: '(' ')'  */
@@ -3304,7 +3296,7 @@ yyreduce:
                                                                         {
 		// This matches `cmd()`
 		(yyval.nodelist) = new NodeList; }
-#line 3308 "engines/director/lingo/lingo-gr.cpp"
+#line 3300 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 133: /* cmdargs: '(' expr ',' ')'  */
@@ -3314,7 +3306,7 @@ yyreduce:
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-2].node));
 		(yyval.nodelist) = args; }
-#line 3318 "engines/director/lingo/lingo-gr.cpp"
+#line 3310 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 134: /* cmdargs: '(' expr ',' nonemptyexprlist trailingcomma ')'  */
@@ -3323,7 +3315,7 @@ yyreduce:
 		// This matches `cmd(args, ...)`
 		(yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3327 "engines/director/lingo/lingo-gr.cpp"
+#line 3319 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 137: /* frameargs: tFRAME expr  */
@@ -3333,7 +3325,7 @@ yyreduce:
 		NodeList *args = new NodeList;
 		args->push_back(new FrameNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3337 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 138: /* frameargs: tMOVIE expr  */
@@ -3344,7 +3336,7 @@ yyreduce:
 		args->push_back(new IntNode(1));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3348 "engines/director/lingo/lingo-gr.cpp"
+#line 3340 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 139: /* frameargs: tFRAME expr tOF tMOVIE expr  */
@@ -3355,7 +3347,7 @@ yyreduce:
 		args->push_back(new FrameNode((yyvsp[-3].node)));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3359 "engines/director/lingo/lingo-gr.cpp"
+#line 3351 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 140: /* frameargs: expr tOF tMOVIE expr  */
@@ -3366,7 +3358,7 @@ yyreduce:
 		args->push_back((yyvsp[-3].node));
 		args->push_back(new MovieNode((yyvsp[0].node)));
 		(yyval.nodelist) = args; }
-#line 3370 "engines/director/lingo/lingo-gr.cpp"
+#line 3362 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 141: /* frameargs: tFRAME expr expr_nounarymath  */
@@ -3377,49 +3369,49 @@ yyreduce:
 		args->push_back(new FrameNode((yyvsp[-1].node)));
 		args->push_back((yyvsp[0].node));
 		(yyval.nodelist) = args; }
-#line 3381 "engines/director/lingo/lingo-gr.cpp"
+#line 3373 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 142: /* asgn: tPUT expr tINTO varorchunk '\n'  */
 #line 504 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new PutIntoNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3387 "engines/director/lingo/lingo-gr.cpp"
+#line 3379 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 143: /* asgn: tPUT expr tAFTER varorchunk '\n'  */
 #line 505 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PutAfterNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3393 "engines/director/lingo/lingo-gr.cpp"
+#line 3385 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 144: /* asgn: tPUT expr tBEFORE varorchunk '\n'  */
 #line 506 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PutBeforeNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3399 "engines/director/lingo/lingo-gr.cpp"
+#line 3391 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 145: /* asgn: tSET varorthe to expr '\n'  */
 #line 507 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new SetNode((yyvsp[-3].node), (yyvsp[-1].node)); }
-#line 3405 "engines/director/lingo/lingo-gr.cpp"
+#line 3397 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 148: /* definevars: tGLOBAL idlist '\n'  */
 #line 512 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new GlobalNode((yyvsp[-1].idlist)); }
-#line 3411 "engines/director/lingo/lingo-gr.cpp"
+#line 3403 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 149: /* definevars: tPROPERTY idlist '\n'  */
 #line 513 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new PropertyNode((yyvsp[-1].idlist)); }
-#line 3417 "engines/director/lingo/lingo-gr.cpp"
+#line 3409 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 150: /* definevars: tINSTANCE idlist '\n'  */
 #line 514 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new InstanceNode((yyvsp[-1].idlist)); }
-#line 3423 "engines/director/lingo/lingo-gr.cpp"
+#line 3415 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 151: /* ifstmt: tIF expr tTHEN stmt  */
@@ -3428,14 +3420,14 @@ yyreduce:
 		NodeList *stmtlist = new NodeList;
 		stmtlist->push_back((yyvsp[0].node));
 		(yyval.node) = new IfStmtNode((yyvsp[-2].node), stmtlist); }
-#line 3432 "engines/director/lingo/lingo-gr.cpp"
+#line 3424 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 152: /* ifstmt: tIF expr tTHEN '\n' stmtlist_insideif endif  */
 #line 521 "engines/director/lingo/lingo-gr.y"
                                                       {
 		(yyval.node) = new IfStmtNode((yyvsp[-4].node), (yyvsp[-1].nodelist)); }
-#line 3439 "engines/director/lingo/lingo-gr.cpp"
+#line 3431 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 153: /* ifelsestmt: tIF expr tTHEN stmt tELSE stmt  */
@@ -3446,7 +3438,7 @@ yyreduce:
 		NodeList *stmtlist2 = new NodeList;
 		stmtlist2->push_back((yyvsp[0].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-4].node), stmtlist1, stmtlist2); }
-#line 3450 "engines/director/lingo/lingo-gr.cpp"
+#line 3442 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 154: /* ifelsestmt: tIF expr tTHEN stmt tELSE '\n' stmtlist_insideif endif  */
@@ -3455,7 +3447,7 @@ yyreduce:
 		NodeList *stmtlist1 = new NodeList;
 		stmtlist1->push_back((yyvsp[-4].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-6].node), stmtlist1, (yyvsp[-1].nodelist)); }
-#line 3459 "engines/director/lingo/lingo-gr.cpp"
+#line 3451 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 155: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE stmt  */
@@ -3464,48 +3456,48 @@ yyreduce:
 		NodeList *stmtlist2 = new NodeList;
 		stmtlist2->push_back((yyvsp[0].node));
 		(yyval.node) = new IfElseStmtNode((yyvsp[-5].node), (yyvsp[-2].nodelist), stmtlist2); }
-#line 3468 "engines/director/lingo/lingo-gr.cpp"
+#line 3460 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 156: /* ifelsestmt: tIF expr tTHEN '\n' stmtlist_insideif tELSE '\n' stmtlist_insideif endif  */
 #line 539 "engines/director/lingo/lingo-gr.y"
                                                                                                          {
 		(yyval.node) = new IfElseStmtNode((yyvsp[-7].node), (yyvsp[-4].nodelist), (yyvsp[-1].nodelist)); }
-#line 3475 "engines/director/lingo/lingo-gr.cpp"
+#line 3467 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 157: /* endif: %empty  */
 #line 543 "engines/director/lingo/lingo-gr.y"
                         { warning("LingoCompiler::parse: no end if"); }
-#line 3481 "engines/director/lingo/lingo-gr.cpp"
+#line 3473 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 159: /* loop: tREPEAT tWHILE expr '\n' stmtlist tENDREPEAT '\n'  */
 #line 546 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyval.node) = new RepeatWhileNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3488 "engines/director/lingo/lingo-gr.cpp"
+#line 3480 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 160: /* loop: tREPEAT tWITH ID tEQ expr tTO expr '\n' stmtlist tENDREPEAT '\n'  */
 #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 3495 "engines/director/lingo/lingo-gr.cpp"
+#line 3487 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 161: /* loop: tREPEAT tWITH ID tEQ expr tDOWN tTO expr '\n' stmtlist tENDREPEAT '\n'  */
 #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 3502 "engines/director/lingo/lingo-gr.cpp"
+#line 3494 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 162: /* loop: tREPEAT tWITH ID tIN expr '\n' stmtlist tENDREPEAT '\n'  */
 #line 552 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		(yyval.node) = new RepeatWithInNode((yyvsp[-6].s), (yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3509 "engines/director/lingo/lingo-gr.cpp"
+#line 3501 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 163: /* tell: tTELL expr tTO stmtoneliner  */
@@ -3514,26 +3506,26 @@ yyreduce:
 		NodeList *stmtlist = new NodeList;
 		stmtlist->push_back((yyvsp[0].node));
 		(yyval.node) = new TellNode((yyvsp[-2].node), stmtlist); }
-#line 3518 "engines/director/lingo/lingo-gr.cpp"
+#line 3510 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 164: /* tell: tTELL expr '\n' stmtlist tENDTELL '\n'  */
 #line 560 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyval.node) = new TellNode((yyvsp[-4].node), (yyvsp[-2].nodelist)); }
-#line 3525 "engines/director/lingo/lingo-gr.cpp"
+#line 3517 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 165: /* when: tWHEN  */
+  case 165: /* when: tWHEN '\n'  */
 #line 564 "engines/director/lingo/lingo-gr.y"
-                                                                { (yyval.node) = new WhenNode((yyvsp[0].w).eventName, (yyvsp[0].w).stmt); }
-#line 3531 "engines/director/lingo/lingo-gr.cpp"
+                                                        { (yyval.node) = new WhenNode((yyvsp[-1].w).eventName, (yyvsp[-1].w).stmt); }
+#line 3523 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 166: /* stmtlist: %empty  */
 #line 566 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.nodelist) = new NodeList; }
-#line 3537 "engines/director/lingo/lingo-gr.cpp"
+#line 3529 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 168: /* nonemptystmtlist: stmtlistline  */
@@ -3544,7 +3536,7 @@ yyreduce:
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 3548 "engines/director/lingo/lingo-gr.cpp"
+#line 3540 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 169: /* nonemptystmtlist: nonemptystmtlist stmtlistline  */
@@ -3554,19 +3546,19 @@ yyreduce:
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3558 "engines/director/lingo/lingo-gr.cpp"
+#line 3550 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 170: /* stmtlistline: '\n'  */
 #line 584 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = nullptr; }
-#line 3564 "engines/director/lingo/lingo-gr.cpp"
+#line 3556 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 172: /* stmtlist_insideif: %empty  */
 #line 588 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.nodelist) = new NodeList; }
-#line 3570 "engines/director/lingo/lingo-gr.cpp"
+#line 3562 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 174: /* nonemptystmtlist_insideif: stmtlistline_insideif  */
@@ -3577,7 +3569,7 @@ yyreduce:
 			list->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = list; }
-#line 3581 "engines/director/lingo/lingo-gr.cpp"
+#line 3573 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 175: /* nonemptystmtlist_insideif: nonemptystmtlist_insideif stmtlistline_insideif  */
@@ -3587,177 +3579,177 @@ yyreduce:
 			(yyvsp[-1].nodelist)->push_back((yyvsp[0].node));
 		}
 		(yyval.nodelist) = (yyvsp[-1].nodelist); }
-#line 3591 "engines/director/lingo/lingo-gr.cpp"
+#line 3583 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 176: /* stmtlistline_insideif: '\n'  */
 #line 606 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = nullptr; }
-#line 3597 "engines/director/lingo/lingo-gr.cpp"
+#line 3589 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 178: /* simpleexpr_nounarymath: tINT  */
 #line 613 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new IntNode((yyvsp[0].i)); }
-#line 3603 "engines/director/lingo/lingo-gr.cpp"
+#line 3595 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 179: /* simpleexpr_nounarymath: tFLOAT  */
 #line 614 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new FloatNode((yyvsp[0].f)); }
-#line 3609 "engines/director/lingo/lingo-gr.cpp"
+#line 3601 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 180: /* simpleexpr_nounarymath: tSYMBOL  */
 #line 615 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new SymbolNode((yyvsp[0].s)); }
-#line 3615 "engines/director/lingo/lingo-gr.cpp"
+#line 3607 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 181: /* simpleexpr_nounarymath: tSTRING  */
 #line 616 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new StringNode((yyvsp[0].s)); }
-#line 3621 "engines/director/lingo/lingo-gr.cpp"
+#line 3613 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 182: /* simpleexpr_nounarymath: tNOT simpleexpr  */
 #line 617 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new UnaryOpNode(LC::c_not, (yyvsp[0].node)); }
-#line 3627 "engines/director/lingo/lingo-gr.cpp"
+#line 3619 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 183: /* simpleexpr_nounarymath: ID '(' ')'  */
 #line 618 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new FuncNode((yyvsp[-2].s), new NodeList); }
-#line 3633 "engines/director/lingo/lingo-gr.cpp"
+#line 3625 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 184: /* simpleexpr_nounarymath: ID '(' nonemptyexprlist trailingcomma ')'  */
 #line 619 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new FuncNode((yyvsp[-4].s), (yyvsp[-2].nodelist)); }
-#line 3639 "engines/director/lingo/lingo-gr.cpp"
+#line 3631 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 185: /* simpleexpr_nounarymath: '(' expr ')'  */
 #line 620 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = (yyvsp[-1].node); }
-#line 3645 "engines/director/lingo/lingo-gr.cpp"
+#line 3637 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 191: /* var: ID  */
 #line 628 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new VarNode((yyvsp[0].s)); }
-#line 3651 "engines/director/lingo/lingo-gr.cpp"
+#line 3643 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 196: /* chunk: tFIELD refargs  */
 #line 638 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.node) = new FuncNode(new Common::String("field"), (yyvsp[0].nodelist)); }
-#line 3657 "engines/director/lingo/lingo-gr.cpp"
+#line 3649 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 197: /* chunk: tCAST refargs  */
 #line 639 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FuncNode(new Common::String("cast"), (yyvsp[0].nodelist)); }
-#line 3663 "engines/director/lingo/lingo-gr.cpp"
+#line 3655 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 198: /* chunk: tCHAR expr tOF simpleexpr  */
 #line 640 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3670 "engines/director/lingo/lingo-gr.cpp"
+#line 3662 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 199: /* chunk: tCHAR expr tTO expr tOF simpleexpr  */
 #line 642 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkChar, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3677 "engines/director/lingo/lingo-gr.cpp"
+#line 3669 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 200: /* chunk: tWORD expr tOF simpleexpr  */
 #line 644 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3684 "engines/director/lingo/lingo-gr.cpp"
+#line 3676 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 201: /* chunk: tWORD expr tTO expr tOF simpleexpr  */
 #line 646 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkWord, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3691 "engines/director/lingo/lingo-gr.cpp"
+#line 3683 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 202: /* chunk: tITEM expr tOF simpleexpr  */
 #line 648 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3698 "engines/director/lingo/lingo-gr.cpp"
+#line 3690 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 203: /* chunk: tITEM expr tTO expr tOF simpleexpr  */
 #line 650 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkItem, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3705 "engines/director/lingo/lingo-gr.cpp"
+#line 3697 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 204: /* chunk: tLINE expr tOF simpleexpr  */
 #line 652 "engines/director/lingo/lingo-gr.y"
                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-2].node), nullptr, (yyvsp[0].node)); }
-#line 3712 "engines/director/lingo/lingo-gr.cpp"
+#line 3704 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 205: /* chunk: tLINE expr tTO expr tOF simpleexpr  */
 #line 654 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		(yyval.node) = new ChunkExprNode(kChunkLine, (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 3719 "engines/director/lingo/lingo-gr.cpp"
+#line 3711 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 206: /* chunk: tTHE tLAST chunktype inof simpleexpr  */
 #line 656 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new TheLastNode((yyvsp[-2].chunktype), (yyvsp[0].node)); }
-#line 3725 "engines/director/lingo/lingo-gr.cpp"
+#line 3717 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 207: /* chunktype: tCHAR  */
 #line 659 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.chunktype) = kChunkChar; }
-#line 3731 "engines/director/lingo/lingo-gr.cpp"
+#line 3723 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 208: /* chunktype: tWORD  */
 #line 660 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkWord; }
-#line 3737 "engines/director/lingo/lingo-gr.cpp"
+#line 3729 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 209: /* chunktype: tITEM  */
 #line 661 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkItem; }
-#line 3743 "engines/director/lingo/lingo-gr.cpp"
+#line 3735 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 210: /* chunktype: tLINE  */
 #line 662 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.chunktype) = kChunkLine; }
-#line 3749 "engines/director/lingo/lingo-gr.cpp"
+#line 3741 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 211: /* object: tSCRIPT refargs  */
 #line 665 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.node) = new FuncNode(new Common::String("script"), (yyvsp[0].nodelist)); }
-#line 3755 "engines/director/lingo/lingo-gr.cpp"
+#line 3747 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 212: /* object: tWINDOW refargs  */
 #line 666 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new FuncNode(new Common::String("window"), (yyvsp[0].nodelist)); }
-#line 3761 "engines/director/lingo/lingo-gr.cpp"
+#line 3753 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 213: /* refargs: simpleexpr  */
@@ -3767,7 +3759,7 @@ yyreduce:
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[0].node));
 		(yyval.nodelist) = args; }
-#line 3771 "engines/director/lingo/lingo-gr.cpp"
+#line 3763 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 214: /* refargs: '(' ')'  */
@@ -3775,7 +3767,7 @@ yyreduce:
                                                                                         {
 		// This matches `ref()`
 		(yyval.nodelist) = new NodeList; }
-#line 3779 "engines/director/lingo/lingo-gr.cpp"
+#line 3771 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 215: /* refargs: '(' expr ',' ')'  */
@@ -3785,7 +3777,7 @@ yyreduce:
 		NodeList *args = new NodeList;
 		args->push_back((yyvsp[-2].node));
 		(yyval.nodelist) = args; }
-#line 3789 "engines/director/lingo/lingo-gr.cpp"
+#line 3781 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 216: /* refargs: '(' expr ',' nonemptyexprlist trailingcomma ')'  */
@@ -3794,193 +3786,193 @@ yyreduce:
 		// This matches `ref(args, ...)`
 		(yyvsp[-2].nodelist)->insert_at(0, (yyvsp[-4].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 3798 "engines/director/lingo/lingo-gr.cpp"
+#line 3790 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 217: /* the: tTHE ID  */
 #line 688 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3804 "engines/director/lingo/lingo-gr.cpp"
+#line 3796 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 218: /* the: tTHE ID tOF theobj  */
 #line 689 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3810 "engines/director/lingo/lingo-gr.cpp"
+#line 3802 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 219: /* the: tTHE tNUMBER tOF theobj  */
 #line 690 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheOfNode(new Common::String("number"), (yyvsp[0].node)); }
-#line 3816 "engines/director/lingo/lingo-gr.cpp"
+#line 3808 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 224: /* theobj: tMENUITEM simpleexpr tOF tMENU simpleexpr  */
 #line 697 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3822 "engines/director/lingo/lingo-gr.cpp"
+#line 3814 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 225: /* theobj: tSOUND simpleexpr  */
 #line 698 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3828 "engines/director/lingo/lingo-gr.cpp"
+#line 3820 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 226: /* theobj: tSPRITE simpleexpr  */
 #line 699 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3834 "engines/director/lingo/lingo-gr.cpp"
+#line 3826 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 227: /* menu: tMENU simpleexpr  */
 #line 702 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3840 "engines/director/lingo/lingo-gr.cpp"
+#line 3832 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 228: /* thedatetime: tTHE tABBREVIATED tDATE  */
 #line 704 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3846 "engines/director/lingo/lingo-gr.cpp"
+#line 3838 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 229: /* thedatetime: tTHE tABBREVIATED tTIME  */
 #line 705 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3852 "engines/director/lingo/lingo-gr.cpp"
+#line 3844 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 230: /* thedatetime: tTHE tABBREV tDATE  */
 #line 706 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3858 "engines/director/lingo/lingo-gr.cpp"
+#line 3850 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 231: /* thedatetime: tTHE tABBREV tTIME  */
 #line 707 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3864 "engines/director/lingo/lingo-gr.cpp"
+#line 3856 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 232: /* thedatetime: tTHE tABBR tDATE  */
 #line 708 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheDate); }
-#line 3870 "engines/director/lingo/lingo-gr.cpp"
+#line 3862 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 233: /* thedatetime: tTHE tABBR tTIME  */
 #line 709 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheAbbr, kTheTime); }
-#line 3876 "engines/director/lingo/lingo-gr.cpp"
+#line 3868 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 234: /* thedatetime: tTHE tLONG tDATE  */
 #line 710 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheLong, kTheDate); }
-#line 3882 "engines/director/lingo/lingo-gr.cpp"
+#line 3874 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 235: /* thedatetime: tTHE tLONG tTIME  */
 #line 711 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheLong, kTheTime); }
-#line 3888 "engines/director/lingo/lingo-gr.cpp"
+#line 3880 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 236: /* thedatetime: tTHE tSHORT tDATE  */
 #line 712 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheShort, kTheDate); }
-#line 3894 "engines/director/lingo/lingo-gr.cpp"
+#line 3886 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 237: /* thedatetime: tTHE tSHORT tTIME  */
 #line 713 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new TheDateTimeNode(kTheShort, kTheTime); }
-#line 3900 "engines/director/lingo/lingo-gr.cpp"
+#line 3892 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 238: /* thenumberof: tTHE tNUMBER tOF tCHARS inof simpleexpr  */
 #line 717 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfChars, (yyvsp[0].node)); }
-#line 3906 "engines/director/lingo/lingo-gr.cpp"
+#line 3898 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 239: /* thenumberof: tTHE tNUMBER tOF tWORDS inof simpleexpr  */
 #line 718 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfWords, (yyvsp[0].node)); }
-#line 3912 "engines/director/lingo/lingo-gr.cpp"
+#line 3904 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 240: /* thenumberof: tTHE tNUMBER tOF tITEMS inof simpleexpr  */
 #line 719 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfItems, (yyvsp[0].node)); }
-#line 3918 "engines/director/lingo/lingo-gr.cpp"
+#line 3910 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 241: /* thenumberof: tTHE tNUMBER tOF tLINES inof simpleexpr  */
 #line 720 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfLines, (yyvsp[0].node)); }
-#line 3924 "engines/director/lingo/lingo-gr.cpp"
+#line 3916 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 242: /* thenumberof: tTHE tNUMBER tOF tMENUITEMS inof menu  */
 #line 721 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNumberOfNode(kNumberOfMenuItems, (yyvsp[0].node)); }
-#line 3930 "engines/director/lingo/lingo-gr.cpp"
+#line 3922 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 245: /* writablethe: tTHE ID  */
 #line 726 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new TheNode((yyvsp[0].s)); }
-#line 3936 "engines/director/lingo/lingo-gr.cpp"
+#line 3928 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 246: /* writablethe: tTHE ID tOF writabletheobj  */
 #line 727 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new TheOfNode((yyvsp[-2].s), (yyvsp[0].node)); }
-#line 3942 "engines/director/lingo/lingo-gr.cpp"
+#line 3934 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 248: /* writabletheobj: tMENU expr_noeq  */
 #line 731 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new MenuNode((yyvsp[0].node)); }
-#line 3948 "engines/director/lingo/lingo-gr.cpp"
+#line 3940 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 249: /* writabletheobj: tMENUITEM expr_noeq tOF tMENU expr_noeq  */
 #line 732 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new MenuItemNode((yyvsp[-3].node), (yyvsp[0].node)); }
-#line 3954 "engines/director/lingo/lingo-gr.cpp"
+#line 3946 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 250: /* writabletheobj: tSOUND expr_noeq  */
 #line 733 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SoundNode((yyvsp[0].node)); }
-#line 3960 "engines/director/lingo/lingo-gr.cpp"
+#line 3952 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 251: /* writabletheobj: tSPRITE expr_noeq  */
 #line 734 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new SpriteNode((yyvsp[0].node)); }
-#line 3966 "engines/director/lingo/lingo-gr.cpp"
+#line 3958 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 252: /* list: '[' exprlist ']'  */
 #line 737 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new ListNode((yyvsp[-1].nodelist)); }
-#line 3972 "engines/director/lingo/lingo-gr.cpp"
+#line 3964 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 253: /* list: '[' ':' ']'  */
 #line 738 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropListNode(new NodeList); }
-#line 3978 "engines/director/lingo/lingo-gr.cpp"
+#line 3970 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 254: /* list: '[' proplist ']'  */
 #line 739 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropListNode((yyvsp[-1].nodelist)); }
-#line 3984 "engines/director/lingo/lingo-gr.cpp"
+#line 3976 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 255: /* proplist: proppair  */
@@ -3989,7 +3981,7 @@ yyreduce:
 		NodeList *list = new NodeList; 
 		list->push_back((yyvsp[0].node));
 		(yyval.nodelist) = list; }
-#line 3993 "engines/director/lingo/lingo-gr.cpp"
+#line 3985 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 256: /* proplist: proplist ',' proppair  */
@@ -3997,355 +3989,355 @@ yyreduce:
                                                 {
 		(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 4001 "engines/director/lingo/lingo-gr.cpp"
+#line 3993 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 257: /* proppair: tSYMBOL ':' expr  */
 #line 751 "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 3999 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 258: /* proppair: ID ':' expr  */
 #line 752 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropPairNode(new SymbolNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 4013 "engines/director/lingo/lingo-gr.cpp"
+#line 4005 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 259: /* proppair: tSTRING ':' expr  */
 #line 753 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new PropPairNode(new StringNode((yyvsp[-2].s)), (yyvsp[0].node)); }
-#line 4019 "engines/director/lingo/lingo-gr.cpp"
+#line 4011 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 260: /* unarymath: '+' simpleexpr  */
 #line 756 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = (yyvsp[0].node); }
-#line 4025 "engines/director/lingo/lingo-gr.cpp"
+#line 4017 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 261: /* unarymath: '-' simpleexpr  */
 #line 757 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.node) = new UnaryOpNode(LC::c_negate, (yyvsp[0].node)); }
-#line 4031 "engines/director/lingo/lingo-gr.cpp"
+#line 4023 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 266: /* expr: expr '+' expr  */
 #line 767 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4037 "engines/director/lingo/lingo-gr.cpp"
+#line 4029 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 267: /* expr: expr '-' expr  */
 #line 768 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4043 "engines/director/lingo/lingo-gr.cpp"
+#line 4035 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 268: /* expr: expr '*' expr  */
 #line 769 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4049 "engines/director/lingo/lingo-gr.cpp"
+#line 4041 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 269: /* expr: expr '/' expr  */
 #line 770 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4055 "engines/director/lingo/lingo-gr.cpp"
+#line 4047 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 270: /* expr: expr tMOD expr  */
 #line 771 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4061 "engines/director/lingo/lingo-gr.cpp"
+#line 4053 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 271: /* expr: expr '>' expr  */
 #line 772 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4067 "engines/director/lingo/lingo-gr.cpp"
+#line 4059 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 272: /* expr: expr '<' expr  */
 #line 773 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4073 "engines/director/lingo/lingo-gr.cpp"
+#line 4065 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 273: /* expr: expr tEQ expr  */
 #line 774 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4079 "engines/director/lingo/lingo-gr.cpp"
+#line 4071 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 274: /* expr: expr tNEQ expr  */
 #line 775 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4085 "engines/director/lingo/lingo-gr.cpp"
+#line 4077 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 275: /* expr: expr tGE expr  */
 #line 776 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4091 "engines/director/lingo/lingo-gr.cpp"
+#line 4083 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 276: /* expr: expr tLE expr  */
 #line 777 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4097 "engines/director/lingo/lingo-gr.cpp"
+#line 4089 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 277: /* expr: expr tAND expr  */
 #line 778 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4103 "engines/director/lingo/lingo-gr.cpp"
+#line 4095 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 278: /* expr: expr tOR expr  */
 #line 779 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4109 "engines/director/lingo/lingo-gr.cpp"
+#line 4101 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 279: /* expr: expr '&' expr  */
 #line 780 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4115 "engines/director/lingo/lingo-gr.cpp"
+#line 4107 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 280: /* expr: expr tCONCAT expr  */
 #line 781 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4121 "engines/director/lingo/lingo-gr.cpp"
+#line 4113 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 281: /* expr: expr tCONTAINS expr  */
 #line 782 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4127 "engines/director/lingo/lingo-gr.cpp"
+#line 4119 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 282: /* expr: expr tSTARTS expr  */
 #line 783 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4133 "engines/director/lingo/lingo-gr.cpp"
+#line 4125 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 285: /* expr_nounarymath: expr_nounarymath '+' expr  */
 #line 792 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4139 "engines/director/lingo/lingo-gr.cpp"
+#line 4131 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 286: /* expr_nounarymath: expr_nounarymath '-' expr  */
 #line 793 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4145 "engines/director/lingo/lingo-gr.cpp"
+#line 4137 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 287: /* expr_nounarymath: expr_nounarymath '*' expr  */
 #line 794 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4151 "engines/director/lingo/lingo-gr.cpp"
+#line 4143 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 288: /* expr_nounarymath: expr_nounarymath '/' expr  */
 #line 795 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4157 "engines/director/lingo/lingo-gr.cpp"
+#line 4149 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 289: /* expr_nounarymath: expr_nounarymath tMOD expr  */
 #line 796 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4163 "engines/director/lingo/lingo-gr.cpp"
+#line 4155 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 290: /* expr_nounarymath: expr_nounarymath '>' expr  */
 #line 797 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4169 "engines/director/lingo/lingo-gr.cpp"
+#line 4161 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 291: /* expr_nounarymath: expr_nounarymath '<' expr  */
 #line 798 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4175 "engines/director/lingo/lingo-gr.cpp"
+#line 4167 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 292: /* expr_nounarymath: expr_nounarymath tEQ expr  */
 #line 799 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_eq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4181 "engines/director/lingo/lingo-gr.cpp"
+#line 4173 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 293: /* expr_nounarymath: expr_nounarymath tNEQ expr  */
 #line 800 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4187 "engines/director/lingo/lingo-gr.cpp"
+#line 4179 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 294: /* expr_nounarymath: expr_nounarymath tGE expr  */
 #line 801 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4193 "engines/director/lingo/lingo-gr.cpp"
+#line 4185 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 295: /* expr_nounarymath: expr_nounarymath tLE expr  */
 #line 802 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4199 "engines/director/lingo/lingo-gr.cpp"
+#line 4191 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 296: /* expr_nounarymath: expr_nounarymath tAND expr  */
 #line 803 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4205 "engines/director/lingo/lingo-gr.cpp"
+#line 4197 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 297: /* expr_nounarymath: expr_nounarymath tOR expr  */
 #line 804 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4211 "engines/director/lingo/lingo-gr.cpp"
+#line 4203 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 298: /* expr_nounarymath: expr_nounarymath '&' expr  */
 #line 805 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4217 "engines/director/lingo/lingo-gr.cpp"
+#line 4209 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 299: /* expr_nounarymath: expr_nounarymath tCONCAT expr  */
 #line 806 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4223 "engines/director/lingo/lingo-gr.cpp"
+#line 4215 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 300: /* expr_nounarymath: expr_nounarymath tCONTAINS expr  */
 #line 807 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4229 "engines/director/lingo/lingo-gr.cpp"
+#line 4221 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 301: /* expr_nounarymath: expr_nounarymath tSTARTS expr  */
 #line 808 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4235 "engines/director/lingo/lingo-gr.cpp"
+#line 4227 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 304: /* expr_noeq: expr_noeq '+' expr_noeq  */
 #line 813 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_add, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4241 "engines/director/lingo/lingo-gr.cpp"
+#line 4233 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 305: /* expr_noeq: expr_noeq '-' expr_noeq  */
 #line 814 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_sub, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4247 "engines/director/lingo/lingo-gr.cpp"
+#line 4239 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 306: /* expr_noeq: expr_noeq '*' expr_noeq  */
 #line 815 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mul, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4253 "engines/director/lingo/lingo-gr.cpp"
+#line 4245 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 307: /* expr_noeq: expr_noeq '/' expr_noeq  */
 #line 816 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_div, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4259 "engines/director/lingo/lingo-gr.cpp"
+#line 4251 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 308: /* expr_noeq: expr_noeq tMOD expr_noeq  */
 #line 817 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_mod, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4265 "engines/director/lingo/lingo-gr.cpp"
+#line 4257 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 309: /* expr_noeq: expr_noeq '>' expr_noeq  */
 #line 818 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_gt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4271 "engines/director/lingo/lingo-gr.cpp"
+#line 4263 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 310: /* expr_noeq: expr_noeq '<' expr_noeq  */
 #line 819 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_lt, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4277 "engines/director/lingo/lingo-gr.cpp"
+#line 4269 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 311: /* expr_noeq: expr_noeq tNEQ expr_noeq  */
 #line 820 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_neq, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4283 "engines/director/lingo/lingo-gr.cpp"
+#line 4275 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 312: /* expr_noeq: expr_noeq tGE expr_noeq  */
 #line 821 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ge, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4289 "engines/director/lingo/lingo-gr.cpp"
+#line 4281 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 313: /* expr_noeq: expr_noeq tLE expr_noeq  */
 #line 822 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_le, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4295 "engines/director/lingo/lingo-gr.cpp"
+#line 4287 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 314: /* expr_noeq: expr_noeq tAND expr_noeq  */
 #line 823 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_and, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4301 "engines/director/lingo/lingo-gr.cpp"
+#line 4293 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 315: /* expr_noeq: expr_noeq tOR expr_noeq  */
 #line 824 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_or, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4307 "engines/director/lingo/lingo-gr.cpp"
+#line 4299 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 316: /* expr_noeq: expr_noeq '&' expr_noeq  */
 #line 825 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_ampersand, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4313 "engines/director/lingo/lingo-gr.cpp"
+#line 4305 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 317: /* expr_noeq: expr_noeq tCONCAT expr_noeq  */
 #line 826 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_concat, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4319 "engines/director/lingo/lingo-gr.cpp"
+#line 4311 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 318: /* expr_noeq: expr_noeq tCONTAINS expr_noeq  */
 #line 827 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new BinaryOpNode(LC::c_contains, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4325 "engines/director/lingo/lingo-gr.cpp"
+#line 4317 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 319: /* expr_noeq: expr_noeq tSTARTS expr_noeq  */
 #line 828 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new BinaryOpNode(LC::c_starts, (yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4331 "engines/director/lingo/lingo-gr.cpp"
+#line 4323 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 320: /* sprite: tSPRITE expr tINTERSECTS simpleexpr  */
 #line 831 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.node) = new IntersectsNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4337 "engines/director/lingo/lingo-gr.cpp"
+#line 4329 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 321: /* sprite: tSPRITE expr tWITHIN simpleexpr  */
 #line 832 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.node) = new WithinNode((yyvsp[-2].node), (yyvsp[0].node)); }
-#line 4343 "engines/director/lingo/lingo-gr.cpp"
+#line 4335 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 322: /* exprlist: %empty  */
 #line 835 "engines/director/lingo/lingo-gr.y"
                                                                 { (yyval.nodelist) = new NodeList; }
-#line 4349 "engines/director/lingo/lingo-gr.cpp"
+#line 4341 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 324: /* nonemptyexprlist: expr  */
@@ -4354,7 +4346,7 @@ yyreduce:
 		NodeList *list = new NodeList; 
 		list->push_back((yyvsp[0].node));
 		(yyval.nodelist) = list; }
-#line 4358 "engines/director/lingo/lingo-gr.cpp"
+#line 4350 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 325: /* nonemptyexprlist: nonemptyexprlist ',' expr  */
@@ -4362,11 +4354,11 @@ yyreduce:
                                                 {
 		(yyvsp[-2].nodelist)->push_back((yyvsp[0].node));
 		(yyval.nodelist) = (yyvsp[-2].nodelist); }
-#line 4366 "engines/director/lingo/lingo-gr.cpp"
+#line 4358 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 4370 "engines/director/lingo/lingo-gr.cpp"
+#line 4362 "engines/director/lingo/lingo-gr.cpp"
 
       default: break;
     }
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 0b911d44ef..328a29cbe5 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -561,7 +561,7 @@ tell: tTELL expr tTO stmtoneliner				{
 		$$ = new TellNode($expr, $stmtlist); }
 	;
 
-when: tWHEN							{ $$ = new WhenNode($tWHEN.eventName, $tWHEN.stmt); } ;
+when: tWHEN '\n'					{ $$ = new WhenNode($tWHEN.eventName, $tWHEN.stmt); } ;
 
 stmtlist: /* empty */				{ $$ = new NodeList; }
 	| nonemptystmtlist




More information about the Scummvm-git-logs mailing list