[Scummvm-git-logs] scummvm master -> 600cdb81626b92871b01f3607a8280a428ec62d5

sev- sev at scummvm.org
Mon Jun 1 10:46:37 UTC 2020


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

Summary:
9af83d970d DIRECTOR: LINGO: Eliminate 'end' token
872c10c430 DIRECTOR: LINGO: Renamed 'begin' to 'lbl' for better semantics
600cdb8162 DIRECTOR: LINGO: Simplified 'if' grammar


Commit: 9af83d970dce74753fc919dbae1cf9ee0d94e3f1
    https://github.com/scummvm/scummvm/commit/9af83d970dce74753fc919dbae1cf9ee0d94e3f1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-06-01T12:45:54+02:00

Commit Message:
DIRECTOR: LINGO: Eliminate 'end' token

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 af853b70f3..6d38c0ee22 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -431,40 +431,39 @@ enum yysymbol_kind_t
   YYSYMBOL_varassign = 125,                /* varassign  */
   YYSYMBOL_if = 126,                       /* if  */
   YYSYMBOL_begin = 127,                    /* begin  */
-  YYSYMBOL_end = 128,                      /* end  */
-  YYSYMBOL_stmtlist = 129,                 /* stmtlist  */
-  YYSYMBOL_simpleexpr = 130,               /* simpleexpr  */
-  YYSYMBOL_expr = 131,                     /* expr  */
-  YYSYMBOL_chunkexpr = 132,                /* chunkexpr  */
-  YYSYMBOL_reference = 133,                /* reference  */
-  YYSYMBOL_proc = 134,                     /* proc  */
-  YYSYMBOL_135_10 = 135,                   /* $@10  */
-  YYSYMBOL_136_11 = 136,                   /* $@11  */
-  YYSYMBOL_137_12 = 137,                   /* $@12  */
-  YYSYMBOL_globallist = 138,               /* globallist  */
-  YYSYMBOL_propertylist = 139,             /* propertylist  */
-  YYSYMBOL_instancelist = 140,             /* instancelist  */
-  YYSYMBOL_gotofunc = 141,                 /* gotofunc  */
-  YYSYMBOL_gotomovie = 142,                /* gotomovie  */
-  YYSYMBOL_playfunc = 143,                 /* playfunc  */
-  YYSYMBOL_144_13 = 144,                   /* $@13  */
-  YYSYMBOL_defn = 145,                     /* defn  */
-  YYSYMBOL_146_14 = 146,                   /* $@14  */
-  YYSYMBOL_147_15 = 147,                   /* $@15  */
-  YYSYMBOL_148_16 = 148,                   /* $@16  */
-  YYSYMBOL_on = 149,                       /* on  */
-  YYSYMBOL_150_17 = 150,                   /* $@17  */
-  YYSYMBOL_argdef = 151,                   /* argdef  */
-  YYSYMBOL_endargdef = 152,                /* endargdef  */
-  YYSYMBOL_argstore = 153,                 /* argstore  */
-  YYSYMBOL_macro = 154,                    /* macro  */
-  YYSYMBOL_arglist = 155,                  /* arglist  */
-  YYSYMBOL_nonemptyarglist = 156,          /* nonemptyarglist  */
-  YYSYMBOL_list = 157,                     /* list  */
-  YYSYMBOL_valuelist = 158,                /* valuelist  */
-  YYSYMBOL_linearlist = 159,               /* linearlist  */
-  YYSYMBOL_proplist = 160,                 /* proplist  */
-  YYSYMBOL_proppair = 161                  /* proppair  */
+  YYSYMBOL_stmtlist = 128,                 /* stmtlist  */
+  YYSYMBOL_simpleexpr = 129,               /* simpleexpr  */
+  YYSYMBOL_expr = 130,                     /* expr  */
+  YYSYMBOL_chunkexpr = 131,                /* chunkexpr  */
+  YYSYMBOL_reference = 132,                /* reference  */
+  YYSYMBOL_proc = 133,                     /* proc  */
+  YYSYMBOL_134_10 = 134,                   /* $@10  */
+  YYSYMBOL_135_11 = 135,                   /* $@11  */
+  YYSYMBOL_136_12 = 136,                   /* $@12  */
+  YYSYMBOL_globallist = 137,               /* globallist  */
+  YYSYMBOL_propertylist = 138,             /* propertylist  */
+  YYSYMBOL_instancelist = 139,             /* instancelist  */
+  YYSYMBOL_gotofunc = 140,                 /* gotofunc  */
+  YYSYMBOL_gotomovie = 141,                /* gotomovie  */
+  YYSYMBOL_playfunc = 142,                 /* playfunc  */
+  YYSYMBOL_143_13 = 143,                   /* $@13  */
+  YYSYMBOL_defn = 144,                     /* defn  */
+  YYSYMBOL_145_14 = 145,                   /* $@14  */
+  YYSYMBOL_146_15 = 146,                   /* $@15  */
+  YYSYMBOL_147_16 = 147,                   /* $@16  */
+  YYSYMBOL_on = 148,                       /* on  */
+  YYSYMBOL_149_17 = 149,                   /* $@17  */
+  YYSYMBOL_argdef = 150,                   /* argdef  */
+  YYSYMBOL_endargdef = 151,                /* endargdef  */
+  YYSYMBOL_argstore = 152,                 /* argstore  */
+  YYSYMBOL_macro = 153,                    /* macro  */
+  YYSYMBOL_arglist = 154,                  /* arglist  */
+  YYSYMBOL_nonemptyarglist = 155,          /* nonemptyarglist  */
+  YYSYMBOL_list = 156,                     /* list  */
+  YYSYMBOL_valuelist = 157,                /* valuelist  */
+  YYSYMBOL_linearlist = 158,               /* linearlist  */
+  YYSYMBOL_proplist = 159,                 /* proplist  */
+  YYSYMBOL_proppair = 160                  /* proppair  */
 };
 typedef enum yysymbol_kind_t yysymbol_kind_t;
 
@@ -779,9 +778,9 @@ union yyalloc
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  104
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  58
+#define YYNNTS  57
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  175
+#define YYNRULES  174
 /* YYNSTATES -- Number of states.  */
 #define YYNSTATES  364
 
@@ -844,20 +843,20 @@ static const yytype_int16 yyrline[] =
      199,   200,   201,   208,   215,   222,   229,   235,   242,   253,
      260,   261,   262,   264,   265,   270,   282,   286,   289,   281,
      313,   317,   320,   312,   346,   352,   358,   345,   385,   387,
-     390,   394,   399,   403,   410,   418,   419,   421,   427,   431,
-     435,   439,   442,   444,   446,   447,   448,   450,   453,   456,
-     460,   464,   468,   476,   477,   478,   489,   490,   491,   494,
-     497,   500,   503,   509,   514,   520,   521,   522,   523,   524,
-     525,   526,   527,   528,   529,   530,   531,   532,   533,   534,
-     535,   536,   537,   538,   539,   540,   541,   542,   544,   545,
-     546,   547,   548,   549,   550,   551,   553,   556,   558,   559,
-     560,   561,   562,   563,   563,   564,   564,   565,   565,   566,
-     569,   572,   573,   575,   580,   586,   591,   597,   602,   615,
-     616,   617,   618,   622,   626,   631,   632,   634,   638,   642,
-     646,   646,   676,   676,   676,   682,   683,   683,   689,   697,
-     703,   703,   706,   707,   708,   710,   711,   712,   714,   716,
-     724,   725,   726,   728,   729,   731,   733,   734,   735,   736,
-     738,   739,   741,   742,   744,   748
+     390,   395,   401,   405,   412,   420,   421,   423,   429,   433,
+     437,   441,   444,   446,   447,   448,   450,   453,   456,   460,
+     464,   468,   476,   477,   478,   489,   490,   491,   494,   497,
+     500,   503,   509,   514,   520,   521,   522,   523,   524,   525,
+     526,   527,   528,   529,   530,   531,   532,   533,   534,   535,
+     536,   537,   538,   539,   540,   541,   542,   544,   545,   546,
+     547,   548,   549,   550,   551,   553,   556,   558,   559,   560,
+     561,   562,   563,   563,   564,   564,   565,   565,   566,   569,
+     572,   573,   575,   580,   586,   591,   597,   602,   615,   616,
+     617,   618,   622,   626,   631,   632,   634,   638,   642,   646,
+     646,   676,   676,   676,   682,   683,   683,   689,   697,   703,
+     703,   706,   707,   708,   710,   711,   712,   714,   716,   724,
+     725,   726,   728,   729,   731,   733,   734,   735,   736,   738,
+     739,   741,   742,   744,   748
 };
 #endif
 
@@ -892,7 +891,7 @@ yysymbol_name (yysymbol_kind_t yysymbol)
   "$accept", "program", "programline", "asgn", "stmtoneliner", "stmt",
   "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9",
   "tellstart", "ifstmt", "elseifstmtlist", "elseifstmt", "jumpifz", "jump",
-  "varassign", "if", "begin", "end", "stmtlist", "simpleexpr", "expr",
+  "varassign", "if", "begin", "stmtlist", "simpleexpr", "expr",
   "chunkexpr", "reference", "proc", "$@10", "$@11", "$@12", "globallist",
   "propertylist", "instancelist", "gotofunc", "gotomovie", "playfunc",
   "$@13", "defn", "$@14", "$@15", "$@16", "on", "$@17", "argdef",
@@ -927,7 +926,7 @@ static const yytype_int16 yytoknum[] =
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
 
-#define YYTABLE_NINF (-167)
+#define YYTABLE_NINF (-166)
 
 #define yytable_value_is_error(Yyn) \
   0
@@ -956,22 +955,22 @@ static const yytype_int16 yypact[] =
      224,    -1,   101,   224,   224,   224,   224,   224,  -295,  -295,
       50,   224,   224,   224,   224,   224,   224,   224,   224,   224,
      224,  -295,  -295,  -295,    51,  -295,  -295,    88,    88,  -295,
-     224,    -7,  -295,    99,   117,   117,   117,   117,  2446,  2446,
-    -295,   -45,   117,   117,   117,   117,   -45,   -51,   -51,  -295,
+     224,    -7,  -295,    99,   123,   123,   123,   123,  2446,  2446,
+    -295,   -45,   123,   123,   123,   123,   -45,   -51,   -51,  -295,
     -295,  -295,   -46,  -295,  2433,  -295,  -295,  2433,   -29,   127,
     2433,  -295,   112,  -295,  -295,  2433,  2433,   224,   224,  2433,
-    2433,   117,   224,   224,   131,  2433,   117,  2433,  2433,  2433,
+    2433,   123,   224,   224,   131,  2433,   123,  2433,  2433,  2433,
      132,  2433,  2185,  2433,  2218,  2433,  2251,  2433,  2284,  2433,
     2433,  1710,  -295,   135,  -295,  -295,  2433,    17,    36,  -295,
     -295,  -295,   139,  -295,  -295,   120,   224,  2433,   378,  -295,
-    2433,   117,    88,  -295,   224,   224,   224,   224,  -295,  1199,
+    2433,   123,    88,  -295,   224,   224,   224,   224,  -295,  1199,
     -295,  1113,  -295,  -295,  -295,   -22,  2433,  -295,  -295,  -295,
     1284,   119,  2433,  2433,  2433,  2433,  -295,  -295,  -295,    86,
     -295,   858,   943,  -295,  -295,  -295,  -295,    98,   224,  -295,
-      64,   165,  -295,  -295,   138,   158,  -295,  2433,  -295,   224,
-    -295,   109,  -295,    96,  1028,  -295,   224,   143,  -295,  2433,
+      64,   161,  -295,  -295,   136,   156,  -295,  2433,  -295,   224,
+    -295,   106,  -295,    95,  1028,  -295,   224,   143,  -295,  2433,
     -295,   173,  -295,  2433,   224,  1369,   149,  -295,  1455,  -295,
-    2433,   121,  -295,  -295,  -295,  -295,  -295,  1113,  1540,  -295,
+    2433,   117,  -295,  -295,  -295,  -295,  -295,  1113,  1540,  -295,
     -295,  -295,  1625,  -295
 };
 
