[Scummvm-git-logs] scummvm master -> 70860a7f96b22c348f9253050232c192996af64d

sev- sev at scummvm.org
Thu May 28 23:12:54 UTC 2020


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

Summary:
f90be852d8 DIRECTOR: LINGO: Made 'repeat while' non-recursive
70860a7f96 DIRECTOR: LINGO: Remove c_if and c_repeatwhile


Commit: f90be852d827c58375dccb9f61d184a9a4d01e13
    https://github.com/scummvm/scummvm/commit/f90be852d827c58375dccb9f61d184a9a4d01e13
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-05-29T01:12:45+02:00

Commit Message:
DIRECTOR: LINGO: Made 'repeat while' non-recursive

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 f6da07363b..7d2e37a8c8 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -765,7 +765,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  128
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2388
+#define YYLAST   2426
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  104
@@ -913,7 +913,7 @@ static const yytype_int16 yytoknum[] =
 };
 #endif
 
-#define YYPACT_NINF (-318)
+#define YYPACT_NINF (-281)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
@@ -927,44 +927,44 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     775,   -63,  -318,  -318,   199,  -318,   597,   313,   199,    25,
-     498,  -318,  -318,  -318,  -318,  -318,  -318,    41,  -318,  1622,
-    -318,  -318,  -318,    52,  1778,   -36,    43,    80,    83,  1860,
-    1659,  -318,  1860,  1860,  1860,  1860,  1860,  1860,  1860,  -318,
-    -318,  1860,  1860,  1860,   408,   114,    19,  -318,  -318,  -318,
-    -318,  1860,   -24,  1860,  1458,  -318,  2280,  -318,  -318,  -318,
-    -318,  -318,  -318,  -318,  -318,  -318,  -318,  -318,  -318,    17,
-    1778,  1741,  2280,    20,  1741,    20,  -318,   199,  1741,  2280,
-      21,   686,  -318,  -318,    91,  1860,  -318,    72,  -318,  1852,
-    -318,    93,  -318,    96,   380,    97,  -318,    -8,   199,   199,
-       5,    70,    74,  -318,  2177,  1852,  -318,    99,  -318,  1900,
-    1933,  1966,  1999,  2247,  2164,   102,   103,  -318,  -318,  2210,
-      29,    30,  -318,  2280,    51,    54,    55,  -318,  -318,   775,
-    2280,  -318,  -318,  2280,  -318,  -318,  1860,  2280,  -318,  -318,
-    1860,  1860,  1860,  1860,  1860,  1860,  1860,  1860,  1860,  1860,
-    1860,  1860,  1860,  1860,  1860,  1860,  1860,   135,  1741,   380,
-    2210,   -10,  1860,     8,  -318,    11,  1860,    20,   135,  -318,
-      62,  2280,  1860,  -318,  -318,   199,    18,  1860,  1860,  -318,
-    1860,  1860,    13,   115,  1860,  1860,  1860,  -318,  1860,  -318,
-    -318,    64,  1860,  1860,  1860,  1860,  1860,  1860,  1860,  1860,
-    1860,  1860,  -318,  -318,  -318,    65,  -318,  -318,   199,   199,
-    -318,  1860,    22,  -318,  -318,  1860,  1860,   116,  -318,  2280,
-       7,     7,     7,     7,  2293,  2293,  -318,    -7,     7,     7,
-       7,     7,    -7,   -55,   -55,  -318,  -318,  -318,   -75,  -318,
-    2280,  -318,  -318,  2280,   -44,   141,  2280,  -318,   124,  -318,
-    -318,  2280,  2280,  2280,     7,  1860,  1860,   147,  2280,     7,
-    2280,  2280,   157,  2280,  2032,  2280,  2065,  2280,  2098,  2280,
-    2131,  2280,  2280,  1540,  -318,   158,  -318,  -318,  2280,    29,
-      30,  -318,  1202,  2280,  2280,  -318,   144,  -318,   172,  -318,
-    -318,   135,  1860,  2280,     7,   199,  -318,  1860,  1860,  1860,
-    1860,  -318,  1287,  -318,  -318,  -318,   117,  -318,    -2,  1116,
-    1540,  -318,  -318,  -318,   -26,  2280,   148,  2280,  2280,  2280,
-    2280,  -318,   113,  -318,  1202,   149,  1860,  -318,   120,   861,
-     946,  -318,  1860,  -318,   121,  1860,  2280,    76,   171,   126,
-     191,  -318,  2280,  -318,  2280,  -318,  -318,  1860,  -318,   137,
-    -318,  -318,  -318,   127,  1031,  -318,  1202,  -318,  2280,  -318,
-    1540,   195,  1202,   142,  1372,   177,  -318,  -318,   145,  -318,
-     150,  -318,   152,  -318,  -318,  1116,  -318,  -318
+     693,   -76,  -281,  -281,    60,  -281,   515,   313,    60,     1,
+     416,  -281,  -281,  -281,  -281,  -281,  -281,   -26,  -281,  1625,
+    -281,  -281,  -281,    15,  1781,   -40,   136,    33,    47,  1863,
+    1662,  -281,  1863,  1863,  1863,  1863,  1863,  1863,  1863,  -281,
+    -281,  1863,  1863,  1863,   205,    84,    -7,  -281,  -281,  -281,
+    -281,  1863,   -23,  1863,  1461,  -281,  2318,  -281,  -281,  -281,
+    -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,  -281,    -5,
+    1781,  1744,  2318,    -3,  1744,    -3,  -281,    60,  1744,  2318,
+      -1,   604,  -281,  -281,    80,  1863,  -281,    71,  -281,  1905,
+    -281,   100,  -281,   101,  1855,   102,  -281,   -46,    60,    60,
+     -43,    77,    98,  -281,  2215,  1905,  -281,   107,  -281,  1938,
+    1971,  2004,  2037,  2285,  2202,   131,   133,  -281,  -281,  2248,
+      61,    62,  -281,  2318,    65,    63,    68,  -281,  -281,   693,
+    2318,  -281,  -281,  2318,  -281,  -281,  1863,  2318,  -281,  -281,
+    1863,  1863,  1863,  1863,  1863,  1863,  1863,  1863,  1863,  1863,
+    1863,  1863,  1863,  1863,  1863,  1863,  1863,   147,  1744,  1855,
+    2248,    -4,  1863,    11,  -281,    24,  1863,    -3,   147,  -281,
+      76,  2318,  1863,  -281,  -281,    60,    43,  1863,  1863,  -281,
+    1863,  1863,    -2,   129,  1863,  1863,  1863,  -281,  1863,  -281,
+    -281,    83,  1863,  1863,  1863,  1863,  1863,  1863,  1863,  1863,
+    1863,  1863,  -281,  -281,  -281,    85,  -281,  -281,    60,    60,
+    -281,  1863,    49,  -281,  -281,  1863,  1863,   143,  -281,  2318,
+     151,   151,   151,   151,  2331,  2331,  -281,    21,   151,   151,
+     151,   151,    21,   -24,   -24,  -281,  -281,  -281,   -85,  -281,
+    2318,  -281,  -281,  2318,   -44,   158,  2318,  -281,   153,  -281,
+    -281,  2318,  2318,  2318,   151,  1863,  1863,   172,  2318,   151,
+    2318,  2318,   173,  2318,  2070,  2318,  2103,  2318,  2136,  2318,
+    2169,  2318,  2318,  1543,  -281,   174,  -281,  -281,  2318,    61,
+      62,  -281,  1120,  2318,  2318,  -281,   148,  -281,   176,  -281,
+    -281,   147,  1863,  2318,   151,    60,  -281,  1863,  1863,  1863,
+    1863,  -281,  1205,  -281,  -281,  -281,   116,  -281,     8,  1034,
+    1543,  -281,  -281,  -281,   -15,  2318,   150,  2318,  2318,  2318,
+    2318,  -281,   119,  -281,  1290,   154,  1863,  -281,   125,   779,
+     864,  -281,  1863,  -281,   126,  1863,  2318,    66,   180,   132,
+     186,  -281,  2318,  -281,  2318,  -281,  -281,  1863,  -281,   134,
+    -281,  -281,  -281,   117,   949,  -281,  1290,  -281,  2318,  -281,
+    1543,   199,  1290,   146,  1375,   182,  -281,  -281,   149,  -281,
+     155,  -281,   161,  -281,  -281,  1034,  -281,  -281
 };
 
   /* YYDEFACTSTATE-NUM -- Default reduction number in state STATE-NUM.
@@ -985,7 +985,7 @@ static const yytype_uint8 yydefact[] =
        0,     0,     0,   144,   121,   136,   138,     0,    88,     0,
        0,     0,     0,     0,     0,     0,     0,    93,    94,     0,
       59,    58,   166,   169,     0,   167,   168,   171,     1,     0,
-      51,    50,    50,    47,    51,    26,     0,    24,    25,    23,
+      47,    50,    50,    47,    51,    26,     0,    24,    25,    23,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   151,     0,     0,
      160,     0,     0,     0,    70,     0,     0,   140,   151,   122,
@@ -1015,19 +1015,19 @@ static const yytype_uint8 yydefact[] =
   /* YYPGOTONTERM-NUM.  */
 static const yytype_int16 yypgoto[] =
 {
-    -318,   104,  -318,  -318,  -267,  -318,     2,    31,  -318,  -318,
-    -318,  -318,  -318,  -318,  -207,  -317,   181,   -77,  -125,   -89,
-    -318,     6,    -6,  -318,    63,   186,  -318,  -318,  -318,  -318,
-    -318,  -318,  -318,   -23,  -318,  -318,  -318,  -318,  -318,  -318,
-    -318,  -318,  -165,  -318,  -281,   187,    10,  -318,  -318,  -318,
-    -318,  -318,    32
+    -281,   108,  -281,  -281,  -266,  -281,     3,    37,  -281,  -281,
+    -281,  -281,  -281,  -281,  -131,  -268,   194,   -77,  -244,   795,
+    -281,     6,    -6,  -281,    78,   198,  -281,  -281,  -281,  -281,
+    -281,  -281,  -281,    20,  -281,  -281,  -281,  -281,  -281,  -281,
+    -281,  -281,  -162,  -281,  -280,   202,    27,  -281,  -281,  -281,
+    -281,  -281,    41
 };
 
   /* YYDEFGOTONTERM-NUM.  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,    45,    46,    47,    48,   134,   305,   273,    50,   337,
-     348,   135,    51,    52,   217,   327,    53,   157,   214,   282,
+     348,   135,    51,    52,   214,   306,    53,   157,   218,   282,
       54,    55,    56,    57,    58,    59,    84,   115,   107,   170,
      205,   191,    60,    90,    61,    81,    62,    91,   247,    82,
       63,   116,   238,   353,   311,    64,   165,    80,    65,   124,
@@ -1039,37 +1039,37 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      72,    72,    49,   244,    79,   168,   301,   106,   313,   218,
-      68,   338,   286,    89,    76,   146,    73,    75,    94,   131,
-      95,    96,   287,   104,   105,   288,   108,   109,   110,   111,
-     112,   113,   114,   325,    66,   117,   118,   119,   123,   155,
-     156,   132,     8,   328,   249,   130,   180,   133,   137,   279,
-     341,   280,   326,   289,   215,   216,   288,   181,   377,   184,
-      97,    98,    99,   146,   159,   160,   173,   255,   160,   100,
-     185,   331,   160,    77,   288,    72,   101,   146,   256,   171,
-     147,   161,   189,   164,   163,   153,   154,   155,   156,   239,
-     162,   167,    83,   366,    33,    34,    35,    36,   152,   153,
-     154,   155,   156,    92,   182,   183,   102,   241,   162,   103,
-     242,   162,   346,   347,   128,   158,   129,   169,   172,   174,
-     162,   166,   175,   179,   186,   190,   314,   187,   204,   206,
-     219,    49,   208,   209,   220,   221,   222,   223,   224,   225,
+      72,    72,   217,    49,    79,   168,   244,   301,   180,   313,
+      68,   184,   287,    89,    76,   288,    95,    96,    94,   181,
+     131,    66,   185,   104,   105,    83,   108,   109,   110,   111,
+     112,   113,   114,    73,    75,   117,   118,   119,   123,   307,
+     308,   327,   132,   325,   328,   130,   146,   133,   137,    77,
+     106,   341,   255,   289,   215,   216,   288,   321,   322,   102,
+     338,     1,   326,   256,   159,   160,    92,     8,   160,   249,
+     155,   156,   160,   103,     2,    72,   279,     3,   280,   171,
+     334,     5,   331,   164,   128,   288,    67,    11,   286,    12,
+     129,   146,   345,   158,   366,   239,   162,   162,   161,   166,
+     355,   163,   346,   347,   182,   183,   169,   377,   167,   173,
+     241,   162,   363,   153,   154,   155,   156,   172,   368,    33,
+      34,    35,    36,   242,   162,   189,   174,   175,   179,   314,
+     219,   186,    49,   190,   220,   221,   222,   223,   224,   225,
      226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
-     236,   365,    72,   210,   211,   212,   240,   306,   307,   308,
-     243,   237,   245,   257,   262,   275,   246,   290,   292,   285,
-     291,   251,   252,   295,   253,   254,   321,   322,   258,   259,
-     260,   248,   261,   296,   303,   302,   263,   264,   265,   266,
-     267,   268,   269,   270,   271,   272,   309,   310,   312,   334,
-       1,   333,   332,   335,   323,   278,   -50,   350,   343,   283,
-     284,   345,   351,     2,   276,   277,     3,   352,   324,   355,
-       5,   367,   329,   359,   330,    67,    11,   361,    12,   369,
-     371,   363,   373,   213,   274,   136,   374,   368,   376,   250,
-     138,   139,     0,     0,   281,     0,     0,     0,     0,   293,
-     294,   339,   354,     0,     0,     0,   356,     0,     0,     0,
-     349,     0,     0,     0,     0,     0,   362,     0,   364,   357,
-       0,     0,     0,   360,     0,     0,     0,     0,     0,     0,
-       0,     0,   375,     0,     0,     0,   315,   370,     0,   372,
-       0,   317,   318,   319,   320,     0,     0,    43,     0,     0,
-      44,   316,     0,     0,     0,     0,     0,     0,     0,     0,
+     236,   187,    72,    97,    98,    99,   240,   204,    43,   206,
+     243,    44,   100,   211,   208,   209,   246,   210,   212,   101,
+     291,   251,   252,   237,   253,   254,   245,   257,   258,   259,
+     260,   248,   261,   262,   290,   275,   263,   264,   265,   266,
+     267,   268,   269,   270,   271,   272,   285,   292,   295,   296,
+     303,   310,   312,   323,   332,   278,     1,   333,   335,   283,
+     284,   -50,   352,   343,   276,   277,   350,   361,   351,     2,
+     359,   146,     3,     4,   147,   367,     5,   365,     7,     8,
+       9,    69,   120,   369,   121,   371,   373,   213,    15,    16,
+     274,   374,   152,   153,   154,   155,   156,   376,   136,   293,
+     294,   339,   138,   281,   250,    70,   139,    26,     0,     0,
+     349,     0,     0,     0,     0,     0,     0,     0,     0,   357,
+       0,     0,     0,   360,    32,     0,     0,     0,     0,     0,
+       0,    33,    34,    35,    36,    37,   315,   370,     0,   372,
+       0,   317,   318,   319,   320,     0,     0,    41,    42,     0,
+       0,   316,     0,    43,     0,     0,    44,  -165,   122,     0,
        0,     0,     0,  -159,     1,     0,     0,     0,     0,     0,
      336,     0,     0,     0,     0,     0,   342,     2,     0,   344,
        3,     4,     0,     0,     5,  -159,     7,     8,     9,    69,
@@ -1079,240 +1079,244 @@ static const yytype_int16 yytable[] =
        0,     0,     0,  -159,  -159,  -159,  -159,  -159,  -159,  -159,
     -159,  -159,    32,  -159,  -159,  -159,  -159,  -159,  -159,    33,
       34,    35,    36,    37,  -159,  -159,  -159,  -159,     0,  -159,
-    -159,  -159,  -159,  -159,  -159,    41,    42,  -159,  -159,     1,
-    -159,    74,  -159,  -159,    44,  -159,     0,     0,     0,     0,
-       0,     0,     2,     0,   176,     3,     4,     0,     0,     5,
-       0,     7,     8,     9,    69,   120,     0,   121,     0,     0,
-       0,    15,    16,   140,   141,   142,   143,   144,   145,     0,
-     146,   177,   178,   147,   148,   149,     0,     0,    70,     0,
-      26,     0,     0,     0,     0,     0,     0,     0,     0,   150,
-     151,   152,   153,   154,   155,   156,     0,    32,     0,     0,
-       0,     0,     0,     0,    33,    34,    35,    36,    37,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   -60,     1,
-      41,    42,     0,     0,     0,     0,    43,     0,     0,    44,
-    -165,   122,     2,     0,     0,     3,     4,     0,     0,     5,
-     -60,     7,     8,     9,    69,    11,     0,    12,   -60,   -60,
-       0,    15,    16,     0,   -60,   -60,   -60,   -60,   -60,   -60,
-     -60,     0,     0,     0,     0,   -60,     0,     0,    70,   -60,
-      26,     0,     0,   -60,     0,     0,     0,     0,   -60,   -60,
-     -60,   -60,   -60,   -60,   -60,   -60,   -60,    32,   -60,     0,
-       0,   -60,   -60,   -60,    33,    34,    35,    36,    37,     0,
-       0,   -60,   -60,     0,   -60,   -60,   -60,   -60,   -60,   -60,
-      41,    42,   -60,   -60,     0,   -60,    78,  -159,     1,    44,
+    -159,  -159,  -159,  -159,  -159,    41,    42,  -159,  -159,     0,
+    -159,    74,  -159,  -159,    44,  -159,   -60,     1,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     2,     0,     0,     3,     4,     0,     0,     5,  -159,
-       7,     8,     9,    69,    11,     0,    12,  -159,  -159,     0,
-      15,    16,     0,  -159,  -159,  -159,  -159,  -159,  -159,  -159,
-       0,     0,     0,     0,  -159,     0,     0,    70,  -159,    26,
-       0,     0,  -159,     0,     0,     0,     0,  -159,  -159,  -159,
-       0,     0,     0,     0,     0,     0,    32,     0,     0,     0,
-       0,     0,     0,    33,    34,    35,    36,    37,     0,     0,
-    -159,  -159,     0,  -159,  -159,  -159,  -159,     1,     0,    41,
-      42,     0,     0,     0,  -159,    71,     0,  -159,    44,     0,
-       2,     0,     0,     3,     4,     0,     0,     5,  -159,     7,
-       8,     9,    69,    11,     0,    12,  -159,  -159,     0,    15,
-      16,     0,  -159,  -159,  -159,  -159,  -159,  -159,  -159,     0,
-       0,     0,     0,  -159,     0,     0,    70,  -159,    26,     0,
-       0,  -159,     0,     0,     0,     0,  -159,  -159,  -159,     0,
-       0,     0,     0,     0,     0,    32,     0,     0,     0,     0,
-       0,     0,    33,    34,    35,    36,    37,     0,     0,  -159,
-    -159,     0,  -159,  -159,  -159,    -4,     1,     0,    41,    42,
-       0,     0,     0,  -159,    43,     0,  -159,    44,     0,     2,
-       0,     0,     3,     4,     0,     0,     5,     6,     7,     8,
-       9,    10,    11,     0,    12,     0,    13,    14,    15,    16,
+       2,     0,     0,     3,     4,     0,     0,     5,   -60,     7,
+       8,     9,    69,    11,     0,    12,   -60,   -60,     0,    15,
+      16,     0,   -60,   -60,   -60,   -60,   -60,   -60,   -60,     0,
+       0,     0,     0,   -60,     0,     0,    70,   -60,    26,     0,
+       0,   -60,     0,     0,     0,     0,   -60,   -60,   -60,   -60,
+     -60,   -60,   -60,   -60,   -60,    32,   -60,     0,     0,   -60,
+     -60,   -60,    33,    34,    35,    36,    37,     0,     0,   -60,
+     -60,     0,   -60,   -60,   -60,   -60,   -60,   -60,    41,    42,
+     -60,   -60,     0,   -60,    78,  -159,     1,    44,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     2,
+       0,     0,     3,     4,     0,     0,     5,  -159,     7,     8,
+       9,    69,    11,     0,    12,  -159,  -159,     0,    15,    16,
+       0,  -159,  -159,  -159,  -159,  -159,  -159,  -159,     0,     0,
+       0,     0,  -159,     0,     0,    70,  -159,    26,     0,     0,
+    -159,     0,     0,     0,     0,  -159,  -159,  -159,     0,     0,
+       0,     0,     0,     0,    32,     0,     0,     0,     0,     0,
+       0,    33,    34,    35,    36,    37,     0,     0,  -159,  -159,
+       0,  -159,  -159,  -159,  -159,     1,     0,    41,    42,     0,
+       0,     0,  -159,    71,     0,  -159,    44,     0,     2,     0,
+       0,     3,     4,     0,     0,     5,  -159,     7,     8,     9,
+      69,    11,     0,    12,  -159,  -159,     0,    15,    16,     0,
+    -159,  -159,  -159,  -159,  -159,  -159,  -159,     0,     0,     0,
+       0,  -159,     0,     0,    70,  -159,    26,     0,     0,  -159,
+       0,     0,     0,     0,  -159,  -159,  -159,     0,     0,     0,
+       0,     0,     0,    32,     0,     0,     0,     0,     0,     0,
+      33,    34,    35,    36,    37,     0,     0,  -159,  -159,     0,
+    -159,  -159,  -159,    -4,     1,     0,    41,    42,     0,     0,
+       0,  -159,    43,     0,  -159,    44,     0,     2,     0,     0,
+       3,     4,     0,     0,     5,     6,     7,     8,     9,    10,
+      11,     0,    12,     0,    13,    14,    15,    16,     0,     0,
+       0,    17,    18,    19,    20,    21,     0,     0,    22,     0,
+      23,     0,     0,    24,    25,    26,     0,     0,    27,     0,
+       0,     0,    28,    29,    30,    31,     0,     0,     0,     0,
+       0,     0,    32,     0,     0,     0,     0,     0,     0,    33,
+      34,    35,    36,    37,     0,     0,    38,    39,    40,  -148,
+       1,     0,     0,     0,     0,    41,    42,     0,     0,     0,
+      -4,    43,     0,     2,    44,     0,     3,     4,     0,     0,
+       5,     6,     7,     8,     9,    10,    11,     0,    12,   340,
+      13,     0,    15,    16,     0,     0,     0,    17,    18,    19,
+      20,    21,     0,     0,     0,     0,    23,     0,     0,    24,
+      25,    26,     0,     0,    27,     0,     0,     0,     0,    29,
+      30,    31,     0,     0,     0,     0,     0,     0,    32,     0,
+       0,     0,     0,     0,     0,    33,    34,    35,    36,    37,
+       0,     0,    38,    39,  -146,     1,     0,     0,     0,     0,
+       0,    41,    42,     0,     0,     0,   304,    43,     2,     0,
+      44,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+      10,    11,     0,    12,     0,    13,     0,    15,    16,     0,
+       0,     0,    17,    18,    19,    20,    21,     0,     0,     0,
+       0,    23,     0,     0,    24,    25,    26,     0,     0,    27,
+       0,     0,     0,     0,    29,    30,    31,     0,     0,     0,
+       0,     0,     0,    32,     0,     0,     0,     0,     0,     0,
+      33,    34,    35,    36,    37,     0,     0,    38,    39,  -143,
+       1,     0,     0,     0,     0,     0,    41,    42,     0,     0,
+       0,   304,    43,     2,     0,    44,     3,     4,     0,     0,
+       5,     6,     7,     8,     9,    10,    11,     0,    12,     0,
+      13,     0,    15,    16,     0,     0,     0,    17,    18,    19,
+      20,    21,     0,     0,     0,     0,    23,     0,     0,    24,
+      25,    26,     0,     0,    27,     0,     0,     0,     0,    29,
+      30,    31,     0,     0,     0,     0,     0,     0,    32,     0,
+       0,     0,     0,     0,     0,    33,    34,    35,    36,    37,
+       0,     0,    38,    39,     0,     1,     0,     0,     0,     0,
+       0,    41,    42,     0,     0,     0,   304,    43,     2,     0,
+      44,     3,     4,     0,     0,     5,     6,     7,     8,     9,
+      10,    11,     0,    12,     0,    13,     0,    15,    16,   302,
+     -48,   -48,    17,    18,    19,    20,    21,     0,     0,     0,
+     309,    23,     0,     0,    24,    25,    26,     0,     0,    27,
+       0,     0,     0,     0,    29,    30,    31,     0,     0,     0,
+       0,     0,   324,    32,     0,     0,   329,     0,   330,     0,
+      33,    34,    35,    36,    37,     0,     0,    38,    39,     0,
+     -48,     1,     0,     0,     0,     0,    41,    42,     0,     0,
+       0,   304,    43,     0,     2,    44,   354,     3,     4,     0,
+     356,     5,     6,     7,     8,     9,    10,    11,     0,    12,
+     362,    13,   364,    15,    16,     0,     0,     0,    17,    18,
+      19,    20,    21,     0,     0,     0,   375,    23,     0,     0,
+      24,    25,    26,     0,     0,    27,     0,     0,     0,     0,
+      29,    30,    31,     0,     0,     0,     0,     0,     0,    32,
+       0,     0,     0,     0,     0,     0,    33,    34,    35,    36,
+      37,     0,     0,    38,    39,     0,     1,   -48,     0,     0,
+       0,     0,    41,    42,     0,     0,     0,   304,    43,     2,
+       0,    44,     3,     4,     0,     0,     5,     6,     7,     8,
+       9,    10,    11,     0,    12,     0,    13,     0,    15,    16,
        0,     0,     0,    17,    18,    19,    20,    21,     0,     0,
-      22,     0,    23,     0,     0,    24,    25,    26,     0,     0,
-      27,     0,     0,     0,    28,    29,    30,    31,     0,     0,
+       0,     0,    23,     0,     0,    24,    25,    26,     0,     0,
+      27,     0,     0,     0,     0,    29,    30,    31,     0,     0,
        0,     0,     0,     0,    32,     0,     0,     0,     0,     0,
        0,    33,    34,    35,    36,    37,     0,     0,    38,    39,
-      40,  -148,     1,     0,     0,     0,     0,    41,    42,     0,
-       0,     0,    -4,    43,     0,     2,    44,     0,     3,     4,
-       0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
-      12,   340,    13,     0,    15,    16,     0,     0,     0,    17,
-      18,    19,    20,    21,     0,     0,     0,     0,    23,     0,
-       0,    24,    25,    26,     0,     0,    27,     0,     0,     0,
-       0,    29,    30,    31,     0,     0,     0,     0,     0,     0,
-      32,     0,     0,     0,     0,     0,     0,    33,    34,    35,
-      36,    37,     0,     0,    38,    39,  -146,     1,     0,     0,
-       0,     0,     0,    41,    42,     0,     0,     0,   304,    43,
-       2,     0,    44,     3,     4,     0,     0,     5,     6,     7,
-       8,     9,    10,    11,     0,    12,     0,    13,     0,    15,
-      16,     0,     0,     0,    17,    18,    19,    20,    21,     0,
-       0,     0,     0,    23,     0,     0,    24,    25,    26,     0,
-       0,    27,     0,     0,     0,     0,    29,    30,    31,     0,
-       0,     0,     0,     0,     0,    32,     0,     0,     0,     0,
-       0,     0,    33,    34,    35,    36,    37,     0,     0,    38,
-      39,  -143,     1,     0,     0,     0,     0,     0,    41,    42,
-       0,     0,     0,   304,    43,     2,     0,    44,     3,     4,
+       0,     1,     0,   -51,     0,     0,     0,    41,    42,     0,
+       0,     0,   304,    43,     2,     0,    44,     3,     4,     0,
+       0,     5,     6,     7,     8,     9,    10,    11,     0,    12,
+       0,    13,     0,    15,    16,     0,     0,     0,    17,    18,
+      19,    20,    21,     0,     0,     0,     0,    23,     0,     0,
+      24,    25,    26,     0,     0,    27,     0,     0,     0,     0,
+      29,    30,    31,     0,     0,     0,     0,     0,     0,    32,
+       0,     0,     0,     0,     0,     0,    33,    34,    35,    36,
+      37,     0,     0,    38,    39,     0,     1,   -51,     0,     0,
+       0,     0,    41,    42,     0,     0,     0,   304,    43,     2,
+       0,    44,     3,     4,     0,     0,     5,     6,     7,     8,
+       9,    10,    11,     0,    12,     0,    13,     0,    15,    16,
+       0,     0,     0,    17,    18,    19,    20,    21,     0,     0,
+       0,     0,    23,     0,     0,    24,    25,    26,     0,     0,
+      27,     0,     0,     0,     0,    29,    30,    31,     0,     0,
+       0,     0,     0,     0,    32,     0,     0,     0,     0,     0,
+       0,    33,    34,    35,    36,    37,     0,     0,    38,    39,
+       0,   -50,     1,     0,     0,     0,     0,    41,    42,     0,
+       0,     0,   304,    43,     0,     2,    44,     0,     3,     4,
        0,     0,     5,     6,     7,     8,     9,    10,    11,     0,
       12,     0,    13,     0,    15,    16,     0,     0,     0,    17,
-      18,    19,    20,    21,     0,     0,     0,     0,    23,     0,
-       0,    24,    25,    26,     0,     0,    27,     0,     0,     0,
+      18,    19,    20,    21,     0,     0,     0,     0,     0,     0,
+       0,    24,     0,    26,     0,     0,     0,     0,     0,     0,
        0,    29,    30,    31,     0,     0,     0,     0,     0,     0,
       32,     0,     0,     0,     0,     0,     0,    33,    34,    35,
-      36,    37,     0,     0,    38,    39,     0,     1,     0,     0,
-       0,     0,     0,    41,    42,     0,     0,     0,   304,    43,
-       2,     0,    44,     3,     4,     0,     0,     5,     6,     7,
-       8,     9,    10,    11,     0,    12,     0,    13,     0,    15,
-      16,     0,   -48,   -48,    17,    18,    19,    20,    21,     0,
-       0,     0,     0,    23,     0,     0,    24,    25,    26,     0,
-       0,    27,     0,     0,     0,     0,    29,    30,    31,     0,
-       0,     0,     0,     0,     0,    32,     0,     0,     0,     0,
-       0,     0,    33,    34,    35,    36,    37,     0,     0,    38,
-      39,     0,   -48,     1,     0,     0,     0,     0,    41,    42,
-       0,     0,     0,   304,    43,     0,     2,    44,     0,     3,
-       4,     0,     0,     5,     6,     7,     8,     9,    10,    11,
-       0,    12,     0,    13,     0,    15,    16,     0,     0,     0,
-      17,    18,    19,    20,    21,     0,     0,     0,     0,    23,
-       0,     0,    24,    25,    26,     0,     0,    27,     0,     0,
-       0,     0,    29,    30,    31,     0,     0,     0,     0,     0,
-       0,    32,     0,     0,     0,     0,     0,     0,    33,    34,
-      35,    36,    37,     0,     0,    38,    39,     0,     1,   -51,
-       0,     0,     0,     0,    41,    42,     0,     0,     0,   304,
-      43,     2,     0,    44,     3,     4,     0,     0,     5,     6,
-       7,     8,     9,    10,    11,     0,    12,     0,    13,     0,
-      15,    16,     0,     0,     0,    17,    18,    19,    20,    21,
-       0,     0,     0,     0,    23,     0,     0,    24,    25,    26,
-       0,     0,    27,     0,     0,     0,     0,    29,    30,    31,
-       0,     0,     0,     0,     0,     0,    32,     0,     0,     0,
-       0,     0,     0,    33,    34,    35,    36,    37,     0,     0,
-      38,    39,     0,     1,     0,   -51,     0,     0,     0,    41,
-      42,     0,     0,     0,   304,    43,     2,     0,    44,     3,
-       4,     0,     0,     5,     6,     7,     8,     9,    10,    11,
-       0,    12,     0,    13,     0,    15,    16,     0,     0,     0,
-      17,    18,    19,    20,    21,     0,     0,     0,     0,    23,
-       0,     0,    24,    25,    26,     0,     0,    27,     0,     0,
-       0,     0,    29,    30,    31,     0,     0,     0,     0,     0,
+      36,    37,     0,     0,     1,    39,     0,     0,     0,     0,
+       0,     0,     0,    41,    42,     0,     0,     2,     0,    43,
+       3,     4,    44,     0,     5,     6,     7,     8,     9,    10,
+      11,     0,    12,     0,    13,     0,    15,    16,     0,     0,
+       0,    17,    18,    19,    20,     0,     0,     0,     0,     0,
+       0,     0,     0,    24,     0,    26,     0,     0,     0,     0,
+       0,     0,     0,    29,    30,    31,     0,     0,     0,     0,
+       0,     0,    32,     0,     0,     0,     0,     0,     0,    33,
+      34,    35,    36,    37,     0,     0,     1,    39,     0,     0,
+       0,     0,     0,     0,     0,    41,    42,     0,     0,     2,
+       0,    43,     3,     4,    44,     0,     5,     0,     7,     8,
+       9,    69,    11,     0,    12,     0,     0,     0,    15,    16,
+       0,     0,     0,     1,     0,     0,     0,     0,     0,     0,
+       0,    85,    86,    87,    88,    70,     2,    26,     0,     3,
+       4,     0,     0,     5,     0,     7,     8,     9,    69,    11,
+       0,    12,     0,     0,    32,    15,    16,     0,     0,     0,
+       0,    33,    34,    35,    36,    37,     0,     0,    85,     0,
+      87,     0,    70,     0,    26,     0,     0,    41,    42,     0,
+       0,     0,     0,    43,     0,     0,    44,     0,     0,     0,
        0,    32,     0,     0,     0,     0,     0,     0,    33,    34,
-      35,    36,    37,     0,     0,    38,    39,     0,   -50,     1,
-       0,     0,     0,     0,    41,    42,     0,     0,     0,   304,
-      43,     0,     2,    44,     0,     3,     4,     0,     0,     5,
-       6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
-       0,    15,    16,     0,     0,     0,    17,    18,    19,    20,
-      21,     0,     0,     0,     0,     0,     0,     0,    24,     0,
-      26,     0,     0,     0,     0,     0,     0,     0,    29,    30,
-      31,     0,     0,     0,     0,     0,     0,    32,     0,     0,
-       0,     0,     0,     0,    33,    34,    35,    36,    37,     0,
-       0,     1,    39,     0,     0,     0,     0,     0,     0,     0,
-      41,    42,     0,     0,     2,     0,    43,     3,     4,    44,
-       0,     5,     6,     7,     8,     9,    10,    11,     0,    12,
-       0,    13,     0,    15,    16,     0,     0,     0,    17,    18,
-      19,    20,     0,     0,     0,     0,     0,     0,     0,     0,
-      24,     0,    26,     0,     0,     0,     0,     0,     0,     0,
-      29,    30,    31,     0,     0,     0,     0,     0,     0,    32,
-       0,     0,     0,     0,     0,     0,    33,    34,    35,    36,
-      37,     0,     0,     1,    39,     0,     0,     0,     0,     0,
-       0,     0,    41,    42,     0,     0,     2,     0,    43,     3,
-       4,    44,     0,     5,     0,     7,     8,     9,    69,    11,
-       0,    12,     0,     0,     0,    15,    16,     0,     0,     0,
-       1,     0,     0,     0,     0,     0,     0,     0,    85,    86,
-      87,    88,    70,     2,    26,     0,     3,     4,     0,     0,
-       5,     0,     7,     8,     9,    69,    11,     0,    12,     0,
-       0,    32,    15,    16,     0,     0,     0,     0,    33,    34,
-      35,    36,    37,     0,     0,    85,     0,    87,     0,    70,
-       0,    26,     0,     0,    41,    42,     0,     0,     0,     0,
-      43,     0,     0,    44,     0,     0,     0,     0,    32,     0,
-       0,     0,     0,     0,     0,    33,    34,    35,    36,    37,
+      35,    36,    37,     0,     0,     1,     0,     0,     0,     0,
+       0,     0,     0,     0,    41,    42,     0,     0,     2,     0,
+      43,     3,     4,    44,     0,     5,     0,     7,     8,     9,
+      69,    11,     0,    12,     0,     0,     0,    15,    16,     0,
        0,     0,     1,     0,     0,     0,     0,     0,     0,     0,
-       0,    41,    42,     0,     0,     2,     0,    43,     3,     4,
-      44,     0,     5,     0,     7,     8,     9,    69,    11,     0,
-      12,     0,     0,     0,    15,    16,     0,     0,     0,     1,
+       0,     0,     0,     0,    70,     2,    26,     0,     3,     4,
+       0,    93,     5,     0,     7,     8,     9,    69,    11,     0,
+      12,     0,     0,    32,    15,    16,     0,     0,     0,     0,
+      33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
+       0,    70,     0,    26,     0,     0,    41,    42,     0,     0,
+       0,     0,    43,  -159,  -159,    44,     0,     0,     0,     0,
+      32,     0,     0,     0,     0,     0,     0,    33,    34,    35,
+      36,    37,     0,     0,     1,     0,     0,     0,     0,     0,
+       0,     0,     0,    41,    42,     0,     0,     2,     0,    43,
+       3,     4,    44,     0,     5,     0,     7,     8,     9,    69,
+      11,     0,    12,     0,     0,     0,    15,    16,     0,   176,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    70,     2,    26,     0,     3,     4,     0,    93,     5,
-       0,     7,     8,     9,    69,    11,     0,    12,     0,     0,
-      32,    15,    16,     0,     0,     0,     0,    33,    34,    35,
-      36,    37,     0,     0,     0,     0,     0,     0,    70,     0,
-      26,     0,     0,    41,    42,     0,     0,     0,     0,    43,
-    -159,  -159,    44,     0,     0,     0,     0,    32,     0,     0,
-       0,     0,     0,     0,    33,    34,    35,    36,    37,     0,
-       0,     1,     0,     0,     0,     0,     0,     0,     0,     0,
-      41,    42,     0,     0,     2,     0,    43,     3,     4,    44,
-       0,     5,     0,     7,     8,     9,    69,    11,     0,    12,
-       0,     0,     0,    15,    16,     0,     0,     0,    85,     0,
-      87,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-      70,     0,    26,     0,     0,   140,   141,   142,   143,   144,
-     145,     0,   146,     0,     0,   147,   148,   149,     0,    32,
-       0,     0,     0,     0,     0,     0,    33,    34,    35,    36,
-      37,   150,   151,   152,   153,   154,   155,   156,   192,     0,
-       0,     0,    41,    42,   193,     0,     0,     0,    43,     0,
-       0,    44,     0,   140,   141,   142,   143,   144,   145,     0,
+       0,     0,     0,    70,     0,    26,     0,     0,   140,   141,
+     142,   143,   144,   145,     0,   146,   177,   178,   147,   148,
+     149,     0,    32,     0,     0,     0,     0,     0,     0,    33,
+      34,    35,    36,    37,   150,   151,   152,   153,   154,   155,
+     156,    85,     0,    87,     0,    41,    42,     0,     0,     0,
+       0,    43,     0,     0,    44,     0,     0,     0,   140,   141,
+     142,   143,   144,   145,     0,   146,     0,     0,   147,   148,
+     149,     0,     0,     0,     0,     0,   192,     0,     0,     0,
+       0,     0,   193,     0,   150,   151,   152,   153,   154,   155,
+     156,   140,   141,   142,   143,   144,   145,     0,   146,     0,
+       0,   147,   148,   149,     0,     0,     0,     0,     0,   194,
+       0,     0,     0,     0,     0,   195,     0,   150,   151,   152,
+     153,   154,   155,   156,   140,   141,   142,   143,   144,   145,
+       0,   146,     0,     0,   147,   148,   149,     0,     0,     0,
+       0,     0,   196,     0,     0,     0,     0,     0,   197,     0,
+     150,   151,   152,   153,   154,   155,   156,   140,   141,   142,
+     143,   144,   145,     0,   146,     0,     0,   147,   148,   149,
+       0,     0,     0,     0,     0,   198,     0,     0,     0,     0,
+       0,   199,     0,   150,   151,   152,   153,   154,   155,   156,
+     140,   141,   142,   143,   144,   145,     0,   146,     0,     0,
+     147,   148,   149,     0,     0,     0,     0,     0,   297,     0,
+       0,     0,     0,     0,     0,     0,   150,   151,   152,   153,
+     154,   155,   156,   140,   141,   142,   143,   144,   145,     0,
      146,     0,     0,   147,   148,   149,     0,     0,     0,     0,
-       0,   194,     0,     0,     0,     0,     0,   195,     0,   150,
+       0,   298,     0,     0,     0,     0,     0,     0,     0,   150,
      151,   152,   153,   154,   155,   156,   140,   141,   142,   143,
      144,   145,     0,   146,     0,     0,   147,   148,   149,     0,
-       0,     0,     0,     0,   196,     0,     0,     0,     0,     0,
-     197,     0,   150,   151,   152,   153,   154,   155,   156,   140,
+       0,     0,     0,     0,   299,     0,     0,     0,     0,     0,
+       0,     0,   150,   151,   152,   153,   154,   155,   156,   140,
      141,   142,   143,   144,   145,     0,   146,     0,     0,   147,
-     148,   149,     0,     0,     0,     0,     0,   198,     0,     0,
-       0,     0,     0,   199,     0,   150,   151,   152,   153,   154,
+     148,   149,     0,     0,     0,     0,     0,   300,     0,     0,
+       0,     0,     0,     0,     0,   150,   151,   152,   153,   154,
      155,   156,   140,   141,   142,   143,   144,   145,     0,   146,
        0,     0,   147,   148,   149,     0,     0,     0,     0,     0,
-     297,     0,     0,     0,     0,     0,     0,     0,   150,   151,
+       0,     0,     0,     0,     0,     0,   202,     0,   150,   151,
      152,   153,   154,   155,   156,   140,   141,   142,   143,   144,
-     145,     0,   146,     0,     0,   147,   148,   149,     0,     0,
-       0,     0,     0,   298,     0,     0,     0,     0,     0,     0,
-       0,   150,   151,   152,   153,   154,   155,   156,   140,   141,
+     145,   188,   146,     0,     0,   147,   148,   149,   140,   141,
      142,   143,   144,   145,     0,   146,     0,     0,   147,   148,
-     149,     0,     0,     0,     0,     0,   299,     0,     0,     0,
+     149,   150,   151,   152,   153,   154,   155,   156,     0,   203,
        0,     0,     0,     0,   150,   151,   152,   153,   154,   155,
      156,   140,   141,   142,   143,   144,   145,     0,   146,     0,
-       0,   147,   148,   149,     0,     0,     0,     0,     0,   300,
+       0,   147,   148,   149,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,   150,   151,   152,
-     153,   154,   155,   156,   140,   141,   142,   143,   144,   145,
-       0,   146,     0,     0,   147,   148,   149,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   202,     0,
-     150,   151,   152,   153,   154,   155,   156,   140,   141,   142,
-     143,   144,   145,   188,   146,     0,     0,   147,   148,   149,
-     140,   141,   142,   143,   144,   145,     0,   146,     0,     0,
-     147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-       0,   203,     0,     0,     0,     0,   150,   151,   152,   153,
-     154,   155,   156,   140,   141,   142,   143,   144,   145,     0,
-     146,     0,     0,   147,   148,   149,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   150,
-     151,   152,   153,   154,   155,   156,     0,     0,     0,   207,
-     140,   141,   142,   143,   144,   145,     0,   146,     0,     0,
-     147,   148,   149,     0,     0,     0,     0,     0,   200,   201,
-       0,     0,     0,     0,     0,     0,   150,   151,   152,   153,
-     154,   155,   156,   140,   141,   142,   143,   144,   145,     0,
-     146,     0,     0,   147,   148,   149,   140,   141,   142,   143,
-       0,     0,     0,   146,     0,     0,   147,   148,   149,   150,
-     151,   152,   153,   154,   155,   156,     0,     0,     0,     0,
-       0,     0,   150,   151,   152,   153,   154,   155,   156
+     153,   154,   155,   156,     0,     0,     0,   207,   140,   141,
+     142,   143,   144,   145,     0,   146,     0,     0,   147,   148,
+     149,     0,     0,     0,     0,     0,   200,   201,     0,     0,
+       0,     0,     0,     0,   150,   151,   152,   153,   154,   155,
+     156,   140,   141,   142,   143,   144,   145,     0,   146,     0,
+       0,   147,   148,   149,   140,   141,   142,   143,     0,     0,
+       0,   146,     0,     0,   147,   148,   149,   150,   151,   152,
+     153,   154,   155,   156,     0,     0,     0,     0,     0,     0,
+     150,   151,   152,   153,   154,   155,   156
 };
 
 static const yytype_int16 yycheck[] =
 {
-       6,     7,     0,   168,    10,    82,   273,    30,   289,   134,
-       4,   328,   219,    19,     8,    70,     6,     7,    24,    43,
-      56,    57,    97,    29,    30,   100,    32,    33,    34,    35,
-      36,    37,    38,    35,    97,    41,    42,    43,    44,    94,
-      95,    65,    24,   310,    26,    51,    54,    53,    54,    27,
-     331,    29,    54,    97,   131,   132,   100,    65,   375,    54,
-      17,    18,    19,    70,    70,    71,    89,    54,    74,    26,
-      65,    97,    78,    48,   100,    81,    33,    70,    65,    85,
-      73,    71,   105,    77,    74,    92,    93,    94,    95,    99,
-     100,    81,    51,   360,    76,    77,    78,    79,    91,    92,
-      93,    94,    95,    51,    98,    99,    26,    99,   100,    26,
-      99,   100,    36,    37,     0,    98,    97,    26,    46,    26,
-     100,   100,    26,    26,    54,    26,   291,    53,    26,    26,
-     136,   129,   103,   103,   140,   141,   142,   143,   144,   145,
+       6,     7,   133,     0,    10,    82,   168,   273,    54,   289,
+       4,    54,    97,    19,     8,   100,    56,    57,    24,    65,
+      43,    97,    65,    29,    30,    51,    32,    33,    34,    35,
+      36,    37,    38,     6,     7,    41,    42,    43,    44,   283,
+     284,   309,    65,    35,   310,    51,    70,    53,    54,    48,
+      30,   331,    54,    97,   131,   132,   100,   301,   302,    26,
+     328,     1,    54,    65,    70,    71,    51,    24,    74,    26,
+      94,    95,    78,    26,    14,    81,    27,    17,    29,    85,
+     324,    21,    97,    77,     0,   100,    26,    27,   219,    29,
+      97,    70,   336,    98,   360,    99,   100,   100,    71,   100,
+     344,    74,    36,    37,    98,    99,    26,   375,    81,    89,
+      99,   100,   356,    92,    93,    94,    95,    46,   362,    76,
+      77,    78,    79,    99,   100,   105,    26,    26,    26,   291,
+     136,    54,   129,    26,   140,   141,   142,   143,   144,   145,
      146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
-     156,   358,   158,   102,   100,   100,   162,   282,   283,   284,
-     166,    26,   100,    48,   100,   100,   172,    26,    44,    53,
-     247,   177,   178,    26,   180,   181,   301,   302,   184,   185,
-     186,   175,   188,    26,    26,   274,   192,   193,   194,   195,
-     196,   197,   198,   199,   200,   201,   285,    53,    26,   324,
-       1,    88,    54,    54,    87,   211,    86,    36,    87,   215,
-     216,   336,    86,    14,   208,   209,    17,    26,   307,   344,
-      21,    26,   311,    86,   313,    26,    27,   100,    29,    87,
-      53,   356,    87,   129,   203,    54,    86,   362,    86,   176,
-      54,    54,    -1,    -1,   212,    -1,    -1,    -1,    -1,   255,
-     256,   328,   341,    -1,    -1,    -1,   345,    -1,    -1,    -1,
-     337,    -1,    -1,    -1,    -1,    -1,   355,    -1,   357,   346,
-      -1,    -1,    -1,   350,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   371,    -1,    -1,    -1,   292,   364,    -1,   366,
-      -1,   297,   298,   299,   300,    -1,    -1,    98,    -1,    -1,
-     101,   295,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     156,    53,   158,    17,    18,    19,   162,    26,    98,    26,
+     166,   101,    26,   100,   103,   103,   172,   102,   100,    33,
+     247,   177,   178,    26,   180,   181,   100,    48,   184,   185,
+     186,   175,   188,   100,    26,   100,   192,   193,   194,   195,
+     196,   197,   198,   199,   200,   201,    53,    44,    26,    26,
+      26,    53,    26,    87,    54,   211,     1,    88,    54,   215,
+     216,    86,    26,    87,   208,   209,    36,   100,    86,    14,
+      86,    70,    17,    18,    73,    26,    21,   358,    23,    24,
+      25,    26,    27,    87,    29,    53,    87,   129,    33,    34,
+     203,    86,    91,    92,    93,    94,    95,    86,    54,   255,
+     256,   328,    54,   212,   176,    50,    54,    52,    -1,    -1,
+     337,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   346,
+      -1,    -1,    -1,   350,    69,    -1,    -1,    -1,    -1,    -1,
+      -1,    76,    77,    78,    79,    80,   292,   364,    -1,   366,
+      -1,   297,   298,   299,   300,    -1,    -1,    92,    93,    -1,
+      -1,   295,    -1,    98,    -1,    -1,   101,   102,   103,    -1,
       -1,    -1,    -1,     0,     1,    -1,    -1,    -1,    -1,    -1,
      326,    -1,    -1,    -1,    -1,    -1,   332,    14,    -1,   335,
       17,    18,    -1,    -1,    21,    22,    23,    24,    25,    26,
@@ -1322,205 +1326,209 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    60,    61,    62,    63,    64,    65,    66,
       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
       77,    78,    79,    80,    81,    82,    83,    84,    -1,    86,
-      87,    88,    89,    90,    91,    92,    93,    94,    95,     1,
-      97,    98,    99,   100,   101,   102,    -1,    -1,    -1,    -1,
-      -1,    -1,    14,    -1,    44,    17,    18,    -1,    -1,    21,
-      -1,    23,    24,    25,    26,    27,    -1,    29,    -1,    -1,
-      -1,    33,    34,    63,    64,    65,    66,    67,    68,    -1,
-      70,    71,    72,    73,    74,    75,    -1,    -1,    50,    -1,
-      52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
-      90,    91,    92,    93,    94,    95,    -1,    69,    -1,    -1,
-      -1,    -1,    -1,    -1,    76,    77,    78,    79,    80,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,     1,
-      92,    93,    -1,    -1,    -1,    -1,    98,    -1,    -1,   101,
-     102,   103,    14,    -1,    -1,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    30,    31,
-      -1,    33,    34,    -1,    36,    37,    38,    39,    40,    41,
-      42,    -1,    -1,    -1,    -1,    47,    -1,    -1,    50,    51,
-      52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    60,    61,
-      62,    63,    64,    65,    66,    67,    68,    69,    70,    -1,
-      -1,    73,    74,    75,    76,    77,    78,    79,    80,    -1,
-      -1,    83,    84,    -1,    86,    87,    88,    89,    90,    91,
-      92,    93,    94,    95,    -1,    97,    98,     0,     1,   101,
+      87,    88,    89,    90,    91,    92,    93,    94,    95,    -1,
+      97,    98,    99,   100,   101,   102,     0,     1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    14,    -1,    -1,    17,    18,    -1,    -1,    21,    22,
-      23,    24,    25,    26,    27,    -1,    29,    30,    31,    -1,
-      33,    34,    -1,    36,    37,    38,    39,    40,    41,    42,
-      -1,    -1,    -1,    -1,    47,    -1,    -1,    50,    51,    52,
-      -1,    -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,
-      -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    77,    78,    79,    80,    -1,    -1,
-      83,    84,    -1,    86,    87,    88,     0,     1,    -1,    92,
-      93,    -1,    -1,    -1,    97,    98,    -1,   100,   101,    -1,
       14,    -1,    -1,    17,    18,    -1,    -1,    21,    22,    23,
       24,    25,    26,    27,    -1,    29,    30,    31,    -1,    33,
       34,    -1,    36,    37,    38,    39,    40,    41,    42,    -1,
       -1,    -1,    -1,    47,    -1,    -1,    50,    51,    52,    -1,
-      -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,    -1,
-      -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,
-      -1,    -1,    76,    77,    78,    79,    80,    -1,    -1,    83,
-      84,    -1,    86,    87,    88,     0,     1,    -1,    92,    93,
-      -1,    -1,    -1,    97,    98,    -1,   100,   101,    -1,    14,
+      -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,    63,
+      64,    65,    66,    67,    68,    69,    70,    -1,    -1,    73,
+      74,    75,    76,    77,    78,    79,    80,    -1,    -1,    83,
+      84,    -1,    86,    87,    88,    89,    90,    91,    92,    93,
+      94,    95,    -1,    97,    98,     0,     1,   101,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,
       -1,    -1,    17,    18,    -1,    -1,    21,    22,    23,    24,
-      25,    26,    27,    -1,    29,    -1,    31,    32,    33,    34,
+      25,    26,    27,    -1,    29,    30,    31,    -1,    33,    34,
+      -1,    36,    37,    38,    39,    40,    41,    42,    -1,    -1,
+      -1,    -1,    47,    -1,    -1,    50,    51,    52,    -1,    -1,
+      55,    -1,    -1,    -1,    -1,    60,    61,    62,    -1,    -1,
+      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,
+      -1,    76,    77,    78,    79,    80,    -1,    -1,    83,    84,
+      -1,    86,    87,    88,     0,     1,    -1,    92,    93,    -1,
+      -1,    -1,    97,    98,    -1,   100,   101,    -1,    14,    -1,
+      -1,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
+      26,    27,    -1,    29,    30,    31,    -1,    33,    34,    -1,
+      36,    37,    38,    39,    40,    41,    42,    -1,    -1,    -1,
+      -1,    47,    -1,    -1,    50,    51,    52,    -1,    -1,    55,
+      -1,    -1,    -1,    -1,    60,    61,    62,    -1,    -1,    -1,
+      -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,
+      76,    77,    78,    79,    80,    -1,    -1,    83,    84,    -1,
+      86,    87,    88,     0,     1,    -1,    92,    93,    -1,    -1,
+      -1,    97,    98,    -1,   100,   101,    -1,    14,    -1,    -1,
+      17,    18,    -1,    -1,    21,    22,    23,    24,    25,    26,
+      27,    -1,    29,    -1,    31,    32,    33,    34,    -1,    -1,
+      -1,    38,    39,    40,    41,    42,    -1,    -1,    45,    -1,
+      47,    -1,    -1,    50,    51,    52,    -1,    -1,    55,    -1,
+      -1,    -1,    59,    60,    61,    62,    -1,    -1,    -1,    -1,
+      -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
+      77,    78,    79,    80,    -1,    -1,    83,    84,    85,     0,
+       1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,
+      97,    98,    -1,    14,   101,    -1,    17,    18,    -1,    -1,
+      21,    22,    23,    24,    25,    26,    27,    -1,    29,    30,
+      31,    -1,    33,    34,    -1,    -1,    -1,    38,    39,    40,
+      41,    42,    -1,    -1,    -1,    -1,    47,    -1,    -1,    50,
+      51,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    60,
+      61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,
+      -1,    -1,    -1,    -1,    -1,    76,    77,    78,    79,    80,
+      -1,    -1,    83,    84,     0,     1,    -1,    -1,    -1,    -1,
+      -1,    92,    93,    -1,    -1,    -1,    97,    98,    14,    -1,
+     101,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,
+      -1,    -1,    38,    39,    40,    41,    42,    -1,    -1,    -1,
+      -1,    47,    -1,    -1,    50,    51,    52,    -1,    -1,    55,
+      -1,    -1,    -1,    -1,    60,    61,    62,    -1,    -1,    -1,
+      -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,
+      76,    77,    78,    79,    80,    -1,    -1,    83,    84,     0,
+       1,    -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,
+      -1,    97,    98,    14,    -1,   101,    17,    18,    -1,    -1,
+      21,    22,    23,    24,    25,    26,    27,    -1,    29,    -1,
+      31,    -1,    33,    34,    -1,    -1,    -1,    38,    39,    40,
+      41,    42,    -1,    -1,    -1,    -1,    47,    -1,    -1,    50,
+      51,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,    60,
+      61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,
+      -1,    -1,    -1,    -1,    -1,    76,    77,    78,    79,    80,
+      -1,    -1,    83,    84,    -1,     1,    -1,    -1,    -1,    -1,
+      -1,    92,    93,    -1,    -1,    -1,    97,    98,    14,    -1,
+     101,    17,    18,    -1,    -1,    21,    22,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    31,    -1,    33,    34,   274,
+      36,    37,    38,    39,    40,    41,    42,    -1,    -1,    -1,
+     285,    47,    -1,    -1,    50,    51,    52,    -1,    -1,    55,
+      -1,    -1,    -1,    -1,    60,    61,    62,    -1,    -1,    -1,
+      -1,    -1,   307,    69,    -1,    -1,   311,    -1,   313,    -1,
+      76,    77,    78,    79,    80,    -1,    -1,    83,    84,    -1,
+      86,     1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,
+      -1,    97,    98,    -1,    14,   101,   341,    17,    18,    -1,
+     345,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
+     355,    31,   357,    33,    34,    -1,    -1,    -1,    38,    39,
+      40,    41,    42,    -1,    -1,    -1,   371,    47,    -1,    -1,
+      50,    51,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,
+      60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,
+      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,    79,
+      80,    -1,    -1,    83,    84,    -1,     1,    87,    -1,    -1,
+      -1,    -1,    92,    93,    -1,    -1,    -1,    97,    98,    14,
+      -1,   101,    17,    18,    -1,    -1,    21,    22,    23,    24,
+      25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
       -1,    -1,    -1,    38,    39,    40,    41,    42,    -1,    -1,
-      45,    -1,    47,    -1,    -1,    50,    51,    52,    -1,    -1,
-      55,    -1,    -1,    -1,    59,    60,    61,    62,    -1,    -1,
+      -1,    -1,    47,    -1,    -1,    50,    51,    52,    -1,    -1,
+      55,    -1,    -1,    -1,    -1,    60,    61,    62,    -1,    -1,
       -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,
       -1,    76,    77,    78,    79,    80,    -1,    -1,    83,    84,
-      85,     0,     1,    -1,    -1,    -1,    -1,    92,    93,    -1,
+      -1,     1,    -1,    88,    -1,    -1,    -1,    92,    93,    -1,
+      -1,    -1,    97,    98,    14,    -1,   101,    17,    18,    -1,
+      -1,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
+      -1,    31,    -1,    33,    34,    -1,    -1,    -1,    38,    39,
+      40,    41,    42,    -1,    -1,    -1,    -1,    47,    -1,    -1,
+      50,    51,    52,    -1,    -1,    55,    -1,    -1,    -1,    -1,
+      60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,
+      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,    79,
+      80,    -1,    -1,    83,    84,    -1,     1,    87,    -1,    -1,
+      -1,    -1,    92,    93,    -1,    -1,    -1,    97,    98,    14,
+      -1,   101,    17,    18,    -1,    -1,    21,    22,    23,    24,
+      25,    26,    27,    -1,    29,    -1,    31,    -1,    33,    34,
+      -1,    -1,    -1,    38,    39,    40,    41,    42,    -1,    -1,
+      -1,    -1,    47,    -1,    -1,    50,    51,    52,    -1,    -1,
+      55,    -1,    -1,    -1,    -1,    60,    61,    62,    -1,    -1,
+      -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,
+      -1,    76,    77,    78,    79,    80,    -1,    -1,    83,    84,
+      -1,    86,     1,    -1,    -1,    -1,    -1,    92,    93,    -1,
       -1,    -1,    97,    98,    -1,    14,   101,    -1,    17,    18,
       -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
-      29,    30,    31,    -1,    33,    34,    -1,    -1,    -1,    38,
-      39,    40,    41,    42,    -1,    -1,    -1,    -1,    47,    -1,
-      -1,    50,    51,    52,    -1,    -1,    55,    -1,    -1,    -1,
-      -1,    60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
-      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,
-      79,    80,    -1,    -1,    83,    84,     0,     1,    -1,    -1,
-      -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,    98,
-      14,    -1,   101,    17,    18,    -1,    -1,    21,    22,    23,
-      24,    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,
-      34,    -1,    -1,    -1,    38,    39,    40,    41,    42,    -1,
-      -1,    -1,    -1,    47,    -1,    -1,    50,    51,    52,    -1,
-      -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,    -1,
-      -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,
-      -1,    -1,    76,    77,    78,    79,    80,    -1,    -1,    83,
-      84,     0,     1,    -1,    -1,    -1,    -1,    -1,    92,    93,
-      -1,    -1,    -1,    97,    98,    14,    -1,   101,    17,    18,
-      -1,    -1,    21,    22,    23,    24,    25,    26,    27,    -1,
       29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,    38,
-      39,    40,    41,    42,    -1,    -1,    -1,    -1,    47,    -1,
-      -1,    50,    51,    52,    -1,    -1,    55,    -1,    -1,    -1,
+      39,    40,    41,    42,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    50,    -1,    52,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
       69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,
-      79,    80,    -1,    -1,    83,    84,    -1,     1,    -1,    -1,
-      -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,    98,
-      14,    -1,   101,    17,    18,    -1,    -1,    21,    22,    23,
-      24,    25,    26,    27,    -1,    29,    -1,    31,    -1,    33,
-      34,    -1,    36,    37,    38,    39,    40,    41,    42,    -1,
-      -1,    -1,    -1,    47,    -1,    -1,    50,    51,    52,    -1,
-      -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,    -1,
-      -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,
-      -1,    -1,    76,    77,    78,    79,    80,    -1,    -1,    83,
-      84,    -1,    86,     1,    -1,    -1,    -1,    -1,    92,    93,
-      -1,    -1,    -1,    97,    98,    -1,    14,   101,    -1,    17,
-      18,    -1,    -1,    21,    22,    23,    24,    25,    26,    27,
-      -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-      38,    39,    40,    41,    42,    -1,    -1,    -1,    -1,    47,
-      -1,    -1,    50,    51,    52,    -1,    -1,    55,    -1,    -1,
-      -1,    -1,    60,    61,    62,    -1,    -1,    -1,    -1,    -1,
+      79,    80,    -1,    -1,     1,    84,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    92,    93,    -1,    -1,    14,    -1,    98,
+      17,    18,   101,    -1,    21,    22,    23,    24,    25,    26,
+      27,    -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,
+      -1,    38,    39,    40,    41,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    50,    -1,    52,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    60,    61,    62,    -1,    -1,    -1,    -1,
+      -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
+      77,    78,    79,    80,    -1,    -1,     1,    84,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    14,
+      -1,    98,    17,    18,   101,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    -1,    29,    -1,    -1,    -1,    33,    34,
+      -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    46,    47,    48,    49,    50,    14,    52,    -1,    17,
+      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
+      -1,    29,    -1,    -1,    69,    33,    34,    -1,    -1,    -1,
+      -1,    76,    77,    78,    79,    80,    -1,    -1,    46,    -1,
+      48,    -1,    50,    -1,    52,    -1,    -1,    92,    93,    -1,
+      -1,    -1,    -1,    98,    -1,    -1,   101,    -1,    -1,    -1,
       -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
-      78,    79,    80,    -1,    -1,    83,    84,    -1,     1,    87,
-      -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,
-      98,    14,    -1,   101,    17,    18,    -1,    -1,    21,    22,
-      23,    24,    25,    26,    27,    -1,    29,    -1,    31,    -1,
-      33,    34,    -1,    -1,    -1,    38,    39,    40,    41,    42,
-      -1,    -1,    -1,    -1,    47,    -1,    -1,    50,    51,    52,
-      -1,    -1,    55,    -1,    -1,    -1,    -1,    60,    61,    62,
-      -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,    -1,
-      -1,    -1,    -1,    76,    77,    78,    79,    80,    -1,    -1,
-      83,    84,    -1,     1,    -1,    88,    -1,    -1,    -1,    92,
-      93,    -1,    -1,    -1,    97,    98,    14,    -1,   101,    17,
-      18,    -1,    -1,    21,    22,    23,    24,    25,    26,    27,
-      -1,    29,    -1,    31,    -1,    33,    34,    -1,    -1,    -1,
-      38,    39,    40,    41,    42,    -1,    -1,    -1,    -1,    47,
-      -1,    -1,    50,    51,    52,    -1,    -1,    55,    -1,    -1,
-      -1,    -1,    60,    61,    62,    -1,    -1,    -1,    -1,    -1,
-      -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,
-      78,    79,    80,    -1,    -1,    83,    84,    -1,    86,     1,
-      -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    -1,    97,
-      98,    -1,    14,   101,    -1,    17,    18,    -1,    -1,    21,
-      22,    23,    24,    25,    26,    27,    -1,    29,    -1,    31,
-      -1,    33,    34,    -1,    -1,    -1,    38,    39,    40,    41,
-      42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
-      52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    61,
-      62,    -1,    -1,    -1,    -1,    -1,    -1,    69,    -1,    -1,
-      -1,    -1,    -1,    -1,    76,    77,    78,    79,    80,    -1,
-      -1,     1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      92,    93,    -1,    -1,    14,    -1,    98,    17,    18,   101,
-      -1,    21,    22,    23,    24,    25,    26,    27,    -1,    29,
-      -1,    31,    -1,    33,    34,    -1,    -1,    -1,    38,    39,
-      40,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      50,    -1,    52,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    69,
-      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,    79,
-      80,    -1,    -1,     1,    84,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    92,    93,    -1,    -1,    14,    -1,    98,    17,
-      18,   101,    -1,    21,    -1,    23,    24,    25,    26,    27,
-      -1,    29,    -1,    -1,    -1,    33,    34,    -1,    -1,    -1,
-       1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46,    47,
-      48,    49,    50,    14,    52,    -1,    17,    18,    -1,    -1,
-      21,    -1,    23,    24,    25,    26,    27,    -1,    29,    -1,
-      -1,    69,    33,    34,    -1,    -1,    -1,    -1,    76,    77,
-      78,    79,    80,    -1,    -1,    46,    -1,    48,    -1,    50,
-      -1,    52,    -1,    -1,    92,    93,    -1,    -1,    -1,    -1,
-      98,    -1,    -1,   101,    -1,    -1,    -1,    -1,    69,    -1,
-      -1,    -1,    -1,    -1,    -1,    76,    77,    78,    79,    80,
+      78,    79,    80,    -1,    -1,     1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    92,    93,    -1,    -1,    14,    -1,
+      98,    17,    18,   101,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    -1,    29,    -1,    -1,    -1,    33,    34,    -1,
       -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    92,    93,    -1,    -1,    14,    -1,    98,    17,    18,
-     101,    -1,    21,    -1,    23,    24,    25,    26,    27,    -1,
-      29,    -1,    -1,    -1,    33,    34,    -1,    -1,    -1,     1,
+      -1,    -1,    -1,    -1,    50,    14,    52,    -1,    17,    18,
+      -1,    20,    21,    -1,    23,    24,    25,    26,    27,    -1,
+      29,    -1,    -1,    69,    33,    34,    -1,    -1,    -1,    -1,
+      76,    77,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,
+      -1,    50,    -1,    52,    -1,    -1,    92,    93,    -1,    -1,
+      -1,    -1,    98,    99,   100,   101,    -1,    -1,    -1,    -1,
+      69,    -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,
+      79,    80,    -1,    -1,     1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    92,    93,    -1,    -1,    14,    -1,    98,
+      17,    18,   101,    -1,    21,    -1,    23,    24,    25,    26,
+      27,    -1,    29,    -1,    -1,    -1,    33,    34,    -1,    44,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    50,    14,    52,    -1,    17,    18,    -1,    20,    21,
-      -1,    23,    24,    25,    26,    27,    -1,    29,    -1,    -1,
-      69,    33,    34,    -1,    -1,    -1,    -1,    76,    77,    78,
-      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
-      52,    -1,    -1,    92,    93,    -1,    -1,    -1,    -1,    98,
-      99,   100,   101,    -1,    -1,    -1,    -1,    69,    -1,    -1,
-      -1,    -1,    -1,    -1,    76,    77,    78,    79,    80,    -1,
-      -1,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      92,    93,    -1,    -1,    14,    -1,    98,    17,    18,   101,
-      -1,    21,    -1,    23,    24,    25,    26,    27,    -1,    29,
-      -1,    -1,    -1,    33,    34,    -1,    -1,    -1,    46,    -1,
-      48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      50,    -1,    52,    -1,    -1,    63,    64,    65,    66,    67,
-      68,    -1,    70,    -1,    -1,    73,    74,    75,    -1,    69,
-      -1,    -1,    -1,    -1,    -1,    -1,    76,    77,    78,    79,
-      80,    89,    90,    91,    92,    93,    94,    95,    48,    -1,
-      -1,    -1,    92,    93,    54,    -1,    -1,    -1,    98,    -1,
-      -1,   101,    -1,    63,    64,    65,    66,    67,    68,    -1,
+      -1,    -1,    -1,    50,    -1,    52,    -1,    -1,    63,    64,
+      65,    66,    67,    68,    -1,    70,    71,    72,    73,    74,
+      75,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,    76,
+      77,    78,    79,    80,    89,    90,    91,    92,    93,    94,
+      95,    46,    -1,    48,    -1,    92,    93,    -1,    -1,    -1,
+      -1,    98,    -1,    -1,   101,    -1,    -1,    -1,    63,    64,
+      65,    66,    67,    68,    -1,    70,    -1,    -1,    73,    74,
+      75,    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,
+      -1,    -1,    54,    -1,    89,    90,    91,    92,    93,    94,
+      95,    63,    64,    65,    66,    67,    68,    -1,    70,    -1,
+      -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    48,
+      -1,    -1,    -1,    -1,    -1,    54,    -1,    89,    90,    91,
+      92,    93,    94,    95,    63,    64,    65,    66,    67,    68,
+      -1,    70,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,
+      -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,    54,    -1,
+      89,    90,    91,    92,    93,    94,    95,    63,    64,    65,
+      66,    67,    68,    -1,    70,    -1,    -1,    73,    74,    75,
+      -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,    -1,
+      -1,    54,    -1,    89,    90,    91,    92,    93,    94,    95,
+      63,    64,    65,    66,    67,    68,    -1,    70,    -1,    -1,
+      73,    74,    75,    -1,    -1,    -1,    -1,    -1,    48,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    92,
+      93,    94,    95,    63,    64,    65,    66,    67,    68,    -1,
       70,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
-      -1,    48,    -1,    -1,    -1,    -1,    -1,    54,    -1,    89,
+      -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
       90,    91,    92,    93,    94,    95,    63,    64,    65,    66,
       67,    68,    -1,    70,    -1,    -1,    73,    74,    75,    -1,
       -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,
-      54,    -1,    89,    90,    91,    92,    93,    94,    95,    63,
+      -1,    -1,    89,    90,    91,    92,    93,    94,    95,    63,
       64,    65,    66,    67,    68,    -1,    70,    -1,    -1,    73,
       74,    75,    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,
-      -1,    -1,    -1,    54,    -1,    89,    90,    91,    92,    93,
+      -1,    -1,    -1,    -1,    -1,    89,    90,    91,    92,    93,
       94,    95,    63,    64,    65,    66,    67,    68,    -1,    70,
       -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,
-      48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    90,
+      -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    89,    90,
       91,    92,    93,    94,    95,    63,    64,    65,    66,    67,
-      68,    -1,    70,    -1,    -1,    73,    74,    75,    -1,    -1,
-      -1,    -1,    -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    89,    90,    91,    92,    93,    94,    95,    63,    64,
+      68,    56,    70,    -1,    -1,    73,    74,    75,    63,    64,
       65,    66,    67,    68,    -1,    70,    -1,    -1,    73,    74,
-      75,    -1,    -1,    -1,    -1,    -1,    48,    -1,    -1,    -1,
+      75,    89,    90,    91,    92,    93,    94,    95,    -1,    97,
       -1,    -1,    -1,    -1,    89,    90,    91,    92,    93,    94,
       95,    63,    64,    65,    66,    67,    68,    -1,    70,    -1,
-      -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    48,
+      -1,    73,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,
-      92,    93,    94,    95,    63,    64,    65,    66,    67,    68,
-      -1,    70,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
-      89,    90,    91,    92,    93,    94,    95,    63,    64,    65,
-      66,    67,    68,    56,    70,    -1,    -1,    73,    74,    75,
-      63,    64,    65,    66,    67,    68,    -1,    70,    -1,    -1,
-      73,    74,    75,    89,    90,    91,    92,    93,    94,    95,
-      -1,    97,    -1,    -1,    -1,    -1,    89,    90,    91,    92,
-      93,    94,    95,    63,    64,    65,    66,    67,    68,    -1,
-      70,    -1,    -1,    73,    74,    75,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    89,
-      90,    91,    92,    93,    94,    95,    -1,    -1,    -1,    99,
-      63,    64,    65,    66,    67,    68,    -1,    70,    -1,    -1,
-      73,    74,    75,    -1,    -1,    -1,    -1,    -1,    81,    82,
-      -1,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    92,
-      93,    94,    95,    63,    64,    65,    66,    67,    68,    -1,
-      70,    -1,    -1,    73,    74,    75,    63,    64,    65,    66,
-      -1,    -1,    -1,    70,    -1,    -1,    73,    74,    75,    89,
-      90,    91,    92,    93,    94,    95,    -1,    -1,    -1,    -1,
-      -1,    -1,    89,    90,    91,    92,    93,    94,    95
+      92,    93,    94,    95,    -1,    -1,    -1,    99,    63,    64,
+      65,    66,    67,    68,    -1,    70,    -1,    -1,    73,    74,
+      75,    -1,    -1,    -1,    -1,    -1,    81,    82,    -1,    -1,
+      -1,    -1,    -1,    -1,    89,    90,    91,    92,    93,    94,
+      95,    63,    64,    65,    66,    67,    68,    -1,    70,    -1,
+      -1,    73,    74,    75,    63,    64,    65,    66,    -1,    -1,
+      -1,    70,    -1,    -1,    73,    74,    75,    89,    90,    91,
+      92,    93,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,
+      89,    90,    91,    92,    93,    94,    95
 };
 
   /* YYSTOSSTATE-NUM -- The (internal number of the) accessing
@@ -1548,7 +1556,7 @@ static const yytype_uint8 yystos[] =
       54,    65,   125,   125,    54,    65,    54,    53,    56,   137,
       26,   135,    48,    54,    48,    54,    48,    54,    48,    54,
       81,    82,    54,    97,    26,   134,    26,    99,   103,   103,
-     102,   100,   100,   105,   122,   121,   121,   118,   122,   126,
+     102,   100,   100,   105,   118,   121,   121,   118,   122,   126,
      126,   126,   126,   126,   126,   126,   126,   126,   126,   126,
      126,   126,   126,   126,   126,   126,   126,    26,   146,    99,
      126,    99,    99,   126,   146,   100,   126,   142,   125,    26,
@@ -1557,7 +1565,7 @@ static const yytype_uint8 yystos[] =
      126,   126,   126,   111,   111,   100,   125,   125,   126,    27,
       29,   156,   123,   126,   126,    53,   118,    97,   100,    97,
       26,   121,    44,   126,   126,    26,    26,    48,    48,    48,
-      48,   108,   123,    26,    97,   110,   122,   122,   122,   123,
+      48,   108,   123,    26,    97,   110,   119,   122,   122,   123,
       53,   148,    26,   148,   146,   126,   125,   126,   126,   126,
      126,   122,   122,    87,   123,    35,    54,   119,   108,   123,
      123,    97,    54,    88,   122,    54,   126,   113,   119,   121,
@@ -1884,79 +1892,79 @@ yydestruct (const char *yymsg,
     case 22: /* BLTIN  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1888 "engines/director/lingo/lingo-gr.cpp"
+#line 1896 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 23: /* FBLTIN  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1894 "engines/director/lingo/lingo-gr.cpp"
+#line 1902 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 24: /* RBLTIN  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1900 "engines/director/lingo/lingo-gr.cpp"
+#line 1908 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 25: /* THEFBLTIN  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1906 "engines/director/lingo/lingo-gr.cpp"
+#line 1914 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 26: /* ID  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1912 "engines/director/lingo/lingo-gr.cpp"
+#line 1920 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 27: /* STRING  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1918 "engines/director/lingo/lingo-gr.cpp"
+#line 1926 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 28: /* HANDLER  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1924 "engines/director/lingo/lingo-gr.cpp"
+#line 1932 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 29: /* SYMBOL  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1930 "engines/director/lingo/lingo-gr.cpp"
+#line 1938 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 30: /* ENDCLAUSE  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1936 "engines/director/lingo/lingo-gr.cpp"
+#line 1944 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 31: /* tPLAYACCEL  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1942 "engines/director/lingo/lingo-gr.cpp"
+#line 1950 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 32: /* tMETHOD  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1948 "engines/director/lingo/lingo-gr.cpp"
+#line 1956 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 33: /* THEOBJECTFIELD  */
 #line 161 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).objectfield).os; }
