[Scummvm-git-logs] scummvm master -> 32b67f69ca283ae88c5b64e36298941946c5b7d7

sev- sev at scummvm.org
Sat Dec 7 23:36:28 UTC 2019


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

Summary:
32b67f69ca DIRECTOR: LINGO: Fix 'repeatwhile' and 'if' grammars


Commit: 32b67f69ca283ae88c5b64e36298941946c5b7d7
    https://github.com/scummvm/scummvm/commit/32b67f69ca283ae88c5b64e36298941946c5b7d7
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-12-08T00:35:59+01:00

Commit Message:
DIRECTOR: LINGO: Fix 'repeatwhile' and 'if' grammars

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 79a3601..bdc33ac 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -548,7 +548,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  126
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1612
+#define YYLAST   1554
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  109
@@ -557,7 +557,7 @@ union yyalloc
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  154
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  325
+#define YYNSTATES  326
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -613,20 +613,20 @@ static const yytype_uint16 yyprhs[] =
 {
        0,     0,     3,     7,     9,    12,    13,    15,    17,    22,
       27,    32,    37,    42,    47,    52,    57,    63,    69,    71,
-      73,    75,    77,    79,    85,    96,   108,   112,   119,   124,
-     134,   147,   148,   151,   158,   161,   165,   167,   169,   170,
-     171,   172,   175,   178,   182,   184,   186,   188,   190,   192,
-     194,   196,   198,   200,   203,   206,   211,   213,   216,   218,
-     222,   226,   230,   234,   238,   242,   246,   250,   254,   258,
-     262,   266,   270,   273,   277,   281,   285,   289,   292,   295,
-     299,   303,   308,   313,   318,   325,   330,   337,   342,   349,
-     354,   361,   363,   366,   369,   371,   373,   376,   378,   381,
-     384,   387,   389,   392,   395,   397,   400,   405,   412,   417,
-     420,   424,   426,   430,   432,   436,   438,   442,   445,   448,
-     451,   454,   458,   461,   464,   466,   470,   473,   476,   479,
-     483,   486,   487,   491,   492,   501,   504,   505,   514,   523,
-     530,   533,   534,   536,   540,   545,   546,   548,   552,   553,
-     556,   557,   559,   563,   565
+      73,    75,    77,    79,    86,    97,   109,   113,   120,   125,
+     135,   148,   149,   152,   159,   162,   166,   168,   170,   171,
+     172,   173,   176,   179,   183,   185,   187,   189,   191,   193,
+     195,   197,   199,   201,   204,   207,   212,   214,   217,   219,
+     223,   227,   231,   235,   239,   243,   247,   251,   255,   259,
+     263,   267,   271,   274,   278,   282,   286,   290,   293,   296,
+     300,   304,   309,   314,   319,   326,   331,   338,   343,   350,
+     355,   362,   364,   367,   370,   372,   374,   377,   379,   382,
+     385,   388,   390,   393,   396,   398,   401,   406,   413,   418,
+     421,   425,   427,   431,   433,   437,   439,   443,   446,   449,
+     452,   455,   459,   462,   465,   467,   471,   474,   477,   480,
+     484,   487,   488,   492,   493,   502,   505,   506,   515,   524,
+     531,   534,   535,   537,   541,   546,   547,   549,   553,   554,
+     557,   558,   560,   564,   566
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
@@ -640,55 +640,55 @@ static const yytype_int16 yyrhs[] =
      128,    -1,    53,    15,    55,   128,    -1,    53,    16,   128,
       55,   128,    -1,    53,    16,   127,    70,   128,    -1,   146,
       -1,   128,    -1,   130,    -1,   113,    -1,   115,    -1,   118,
-     128,   124,   123,    93,    -1,   119,    70,   128,   123,    55,
      128,   123,   124,   123,    93,    -1,   119,    70,   128,   123,
-      36,    55,   128,   123,   124,   123,    93,    -1,   125,   113,
-     123,    -1,   126,   128,   101,   124,   123,    94,    -1,   126,
-     128,    55,   128,    -1,   120,   128,    54,   122,   124,   123,
-     116,   123,    92,    -1,   120,   128,    54,   122,   124,   123,
-     116,   123,    37,   124,   123,    92,    -1,    -1,   117,   116,
-      -1,   121,   128,    54,   122,   124,   123,    -1,    52,    58,
-      -1,    52,    57,    30,    -1,    43,    -1,    38,    -1,    -1,
-      -1,    -1,   124,   101,    -1,   124,   114,    -1,    56,    30,
-      54,    -1,    88,    -1,    12,    -1,    17,    -1,    33,    -1,
-      31,    -1,    30,    -1,   127,    -1,   129,    -1,    25,    -1,
-      26,   128,    -1,    27,   148,    -1,    30,   102,   147,   103,
-      -1,    15,    -1,    16,   128,    -1,   112,    -1,   128,    96,
-     128,    -1,   128,    97,   128,    -1,   128,    98,   128,    -1,
-     128,    99,   128,    -1,   128,    75,   128,    -1,   128,   104,
-     128,    -1,   128,   105,   128,    -1,   128,    70,   128,    -1,
-     128,    71,   128,    -1,   128,    66,   128,    -1,   128,    67,
-     128,    -1,   128,    72,   128,    -1,   128,    73,   128,    -1,
-      74,   128,    -1,   128,    95,   128,    -1,   128,    78,   128,
-      -1,   128,    79,   128,    -1,   128,    80,   128,    -1,    96,
-     128,    -1,    97,   128,    -1,   102,   128,   103,    -1,   106,
-     147,   107,    -1,    85,   128,    86,   128,    -1,    85,   128,
-      87,   128,    -1,    81,   128,    49,   128,    -1,    81,   128,
-      55,   128,    49,   128,    -1,    82,   128,    49,   128,    -1,
-      82,   128,    55,   128,    49,   128,    -1,    83,   128,    49,
-     128,    -1,    83,   128,    55,   128,    49,   128,    -1,    84,
-     128,    49,   128,    -1,    84,   128,    55,   128,    49,   128,
-      -1,    91,    -1,    29,   128,    -1,    51,   128,    -1,   134,
-      -1,   137,    -1,    39,    52,    -1,    39,    -1,    41,   131,
-      -1,    89,   132,    -1,    65,   133,    -1,    19,    -1,    21,
-     128,    -1,    20,   128,    -1,    20,    -1,    22,   148,    -1,
-      91,   102,    30,   103,    -1,    91,   102,    30,   108,   147,
-     103,    -1,    62,   128,    57,   128,    -1,    62,   128,    -1,
-      23,    30,   147,    -1,    30,    -1,   131,   108,    30,    -1,
-      30,    -1,   132,   108,    30,    -1,    30,    -1,   133,   108,
-      30,    -1,    42,    45,    -1,    42,    48,    -1,    42,    50,
-      -1,    42,   135,    -1,    42,   135,   136,    -1,    42,   136,
-      -1,    40,   128,    -1,   128,    -1,    49,    47,   128,    -1,
-      47,   128,    -1,    63,    64,    -1,    63,   135,    -1,    63,
-     135,   136,    -1,    63,   136,    -1,    -1,    35,   138,   147,
-      -1,    -1,    46,    30,   140,   122,   143,   101,   145,   124,
-      -1,    60,    30,    -1,    -1,    61,    30,   141,   122,   143,
-     101,   145,   124,    -1,   142,   122,   143,   101,   145,   124,
-      34,   144,    -1,   142,   122,   143,   101,   145,   124,    -1,
-      90,    30,    -1,    -1,    30,    -1,   143,   108,    30,    -1,
-     143,   101,   108,    30,    -1,    -1,    30,    -1,   144,   108,
-      30,    -1,    -1,    30,   148,    -1,    -1,   128,    -1,   147,
-     108,   128,    -1,   128,    -1,   148,   108,   128,    -1
+      55,   128,   123,   124,   123,    93,    -1,   119,    70,   128,
+     123,    36,    55,   128,   123,   124,   123,    93,    -1,   125,
+     113,   123,    -1,   126,   128,   101,   124,   123,    94,    -1,
+     126,   128,    55,   128,    -1,   120,   128,   123,    54,   124,
+     123,   116,   123,    92,    -1,   120,   128,   123,    54,   124,
+     123,   116,   123,    37,   124,   123,    92,    -1,    -1,   117,
+     116,    -1,   121,   128,   123,    54,   124,   123,    -1,    52,
+      58,    -1,    52,    57,    30,    -1,    43,    -1,    38,    -1,
+      -1,    -1,    -1,   124,   101,    -1,   124,   114,    -1,    56,
+      30,    54,    -1,    88,    -1,    12,    -1,    17,    -1,    33,
+      -1,    31,    -1,    30,    -1,   127,    -1,   129,    -1,    25,
+      -1,    26,   128,    -1,    27,   148,    -1,    30,   102,   147,
+     103,    -1,    15,    -1,    16,   128,    -1,   112,    -1,   128,
+      96,   128,    -1,   128,    97,   128,    -1,   128,    98,   128,
+      -1,   128,    99,   128,    -1,   128,    75,   128,    -1,   128,
+     104,   128,    -1,   128,   105,   128,    -1,   128,    70,   128,
+      -1,   128,    71,   128,    -1,   128,    66,   128,    -1,   128,
+      67,   128,    -1,   128,    72,   128,    -1,   128,    73,   128,
+      -1,    74,   128,    -1,   128,    95,   128,    -1,   128,    78,
+     128,    -1,   128,    79,   128,    -1,   128,    80,   128,    -1,
+      96,   128,    -1,    97,   128,    -1,   102,   128,   103,    -1,
+     106,   147,   107,    -1,    85,   128,    86,   128,    -1,    85,
+     128,    87,   128,    -1,    81,   128,    49,   128,    -1,    81,
+     128,    55,   128,    49,   128,    -1,    82,   128,    49,   128,
+      -1,    82,   128,    55,   128,    49,   128,    -1,    83,   128,
+      49,   128,    -1,    83,   128,    55,   128,    49,   128,    -1,
+      84,   128,    49,   128,    -1,    84,   128,    55,   128,    49,
+     128,    -1,    91,    -1,    29,   128,    -1,    51,   128,    -1,
+     134,    -1,   137,    -1,    39,    52,    -1,    39,    -1,    41,
+     131,    -1,    89,   132,    -1,    65,   133,    -1,    19,    -1,
+      21,   128,    -1,    20,   128,    -1,    20,    -1,    22,   148,
+      -1,    91,   102,    30,   103,    -1,    91,   102,    30,   108,
+     147,   103,    -1,    62,   128,    57,   128,    -1,    62,   128,
+      -1,    23,    30,   147,    -1,    30,    -1,   131,   108,    30,
+      -1,    30,    -1,   132,   108,    30,    -1,    30,    -1,   133,
+     108,    30,    -1,    42,    45,    -1,    42,    48,    -1,    42,
+      50,    -1,    42,   135,    -1,    42,   135,   136,    -1,    42,
+     136,    -1,    40,   128,    -1,   128,    -1,    49,    47,   128,
+      -1,    47,   128,    -1,    63,    64,    -1,    63,   135,    -1,
+      63,   135,   136,    -1,    63,   136,    -1,    -1,    35,   138,
+     147,    -1,    -1,    46,    30,   140,   122,   143,   101,   145,
+     124,    -1,    60,    30,    -1,    -1,    61,    30,   141,   122,
+     143,   101,   145,   124,    -1,   142,   122,   143,   101,   145,
+     124,    34,   144,    -1,   142,   122,   143,   101,   145,   124,
+      -1,    90,    30,    -1,    -1,    30,    -1,   143,   108,    30,
+      -1,   143,   101,   108,    30,    -1,    -1,    30,    -1,   144,
+     108,    30,    -1,    -1,    30,   148,    -1,    -1,   128,    -1,
+     147,   108,   128,    -1,   128,    -1,   148,   108,   128,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -789,7 +789,7 @@ static const yytype_uint8 yyr2[] =
 {
        0,     2,     3,     1,     2,     0,     1,     1,     4,     4,
        4,     4,     4,     4,     4,     4,     5,     5,     1,     1,
-       1,     1,     1,     5,    10,    11,     3,     6,     4,     9,
+       1,     1,     1,     6,    10,    11,     3,     6,     4,     9,
       12,     0,     2,     6,     2,     3,     1,     1,     0,     0,
        0,     2,     2,     3,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     2,     2,     4,     1,     2,     1,     3,
@@ -822,85 +822,85 @@ static const yytype_uint8 yydefact[] =
        0,   119,   124,   120,   122,   133,    93,     0,    34,     0,
        0,     0,     0,   135,   136,   109,   127,   128,   130,   115,
      100,    72,     0,     0,     0,     0,     0,   113,    99,   140,
-       0,    77,    78,     0,   151,     0,     1,     5,    40,     0,
-       0,    39,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    77,    78,     0,   151,     0,     1,     5,    39,     0,
+      39,    39,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      141,   150,     0,     0,   110,   151,     0,   132,     0,   123,
      126,     0,   121,    38,     0,     0,     0,    35,     0,     0,
       50,     0,     0,     0,    43,    38,     0,   129,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    79,    80,     0,     2,    39,    39,    38,    26,     0,
+       0,    79,    80,     0,     2,    40,    39,     0,    26,     0,
       40,    68,    69,    66,    67,    70,    71,    63,    74,    75,
       76,    73,    59,    60,    61,    62,    64,    65,   142,     0,
      154,    55,   112,   125,   141,     8,     9,    10,    11,    15,
       13,     0,     0,    14,    12,   141,   108,   116,    83,     0,
       85,     0,    87,     0,    89,     0,    81,    82,   114,   106,
-     150,   152,    41,    42,     0,     0,    40,    28,    39,   148,
-       0,     0,    17,    16,     0,     0,     0,     0,     0,     0,
-      23,     0,     0,    39,     0,     0,    40,   143,   148,   148,
-      84,    86,    88,    90,   107,     0,    39,    31,    27,   144,
-     139,    40,    40,    39,    40,    37,    39,    31,     0,   145,
-     134,   137,    40,    39,     0,    32,     0,   146,   138,    39,
-       0,    40,    29,    38,     0,     0,    24,    39,    40,   147,
-      25,     0,    39,    30,    33
+     150,   152,    39,     0,    40,    28,    39,   148,     0,     0,
+      17,    16,     0,     0,     0,     0,     0,     0,    41,    42,
+       0,     0,     0,    39,     0,     0,    40,   143,   148,   148,
+      84,    86,    88,    90,   107,    23,     0,    39,    31,    27,
+     144,   139,    40,    40,    39,    40,    37,    39,    31,     0,
+     145,   134,   137,    40,    39,     0,    32,    39,   146,   138,
+      39,     0,    40,    29,     0,     0,     0,    24,    39,    40,
+     147,    25,     0,    39,    30,    33
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    47,    48,    49,    50,   253,    52,   296,   297,    53,
-      54,    55,   298,   150,   198,   195,    56,    57,    58,    59,
+      -1,    47,    48,    49,    50,   269,    52,   297,   298,    53,
+      54,    55,   299,   150,   195,   252,    56,    57,    58,    59,
       60,    61,    85,   118,   110,    62,    93,    94,    63,    82,
-      64,   163,   175,    65,   219,   308,   276,    66,   156,    75
+      64,   163,   175,    65,   219,   309,   276,    66,   156,    75
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -211
+#define YYPACT_NINF -173
 static const yytype_int16 yypact[] =
 {
-     257,   -77,  -211,  -211,   807,  -211,  -211,   807,   807,   807,
-      16,  -211,   807,   807,   807,   885,  -211,  -211,  -211,    -2,
-      28,   687,  -211,    37,   807,   -42,     6,    39,    45,    47,
-     807,   765,    49,   807,   807,   807,   807,   807,   807,  -211,
-      55,    59,     8,   807,   807,   807,   807,     2,  -211,  -211,
-    -211,  -211,  -211,   807,    13,   807,   609,   807,  -211,  1471,
-    -211,  -211,  -211,  -211,  -211,  -211,  -211,  -211,    12,   807,
-    -211,  1471,  1471,  1471,  1471,   -13,   807,  1471,   -13,  1471,
-     807,   -13,   807,  -211,  -211,    -3,   807,  -211,   807,  -211,
-      71,  -211,  1471,     7,  -211,  -211,   927,    96,  -211,   -32,
-     807,    -7,    94,  -211,  -211,  1359,  -211,     7,  -211,  -211,
-      42,   -60,   963,   999,  1035,  1071,  1395,  -211,    44,  -211,
-     123,   -60,   -60,  1431,  1471,     5,  -211,   345,  1471,   807,
-     853,  -211,  1287,   807,   807,   807,   807,   807,   807,   807,
-     807,   807,   807,   807,   807,   807,   807,   807,   807,   807,
-     124,   807,   927,   807,    48,  1431,    -6,    48,   125,  1471,
-    1471,   807,  -211,  -211,    87,   807,   807,  -211,   807,   807,
-      88,  1323,   807,   807,  -211,  -211,   807,  -211,   129,   807,
-     807,   807,   807,   807,   807,   807,   807,   807,   807,   130,
-       1,  -211,  -211,   807,  -211,   521,  1471,  -211,  -211,   807,
-    -211,    -5,    -5,    -5,    -5,  1507,  1507,   -60,  1471,    -5,
-      -5,    23,   -18,   -18,   -60,   -60,  1471,  1471,  -211,   -49,
-    1471,  -211,  -211,  1471,   124,  -211,  -211,  1471,  1471,  1471,
-      -5,   807,   807,  1471,    -5,   124,  1471,  -211,  1471,  1107,
-    1471,  1143,  1471,  1179,  1471,  1215,  1471,  1471,  -211,  -211,
-     807,  1471,  -211,  -211,    70,    -8,  -211,  1471,   521,    58,
-     137,   -46,    -5,  1471,   -37,   807,   807,   807,   807,     3,
-    -211,   118,   807,   521,    80,   156,  -211,  -211,    58,    58,
-    1471,  1471,  1471,  1471,  -211,   807,  1471,   149,  -211,  -211,
-     433,  -211,  -211,  1471,  -211,  -211,  -211,   149,   807,   158,
-     521,   521,  -211,   521,   -31,  -211,  1251,  -211,    82,   521,
-      99,  -211,  -211,  -211,   163,   101,  -211,   521,  -211,  -211,
-    -211,   104,   521,  -211,  -211
+     271,   -82,  -173,  -173,   821,  -173,  -173,   821,   821,   821,
+      28,  -173,   821,   821,   821,   899,  -173,  -173,  -173,    12,
+      51,   701,  -173,    55,   821,    11,    -2,    57,    59,    65,
+     821,   779,    67,   821,   821,   821,   821,   821,   821,  -173,
+      80,    84,    13,   821,   821,   821,   821,     2,  -173,  -173,
+    -173,  -173,  -173,   821,    46,   821,   623,   821,  -173,  1413,
+    -173,  -173,  -173,  -173,  -173,  -173,  -173,  -173,    15,   821,
+    -173,  1413,  1413,  1413,  1413,    10,   821,  1413,    10,  1413,
+     821,    10,   821,  -173,  -173,    14,   821,  -173,   821,  -173,
+      73,  -173,  1413,     7,  -173,  -173,   941,    89,  -173,   -32,
+     821,   -11,    69,  -173,  -173,  1301,  -173,     7,  -173,  -173,
+      16,   -57,   977,  1013,  1049,  1085,  1337,  -173,    18,  -173,
+      91,   -57,   -57,  1373,  1413,   -28,  -173,   359,  1413,   821,
+    1413,  -173,   867,   821,   821,   821,   821,   821,   821,   821,
+     821,   821,   821,   821,   821,   821,   821,   821,   821,   821,
+      97,   821,   941,   821,    38,  1373,   -48,    38,   118,  1413,
+    1413,   821,  -173,  -173,    72,   821,   821,  -173,   821,   821,
+      81,  1265,   821,   821,  -173,  -173,   821,  -173,   120,   821,
+     821,   821,   821,   821,   821,   821,   821,   821,   821,   123,
+     -41,  -173,  -173,   821,  -173,  -173,  1413,   100,  -173,   821,
+    -173,    -5,    -5,    -5,    -5,  1449,  1449,   -57,  1413,    -5,
+      -5,     8,   125,   125,   -57,   -57,  1413,  1413,  -173,   -86,
+    1413,  -173,  -173,  1413,    97,  -173,  -173,  1413,  1413,  1413,
+      -5,   821,   821,  1413,    -5,    97,  1413,  -173,  1413,  1121,
+    1413,  1157,  1413,  1193,  1413,  1229,  1413,  1413,  -173,  -173,
+     821,  1413,   535,   -20,  -173,  1413,   535,    47,   126,   -83,
+      -5,  1413,   -51,   821,   821,   821,   821,   -37,  -173,  -173,
+      66,   103,   821,   535,    76,   130,  -173,  -173,    47,    47,
+    1413,  1413,  1413,  1413,  -173,  -173,   821,  1413,   128,  -173,
+    -173,   447,  -173,  -173,  1413,  -173,  -173,  -173,   128,   821,
+     133,   535,   535,  -173,   535,   -31,  -173,  1413,  -173,    77,
+     535,    93,  -173,  -173,   119,   157,    99,  -173,   535,  -173,
+    -173,  -173,   102,   535,  -173,  -173
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -211,  -211,    72,  -211,   141,    19,  -211,   -97,  -211,  -211,
-    -211,  -211,  -211,  -162,   -88,   -85,  -211,  -211,   102,    -4,
-      40,  -211,  -211,  -211,  -211,  -211,   170,   -19,  -211,  -211,
-    -211,  -211,  -211,  -211,  -210,  -211,  -155,  -211,   -39,    53
+    -173,  -173,    70,  -173,   140,     1,  -173,  -100,  -173,  -173,
+    -173,  -173,  -173,  -139,   -85,  -102,  -173,  -173,   104,    -4,
+      35,  -173,  -173,  -173,  -173,  -173,   174,   -19,  -173,  -173,
+    -173,  -173,  -173,  -173,  -172,  -173,  -170,  -173,   -39,    62
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -910,273 +910,272 @@ static const yytype_int16 yypgoto[] =
 #define YYTABLE_NINF -6
 static const yytype_int16 yytable[] =
 {
-      71,   224,   126,    72,    73,    74,   311,   125,    77,    74,
-      79,    74,   108,   235,   261,    97,    98,    92,   140,    51,
-      96,    99,   100,   168,    67,   264,   105,    92,   271,   111,
-     112,   113,   114,   115,   116,   256,   101,   154,   169,   121,
-     122,   123,   124,   157,   148,   149,    76,   272,   172,   128,
-      83,   130,   259,   132,    88,   278,    90,   139,    84,   260,
-     140,   312,   260,   173,   279,   152,    78,    95,    81,   102,
-     139,   260,   124,   140,   162,   103,   155,   104,   124,   109,
-     146,   147,   159,   129,   160,   117,   148,   149,   177,   119,
-     143,   144,   145,   146,   147,   153,   171,   221,   139,   148,
-     149,   140,   193,   127,   249,   158,   284,   254,   255,   250,
-     120,   193,   192,   193,   151,   258,    14,   225,   161,   144,
-     145,   146,   147,   291,   292,   196,   167,   148,   149,   201,
+      71,    51,   126,    72,    73,    74,   312,   125,    77,    74,
+      79,    74,   108,    99,   100,   257,   271,    92,   278,    67,
+      96,   140,   258,   168,   224,   258,   105,    92,   101,   111,
+     112,   113,   114,   115,   116,   272,   235,   154,   169,   121,
+     122,   123,   124,   157,   172,   197,   198,   148,   149,   128,
+     279,   130,   259,   132,    88,   221,    90,   258,    76,   173,
+     193,   313,   249,   262,    83,   152,   284,   250,    97,    98,
+     139,   193,   124,   140,   162,    78,   155,    81,   124,   192,
+     193,    84,   159,   139,   160,    95,   140,   102,   177,   103,
+     143,   144,   145,   146,   147,   104,   171,   109,   256,   148,
+     149,    14,   225,   127,   144,   145,   146,   147,   292,   293,
+     117,   253,   148,   149,   119,   120,   129,   151,   153,   167,
+     161,   190,   158,   174,   178,   196,   189,   218,    51,   201,
      202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,    51,   124,   174,   220,
-     178,   318,   189,   190,   218,   222,   193,   223,   231,   237,
-     248,   227,   228,   270,   229,   230,   275,   277,   233,   234,
-     274,   273,   236,   285,   288,   238,   239,   240,   241,   242,
-     243,   244,   245,   246,   247,   287,   289,   295,   307,   251,
-     314,   290,   316,   319,   320,   257,   323,   131,   294,   194,
-     305,   107,   170,     0,   226,   302,   300,   301,   304,   303,
-       0,   269,     0,     0,     0,   310,     0,   309,     0,     0,
-       0,   315,     0,     0,     0,     0,   317,   262,   263,   321,
-       0,     0,     0,   322,   324,     0,     0,     0,     0,     0,
+     212,   213,   214,   215,   216,   217,   193,   124,   222,   220,
+     237,   231,   273,   248,   254,   275,   277,   223,   286,   285,
+     290,   227,   228,   308,   229,   230,   296,   270,   233,   234,
+     289,   274,   236,   319,   291,   238,   239,   240,   241,   242,
+     243,   244,   245,   246,   247,   315,   317,   320,   288,   251,
+     301,   302,   321,   304,   324,   255,   131,   194,   306,   226,
+     139,   310,   295,   140,   170,   107,     0,     0,     0,   303,
+     318,   267,   305,     0,     0,     0,     0,   323,     0,   311,
+       0,     0,   314,   146,   147,   316,     0,   260,   261,   148,
+     149,     0,     0,   322,     0,     0,     0,     0,   325,     0,
        0,     0,     0,     0,     0,     0,   124,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    -5,     1,     0,
-       0,   280,   281,   282,   283,     0,     0,     0,   286,     2,
-       0,     0,     3,     4,     5,     0,     6,     7,     8,     9,
-      10,   293,    11,    12,    13,     0,    14,    15,    16,     0,
-      17,     0,    18,     0,   306,     0,    19,     0,    20,    21,
-      22,     0,     0,    23,     0,     0,     0,     0,    24,    25,
-      26,     0,     0,    27,     0,     0,     0,    28,    29,    30,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   280,
+     281,   282,   283,     0,     0,     0,     0,     0,   287,     0,
+       0,    -5,     1,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   294,     2,     0,     0,     3,     4,     5,     0,
+       6,     7,     8,     9,    10,   307,    11,    12,    13,     0,
+      14,    15,    16,     0,    17,     0,    18,     0,     0,     0,
+      19,     0,    20,    21,    22,     0,     0,    23,     0,     0,
+       0,     0,    24,    25,    26,     0,     0,    27,     0,     0,
+       0,    28,    29,    30,    31,     0,    32,     0,     0,     0,
+       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
+       0,     0,    34,    35,    36,    37,    38,     0,     0,    39,
+      40,    41,    42,     0,     0,     0,     0,    43,    44,     0,
+       0,     2,    -5,    45,     3,     4,     5,    46,     6,     7,
+       8,     9,    10,     0,    11,    12,    13,     0,    14,    15,
+      16,     0,    17,     0,    18,     0,     0,     0,    19,     0,
+      20,    21,    22,     0,     0,    23,     0,     0,     0,     0,
+      24,    25,    26,     0,     0,    27,     0,     0,     0,    28,
+      29,    30,    31,     0,    32,     0,     0,     0,     0,     0,
+       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
+      34,    35,    36,    37,    38,     0,     0,    39,    40,    41,
+      42,     0,     0,     0,     0,    43,    44,     0,     0,     2,
+       0,    45,     3,     4,     5,    46,     6,     7,     8,     9,
+      10,     0,    11,    12,    13,     0,    14,    15,    16,     0,
+      17,   300,    18,     0,     0,     0,    19,     0,    20,    21,
+      22,     0,     0,     0,     0,     0,     0,     0,    24,    25,
+      26,     0,     0,    27,     0,     0,     0,     0,     0,    30,
       31,     0,    32,     0,     0,     0,     0,     0,     0,     0,
        0,    33,     0,     0,     0,     0,     0,     0,    34,    35,
-      36,    37,    38,     0,     0,    39,    40,    41,    42,     0,
-       0,     0,     0,    43,    44,     0,     0,     2,    -5,    45,
+      36,    37,    38,     0,     0,    39,    40,     0,    42,     0,
+       0,     0,     0,    43,    44,     0,     0,     2,   268,    45,
        3,     4,     5,    46,     6,     7,     8,     9,    10,     0,
       11,    12,    13,     0,    14,    15,    16,     0,    17,     0,
       18,     0,     0,     0,    19,     0,    20,    21,    22,     0,
-       0,    23,     0,     0,     0,     0,    24,    25,    26,     0,
-       0,    27,     0,     0,     0,    28,    29,    30,    31,     0,
+       0,     0,     0,     0,     0,     0,    24,    25,    26,     0,
+       0,    27,     0,     0,     0,     0,     0,    30,    31,     0,
       32,     0,     0,     0,     0,     0,     0,     0,     0,    33,
        0,     0,     0,     0,     0,     0,    34,    35,    36,    37,
-      38,     0,     0,    39,    40,    41,    42,     0,     0,     0,
-       0,    43,    44,     0,     0,     2,     0,    45,     3,     4,
+      38,     0,     0,    39,    40,     0,    42,     0,     0,     0,
+       0,    43,    44,     0,     0,     2,   268,    45,     3,     4,
        5,    46,     6,     7,     8,     9,    10,     0,    11,    12,
-      13,     0,    14,    15,    16,     0,    17,   299,    18,     0,
-       0,     0,    19,     0,    20,    21,    22,     0,     0,     0,
-       0,     0,     0,     0,    24,    25,    26,     0,     0,    27,
+      13,     0,    14,    15,    16,     0,    17,     0,    18,     0,
+       0,     0,    19,     0,    20,    21,     0,     0,     0,     0,
+       0,     0,     0,     0,    24,     0,    26,     0,     0,     0,
        0,     0,     0,     0,     0,    30,    31,     0,    32,     0,
        0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
        0,     0,     0,     0,    34,    35,    36,    37,    38,     0,
-       0,    39,    40,     0,    42,     0,     0,     0,     0,    43,
-      44,     0,     0,     2,   252,    45,     3,     4,     5,    46,
-       6,     7,     8,     9,    10,     0,    11,    12,    13,     0,
-      14,    15,    16,     0,    17,     0,    18,     0,     0,     0,
-      19,     0,    20,    21,    22,     0,     0,     0,     0,     0,
-       0,     0,    24,    25,    26,     0,     0,    27,     0,     0,
-       0,     0,     0,    30,    31,     0,    32,     0,     0,     0,
-       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
-       0,     0,    34,    35,    36,    37,    38,     0,     0,    39,
-      40,     0,    42,     0,     0,     0,     0,    43,    44,     0,
-       0,     2,   252,    45,     3,     4,     5,    46,     6,     7,
-       8,     9,    10,     0,    11,    12,    13,     0,    14,    15,
-      16,     0,    17,     0,    18,     0,     0,     0,    19,     0,
-      20,    21,     0,     0,     0,     0,     0,     0,     0,     0,
-      24,     0,    26,     0,     0,     0,     0,     0,     0,     0,
-       0,    30,    31,     0,    32,     0,     0,     0,     0,     0,
-       0,     0,     0,    33,     0,     0,     0,     0,     0,     0,
-      34,    35,    36,    37,    38,     0,     0,     0,    40,     2,
-      42,     0,     3,     4,     5,    43,    44,     0,     0,     0,
-       0,    45,    11,    12,    13,    46,    14,    68,    16,     0,
-      17,     0,     0,     0,     0,     0,     0,    86,     0,     0,
-       0,     0,    87,     0,    88,    89,    90,    91,    69,     0,
-      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    40,     2,    42,     0,     3,     4,     5,    43,
+      44,     0,     0,     0,     0,    45,    11,    12,    13,    46,
+      14,    68,    16,     0,    17,     0,     0,     0,     0,     0,
+       0,    86,     0,     0,     0,     0,    87,     0,    88,    89,
+      90,    91,    69,     0,    26,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    33,     0,     0,     0,     0,     0,     0,    34,    35,
-      36,    37,    38,     0,     0,     0,     0,     2,    70,     0,
-       3,     4,     5,    43,    44,     0,     0,     0,     0,    45,
-      11,    12,    13,    46,    14,    68,    16,     0,    17,     0,
-       0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
-       0,     0,    88,     0,    90,     0,    69,     0,    26,     2,
-       0,     0,     3,     4,     5,     0,     0,     0,     0,   106,
-       0,     0,    11,    12,    13,     0,    14,    68,    16,    33,
-      17,     0,     0,     0,     0,     0,    34,    35,    36,    37,
-      38,     0,     0,     0,     0,     0,    70,     0,    69,     0,
-      26,    43,    44,     0,     0,     0,     0,    45,     0,     0,
-       0,    46,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    33,     0,     0,     0,     0,     0,     0,    34,    35,
-      36,    37,    38,     0,     0,     0,     0,     2,    70,     0,
-       3,     4,     5,    43,    44,     0,     0,   197,     0,    45,
-      11,    12,    13,    46,    14,    68,    16,     0,    17,   133,
-     134,     0,     0,   135,   136,   137,   138,     0,   139,     0,
-       0,   140,   141,   142,     0,     0,    69,     0,    26,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   143,   144,
-     145,   146,   147,     0,     0,     0,     0,   148,   149,    33,
-       0,     0,     0,     0,     0,     0,    34,    35,    36,    37,
-      38,   164,     0,     0,     0,     0,    70,     0,     0,     0,
-       0,    43,    44,     0,     0,     0,     0,    80,     0,     0,
-       0,    46,     0,   133,   134,     0,     0,   135,   136,   137,
-     138,     0,   139,   165,   166,   140,   141,   142,     0,     0,
-       0,     0,   179,     0,     0,     0,     0,     0,   180,     0,
+       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
+       0,     0,    34,    35,    36,    37,    38,     0,     0,     0,
+       0,     2,    70,     0,     3,     4,     5,    43,    44,     0,
+       0,     0,     0,    45,    11,    12,    13,    46,    14,    68,
+      16,     0,    17,     0,     0,     0,     0,     0,     0,    86,
+       0,     0,     0,     0,     0,     0,    88,     0,    90,     0,
+      69,     0,    26,     2,     0,     0,     3,     4,     5,     0,
+       0,     0,     0,   106,     0,     0,    11,    12,    13,     0,
+      14,    68,    16,    33,    17,     0,     0,     0,     0,     0,
+      34,    35,    36,    37,    38,     0,     0,     0,     0,     0,
+      70,     0,    69,     0,    26,    43,    44,     0,     0,     0,
+       0,    45,     0,     0,     0,    46,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    33,     0,     0,     0,     0,
+       0,     0,    34,    35,    36,    37,    38,     0,     0,     0,
+       0,     2,    70,     0,     3,     4,     5,    43,    44,     0,
+       0,     0,   199,    45,    11,    12,    13,    46,    14,    68,
+      16,     0,    17,   133,   134,     0,     0,   135,   136,   137,
+     138,     0,   139,     0,     0,   140,   141,   142,     0,     0,
+      69,     0,    26,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   143,   144,   145,   146,   147,     0,   200,     0,
+       0,   148,   149,    33,     0,     0,     0,     0,     0,     0,
+      34,    35,    36,    37,    38,   164,     0,     0,     0,     0,
+      70,     0,     0,     0,     0,    43,    44,     0,     0,     0,
+       0,    80,     0,     0,     0,    46,     0,   133,   134,     0,
+       0,   135,   136,   137,   138,     0,   139,   165,   166,   140,
+     141,   142,     0,     0,     0,     0,   179,     0,     0,     0,
+       0,     0,   180,     0,     0,     0,   143,   144,   145,   146,
+     147,     0,     0,   133,   134,   148,   149,   135,   136,   137,
+     138,     0,   139,     0,     0,   140,   141,   142,     0,     0,
+       0,     0,   181,     0,     0,     0,     0,     0,   182,     0,
        0,     0,   143,   144,   145,   146,   147,     0,     0,   133,
      134,   148,   149,   135,   136,   137,   138,     0,   139,     0,
-       0,   140,   141,   142,     0,     0,     0,     0,   181,     0,
-       0,     0,     0,     0,   182,     0,     0,     0,   143,   144,
+       0,   140,   141,   142,     0,     0,     0,     0,   183,     0,
+       0,     0,     0,     0,   184,     0,     0,     0,   143,   144,
      145,   146,   147,     0,     0,   133,   134,   148,   149,   135,
      136,   137,   138,     0,   139,     0,     0,   140,   141,   142,
-       0,     0,     0,     0,   183,     0,     0,     0,     0,     0,
-     184,     0,     0,     0,   143,   144,   145,   146,   147,     0,
+       0,     0,     0,     0,   185,     0,     0,     0,     0,     0,
+     186,     0,     0,     0,   143,   144,   145,   146,   147,     0,
        0,   133,   134,   148,   149,   135,   136,   137,   138,     0,
      139,     0,     0,   140,   141,   142,     0,     0,     0,     0,
-     185,     0,     0,     0,     0,     0,   186,     0,     0,     0,
+     263,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      143,   144,   145,   146,   147,     0,     0,   133,   134,   148,
      149,   135,   136,   137,   138,     0,   139,     0,     0,   140,
-     141,   142,     0,     0,     0,     0,   265,     0,     0,     0,
+     141,   142,     0,     0,     0,     0,   264,     0,     0,     0,
        0,     0,     0,     0,     0,     0,   143,   144,   145,   146,
      147,     0,     0,   133,   134,   148,   149,   135,   136,   137,
      138,     0,   139,     0,     0,   140,   141,   142,     0,     0,
-       0,     0,   266,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   265,     0,     0,     0,     0,     0,     0,     0,
        0,     0,   143,   144,   145,   146,   147,     0,     0,   133,
      134,   148,   149,   135,   136,   137,   138,     0,   139,     0,
-       0,   140,   141,   142,     0,     0,     0,     0,   267,     0,
+       0,   140,   141,   142,     0,     0,     0,     0,   266,     0,
        0,     0,     0,     0,     0,     0,     0,     0,   143,   144,
      145,   146,   147,     0,     0,   133,   134,   148,   149,   135,
      136,   137,   138,     0,   139,     0,     0,   140,   141,   142,
-       0,     0,     0,     0,   268,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   143,   144,   145,   146,   147,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     232,     0,     0,     0,   143,   144,   145,   146,   147,     0,
        0,   133,   134,   148,   149,   135,   136,   137,   138,     0,
      139,     0,     0,   140,   141,   142,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   313,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   176,     0,
      143,   144,   145,   146,   147,     0,     0,   133,   134,   148,
      149,   135,   136,   137,   138,     0,   139,     0,     0,   140,
      141,   142,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   199,     0,     0,     0,   143,   144,   145,   146,
+       0,     0,     0,     0,     0,     0,   143,   144,   145,   146,
      147,     0,     0,   133,   134,   148,   149,   135,   136,   137,
      138,     0,   139,     0,     0,   140,   141,   142,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   232,     0,
-       0,     0,   143,   144,   145,   146,   147,     0,   200,   133,
+       0,     0,     0,   187,   188,     0,     0,     0,     0,     0,
+       0,     0,   143,   144,   145,   146,   147,     0,     0,   133,
      134,   148,   149,   135,   136,   137,   138,     0,   139,     0,
        0,   140,   141,   142,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   176,     0,   143,   144,
+       0,     0,     0,     0,     0,     0,     0,     0,   143,   144,
+     145,   146,   147,     0,     0,     0,   191,   148,   149,   133,
+     134,     0,     0,   135,   136,   137,   138,     0,   139,     0,
+       0,   140,   141,   142,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   143,   144,
      145,   146,   147,     0,     0,   133,   134,   148,   149,   135,
-     136,   137,   138,     0,   139,     0,     0,   140,   141,   142,
+     136,     0,     0,     0,   139,     0,     0,   140,   141,   142,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,   143,   144,   145,   146,   147,     0,
-       0,   133,   134,   148,   149,   135,   136,   137,   138,     0,
-     139,     0,     0,   140,   141,   142,     0,     0,     0,     0,
-       0,   187,   188,     0,     0,     0,     0,     0,     0,     0,
-     143,   144,   145,   146,   147,     0,     0,   133,   134,   148,
-     149,   135,   136,   137,   138,     0,   139,     0,     0,   140,
-     141,   142,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   143,   144,   145,   146,
-     147,     0,     0,     0,   191,   148,   149,   133,   134,     0,
-       0,   135,   136,   137,   138,     0,   139,     0,     0,   140,
-     141,   142,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   143,   144,   145,   146,
-     147,     0,     0,   133,   134,   148,   149,   135,   136,     0,
-       0,     0,   139,     0,     0,   140,   141,   142,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   143,   144,   145,   146,   147,     0,     0,     0,
-       0,   148,   149
+       0,     0,     0,   148,   149
 };
 
 static const yytype_int16 yycheck[] =
 {
-       4,   163,     0,     7,     8,     9,    37,    46,    12,    13,
-      14,    15,    31,   175,   224,    57,    58,    21,    78,     0,
-      24,    15,    16,    55,   101,   235,    30,    31,    36,    33,
-      34,    35,    36,    37,    38,   197,    30,    76,    70,    43,
-      44,    45,    46,    82,   104,   105,    30,    55,    55,    53,
-      52,    55,   101,    57,    47,   101,    49,    75,    30,   108,
-      78,    92,   108,    70,   101,    69,    13,    30,    15,    30,
-      75,   108,    76,    78,    93,    30,    80,    30,    82,    30,
-      98,    99,    86,    70,    88,    30,   104,   105,   107,    30,
-      95,    96,    97,    98,    99,   108,   100,   103,    75,   104,
-     105,    78,   108,   101,   103,   108,   103,   195,   196,   108,
-     102,   108,   107,   108,   102,   200,    29,    30,    47,    96,
-      97,    98,    99,   278,   279,   129,    30,   104,   105,   133,
+       4,     0,     0,     7,     8,     9,    37,    46,    12,    13,
+      14,    15,    31,    15,    16,   101,    36,    21,   101,   101,
+      24,    78,   108,    55,   163,   108,    30,    31,    30,    33,
+      34,    35,    36,    37,    38,    55,   175,    76,    70,    43,
+      44,    45,    46,    82,    55,   130,   131,   104,   105,    53,
+     101,    55,   224,    57,    47,   103,    49,   108,    30,    70,
+     108,    92,   103,   235,    52,    69,   103,   108,    57,    58,
+      75,   108,    76,    78,    93,    13,    80,    15,    82,   107,
+     108,    30,    86,    75,    88,    30,    78,    30,   107,    30,
+      95,    96,    97,    98,    99,    30,   100,    30,   200,   104,
+     105,    29,    30,   101,    96,    97,    98,    99,   278,   279,
+      30,   196,   104,   105,    30,   102,    70,   102,   108,    30,
+      47,    30,   108,    54,   108,   129,   108,    30,   127,   133,
      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,   127,   151,    54,   153,
-     108,   313,   108,    30,    30,    30,   108,   161,    70,    30,
-      30,   165,   166,    93,   168,   169,   108,    30,   172,   173,
-     258,   256,   176,    55,    94,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,   188,   273,    30,    38,    30,   193,
-     108,   276,    93,    30,    93,   199,    92,    56,   286,   127,
-     297,    31,   100,    -1,   164,   293,   291,   292,   296,   294,
-      -1,   250,    -1,    -1,    -1,   303,    -1,   302,    -1,    -1,
-      -1,   309,    -1,    -1,    -1,    -1,   311,   231,   232,   317,
-      -1,    -1,    -1,   318,   322,    -1,    -1,    -1,    -1,    -1,
+     144,   145,   146,   147,   148,   149,   108,   151,    30,   153,
+      30,    70,   254,    30,    54,   108,    30,   161,    55,    93,
+      30,   165,   166,    30,   168,   169,    38,   252,   172,   173,
+      94,   256,   176,    54,   276,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,   188,   108,    93,    30,   273,   193,
+     292,   293,    93,   295,    92,   199,    56,   127,   298,   164,
+      75,   303,   287,    78,   100,    31,    -1,    -1,    -1,   294,
+     312,   250,   297,    -1,    -1,    -1,    -1,   319,    -1,   304,
+      -1,    -1,   307,    98,    99,   310,    -1,   231,   232,   104,
+     105,    -1,    -1,   318,    -1,    -1,    -1,    -1,   323,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,   250,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,     0,     1,    -1,
-      -1,   265,   266,   267,   268,    -1,    -1,    -1,   272,    12,
-      -1,    -1,    15,    16,    17,    -1,    19,    20,    21,    22,
-      23,   285,    25,    26,    27,    -1,    29,    30,    31,    -1,
-      33,    -1,    35,    -1,   298,    -1,    39,    -1,    41,    42,
-      43,    -1,    -1,    46,    -1,    -1,    -1,    -1,    51,    52,
-      53,    -1,    -1,    56,    -1,    -1,    -1,    60,    61,    62,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   263,
+     264,   265,   266,    -1,    -1,    -1,    -1,    -1,   272,    -1,
+      -1,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   286,    12,    -1,    -1,    15,    16,    17,    -1,
+      19,    20,    21,    22,    23,   299,    25,    26,    27,    -1,
+      29,    30,    31,    -1,    33,    -1,    35,    -1,    -1,    -1,
+      39,    -1,    41,    42,    43,    -1,    -1,    46,    -1,    -1,
+      -1,    -1,    51,    52,    53,    -1,    -1,    56,    -1,    -1,
+      -1,    60,    61,    62,    63,    -1,    65,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,
+      -1,    -1,    81,    82,    83,    84,    85,    -1,    -1,    88,
+      89,    90,    91,    -1,    -1,    -1,    -1,    96,    97,    -1,
+      -1,    12,   101,   102,    15,    16,    17,   106,    19,    20,
+      21,    22,    23,    -1,    25,    26,    27,    -1,    29,    30,
+      31,    -1,    33,    -1,    35,    -1,    -1,    -1,    39,    -1,
+      41,    42,    43,    -1,    -1,    46,    -1,    -1,    -1,    -1,
+      51,    52,    53,    -1,    -1,    56,    -1,    -1,    -1,    60,
+      61,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    -1,    -1,
+      81,    82,    83,    84,    85,    -1,    -1,    88,    89,    90,
+      91,    -1,    -1,    -1,    -1,    96,    97,    -1,    -1,    12,
+      -1,   102,    15,    16,    17,   106,    19,    20,    21,    22,
+      23,    -1,    25,    26,    27,    -1,    29,    30,    31,    -1,
+      33,    34,    35,    -1,    -1,    -1,    39,    -1,    41,    42,
+      43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    51,    52,
+      53,    -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,    62,
       63,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
-      83,    84,    85,    -1,    -1,    88,    89,    90,    91,    -1,
+      83,    84,    85,    -1,    -1,    88,    89,    -1,    91,    -1,
       -1,    -1,    -1,    96,    97,    -1,    -1,    12,   101,   102,
       15,    16,    17,   106,    19,    20,    21,    22,    23,    -1,
       25,    26,    27,    -1,    29,    30,    31,    -1,    33,    -1,
       35,    -1,    -1,    -1,    39,    -1,    41,    42,    43,    -1,
-      -1,    46,    -1,    -1,    -1,    -1,    51,    52,    53,    -1,
-      -1,    56,    -1,    -1,    -1,    60,    61,    62,    63,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    51,    52,    53,    -1,
+      -1,    56,    -1,    -1,    -1,    -1,    -1,    62,    63,    -1,
       65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
       -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    84,
-      85,    -1,    -1,    88,    89,    90,    91,    -1,    -1,    -1,
-      -1,    96,    97,    -1,    -1,    12,    -1,   102,    15,    16,
+      85,    -1,    -1,    88,    89,    -1,    91,    -1,    -1,    -1,
+      -1,    96,    97,    -1,    -1,    12,   101,   102,    15,    16,
       17,   106,    19,    20,    21,    22,    23,    -1,    25,    26,
-      27,    -1,    29,    30,    31,    -1,    33,    34,    35,    -1,
-      -1,    -1,    39,    -1,    41,    42,    43,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    51,    52,    53,    -1,    -1,    56,
+      27,    -1,    29,    30,    31,    -1,    33,    -1,    35,    -1,
+      -1,    -1,    39,    -1,    41,    42,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    51,    -1,    53,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    62,    63,    -1,    65,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,
       -1,    -1,    -1,    -1,    81,    82,    83,    84,    85,    -1,
-      -1,    88,    89,    -1,    91,    -1,    -1,    -1,    -1,    96,
-      97,    -1,    -1,    12,   101,   102,    15,    16,    17,   106,
-      19,    20,    21,    22,    23,    -1,    25,    26,    27,    -1,
-      29,    30,    31,    -1,    33,    -1,    35,    -1,    -1,    -1,
-      39,    -1,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    51,    52,    53,    -1,    -1,    56,    -1,    -1,
-      -1,    -1,    -1,    62,    63,    -1,    65,    -1,    -1,    -1,
+      -1,    -1,    89,    12,    91,    -1,    15,    16,    17,    96,
+      97,    -1,    -1,    -1,    -1,   102,    25,    26,    27,   106,
+      29,    30,    31,    -1,    33,    -1,    -1,    -1,    -1,    -1,
+      -1,    40,    -1,    -1,    -1,    -1,    45,    -1,    47,    48,
+      49,    50,    51,    -1,    53,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,
-      -1,    -1,    81,    82,    83,    84,    85,    -1,    -1,    88,
-      89,    -1,    91,    -1,    -1,    -1,    -1,    96,    97,    -1,
-      -1,    12,   101,   102,    15,    16,    17,   106,    19,    20,
-      21,    22,    23,    -1,    25,    26,    27,    -1,    29,    30,
-      31,    -1,    33,    -1,    35,    -1,    -1,    -1,    39,    -1,
-      41,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    81,    82,    83,    84,    85,    -1,    -1,    -1,
+      -1,    12,    91,    -1,    15,    16,    17,    96,    97,    -1,
+      -1,    -1,    -1,   102,    25,    26,    27,   106,    29,    30,
+      31,    -1,    33,    -1,    -1,    -1,    -1,    -1,    -1,    40,
+      -1,    -1,    -1,    -1,    -1,    -1,    47,    -1,    49,    -1,
+      51,    -1,    53,    12,    -1,    -1,    15,    16,    17,    -1,
+      -1,    -1,    -1,    64,    -1,    -1,    25,    26,    27,    -1,
+      29,    30,    31,    74,    33,    -1,    -1,    -1,    -1,    -1,
+      81,    82,    83,    84,    85,    -1,    -1,    -1,    -1,    -1,
+      91,    -1,    51,    -1,    53,    96,    97,    -1,    -1,    -1,
+      -1,   102,    -1,    -1,    -1,   106,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,
+      -1,    -1,    81,    82,    83,    84,    85,    -1,    -1,    -1,
+      -1,    12,    91,    -1,    15,    16,    17,    96,    97,    -1,
+      -1,    -1,    55,   102,    25,    26,    27,   106,    29,    30,
+      31,    -1,    33,    66,    67,    -1,    -1,    70,    71,    72,
+      73,    -1,    75,    -1,    -1,    78,    79,    80,    -1,    -1,
       51,    -1,    53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    74,    -1,    -1,    -1,    -1,    -1,    -1,
-      81,    82,    83,    84,    85,    -1,    -1,    -1,    89,    12,
-      91,    -1,    15,    16,    17,    96,    97,    -1,    -1,    -1,
-      -1,   102,    25,    26,    27,   106,    29,    30,    31,    -1,
-      33,    -1,    -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,
-      -1,    -1,    45,    -1,    47,    48,    49,    50,    51,    -1,
-      53,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
-      83,    84,    85,    -1,    -1,    -1,    -1,    12,    91,    -1,
-      15,    16,    17,    96,    97,    -1,    -1,    -1,    -1,   102,
-      25,    26,    27,   106,    29,    30,    31,    -1,    33,    -1,
-      -1,    -1,    -1,    -1,    -1,    40,    -1,    -1,    -1,    -1,
-      -1,    -1,    47,    -1,    49,    -1,    51,    -1,    53,    12,
-      -1,    -1,    15,    16,    17,    -1,    -1,    -1,    -1,    64,
-      -1,    -1,    25,    26,    27,    -1,    29,    30,    31,    74,
-      33,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    84,
-      85,    -1,    -1,    -1,    -1,    -1,    91,    -1,    51,    -1,
-      53,    96,    97,    -1,    -1,    -1,    -1,   102,    -1,    -1,
-      -1,   106,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    74,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,
-      83,    84,    85,    -1,    -1,    -1,    -1,    12,    91,    -1,
-      15,    16,    17,    96,    97,    -1,    -1,    54,    -1,   102,
-      25,    26,    27,   106,    29,    30,    31,    -1,    33,    66,
-      67,    -1,    -1,    70,    71,    72,    73,    -1,    75,    -1,
-      -1,    78,    79,    80,    -1,    -1,    51,    -1,    53,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,
-      97,    98,    99,    -1,    -1,    -1,    -1,   104,   105,    74,
-      -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83,    84,
-      85,    44,    -1,    -1,    -1,    -1,    91,    -1,    -1,    -1,
-      -1,    96,    97,    -1,    -1,    -1,    -1,   102,    -1,    -1,
-      -1,   106,    -1,    66,    67,    -1,    -1,    70,    71,    72,
-      73,    -1,    75,    76,    77,    78,    79,    80,    -1,    -1,
+      -1,    -1,    95,    96,    97,    98,    99,    -1,   101,    -1,
+      -1,   104,   105,    74,    -1,    -1,    -1,    -1,    -1,    -1,
+      81,    82,    83,    84,    85,    44,    -1,    -1,    -1,    -1,
+      91,    -1,    -1,    -1,    -1,    96,    97,    -1,    -1,    -1,
+      -1,   102,    -1,    -1,    -1,   106,    -1,    66,    67,    -1,
+      -1,    70,    71,    72,    73,    -1,    75,    76,    77,    78,
+      79,    80,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,
+      -1,    -1,    55,    -1,    -1,    -1,    95,    96,    97,    98,
+      99,    -1,    -1,    66,    67,   104,   105,    70,    71,    72,
+      73,    -1,    75,    -1,    -1,    78,    79,    80,    -1,    -1,
       -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,    55,    -1,
       -1,    -1,    95,    96,    97,    98,    99,    -1,    -1,    66,
       67,   104,   105,    70,    71,    72,    73,    -1,    75,    -1,
@@ -1188,7 +1187,7 @@ static const yytype_int16 yycheck[] =
       55,    -1,    -1,    -1,    95,    96,    97,    98,    99,    -1,
       -1,    66,    67,   104,   105,    70,    71,    72,    73,    -1,
       75,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
-      49,    -1,    -1,    -1,    -1,    -1,    55,    -1,    -1,    -1,
+      49,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       95,    96,    97,    98,    99,    -1,    -1,    66,    67,   104,
      105,    70,    71,    72,    73,    -1,    75,    -1,    -1,    78,
       79,    80,    -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,
@@ -1202,42 +1201,31 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,
       97,    98,    99,    -1,    -1,    66,    67,   104,   105,    70,
       71,    72,    73,    -1,    75,    -1,    -1,    78,    79,    80,
-      -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    95,    96,    97,    98,    99,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      55,    -1,    -1,    -1,    95,    96,    97,    98,    99,    -1,
       -1,    66,    67,   104,   105,    70,    71,    72,    73,    -1,
       75,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,
       95,    96,    97,    98,    99,    -1,    -1,    66,    67,   104,
      105,    70,    71,    72,    73,    -1,    75,    -1,    -1,    78,
       79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    55,    -1,    -1,    -1,    95,    96,    97,    98,
+      -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
       99,    -1,    -1,    66,    67,   104,   105,    70,    71,    72,
       73,    -1,    75,    -1,    -1,    78,    79,    80,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    55,    -1,
-      -1,    -1,    95,    96,    97,    98,    99,    -1,   101,    66,
+      -1,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    95,    96,    97,    98,    99,    -1,    -1,    66,
       67,   104,   105,    70,    71,    72,    73,    -1,    75,    -1,
       -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    57,    -1,    95,    96,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,
+      97,    98,    99,    -1,    -1,    -1,   103,   104,   105,    66,
+      67,    -1,    -1,    70,    71,    72,    73,    -1,    75,    -1,
+      -1,    78,    79,    80,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    95,    96,
       97,    98,    99,    -1,    -1,    66,    67,   104,   105,    70,
-      71,    72,    73,    -1,    75,    -1,    -1,    78,    79,    80,
+      71,    -1,    -1,    -1,    75,    -1,    -1,    78,    79,    80,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    95,    96,    97,    98,    99,    -1,
-      -1,    66,    67,   104,   105,    70,    71,    72,    73,    -1,
-      75,    -1,    -1,    78,    79,    80,    -1,    -1,    -1,    -1,
-      -1,    86,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      95,    96,    97,    98,    99,    -1,    -1,    66,    67,   104,
-     105,    70,    71,    72,    73,    -1,    75,    -1,    -1,    78,
-      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
-      99,    -1,    -1,    -1,   103,   104,   105,    66,    67,    -1,
-      -1,    70,    71,    72,    73,    -1,    75,    -1,    -1,    78,
-      79,    80,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    95,    96,    97,    98,
-      99,    -1,    -1,    66,    67,   104,   105,    70,    71,    -1,
-      -1,    -1,    75,    -1,    -1,    78,    79,    80,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    95,    96,    97,    98,    99,    -1,    -1,    -1,
-      -1,   104,   105
+      -1,    -1,    -1,   104,   105
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1263,20 +1251,20 @@ static const yytype_uint8 yystos[] =
      128,    47,   136,   140,    44,    76,    77,    30,    55,    70,
      127,   128,    55,    70,    54,   141,    57,   136,   108,    49,
       55,    49,    55,    49,    55,    49,    55,    86,    87,   108,
-      30,   103,   107,   108,   111,   124,   128,    54,   123,    55,
+      30,   103,   107,   108,   111,   123,   128,   123,   123,    55,
      101,   128,   128,   128,   128,   128,   128,   128,   128,   128,
      128,   128,   128,   128,   128,   128,   128,   128,    30,   143,
      128,   103,    30,   128,   122,    30,   129,   128,   128,   128,
      128,    70,    55,   128,   128,   122,   128,    30,   128,   128,
      128,   128,   128,   128,   128,   128,   128,   128,    30,   103,
-     108,   128,   101,   114,   123,   123,   122,   128,   124,   101,
-     108,   143,   128,   128,   143,    49,    49,    49,    49,   147,
-      93,    36,    55,   124,   123,   108,   145,    30,   101,   101,
-     128,   128,   128,   128,   103,    55,   128,   123,    94,    30,
-     124,   145,   145,   128,   123,    38,   116,   117,   121,    34,
-     124,   124,   123,   124,   123,   116,   128,    30,   144,   124,
-     123,    37,    92,    54,   108,   123,    93,   124,   122,    30,
-      93,   123,   124,    92,   123
+     108,   128,   124,   123,    54,   128,   124,   101,   108,   143,
+     128,   128,   143,    49,    49,    49,    49,   147,   101,   114,
+     123,    36,    55,   124,   123,   108,   145,    30,   101,   101,
+     128,   128,   128,   128,   103,    93,    55,   128,   123,    94,
+      30,   124,   145,   145,   128,   123,    38,   116,   117,   121,
+      34,   124,   124,   123,   124,   123,   116,   128,    30,   144,
+     124,   123,    37,    92,   123,   108,   123,    93,   124,    54,
+      30,    93,   123,   124,    92,   123
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -2188,10 +2176,10 @@ yyreduce:
 #line 192 "engines/director/lingo/lingo-gr.y"
     {
 		inst body = 0, end = 0;
-		WRITE_UINT32(&body, (yyvsp[(3) - (5)].code) - (yyvsp[(1) - (5)].code));
-		WRITE_UINT32(&end, (yyvsp[(4) - (5)].code) - (yyvsp[(1) - (5)].code));
-		(*g_lingo->_currentScript)[(yyvsp[(1) - (5)].code) + 1] = body;	/* body of loop */
-		(*g_lingo->_currentScript)[(yyvsp[(1) - (5)].code) + 2] = end; ;}
+		WRITE_UINT32(&body, (yyvsp[(3) - (6)].code) - (yyvsp[(1) - (6)].code));
+		WRITE_UINT32(&end, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code));
+		(*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = body;	/* body of loop */
+		(*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 2] = end; ;}
     break;
 
   case 24:
@@ -2252,7 +2240,7 @@ yyreduce:
 #line 244 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
-		WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
+		WRITE_UINT32(&then, (yyvsp[(3) - (9)].code) - (yyvsp[(1) - (9)].code));
 		WRITE_UINT32(&else1, (yyvsp[(6) - (9)].code) - (yyvsp[(1) - (9)].code));
 		WRITE_UINT32(&end, (yyvsp[(8) - (9)].code) - (yyvsp[(1) - (9)].code));
 		(*g_lingo->_currentScript)[(yyvsp[(1) - (9)].code) + 1] = then;	/* thenpart */
@@ -2266,7 +2254,7 @@ yyreduce:
 #line 254 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
-		WRITE_UINT32(&then, (yyvsp[(4) - (12)].code) - (yyvsp[(1) - (12)].code));
+		WRITE_UINT32(&then, (yyvsp[(3) - (12)].code) - (yyvsp[(1) - (12)].code));
 		WRITE_UINT32(&else1, (yyvsp[(6) - (12)].code) - (yyvsp[(1) - (12)].code));
 		WRITE_UINT32(&end, (yyvsp[(11) - (12)].code) - (yyvsp[(1) - (12)].code));
 		(*g_lingo->_currentScript)[(yyvsp[(1) - (12)].code) + 1] = then;	/* thenpart */
@@ -2282,7 +2270,7 @@ yyreduce:
 #line 272 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0;
-		WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
+		WRITE_UINT32(&then, (yyvsp[(3) - (6)].code) - (yyvsp[(1) - (6)].code));
 		(*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 1] = then;	/* thenpart */
 
 		g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
@@ -2915,7 +2903,7 @@ yyreduce:
 
 
 /* Line 1267 of yacc.c.  */
-#line 2919 "engines/director/lingo/lingo-gr.cpp"
+#line 2907 "engines/director/lingo/lingo-gr.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 7887ffb..ad34708 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -189,10 +189,10 @@ stmt: stmtoneliner
 	//   statements
 	// end repeat
 	//
-	| repeatwhile expr stmtlist end tENDREPEAT	{
+	| repeatwhile expr end stmtlist end tENDREPEAT	{
 		inst body = 0, end = 0;
 		WRITE_UINT32(&body, $3 - $1);
-		WRITE_UINT32(&end, $4 - $1);
+		WRITE_UINT32(&end, $5 - $1);
 		(*g_lingo->_currentScript)[$1 + 1] = body;	/* body of loop */
 		(*g_lingo->_currentScript)[$1 + 2] = end; }	/* end, if cond fails */
 	;
@@ -241,9 +241,9 @@ stmt: stmtoneliner
 		}
 	;
 
-ifstmt: if expr tTHEN begin stmtlist end elseifstmtlist end tENDIF {
+ifstmt: if expr end tTHEN stmtlist end elseifstmtlist end tENDIF {
 		inst then = 0, else1 = 0, end = 0;
-		WRITE_UINT32(&then, $4 - $1);
+		WRITE_UINT32(&then, $3 - $1);
 		WRITE_UINT32(&else1, $6 - $1);
 		WRITE_UINT32(&end, $8 - $1);
 		(*g_lingo->_currentScript)[$1 + 1] = then;	/* thenpart */
@@ -251,9 +251,9 @@ ifstmt: if expr tTHEN begin stmtlist end elseifstmtlist end tENDIF {
 		(*g_lingo->_currentScript)[$1 + 3] = end;	/* end, if cond fails */
 
 		g_lingo->processIf(0, $8 - $1); }
-	| if expr tTHEN begin stmtlist end elseifstmtlist end tELSE stmtlist end tENDIF {
+	| if expr end tTHEN stmtlist end elseifstmtlist end tELSE stmtlist end tENDIF {
 		inst then = 0, else1 = 0, end = 0;
-		WRITE_UINT32(&then, $4 - $1);
+		WRITE_UINT32(&then, $3 - $1);
 		WRITE_UINT32(&else1, $6 - $1);
 		WRITE_UINT32(&end, $11 - $1);
 		(*g_lingo->_currentScript)[$1 + 1] = then;	/* thenpart */
@@ -269,9 +269,9 @@ elseifstmtlist:	/* nothing */
 	| elseifstmt elseifstmtlist
 	;
 
-elseifstmt: elseif expr tTHEN begin stmtlist end {
+elseifstmt: elseif expr end tTHEN stmtlist end {
 		inst then = 0;
-		WRITE_UINT32(&then, $4 - $1);
+		WRITE_UINT32(&then, $3 - $1);
 		(*g_lingo->_currentScript)[$1 + 1] = then;	/* thenpart */
 
 		g_lingo->codeLabel($1); }




More information about the Scummvm-git-logs mailing list