@@ -980,54 +979,54 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,     0,    57,    62,     0,    58,     0,     0,     0,     0,
-       0,    60,    59,   140,   146,    73,    74,   112,   113,     0,
-     129,    51,   142,     0,     0,     0,     0,     0,     0,     0,
-       0,   117,     0,     0,     0,     0,     0,     0,     0,   115,
-     150,     0,     0,     0,     0,     0,     2,    75,    23,     6,
-      24,     0,    66,    21,   107,    67,    22,   109,   110,     5,
-      52,    20,    64,    65,    61,    72,    61,     0,     0,   161,
-     120,     0,    69,   106,     0,     0,   163,   159,     0,    52,
-     111,     0,     0,   130,     0,   131,   132,   134,     0,    38,
-       0,   108,     0,    52,     0,     0,     0,     0,     0,     0,
-     145,   122,   137,   139,     0,    89,     0,     0,     0,     0,
-       0,     0,     0,     0,    94,    95,     0,    60,    59,   167,
-     170,     0,   168,   169,   172,     1,     0,    48,     0,     0,
+       0,     0,    56,    61,     0,    57,     0,     0,     0,     0,
+       0,    59,    58,   139,   145,    72,    73,   111,   112,     0,
+     128,    51,   141,     0,     0,     0,     0,     0,     0,     0,
+       0,   116,     0,     0,     0,     0,     0,     0,     0,   114,
+     149,     0,     0,     0,     0,     0,     2,    74,    23,     6,
+      24,     0,    65,    21,   106,    66,    22,   108,   109,     5,
+      52,    20,    63,    64,    60,    71,    60,     0,     0,   160,
+     119,     0,    68,   105,     0,     0,   162,   158,     0,    52,
+     110,     0,     0,   129,     0,   130,   131,   133,     0,    38,
+       0,   107,     0,    52,     0,     0,     0,     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,    48,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   152,     0,     0,   161,     0,
-       0,     0,    71,     0,     0,   141,   152,   123,   114,   136,
-       0,   133,   143,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   138,   127,
-     118,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    42,    42,   125,   116,   151,    63,     0,     0,   165,
-       0,     0,     3,     0,    85,    86,    83,    84,    87,    88,
-      80,    91,    92,    93,    82,    81,    90,    76,    77,    78,
-      79,   153,     0,   119,   162,    68,    70,   164,     0,     0,
-     135,    52,     0,     7,     8,    10,    11,     0,     0,    48,
-      15,    13,     0,     0,     0,    14,    12,    19,    39,   121,
-       0,    98,     0,   100,     0,   102,     0,   104,     0,    96,
-      97,     0,    54,     0,   175,   174,   171,     0,     0,   173,
-      54,   158,     0,   158,   124,   152,     0,    34,    26,    54,
-      16,    17,     0,   128,     0,     0,     0,     0,    53,     0,
-     126,     0,    54,   154,    54,     0,     9,    52,    50,    50,
-       0,     0,    99,   101,   103,   105,    41,    55,    56,     0,
-      45,     0,     0,   158,    35,    27,    31,     0,     0,    40,
-      52,   155,    54,    48,     0,     0,    25,    18,    52,     0,
-      46,     0,   156,   148,     0,    36,     0,     0,    54,    48,
-      43,     0,    54,    28,     0,     0,     0,   157,     0,    48,
-      32,     0,    54,    37,    54,    48,    44,     0,     0,    54,
+       0,     0,     0,     0,     0,   151,     0,     0,   160,     0,
+       0,     0,    70,     0,     0,   140,   151,   122,   113,   135,
+       0,   132,   142,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   137,   126,
+     117,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    42,    42,   124,   115,   150,    62,     0,     0,   164,
+       0,     0,     3,     0,    84,    85,    82,    83,    86,    87,
+      79,    90,    91,    92,    81,    80,    89,    75,    76,    77,
+      78,   152,     0,   118,   161,    67,    69,   163,     0,     0,
+     134,    52,     0,     7,     8,    10,    11,     0,     0,    48,
+      15,    13,     0,     0,     0,    14,    12,    19,    39,   120,
+       0,    97,     0,    99,     0,   101,     0,   103,     0,    95,
+      96,     0,    53,     0,   174,   173,   170,     0,     0,   172,
+      53,   157,     0,   157,   123,   151,     0,    34,    26,    53,
+      16,    17,     0,   127,     0,     0,     0,     0,    52,     0,
+     125,     0,    53,   153,    53,     0,     9,    52,    50,    50,
+       0,     0,    98,   100,   102,   104,    41,    54,    55,     0,
+      45,     0,     0,   157,    35,    27,    31,     0,     0,    40,
+      52,   154,    53,    48,     0,     0,    25,    18,    52,     0,
+      46,     0,   155,   147,     0,    36,     0,     0,    53,    48,
+      43,     0,    53,    28,     0,     0,     0,   156,     0,    48,
+      32,     0,    53,    37,    53,    48,    44,     0,     0,    53,
       47,    29,     0,    33
 };
 
   /* YYPGOTONTERM-NUM.  */
 static const yytype_int16 yypgoto[] =
 {
-    -295,    79,  -295,  -295,   -58,    15,  -295,  -295,  -295,  -295,
-    -295,  -295,  -295,  -295,  -295,    14,  -295,  -295,  -295,  -151,
-    -294,   -86,  -295,   -76,   -75,  1654,     3,    -6,  -295,    52,
-    -295,  -295,  -295,  -295,  -295,  -295,  -295,  -295,   -20,  -295,
-    -295,  -295,  -295,  -295,  -295,  -295,  -295,  -154,  -295,  -261,
-    -295,     2,  -295,  -295,  -295,  -295,  -295,    18
+    -295,    79,  -295,  -295,   -55,    15,  -295,  -295,  -295,  -295,
+    -295,  -295,  -295,  -295,  -295,    18,  -295,  -295,  -295,  -151,
+    -294,   -92,  -295,   -76,  1654,     3,    -6,  -295,    44,  -295,
+    -295,  -295,  -295,  -295,  -295,  -295,  -295,   -20,  -295,  -295,
+    -295,  -295,  -295,  -295,  -295,  -295,  -154,  -295,  -261,  -295,
+       2,  -295,  -295,  -295,  -295,  -295,     8
 };
 
   /* YYDEFGOTONTERM-NUM.  */
@@ -1035,10 +1034,10 @@ static const yytype_int16 yydefgoto[] =
 {
       -1,    45,    46,    47,    48,   308,   298,   324,   349,   299,
      325,   355,   297,   323,   342,   261,    50,   320,   330,   203,
-     310,   315,    51,   145,   306,   289,    52,    53,    54,    55,
-      56,    81,   112,   104,   158,   194,   180,    57,    87,    58,
-      78,    59,    88,   231,    79,    60,   113,   222,   333,   292,
-      61,   153,    77,    62,   121,   122,   123,   124
+     310,   315,    51,   145,   289,    52,    53,    54,    55,    56,
+      81,   112,   104,   158,   194,   180,    57,    87,    58,    78,
+      59,    88,   231,    79,    60,   113,   222,   333,   292,    61,
+     153,    77,    62,   121,   122,   123,   124
 };
 
   /* YYTABLEYYPACT[STATE-NUM] -- What to do in state STATE-NUM.  If
@@ -1064,10 +1063,10 @@ static const yytype_int16 yytable[] =
      250,   263,   270,   274,   230,   275,   276,   282,   283,   235,
      236,   290,   239,   240,   241,   293,   232,   245,   246,   247,
      248,   249,   335,   318,   319,   251,   252,   253,   254,   255,
-     256,   257,   258,   259,   260,   326,    43,   134,   346,    44,
-     135,   332,   336,   337,   266,   340,   341,   344,   354,   347,
-     264,   265,   352,   288,   359,   202,   262,   356,   140,   141,
-     142,   143,   144,   316,   309,     0,   234,     0,     0,   269,
+     256,   257,   258,   259,   260,   326,    43,   332,   346,    44,
+     336,   337,   340,   134,   266,   341,   135,   344,   354,   347,
+     264,   265,   352,   356,   359,   202,   288,   316,   234,   269,
+     262,     0,   306,   309,   140,   141,   142,   143,   144,     0,
        0,   314,     0,     0,     0,     1,     0,     0,     0,     0,
        0,   277,   278,     0,     0,     0,   280,   281,     2,     0,
        0,     3,     4,     0,   331,     5,     0,     7,     8,     9,
@@ -1077,17 +1076,17 @@ static const yytype_int16 yytable[] =
      304,   305,     0,     0,     0,   301,     0,     0,     0,     0,
        0,     0,     0,    32,     0,     0,     0,     0,     0,     0,
       33,    34,    35,    36,    37,     0,     0,     0,     0,     0,
-    -160,     1,   327,     0,     0,     0,    41,    42,     0,     0,
+    -159,     1,   327,     0,     0,     0,    41,    42,     0,     0,
        0,     0,    43,   339,     2,    44,     0,     3,     4,     0,
-     343,     5,  -160,     7,     8,     9,    66,    11,   350,    12,
-    -160,  -160,     0,    15,    16,  -160,  -160,  -160,  -160,  -160,
-    -160,  -160,  -160,     0,  -160,     0,  -160,  -160,  -160,     0,
-      67,  -160,    26,  -160,  -160,  -160,  -160,     0,     0,     0,
-    -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,  -160,    32,
-    -160,  -160,  -160,  -160,  -160,  -160,    33,    34,    35,    36,
-      37,  -160,  -160,  -160,  -160,     0,  -160,  -160,  -160,  -160,
-    -160,  -160,    41,    42,  -160,  -160,     1,  -160,    71,  -160,
-    -160,    44,  -160,   -30,     0,     0,     0,     0,     0,     2,
+     343,     5,  -159,     7,     8,     9,    66,    11,   350,    12,
+    -159,  -159,     0,    15,    16,  -159,  -159,  -159,  -159,  -159,
+    -159,  -159,  -159,     0,  -159,     0,  -159,  -159,  -159,     0,
+      67,  -159,    26,  -159,  -159,  -159,  -159,     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,    71,  -159,
+    -159,    44,  -159,   -30,     0,     0,     0,     0,     0,     2,
        0,     0,     3,     4,     0,     0,     5,     0,     7,     8,
        9,    66,   117,     0,   118,     0,     0,     0,    15,    16,
        0,   128,   129,   130,   131,   132,   133,     0,   134,     0,
@@ -1095,43 +1094,43 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,   138,   139,   140,
      141,   142,   143,   144,    32,     0,     0,     0,     0,     0,
        0,    33,    34,    35,    36,    37,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   -61,     1,    41,    42,     0,
-       0,     0,     0,    43,     0,     0,    44,  -166,   119,     2,
-       0,     0,     3,     4,     0,     0,     5,   -61,     7,     8,
-       9,    66,    11,     0,    12,   -61,   -61,     0,    15,    16,
-       0,   -61,   -61,   -61,   -61,   -61,   -61,   -61,     0,     0,
-       0,     0,   -61,     0,     0,    67,   -61,    26,     0,     0,
-     -61,     0,     0,     0,     0,   -61,   -61,   -61,   -61,   -61,
-     -61,   -61,   -61,   -61,    32,   -61,     0,     0,   -61,   -61,
-     -61,    33,    34,    35,    36,    37,     0,     0,   -61,   -61,
-       0,   -61,   -61,   -61,   -61,   -61,   -61,    41,    42,   -61,
-     -61,     0,   -61,    75,  -160,     1,    44,     0,     0,     0,
+       0,     0,     0,     0,     0,   -60,     1,    41,    42,     0,
+       0,     0,     0,    43,     0,     0,    44,  -165,   119,     2,
+       0,     0,     3,     4,     0,     0,     5,   -60,     7,     8,
+       9,    66,    11,     0,    12,   -60,   -60,     0,    15,    16,
+       0,   -60,   -60,   -60,   -60,   -60,   -60,   -60,     0,     0,
+       0,     0,   -60,     0,     0,    67,   -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,    75,  -159,     1,    44,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     2,     0,
-       0,     3,     4,     0,     0,     5,  -160,     7,     8,     9,
-      66,    11,     0,    12,  -160,  -160,     0,    15,    16,     0,
-    -160,  -160,  -160,  -160,  -160,  -160,  -160,     0,     0,     0,
-       0,  -160,     0,     0,    67,  -160,    26,     0,     0,  -160,
-       0,     0,     0,     0,  -160,  -160,  -160,     0,     0,     0,
+       0,     3,     4,     0,     0,     5,  -159,     7,     8,     9,
+      66,    11,     0,    12,  -159,  -159,     0,    15,    16,     0,
+    -159,  -159,  -159,  -159,  -159,  -159,  -159,     0,     0,     0,
+       0,  -159,     0,     0,    67,  -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,  -160,  -160,     0,
-    -160,  -160,  -160,  -160,     1,     0,    41,    42,     0,     0,
-       0,  -160,    68,     0,  -160,    44,     0,     2,     0,     0,
-       3,     4,     0,     0,     5,  -160,     7,     8,     9,    66,
-      11,     0,    12,  -160,  -160,     0,    15,    16,     0,  -160,
-    -160,  -160,  -160,  -160,  -160,  -160,     0,     0,     0,     0,
-    -160,     0,     0,    67,  -160,    26,     0,     0,  -160,     0,
-       0,     0,     0,  -160,  -160,  -160,     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,    68,     0,  -159,    44,     0,     2,     0,     0,
+       3,     4,     0,     0,     5,  -159,     7,     8,     9,    66,
+      11,     0,    12,  -159,  -159,     0,    15,    16,     0,  -159,
+    -159,  -159,  -159,  -159,  -159,  -159,     0,     0,     0,     0,
+    -159,     0,     0,    67,  -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,  -160,  -160,     0,  -160,
-    -160,  -160,    -4,     1,     0,    41,    42,     0,     0,     0,
-    -160,    43,     0,  -160,    44,     0,     2,     0,     0,     3,
+      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,  -149,     1,
+      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,   321,    13,
@@ -1140,7 +1139,7 @@ static const yytype_int16 yytable[] =
       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,  -147,     1,     0,     0,     0,     0,     0,
+       0,    38,    39,  -146,     1,     0,     0,     0,     0,     0,
       41,    42,     0,     0,     0,   307,    43,     2,     0,    44,
        3,     4,     0,     0,     5,     6,     7,     8,     9,    10,
       11,     0,    12,     0,    13,     0,    15,    16,     0,     0,
@@ -1148,7 +1147,7 @@ static const yytype_int16 yytable[] =
       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,  -144,     1,
+      34,    35,    36,    37,     0,     0,    38,    39,  -143,     1,
        0,     0,     0,     0,     0,    41,    42,     0,     0,     0,
      307,    43,     2,     0,    44,     3,     4,     0,     0,     5,
        6,     7,     8,     9,    10,    11,     0,    12,     0,    13,
@@ -1174,7 +1173,7 @@ static const yytype_int16 yytable[] =
       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,   -53,     0,     0,
+       0,     0,    38,    39,     0,     1,     0,   -52,     0,     0,
        0,    41,    42,     0,     0,     0,   307,    43,     2,     0,
       44,     3,     4,     0,     0,     5,     6,     7,     8,     9,
       10,    11,     0,    12,     0,    13,     0,    15,    16,     0,
@@ -1247,7 +1246,7 @@ static const yytype_int16 yytable[] =
       32,    15,    16,     0,     0,     0,     0,    33,    34,    35,
       36,    37,   345,     0,     0,     0,   348,     0,    67,     0,
       26,     0,     0,    41,    42,     0,   357,     0,   358,    43,
-    -160,  -160,    44,   362,     0,     0,     0,    32,     0,     0,
+    -159,  -159,    44,   362,     0,     0,     0,    32,     0,     0,
        0,     0,     0,     0,    33,    34,    35,    36,    37,     0,
        0,   164,     0,     0,     0,     0,     0,     0,     0,     0,
       41,    42,     0,     0,     0,     0,    43,     0,     0,    44,
@@ -1323,10 +1322,10 @@ static const yytype_int16 yycheck[] =
      100,   100,    53,    26,   160,   231,    44,    26,    26,   165,
      166,    26,   168,   169,   170,    26,   163,   173,   174,   175,
      176,   177,   323,    54,    88,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,    87,    98,    70,   339,   101,
-      73,    26,    54,    35,   200,    86,   100,    54,   349,    26,
-     197,   198,    53,   261,   355,   126,   192,    86,    91,    92,
-      93,    94,    95,   299,   289,    -1,   164,    -1,    -1,   201,
+     186,   187,   188,   189,   190,    87,    98,    26,   339,   101,
+      54,    35,    86,    70,   200,   100,    73,    54,   349,    26,
+     197,   198,    53,    86,   355,   126,   261,   299,   164,   201,
+     192,    -1,   288,   289,    91,    92,    93,    94,    95,    -1,
       -1,   297,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
       -1,   237,   238,    -1,    -1,    -1,   242,   243,    14,    -1,
       -1,    17,    18,    -1,   320,    21,    -1,    23,    24,    25,
@@ -1571,38 +1570,38 @@ static const yytype_uint8 yystos[] =
       41,    42,    45,    47,    50,    51,    52,    55,    59,    60,
       61,    62,    69,    76,    77,    78,    79,    80,    83,    84,
       85,    92,    93,    98,   101,   105,   106,   107,   108,   109,
-     120,   126,   130,   131,   132,   133,   134,   141,   143,   145,
-     149,   154,   157,    97,    26,   130,    26,    50,    98,   131,
-     155,    98,   155,   130,    48,    98,   131,   156,   144,   148,
-      51,   135,    46,    47,    48,    49,   131,   142,   146,    51,
-      20,   131,    56,    57,    17,    18,    19,    26,    33,    26,
-      26,   131,   131,   142,   137,   131,   131,   131,   131,   131,
-     131,   131,   136,   150,   131,   131,   131,    27,    29,   103,
-     131,   158,   159,   160,   161,     0,    97,   131,    63,    64,
+     120,   126,   129,   130,   131,   132,   133,   140,   142,   144,
+     148,   153,   156,    97,    26,   129,    26,    50,    98,   130,
+     154,    98,   154,   129,    48,    98,   130,   155,   143,   147,
+      51,   134,    46,    47,    48,    49,   130,   141,   145,    51,
+      20,   130,    56,    57,    17,    18,    19,    26,    33,    26,
+      26,   130,   130,   141,   136,   130,   130,   130,   130,   130,
+     130,   130,   135,   149,   130,   130,   130,    27,    29,   103,
+     130,   157,   158,   159,   160,     0,    97,   130,    63,    64,
       65,    66,    67,    68,    70,    73,    74,    75,    89,    90,
-      91,    92,    93,    94,    95,   127,    98,   131,   131,   155,
-     100,   155,   130,   155,   100,   155,   127,    26,   138,   131,
-      46,   142,    26,    26,    44,    71,    72,    26,   127,    54,
-      65,   130,   130,    54,    65,    54,    53,    56,   142,    26,
-     140,    48,    54,    48,    54,    48,    54,    48,    54,    81,
-      82,    54,    97,    26,   139,    26,    99,   103,   103,   102,
-     100,   100,   105,   123,   131,   131,   131,   131,   131,   131,
-     131,   131,   131,   131,   131,   131,   131,   131,   131,   131,
-     131,    26,   151,    99,   131,    99,    99,   131,   151,   100,
-     131,   147,   130,    26,   133,   131,   131,    43,    65,   131,
-     131,   131,    54,    65,    48,   131,   131,   131,   131,   131,
-     100,   131,   131,   131,   131,   131,   131,   131,   131,   131,
-     131,   119,   119,   100,   130,   130,   131,    27,    29,   161,
-      53,    97,   100,    97,    26,   127,    44,   131,   131,   123,
-     131,   131,    26,    26,    48,    48,    48,    48,   108,   129,
-      26,   129,   153,    26,   153,   151,   131,   116,   110,   113,
-     129,   130,   131,   131,   131,   131,   128,    97,   109,   128,
-     124,   129,   129,    97,   127,   125,   125,   124,    54,    88,
-     121,    30,   153,   117,   111,   114,    87,   131,    36,    37,
-     122,   127,    26,   152,   129,   123,    54,    35,   127,   131,
-      86,   100,   118,   131,    54,   129,   123,    26,   129,   112,
-     131,   127,    53,    87,   123,   115,    86,   129,   129,   123,
-     124,    87,   129,    87
+      91,    92,    93,    94,    95,   127,    98,   130,   130,   154,
+     100,   154,   129,   154,   100,   154,   127,    26,   137,   130,
+      46,   141,    26,    26,    44,    71,    72,    26,   127,    54,
+      65,   129,   129,    54,    65,    54,    53,    56,   141,    26,
+     139,    48,    54,    48,    54,    48,    54,    48,    54,    81,
+      82,    54,    97,    26,   138,    26,    99,   103,   103,   102,
+     100,   100,   105,   123,   130,   130,   130,   130,   130,   130,
+     130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
+     130,    26,   150,    99,   130,    99,    99,   130,   150,   100,
+     130,   146,   129,    26,   132,   130,   130,    43,    65,   130,
+     130,   130,    54,    65,    48,   130,   130,   130,   130,   130,
+     100,   130,   130,   130,   130,   130,   130,   130,   130,   130,
+     130,   119,   119,   100,   129,   129,   130,    27,    29,   160,
+      53,    97,   100,    97,    26,   127,    44,   130,   130,   123,
+     130,   130,    26,    26,    48,    48,    48,    48,   108,   128,
+      26,   128,   152,    26,   152,   150,   130,   116,   110,   113,
+     128,   129,   130,   130,   130,   130,   127,    97,   109,   127,
+     124,   128,   128,    97,   127,   125,   125,   124,    54,    88,
+     121,    30,   152,   117,   111,   114,    87,   130,    36,    37,
+     122,   127,    26,   151,   128,   123,    54,    35,   127,   130,
+      86,   100,   118,   130,    54,   128,   123,    26,   128,   112,
+     130,   127,    53,    87,   123,   115,    86,   128,   128,   123,
+     124,    87,   128,    87
 };
 
   /* YYR1YYN -- Symbol number of symbol that rule YYN derives.  */