-#line 1954 "engines/director/lingo/lingo-gr.cpp"
+#line 1962 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 144: /* on  */
 #line 160 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1960 "engines/director/lingo/lingo-gr.cpp"
+#line 1968 "engines/director/lingo/lingo-gr.cpp"
         break;
 
       default:
@@ -2242,7 +2250,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2246 "engines/director/lingo/lingo-gr.cpp"
+#line 2254 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 8:
@@ -2250,7 +2258,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2254 "engines/director/lingo/lingo-gr.cpp"
+#line 2262 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 9:
@@ -2266,19 +2274,19 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-4].e)[1]);
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2270 "engines/director/lingo/lingo-gr.cpp"
+#line 2278 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10:
 #line 193 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->code1(LC::c_after); }
-#line 2276 "engines/director/lingo/lingo-gr.cpp"
+#line 2284 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11:
 #line 194 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->code1(LC::c_before); }
-#line 2282 "engines/director/lingo/lingo-gr.cpp"
+#line 2290 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12:
@@ -2289,7 +2297,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2293 "engines/director/lingo/lingo-gr.cpp"
+#line 2301 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13:
@@ -2301,7 +2309,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2305 "engines/director/lingo/lingo-gr.cpp"
+#line 2313 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14:
@@ -2312,7 +2320,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2316 "engines/director/lingo/lingo-gr.cpp"
+#line 2324 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 15:
@@ -2324,7 +2332,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2328 "engines/director/lingo/lingo-gr.cpp"
+#line 2336 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16:
@@ -2335,7 +2343,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2339 "engines/director/lingo/lingo-gr.cpp"
+#line 2347 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17:
@@ -2346,7 +2354,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2350 "engines/director/lingo/lingo-gr.cpp"
+#line 2358 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18:
@@ -2362,7 +2370,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-6].e)[0]);
 		g_lingo->codeInt((yyvsp[-6].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2366 "engines/director/lingo/lingo-gr.cpp"
+#line 2374 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 19:
@@ -2373,18 +2381,18 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].objectfield).oe);
 		delete (yyvsp[-2].objectfield).os;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2377 "engines/director/lingo/lingo-gr.cpp"