@@ -1613,19 +1612,19 @@ static const yytype_uint8 yyr1[] =
      108,   108,   108,   109,   109,   109,   110,   111,   112,   109,
      113,   114,   115,   109,   116,   117,   118,   109,   109,   109,
      109,   109,   119,   120,   120,   121,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   129,   129,   130,   130,   130,
-     130,   130,   130,   130,   130,   130,   131,   131,   131,   131,
-     131,   131,   131,   131,   131,   131,   131,   131,   131,   131,
-     131,   131,   131,   131,   131,   131,   131,   131,   131,   131,
-     131,   131,   131,   131,   131,   131,   131,   131,   132,   132,
-     132,   132,   132,   132,   132,   132,   133,   133,   134,   134,
-     134,   134,   134,   135,   134,   136,   134,   137,   134,   134,
-     134,   134,   134,   138,   138,   139,   139,   140,   140,   141,
-     141,   141,   141,   141,   141,   142,   142,   143,   143,   143,
-     144,   143,   146,   147,   145,   145,   148,   145,   145,   145,
-     150,   149,   151,   151,   151,   152,   152,   152,   153,   154,
-     155,   155,   155,   156,   156,   157,   158,   158,   158,   158,
-     159,   159,   160,   160,   161,   161
+     125,   126,   127,   128,   128,   128,   129,   129,   129,   129,
+     129,   129,   129,   129,   129,   130,   130,   130,   130,   130,
+     130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
+     130,   130,   130,   130,   130,   130,   130,   130,   130,   130,
+     130,   130,   130,   130,   130,   130,   130,   131,   131,   131,
+     131,   131,   131,   131,   131,   132,   132,   133,   133,   133,
+     133,   133,   134,   133,   135,   133,   136,   133,   133,   133,
+     133,   133,   137,   137,   138,   138,   139,   139,   140,   140,
+     140,   140,   140,   140,   141,   141,   142,   142,   142,   143,
+     142,   145,   146,   144,   144,   147,   144,   144,   144,   149,
+     148,   150,   150,   150,   151,   151,   151,   152,   153,   154,
+     154,   154,   155,   155,   156,   157,   157,   157,   157,   158,
+     158,   159,   159,   160,   160
 };
 
   /* YYR2YYN -- Number of symbols on the right hand side of rule YYN.  */
@@ -1636,19 +1635,19 @@ static const yytype_int8 yyr2[] =
        1,     1,     1,     1,     1,     8,     0,     0,     0,    14,
        0,     0,     0,    15,     0,     0,     0,    12,     2,     4,
        7,     6,     0,     9,    12,     0,     2,     6,     0,     0,
-       0,     1,     0,     0,     0,     2,     2,     1,     1,     1,
-       1,     1,     1,     3,     1,     2,     1,     1,     4,     2,
-       4,     3,     2,     1,     1,     1,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
-       3,     3,     3,     3,     2,     2,     4,     4,     4,     6,
-       4,     6,     4,     6,     4,     6,     2,     1,     2,     1,
-       1,     2,     1,     0,     3,     0,     3,     0,     3,     4,
-       2,     4,     2,     1,     3,     1,     3,     1,     3,     1,
-       2,     2,     2,     3,     2,     3,     2,     2,     3,     2,
-       0,     3,     0,     0,     9,     2,     0,     7,     8,     6,
-       0,     3,     0,     1,     3,     0,     1,     3,     0,     2,
-       0,     1,     3,     1,     3,     3,     0,     1,     1,     1,
-       1,     3,     1,     3,     3,     3
+       0,     1,     0,     0,     2,     2,     1,     1,     1,     1,
+       1,     1,     3,     1,     2,     1,     1,     4,     2,     4,
+       3,     2,     1,     1,     1,     3,     3,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     2,     3,
+       3,     3,     3,     2,     2,     4,     4,     4,     6,     4,
+       6,     4,     6,     4,     6,     2,     1,     2,     1,     1,
+       2,     1,     0,     3,     0,     3,     0,     3,     4,     2,
+       4,     2,     1,     3,     1,     3,     1,     3,     1,     2,
+       2,     2,     3,     2,     3,     2,     2,     3,     2,     0,
+       3,     0,     0,     9,     2,     0,     7,     8,     6,     0,
+       3,     0,     1,     3,     0,     1,     3,     0,     2,     0,
+       1,     3,     1,     3,     3,     0,     1,     1,     1,     1,
+       3,     1,     3,     3,     3
 };
 
 
@@ -1922,79 +1921,79 @@ yydestruct (const char *yymsg,
     case 22: /* BLTIN  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1926 "engines/director/lingo/lingo-gr.cpp"
+#line 1925 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 23: /* FBLTIN  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1932 "engines/director/lingo/lingo-gr.cpp"
+#line 1931 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 24: /* RBLTIN  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1938 "engines/director/lingo/lingo-gr.cpp"
+#line 1937 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 25: /* THEFBLTIN  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1944 "engines/director/lingo/lingo-gr.cpp"
+#line 1943 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 26: /* ID  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1950 "engines/director/lingo/lingo-gr.cpp"
+#line 1949 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 27: /* STRING  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1956 "engines/director/lingo/lingo-gr.cpp"
+#line 1955 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 28: /* HANDLER  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1962 "engines/director/lingo/lingo-gr.cpp"
+#line 1961 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 29: /* SYMBOL  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1968 "engines/director/lingo/lingo-gr.cpp"
+#line 1967 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 30: /* ENDCLAUSE  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1974 "engines/director/lingo/lingo-gr.cpp"
+#line 1973 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 31: /* tPLAYACCEL  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1980 "engines/director/lingo/lingo-gr.cpp"
+#line 1979 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 32: /* tMETHOD  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1986 "engines/director/lingo/lingo-gr.cpp"
+#line 1985 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 33: /* THEOBJECTFIELD  */
 #line 166 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).objectfield).os; }
-#line 1992 "engines/director/lingo/lingo-gr.cpp"
+#line 1991 "engines/director/lingo/lingo-gr.cpp"
         break;
 
-    case 149: /* on  */
+    case 148: /* on  */
 #line 165 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1998 "engines/director/lingo/lingo-gr.cpp"
+#line 1997 "engines/director/lingo/lingo-gr.cpp"
         break;
 
       default:
@@ -2281,7 +2280,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 2285 "engines/director/lingo/lingo-gr.cpp"
+#line 2284 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 8:
@@ -2289,7 +2288,7 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2293 "engines/director/lingo/lingo-gr.cpp"
+#line 2292 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 9:
@@ -2305,19 +2304,19 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-4].e)[1]);
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2309 "engines/director/lingo/lingo-gr.cpp"
+#line 2308 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10:
 #line 199 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->code1(LC::c_after); }
-#line 2315 "engines/director/lingo/lingo-gr.cpp"
+#line 2314 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11:
 #line 200 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->code1(LC::c_before); }
-#line 2321 "engines/director/lingo/lingo-gr.cpp"
+#line 2320 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12:
@@ -2329,7 +2328,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2333 "engines/director/lingo/lingo-gr.cpp"
+#line 2332 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13:
@@ -2341,7 +2340,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2345 "engines/director/lingo/lingo-gr.cpp"
+#line 2344 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14:
@@ -2353,7 +2352,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2357 "engines/director/lingo/lingo-gr.cpp"
+#line 2356 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 15:
@@ -2365,7 +2364,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2369 "engines/director/lingo/lingo-gr.cpp"
+#line 2368 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16:
@@ -2376,7 +2375,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2380 "engines/director/lingo/lingo-gr.cpp"
+#line 2379 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17:
@@ -2387,7 +2386,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2391 "engines/director/lingo/lingo-gr.cpp"
+#line 2390 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18:
@@ -2403,7 +2402,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-6].e)[0]);
 		g_lingo->codeInt((yyvsp[-6].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2407 "engines/director/lingo/lingo-gr.cpp"
+#line 2406 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 19:
@@ -2414,7 +2413,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].objectfield).oe);
 		delete (yyvsp[-2].objectfield).os;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2418 "engines/director/lingo/lingo-gr.cpp"
+#line 2417 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 25:
@@ -2425,7 +2424,7 @@ yyreduce:
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-3].code) + 2);
 		(*g_lingo->_currentScript)[(yyvsp[-3].code)] = end;		/* end, if cond fails */
 		(*g_lingo->_currentScript)[(yyvsp[-1].code)] = start; }
-#line 2429 "engines/director/lingo/lingo-gr.cpp"
+#line 2428 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 26:
@@ -2433,20 +2432,20 @@ yyreduce:
                                 { g_lingo->code1(LC::c_varpush);
 				  g_lingo->codeString((yyvsp[-2].s)->c_str());
 				  mVar((yyvsp[-2].s), kVarLocal); }
-#line 2437 "engines/director/lingo/lingo-gr.cpp"
+#line 2436 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 27:
 #line 286 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_eval);
 				  g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2444 "engines/director/lingo/lingo-gr.cpp"
+#line 2443 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 28:
 #line 289 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_le); }
-#line 2450 "engines/director/lingo/lingo-gr.cpp"
+#line 2449 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 29:
@@ -2461,7 +2460,7 @@ yyreduce:
 		g_lingo->code1(LC::c_varpush);
 		g_lingo->codeString((yyvsp[-11].s)->c_str());
 		g_lingo->code1(LC::c_assign);
-		g_lingo->code2(LC::c_jump, STOP);
+		g_lingo->code2(LC::c_jump, 0);
 		int pos = g_lingo->_currentScript->size() - 1;
 
 		inst loop = 0, end = 0;
@@ -2469,7 +2468,7 @@ yyreduce:
 		WRITE_UINT32(&end, pos - (yyvsp[-2].code) + 2);
 		(*g_lingo->_currentScript)[pos] = loop;		/* final count value */
 		(*g_lingo->_currentScript)[(yyvsp[-2].code)] = end;	}
-#line 2473 "engines/director/lingo/lingo-gr.cpp"
+#line 2472 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 30:
@@ -2477,20 +2476,20 @@ yyreduce:
                                 { g_lingo->code1(LC::c_varpush);
 				  g_lingo->codeString((yyvsp[-2].s)->c_str());
 				  mVar((yyvsp[-2].s), kVarLocal); }
-#line 2481 "engines/director/lingo/lingo-gr.cpp"
+#line 2480 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 31:
 #line 317 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_eval);
 				  g_lingo->codeString((yyvsp[-4].s)->c_str()); }
-#line 2488 "engines/director/lingo/lingo-gr.cpp"
+#line 2487 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 32:
 #line 320 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_ge); }
-#line 2494 "engines/director/lingo/lingo-gr.cpp"
+#line 2493 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 33:
@@ -2505,7 +2504,7 @@ yyreduce:
 		g_lingo->code1(LC::c_varpush);
 		g_lingo->codeString((yyvsp[-12].s)->c_str());
 		g_lingo->code1(LC::c_assign);
-		g_lingo->code2(LC::c_jump, STOP);
+		g_lingo->code2(LC::c_jump, 0);
 		int pos = g_lingo->_currentScript->size() - 1;
 
 		inst loop = 0, end = 0;
@@ -2513,7 +2512,7 @@ yyreduce:
 		WRITE_UINT32(&end, pos - (yyvsp[-2].code) + 2);
 		(*g_lingo->_currentScript)[pos] = loop;		/* final count value */
 		(*g_lingo->_currentScript)[(yyvsp[-2].code)] = end;	}
-#line 2517 "engines/director/lingo/lingo-gr.cpp"
+#line 2516 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 34:
@@ -2523,7 +2522,7 @@ yyreduce:
 				  g_lingo->codeFunc(new Common::String("count"), 1);
 				  g_lingo->code1(LC::c_intpush);	// start counter
 				  g_lingo->codeInt(1); }
-#line 2527 "engines/director/lingo/lingo-gr.cpp"
+#line 2526 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 35:
@@ -2533,7 +2532,7 @@ yyreduce:
 				  g_lingo->code1(LC::c_stackpeek);	// get array size
 				  g_lingo->codeInt(2);
 				  g_lingo->code1(LC::c_le); }
-#line 2537 "engines/director/lingo/lingo-gr.cpp"
+#line 2536 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 36:
@@ -2547,7 +2546,7 @@ yyreduce:
 				  g_lingo->codeString((yyvsp[-6].s)->c_str());
 				  mVar((yyvsp[-6].s), kVarLocal);
 				  g_lingo->code1(LC::c_assign); }
-#line 2551 "engines/director/lingo/lingo-gr.cpp"
+#line 2550 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 37:
@@ -2558,7 +2557,7 @@ yyreduce:
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_add);			// Increment counter
 
-		int jump = g_lingo->code2(LC::c_jump, STOP);
+		int jump = g_lingo->code2(LC::c_jump, 0);
 
 		int end2 = g_lingo->code1(LC::c_stackdrop);	// remove list, size, counter
 		g_lingo->codeInt(3);
@@ -2569,14 +2568,14 @@ yyreduce:
 
 		(*g_lingo->_currentScript)[jump + 1] = loop;		/* final count value */
 		(*g_lingo->_currentScript)[(yyvsp[-3].code)] = end;	}
-#line 2573 "engines/director/lingo/lingo-gr.cpp"
+#line 2572 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 38:
 #line 385 "engines/director/lingo/lingo-gr.y"
                         {
 		g_lingo->code1(LC::c_nextRepeat); }
-#line 2580 "engines/director/lingo/lingo-gr.cpp"
+#line 2579 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 39:
@@ -2584,37 +2583,39 @@ yyreduce:
                               {
 		g_lingo->code1(LC::c_whencode);
 		g_lingo->codeString((yyvsp[-2].s)->c_str()); }
-#line 2588 "engines/director/lingo/lingo-gr.cpp"
+#line 2587 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 40:
 #line 390 "engines/director/lingo/lingo-gr.y"
-                                                          {
+                                                            {
 		inst end;
-		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-3].code));
+		g_lingo->code1(STOP);
+		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-3].code) + 1);
 		(*g_lingo->_currentScript)[(yyvsp[-3].code) + 1] = end; }
 #line 2597 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 41:
-#line 394 "engines/director/lingo/lingo-gr.y"
-                                                    {
+#line 395 "engines/director/lingo/lingo-gr.y"
+                                                      {
 		inst end;
-		WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code));
+		g_lingo->code1(STOP);
+		WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code) + 1);
 		(*g_lingo->_currentScript)[(yyvsp[-2].code) + 1] = end; }
-#line 2606 "engines/director/lingo/lingo-gr.cpp"
+#line 2607 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 42:
-#line 399 "engines/director/lingo/lingo-gr.y"
+#line 401 "engines/director/lingo/lingo-gr.y"
                                                         {
 		(yyval.code) = g_lingo->code1(LC::c_tellcode);
 		g_lingo->code1(STOP); }
-#line 2614 "engines/director/lingo/lingo-gr.cpp"
+#line 2615 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 43:
-#line 403 "engines/director/lingo/lingo-gr.y"
+#line 405 "engines/director/lingo/lingo-gr.y"
                                                                                            {
 		inst else1 = 0, end3 = 0;
 		WRITE_UINT32(&else1, (yyvsp[-3].code) + 1 - (yyvsp[-6].code) + 1);
@@ -2622,11 +2623,11 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-6].code)] = else1;		/* elsepart */
 		(*g_lingo->_currentScript)[(yyvsp[-3].code)] = end3;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-3].code), (yyvsp[-1].code)); }
-#line 2626 "engines/director/lingo/lingo-gr.cpp"
+#line 2627 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 44:
-#line 410 "engines/director/lingo/lingo-gr.y"
+#line 412 "engines/director/lingo/lingo-gr.y"
                                                                                                                   {
 		inst else1 = 0, end = 0;
 		WRITE_UINT32(&else1, (yyvsp[-6].code) + 1 - (yyvsp[-9].code) + 1);
@@ -2634,112 +2635,106 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-9].code)] = else1;		/* elsepart */
 		(*g_lingo->_currentScript)[(yyvsp[-6].code)] = end;		/* end, if cond fails */
 		g_lingo->processIf((yyvsp[-6].code), (yyvsp[-1].code)); }
-#line 2638 "engines/director/lingo/lingo-gr.cpp"
+#line 2639 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 47:
-#line 421 "engines/director/lingo/lingo-gr.y"
+#line 423 "engines/director/lingo/lingo-gr.y"
                                                                 {
 		inst else1 = 0;
 		WRITE_UINT32(&else1, (yyvsp[0].code) + 1 - (yyvsp[-3].code) + 1);
 		(*g_lingo->_currentScript)[(yyvsp[-3].code)] = else1;	/* end, if cond fails */
 		g_lingo->codeLabel((yyvsp[0].code)); }
-#line 2648 "engines/director/lingo/lingo-gr.cpp"
+#line 2649 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 48:
-#line 427 "engines/director/lingo/lingo-gr.y"
+#line 429 "engines/director/lingo/lingo-gr.y"
                                 {
-		g_lingo->code2(LC::c_jumpifz, STOP);
+		g_lingo->code2(LC::c_jumpifz, 0);
 		(yyval.code) = g_lingo->_currentScript->size() - 1; }
-#line 2656 "engines/director/lingo/lingo-gr.cpp"
+#line 2657 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 49:
-#line 431 "engines/director/lingo/lingo-gr.y"
+#line 433 "engines/director/lingo/lingo-gr.y"
                                 {
-		g_lingo->code2(LC::c_jump, STOP);
+		g_lingo->code2(LC::c_jump, 0);
 		(yyval.code) = g_lingo->_currentScript->size() - 1; }
-#line 2664 "engines/director/lingo/lingo-gr.cpp"
+#line 2665 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 50:
-#line 435 "engines/director/lingo/lingo-gr.y"
+#line 437 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = g_lingo->_currentScript->size() - 1; }
-#line 2672 "engines/director/lingo/lingo-gr.cpp"
+#line 2673 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 51:
-#line 439 "engines/director/lingo/lingo-gr.y"
+#line 441 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeLabel(0); }
-#line 2679 "engines/director/lingo/lingo-gr.cpp"
+#line 2680 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 52:
-#line 442 "engines/director/lingo/lingo-gr.y"
+#line 444 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2685 "engines/director/lingo/lingo-gr.cpp"
+#line 2686 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 53:
-#line 444 "engines/director/lingo/lingo-gr.y"
-                                { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2691 "engines/director/lingo/lingo-gr.cpp"
-    break;
-
-  case 54:
 #line 446 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2697 "engines/director/lingo/lingo-gr.cpp"
+#line 2692 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 57:
+  case 56:
 #line 450 "engines/director/lingo/lingo-gr.y"
                         {
 		(yyval.code) = g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt((yyvsp[0].i)); }
-#line 2705 "engines/director/lingo/lingo-gr.cpp"
+#line 2700 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 58:
+  case 57:
 #line 453 "engines/director/lingo/lingo-gr.y"
                         {
 		(yyval.code) = g_lingo->code1(LC::c_floatpush);
 		g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2713 "engines/director/lingo/lingo-gr.cpp"
+#line 2708 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 59:
+  case 58:
 #line 456 "engines/director/lingo/lingo-gr.y"
                         {											// D3
 		(yyval.code) = g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2722 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 60:
+  case 59:
 #line 460 "engines/director/lingo/lingo-gr.y"
                                 {
 		(yyval.code) = g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2731 "engines/director/lingo/lingo-gr.cpp"
+#line 2726 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 61:
+  case 60:
 #line 464 "engines/director/lingo/lingo-gr.y"
                         {
 		(yyval.code) = g_lingo->code1(LC::c_eval);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2740 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 62:
+  case 61:
 #line 468 "engines/director/lingo/lingo-gr.y"
                         {
 		(yyval.code) = g_lingo->code1(LC::c_intpush);
@@ -2749,16 +2744,16 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[0].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[0].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2753 "engines/director/lingo/lingo-gr.cpp"
+#line 2748 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 63:
+  case 62:
 #line 476 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = (yyvsp[-1].code); }
-#line 2759 "engines/director/lingo/lingo-gr.cpp"
+#line 2754 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 65:
+  case 64:
 #line 478 "engines/director/lingo/lingo-gr.y"
                                 {
 		// Director parser till D3 was forgiving for any hanging parentheses
@@ -2770,48 +2765,48 @@ yyreduce:
 			yyerrok;
 		}
 	}
-#line 2774 "engines/director/lingo/lingo-gr.cpp"
+#line 2769 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 66:
+  case 65:
 #line 489 "engines/director/lingo/lingo-gr.y"
                  { (yyval.code) = (yyvsp[0].code); }
-#line 2780 "engines/director/lingo/lingo-gr.cpp"
+#line 2775 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 68:
+  case 67:
 #line 491 "engines/director/lingo/lingo-gr.y"
                                  {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2788 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 69:
+  case 68:
 #line 494 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2796 "engines/director/lingo/lingo-gr.cpp"
+#line 2791 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 70:
+  case 69:
 #line 497 "engines/director/lingo/lingo-gr.y"
                                 {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2804 "engines/director/lingo/lingo-gr.cpp"
+#line 2799 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 71:
+  case 70:
 #line 500 "engines/director/lingo/lingo-gr.y"
                                         {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-2].s), 1);
 		delete (yyvsp[-2].s); }
-#line 2812 "engines/director/lingo/lingo-gr.cpp"
+#line 2807 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 72:
+  case 71:
 #line 503 "engines/director/lingo/lingo-gr.y"
                                      {
 		(yyval.code) = g_lingo->code1(LC::c_theentitypush);
@@ -2819,20 +2814,20 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2823 "engines/director/lingo/lingo-gr.cpp"
+#line 2818 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 73:
+  case 72:
 #line 509 "engines/director/lingo/lingo-gr.y"
                          {
 		g_lingo->code1(LC::c_objectfieldpush);
 		g_lingo->codeString((yyvsp[0].objectfield).os->c_str());
 		g_lingo->codeInt((yyvsp[0].objectfield).oe);
 		delete (yyvsp[0].objectfield).os; }
-#line 2833 "engines/director/lingo/lingo-gr.cpp"
+#line 2828 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 74:
+  case 73:
 #line 514 "engines/director/lingo/lingo-gr.y"
                        {
 		g_lingo->code1(LC::c_objectrefpush);
@@ -2840,471 +2835,471 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].objectref).field->c_str());
 		delete (yyvsp[0].objectref).obj;
 		delete (yyvsp[0].objectref).field; }
-#line 2844 "engines/director/lingo/lingo-gr.cpp"
+#line 2839 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 76:
+  case 75:
 #line 521 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_add); }
-#line 2850 "engines/director/lingo/lingo-gr.cpp"
+#line 2845 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 77:
+  case 76:
 #line 522 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_sub); }
-#line 2856 "engines/director/lingo/lingo-gr.cpp"
+#line 2851 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 78:
+  case 77:
 #line 523 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_mul); }
-#line 2862 "engines/director/lingo/lingo-gr.cpp"
+#line 2857 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 79:
+  case 78:
 #line 524 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_div); }
-#line 2868 "engines/director/lingo/lingo-gr.cpp"
+#line 2863 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 80:
+  case 79:
 #line 525 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_mod); }
-#line 2874 "engines/director/lingo/lingo-gr.cpp"
+#line 2869 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 81:
+  case 80:
 #line 526 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gt); }
-#line 2880 "engines/director/lingo/lingo-gr.cpp"
+#line 2875 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 82:
+  case 81:
 #line 527 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_lt); }
-#line 2886 "engines/director/lingo/lingo-gr.cpp"
+#line 2881 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 83:
+  case 82:
 #line 528 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_eq); }
-#line 2892 "engines/director/lingo/lingo-gr.cpp"
+#line 2887 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 84:
+  case 83:
 #line 529 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_neq); }
-#line 2898 "engines/director/lingo/lingo-gr.cpp"
+#line 2893 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 85:
+  case 84:
 #line 530 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_ge); }
-#line 2904 "engines/director/lingo/lingo-gr.cpp"
+#line 2899 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 86:
+  case 85:
 #line 531 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_le); }
-#line 2910 "engines/director/lingo/lingo-gr.cpp"
+#line 2905 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 87:
+  case 86:
 #line 532 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_and); }
-#line 2916 "engines/director/lingo/lingo-gr.cpp"
+#line 2911 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 88:
+  case 87:
 #line 533 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_or); }
-#line 2922 "engines/director/lingo/lingo-gr.cpp"
+#line 2917 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 89:
+  case 88:
 #line 534 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_not); }
-#line 2928 "engines/director/lingo/lingo-gr.cpp"
+#line 2923 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 90:
+  case 89:
 #line 535 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_ampersand); }
-#line 2934 "engines/director/lingo/lingo-gr.cpp"
+#line 2929 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 91:
+  case 90:
 #line 536 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_concat); }
-#line 2940 "engines/director/lingo/lingo-gr.cpp"
+#line 2935 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 92:
+  case 91:
 #line 537 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_contains); }
-#line 2946 "engines/director/lingo/lingo-gr.cpp"
+#line 2941 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 93:
+  case 92:
 #line 538 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_starts); }
-#line 2952 "engines/director/lingo/lingo-gr.cpp"
+#line 2947 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 94:
+  case 93:
 #line 539 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[0].code); }
-#line 2958 "engines/director/lingo/lingo-gr.cpp"
+#line 2953 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 95:
+  case 94:
 #line 540 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 2964 "engines/director/lingo/lingo-gr.cpp"
+#line 2959 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 96:
+  case 95:
 #line 541 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_intersects); }
-#line 2970 "engines/director/lingo/lingo-gr.cpp"
+#line 2965 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 97:
+  case 96:
 #line 542 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_within); }
-#line 2976 "engines/director/lingo/lingo-gr.cpp"
+#line 2971 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 98:
+  case 97:
 #line 544 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_charOf); }
-#line 2982 "engines/director/lingo/lingo-gr.cpp"
+#line 2977 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 99:
+  case 98:
 #line 545 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_charToOf); }
-#line 2988 "engines/director/lingo/lingo-gr.cpp"
+#line 2983 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 100:
+  case 99:
 #line 546 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_itemOf); }
-#line 2994 "engines/director/lingo/lingo-gr.cpp"
+#line 2989 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 101:
+  case 100:
 #line 547 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_itemToOf); }
-#line 3000 "engines/director/lingo/lingo-gr.cpp"
+#line 2995 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 102:
+  case 101:
 #line 548 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_lineOf); }
-#line 3006 "engines/director/lingo/lingo-gr.cpp"
+#line 3001 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 103:
+  case 102:
 #line 549 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_lineToOf); }
-#line 3012 "engines/director/lingo/lingo-gr.cpp"
+#line 3007 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 104:
+  case 103:
 #line 550 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_wordOf); }
-#line 3018 "engines/director/lingo/lingo-gr.cpp"
+#line 3013 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 105:
+  case 104:
 #line 551 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_wordToOf); }
-#line 3024 "engines/director/lingo/lingo-gr.cpp"
+#line 3019 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 106:
+  case 105:
 #line 553 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->codeFunc((yyvsp[-1].s), 1);
 		delete (yyvsp[-1].s); }
-#line 3032 "engines/director/lingo/lingo-gr.cpp"
+#line 3027 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 108:
+  case 107:
 #line 558 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_printtop); }
-#line 3038 "engines/director/lingo/lingo-gr.cpp"
+#line 3033 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 111:
+  case 110:
 #line 561 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_exitRepeat); }
-#line 3044 "engines/director/lingo/lingo-gr.cpp"
+#line 3039 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 112:
+  case 111:
 #line 562 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_procret); }
-#line 3050 "engines/director/lingo/lingo-gr.cpp"
+#line 3045 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 113:
+  case 112:
 #line 563 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3056 "engines/director/lingo/lingo-gr.cpp"
+#line 3051 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 114:
+  case 113:
 #line 563 "engines/director/lingo/lingo-gr.y"
                                                                                  { inNone(); }
-#line 3062 "engines/director/lingo/lingo-gr.cpp"
+#line 3057 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 115:
+  case 114:
 #line 564 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3068 "engines/director/lingo/lingo-gr.cpp"
+#line 3063 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 116:
+  case 115:
 #line 564 "engines/director/lingo/lingo-gr.y"
                                                                                    { inNone(); }
-#line 3074 "engines/director/lingo/lingo-gr.cpp"
+#line 3069 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 117:
+  case 116:
 #line 565 "engines/director/lingo/lingo-gr.y"
                                                         { inArgs(); }
-#line 3080 "engines/director/lingo/lingo-gr.cpp"
+#line 3075 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 118:
+  case 117:
 #line 565 "engines/director/lingo/lingo-gr.y"
                                                                                    { inNone(); }
-#line 3086 "engines/director/lingo/lingo-gr.cpp"
+#line 3081 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 119:
+  case 118:
 #line 566 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 3094 "engines/director/lingo/lingo-gr.cpp"
+#line 3089 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 120:
+  case 119:
 #line 569 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 3102 "engines/director/lingo/lingo-gr.cpp"
+#line 3097 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 121:
+  case 120:
 #line 572 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_open); }
-#line 3108 "engines/director/lingo/lingo-gr.cpp"
+#line 3103 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 122:
+  case 121:
 #line 573 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code2(LC::c_voidpush, LC::c_open); }
-#line 3114 "engines/director/lingo/lingo-gr.cpp"
+#line 3109 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 123:
+  case 122:
 #line 575 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_global);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3124 "engines/director/lingo/lingo-gr.cpp"
+#line 3119 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 124:
+  case 123:
 #line 580 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_global);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mVar((yyvsp[0].s), kVarGlobal);
 		delete (yyvsp[0].s); }