+#line 2385 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 29:
 #line 267 "engines/director/lingo/lingo-gr.y"
                                                                         {
-		inst body = 0, end = 0;
-		WRITE_UINT32(&body, (yyvsp[-3].code) - (yyvsp[-5].code));
-		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-5].code));
-		(*g_lingo->_currentScript)[(yyvsp[-5].code) + 1] = body;	/* body of loop */
-		(*g_lingo->_currentScript)[(yyvsp[-5].code) + 2] = end; }
-#line 2388 "engines/director/lingo/lingo-gr.cpp"
+		inst start = 0, end = 0;
+		WRITE_UINT32(&start, (yyvsp[-5].code) - (yyvsp[-1].narg) + 2);
+		WRITE_UINT32(&end, (yyvsp[-1].narg) - (yyvsp[-3].narg) + 2);
+		(*g_lingo->_currentScript)[(yyvsp[-3].narg)] = end;		/* end, if cond fails */
+		(*g_lingo->_currentScript)[(yyvsp[-1].narg)] = start; }
+#line 2396 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 30:
@@ -2401,7 +2409,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-10].code) + 3] = body;		/* body of loop */
 		(*g_lingo->_currentScript)[(yyvsp[-10].code) + 4] = inc;		/* increment */
 		(*g_lingo->_currentScript)[(yyvsp[-10].code) + 5] = end; }