-#line 3134 "engines/director/lingo/lingo-gr.cpp"
+#line 3129 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 125:
+  case 124:
 #line 586 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_property);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3144 "engines/director/lingo/lingo-gr.cpp"
+#line 3139 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 126:
+  case 125:
 #line 591 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_property);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mVar((yyvsp[0].s), kVarProperty);
 		delete (yyvsp[0].s); }
-#line 3154 "engines/director/lingo/lingo-gr.cpp"
+#line 3149 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 127:
+  case 126:
 #line 597 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_instance);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3164 "engines/director/lingo/lingo-gr.cpp"
+#line 3159 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 128:
+  case 127:
 #line 602 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_instance);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		mVar((yyvsp[0].s), kVarInstance);
 		delete (yyvsp[0].s); }
-#line 3174 "engines/director/lingo/lingo-gr.cpp"
+#line 3169 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 129:
+  case 128:
 #line 615 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoloop); }
-#line 3180 "engines/director/lingo/lingo-gr.cpp"
+#line 3175 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 130:
+  case 129:
 #line 616 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_gotonext); }
-#line 3186 "engines/director/lingo/lingo-gr.cpp"
+#line 3181 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 131:
+  case 130:
 #line 617 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoprevious); }
-#line 3192 "engines/director/lingo/lingo-gr.cpp"
+#line 3187 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 132:
+  case 131:
 #line 618 "engines/director/lingo/lingo-gr.y"
                                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_goto); }
-#line 3201 "engines/director/lingo/lingo-gr.cpp"
+#line 3196 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 133:
+  case 132:
 #line 622 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_goto); }
-#line 3210 "engines/director/lingo/lingo-gr.cpp"
+#line 3205 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 134:
+  case 133:
 #line 626 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_goto); }
-#line 3219 "engines/director/lingo/lingo-gr.cpp"
+#line 3214 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 137:
+  case 136:
 #line 634 "engines/director/lingo/lingo-gr.y"
                                         { // "play #done" is also caught by this
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_play); }
-#line 3228 "engines/director/lingo/lingo-gr.cpp"
+#line 3223 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 138:
+  case 137:
 #line 638 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_play); }
-#line 3237 "engines/director/lingo/lingo-gr.cpp"
+#line 3232 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 139:
+  case 138:
 #line 642 "engines/director/lingo/lingo-gr.y"
                                                 {
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_play); }
-#line 3246 "engines/director/lingo/lingo-gr.cpp"
+#line 3241 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 140:
+  case 139:
 #line 646 "engines/director/lingo/lingo-gr.y"
                      { g_lingo->codeSetImmediate(true); }
-#line 3252 "engines/director/lingo/lingo-gr.cpp"
+#line 3247 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 141:
+  case 140:
 #line 646 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		g_lingo->codeSetImmediate(false);
 		g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg));
 		delete (yyvsp[-2].s); }
-#line 3261 "engines/director/lingo/lingo-gr.cpp"
+#line 3256 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 142:
+  case 141:
 #line 676 "engines/director/lingo/lingo-gr.y"
              { startDef(); }
-#line 3267 "engines/director/lingo/lingo-gr.cpp"
+#line 3262 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 143:
+  case 142:
 #line 676 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->_currentFactory.clear(); }
-#line 3273 "engines/director/lingo/lingo-gr.cpp"
+#line 3268 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 144:
+  case 143:
 #line 677 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-6].s); }
-#line 3283 "engines/director/lingo/lingo-gr.cpp"
+#line 3278 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 145:
+  case 144:
 #line 682 "engines/director/lingo/lingo-gr.y"
                         { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 3289 "engines/director/lingo/lingo-gr.cpp"
+#line 3284 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 146:
+  case 145:
 #line 683 "engines/director/lingo/lingo-gr.y"
                   { startDef(); }
-#line 3295 "engines/director/lingo/lingo-gr.cpp"
+#line 3290 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 147:
+  case 146:
 #line 684 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-6].s), (yyvsp[-4].code), (yyvsp[-3].narg) + 1, &g_lingo->_currentFactory);
 		endDef();
 		delete (yyvsp[-6].s); }
-#line 3305 "engines/director/lingo/lingo-gr.cpp"
+#line 3300 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 148:
+  case 147:
 #line 689 "engines/director/lingo/lingo-gr.y"
                                                                      {	// D3
 		g_lingo->code1(LC::c_procret);
@@ -3314,69 +3309,69 @@ yyreduce:
 		checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
 		delete (yyvsp[-7].s);
 		delete (yyvsp[-1].s); }
-#line 3318 "engines/director/lingo/lingo-gr.cpp"
+#line 3313 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 149:
+  case 148:
 #line 697 "engines/director/lingo/lingo-gr.y"
                                                  {	// D4. No 'end' clause
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
 		delete (yyvsp[-5].s); }
-#line 3328 "engines/director/lingo/lingo-gr.cpp"
+#line 3323 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 150:
+  case 149:
 #line 703 "engines/director/lingo/lingo-gr.y"
          { startDef(); }
-#line 3334 "engines/director/lingo/lingo-gr.cpp"
+#line 3329 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 151:
+  case 150:
 #line 703 "engines/director/lingo/lingo-gr.y"
                                 {
 		(yyval.s) = (yyvsp[0].s); g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; }
-#line 3341 "engines/director/lingo/lingo-gr.cpp"
+#line 3336 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 152:
+  case 151:
 #line 706 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3347 "engines/director/lingo/lingo-gr.cpp"
+#line 3342 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 153:
+  case 152:
 #line 707 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = 1; delete (yyvsp[0].s); }
-#line 3353 "engines/director/lingo/lingo-gr.cpp"
+#line 3348 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 154:
+  case 153:
 #line 708 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->codeArg((yyvsp[0].s)); mVar((yyvsp[0].s), kVarArgument); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); }
-#line 3359 "engines/director/lingo/lingo-gr.cpp"
+#line 3354 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 156:
+  case 155:
 #line 711 "engines/director/lingo/lingo-gr.y"
                                                         { delete (yyvsp[0].s); }
-#line 3365 "engines/director/lingo/lingo-gr.cpp"
+#line 3360 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 157:
+  case 156:
 #line 712 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 3371 "engines/director/lingo/lingo-gr.cpp"
+#line 3366 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 158:
+  case 157:
 #line 714 "engines/director/lingo/lingo-gr.y"
                                         { inDef(); }
-#line 3377 "engines/director/lingo/lingo-gr.cpp"
+#line 3372 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 159:
+  case 158:
 #line 716 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_call);
@@ -3385,113 +3380,113 @@ yyreduce:
 		WRITE_UINT32(&numpar, (yyvsp[0].narg));
 		g_lingo->code1(numpar);
 		delete (yyvsp[-1].s); }
-#line 3389 "engines/director/lingo/lingo-gr.cpp"
+#line 3384 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 160:
+  case 159:
 #line 724 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 0; }
-#line 3395 "engines/director/lingo/lingo-gr.cpp"
+#line 3390 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 161:
+  case 160:
 #line 725 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.narg) = 1; }
-#line 3401 "engines/director/lingo/lingo-gr.cpp"
+#line 3396 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 162:
+  case 161:
 #line 726 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3407 "engines/director/lingo/lingo-gr.cpp"
+#line 3402 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 163:
+  case 162:
 #line 728 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 1; }
-#line 3413 "engines/director/lingo/lingo-gr.cpp"
+#line 3408 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 164:
+  case 163:
 #line 729 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3419 "engines/director/lingo/lingo-gr.cpp"
+#line 3414 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 165:
+  case 164:
 #line 731 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = (yyvsp[-1].code); }
-#line 3425 "engines/director/lingo/lingo-gr.cpp"
+#line 3420 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 166:
+  case 165:
 #line 733 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 3431 "engines/director/lingo/lingo-gr.cpp"