-#line 2405 "engines/director/lingo/lingo-gr.cpp"
+#line 2413 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 31:
@@ -2418,7 +2426,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-11].code) + 3] = body;		/* body of loop */
 		(*g_lingo->_currentScript)[(yyvsp[-11].code) + 4] = inc;		/* increment */
 		(*g_lingo->_currentScript)[(yyvsp[-11].code) + 5] = end; }
-#line 2422 "engines/director/lingo/lingo-gr.cpp"
+#line 2430 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 32:
@@ -2433,14 +2441,14 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-7].code) + 3] = body;		/* body of loop */
 		(*g_lingo->_currentScript)[(yyvsp[-7].code) + 4] = 0;		/* increment */
 		(*g_lingo->_currentScript)[(yyvsp[-7].code) + 5] = end; }
-#line 2437 "engines/director/lingo/lingo-gr.cpp"
+#line 2445 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 33:
 #line 318 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_nextRepeat); }
-#line 2444 "engines/director/lingo/lingo-gr.cpp"
+#line 2452 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 34:
@@ -2450,7 +2458,7 @@ yyreduce:
 		WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code));
 		g_lingo->code1(STOP);
 		(*g_lingo->_currentScript)[(yyvsp[-2].code) + 1] = end; }
-#line 2454 "engines/director/lingo/lingo-gr.cpp"
+#line 2462 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 35:
@@ -2459,7 +2467,7 @@ yyreduce:
 		inst end;
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-3].code));
 		(*g_lingo->_currentScript)[(yyvsp[-3].code) + 1] = end; }
-#line 2463 "engines/director/lingo/lingo-gr.cpp"
+#line 2471 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 36:
@@ -2468,7 +2476,7 @@ yyreduce:
 		inst end;
 		WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code));
 		(*g_lingo->_currentScript)[(yyvsp[-2].code) + 1] = end; }
-#line 2472 "engines/director/lingo/lingo-gr.cpp"
+#line 2480 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 37:
@@ -2476,7 +2484,7 @@ yyreduce:
                                                         {
 		(yyval.code) = g_lingo->code1(LC::c_tellcode);
 		g_lingo->code1(STOP); }
-#line 2480 "engines/director/lingo/lingo-gr.cpp"
+#line 2488 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 38:
@@ -2488,7 +2496,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-6].narg)] = else1;		/* elsepart */
 		(*g_lingo->_currentScript)[(yyvsp[-3].narg)] = end3;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-3].narg), (yyvsp[-1].code)); }
-#line 2492 "engines/director/lingo/lingo-gr.cpp"
+#line 2500 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 39:
@@ -2500,7 +2508,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-9].narg)] = else1;		/* elsepart */
 		(*g_lingo->_currentScript)[(yyvsp[-6].narg)] = end;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-6].narg), (yyvsp[-1].code)); }
-#line 2504 "engines/director/lingo/lingo-gr.cpp"
+#line 2512 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 42:
@@ -2510,7 +2518,7 @@ yyreduce:
 		WRITE_UINT32(&else1, (yyvsp[0].narg) + 1 - (yyvsp[-3].narg) + 1);
 		(*g_lingo->_currentScript)[(yyvsp[-3].narg)] = else1;	/* end, if cond fails */
 		g_lingo->codeLabel((yyvsp[0].narg)); }