+#line 3426 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 167:
+  case 166:
 #line 734 "engines/director/lingo/lingo-gr.y"
                                                         { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 3437 "engines/director/lingo/lingo-gr.cpp"
+#line 3432 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 168:
+  case 167:
 #line 735 "engines/director/lingo/lingo-gr.y"
                      { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3443 "engines/director/lingo/lingo-gr.cpp"
+#line 3438 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 169:
+  case 168:
 #line 736 "engines/director/lingo/lingo-gr.y"
                          { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 3449 "engines/director/lingo/lingo-gr.cpp"
+#line 3444 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 170:
+  case 169:
 #line 738 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3455 "engines/director/lingo/lingo-gr.cpp"
+#line 3450 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 171:
+  case 170:
 #line 739 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3461 "engines/director/lingo/lingo-gr.cpp"
+#line 3456 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 172:
+  case 171:
 #line 741 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 3467 "engines/director/lingo/lingo-gr.cpp"
+#line 3462 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 173:
+  case 172:
 #line 742 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 3473 "engines/director/lingo/lingo-gr.cpp"
+#line 3468 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 174:
+  case 173:
 #line 744 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3482 "engines/director/lingo/lingo-gr.cpp"
+#line 3477 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 175:
+  case 174:
 #line 748 "engines/director/lingo/lingo-gr.y"
                                         {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3491 "engines/director/lingo/lingo-gr.cpp"
+#line 3486 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 3495 "engines/director/lingo/lingo-gr.cpp"
+#line 3490 "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 da9c384209..6642a9bfea 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -149,7 +149,7 @@ static void mVar(Common::String *s, VarType type) {
 %token tSPRITE tINTERSECTS tWITHIN tTELL tPROPERTY
 %token tON tENDIF tENDREPEAT tENDTELL
 
-%type<code> asgn begin end expr if chunkexpr
+%type<code> asgn begin expr if chunkexpr
 %type<code> stmtlist tellstart reference simpleexpr list valuelist
 %type<code> jump jumpifz varassign
 %type<narg> argdef arglist nonemptyarglist linearlist proplist
@@ -296,7 +296,7 @@ stmt: stmtoneliner
 		g_lingo->code1(LC::c_varpush);
 		g_lingo->codeString($ID->c_str());
 		g_lingo->code1(LC::c_assign);
-		g_lingo->code2(LC::c_jump, STOP);
+		g_lingo->code2(LC::c_jump, 0);
 		int pos = g_lingo->_currentScript->size() - 1;
 
 		inst loop = 0, end = 0;
@@ -328,7 +328,7 @@ stmt: stmtoneliner
 		g_lingo->code1(LC::c_varpush);
 		g_lingo->codeString($ID->c_str());
 		g_lingo->code1(LC::c_assign);
-		g_lingo->code2(LC::c_jump, STOP);
+		g_lingo->code2(LC::c_jump, 0);
 		int pos = g_lingo->_currentScript->size() - 1;
 
 		inst loop = 0, end = 0;
@@ -370,7 +370,7 @@ stmt: stmtoneliner
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_add);			// Increment counter
 
-		int jump = g_lingo->code2(LC::c_jump, STOP);
+		int jump = g_lingo->code2(LC::c_jump, 0);
 
 		int end2 = g_lingo->code1(LC::c_stackdrop);	// remove list, size, counter
 		g_lingo->codeInt(3);
@@ -387,13 +387,15 @@ stmt: stmtoneliner
 	| tWHEN ID tTHEN expr {
 		g_lingo->code1(LC::c_whencode);
 		g_lingo->codeString($ID->c_str()); }
-	| tTELL expr '\n' tellstart stmtlist end tENDTELL {
+	| tTELL expr '\n' tellstart stmtlist begin tENDTELL {
 		inst end;
-		WRITE_UINT32(&end, $end - $tellstart);
+		g_lingo->code1(STOP);
+		WRITE_UINT32(&end, $begin - $tellstart + 1);
 		(*g_lingo->_currentScript)[$tellstart + 1] = end; }
-	| tTELL expr tTO tellstart stmtoneliner end {
+	| tTELL expr tTO tellstart stmtoneliner begin {
 		inst end;
-		WRITE_UINT32(&end, $end - $tellstart);
+		g_lingo->code1(STOP);
+		WRITE_UINT32(&end, $begin - $tellstart + 1);
 		(*g_lingo->_currentScript)[$tellstart + 1] = end; }
 
 tellstart:	  /* empty */				{
@@ -425,11 +427,11 @@ elseifstmt: tELSIF expr jumpifz[then] tTHEN stmtlist jump[end3] {
 		g_lingo->codeLabel($end3); }
 
 jumpifz:	/* nothing */	{
-		g_lingo->code2(LC::c_jumpifz, STOP);
+		g_lingo->code2(LC::c_jumpifz, 0);
 		$$ = g_lingo->_currentScript->size() - 1; }
 
 jump:		/* nothing */	{
-		g_lingo->code2(LC::c_jump, STOP);
+		g_lingo->code2(LC::c_jump, 0);
 		$$ = g_lingo->_currentScript->size() - 1; }
 
 varassign:		/* nothing */	{
@@ -441,8 +443,6 @@ if:	  tIF					{
 
 begin:	  /* nothing */		{ $$ = g_lingo->_currentScript->size(); }
 
-end:	  /* nothing */		{ g_lingo->code1(STOP); $$ = g_lingo->_currentScript->size(); }
-
 stmtlist: 					{ $$ = g_lingo->_currentScript->size(); }
 	| stmtlist '\n'
 	| stmtlist stmt


Commit: 872c10c430695079f0a3bac0203742f88cbb7c56
    https://github.com/scummvm/scummvm/commit/872c10c430695079f0a3bac0203742f88cbb7c56
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-06-01T12:45:54+02:00

Commit Message:
DIRECTOR: LINGO: Renamed 'begin' to 'lbl' for better semantics

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 6d38c0ee22..eb12a5fafe 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -430,7 +430,7 @@ enum yysymbol_kind_t
   YYSYMBOL_jump = 124,                     /* jump  */
   YYSYMBOL_varassign = 125,                /* varassign  */
   YYSYMBOL_if = 126,                       /* if  */
-  YYSYMBOL_begin = 127,                    /* begin  */
+  YYSYMBOL_lbl = 127,                      /* lbl  */
   YYSYMBOL_stmtlist = 128,                 /* stmtlist  */
   YYSYMBOL_simpleexpr = 129,               /* simpleexpr  */
   YYSYMBOL_expr = 130,                     /* expr  */
@@ -891,8 +891,8 @@ yysymbol_name (yysymbol_kind_t yysymbol)
   "$accept", "program", "programline", "asgn", "stmtoneliner", "stmt",
   "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9",
   "tellstart", "ifstmt", "elseifstmtlist", "elseifstmt", "jumpifz", "jump",
-  "varassign", "if", "begin", "stmtlist", "simpleexpr", "expr",
-  "chunkexpr", "reference", "proc", "$@10", "$@11", "$@12", "globallist",
+  "varassign", "if", "lbl", "stmtlist", "simpleexpr", "expr", "chunkexpr",
+  "reference", "proc", "$@10", "$@11", "$@12", "globallist",
   "propertylist", "instancelist", "gotofunc", "gotomovie", "playfunc",
   "$@13", "defn", "$@14", "$@15", "$@16", "on", "$@17", "argdef",
   "endargdef", "argstore", "macro", "arglist", "nonemptyarglist", "list",
@@ -2418,7 +2418,7 @@ yyreduce:
 
   case 25:
 #line 270 "engines/director/lingo/lingo-gr.y"
-                                                                                        {
+                                                                                {
 		inst start = 0, end = 0;
 		WRITE_UINT32(&start, (yyvsp[-5].code) - (yyvsp[-1].code) + 1);
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-3].code) + 2);
@@ -2588,7 +2588,7 @@ yyreduce:
 
   case 40:
 #line 390 "engines/director/lingo/lingo-gr.y"
-                                                            {
+                                                          {
 		inst end;
 		g_lingo->code1(STOP);
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-3].code) + 1);
@@ -2598,7 +2598,7 @@ yyreduce:
 
   case 41:
 #line 395 "engines/director/lingo/lingo-gr.y"
-                                                      {
+                                                    {
 		inst end;
 		g_lingo->code1(STOP);
 		WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code) + 1);
@@ -2616,7 +2616,7 @@ yyreduce:
 
   case 43:
 #line 405 "engines/director/lingo/lingo-gr.y"
-                                                                                           {
+                                                                                         {
 		inst else1 = 0, end3 = 0;
 		WRITE_UINT32(&else1, (yyvsp[-3].code) + 1 - (yyvsp[-6].code) + 1);
 		WRITE_UINT32(&end3, (yyvsp[-1].code) - (yyvsp[-3].code) + 1);
@@ -2628,7 +2628,7 @@ yyreduce:
 
   case 44:
 #line 412 "engines/director/lingo/lingo-gr.y"
-                                                                                                                  {
+                                                                                                              {
 		inst else1 = 0, end = 0;
 		WRITE_UINT32(&else1, (yyvsp[-6].code) + 1 - (yyvsp[-9].code) + 1);
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-6].code) + 1);
@@ -3301,7 +3301,7 @@ yyreduce:
 
   case 147:
 #line 689 "engines/director/lingo/lingo-gr.y"
-                                                                     {	// D3
+                                                                   {	// D3
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-7].s), (yyvsp[-6].code), (yyvsp[-5].narg));
 		endDef();
@@ -3314,7 +3314,7 @@ yyreduce:
 
   case 148:
 #line 697 "engines/director/lingo/lingo-gr.y"
-                                                 {	// D4. No 'end' clause
+                                               {	// D4. No 'end' clause
 		g_lingo->code1(LC::c_procret);
 		g_lingo->codeDefine(*(yyvsp[-5].s), (yyvsp[-4].code), (yyvsp[-3].narg));
 		endDef();
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 6642a9bfea..72c67b55f2 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -149,7 +149,7 @@ static void mVar(Common::String *s, VarType type) {
 %token tSPRITE tINTERSECTS tWITHIN tTELL tPROPERTY
 %token tON tENDIF tENDREPEAT tENDTELL
 
-%type<code> asgn begin expr if chunkexpr
+%type<code> asgn lbl expr if chunkexpr
 %type<code> stmtlist tellstart reference simpleexpr list valuelist
 %type<code> jump jumpifz varassign
 %type<narg> argdef arglist nonemptyarglist linearlist proplist
@@ -267,9 +267,9 @@ stmt: stmtoneliner
 	//   statements
 	// end repeat
 	//
-	| tREPEAT tWHILE begin expr jumpifz[body] stmtlist jump[end2] tENDREPEAT	{
+	| tREPEAT tWHILE lbl expr jumpifz[body] stmtlist jump[end2] tENDREPEAT	{
 		inst start = 0, end = 0;
-		WRITE_UINT32(&start, $begin - $end2 + 1);
+		WRITE_UINT32(&start, $lbl - $end2 + 1);
 		WRITE_UINT32(&end, $end2 - $body + 2);
 		(*g_lingo->_currentScript)[$body] = end;		/* end, if cond fails */
 		(*g_lingo->_currentScript)[$end2] = start; }	/* looping back */
@@ -348,7 +348,7 @@ stmt: stmtoneliner
 				  g_lingo->codeFunc(new Common::String("count"), 1);
 				  g_lingo->code1(LC::c_intpush);	// start counter
 				  g_lingo->codeInt(1); }
-			begin
+			lbl
 				{ g_lingo->code1(LC::c_stackpeek);	// get counter
 				  g_lingo->codeInt(0);
 				  g_lingo->code1(LC::c_stackpeek);	// get array size
@@ -376,7 +376,7 @@ stmt: stmtoneliner
 		g_lingo->codeInt(3);
 
 		inst loop = 0, end = 0;
-		WRITE_UINT32(&loop, $begin - jump);
+		WRITE_UINT32(&loop, $lbl - jump);
 		WRITE_UINT32(&end, end2 - $jumpifz + 1);
 
 		(*g_lingo->_currentScript)[jump + 1] = loop;		/* final count value */
@@ -387,29 +387,29 @@ stmt: stmtoneliner
 	| tWHEN ID tTHEN expr {
 		g_lingo->code1(LC::c_whencode);
 		g_lingo->codeString($ID->c_str()); }
-	| tTELL expr '\n' tellstart stmtlist begin tENDTELL {
+	| tTELL expr '\n' tellstart stmtlist lbl tENDTELL {
 		inst end;
 		g_lingo->code1(STOP);
-		WRITE_UINT32(&end, $begin - $tellstart + 1);
+		WRITE_UINT32(&end, $lbl - $tellstart + 1);
 		(*g_lingo->_currentScript)[$tellstart + 1] = end; }
-	| tTELL expr tTO tellstart stmtoneliner begin {
+	| tTELL expr tTO tellstart stmtoneliner lbl {
 		inst end;
 		g_lingo->code1(STOP);
-		WRITE_UINT32(&end, $begin - $tellstart + 1);
+		WRITE_UINT32(&end, $lbl - $tellstart + 1);
 		(*g_lingo->_currentScript)[$tellstart + 1] = end; }
 
 tellstart:	  /* empty */				{
 		$$ = g_lingo->code1(LC::c_tellcode);
 		g_lingo->code1(STOP); }
 
-ifstmt: if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist begin[end3] tENDIF {
+ifstmt: if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist lbl[end3] tENDIF {
 		inst else1 = 0, end3 = 0;
 		WRITE_UINT32(&else1, $else1 + 1 - $then + 1);
 		WRITE_UINT32(&end3, $end3 - $else1 + 1);
 		(*g_lingo->_currentScript)[$then] = else1;		/* elsepart */
 		(*g_lingo->_currentScript)[$else1] = end3;		/* end, if cond fails */
 		g_lingo->processIf($else1, $end3); }
-	| if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist tELSE begin stmtlist begin[end3] tENDIF {
+	| if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist tELSE lbl stmtlist lbl[end3] tENDIF {
 		inst else1 = 0, end = 0;
 		WRITE_UINT32(&else1, $else1 + 1 - $then + 1);
 		WRITE_UINT32(&end, $end3 - $else1 + 1);
@@ -441,7 +441,7 @@ varassign:		/* nothing */	{
 if:	  tIF					{
 		g_lingo->codeLabel(0); } // Mark beginning of the if() statement
 
-begin:	  /* nothing */		{ $$ = g_lingo->_currentScript->size(); }
+lbl:	  /* nothing */		{ $$ = g_lingo->_currentScript->size(); }
 
 stmtlist: 					{ $$ = g_lingo->_currentScript->size(); }
 	| stmtlist '\n'
@@ -674,29 +674,29 @@ playfunc: tPLAY expr 			{ // "play #done" is also caught by this
 // See also:
 //   on keyword
 defn: tMACRO { startDef(); } ID { g_lingo->_currentFactory.clear(); }
-			begin argdef '\n' argstore stmtlist 		{
+			lbl argdef '\n' argstore stmtlist 		{
 		g_lingo->code1(LC::c_procret);
-		g_lingo->codeDefine(*$ID, $begin, $argdef);
+		g_lingo->codeDefine(*$ID, $lbl, $argdef);
 		endDef();
 		delete $ID; }
 	| tFACTORY ID	{ g_lingo->codeFactory(*$ID); delete $ID; }
 	| tMETHOD { startDef(); }
-			begin argdef '\n' argstore stmtlist 		{
+			lbl argdef '\n' argstore stmtlist 		{
 		g_lingo->code1(LC::c_procret);
-		g_lingo->codeDefine(*$tMETHOD, $begin, $argdef + 1, &g_lingo->_currentFactory);
+		g_lingo->codeDefine(*$tMETHOD, $lbl, $argdef + 1, &g_lingo->_currentFactory);
 		endDef();
 		delete $tMETHOD; }
-	| on begin argdef '\n' argstore stmtlist ENDCLAUSE endargdef {	// D3
+	| on lbl argdef '\n' argstore stmtlist ENDCLAUSE endargdef {	// D3
 		g_lingo->code1(LC::c_procret);
-		g_lingo->codeDefine(*$on, $begin, $argdef);
+		g_lingo->codeDefine(*$on, $lbl, $argdef);
 		endDef();
 
 		checkEnd($ENDCLAUSE, $on->c_str(), false);
 		delete $on;
 		delete $ENDCLAUSE; }
-	| on begin argdef '\n' argstore stmtlist {	// D4. No 'end' clause
+	| on lbl argdef '\n' argstore stmtlist {	// D4. No 'end' clause
 		g_lingo->code1(LC::c_procret);
-		g_lingo->codeDefine(*$on, $begin, $argdef);
+		g_lingo->codeDefine(*$on, $lbl, $argdef);
 		endDef();
 		delete $on; }
 


Commit: 600cdb81626b92871b01f3607a8280a428ec62d5
    https://github.com/scummvm/scummvm/commit/600cdb81626b92871b01f3607a8280a428ec62d5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-06-01T12:45:54+02:00

Commit Message:
DIRECTOR: LINGO: Simplified 'if' grammar

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 eb12a5fafe..7535d1e167 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -773,7 +773,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  125
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   2541
+#define YYLAST   2542
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  104
@@ -782,7 +782,7 @@ union yyalloc
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  174
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  364
+#define YYNSTATES  363
 
 #define YYMAXUTOK   343
 
@@ -921,7 +921,7 @@ static const yytype_int16 yytoknum[] =
 };
 #endif
 
-#define YYPACT_NINF (-295)
+#define YYPACT_NINF (-289)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
@@ -935,43 +935,43 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     772,   -83,  -295,  -295,    88,  -295,   594,   310,    88,   -27,
-     495,  -295,  -295,  -295,  -295,  -295,  -295,   -17,  -295,  1792,
-    -295,  -295,  -295,   -12,  1948,    27,    41,    30,    53,   224,
-    1829,  -295,   224,   224,   224,   224,   224,   224,   224,  -295,
-    -295,   224,   224,   224,   405,    81,   -56,  -295,  -295,  -295,
-    -295,   224,  -295,  2433,  -295,  -295,  -295,  -295,  -295,  -295,
-    -295,  -295,  -295,  -295,  -295,  -295,   -11,  1948,  1911,  2433,
-       4,  1911,     4,  -295,    88,  1911,  2433,     6,   683,  -295,
-    -295,    77,   224,  -295,    61,  -295,  2020,  -295,    82,  -295,
-      84,  1987,    85,  -295,   -49,    88,    88,    -8,    58,    60,
-    -295,  2330,  2020,  -295,    90,  -295,  2053,  2086,  2119,  2152,
-    2400,  2317,    92,    93,  -295,  -295,  2363,    17,    36,  -295,
-    2433,    40,    43,    45,  -295,  -295,   772,  2433,   224,   224,
+     772,   -83,  -289,  -289,    88,  -289,   594,   310,    88,   -27,
+     495,  -289,  -289,  -289,  -289,  -289,  -289,   -17,  -289,  1792,
+    -289,  -289,  -289,   -12,  1948,    27,    34,    32,    45,   224,
+    1829,  -289,   224,   224,   224,   224,   224,   224,   224,  -289,
+    -289,   224,   224,   224,   405,    41,   -18,  -289,  -289,  -289,
+    -289,   224,  -289,  2434,  -289,  -289,  -289,  -289,  -289,  -289,
+    -289,  -289,  -289,  -289,  -289,  -289,   -11,  1948,  1911,  2434,
+       4,  1911,     4,  -289,    88,  1911,  2434,     6,   683,  -289,
+    -289,    77,   224,  -289,    61,  -289,  2021,  -289,    82,  -289,
+      84,  1987,    85,  -289,   -49,    88,    88,     9,    58,    60,
+    -289,  2331,  2021,  -289,    90,  -289,  2054,  2087,  2120,  2153,
+    2401,  2318,    92,    93,  -289,  -289,  2364,    17,    36,  -289,
+    2434,    40,    43,    46,  -289,  -289,   772,  2434,   224,   224,
      224,   224,   224,   224,   224,   224,   224,   224,   224,   224,
-     224,   224,   224,   224,   224,   120,  1911,  1987,  2363,   -14,
-     224,    -9,  -295,    -3,   224,     4,   120,  -295,    47,  2433,
-     224,  -295,  -295,    88,    16,   224,   224,   -10,   224,   224,
-     224,    -1,   101,   224,   224,   224,   224,   224,  -295,  -295,
+     224,   224,   224,   224,   224,   119,  1911,  1987,  2364,   -14,
+     224,    -9,  -289,    -3,   224,     4,   119,  -289,    47,  2434,
+     224,  -289,  -289,    88,    16,   224,   224,   -10,   224,   224,
+     224,    10,   101,   224,   224,   224,   224,   224,  -289,  -289,
       50,   224,   224,   224,   224,   224,   224,   224,   224,   224,
-     224,  -295,  -295,  -295,    51,  -295,  -295,    88,    88,  -295,
-     224,    -7,  -295,    99,   123,   123,   123,   123,  2446,  2446,
-    -295,   -45,   123,   123,   123,   123,   -45,   -51,   -51,  -295,
-    -295,  -295,   -46,  -295,  2433,  -295,  -295,  2433,   -29,   127,
-    2433,  -295,   112,  -295,  -295,  2433,  2433,   224,   224,  2433,
-    2433,   123,   224,   224,   131,  2433,   123,  2433,  2433,  2433,
-     132,  2433,  2185,  2433,  2218,  2433,  2251,  2433,  2284,  2433,
-    2433,  1710,  -295,   135,  -295,  -295,  2433,    17,    36,  -295,
-    -295,  -295,   139,  -295,  -295,   120,   224,  2433,   378,  -295,
-    2433,   123,    88,  -295,   224,   224,   224,   224,  -295,  1199,
-    -295,  1113,  -295,  -295,  -295,   -22,  2433,  -295,  -295,  -295,
-    1284,   119,  2433,  2433,  2433,  2433,  -295,  -295,  -295,    86,
-    -295,   858,   943,  -295,  -295,  -295,  -295,    98,   224,  -295,
-      64,   161,  -295,  -295,   136,   156,  -295,  2433,  -295,   224,
-    -295,   106,  -295,    95,  1028,  -295,   224,   143,  -295,  2433,
-    -295,   173,  -295,  2433,   224,  1369,   149,  -295,  1455,  -295,
-    2433,   117,  -295,  -295,  -295,  -295,  -295,  1113,  1540,  -295,
-    -295,  -295,  1625,  -295
+     224,  -289,  -289,  -289,    51,  -289,  -289,    88,    88,  -289,
+     224,    -7,  -289,    99,   123,   123,   123,   123,  2447,  2447,
+    -289,   -45,   123,   123,   123,   123,   -45,   -51,   -51,  -289,
+    -289,  -289,   -43,  -289,  2434,  -289,  -289,  2434,   -41,   127,
+    2434,  -289,   112,  -289,  -289,  2434,  2434,   224,   224,  2434,
+    2434,   123,   224,   224,   131,  2434,   123,  2434,  2434,  2434,
+     132,  2434,  2186,  2434,  2219,  2434,  2252,  2434,  2285,  2434,
+    2434,  1710,  -289,   135,  -289,  -289,  2434,    17,    36,  -289,
+    -289,  -289,   139,  -289,  -289,   119,   224,  2434,   378,  -289,
+    2434,   123,    88,  -289,   224,   224,   224,   224,  -289,  1199,
+    -289,  1113,  -289,  -289,  -289,   -19,  2434,  -289,  -289,  -289,
+    1284,   120,  2434,  2434,  2434,  2434,  -289,  -289,  -289,    97,
+    -289,   858,   943,  -289,  -289,  -289,  -289,    86,   224,  -289,
+      64,   161,  -289,  -289,   136,   156,  -289,  2434,  -289,   224,
+    -289,   106,  -289,    95,  1028,  -289,   224,   143,  1369,  2434,
+    -289,   173,  -289,  2434,   224,   116,   150,  -289,  1455,  -289,
+    2434,  -289,  -289,  -289,  -289,  -289,  1113,  1540,  -289,  -289,
+    -289,  1625,  -289
 };
 
   /* YYDEFACTSTATE-NUM -- Default reduction number in state STATE-NUM.
@@ -1011,22 +1011,22 @@ static const yytype_uint8 yydefact[] =
      125,     0,    53,   153,    53,     0,     9,    52,    50,    50,
        0,     0,    98,   100,   102,   104,    41,    54,    55,     0,
       45,     0,     0,   157,    35,    27,    31,     0,     0,    40,
-      52,   154,    53,    48,     0,     0,    25,    18,    52,     0,
-      46,     0,   155,   147,     0,    36,     0,     0,    53,    48,
+      52,   154,    53,    48,     0,     0,    25,    18,    53,     0,
+      46,     0,   155,   147,     0,    36,     0,     0,     0,    48,
       43,     0,    53,    28,     0,     0,     0,   156,     0,    48,
-      32,     0,    53,    37,    53,    48,    44,     0,     0,    53,
-      47,    29,     0,    33
+      32,    44,    53,    37,    53,    48,     0,     0,    53,    47,
+      29,     0,    33
 };
 
   /* YYPGOTONTERM-NUM.  */
 static const yytype_int16 yypgoto[] =
 {
-    -295,    79,  -295,  -295,   -55,    15,  -295,  -295,  -295,  -295,
-    -295,  -295,  -295,  -295,  -295,    18,  -295,  -295,  -295,  -151,
-    -294,   -92,  -295,   -76,  1654,     3,    -6,  -295,    44,  -295,
-    -295,  -295,  -295,  -295,  -295,  -295,  -295,   -20,  -295,  -295,
-    -295,  -295,  -295,  -295,  -295,  -295,  -154,  -295,  -261,  -295,
-       2,  -295,  -295,  -295,  -295,  -295,     8
+    -289,    79,  -289,  -289,   -55,    15,  -289,  -289,  -289,  -289,
+    -289,  -289,  -289,  -289,  -289,    18,  -289,  -289,  -289,  -151,
+    -288,   -92,  -289,   -76,  1714,     3,    -6,  -289,    44,  -289,
+    -289,  -289,  -289,  -289,  -289,  -289,  -289,   -20,  -289,  -289,
+    -289,  -289,  -289,  -289,  -289,  -289,  -154,  -289,  -267,  -289,
+       2,  -289,  -289,  -289,  -289,  -289,     8
 };
 
   /* YYDEFGOTONTERM-NUM.  */
@@ -1045,33 +1045,33 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      69,    69,   228,   156,    76,   169,   317,    65,    70,    72,
-     103,    73,   294,    86,    63,    49,   170,   168,    91,   134,
+      69,    69,   228,   156,    76,   169,   294,    65,    70,    72,
+     103,    73,   317,    86,    63,    49,   170,   168,    91,   134,
      267,    74,   268,   101,   102,   134,   105,   106,   107,   108,
      109,   110,   111,   237,    80,   114,   115,   116,   120,    89,
-       8,   126,   233,   143,   144,   127,   173,   141,   142,   143,
-     144,   271,   322,   242,   272,   238,    99,   174,    94,    95,
-      96,   147,   148,   360,   243,   148,   161,    97,   273,   148,
-     149,   272,    69,   151,    98,   313,   159,   152,   272,   100,
-     155,   125,   178,    92,    93,   223,   150,   146,   279,     1,
+       8,   125,   233,   143,   144,   127,   322,   141,   142,   143,
+     144,    94,    95,    96,   271,   238,   273,   272,    99,   272,
+      97,   147,   148,   173,   242,   148,   161,    98,   359,   148,
+     149,   100,    69,   151,   174,   243,   159,   152,   313,   126,
+     155,   272,   178,    92,    93,   223,   150,   146,   279,     1,
      225,   150,    33,    34,    35,    36,   226,   150,   171,   172,
      328,   329,     2,   157,   150,     3,   154,   160,   162,     5,
      163,   167,   175,   176,    64,    11,   179,    12,   193,   195,
      197,   295,   204,   205,   206,   207,   208,   209,   210,   211,
      212,   213,   214,   215,   216,   217,   218,   219,   220,   198,
-      69,    49,   199,   200,   224,   201,   221,   229,   227,   244,
+      69,    49,   199,   200,   224,   221,   201,   229,   227,   244,
      250,   263,   270,   274,   230,   275,   276,   282,   283,   235,
      236,   290,   239,   240,   241,   293,   232,   245,   246,   247,
-     248,   249,   335,   318,   319,   251,   252,   253,   254,   255,
-     256,   257,   258,   259,   260,   326,    43,   332,   346,    44,
+     248,   249,   335,   326,   318,   251,   252,   253,   254,   255,
+     256,   257,   258,   259,   260,   319,    43,   332,   346,    44,
      336,   337,   340,   134,   266,   341,   135,   344,   354,   347,
-     264,   265,   352,   356,   359,   202,   288,   316,   234,   269,
+     264,   265,   351,   352,   358,   202,   288,   316,   234,   269,
      262,     0,   306,   309,   140,   141,   142,   143,   144,     0,
        0,   314,     0,     0,     0,     1,     0,     0,     0,     0,
        0,   277,   278,     0,     0,     0,   280,   281,     2,     0,
        0,     3,     4,     0,   331,     5,     0,     7,     8,     9,
-      66,    11,   338,    12,     0,     0,     0,    15,    16,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   351,
+      66,    11,     0,    12,     0,     0,     0,    15,    16,     0,
+       0,     0,   345,     0,     0,     0,     0,     0,     0,     0,
      296,     0,     0,     0,    67,     0,    26,     0,   302,   303,
      304,   305,     0,     0,     0,   301,     0,     0,     0,     0,
        0,     0,     0,    32,     0,     0,     0,     0,     0,     0,
@@ -1207,7 +1207,7 @@ static const yytype_int16 yytable[] =
       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,   361,     0,     0,
+      37,     0,     0,    38,    39,     0,     1,   360,     0,     0,
        0,     0,    41,    42,     0,     0,     0,   307,    43,     2,
        0,    44,     3,     4,     0,     0,     5,     6,     7,     8,
        9,    10,    11,     0,    12,     0,    13,     0,    15,    16,
@@ -1216,7 +1216,7 @@ static const yytype_int16 yytable[] =
       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,   363,     0,     0,     0,     0,    41,    42,     0,
+       0,     1,   362,     0,     0,     0,     0,    41,    42,     0,
        0,     0,   307,    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,
@@ -1237,100 +1237,100 @@ static const yytype_int16 yytable[] =
       43,     0,     0,    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,   291,     2,     0,    43,     3,     4,
-      44,     0,     5,   300,     7,     8,     9,    66,    11,     0,
-      12,     0,     0,     0,    15,    16,   311,     0,   312,     1,
+       0,    41,    42,     0,     0,     2,     0,    43,     3,     4,
+      44,     0,     5,     0,     7,     8,     9,    66,    11,     0,
+      12,     0,     0,     0,    15,    16,     0,     0,     0,     1,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,    67,     2,    26,     0,     3,     4,     0,    90,     5,
-       0,     7,     8,     9,    66,    11,   334,    12,     0,     0,
-      32,    15,    16,     0,     0,     0,     0,    33,    34,    35,
-      36,    37,   345,     0,     0,     0,   348,     0,    67,     0,
-      26,     0,     0,    41,    42,     0,   357,     0,   358,    43,
-    -159,  -159,    44,   362,     0,     0,     0,    32,     0,     0,
+       0,     7,     8,     9,    66,    11,     0,    12,     0,     0,
+      32,    15,    16,     0,   291,     0,     0,    33,    34,    35,
+      36,    37,     0,   300,     0,     0,     0,     0,    67,     0,
+      26,     0,     0,    41,    42,     0,   311,     0,   312,    43,
+    -159,  -159,    44,     0,     0,     0,     0,    32,     0,     0,
        0,     0,     0,     0,    33,    34,    35,    36,    37,     0,
-       0,   164,     0,     0,     0,     0,     0,     0,     0,     0,
-      41,    42,     0,     0,     0,     0,    43,     0,     0,    44,
-     128,   129,   130,   131,   132,   133,     0,   134,   165,   166,
-     135,   136,   137,     0,     0,     0,    82,     0,    84,     0,
-       0,     0,     0,     0,     0,     0,   138,   139,   140,   141,
+       0,   164,     0,     0,     0,     0,   334,     0,     0,     0,
+      41,    42,   338,     0,     0,     0,    43,     0,     0,    44,
+     128,   129,   130,   131,   132,   133,   348,   134,   165,   166,
+     135,   136,   137,     0,     0,     0,   356,    82,   357,    84,
+       0,     0,   361,     0,     0,     0,   138,   139,   140,   141,
+     142,   143,   144,     0,   128,   129,   130,   131,   132,   133,
+       0,   134,     0,     0,   135,   136,   137,     0,     0,     0,
+       0,     0,   181,     0,     0,     0,     0,     0,   182,     0,
+     138,   139,   140,   141,   142,   143,   144,   128,   129,   130,
+     131,   132,   133,     0,   134,     0,     0,   135,   136,   137,
+       0,     0,     0,     0,     0,   183,     0,     0,     0,     0,
+       0,   184,     0,   138,   139,   140,   141,   142,   143,   144,
+     128,   129,   130,   131,   132,   133,     0,   134,     0,     0,
+     135,   136,   137,     0,     0,     0,     0,     0,   185,     0,
+       0,     0,     0,     0,   186,     0,   138,   139,   140,   141,
      142,   143,   144,   128,   129,   130,   131,   132,   133,     0,
      134,     0,     0,   135,   136,   137,     0,     0,     0,     0,
-       0,   181,     0,     0,     0,     0,     0,   182,     0,   138,
+       0,   187,     0,     0,     0,     0,     0,   188,     0,   138,
      139,   140,   141,   142,   143,   144,   128,   129,   130,   131,
      132,   133,     0,   134,     0,     0,   135,   136,   137,     0,
-       0,     0,     0,     0,   183,     0,     0,     0,     0,     0,
-     184,     0,   138,   139,   140,   141,   142,   143,   144,   128,
+       0,     0,     0,     0,   284,     0,     0,     0,     0,     0,
+       0,     0,   138,   139,   140,   141,   142,   143,   144,   128,
      129,   130,   131,   132,   133,     0,   134,     0,     0,   135,
-     136,   137,     0,     0,     0,     0,     0,   185,     0,     0,
-       0,     0,     0,   186,     0,   138,   139,   140,   141,   142,
+     136,   137,     0,     0,     0,     0,     0,   285,     0,     0,
+       0,     0,     0,     0,     0,   138,   139,   140,   141,   142,
      143,   144,   128,   129,   130,   131,   132,   133,     0,   134,
        0,     0,   135,   136,   137,     0,     0,     0,     0,     0,
-     187,     0,     0,     0,     0,     0,   188,     0,   138,   139,
+     286,     0,     0,     0,     0,     0,     0,     0,   138,   139,
      140,   141,   142,   143,   144,   128,   129,   130,   131,   132,
      133,     0,   134,     0,     0,   135,   136,   137,     0,     0,
-       0,     0,     0,   284,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   287,     0,     0,     0,     0,     0,     0,
        0,   138,   139,   140,   141,   142,   143,   144,   128,   129,
      130,   131,   132,   133,     0,   134,     0,     0,   135,   136,
-     137,     0,     0,     0,     0,     0,   285,     0,     0,     0,
-       0,     0,     0,     0,   138,   139,   140,   141,   142,   143,
-     144,   128,   129,   130,   131,   132,   133,     0,   134,     0,
-       0,   135,   136,   137,     0,     0,     0,     0,     0,   286,
-       0,     0,     0,     0,     0,     0,     0,   138,   139,   140,
-     141,   142,   143,   144,   128,   129,   130,   131,   132,   133,
-       0,   134,     0,     0,   135,   136,   137,     0,     0,     0,
-       0,     0,   287,     0,     0,     0,     0,     0,     0,     0,
+     137,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   191,     0,   138,   139,   140,   141,   142,   143,
+     144,   128,   129,   130,   131,   132,   133,   177,   134,     0,
+       0,   135,   136,   137,   128,   129,   130,   131,   132,   133,
+       0,   134,     0,     0,   135,   136,   137,   138,   139,   140,
+     141,   142,   143,   144,     0,   192,     0,     0,     0,     0,
      138,   139,   140,   141,   142,   143,   144,   128,   129,   130,
      131,   132,   133,     0,   134,     0,     0,   135,   136,   137,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   191,     0,   138,   139,   140,   141,   142,   143,   144,
-     128,   129,   130,   131,   132,   133,   177,   134,     0,     0,
-     135,   136,   137,   128,   129,   130,   131,   132,   133,     0,
-     134,     0,     0,   135,   136,   137,   138,   139,   140,   141,
-     142,   143,   144,     0,   192,     0,     0,     0,     0,   138,
-     139,   140,   141,   142,   143,   144,   128,   129,   130,   131,
-     132,   133,     0,   134,     0,     0,   135,   136,   137,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   138,   139,   140,   141,   142,   143,   144,     0,
-       0,     0,   196,   128,   129,   130,   131,   132,   133,     0,
-     134,     0,     0,   135,   136,   137,     0,     0,     0,     0,
-       0,   189,   190,     0,     0,     0,     0,     0,     0,   138,
-     139,   140,   141,   142,   143,   144,   128,   129,   130,   131,
-     132,   133,     0,   134,     0,     0,   135,   136,   137,   128,
-     129,   130,   131,     0,     0,     0,   134,     0,     0,   135,
-     136,   137,   138,   139,   140,   141,   142,   143,   144,     0,
-       0,     0,     0,     0,     0,   138,   139,   140,   141,   142,
-     143,   144
+       0,     0,     0,   138,   139,   140,   141,   142,   143,   144,
+       0,     0,     0,   196,   128,   129,   130,   131,   132,   133,
+       0,   134,     0,     0,   135,   136,   137,     0,     0,     0,
+       0,     0,   189,   190,     0,     0,     0,     0,     0,     0,
+     138,   139,   140,   141,   142,   143,   144,   128,   129,   130,
+     131,   132,   133,     0,   134,     0,     0,   135,   136,   137,
+     128,   129,   130,   131,     0,     0,     0,   134,     0,     0,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+       0,     0,     0,     0,     0,     0,   138,   139,   140,   141,
+     142,   143,   144
 };
 
 static const yytype_int16 yycheck[] =
 {
-       6,     7,   156,    79,    10,    54,   300,     4,     6,     7,
-      30,     8,   273,    19,    97,     0,    65,    93,    24,    70,
+       6,     7,   156,    79,    10,    54,   273,     4,     6,     7,
+      30,     8,   300,    19,    97,     0,    65,    93,    24,    70,
       27,    48,    29,    29,    30,    70,    32,    33,    34,    35,
       36,    37,    38,    43,    51,    41,    42,    43,    44,    51,
-      24,    97,    26,    94,    95,    51,    54,    92,    93,    94,
-      95,    97,   313,    54,   100,    65,    26,    65,    17,    18,
-      19,    67,    68,   357,    65,    71,    86,    26,    97,    75,
-      68,   100,    78,    71,    33,    97,    82,    74,   100,    26,
-      78,     0,   102,    56,    57,    99,   100,    98,   239,     1,
+      24,     0,    26,    94,    95,    51,   313,    92,    93,    94,
+      95,    17,    18,    19,    97,    65,    97,   100,    26,   100,
+      26,    67,    68,    54,    54,    71,    86,    33,   356,    75,
+      68,    26,    78,    71,    65,    65,    82,    74,    97,    97,
+      78,   100,   102,    56,    57,    99,   100,    98,   239,     1,
       99,   100,    76,    77,    78,    79,    99,   100,    95,    96,
       36,    37,    14,    26,   100,    17,   100,    46,    26,    21,
       26,    26,    54,    53,    26,    27,    26,    29,    26,    26,
      103,   275,   128,   129,   130,   131,   132,   133,   134,   135,
      136,   137,   138,   139,   140,   141,   142,   143,   144,   103,
-     146,   126,   102,   100,   150,   100,    26,   100,   154,    48,
+     146,   126,   102,   100,   150,    26,   100,   100,   154,    48,
      100,   100,    53,    26,   160,   231,    44,    26,    26,   165,
      166,    26,   168,   169,   170,    26,   163,   173,   174,   175,
-     176,   177,   323,    54,    88,   181,   182,   183,   184,   185,
-     186,   187,   188,   189,   190,    87,    98,    26,   339,   101,
+     176,   177,   323,    87,    54,   181,   182,   183,   184,   185,
+     186,   187,   188,   189,   190,    88,    98,    26,   339,   101,
       54,    35,    86,    70,   200,   100,    73,    54,   349,    26,
-     197,   198,    53,    86,   355,   126,   261,   299,   164,   201,
+     197,   198,    86,    53,   355,   126,   261,   299,   164,   201,
      192,    -1,   288,   289,    91,    92,    93,    94,    95,    -1,
       -1,   297,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
       -1,   237,   238,    -1,    -1,    -1,   242,   243,    14,    -1,
       -1,    17,    18,    -1,   320,    21,    -1,    23,    24,    25,
-      26,    27,   328,    29,    -1,    -1,    -1,    33,    34,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   345,
+      26,    27,    -1,    29,    -1,    -1,    -1,    33,    34,    -1,
+      -1,    -1,   338,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      276,    -1,    -1,    -1,    50,    -1,    52,    -1,   284,   285,
      286,   287,    -1,    -1,    -1,   282,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    69,    -1,    -1,    -1,    -1,    -1,    -1,
@@ -1496,69 +1496,69 @@ static const yytype_int16 yycheck[] =
       98,    -1,    -1,   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,   270,    14,    -1,    98,    17,    18,
-     101,    -1,    21,   279,    23,    24,    25,    26,    27,    -1,
-      29,    -1,    -1,    -1,    33,    34,   292,    -1,   294,     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,    -1,    -1,
       -1,    50,    14,    52,    -1,    17,    18,    -1,    20,    21,
-      -1,    23,    24,    25,    26,    27,   322,    29,    -1,    -1,
-      69,    33,    34,    -1,    -1,    -1,    -1,    76,    77,    78,
-      79,    80,   338,    -1,    -1,    -1,   342,    -1,    50,    -1,
-      52,    -1,    -1,    92,    93,    -1,   352,    -1,   354,    98,
-      99,   100,   101,   359,    -1,    -1,    -1,    69,    -1,    -1,
+      -1,    23,    24,    25,    26,    27,    -1,    29,    -1,    -1,
+      69,    33,    34,    -1,   270,    -1,    -1,    76,    77,    78,
+      79,    80,    -1,   279,    -1,    -1,    -1,    -1,    50,    -1,
+      52,    -1,    -1,    92,    93,    -1,   292,    -1,   294,    98,
+      99,   100,   101,    -1,    -1,    -1,    -1,    69,    -1,    -1,
       -1,    -1,    -1,    -1,    76,    77,    78,    79,    80,    -1,
-      -1,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      92,    93,    -1,    -1,    -1,    -1,    98,    -1,    -1,   101,
-      63,    64,    65,    66,    67,    68,    -1,    70,    71,    72,
-      73,    74,    75,    -1,    -1,    -1,    46,    -1,    48,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    89,    90,    91,    92,
+      -1,    44,    -1,    -1,    -1,    -1,   322,    -1,    -1,    -1,
+      92,    93,   328,    -1,    -1,    -1,    98,    -1,    -1,   101,
+      63,    64,    65,    66,    67,    68,   342,    70,    71,    72,
+      73,    74,    75,    -1,    -1,    -1,   352,    46,   354,    48,
+      -1,    -1,   358,    -1,    -1,    -1,    89,    90,    91,    92,
+      93,    94,    95,    -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,
-      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,    54,    -1,    89,    90,
+      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,    -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,    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,    -1,    -1,
+      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,    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
+      -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
 };
 
   /* YYSTOSSTATE-NUM -- The (internal number of the) accessing
@@ -1598,10 +1598,10 @@ static const yytype_uint8 yystos[] =
      128,   129,   130,   130,   130,   130,   127,    97,   109,   127,
      124,   128,   128,    97,   127,   125,   125,   124,    54,    88,
      121,    30,   152,   117,   111,   114,    87,   130,    36,    37,
-     122,   127,    26,   151,   128,   123,    54,    35,   127,   130,
-      86,   100,   118,   130,    54,   128,   123,    26,   128,   112,
-     130,   127,    53,    87,   123,   115,    86,   128,   128,   123,
-     124,    87,   128,    87
+     122,   127,    26,   151,   128,   123,    54,    35,   128,   130,
+      86,   100,   118,   130,    54,   127,   123,    26,   128,   112,
+     130,    86,    53,    87,   123,   115,   128,   128,   123,   124,
+      87,   128,    87
 };
 
   /* YYR1YYN -- Symbol number of symbol that rule YYN derives.  */
@@ -1634,7 +1634,7 @@ static const yytype_int8 yyr2[] =
        4,     4,     4,     4,     4,     4,     5,     5,     8,     4,
        1,     1,     1,     1,     1,     8,     0,     0,     0,    14,
        0,     0,     0,    15,     0,     0,     0,    12,     2,     4,
-       7,     6,     0,     9,    12,     0,     2,     6,     0,     0,
+       7,     6,     0,     9,    11,     0,     2,     6,     0,     0,
        0,     1,     0,     0,     2,     2,     1,     1,     1,     1,
        1,     1,     3,     1,     2,     1,     1,     4,     2,     4,
        3,     2,     1,     1,     1,     3,     3,     3,     3,     3,
@@ -2628,13 +2628,13 @@ yyreduce:
 
   case 44:
 #line 412 "engines/director/lingo/lingo-gr.y"
-                                                                                                              {
+                                                                                                          {
 		inst else1 = 0, end = 0;
-		WRITE_UINT32(&else1, (yyvsp[-6].code) + 1 - (yyvsp[-9].code) + 1);
-		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-6].code) + 1);
-		(*g_lingo->_currentScript)[(yyvsp[-9].code)] = else1;		/* elsepart */
-		(*g_lingo->_currentScript)[(yyvsp[-6].code)] = end;		/* end, if cond fails */
-		g_lingo->processIf((yyvsp[-6].code), (yyvsp[-1].code)); }
+		WRITE_UINT32(&else1, (yyvsp[-5].code) + 1 - (yyvsp[-8].code) + 1);
+		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-5].code) + 1);
+		(*g_lingo->_currentScript)[(yyvsp[-8].code)] = else1;		/* elsepart */
+		(*g_lingo->_currentScript)[(yyvsp[-5].code)] = end;		/* end, if cond fails */
+		g_lingo->processIf((yyvsp[-5].code), (yyvsp[-1].code)); }
 #line 2639 "engines/director/lingo/lingo-gr.cpp"
     break;
 
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 72c67b55f2..9041df4f31 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -409,7 +409,7 @@ ifstmt: if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist lbl[end3
 		(*g_lingo->_currentScript)[$then] = else1;		/* elsepart */
 		(*g_lingo->_currentScript)[$else1] = end3;		/* end, if cond fails */
 		g_lingo->processIf($else1, $end3); }
-	| if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist tELSE lbl stmtlist lbl[end3] tENDIF {
+	| if expr jumpifz[then] tTHEN stmtlist jump[else1] elseifstmtlist tELSE stmtlist lbl[end3] tENDIF {
 		inst else1 = 0, end = 0;
 		WRITE_UINT32(&else1, $else1 + 1 - $then + 1);
 		WRITE_UINT32(&end, $end3 - $else1 + 1);




More information about the Scummvm-git-logs mailing list