-#line 2514 "engines/director/lingo/lingo-gr.cpp"
+#line 2522 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 43:
@@ -2521,7 +2529,7 @@ yyreduce:
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-5].narg) + 1);
 		(*g_lingo->_currentScript)[(yyvsp[-8].narg)] = else1;		/* elsepart */
 		(*g_lingo->_currentScript)[(yyvsp[-5].narg)] = end;	}
-#line 2525 "engines/director/lingo/lingo-gr.cpp"
+#line 2533 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 44:
@@ -2531,13 +2539,13 @@ yyreduce:
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-4].narg) + 1);
 
 		(*g_lingo->_currentScript)[(yyvsp[-4].narg)] = end; }
-#line 2535 "engines/director/lingo/lingo-gr.cpp"
+#line 2543 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 45:
 #line 374 "engines/director/lingo/lingo-gr.y"
-                                        { (yyval.code) = g_lingo->code3(LC::c_repeatwhilecode, STOP, STOP); }
-#line 2541 "engines/director/lingo/lingo-gr.cpp"
+                                        { (yyval.code) = g_lingo->_currentScript->size() - 1; }
+#line 2549 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 46:
@@ -2547,7 +2555,7 @@ yyreduce:
 		g_lingo->code3(STOP, STOP, STOP);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2551 "engines/director/lingo/lingo-gr.cpp"
+#line 2559 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 47:
@@ -2555,7 +2563,7 @@ yyreduce:
                                 {
 		g_lingo->code2(LC::c_jumpifz, STOP);
 		(yyval.narg) = g_lingo->_currentScript->size() - 1; }
-#line 2559 "engines/director/lingo/lingo-gr.cpp"
+#line 2567 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 48:
@@ -2563,32 +2571,32 @@ yyreduce:
                                 {
 		g_lingo->code2(LC::c_jump, STOP);
 		(yyval.narg) = g_lingo->_currentScript->size() - 1; }
-#line 2567 "engines/director/lingo/lingo-gr.cpp"
+#line 2575 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 49:
 #line 390 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeLabel(0); }
-#line 2574 "engines/director/lingo/lingo-gr.cpp"
+#line 2582 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 50:
 #line 393 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2580 "engines/director/lingo/lingo-gr.cpp"
+#line 2588 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 51:
 #line 395 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2586 "engines/director/lingo/lingo-gr.cpp"
+#line 2594 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 52:
 #line 397 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2592 "engines/director/lingo/lingo-gr.cpp"
+#line 2600 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 55:
@@ -2598,7 +2606,7 @@ yyreduce:
 		g_lingo->code1(STOP);
 		g_lingo->codeString((yyvsp[-1].s)->c_str());
 		delete (yyvsp[-1].s); }
-#line 2602 "engines/director/lingo/lingo-gr.cpp"
+#line 2610 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 56:
@@ -2606,7 +2614,7 @@ yyreduce:
                         {
 		(yyval.code) = g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt((yyvsp[0].i)); }
-#line 2610 "engines/director/lingo/lingo-gr.cpp"
+#line 2618 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 57:
@@ -2614,7 +2622,7 @@ yyreduce:
                         {
 		(yyval.code) = g_lingo->code1(LC::c_floatpush);
 		g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2618 "engines/director/lingo/lingo-gr.cpp"
+#line 2626 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 58:
@@ -2623,7 +2631,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2627 "engines/director/lingo/lingo-gr.cpp"
+#line 2635 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 59:
@@ -2632,7 +2640,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2636 "engines/director/lingo/lingo-gr.cpp"
+#line 2644 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 60:
@@ -2641,7 +2649,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_eval);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2645 "engines/director/lingo/lingo-gr.cpp"
+#line 2653 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 61:
@@ -2654,13 +2662,13 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[0].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[0].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2658 "engines/director/lingo/lingo-gr.cpp"
+#line 2666 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 62:
 #line 433 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = (yyvsp[-1].code); }
-#line 2664 "engines/director/lingo/lingo-gr.cpp"
+#line 2672 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 64:
@@ -2675,13 +2683,13 @@ yyreduce:
 			yyerrok;
 		}
 	}
-#line 2679 "engines/director/lingo/lingo-gr.cpp"
+#line 2687 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 65:
 #line 446 "engines/director/lingo/lingo-gr.y"
                  { (yyval.code) = (yyvsp[0].code); }
-#line 2685 "engines/director/lingo/lingo-gr.cpp"
+#line 2693 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 67:
@@ -2689,7 +2697,7 @@ yyreduce:
                                  {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2693 "engines/director/lingo/lingo-gr.cpp"
+#line 2701 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 68:
@@ -2697,7 +2705,7 @@ yyreduce:
                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2701 "engines/director/lingo/lingo-gr.cpp"
+#line 2709 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 69:
@@ -2705,7 +2713,7 @@ yyreduce:
                                 {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2709 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 70:
@@ -2713,7 +2721,7 @@ yyreduce:
                                         {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
 		delete (yyvsp[-2].s); }
-#line 2717 "engines/director/lingo/lingo-gr.cpp"
+#line 2725 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 71:
@@ -2724,7 +2732,7 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2728 "engines/director/lingo/lingo-gr.cpp"
+#line 2736 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 72:
@@ -2734,7 +2742,7 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].objectfield).os->c_str());
 		g_lingo->codeInt((yyvsp[0].objectfield).oe);
 		delete (yyvsp[0].objectfield).os; }
-#line 2738 "engines/director/lingo/lingo-gr.cpp"
+#line 2746 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 73:
@@ -2745,187 +2753,187 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].objectref).field->c_str());
 		delete (yyvsp[0].objectref).obj;
 		delete (yyvsp[0].objectref).field; }
-#line 2749 "engines/director/lingo/lingo-gr.cpp"
+#line 2757 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 75:
 #line 478 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_add); }
-#line 2755 "engines/director/lingo/lingo-gr.cpp"
+#line 2763 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 76:
 #line 479 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_sub); }
-#line 2761 "engines/director/lingo/lingo-gr.cpp"
+#line 2769 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 77:
 #line 480 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_mul); }
-#line 2767 "engines/director/lingo/lingo-gr.cpp"
+#line 2775 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 78:
 #line 481 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_div); }
-#line 2773 "engines/director/lingo/lingo-gr.cpp"
+#line 2781 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 79:
 #line 482 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_mod); }
-#line 2779 "engines/director/lingo/lingo-gr.cpp"
+#line 2787 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 80:
 #line 483 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gt); }
-#line 2785 "engines/director/lingo/lingo-gr.cpp"
+#line 2793 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 81:
 #line 484 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_lt); }
-#line 2791 "engines/director/lingo/lingo-gr.cpp"
+#line 2799 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 82:
 #line 485 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_eq); }
-#line 2797 "engines/director/lingo/lingo-gr.cpp"
+#line 2805 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 83:
 #line 486 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_neq); }
-#line 2803 "engines/director/lingo/lingo-gr.cpp"
+#line 2811 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 84:
 #line 487 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_ge); }
-#line 2809 "engines/director/lingo/lingo-gr.cpp"
+#line 2817 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 85:
 #line 488 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_le); }
-#line 2815 "engines/director/lingo/lingo-gr.cpp"
+#line 2823 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 86:
 #line 489 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_and); }
-#line 2821 "engines/director/lingo/lingo-gr.cpp"
+#line 2829 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 87:
 #line 490 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_or); }
-#line 2827 "engines/director/lingo/lingo-gr.cpp"
+#line 2835 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 88:
 #line 491 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_not); }
-#line 2833 "engines/director/lingo/lingo-gr.cpp"
+#line 2841 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 89:
 #line 492 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_ampersand); }
-#line 2839 "engines/director/lingo/lingo-gr.cpp"
+#line 2847 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 90:
 #line 493 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_concat); }
-#line 2845 "engines/director/lingo/lingo-gr.cpp"
+#line 2853 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 91:
 #line 494 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_contains); }
-#line 2851 "engines/director/lingo/lingo-gr.cpp"
+#line 2859 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 92:
 #line 495 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_starts); }
-#line 2857 "engines/director/lingo/lingo-gr.cpp"
+#line 2865 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 93:
 #line 496 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[0].code); }
-#line 2863 "engines/director/lingo/lingo-gr.cpp"
+#line 2871 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 94:
 #line 497 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 2869 "engines/director/lingo/lingo-gr.cpp"
+#line 2877 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 95:
 #line 498 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_intersects); }
-#line 2875 "engines/director/lingo/lingo-gr.cpp"
+#line 2883 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 96:
 #line 499 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_within); }
-#line 2881 "engines/director/lingo/lingo-gr.cpp"
+#line 2889 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 97:
 #line 501 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_charOf); }
-#line 2887 "engines/director/lingo/lingo-gr.cpp"
+#line 2895 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 98:
 #line 502 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_charToOf); }
-#line 2893 "engines/director/lingo/lingo-gr.cpp"
+#line 2901 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 99:
 #line 503 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_itemOf); }
-#line 2899 "engines/director/lingo/lingo-gr.cpp"
+#line 2907 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 100:
 #line 504 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_itemToOf); }
-#line 2905 "engines/director/lingo/lingo-gr.cpp"
+#line 2913 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 101:
 #line 505 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_lineOf); }
-#line 2911 "engines/director/lingo/lingo-gr.cpp"
+#line 2919 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 102:
 #line 506 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_lineToOf); }
-#line 2917 "engines/director/lingo/lingo-gr.cpp"
+#line 2925 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 103:
 #line 507 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_wordOf); }
-#line 2923 "engines/director/lingo/lingo-gr.cpp"
+#line 2931 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 104:
 #line 508 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_wordToOf); }
-#line 2929 "engines/director/lingo/lingo-gr.cpp"
+#line 2937 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 105:
@@ -2933,61 +2941,61 @@ yyreduce:
                                         {
 		g_lingo->codeFunc((yyvsp[-1].s), 1);
 		delete (yyvsp[-1].s); }
-#line 2937 "engines/director/lingo/lingo-gr.cpp"
+#line 2945 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 107:
 #line 515 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_printtop); }
-#line 2943 "engines/director/lingo/lingo-gr.cpp"
+#line 2951 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 110:
 #line 518 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_exitRepeat); }
-#line 2949 "engines/director/lingo/lingo-gr.cpp"
+#line 2957 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 111:
 #line 519 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_procret); }
-#line 2955 "engines/director/lingo/lingo-gr.cpp"
+#line 2963 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 112:
 #line 520 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 2961 "engines/director/lingo/lingo-gr.cpp"
+#line 2969 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 113:
 #line 520 "engines/director/lingo/lingo-gr.y"
                                                                                  { inNone(); }
-#line 2967 "engines/director/lingo/lingo-gr.cpp"
+#line 2975 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 114:
 #line 521 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 2973 "engines/director/lingo/lingo-gr.cpp"
+#line 2981 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 115:
 #line 521 "engines/director/lingo/lingo-gr.y"
                                                                                    { inNone(); }
-#line 2979 "engines/director/lingo/lingo-gr.cpp"
+#line 2987 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 116:
 #line 522 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 2985 "engines/director/lingo/lingo-gr.cpp"
+#line 2993 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 117:
 #line 522 "engines/director/lingo/lingo-gr.y"
                                                                                    { inNone(); }
-#line 2991 "engines/director/lingo/lingo-gr.cpp"
+#line 2999 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 118:
@@ -2995,7 +3003,7 @@ yyreduce:
                                         {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2999 "engines/director/lingo/lingo-gr.cpp"
+#line 3007 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 119:
@@ -3003,19 +3011,19 @@ yyreduce:
                                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 3007 "engines/director/lingo/lingo-gr.cpp"
+#line 3015 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 120:
 #line 529 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_open); }
-#line 3013 "engines/director/lingo/lingo-gr.cpp"
+#line 3021 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 121:
 #line 530 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code2(LC::c_voidpush, LC::c_open); }
-#line 3019 "engines/director/lingo/lingo-gr.cpp"
+#line 3027 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 122:
@@ -3025,7 +3033,7 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mArg((yyvsp[0].s));
 		delete (yyvsp[0].s); }
-#line 3029 "engines/director/lingo/lingo-gr.cpp"
+#line 3037 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 123:
@@ -3035,7 +3043,7 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mArg((yyvsp[0].s));
 		delete (yyvsp[0].s); }
-#line 3039 "engines/director/lingo/lingo-gr.cpp"
+#line 3047 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 124:
@@ -3045,7 +3053,7 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mArg((yyvsp[0].s));
 		delete (yyvsp[0].s); }
-#line 3049 "engines/director/lingo/lingo-gr.cpp"
+#line 3057 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 125:
@@ -3055,7 +3063,7 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mArg((yyvsp[0].s));
 		delete (yyvsp[0].s); }
-#line 3059 "engines/director/lingo/lingo-gr.cpp"
+#line 3067 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 126:
@@ -3065,7 +3073,7 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mArg((yyvsp[0].s));
 		delete (yyvsp[0].s); }
-#line 3069 "engines/director/lingo/lingo-gr.cpp"
+#line 3077 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 127:
@@ -3075,25 +3083,25 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mArg((yyvsp[0].s));
 		delete (yyvsp[0].s); }
-#line 3079 "engines/director/lingo/lingo-gr.cpp"
+#line 3087 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 128:
 #line 572 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoloop); }
-#line 3085 "engines/director/lingo/lingo-gr.cpp"
+#line 3093 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 129:
 #line 573 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_gotonext); }
-#line 3091 "engines/director/lingo/lingo-gr.cpp"
+#line 3099 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 130:
 #line 574 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoprevious); }
-#line 3097 "engines/director/lingo/lingo-gr.cpp"
+#line 3105 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 131:
@@ -3102,7 +3110,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_goto); }
-#line 3106 "engines/director/lingo/lingo-gr.cpp"
+#line 3114 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 132:
@@ -3111,7 +3119,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_goto); }
-#line 3115 "engines/director/lingo/lingo-gr.cpp"
+#line 3123 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 133:
@@ -3120,7 +3128,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_goto); }
-#line 3124 "engines/director/lingo/lingo-gr.cpp"
+#line 3132 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 136:
@@ -3129,7 +3137,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_play); }
-#line 3133 "engines/director/lingo/lingo-gr.cpp"
+#line 3141 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 137:
@@ -3138,7 +3146,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_play); }
-#line 3142 "engines/director/lingo/lingo-gr.cpp"
+#line 3150 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 138:
@@ -3147,13 +3155,13 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_play); }
-#line 3151 "engines/director/lingo/lingo-gr.cpp"
+#line 3159 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 139:
 #line 603 "engines/director/lingo/lingo-gr.y"
                      { g_lingo->codeSetImmediate(true); }
-#line 3157 "engines/director/lingo/lingo-gr.cpp"
+#line 3165 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 140:
@@ -3162,19 +3170,19 @@ yyreduce:
 		g_lingo->codeSetImmediate(false);
 		g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg));
 		delete (yyvsp[-2].s); }
-#line 3166 "engines/director/lingo/lingo-gr.cpp"
+#line 3174 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 141:
 #line 633 "engines/director/lingo/lingo-gr.y"
              { startDef(); }
-#line 3172 "engines/director/lingo/lingo-gr.cpp"
+#line 3180 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 142:
 #line 633 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->_currentFactory.clear(); }
-#line 3178 "engines/director/lingo/lingo-gr.cpp"
+#line 3186 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 143:
@@ -3184,19 +3192,19 @@ yyreduce:
 		g_lingo->define(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-6].s); }
-#line 3188 "engines/director/lingo/lingo-gr.cpp"
+#line 3196 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 144:
 #line 639 "engines/director/lingo/lingo-gr.y"
                         { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3194 "engines/director/lingo/lingo-gr.cpp"
+#line 3202 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 145:
 #line 640 "engines/director/lingo/lingo-gr.y"
                   { startDef(); }
-#line 3200 "engines/director/lingo/lingo-gr.cpp"
+#line 3208 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 146:
@@ -3206,7 +3214,7 @@ yyreduce:
 		g_lingo->define(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1, &g_lingo->_currentFactory);
 		endDef();
 		delete (yyvsp[-6].s); }
-#line 3210 "engines/director/lingo/lingo-gr.cpp"
+#line 3218 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 147:
@@ -3219,7 +3227,7 @@ yyreduce:
 		checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
 		delete (yyvsp[-7].s);
 		delete (yyvsp[-1].s); }
-#line 3223 "engines/director/lingo/lingo-gr.cpp"
+#line 3231 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 148:
@@ -3229,56 +3237,56 @@ yyreduce:
 		g_lingo->define(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3233 "engines/director/lingo/lingo-gr.cpp"
+#line 3241 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 149:
 #line 660 "engines/director/lingo/lingo-gr.y"
          { startDef(); }
-#line 3239 "engines/director/lingo/lingo-gr.cpp"
+#line 3247 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 150:
 #line 660 "engines/director/lingo/lingo-gr.y"
                                 {
 		(yyval.s) = (yyvsp[0].s); g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 3254 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 151:
 #line 663 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 3260 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 152:
 #line 664 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->codeArg((yyvsp[0].s)); mArg((yyvsp[0].s)); (yyval.narg) = 1; delete (yyvsp[0].s); }
-#line 3258 "engines/director/lingo/lingo-gr.cpp"
+#line 3266 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 153:
 #line 665 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->codeArg((yyvsp[0].s)); mArg((yyvsp[0].s)); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); }
-#line 3264 "engines/director/lingo/lingo-gr.cpp"
+#line 3272 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 155:
 #line 668 "engines/director/lingo/lingo-gr.y"
                                                         { delete (yyvsp[0].s); }
-#line 3270 "engines/director/lingo/lingo-gr.cpp"
+#line 3278 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 156:
 #line 669 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 3276 "engines/director/lingo/lingo-gr.cpp"
+#line 3284 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 157:
 #line 671 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->codeArgStore(); inDef(); }
-#line 3282 "engines/director/lingo/lingo-gr.cpp"
+#line 3290 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 158:
@@ -3290,91 +3298,91 @@ yyreduce:
 		WRITE_UINT32(&numpar, (yyvsp[0].narg));
 		g_lingo->code1(numpar);
 		delete (yyvsp[-1].s); }
-#line 3294 "engines/director/lingo/lingo-gr.cpp"
+#line 3302 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 159:
 #line 681 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3300 "engines/director/lingo/lingo-gr.cpp"
+#line 3308 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 160:
 #line 682 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.narg) = 1; }
-#line 3306 "engines/director/lingo/lingo-gr.cpp"
+#line 3314 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 161:
 #line 683 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3312 "engines/director/lingo/lingo-gr.cpp"
+#line 3320 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 162:
 #line 685 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 1; }
-#line 3318 "engines/director/lingo/lingo-gr.cpp"
+#line 3326 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 163:
 #line 686 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3324 "engines/director/lingo/lingo-gr.cpp"
+#line 3332 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 164:
 #line 688 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[-1].code); }
-#line 3330 "engines/director/lingo/lingo-gr.cpp"
+#line 3338 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 165:
 #line 690 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3336 "engines/director/lingo/lingo-gr.cpp"
+#line 3344 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 166:
 #line 691 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3342 "engines/director/lingo/lingo-gr.cpp"
+#line 3350 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 167:
 #line 692 "engines/director/lingo/lingo-gr.y"
                      { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3348 "engines/director/lingo/lingo-gr.cpp"
+#line 3356 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 168:
 #line 693 "engines/director/lingo/lingo-gr.y"
                          { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3354 "engines/director/lingo/lingo-gr.cpp"
+#line 3362 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 169:
 #line 695 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3360 "engines/director/lingo/lingo-gr.cpp"
+#line 3368 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 170:
 #line 696 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3366 "engines/director/lingo/lingo-gr.cpp"
+#line 3374 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 171:
 #line 698 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3372 "engines/director/lingo/lingo-gr.cpp"
+#line 3380 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 172:
 #line 699 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3378 "engines/director/lingo/lingo-gr.cpp"
+#line 3386 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 173:
@@ -3383,7 +3391,7 @@ yyreduce:
 		g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3387 "engines/director/lingo/lingo-gr.cpp"
+#line 3395 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 174:
@@ -3392,11 +3400,11 @@ yyreduce:
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3396 "engines/director/lingo/lingo-gr.cpp"
+#line 3404 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 3400 "engines/director/lingo/lingo-gr.cpp"
+#line 3408 "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 f501badf3c..44c7da3981 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -264,12 +264,12 @@ stmt: stmtoneliner
 	//   statements
 	// end repeat
 	//
-	| repeatwhile expr end[body] stmtlist end[end2] tENDREPEAT	{
-		inst body = 0, end = 0;
-		WRITE_UINT32(&body, $body - $repeatwhile);
-		WRITE_UINT32(&end, $end2 - $repeatwhile);
-		(*g_lingo->_currentScript)[$repeatwhile + 1] = body;	/* body of loop */
-		(*g_lingo->_currentScript)[$repeatwhile + 2] = end; }	/* end, if cond fails */
+	| repeatwhile expr jumpifz[body] stmtlist jump[end2] tENDREPEAT	{
+		inst start = 0, end = 0;
+		WRITE_UINT32(&start, $repeatwhile - $end2 + 2);
+		WRITE_UINT32(&end, $end2 - $body + 2);
+		(*g_lingo->_currentScript)[$body] = end;		/* end, if cond fails */
+		(*g_lingo->_currentScript)[$end2] = start; }	/* looping back */
 
 	// repeat with index = start to end
 	//   statements
@@ -371,7 +371,7 @@ ifoneliner: if expr jumpifz[then] tTHEN stmtoneliner jump[else1] tELSE begin stm
 
 		(*g_lingo->_currentScript)[$then] = end; }		/* end, if cond fails */
 
-repeatwhile:	tREPEAT tWHILE		{ $$ = g_lingo->code3(LC::c_repeatwhilecode, STOP, STOP); }
+repeatwhile:	tREPEAT tWHILE		{ $$ = g_lingo->_currentScript->size() - 1; }
 
 repeatwith:		tREPEAT tWITH ID	{
 		$$ = g_lingo->code3(LC::c_repeatwithcode, STOP, STOP);


Commit: 70860a7f96b22c348f9253050232c192996af64d
    https://github.com/scummvm/scummvm/commit/70860a7f96b22c348f9253050232c192996af64d
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-05-29T01:12:45+02:00

Commit Message:
DIRECTOR: LINGO: Remove c_if and c_repeatwhile

Changed paths:
    engines/director/lingo/lingo-code.cpp
    engines/director/lingo/lingo-code.h


diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index ea568cb7d1..bbf34eea47 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -87,7 +87,6 @@ static struct FuncDescr {
 	{ LC::c_gotoprevious,	"c_gotoprevious",	"" },
 	{ LC::c_gt,				"c_gt",				"" },
 	{ LC::c_hilite,			"c_hilite",			"" },
-	{ LC::c_ifcode,			"c_ifcode",			"oooi" },
 	{ LC::c_instance,		"c_instance",		"s" },	// D2
 	{ LC::c_intersects,		"c_intersects",		"" },
 	{ LC::c_intpush,		"c_intpush",		"i" },
@@ -117,7 +116,6 @@ static struct FuncDescr {
 	{ LC::c_procret,		"c_procret",		"" },
 	{ LC::c_proparraypush,	"c_proparraypush",	"i" },
 	{ LC::c_property,		"c_property",		"s" },
-	{ LC::c_repeatwhilecode,"c_repeatwhilecode","oo" },
 	{ LC::c_repeatwithcode,	"c_repeatwithcode",	"ooooos" },
 	{ LC::c_setImmediate,	"c_setImmediate",	"i" },
 	{ LC::c_starts,			"c_starts",			"" },
@@ -1163,36 +1161,6 @@ void LC::c_jumpifz() {
 	}
 }
 
-void LC::c_repeatwhilecode(void) {
-	Datum d;
-	int savepc = g_lingo->_pc;
-
-	uint body = g_lingo->getInt(savepc);
-	uint end =  g_lingo->getInt(savepc + 1);
-
-	g_lingo->execute(savepc + 2);	/* condition */
-	int test = g_lingo->pop().asInt();
-
-	while (test) {
-		g_lingo->execute(body + savepc - 1);	/* body */
-		g_lingo->_nextRepeat = false;
-
-		if (g_lingo->_returning)
-			break;
-
-		if (g_lingo->_exitRepeat) {
-			g_lingo->_exitRepeat = false;
-			break;
-		}
-
-		g_lingo->execute(savepc + 2);	/* condition */
-		test = g_lingo->pop().asInt();
-	}
-
-	if (!g_lingo->_returning)
-		g_lingo->_pc = end + savepc - 1; /* next stmt */
-}
-
 void LC::c_repeatwithcode(void) {
 	int savepc = g_lingo->_pc;
 
@@ -1270,38 +1238,6 @@ void LC::c_exitRepeat(void) {
 	g_lingo->_exitRepeat = true;
 }
 
-void LC::c_ifcode(void) {
-	Datum d;
-	int savepc = g_lingo->_pc;	/* then part */
-
-	uint then =    g_lingo->getInt(savepc);
-	uint elsep =   g_lingo->getInt(savepc+1);
-	uint end =     g_lingo->getInt(savepc+2);
-	uint skipEnd = g_lingo->getInt(savepc+3);
-
-	debugC(8, kDebugLingoExec, "executing cond (have to %s end)", skipEnd ? "skip" : "execute");
-	g_lingo->execute(savepc + 4);	/* condition */
-
-	d = g_lingo->pop();
-
-	if (d.asInt()) {
-		debugC(8, kDebugLingoExec, "executing then");
-		g_lingo->execute(then + savepc - 1);
-	} else if (elsep) { /* else part? */
-		debugC(8, kDebugLingoExec, "executing else");
-		g_lingo->execute(elsep + savepc - 1);
-	}
-
-	// Since we do recursive calls, we want to skip behind end of the 'if'
-	// statement only once, and not after every 'end if' call
-	if (!g_lingo->_returning && !skipEnd) {
-		g_lingo->_pc = end + savepc - 1; /* next stmt */
-		debugC(8, kDebugLingoExec, "executing end");
-	} else {
-		debugC(8, kDebugLingoExec, "skipped end");
-	}
-}
-
 void LC::c_whencode() {
 	Datum d;
 	uint start = g_lingo->_pc;
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index 1ee29385b9..1b95f30129 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -92,10 +92,8 @@ namespace LC {
 	void c_objectfieldassign();
 	void c_objectrefpush();
 
-	void c_repeatwhilecode();
 	void c_repeatwithcode();
 	void c_nextRepeat();
-	void c_ifcode();
 	void c_whencode();
 	void c_tellcode();
 	void c_tell();




More information about the Scummvm-git-logs mailing list