[Scummvm-git-logs] scummvm master -> f48343e77cf6de03dfcb3787bf1006b83654abb5

sev- sev at scummvm.org
Tue Nov 26 12:41:19 UTC 2019


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

Summary:
f48343e77c DIRECTOR: LINGO: Fix line count when unsing tokens with new line


Commit: f48343e77cf6de03dfcb3787bf1006b83654abb5
    https://github.com/scummvm/scummvm/commit/f48343e77cf6de03dfcb3787bf1006b83654abb5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2019-11-26T11:18:53+01:00

Commit Message:
DIRECTOR: LINGO: Fix line count when unsing tokens with new line

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 00130a4..d20c5a2 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -540,16 +540,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  127
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1826
+#define YYLAST   1813
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  106
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  43
+#define YYNNTS  46
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  165
+#define YYNRULES  168
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  361
+#define YYNSTATES  364
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -603,114 +603,115 @@ static const yytype_uint8 yytranslate[] =
    YYRHS.  */
 static const yytype_uint16 yyprhs[] =
 {
-       0,     0,     3,     7,     9,    12,    14,    15,    17,    19,
-      21,    26,    31,    36,    41,    46,    51,    57,    62,    67,
-      73,    75,    77,    79,    81,    89,   100,   112,   116,   123,
-     128,   135,   145,   155,   165,   172,   183,   194,   195,   199,
-     202,   204,   207,   209,   216,   218,   225,   227,   231,   235,
-     238,   242,   244,   246,   247,   248,   249,   252,   255,   259,
-     261,   263,   265,   267,   269,   271,   273,   276,   279,   284,
-     289,   291,   293,   296,   298,   302,   306,   310,   314,   318,
-     322,   326,   330,   334,   338,   342,   346,   349,   353,   357,
-     361,   365,   368,   371,   375,   379,   384,   389,   394,   401,
-     406,   413,   418,   425,   430,   437,   440,   443,   445,   447,
-     450,   452,   455,   458,   461,   463,   466,   469,   471,   474,
-     479,   484,   491,   496,   499,   503,   505,   509,   511,   515,
-     517,   521,   524,   527,   530,   533,   537,   540,   543,   545,
-     549,   552,   555,   558,   562,   565,   566,   570,   571,   580,
-     583,   584,   593,   601,   608,   611,   612,   614,   618,   623,
-     624,   627,   628,   630,   634,   636
+       0,     0,     3,     7,     9,    12,    14,    16,    18,    20,
+      21,    23,    25,    27,    32,    37,    42,    47,    52,    57,
+      63,    68,    73,    79,    81,    83,    85,    87,    95,   106,
+     118,   122,   129,   134,   141,   151,   161,   171,   178,   189,
+     200,   201,   205,   208,   210,   213,   215,   222,   224,   231,
+     233,   237,   241,   244,   248,   250,   252,   253,   254,   255,
+     258,   261,   265,   267,   269,   271,   273,   275,   277,   279,
+     282,   285,   290,   295,   297,   299,   302,   304,   308,   312,
+     316,   320,   324,   328,   332,   336,   340,   344,   348,   352,
+     355,   359,   363,   367,   371,   374,   377,   381,   385,   390,
+     395,   400,   407,   412,   419,   424,   431,   436,   443,   446,
+     449,   451,   453,   456,   458,   461,   464,   467,   469,   472,
+     475,   477,   480,   485,   490,   497,   502,   505,   509,   511,
+     515,   517,   521,   523,   527,   530,   533,   536,   539,   543,
+     546,   549,   551,   555,   558,   561,   564,   568,   571,   572,
+     576,   577,   586,   589,   590,   599,   607,   614,   617,   618,
+     620,   624,   629,   630,   633,   634,   636,   640,   642
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     107,     0,    -1,   107,   108,   109,    -1,   109,    -1,     1,
-     108,    -1,    98,    -1,    -1,   140,    -1,   146,    -1,   112,
-      -1,    49,   129,    42,    28,    -1,    49,   129,    42,   130,
-      -1,    49,   129,    75,   129,    -1,    49,   129,    76,   129,
-      -1,    51,    28,    91,   129,    -1,    51,    13,    91,   129,
-      -1,    51,    14,   129,    91,   129,    -1,    51,    28,    54,
-     129,    -1,    51,    13,    54,   129,    -1,    51,    14,   129,
-      54,   129,    -1,   129,    -1,   131,    -1,   111,    -1,   113,
-      -1,   120,    99,   119,   100,   126,   125,    32,    -1,   121,
-      91,   129,   125,    54,   129,   125,   126,   125,    32,    -1,
-     121,    91,   129,   125,    34,    54,   129,   125,   126,   125,
-      32,    -1,   127,   111,   125,    -1,   128,   129,   108,   126,
-     125,    32,    -1,   128,   129,    54,   129,    -1,   122,   119,
-      53,   126,   125,    32,    -1,   122,   119,    53,   126,   125,
-      58,   126,   125,    32,    -1,   122,   119,    53,   126,   125,
-     124,   115,   125,    32,    -1,   122,   119,    53,   126,   125,
-      58,   124,   111,   125,    -1,   122,   119,    52,   124,   111,
-     125,    -1,   122,   119,    52,   124,   111,   125,    58,   124,
-     111,   125,    -1,   122,   119,    52,   124,   111,   125,   116,
-     125,   114,   125,    -1,    -1,    58,   124,   111,    -1,   115,
-     118,    -1,   118,    -1,   116,   117,    -1,   117,    -1,   123,
-     119,    52,   124,   112,   125,    -1,   116,    -1,   123,   119,
-      52,   124,   126,   125,    -1,   129,    -1,   129,    91,   129,
-      -1,    99,   119,   100,    -1,    50,    57,    -1,    50,    56,
-      28,    -1,    41,    -1,    36,    -1,    -1,    -1,    -1,   126,
-     108,    -1,   126,   112,    -1,    55,    28,    52,    -1,    87,
-      -1,    12,    -1,    15,    -1,    31,    -1,    29,    -1,   130,
-      -1,    23,    -1,    24,   129,    -1,    25,   148,    -1,    25,
-      99,   148,   100,    -1,    28,    99,   147,   100,    -1,    28,
-      -1,    13,    -1,    14,   129,    -1,   110,    -1,   129,    93,
-     129,    -1,   129,    94,   129,    -1,   129,    95,   129,    -1,
-     129,    96,   129,    -1,   129,    74,   129,    -1,   129,   101,
-     129,    -1,   129,   102,   129,    -1,   129,    70,   129,    -1,
-     129,    65,   129,    -1,   129,    66,   129,    -1,   129,    71,
-     129,    -1,   129,    72,   129,    -1,    73,   129,    -1,   129,
-      92,   129,    -1,   129,    77,   129,    -1,   129,    78,   129,
-      -1,   129,    79,   129,    -1,    93,   129,    -1,    94,   129,
-      -1,    99,   129,   100,    -1,   103,   147,   104,    -1,    84,
-     129,    85,   129,    -1,    84,   129,    86,   129,    -1,    80,
-     129,    47,   129,    -1,    80,   129,    54,   129,    47,   129,
-      -1,    81,   129,    47,   129,    -1,    81,   129,    54,   129,
-      47,   129,    -1,    82,   129,    47,   129,    -1,    82,   129,
-      54,   129,    47,   129,    -1,    83,   129,    47,   129,    -1,
-      83,   129,    54,   129,    47,   129,    -1,    27,   129,    -1,
-      49,   129,    -1,   135,    -1,   138,    -1,    37,    50,    -1,
-      37,    -1,    39,   132,    -1,    88,   133,    -1,    64,   134,
-      -1,    17,    -1,    19,   129,    -1,    18,   129,    -1,    18,
-      -1,    20,   148,    -1,    20,    99,   148,   100,    -1,    90,
-      99,    28,   100,    -1,    90,    99,    28,   105,   147,   100,
-      -1,    61,   129,    56,   129,    -1,    61,   129,    -1,    21,
-      28,   147,    -1,    28,    -1,   132,   105,    28,    -1,    28,
-      -1,   133,   105,    28,    -1,    28,    -1,   134,   105,    28,
-      -1,    40,    43,    -1,    40,    46,    -1,    40,    48,    -1,
-      40,   136,    -1,    40,   136,   137,    -1,    40,   137,    -1,
-      38,   129,    -1,   129,    -1,    47,    45,   129,    -1,    45,
-     129,    -1,    62,    63,    -1,    62,   136,    -1,    62,   136,
-     137,    -1,    62,   137,    -1,    -1,    33,   139,   147,    -1,
-      -1,    44,    28,   141,   124,   144,   108,   145,   126,    -1,
-      59,    28,    -1,    -1,    60,    28,   142,   124,   144,   108,
-     145,   126,    -1,   143,   124,   144,   108,   145,   126,    32,
-      -1,   143,   124,   144,   108,   145,   126,    -1,    89,    28,
-      -1,    -1,    28,    -1,   144,   105,    28,    -1,   144,   108,
-     105,    28,    -1,    -1,    28,   148,    -1,    -1,   129,    -1,
-     147,   105,   129,    -1,   129,    -1,   148,   105,   129,    -1
+     107,     0,    -1,   107,   108,   112,    -1,   112,    -1,     1,
+     108,    -1,    98,    -1,    53,    -1,    58,    -1,    36,    -1,
+      -1,   143,    -1,   149,    -1,   115,    -1,    49,   132,    42,
+      28,    -1,    49,   132,    42,   133,    -1,    49,   132,    75,
+     132,    -1,    49,   132,    76,   132,    -1,    51,    28,    91,
+     132,    -1,    51,    13,    91,   132,    -1,    51,    14,   132,
+      91,   132,    -1,    51,    28,    54,   132,    -1,    51,    13,
+      54,   132,    -1,    51,    14,   132,    54,   132,    -1,   132,
+      -1,   134,    -1,   114,    -1,   116,    -1,   123,    99,   122,
+     100,   129,   128,    32,    -1,   124,    91,   132,   128,    54,
+     132,   128,   129,   128,    32,    -1,   124,    91,   132,   128,
+      34,    54,   132,   128,   129,   128,    32,    -1,   130,   114,
+     128,    -1,   131,   132,   108,   129,   128,    32,    -1,   131,
+     132,    54,   132,    -1,   125,   122,   109,   129,   128,    32,
+      -1,   125,   122,   109,   129,   128,   110,   129,   128,    32,
+      -1,   125,   122,   109,   129,   128,   127,   118,   128,    32,
+      -1,   125,   122,   109,   129,   128,   110,   127,   114,   128,
+      -1,   125,   122,    52,   127,   114,   128,    -1,   125,   122,
+      52,   127,   114,   128,   110,   127,   114,   128,    -1,   125,
+     122,    52,   127,   114,   128,   119,   128,   117,   128,    -1,
+      -1,   110,   127,   114,    -1,   118,   121,    -1,   121,    -1,
+     119,   120,    -1,   120,    -1,   126,   122,    52,   127,   115,
+     128,    -1,   119,    -1,   126,   122,    52,   127,   129,   128,
+      -1,   132,    -1,   132,    91,   132,    -1,    99,   122,   100,
+      -1,    50,    57,    -1,    50,    56,    28,    -1,    41,    -1,
+     111,    -1,    -1,    -1,    -1,   129,   108,    -1,   129,   115,
+      -1,    55,    28,    52,    -1,    87,    -1,    12,    -1,    15,
+      -1,    31,    -1,    29,    -1,   133,    -1,    23,    -1,    24,
+     132,    -1,    25,   151,    -1,    25,    99,   151,   100,    -1,
+      28,    99,   150,   100,    -1,    28,    -1,    13,    -1,    14,
+     132,    -1,   113,    -1,   132,    93,   132,    -1,   132,    94,
+     132,    -1,   132,    95,   132,    -1,   132,    96,   132,    -1,
+     132,    74,   132,    -1,   132,   101,   132,    -1,   132,   102,
+     132,    -1,   132,    70,   132,    -1,   132,    65,   132,    -1,
+     132,    66,   132,    -1,   132,    71,   132,    -1,   132,    72,
+     132,    -1,    73,   132,    -1,   132,    92,   132,    -1,   132,
+      77,   132,    -1,   132,    78,   132,    -1,   132,    79,   132,
+      -1,    93,   132,    -1,    94,   132,    -1,    99,   132,   100,
+      -1,   103,   150,   104,    -1,    84,   132,    85,   132,    -1,
+      84,   132,    86,   132,    -1,    80,   132,    47,   132,    -1,
+      80,   132,    54,   132,    47,   132,    -1,    81,   132,    47,
+     132,    -1,    81,   132,    54,   132,    47,   132,    -1,    82,
+     132,    47,   132,    -1,    82,   132,    54,   132,    47,   132,
+      -1,    83,   132,    47,   132,    -1,    83,   132,    54,   132,
+      47,   132,    -1,    27,   132,    -1,    49,   132,    -1,   138,
+      -1,   141,    -1,    37,    50,    -1,    37,    -1,    39,   135,
+      -1,    88,   136,    -1,    64,   137,    -1,    17,    -1,    19,
+     132,    -1,    18,   132,    -1,    18,    -1,    20,   151,    -1,
+      20,    99,   151,   100,    -1,    90,    99,    28,   100,    -1,
+      90,    99,    28,   105,   150,   100,    -1,    61,   132,    56,
+     132,    -1,    61,   132,    -1,    21,    28,   150,    -1,    28,
+      -1,   135,   105,    28,    -1,    28,    -1,   136,   105,    28,
+      -1,    28,    -1,   137,   105,    28,    -1,    40,    43,    -1,
+      40,    46,    -1,    40,    48,    -1,    40,   139,    -1,    40,
+     139,   140,    -1,    40,   140,    -1,    38,   132,    -1,   132,
+      -1,    47,    45,   132,    -1,    45,   132,    -1,    62,    63,
+      -1,    62,   139,    -1,    62,   139,   140,    -1,    62,   140,
+      -1,    -1,    33,   142,   150,    -1,    -1,    44,    28,   144,
+     127,   147,   108,   148,   129,    -1,    59,    28,    -1,    -1,
+      60,    28,   145,   127,   147,   108,   148,   129,    -1,   146,
+     127,   147,   108,   148,   129,    32,    -1,   146,   127,   147,
+     108,   148,   129,    -1,    89,    28,    -1,    -1,    28,    -1,
+     147,   105,    28,    -1,   147,   108,   105,    28,    -1,    -1,
+      28,   151,    -1,    -1,   132,    -1,   150,   105,   132,    -1,
+     132,    -1,   151,   105,   132,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   119,   119,   120,   121,   124,   129,   130,   131,   132,
-     135,   141,   144,   145,   146,   152,   159,   165,   171,   178,
-     186,   187,   190,   191,   196,   209,   227,   241,   247,   250,
-     255,   265,   277,   289,   299,   309,   319,   331,   332,   335,
-     336,   339,   340,   343,   351,   352,   360,   361,   362,   365,
-     368,   375,   382,   390,   393,   396,   397,   398,   401,   407,
-     411,   414,   417,   420,   423,   424,   427,   430,   431,   432,
-     435,   439,   447,   453,   454,   455,   456,   457,   458,   459,
-     460,   461,   462,   463,   464,   465,   466,   467,   468,   469,
-     470,   471,   472,   473,   474,   475,   476,   477,   478,   479,
-     480,   481,   482,   483,   484,   487,   492,   493,   494,   495,
-     496,   497,   498,   499,   500,   503,   506,   509,   513,   514,
-     515,   516,   517,   518,   519,   522,   523,   526,   527,   530,
-     531,   542,   543,   544,   545,   549,   553,   559,   560,   563,
-     564,   567,   568,   572,   576,   580,   580,   610,   610,   615,
-     618,   618,   623,   631,   638,   640,   641,   642,   643,   646,
-     650,   658,   659,   660,   663,   664
+       0,   119,   119,   120,   121,   124,   129,   134,   139,   144,
+     145,   146,   147,   150,   156,   159,   160,   161,   167,   174,
+     180,   186,   193,   201,   202,   205,   206,   211,   224,   242,
+     256,   262,   265,   270,   280,   292,   304,   314,   324,   334,
+     346,   347,   350,   351,   354,   355,   358,   366,   367,   375,
+     376,   377,   380,   383,   390,   397,   405,   408,   411,   412,
+     413,   416,   422,   426,   429,   432,   435,   438,   439,   442,
+     445,   446,   447,   450,   454,   462,   468,   469,   470,   471,
+     472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
+     482,   483,   484,   485,   486,   487,   488,   489,   490,   491,
+     492,   493,   494,   495,   496,   497,   498,   499,   502,   507,
+     508,   509,   510,   511,   512,   513,   514,   515,   518,   521,
+     524,   528,   529,   530,   531,   532,   533,   534,   537,   538,
+     541,   542,   545,   546,   557,   558,   559,   560,   564,   568,
+     574,   575,   578,   579,   582,   583,   587,   591,   595,   595,
+     625,   625,   630,   633,   633,   638,   646,   653,   655,   656,
+     657,   658,   661,   665,   673,   674,   675,   678,   679
 };
 #endif
 
@@ -734,14 +735,15 @@ static const char *const yytname[] =
   "tCONTAINS", "tSTARTS", "tCHAR", "tITEM", "tLINE", "tWORD", "tSPRITE",
   "tINTERSECTS", "tWITHIN", "tTELL", "tPROPERTY", "tON", "tME", "'='",
   "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'\\n'", "'('", "')'", "'>'",
-  "'<'", "'['", "']'", "','", "$accept", "program", "nl", "programline",
-  "asgn", "stmtoneliner", "stmt", "ifstmt", "elsestmtoneliner",
-  "elseifstmt", "elseifstmtoneliner", "elseifstmtoneliner1", "elseifstmt1",
-  "cond", "repeatwhile", "repeatwith", "if", "elseif", "begin", "end",
-  "stmtlist", "when", "tell", "expr", "reference", "proc", "globallist",
-  "propertylist", "instancelist", "gotofunc", "gotoframe", "gotomovie",
-  "playfunc", "@1", "defn", "@2", "@3", "on", "argdef", "argstore",
-  "macro", "arglist", "nonemptyarglist", 0
+  "'<'", "'['", "']'", "','", "$accept", "program", "nl", "thennl",
+  "nlelse", "nlelsif", "programline", "asgn", "stmtoneliner", "stmt",
+  "ifstmt", "elsestmtoneliner", "elseifstmt", "elseifstmtoneliner",
+  "elseifstmtoneliner1", "elseifstmt1", "cond", "repeatwhile",
+  "repeatwith", "if", "elseif", "begin", "end", "stmtlist", "when", "tell",
+  "expr", "reference", "proc", "globallist", "propertylist",
+  "instancelist", "gotofunc", "gotoframe", "gotomovie", "playfunc", "@1",
+  "defn", "@2", "@3", "on", "argdef", "argstore", "macro", "arglist",
+  "nonemptyarglist", 0
 };
 #endif
 
@@ -767,45 +769,45 @@ static const yytype_uint16 yytoknum[] =
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,   106,   107,   107,   107,   108,   109,   109,   109,   109,
-     110,   110,   110,   110,   110,   110,   110,   110,   110,   110,
-     111,   111,   112,   112,   112,   112,   112,   112,   112,   112,
-     113,   113,   113,   113,   113,   113,   113,   114,   114,   115,
-     115,   116,   116,   117,   118,   118,   119,   119,   119,   120,
-     121,   122,   123,   124,   125,   126,   126,   126,   127,   128,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,   130,   131,   131,   131,   131,
-     131,   131,   131,   131,   131,   131,   131,   131,   131,   131,
-     131,   131,   131,   131,   131,   132,   132,   133,   133,   134,
-     134,   135,   135,   135,   135,   135,   135,   136,   136,   137,
-     137,   138,   138,   138,   138,   139,   138,   141,   140,   140,
-     142,   140,   140,   140,   143,   144,   144,   144,   144,   145,
-     146,   147,   147,   147,   148,   148
+       0,   106,   107,   107,   107,   108,   109,   110,   111,   112,
+     112,   112,   112,   113,   113,   113,   113,   113,   113,   113,
+     113,   113,   113,   114,   114,   115,   115,   115,   115,   115,
+     115,   115,   115,   116,   116,   116,   116,   116,   116,   116,
+     117,   117,   118,   118,   119,   119,   120,   121,   121,   122,
+     122,   122,   123,   124,   125,   126,   127,   128,   129,   129,
+     129,   130,   131,   132,   132,   132,   132,   132,   132,   132,
+     132,   132,   132,   132,   132,   132,   132,   132,   132,   132,
+     132,   132,   132,   132,   132,   132,   132,   132,   132,   132,
+     132,   132,   132,   132,   132,   132,   132,   132,   132,   132,
+     132,   132,   132,   132,   132,   132,   132,   132,   133,   134,
+     134,   134,   134,   134,   134,   134,   134,   134,   134,   134,
+     134,   134,   134,   134,   134,   134,   134,   134,   135,   135,
+     136,   136,   137,   137,   138,   138,   138,   138,   138,   138,
+     139,   139,   140,   140,   141,   141,   141,   141,   142,   141,
+     144,   143,   143,   145,   143,   143,   143,   146,   147,   147,
+     147,   147,   148,   149,   150,   150,   150,   151,   151
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const yytype_uint8 yyr2[] =
 {
-       0,     2,     3,     1,     2,     1,     0,     1,     1,     1,
-       4,     4,     4,     4,     4,     4,     5,     4,     4,     5,
-       1,     1,     1,     1,     7,    10,    11,     3,     6,     4,
-       6,     9,     9,     9,     6,    10,    10,     0,     3,     2,
-       1,     2,     1,     6,     1,     6,     1,     3,     3,     2,
-       3,     1,     1,     0,     0,     0,     2,     2,     3,     1,
-       1,     1,     1,     1,     1,     1,     2,     2,     4,     4,
-       1,     1,     2,     1,     3,     3,     3,     3,     3,     3,
-       3,     3,     3,     3,     3,     3,     2,     3,     3,     3,
-       3,     2,     2,     3,     3,     4,     4,     4,     6,     4,
-       6,     4,     6,     4,     6,     2,     2,     1,     1,     2,
-       1,     2,     2,     2,     1,     2,     2,     1,     2,     4,
-       4,     6,     4,     2,     3,     1,     3,     1,     3,     1,
-       3,     2,     2,     2,     2,     3,     2,     2,     1,     3,
-       2,     2,     2,     3,     2,     0,     3,     0,     8,     2,
-       0,     8,     7,     6,     2,     0,     1,     3,     4,     0,
-       2,     0,     1,     3,     1,     3
+       0,     2,     3,     1,     2,     1,     1,     1,     1,     0,
+       1,     1,     1,     4,     4,     4,     4,     4,     4,     5,
+       4,     4,     5,     1,     1,     1,     1,     7,    10,    11,
+       3,     6,     4,     6,     9,     9,     9,     6,    10,    10,
+       0,     3,     2,     1,     2,     1,     6,     1,     6,     1,
+       3,     3,     2,     3,     1,     1,     0,     0,     0,     2,
+       2,     3,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     4,     4,     1,     1,     2,     1,     3,     3,     3,
+       3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
+       3,     3,     3,     3,     2,     2,     3,     3,     4,     4,
+       4,     6,     4,     6,     4,     6,     4,     6,     2,     2,
+       1,     1,     2,     1,     2,     2,     2,     1,     2,     2,
+       1,     2,     4,     4,     6,     4,     2,     3,     1,     3,
+       1,     3,     1,     3,     2,     2,     2,     2,     3,     2,
+       2,     1,     3,     2,     2,     2,     3,     2,     0,     3,
+       0,     8,     2,     0,     8,     7,     6,     2,     0,     1,
+       3,     4,     0,     2,     0,     1,     3,     1,     3
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -813,153 +815,155 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,     0,    60,    71,     0,    61,   114,   117,     0,     0,
-       0,    65,     0,     0,     0,    70,    63,    62,   145,   110,
-       0,     0,    51,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    59,
-       0,     0,     0,     0,     0,     0,   161,     0,     3,    73,
-      22,     9,    23,     0,     0,     0,     0,     0,    20,    64,
-      21,   107,   108,     7,    53,     8,     5,     4,    70,     0,
-      72,   116,   115,     0,   164,   118,   161,    66,     0,    67,
-     105,   161,   160,   161,   109,   125,   111,     0,   131,     0,
-     132,     0,   133,   138,   134,   136,   147,   106,     0,    49,
-       0,     0,     0,     0,   149,   150,   123,   141,   142,   144,
-     129,   113,    86,     0,     0,     0,     0,     0,   127,   112,
-     154,     0,    91,    92,     0,   162,     0,     1,     6,     0,
-       0,     0,     0,    46,    54,     0,     0,     0,     0,     0,
+       0,     0,    63,    74,     0,    64,   117,   120,     0,     0,
+       0,    68,     0,     0,     0,    73,    66,    65,   148,   113,
+       0,     0,    54,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    62,
+       0,     0,     0,     0,     0,     0,   164,     0,     3,    76,
+      25,    12,    26,     0,     0,     0,     0,     0,    23,    67,
+      24,   110,   111,    10,    56,    11,     5,     4,    73,     0,
+      75,   119,   118,     0,   167,   121,   164,    69,     0,    70,
+     108,   164,   163,   164,   112,   128,   114,     0,   134,     0,
+     135,     0,   136,   141,   137,   139,   150,   109,     0,    52,
+       0,     0,     0,     0,   152,   153,   126,   144,   145,   147,
+     132,   116,    89,     0,     0,     0,     0,     0,   130,   115,
+     157,     0,    94,    95,     0,   165,     0,     1,     9,     0,
+       0,     0,     0,    49,    57,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   155,   161,     0,   164,     0,     0,   124,     0,
-     162,     0,   146,     0,   137,   140,     0,   135,    53,     0,
-       0,     0,    50,     0,     0,     0,     0,     0,    58,    53,
-       0,   143,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    93,    94,     0,     2,     0,
-      54,     0,     0,    53,    55,     0,    27,     0,    55,    82,
-      83,    81,    84,    85,    78,    88,    89,    90,    87,    74,
-      75,    76,    77,    79,    80,   156,     0,   119,   165,    68,
-      69,   126,   139,   155,    10,    11,    12,    13,    18,    15,
-       0,     0,    17,    14,   155,   122,   130,    97,     0,    99,
-       0,   101,     0,   103,     0,    95,    96,   128,   120,   161,
-     163,    55,     0,    48,     0,    54,    47,    29,    54,     0,
-     159,     0,    19,    16,     0,     0,     0,     0,     0,     0,
-      54,     0,     0,    54,    56,    57,    53,     0,   157,     0,
-      55,   159,   159,    98,   100,   102,   104,   121,     0,     0,
-      54,    34,    30,    53,     0,    28,   158,   153,    55,    55,
-      24,    54,    55,    52,    53,    54,    42,     0,     0,    54,
-      54,    44,    40,     0,   152,   148,   151,    55,    54,     0,
-      41,    37,     0,    54,     0,    39,     0,     0,    54,     0,
-      54,    53,    54,    53,    33,    31,    32,    53,     0,    25,
-      35,     0,    36,     0,    55,    26,    38,    54,    54,    43,
-      45
+       0,     0,   158,   164,     0,   167,     0,     0,   127,     0,
+     165,     0,   149,     0,   140,   143,     0,   138,    56,     0,
+       0,     0,    53,     0,     0,     0,     0,     0,    61,    56,
+       0,   146,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    96,    97,     0,     2,     0,
+      57,     0,     0,    56,     6,    58,     0,    30,     0,    58,
+      85,    86,    84,    87,    88,    81,    91,    92,    93,    90,
+      77,    78,    79,    80,    82,    83,   159,     0,   122,   168,
+      71,    72,   129,   142,   158,    13,    14,    15,    16,    21,
+      18,     0,     0,    20,    17,   158,   125,   133,   100,     0,
+     102,     0,   104,     0,   106,     0,    98,    99,   131,   123,
+     164,   166,    58,     0,    51,     0,    57,    50,    32,    57,
+       0,   162,     0,    22,    19,     0,     0,     0,     0,     0,
+       0,    57,     0,     0,    57,    59,    60,    56,     0,   160,
+       0,    58,   162,   162,   101,   103,   105,   107,   124,     0,
+       0,    57,    37,    33,     7,    56,     0,    31,   161,   156,
+      58,    58,    27,    57,    58,     8,    56,    55,    57,    45,
+       0,     0,    57,    57,    47,    43,     0,   155,   151,   154,
+      58,    57,     0,    44,    40,     0,    57,     0,    42,     0,
+       0,    57,     0,    57,    56,    57,    56,    36,    34,    35,
+      56,     0,    28,    38,     0,    39,     0,    58,    29,    41,
+      57,    57,    46,    48
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    47,   284,    48,    49,    50,   285,    52,   342,   320,
-     321,   316,   322,   132,    53,    54,    55,   317,   152,   206,
-     265,    56,    57,    58,    59,    60,    86,   119,   111,    61,
-      94,    95,    62,    83,    63,   168,   179,    64,   226,   290,
-      65,   161,    75
+      -1,    47,   285,   205,   305,   317,    48,    49,    50,   286,
+      52,   345,   323,   324,   319,   325,   132,    53,    54,    55,
+     320,   152,   207,   266,    56,    57,    58,    59,    60,    86,
+     119,   111,    61,    94,    95,    62,    83,    63,   168,   179,
+      64,   227,   291,    65,   161,    75
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -298
+#define YYPACT_NINF -285
 static const yytype_int16 yypact[] =
 {
-     349,   -68,  -298,  -298,  1006,  -298,  -298,  1006,  1006,  1046,
-      25,  -298,  1006,  1119,  1006,  1159,  -298,  -298,  -298,    19,
-      43,   892,  -298,    57,  1006,    16,    50,    61,    63,    69,
-    1006,   933,    73,  1006,  1006,  1006,  1006,  1006,  1006,  -298,
-      78,    83,    28,  1006,  1006,  1006,  1006,     6,  -298,  -298,
-    -298,  -298,  -298,    36,    45,  1232,   809,  1006,  1724,  -298,
-    -298,  -298,  -298,  -298,  -298,  -298,  -298,  -298,    56,  1006,
-    1724,  1724,  1724,  1006,  1724,     8,  1006,  1724,  1006,     8,
-    1724,  1006,     8,  1006,  -298,  -298,    51,  1006,  -298,  1006,
-    -298,   112,  -298,  1724,    15,  -298,  -298,  1262,   131,  -298,
-     -42,  1006,   -37,   108,  -298,  -298,  1559,  -298,    15,  -298,
-    -298,    58,   -26,  1295,  1328,  1361,  1394,  1592,  -298,    59,
-    -298,   133,   -26,   -26,  1658,  1724,    17,  -298,   441,  1232,
-    1006,  1232,    67,  1691,  -298,   785,  1006,  1006,  1006,  1006,
-    1006,  1006,  1006,  1006,  1006,  1006,  1006,  1006,  1006,  1006,
-    1006,  1006,   134,  1006,  1262,  1658,   -50,  1006,    60,    -5,
-    1658,     3,    60,   140,  1724,  1724,  1006,  -298,  -298,    98,
-    1006,  1006,  -298,  1006,  1006,  1526,  1006,  1006,  -298,  -298,
-    1006,  -298,   141,  1006,  1006,  1006,  1006,  1006,  1006,  1006,
-    1006,  1006,  1006,   142,     5,  -298,  -298,  1006,  -298,    76,
-    1724,    79,  1625,  -298,  -298,  1006,  -298,  1006,  -298,    22,
-      22,    22,   -26,   -26,   -26,  1724,    22,    22,   160,   232,
-     232,   -26,   -26,  1724,  1724,  -298,   -87,  -298,  1724,  -298,
-    -298,  -298,  1724,   134,  -298,  -298,  1724,  1724,  1724,  1724,
-    1006,  1006,  1724,  1724,   134,  1724,  -298,  1724,  1201,  1724,
-    1427,  1724,  1460,  1724,  1493,  1724,  1724,  -298,  -298,  1006,
-    1724,  -298,   -13,  -298,   809,   625,  1724,  1724,   625,   145,
-      75,   -87,  1724,  1724,   -87,  1006,  1006,  1006,  1006,     7,
-     625,   143,  1006,  -298,  -298,  -298,   -30,   163,  -298,   168,
-    -298,    75,    75,  1724,  1724,  1724,  1724,  -298,   167,  1006,
-    1724,   -16,  -298,    11,   164,  -298,  -298,   533,  -298,  -298,
-    -298,  1724,  -298,  -298,  -298,   164,  -298,  1232,   809,   625,
-     164,   164,  -298,  1232,  -298,   625,   625,  -298,   625,   809,
-    -298,   146,   149,  -298,   171,  -298,   173,   155,   625,   178,
-    -298,  -298,  -298,  -298,  -298,  -298,  -298,  -298,   181,  -298,
-    -298,   809,  -298,   717,   717,  -298,  -298,  -298,   625,  -298,
-    -298
+     369,   -87,  -285,  -285,  1026,  -285,  -285,  1026,  1026,  1066,
+      27,  -285,  1026,  1139,  1026,  1179,  -285,  -285,  -285,   -21,
+      39,   912,  -285,    43,  1026,    77,    67,    59,    61,    69,
+    1026,   953,    73,  1026,  1026,  1026,  1026,  1026,  1026,  -285,
+      76,    85,   -40,  1026,  1026,  1026,  1026,     2,  -285,  -285,
+    -285,  -285,  -285,    20,    34,  1252,   829,  1026,  1711,  -285,
+    -285,  -285,  -285,  -285,  -285,  -285,  -285,  -285,    28,  1026,
+    1711,  1711,  1711,  1026,  1711,    17,  1026,  1711,  1026,    17,
+    1711,  1026,    17,  1026,  -285,  -285,    24,  1026,  -285,  1026,
+    -285,   112,  -285,  1711,    38,  -285,  -285,  1282,   133,  -285,
+     -42,  1026,   -37,   110,  -285,  -285,  1546,  -285,    38,  -285,
+    -285,    58,   -29,   252,  1315,  1348,  1381,  1579,  -285,    60,
+    -285,   136,   -29,   -29,  1645,  1711,    31,  -285,   461,  1252,
+    1026,  1252,    23,  1678,  -285,   805,  1026,  1026,  1026,  1026,
+    1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,  1026,
+    1026,  1026,   138,  1026,  1282,  1645,     3,  1026,    63,     5,
+    1645,     6,    63,   141,  1711,  1711,  1026,  -285,  -285,   128,
+    1026,  1026,  -285,  1026,  1026,  1513,  1026,  1026,  -285,  -285,
+    1026,  -285,   142,  1026,  1026,  1026,  1026,  1026,  1026,  1026,
+    1026,  1026,  1026,   151,     7,  -285,  -285,  1026,  -285,    80,
+    1711,    82,  1612,  -285,  -285,  -285,  1026,  -285,  1026,  -285,
+      22,    22,    22,   -29,   -29,   -29,  1711,    22,    22,   155,
+     238,   238,   -29,   -29,  1711,  1711,  -285,   -45,  -285,  1711,
+    -285,  -285,  -285,  1711,   138,  -285,  -285,  1711,  1711,  1711,
+    1711,  1026,  1026,  1711,  1711,   138,  1711,  -285,  1711,  1221,
+    1711,  1414,  1711,  1447,  1711,  1480,  1711,  1711,  -285,  -285,
+    1026,  1711,  -285,   -27,  -285,   829,   645,  1711,  1711,   645,
+     167,    78,   -45,  1711,  1711,   -45,  1026,  1026,  1026,  1026,
+      21,   645,   143,  1026,  -285,  -285,  -285,   -28,   164,  -285,
+     171,  -285,    78,    78,  1711,  1711,  1711,  1711,  -285,   168,
+    1026,  1711,   -16,  -285,  -285,    11,   165,  -285,  -285,   553,
+    -285,  -285,  -285,  1711,  -285,  -285,  -285,  -285,   165,  -285,
+    1252,   829,   645,   165,   165,  -285,  1252,  -285,   645,   645,
+    -285,   645,   829,  -285,   145,   152,  -285,   174,  -285,   176,
+     158,   645,   179,  -285,  -285,  -285,  -285,  -285,  -285,  -285,
+    -285,   181,  -285,  -285,   829,  -285,   737,   737,  -285,  -285,
+    -285,   645,  -285,  -285
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -298,  -298,    18,    86,  -298,   -55,     0,  -298,  -298,  -298,
-     -86,  -235,  -103,  -105,  -298,  -298,  -298,  -297,  -120,     2,
-     -79,  -298,  -298,     1,    53,  -298,  -298,  -298,  -298,  -298,
-     188,   -27,  -298,  -298,  -298,  -298,  -298,  -298,  -176,  -158,
-    -298,   -43,    14
+    -285,  -285,    18,  -285,  -284,  -285,    86,  -285,   -50,     0,
+    -285,  -285,  -285,   -82,  -255,  -100,  -108,  -285,  -285,  -285,
+    -282,  -111,    19,   -89,  -285,  -285,     1,    55,  -285,  -285,
+    -285,  -285,  -285,   197,   -30,  -285,  -285,  -285,  -285,  -285,
+    -285,  -183,  -133,  -285,   -43,    13
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -56
+#define YYTABLE_NINF -59
 static const yytype_int16 yytable[] =
 {
-      51,   134,   302,   126,   109,    70,   127,   323,    71,    72,
-      74,    66,   173,    77,    74,    80,    74,   176,   269,    67,
-     313,   281,    93,   323,   199,    97,   201,    79,   303,    82,
-      66,   106,    93,   158,   112,   113,   114,   115,   116,   117,
-     162,   282,   314,   -55,   122,   123,   124,   125,   233,   174,
-     227,   142,   -55,    76,   177,   157,   133,   271,   135,   244,
-      89,   -55,    91,   100,   101,   128,   -55,   167,   274,    84,
-     154,    85,    98,    99,   155,   150,   151,   125,   102,   155,
-     330,   181,   160,   264,   125,    96,   330,   156,   164,   103,
-     165,   104,   159,   139,   140,   229,   141,   105,   -55,   142,
-     157,   110,   175,   230,    66,   258,   118,   297,   197,   -55,
-     259,   120,   197,   157,   145,   146,   147,   148,   149,   203,
-     204,   196,   197,   150,   151,    14,   234,   121,    51,   268,
-     133,   200,   202,   308,   309,   129,   130,   209,   210,   211,
-     212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
-     222,   223,   224,   208,   125,   153,   163,   166,   228,   172,
-     178,   194,   225,   182,   193,   197,   304,   232,   231,   246,
-     257,   236,   237,   288,   238,   239,   261,   242,   243,   263,
-     289,   245,   280,   318,   247,   248,   249,   250,   251,   252,
-     253,   254,   255,   256,   329,   305,   306,   299,   260,   310,
-     313,   343,   262,   345,   341,   346,   266,   347,   267,   283,
-     349,   307,   332,   355,   198,   315,   279,   335,   337,   108,
-       0,   351,   235,   353,   319,     0,     0,   354,     0,   325,
-     326,   139,   140,   328,   141,     0,     0,   142,     0,     0,
-       0,   272,   273,     0,   270,     0,     0,     0,   338,     0,
-       0,     0,     0,   146,   147,   148,   149,     0,     0,     0,
-     125,   150,   151,   333,     0,     0,     0,   286,     0,     0,
-     287,     0,     0,     0,   340,   358,   293,   294,   295,   296,
-       0,     0,   298,   300,     0,   301,     0,     0,     0,   291,
-       0,     0,   292,     0,     0,     0,   356,     0,     0,     0,
-     311,     0,   312,   139,   140,     0,   141,     0,     0,   142,
-       0,     0,     0,   327,     0,     0,     0,   331,   133,     0,
-       0,   334,   336,     0,   133,     0,     0,   148,   149,     0,
-     339,     0,     0,   150,   151,   344,     0,     0,     0,     0,
-     348,     0,   350,     0,   352,     0,     0,     0,     0,    -6,
-       1,     0,     0,   357,   357,     0,     0,     0,     0,   359,
-     360,     2,     3,     4,     5,     0,     6,     7,     8,     9,
+      51,   109,   127,   126,   303,    70,   134,   282,    71,    72,
+      74,    66,   173,    77,    74,    80,    74,   176,   316,    67,
+     315,   199,    93,   201,   326,    97,    79,   283,    82,    84,
+     304,   106,    93,   158,   112,   113,   114,   115,   116,   117,
+     162,   326,   304,   -58,   122,   123,   124,   125,   142,   174,
+     344,   272,   -58,    66,   177,    76,   133,   234,   135,   121,
+     270,   -58,   275,   333,   167,   128,   -58,    85,   245,   333,
+     154,    96,   150,   151,   155,   203,   204,   125,   181,   155,
+     100,   101,   160,    89,   125,    91,   156,   103,   164,   104,
+     165,   159,   265,   139,   140,   102,   141,   105,   -58,   142,
+      66,   110,   175,   228,   118,   230,   231,   259,   157,   -58,
+     157,   197,   260,   120,   145,   146,   147,   148,   149,   129,
+     269,   298,   157,   150,   151,   130,   197,   153,    51,   163,
+     133,   200,   202,    98,    99,   196,   197,   210,   211,   212,
+     213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
+     223,   224,   225,   209,   125,    14,   235,   166,   229,   310,
+     311,   172,   178,   182,   194,   193,   226,   233,   197,   232,
+     247,   237,   238,   281,   239,   240,   306,   243,   244,   258,
+     262,   246,   264,   290,   248,   249,   250,   251,   252,   253,
+     254,   255,   256,   257,   321,   289,   307,   300,   261,   308,
+     312,   315,   309,   304,   346,   332,   348,   267,   349,   268,
+     350,   352,   335,   358,   198,   284,   322,   280,   340,   263,
+     318,   328,   329,   338,   236,   331,   139,   140,   108,   141,
+       0,     0,   142,   354,     0,   356,     0,     0,     0,   357,
+       0,   341,   273,   274,     0,   271,     0,     0,   146,   147,
+     148,   149,     0,     0,     0,     0,   150,   151,     0,     0,
+       0,   125,     0,     0,     0,     0,     0,     0,   361,     0,
+       0,   336,     0,     0,     0,     0,     0,   294,   295,   296,
+     297,     0,   343,     0,   301,   287,     0,     0,   288,     0,
+     292,     0,     0,   293,     0,     0,     0,     0,     0,   183,
+     299,   313,     0,   302,   359,     0,   184,     0,     0,   139,
+     140,     0,   141,     0,     0,   142,     0,   136,   137,     0,
+     314,   133,   138,   139,   140,     0,   141,   133,     0,   142,
+     143,   144,   330,   148,   149,     0,     0,   334,     0,   150,
+     151,   337,   339,     0,   145,   146,   147,   148,   149,     0,
+     342,     0,     0,   150,   151,   347,   360,   360,     0,     0,
+     351,     0,   353,     0,   355,     0,     0,     0,     0,    -9,
+       1,     0,     0,     0,     0,     0,     0,     0,     0,   362,
+     363,     2,     3,     4,     5,     0,     6,     7,     8,     9,
       10,     0,    11,    12,    13,     0,    14,    15,    16,     0,
       17,     0,    18,     0,     0,     0,    19,     0,    20,    21,
       22,     0,     0,    23,     0,     0,     0,     0,    24,    25,
@@ -967,7 +971,7 @@ static const yytype_int16 yytable[] =
       30,    31,     0,    32,     0,     0,     0,     0,     0,     0,
        0,     0,    33,     0,     0,     0,     0,     0,     0,    34,
       35,    36,    37,    38,     0,     0,    39,    40,    41,    42,
-       0,     0,    43,    44,     0,     0,     0,    -6,    45,     0,
+       0,     0,    43,    44,     0,     0,     0,    -9,    45,     0,
        0,     0,    46,     2,     3,     4,     5,     0,     6,     7,
        8,     9,    10,     0,    11,    12,    13,     0,    14,    15,
       16,     0,    17,     0,    18,     0,     0,     0,    19,     0,
@@ -979,7 +983,7 @@ static const yytype_int16 yytable[] =
       41,    42,     0,     0,    43,    44,     0,     0,     0,     0,
       45,     0,     0,     0,    46,     2,     3,     4,     5,     0,
        6,     7,     8,     9,    10,     0,    11,    12,    13,     0,
-      14,    68,    16,     0,    17,   324,    18,     0,     0,     0,
+      14,    68,    16,     0,    17,   327,    18,     0,     0,     0,
       19,     0,    20,    21,    22,     0,     0,     0,     0,     0,
        0,     0,    24,    25,    26,     0,     0,     0,    27,     0,
        0,     0,     0,     0,    30,    31,     0,    32,     0,     0,
@@ -1006,7 +1010,7 @@ static const yytype_int16 yytable[] =
       37,    38,     0,     0,    39,    40,     0,    42,     0,     0,
       43,    44,     0,     0,     0,     0,    45,     0,     0,     0,
       46,     2,     3,     4,     5,     0,     6,     7,     8,     9,
-      10,     0,    11,    12,    13,     0,    14,    68,    16,   207,
+      10,     0,    11,    12,    13,     0,    14,    68,    16,   208,
       17,     0,    18,     0,     0,     0,    19,     0,    20,    21,
      136,   137,     0,     0,     0,   138,   139,   140,    24,   141,
       26,     0,   142,   143,   144,     0,     0,     0,     0,     0,
@@ -1047,7 +1051,7 @@ static const yytype_int16 yytable[] =
       26,     0,    43,    44,     0,     0,     0,     0,    78,     0,
        0,     0,    46,     0,     0,     0,     0,     0,     0,     0,
        0,     0,    33,     0,     0,     0,     0,     0,     0,    34,
-      35,    36,    37,    38,     2,     3,     4,     5,   275,     0,
+      35,    36,    37,    38,     2,     3,     4,     5,   276,     0,
        0,     0,    43,    44,     0,    11,    12,    13,    81,    14,
       68,    16,    46,    17,     0,     0,   136,   137,     0,     0,
        0,   138,   139,   140,     0,   141,     0,     0,   142,   143,
@@ -1057,96 +1061,95 @@ static const yytype_int16 yytable[] =
        0,     0,    34,    35,    36,    37,    38,     0,     0,     0,
        0,     0,     0,     0,     0,    43,    44,   136,   137,     0,
        0,   131,   138,   139,   140,    46,   141,   170,   171,   142,
-     143,   144,   183,     0,     0,     0,     0,     0,     0,   184,
+     143,   144,   185,     0,     0,     0,     0,     0,     0,   186,
        0,     0,     0,     0,   145,   146,   147,   148,   149,     0,
      136,   137,     0,   150,   151,   138,   139,   140,     0,   141,
-       0,     0,   142,   143,   144,   185,     0,     0,     0,     0,
-       0,     0,   186,     0,     0,     0,     0,   145,   146,   147,
+       0,     0,   142,   143,   144,   187,     0,     0,     0,     0,
+       0,     0,   188,     0,     0,     0,     0,   145,   146,   147,
      148,   149,     0,   136,   137,     0,   150,   151,   138,   139,
-     140,     0,   141,     0,     0,   142,   143,   144,   187,     0,
-       0,     0,     0,     0,     0,   188,     0,     0,     0,     0,
+     140,     0,   141,     0,     0,   142,   143,   144,   189,     0,
+       0,     0,     0,     0,     0,   190,     0,     0,     0,     0,
      145,   146,   147,   148,   149,     0,   136,   137,     0,   150,
      151,   138,   139,   140,     0,   141,     0,     0,   142,   143,
-     144,   189,     0,     0,     0,     0,     0,     0,   190,     0,
+     144,   277,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,   145,   146,   147,   148,   149,     0,   136,
      137,     0,   150,   151,   138,   139,   140,     0,   141,     0,
-       0,   142,   143,   144,   276,     0,     0,     0,     0,     0,
+       0,   142,   143,   144,   278,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,   145,   146,   147,   148,
      149,     0,   136,   137,     0,   150,   151,   138,   139,   140,
-       0,   141,     0,     0,   142,   143,   144,   277,     0,     0,
+       0,   141,     0,     0,   142,   143,   144,   279,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,   145,
      146,   147,   148,   149,     0,   136,   137,     0,   150,   151,
      138,   139,   140,     0,   141,     0,     0,   142,   143,   144,
-     278,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   241,     0,     0,
        0,     0,   145,   146,   147,   148,   149,     0,   136,   137,
        0,   150,   151,   138,   139,   140,     0,   141,     0,     0,
      142,   143,   144,     0,     0,     0,     0,     0,     0,     0,
-     240,     0,     0,     0,     0,   145,   146,   147,   148,   149,
+       0,     0,   180,     0,   242,   145,   146,   147,   148,   149,
        0,   136,   137,     0,   150,   151,   138,   139,   140,     0,
      141,     0,     0,   142,   143,   144,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   180,     0,   241,   145,   146,
+       0,     0,     0,     0,     0,     0,     0,     0,   145,   146,
      147,   148,   149,     0,   136,   137,     0,   150,   151,   138,
      139,   140,     0,   141,     0,     0,   142,   143,   144,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   191,   192,     0,     0,     0,     0,
        0,   145,   146,   147,   148,   149,     0,   136,   137,     0,
      150,   151,   138,   139,   140,     0,   141,     0,     0,   142,
-     143,   144,     0,     0,     0,     0,     0,   191,   192,     0,
-       0,     0,     0,     0,   145,   146,   147,   148,   149,     0,
-     136,   137,     0,   150,   151,   138,   139,   140,     0,   141,
+     143,   144,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   206,   145,   146,   147,   148,   149,     0,
+     136,   137,   195,   150,   151,   138,   139,   140,     0,   141,
        0,     0,   142,   143,   144,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   205,   145,   146,   147,
+       0,     0,     0,     0,     0,     0,     0,   145,   146,   147,
      148,   149,     0,   136,   137,   195,   150,   151,   138,   139,
      140,     0,   141,     0,     0,   142,   143,   144,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     145,   146,   147,   148,   149,     0,   136,   137,   195,   150,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   206,
+     145,   146,   147,   148,   149,     0,   136,   137,     0,   150,
      151,   138,   139,   140,     0,   141,     0,     0,   142,   143,
      144,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   205,   145,   146,   147,   148,   149,     0,   136,
-     137,     0,   150,   151,   138,   139,   140,     0,   141,     0,
-       0,   142,   143,   144,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   145,   146,   147,   148,
-     149,     0,     0,     0,     0,   150,   151
+       0,     0,     0,   145,   146,   147,   148,   149,     0,     0,
+       0,     0,   150,   151
 };
 
 static const yytype_int16 yycheck[] =
 {
-       0,    56,    32,    46,    31,     4,     0,   304,     7,     8,
-       9,    98,    54,    12,    13,    14,    15,    54,   105,     1,
-      36,    34,    21,   320,   129,    24,   131,    13,    58,    15,
-      98,    30,    31,    76,    33,    34,    35,    36,    37,    38,
-      83,    54,    58,    32,    43,    44,    45,    46,   168,    91,
-     100,    77,    41,    28,    91,   105,    55,   233,    57,   179,
-      45,    50,    47,    13,    14,    47,    55,    94,   244,    50,
-      69,    28,    56,    57,    73,   101,   102,    76,    28,    78,
-     315,   108,    81,   203,    83,    28,   321,    73,    87,    28,
-      89,    28,    78,    71,    72,   100,    74,    28,    87,    77,
-     105,    28,   101,   100,    98,   100,    28,   100,   105,    98,
-     105,    28,   105,   105,    92,    93,    94,    95,    96,    52,
-      53,   104,   105,   101,   102,    27,    28,    99,   128,   208,
-     129,   130,   131,   291,   292,    99,    91,   136,   137,   138,
+       0,    31,     0,    46,    32,     4,    56,    34,     7,     8,
+       9,    98,    54,    12,    13,    14,    15,    54,   302,     1,
+      36,   129,    21,   131,   306,    24,    13,    54,    15,    50,
+      58,    30,    31,    76,    33,    34,    35,    36,    37,    38,
+      83,   323,    58,    32,    43,    44,    45,    46,    77,    91,
+     334,   234,    41,    98,    91,    28,    55,   168,    57,    99,
+     105,    50,   245,   318,    94,    47,    55,    28,   179,   324,
+      69,    28,   101,   102,    73,    52,    53,    76,   108,    78,
+      13,    14,    81,    45,    83,    47,    73,    28,    87,    28,
+      89,    78,   203,    71,    72,    28,    74,    28,    87,    77,
+      98,    28,   101,   100,    28,   100,   100,   100,   105,    98,
+     105,   105,   105,    28,    92,    93,    94,    95,    96,    99,
+     209,   100,   105,   101,   102,    91,   105,    99,   128,   105,
+     129,   130,   131,    56,    57,   104,   105,   136,   137,   138,
      139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
-     149,   150,   151,   135,   153,    99,   105,    45,   157,    28,
-      52,    28,    28,   105,   105,   105,   286,   166,    28,    28,
-      28,   170,   171,    28,   173,   174,   100,   176,   177,   100,
-     105,   180,   261,   303,   183,   184,   185,   186,   187,   188,
-     189,   190,   191,   192,   314,    32,    28,    54,   197,    32,
-      36,    52,   200,    32,    58,    32,   205,    52,   207,   264,
-      32,   290,   317,    32,   128,   301,   259,   320,   323,    31,
-      -1,   341,   169,   343,   303,    -1,    -1,   347,    -1,   308,
-     309,    71,    72,   312,    74,    -1,    -1,    77,    -1,    -1,
-      -1,   240,   241,    -1,   226,    -1,    -1,    -1,   327,    -1,
-      -1,    -1,    -1,    93,    94,    95,    96,    -1,    -1,    -1,
-     259,   101,   102,   318,    -1,    -1,    -1,   265,    -1,    -1,
-     268,    -1,    -1,    -1,   329,   354,   275,   276,   277,   278,
-      -1,    -1,   280,   282,    -1,   283,    -1,    -1,    -1,   271,
-      -1,    -1,   274,    -1,    -1,    -1,   351,    -1,    -1,    -1,
-     299,    -1,   300,    71,    72,    -1,    74,    -1,    -1,    77,
-      -1,    -1,    -1,   311,    -1,    -1,    -1,   315,   317,    -1,
-      -1,   319,   320,    -1,   323,    -1,    -1,    95,    96,    -1,
-     328,    -1,    -1,   101,   102,   333,    -1,    -1,    -1,    -1,
-     338,    -1,   340,    -1,   342,    -1,    -1,    -1,    -1,     0,
-       1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,   357,
-     358,    12,    13,    14,    15,    -1,    17,    18,    19,    20,
+     149,   150,   151,   135,   153,    27,    28,    45,   157,   292,
+     293,    28,    52,   105,    28,   105,    28,   166,   105,    28,
+      28,   170,   171,   262,   173,   174,   287,   176,   177,    28,
+     100,   180,   100,   105,   183,   184,   185,   186,   187,   188,
+     189,   190,   191,   192,   305,    28,    32,    54,   197,    28,
+      32,    36,   291,    58,    52,   316,    32,   206,    32,   208,
+      52,    32,   320,    32,   128,   265,   305,   260,   326,   200,
+     302,   310,   311,   323,   169,   314,    71,    72,    31,    74,
+      -1,    -1,    77,   344,    -1,   346,    -1,    -1,    -1,   350,
+      -1,   330,   241,   242,    -1,   227,    -1,    -1,    93,    94,
+      95,    96,    -1,    -1,    -1,    -1,   101,   102,    -1,    -1,
+      -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,   357,    -1,
+      -1,   321,    -1,    -1,    -1,    -1,    -1,   276,   277,   278,
+     279,    -1,   332,    -1,   283,   266,    -1,    -1,   269,    -1,
+     272,    -1,    -1,   275,    -1,    -1,    -1,    -1,    -1,    47,
+     281,   300,    -1,   284,   354,    -1,    54,    -1,    -1,    71,
+      72,    -1,    74,    -1,    -1,    77,    -1,    65,    66,    -1,
+     301,   320,    70,    71,    72,    -1,    74,   326,    -1,    77,
+      78,    79,   313,    95,    96,    -1,    -1,   318,    -1,   101,
+     102,   322,   323,    -1,    92,    93,    94,    95,    96,    -1,
+     331,    -1,    -1,   101,   102,   336,   356,   357,    -1,    -1,
+     341,    -1,   343,    -1,   345,    -1,    -1,    -1,    -1,     0,
+       1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   360,
+     361,    12,    13,    14,    15,    -1,    17,    18,    19,    20,
       21,    -1,    23,    24,    25,    -1,    27,    28,    29,    -1,
       31,    -1,    33,    -1,    -1,    -1,    37,    -1,    39,    40,
       41,    -1,    -1,    44,    -1,    -1,    -1,    -1,    49,    50,
@@ -1254,7 +1257,7 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,    -1,    -1,
       92,    93,    94,    95,    96,    -1,    65,    66,    -1,   101,
      102,    70,    71,    72,    -1,    74,    -1,    -1,    77,    78,
-      79,    47,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,
+      79,    47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    92,    93,    94,    95,    96,    -1,    65,
       66,    -1,   101,   102,    70,    71,    72,    -1,    74,    -1,
       -1,    77,    78,    79,    47,    -1,    -1,    -1,    -1,    -1,
@@ -1264,35 +1267,32 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,
       93,    94,    95,    96,    -1,    65,    66,    -1,   101,   102,
       70,    71,    72,    -1,    74,    -1,    -1,    77,    78,    79,
-      47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    54,    -1,    -1,
       -1,    -1,    92,    93,    94,    95,    96,    -1,    65,    66,
       -1,   101,   102,    70,    71,    72,    -1,    74,    -1,    -1,
       77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      54,    -1,    -1,    -1,    -1,    92,    93,    94,    95,    96,
+      -1,    -1,    56,    -1,    91,    92,    93,    94,    95,    96,
       -1,    65,    66,    -1,   101,   102,    70,    71,    72,    -1,
       74,    -1,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    56,    -1,    91,    92,    93,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,
       94,    95,    96,    -1,    65,    66,    -1,   101,   102,    70,
       71,    72,    -1,    74,    -1,    -1,    77,    78,    79,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    85,    86,    -1,    -1,    -1,    -1,
       -1,    92,    93,    94,    95,    96,    -1,    65,    66,    -1,
      101,   102,    70,    71,    72,    -1,    74,    -1,    -1,    77,
-      78,    79,    -1,    -1,    -1,    -1,    -1,    85,    86,    -1,
-      -1,    -1,    -1,    -1,    92,    93,    94,    95,    96,    -1,
-      65,    66,    -1,   101,   102,    70,    71,    72,    -1,    74,
+      78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    91,    92,    93,    94,    95,    96,    -1,
+      65,    66,   100,   101,   102,    70,    71,    72,    -1,    74,
       -1,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    91,    92,    93,    94,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    94,
       95,    96,    -1,    65,    66,   100,   101,   102,    70,    71,
       72,    -1,    74,    -1,    -1,    77,    78,    79,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      92,    93,    94,    95,    96,    -1,    65,    66,   100,   101,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,
+      92,    93,    94,    95,    96,    -1,    65,    66,    -1,   101,
      102,    70,    71,    72,    -1,    74,    -1,    -1,    77,    78,
       79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    91,    92,    93,    94,    95,    96,    -1,    65,
-      66,    -1,   101,   102,    70,    71,    72,    -1,    74,    -1,
-      -1,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    92,    93,    94,    95,
-      96,    -1,    -1,    -1,    -1,   101,   102
+      -1,    -1,    -1,    92,    93,    94,    95,    96,    -1,    -1,
+      -1,    -1,   101,   102
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1303,39 +1303,39 @@ static const yytype_uint8 yystos[] =
       21,    23,    24,    25,    27,    28,    29,    31,    33,    37,
       39,    40,    41,    44,    49,    50,    51,    55,    59,    60,
       61,    62,    64,    73,    80,    81,    82,    83,    84,    87,
-      88,    89,    90,    93,    94,    99,   103,   107,   109,   110,
-     111,   112,   113,   120,   121,   122,   127,   128,   129,   130,
-     131,   135,   138,   140,   143,   146,    98,   108,    28,    49,
-     129,   129,   129,    99,   129,   148,    28,   129,    99,   148,
-     129,    99,   148,   139,    50,    28,   132,    38,    43,    45,
-      46,    47,    48,   129,   136,   137,    28,   129,    56,    57,
-      13,    14,    28,    28,    28,    28,   129,    63,   136,   137,
-      28,   134,   129,   129,   129,   129,   129,   129,    28,   133,
-      28,    99,   129,   129,   129,   129,   147,     0,   108,    99,
-      91,    99,   119,   129,   111,   129,    65,    66,    70,    71,
+      88,    89,    90,    93,    94,    99,   103,   107,   112,   113,
+     114,   115,   116,   123,   124,   125,   130,   131,   132,   133,
+     134,   138,   141,   143,   146,   149,    98,   108,    28,    49,
+     132,   132,   132,    99,   132,   151,    28,   132,    99,   151,
+     132,    99,   151,   142,    50,    28,   135,    38,    43,    45,
+      46,    47,    48,   132,   139,   140,    28,   132,    56,    57,
+      13,    14,    28,    28,    28,    28,   132,    63,   139,   140,
+      28,   137,   132,   132,   132,   132,   132,   132,    28,   136,
+      28,    99,   132,   132,   132,   132,   150,     0,   108,    99,
+      91,    99,   122,   132,   114,   132,    65,    66,    70,    71,
       72,    74,    77,    78,    79,    92,    93,    94,    95,    96,
-     101,   102,   124,    99,   129,   129,   148,   105,   147,   148,
-     129,   147,   147,   105,   129,   129,    45,   137,   141,    42,
-      75,    76,    28,    54,    91,   129,    54,    91,    52,   142,
-      56,   137,   105,    47,    54,    47,    54,    47,    54,    47,
-      54,    85,    86,   105,    28,   100,   104,   105,   109,   119,
-     129,   119,   129,    52,    53,    91,   125,    54,   108,   129,
-     129,   129,   129,   129,   129,   129,   129,   129,   129,   129,
-     129,   129,   129,   129,   129,    28,   144,   100,   129,   100,
-     100,    28,   129,   124,    28,   130,   129,   129,   129,   129,
-      54,    91,   129,   129,   124,   129,    28,   129,   129,   129,
-     129,   129,   129,   129,   129,   129,   129,    28,   100,   105,
-     129,   100,   125,   100,   124,   126,   129,   129,   126,   105,
-     108,   144,   129,   129,   144,    47,    47,    47,    47,   147,
-     126,    34,    54,   111,   108,   112,   125,   125,    28,   105,
-     145,   108,   108,   129,   129,   129,   129,   100,   125,    54,
-     129,   125,    32,    58,   124,    32,    28,   126,   145,   145,
-      32,   129,   125,    36,    58,   116,   117,   123,   124,   126,
-     115,   116,   118,   123,    32,   126,   126,   125,   126,   124,
-     117,   125,   119,   111,   125,   118,   125,   119,   126,   125,
-     111,    58,   114,    52,   125,    32,    32,    52,   125,    32,
-     125,   124,   125,   124,   124,    32,   111,   112,   126,   125,
-     125
+     101,   102,   127,    99,   132,   132,   151,   105,   150,   151,
+     132,   150,   150,   105,   132,   132,    45,   140,   144,    42,
+      75,    76,    28,    54,    91,   132,    54,    91,    52,   145,
+      56,   140,   105,    47,    54,    47,    54,    47,    54,    47,
+      54,    85,    86,   105,    28,   100,   104,   105,   112,   122,
+     132,   122,   132,    52,    53,   109,    91,   128,    54,   108,
+     132,   132,   132,   132,   132,   132,   132,   132,   132,   132,
+     132,   132,   132,   132,   132,   132,    28,   147,   100,   132,
+     100,   100,    28,   132,   127,    28,   133,   132,   132,   132,
+     132,    54,    91,   132,   132,   127,   132,    28,   132,   132,
+     132,   132,   132,   132,   132,   132,   132,   132,    28,   100,
+     105,   132,   100,   128,   100,   127,   129,   132,   132,   129,
+     105,   108,   147,   132,   132,   147,    47,    47,    47,    47,
+     150,   129,    34,    54,   114,   108,   115,   128,   128,    28,
+     105,   148,   108,   108,   132,   132,   132,   132,   100,   128,
+      54,   132,   128,    32,    58,   110,   127,    32,    28,   129,
+     148,   148,    32,   132,   128,    36,   110,   111,   119,   120,
+     126,   127,   129,   118,   119,   121,   126,    32,   129,   129,
+     128,   129,   127,   120,   128,   122,   114,   128,   121,   128,
+     122,   129,   128,   114,   110,   117,    52,   128,    32,    32,
+      52,   128,    32,   128,   127,   128,   127,   127,    32,   114,
+     115,   129,   128,   128
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -2162,8 +2162,32 @@ yyreduce:
 	;}
     break;
 
-  case 10:
-#line 135 "engines/director/lingo/lingo-gr.y"
+  case 6:
+#line 129 "engines/director/lingo/lingo-gr.y"
+    {
+		g_lingo->_linenumber++;
+		g_lingo->_colnumber = 1;
+	;}
+    break;
+
+  case 7:
+#line 134 "engines/director/lingo/lingo-gr.y"
+    {
+		g_lingo->_linenumber++;
+		g_lingo->_colnumber = 5;
+	;}
+    break;
+
+  case 8:
+#line 139 "engines/director/lingo/lingo-gr.y"
+    {
+		g_lingo->_linenumber++;
+		g_lingo->_colnumber = 8;
+	;}
+    break;
+
+  case 13:
+#line 150 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_varpush);
 		g_lingo->codeString((yyvsp[(4) - (4)].s)->c_str());
@@ -2172,25 +2196,25 @@ yyreduce:
 		delete (yyvsp[(4) - (4)].s); ;}
     break;
 
-  case 11:
-#line 141 "engines/director/lingo/lingo-gr.y"
+  case 14:
+#line 156 "engines/director/lingo/lingo-gr.y"
     {
 			g_lingo->code1(g_lingo->c_assign);
 			(yyval.code) = (yyvsp[(2) - (4)].code); ;}
     break;
 
-  case 12:
-#line 144 "engines/director/lingo/lingo-gr.y"
+  case 15:
+#line 159 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->code1(g_lingo->c_after); ;}
     break;
 
-  case 13:
-#line 145 "engines/director/lingo/lingo-gr.y"
+  case 16:
+#line 160 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->code1(g_lingo->c_before); ;}
     break;
 
-  case 14:
-#line 146 "engines/director/lingo/lingo-gr.y"
+  case 17:
+#line 161 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_varpush);
 		g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str());
@@ -2199,8 +2223,8 @@ yyreduce:
 		delete (yyvsp[(2) - (4)].s); ;}
     break;
 
-  case 15:
-#line 152 "engines/director/lingo/lingo-gr.y"
+  case 18:
+#line 167 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(0); // Put dummy id
@@ -2210,8 +2234,8 @@ yyreduce:
 		(yyval.code) = (yyvsp[(4) - (4)].code); ;}
     break;
 
-  case 16:
-#line 159 "engines/director/lingo/lingo-gr.y"
+  case 19:
+#line 174 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_swap);
 		g_lingo->code1(g_lingo->c_theentityassign);
@@ -2220,8 +2244,8 @@ yyreduce:
 		(yyval.code) = (yyvsp[(5) - (5)].code); ;}
     break;
 
-  case 17:
-#line 165 "engines/director/lingo/lingo-gr.y"
+  case 20:
+#line 180 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_varpush);
 		g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str());
@@ -2230,8 +2254,8 @@ yyreduce:
 		delete (yyvsp[(2) - (4)].s); ;}
     break;
 
-  case 18:
-#line 171 "engines/director/lingo/lingo-gr.y"
+  case 21:
+#line 186 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(0); // Put dummy id
@@ -2241,8 +2265,8 @@ yyreduce:
 		(yyval.code) = (yyvsp[(4) - (4)].code); ;}
     break;
 
-  case 19:
-#line 178 "engines/director/lingo/lingo-gr.y"
+  case 22:
+#line 193 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_swap);
 		g_lingo->code1(g_lingo->c_theentityassign);
@@ -2251,8 +2275,8 @@ yyreduce:
 		(yyval.code) = (yyvsp[(5) - (5)].code); ;}
     break;
 
-  case 24:
-#line 196 "engines/director/lingo/lingo-gr.y"
+  case 27:
+#line 211 "engines/director/lingo/lingo-gr.y"
     {
 		inst body = 0, end = 0;
 		WRITE_UINT32(&body, (yyvsp[(5) - (7)].code) - (yyvsp[(1) - (7)].code));
@@ -2263,8 +2287,8 @@ yyreduce:
 		checkEnd((yyvsp[(7) - (7)].s), "repeat", true); ;}
     break;
 
-  case 25:
-#line 209 "engines/director/lingo/lingo-gr.y"
+  case 28:
+#line 224 "engines/director/lingo/lingo-gr.y"
     {
 		inst init = 0, finish = 0, body = 0, end = 0, inc = 0;
 		WRITE_UINT32(&init, (yyvsp[(3) - (10)].code) - (yyvsp[(1) - (10)].code));
@@ -2281,8 +2305,8 @@ yyreduce:
 		checkEnd((yyvsp[(10) - (10)].s), "repeat", true); ;}
     break;
 
-  case 26:
-#line 227 "engines/director/lingo/lingo-gr.y"
+  case 29:
+#line 242 "engines/director/lingo/lingo-gr.y"
     {
 		inst init = 0, finish = 0, body = 0, end = 0, inc = 0;
 		WRITE_UINT32(&init, (yyvsp[(3) - (11)].code) - (yyvsp[(1) - (11)].code));
@@ -2299,8 +2323,8 @@ yyreduce:
 		checkEnd((yyvsp[(11) - (11)].s), "repeat", true); ;}
     break;
 
-  case 27:
-#line 241 "engines/director/lingo/lingo-gr.y"
+  case 30:
+#line 256 "engines/director/lingo/lingo-gr.y"
     {
 			inst end = 0;
 			WRITE_UINT32(&end, (yyvsp[(3) - (3)].code) - (yyvsp[(1) - (3)].code));
@@ -2309,22 +2333,22 @@ yyreduce:
 		;}
     break;
 
-  case 28:
-#line 247 "engines/director/lingo/lingo-gr.y"
+  case 31:
+#line 262 "engines/director/lingo/lingo-gr.y"
     {
 			warning("STUB: TELL is not implemented");
 			checkEnd((yyvsp[(6) - (6)].s), "tell", true); ;}
     break;
 
-  case 29:
-#line 250 "engines/director/lingo/lingo-gr.y"
+  case 32:
+#line 265 "engines/director/lingo/lingo-gr.y"
     {
 			warning("STUB: TELL is not implemented");
 		;}
     break;
 
-  case 30:
-#line 255 "engines/director/lingo/lingo-gr.y"
+  case 33:
+#line 270 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2337,8 +2361,8 @@ yyreduce:
 		g_lingo->processIf(0, 0); ;}
     break;
 
-  case 31:
-#line 265 "engines/director/lingo/lingo-gr.y"
+  case 34:
+#line 280 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
@@ -2353,8 +2377,8 @@ yyreduce:
 		g_lingo->processIf(0, 0); ;}
     break;
 
-  case 32:
-#line 277 "engines/director/lingo/lingo-gr.y"
+  case 35:
+#line 292 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
@@ -2369,8 +2393,8 @@ yyreduce:
 		g_lingo->processIf(0, (yyvsp[(8) - (9)].code) - (yyvsp[(1) - (9)].code)); ;}
     break;
 
-  case 33:
-#line 289 "engines/director/lingo/lingo-gr.y"
+  case 36:
+#line 304 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (9)].code) - (yyvsp[(1) - (9)].code));
@@ -2383,8 +2407,8 @@ yyreduce:
 		g_lingo->processIf(0, (yyvsp[(9) - (9)].code) - (yyvsp[(1) - (9)].code)); ;}
     break;
 
-  case 34:
-#line 299 "engines/director/lingo/lingo-gr.y"
+  case 37:
+#line 314 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2397,8 +2421,8 @@ yyreduce:
 		g_lingo->processIf(0, 0); ;}
     break;
 
-  case 35:
-#line 309 "engines/director/lingo/lingo-gr.y"
+  case 38:
+#line 324 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (10)].code) - (yyvsp[(1) - (10)].code));
@@ -2411,8 +2435,8 @@ yyreduce:
 		g_lingo->processIf(0, 0); ;}
     break;
 
-  case 36:
-#line 319 "engines/director/lingo/lingo-gr.y"
+  case 39:
+#line 334 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (10)].code) - (yyvsp[(1) - (10)].code));
@@ -2425,18 +2449,18 @@ yyreduce:
 		g_lingo->processIf(0, (yyvsp[(10) - (10)].code) - (yyvsp[(1) - (10)].code)); ;}
     break;
 
-  case 37:
-#line 331 "engines/director/lingo/lingo-gr.y"
+  case 40:
+#line 346 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = 0; ;}
     break;
 
-  case 38:
-#line 332 "engines/director/lingo/lingo-gr.y"
+  case 41:
+#line 347 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = (yyvsp[(2) - (3)].code); ;}
     break;
 
-  case 43:
-#line 343 "engines/director/lingo/lingo-gr.y"
+  case 46:
+#line 358 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0;
 		WRITE_UINT32(&then, (yyvsp[(4) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2445,8 +2469,8 @@ yyreduce:
 		g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
     break;
 
-  case 45:
-#line 352 "engines/director/lingo/lingo-gr.y"
+  case 48:
+#line 367 "engines/director/lingo/lingo-gr.y"
     {
 		inst then = 0;
 		WRITE_UINT32(&then, (yyvsp[(5) - (6)].code) - (yyvsp[(1) - (6)].code));
@@ -2455,23 +2479,23 @@ yyreduce:
 		g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}
     break;
 
-  case 46:
-#line 360 "engines/director/lingo/lingo-gr.y"
+  case 49:
+#line 375 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(STOP); ;}
     break;
 
-  case 47:
-#line 361 "engines/director/lingo/lingo-gr.y"
+  case 50:
+#line 376 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code2(g_lingo->c_eq, STOP); ;}
     break;
 
-  case 49:
-#line 365 "engines/director/lingo/lingo-gr.y"
+  case 52:
+#line 380 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); ;}
     break;
 
-  case 50:
-#line 368 "engines/director/lingo/lingo-gr.y"
+  case 53:
+#line 383 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP);
 		g_lingo->code3(STOP, STOP, STOP);
@@ -2479,8 +2503,8 @@ yyreduce:
 		delete (yyvsp[(3) - (3)].s); ;}
     break;
 
-  case 51:
-#line 375 "engines/director/lingo/lingo-gr.y"
+  case 54:
+#line 390 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_ifcode);
 		g_lingo->code3(STOP, STOP, STOP);
@@ -2488,8 +2512,8 @@ yyreduce:
 		g_lingo->codeLabel(0); ;}
     break;
 
-  case 52:
-#line 382 "engines/director/lingo/lingo-gr.y"
+  case 55:
+#line 397 "engines/director/lingo/lingo-gr.y"
     {
 		inst skipEnd;
 		WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions
@@ -2498,23 +2522,23 @@ yyreduce:
 		g_lingo->code1(skipEnd); ;}
     break;
 
-  case 53:
-#line 390 "engines/director/lingo/lingo-gr.y"
+  case 56:
+#line 405 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->_currentScript->size(); ;}
     break;
 
-  case 54:
-#line 393 "engines/director/lingo/lingo-gr.y"
+  case 57:
+#line 408 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); ;}
     break;
 
-  case 55:
-#line 396 "engines/director/lingo/lingo-gr.y"
+  case 58:
+#line 411 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->_currentScript->size(); ;}
     break;
 
-  case 58:
-#line 401 "engines/director/lingo/lingo-gr.y"
+  case 61:
+#line 416 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_whencode);
 		g_lingo->code1(STOP);
@@ -2522,82 +2546,82 @@ yyreduce:
 		delete (yyvsp[(2) - (3)].s); ;}
     break;
 
-  case 59:
-#line 407 "engines/director/lingo/lingo-gr.y"
+  case 62:
+#line 422 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_tellcode);
 		g_lingo->code1(STOP); ;}
     break;
 
-  case 60:
-#line 411 "engines/director/lingo/lingo-gr.y"
+  case 63:
+#line 426 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt((yyvsp[(1) - (1)].i)); ;}
     break;
 
-  case 61:
-#line 414 "engines/director/lingo/lingo-gr.y"
+  case 64:
+#line 429 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_floatpush);
 		g_lingo->codeFloat((yyvsp[(1) - (1)].f)); ;}
     break;
 
-  case 62:
-#line 417 "engines/director/lingo/lingo-gr.y"
+  case 65:
+#line 432 "engines/director/lingo/lingo-gr.y"
     {											// D3
 		(yyval.code) = g_lingo->code1(g_lingo->c_symbolpush);
 		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}
     break;
 
-  case 63:
-#line 420 "engines/director/lingo/lingo-gr.y"
+  case 66:
+#line 435 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_stringpush);
 		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}
     break;
 
-  case 65:
-#line 424 "engines/director/lingo/lingo-gr.y"
+  case 68:
+#line 439 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
 		delete (yyvsp[(1) - (1)].s); ;}
     break;
 
-  case 66:
-#line 427 "engines/director/lingo/lingo-gr.y"
+  case 69:
+#line 442 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
 		delete (yyvsp[(1) - (2)].s); ;}
     break;
 
-  case 67:
-#line 430 "engines/director/lingo/lingo-gr.y"
+  case 70:
+#line 445 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
     break;
 
-  case 68:
-#line 431 "engines/director/lingo/lingo-gr.y"
+  case 71:
+#line 446 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;}
     break;
 
-  case 69:
-#line 432 "engines/director/lingo/lingo-gr.y"
+  case 72:
+#line 447 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg));
 		delete (yyvsp[(1) - (4)].s); ;}
     break;
 
-  case 70:
-#line 435 "engines/director/lingo/lingo-gr.y"
+  case 73:
+#line 450 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_eval);
 		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str());
 		delete (yyvsp[(1) - (1)].s); ;}
     break;
 
-  case 71:
-#line 439 "engines/director/lingo/lingo-gr.y"
+  case 74:
+#line 454 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(0); // Put dummy id
@@ -2608,8 +2632,8 @@ yyreduce:
 		g_lingo->code2(e, f); ;}
     break;
 
-  case 72:
-#line 447 "engines/director/lingo/lingo-gr.y"
+  case 75:
+#line 462 "engines/director/lingo/lingo-gr.y"
     {
 		(yyval.code) = g_lingo->code1(g_lingo->c_theentitypush);
 		inst e = 0, f = 0;
@@ -2618,392 +2642,392 @@ yyreduce:
 		g_lingo->code2(e, f); ;}
     break;
 
-  case 74:
-#line 454 "engines/director/lingo/lingo-gr.y"
+  case 77:
+#line 469 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_add); ;}
     break;
 
-  case 75:
-#line 455 "engines/director/lingo/lingo-gr.y"
+  case 78:
+#line 470 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_sub); ;}
     break;
 
-  case 76:
-#line 456 "engines/director/lingo/lingo-gr.y"
+  case 79:
+#line 471 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_mul); ;}
     break;
 
-  case 77:
-#line 457 "engines/director/lingo/lingo-gr.y"
+  case 80:
+#line 472 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_div); ;}
     break;
 
-  case 78:
-#line 458 "engines/director/lingo/lingo-gr.y"
+  case 81:
+#line 473 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_mod); ;}
     break;
 
-  case 79:
-#line 459 "engines/director/lingo/lingo-gr.y"
+  case 82:
+#line 474 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_gt); ;}
     break;
 
-  case 80:
-#line 460 "engines/director/lingo/lingo-gr.y"
+  case 83:
+#line 475 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_lt); ;}
     break;
 
-  case 81:
-#line 461 "engines/director/lingo/lingo-gr.y"
+  case 84:
+#line 476 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_neq); ;}
     break;
 
-  case 82:
-#line 462 "engines/director/lingo/lingo-gr.y"
+  case 85:
+#line 477 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_ge); ;}
     break;
 
-  case 83:
-#line 463 "engines/director/lingo/lingo-gr.y"
+  case 86:
+#line 478 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_le); ;}
     break;
 
-  case 84:
-#line 464 "engines/director/lingo/lingo-gr.y"
+  case 87:
+#line 479 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_and); ;}
     break;
 
-  case 85:
-#line 465 "engines/director/lingo/lingo-gr.y"
+  case 88:
+#line 480 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_or); ;}
     break;
 
-  case 86:
-#line 466 "engines/director/lingo/lingo-gr.y"
+  case 89:
+#line 481 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_not); ;}
     break;
 
-  case 87:
-#line 467 "engines/director/lingo/lingo-gr.y"
+  case 90:
+#line 482 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_ampersand); ;}
     break;
 
-  case 88:
-#line 468 "engines/director/lingo/lingo-gr.y"
+  case 91:
+#line 483 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_concat); ;}
     break;
 
-  case 89:
-#line 469 "engines/director/lingo/lingo-gr.y"
+  case 92:
+#line 484 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_contains); ;}
     break;
 
-  case 90:
-#line 470 "engines/director/lingo/lingo-gr.y"
+  case 93:
+#line 485 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_starts); ;}
     break;
 
-  case 91:
-#line 471 "engines/director/lingo/lingo-gr.y"
+  case 94:
+#line 486 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = (yyvsp[(2) - (2)].code); ;}
     break;
 
-  case 92:
-#line 472 "engines/director/lingo/lingo-gr.y"
+  case 95:
+#line 487 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;}
     break;
 
-  case 93:
-#line 473 "engines/director/lingo/lingo-gr.y"
+  case 96:
+#line 488 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = (yyvsp[(2) - (3)].code); ;}
     break;
 
-  case 94:
-#line 474 "engines/director/lingo/lingo-gr.y"
+  case 97:
+#line 489 "engines/director/lingo/lingo-gr.y"
     { (yyval.code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;}
     break;
 
-  case 95:
-#line 475 "engines/director/lingo/lingo-gr.y"
+  case 98:
+#line 490 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_intersects); ;}
     break;
 
-  case 96:
-#line 476 "engines/director/lingo/lingo-gr.y"
+  case 99:
+#line 491 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_within); ;}
     break;
 
-  case 97:
-#line 477 "engines/director/lingo/lingo-gr.y"
+  case 100:
+#line 492 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_charOf); ;}
     break;
 
-  case 98:
-#line 478 "engines/director/lingo/lingo-gr.y"
+  case 101:
+#line 493 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_charToOf); ;}
     break;
 
-  case 99:
-#line 479 "engines/director/lingo/lingo-gr.y"
+  case 102:
+#line 494 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_itemOf); ;}
     break;
 
-  case 100:
-#line 480 "engines/director/lingo/lingo-gr.y"
+  case 103:
+#line 495 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_itemToOf); ;}
     break;
 
-  case 101:
-#line 481 "engines/director/lingo/lingo-gr.y"
+  case 104:
+#line 496 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_lineOf); ;}
     break;
 
-  case 102:
-#line 482 "engines/director/lingo/lingo-gr.y"
+  case 105:
+#line 497 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_lineToOf); ;}
     break;
 
-  case 103:
-#line 483 "engines/director/lingo/lingo-gr.y"
+  case 106:
+#line 498 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_wordOf); ;}
     break;
 
-  case 104:
-#line 484 "engines/director/lingo/lingo-gr.y"
+  case 107:
+#line 499 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_wordToOf); ;}
     break;
 
-  case 105:
-#line 487 "engines/director/lingo/lingo-gr.y"
+  case 108:
+#line 502 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
 		delete (yyvsp[(1) - (2)].s); ;}
     break;
 
-  case 106:
-#line 492 "engines/director/lingo/lingo-gr.y"
+  case 109:
+#line 507 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_printtop); ;}
     break;
 
-  case 109:
-#line 495 "engines/director/lingo/lingo-gr.y"
+  case 112:
+#line 510 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_exitRepeat); ;}
     break;
 
-  case 110:
-#line 496 "engines/director/lingo/lingo-gr.y"
+  case 113:
+#line 511 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_procret); ;}
     break;
 
-  case 114:
-#line 500 "engines/director/lingo/lingo-gr.y"
+  case 117:
+#line 515 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);
 		delete (yyvsp[(1) - (1)].s); ;}
     break;
 
-  case 115:
-#line 503 "engines/director/lingo/lingo-gr.y"
+  case 118:
+#line 518 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
 		delete (yyvsp[(1) - (2)].s); ;}
     break;
 
-  case 116:
-#line 506 "engines/director/lingo/lingo-gr.y"
+  case 119:
+#line 521 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);
 		delete (yyvsp[(1) - (2)].s); ;}
     break;
 
-  case 117:
-#line 509 "engines/director/lingo/lingo-gr.y"
+  case 120:
+#line 524 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_voidpush);
 		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 1);
 		delete (yyvsp[(1) - (1)].s); ;}
     break;
 
-  case 118:
-#line 513 "engines/director/lingo/lingo-gr.y"
+  case 121:
+#line 528 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}
     break;
 
-  case 119:
-#line 514 "engines/director/lingo/lingo-gr.y"
+  case 122:
+#line 529 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg)); ;}
     break;
 
-  case 120:
-#line 515 "engines/director/lingo/lingo-gr.y"
+  case 123:
+#line 530 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;}
     break;
 
-  case 121:
-#line 516 "engines/director/lingo/lingo-gr.y"
+  case 124:
+#line 531 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;}
     break;
 
-  case 122:
-#line 517 "engines/director/lingo/lingo-gr.y"
+  case 125:
+#line 532 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_open); ;}
     break;
 
-  case 123:
-#line 518 "engines/director/lingo/lingo-gr.y"
+  case 126:
+#line 533 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;}
     break;
 
-  case 124:
-#line 519 "engines/director/lingo/lingo-gr.y"
+  case 127:
+#line 534 "engines/director/lingo/lingo-gr.y"
     { Common::String s(*(yyvsp[(1) - (3)].s)); s += '-'; s += *(yyvsp[(2) - (3)].s); g_lingo->codeFunc(&s, (yyvsp[(3) - (3)].narg)); ;}
     break;
 
-  case 125:
-#line 522 "engines/director/lingo/lingo-gr.y"
+  case 128:
+#line 537 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
     break;
 
-  case 126:
-#line 523 "engines/director/lingo/lingo-gr.y"
+  case 129:
+#line 538 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
     break;
 
-  case 127:
-#line 526 "engines/director/lingo/lingo-gr.y"
+  case 130:
+#line 541 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
     break;
 
-  case 128:
-#line 527 "engines/director/lingo/lingo-gr.y"
+  case 131:
+#line 542 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
     break;
 
-  case 129:
-#line 530 "engines/director/lingo/lingo-gr.y"
+  case 132:
+#line 545 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}
     break;
 
-  case 130:
-#line 531 "engines/director/lingo/lingo-gr.y"
+  case 133:
+#line 546 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}
     break;
 
-  case 131:
-#line 542 "engines/director/lingo/lingo-gr.y"
+  case 134:
+#line 557 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_gotoloop); ;}
     break;
 
-  case 132:
-#line 543 "engines/director/lingo/lingo-gr.y"
+  case 135:
+#line 558 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_gotonext); ;}
     break;
 
-  case 133:
-#line 544 "engines/director/lingo/lingo-gr.y"
+  case 136:
+#line 559 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_gotoprevious); ;}
     break;
 
-  case 134:
-#line 545 "engines/director/lingo/lingo-gr.y"
+  case 137:
+#line 560 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(g_lingo->c_goto); ;}
     break;
 
-  case 135:
-#line 549 "engines/director/lingo/lingo-gr.y"
+  case 138:
+#line 564 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(g_lingo->c_goto); ;}
     break;
 
-  case 136:
-#line 553 "engines/director/lingo/lingo-gr.y"
+  case 139:
+#line 568 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(g_lingo->c_goto); ;}
     break;
 
-  case 141:
-#line 567 "engines/director/lingo/lingo-gr.y"
+  case 144:
+#line 582 "engines/director/lingo/lingo-gr.y"
     { g_lingo->code1(g_lingo->c_playdone); ;}
     break;
 
-  case 142:
-#line 568 "engines/director/lingo/lingo-gr.y"
+  case 145:
+#line 583 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(g_lingo->c_play); ;}
     break;
 
-  case 143:
-#line 572 "engines/director/lingo/lingo-gr.y"
+  case 146:
+#line 587 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(g_lingo->c_play); ;}
     break;
 
-  case 144:
-#line 576 "engines/director/lingo/lingo-gr.y"
+  case 147:
+#line 591 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(g_lingo->c_play); ;}
     break;
 
-  case 145:
-#line 580 "engines/director/lingo/lingo-gr.y"
+  case 148:
+#line 595 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeSetImmediate(true); ;}
     break;
 
-  case 146:
-#line 580 "engines/director/lingo/lingo-gr.y"
+  case 149:
+#line 595 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->codeSetImmediate(false);
 		g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;}
     break;
 
-  case 147:
-#line 610 "engines/director/lingo/lingo-gr.y"
+  case 150:
+#line 625 "engines/director/lingo/lingo-gr.y"
     { g_lingo->_indef = true; g_lingo->_currentFactory.clear(); ;}
     break;
 
-  case 148:
-#line 611 "engines/director/lingo/lingo-gr.y"
+  case 151:
+#line 626 "engines/director/lingo/lingo-gr.y"
     {
 			g_lingo->code1(g_lingo->c_procret);
 			g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg));
 			g_lingo->_indef = false; ;}
     break;
 
-  case 149:
-#line 615 "engines/director/lingo/lingo-gr.y"
+  case 152:
+#line 630 "engines/director/lingo/lingo-gr.y"
     {
 			g_lingo->codeFactory(*(yyvsp[(2) - (2)].s));
 		;}
     break;
 
-  case 150:
-#line 618 "engines/director/lingo/lingo-gr.y"
+  case 153:
+#line 633 "engines/director/lingo/lingo-gr.y"
     { g_lingo->_indef = true; ;}
     break;
 
-  case 151:
-#line 619 "engines/director/lingo/lingo-gr.y"
+  case 154:
+#line 634 "engines/director/lingo/lingo-gr.y"
     {
 			g_lingo->code1(g_lingo->c_procret);
 			g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg) + 1, &g_lingo->_currentFactory);
 			g_lingo->_indef = false; ;}
     break;
 
-  case 152:
-#line 623 "engines/director/lingo/lingo-gr.y"
+  case 155:
+#line 638 "engines/director/lingo/lingo-gr.y"
     {	// D3
 				g_lingo->code1(g_lingo->c_procret);
 				g_lingo->define(*(yyvsp[(1) - (7)].s), (yyvsp[(2) - (7)].code), (yyvsp[(3) - (7)].narg));
@@ -3014,8 +3038,8 @@ yyreduce:
 			;}
     break;
 
-  case 153:
-#line 631 "engines/director/lingo/lingo-gr.y"
+  case 156:
+#line 646 "engines/director/lingo/lingo-gr.y"
     {	// D4. No 'end' clause
 				g_lingo->code1(g_lingo->c_procret);
 				g_lingo->define(*(yyvsp[(1) - (6)].s), (yyvsp[(2) - (6)].code), (yyvsp[(3) - (6)].narg));
@@ -3024,38 +3048,38 @@ yyreduce:
 			;}
     break;
 
-  case 154:
-#line 638 "engines/director/lingo/lingo-gr.y"
+  case 157:
+#line 653 "engines/director/lingo/lingo-gr.y"
     { (yyval.s) = (yyvsp[(2) - (2)].s); g_lingo->_indef = true; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; ;}
     break;
 
-  case 155:
-#line 640 "engines/director/lingo/lingo-gr.y"
+  case 158:
+#line 655 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = 0; ;}
     break;
 
-  case 156:
-#line 641 "engines/director/lingo/lingo-gr.y"
+  case 159:
+#line 656 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}
     break;
 
-  case 157:
-#line 642 "engines/director/lingo/lingo-gr.y"
+  case 160:
+#line 657 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
     break;
 
-  case 158:
-#line 643 "engines/director/lingo/lingo-gr.y"
+  case 161:
+#line 658 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}
     break;
 
-  case 159:
-#line 646 "engines/director/lingo/lingo-gr.y"
+  case 162:
+#line 661 "engines/director/lingo/lingo-gr.y"
     { g_lingo->codeArgStore(); ;}
     break;
 
-  case 160:
-#line 650 "engines/director/lingo/lingo-gr.y"
+  case 163:
+#line 665 "engines/director/lingo/lingo-gr.y"
     {
 		g_lingo->code1(g_lingo->c_call);
 		g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str());
@@ -3064,34 +3088,34 @@ yyreduce:
 		g_lingo->code1(numpar); ;}
     break;
 
-  case 161:
-#line 658 "engines/director/lingo/lingo-gr.y"
+  case 164:
+#line 673 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = 0; ;}
     break;
 
-  case 162:
-#line 659 "engines/director/lingo/lingo-gr.y"
+  case 165:
+#line 674 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = 1; ;}
     break;
 
-  case 163:
-#line 660 "engines/director/lingo/lingo-gr.y"
+  case 166:
+#line 675 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
     break;
 
-  case 164:
-#line 663 "engines/director/lingo/lingo-gr.y"
+  case 167:
+#line 678 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = 1; ;}
     break;
 
-  case 165:
-#line 664 "engines/director/lingo/lingo-gr.y"
+  case 168:
+#line 679 "engines/director/lingo/lingo-gr.y"
     { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}
     break;
 
 
 /* Line 1267 of yacc.c.  */
-#line 3095 "engines/director/lingo/lingo-gr.cpp"
+#line 3119 "engines/director/lingo/lingo-gr.cpp"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3305,6 +3329,6 @@ yyreturn:
 }
 
 
-#line 667 "engines/director/lingo/lingo-gr.y"
+#line 682 "engines/director/lingo/lingo-gr.y"
 
 
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 2e4d65e..84c1550 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -126,6 +126,21 @@ nl:	'\n' {
 		g_lingo->_colnumber = 1;
 	}
 
+thennl:	tTHENNL {
+		g_lingo->_linenumber++;
+		g_lingo->_colnumber = 1;
+	}
+
+nlelse:	tNLELSE {
+		g_lingo->_linenumber++;
+		g_lingo->_colnumber = 5;
+	}
+
+nlelsif: tNLELSIF {
+		g_lingo->_linenumber++;
+		g_lingo->_colnumber = 8;
+	}
+
 programline: /* empty */
 	| defn
 	| macro
@@ -252,7 +267,7 @@ stmt: stmtoneliner
 		}
 	;
 
-ifstmt:	if cond tTHENNL stmtlist end ENDCLAUSE		{
+ifstmt:	if cond thennl stmtlist end ENDCLAUSE		{
 		inst then = 0, end = 0;
 		WRITE_UINT32(&then, $4 - $1);
 		WRITE_UINT32(&end, $5 - $1);
@@ -262,7 +277,7 @@ ifstmt:	if cond tTHENNL stmtlist end ENDCLAUSE		{
 		checkEnd($6, "if", true);
 
 		g_lingo->processIf(0, 0); }
-	| if cond tTHENNL stmtlist end tNLELSE stmtlist end ENDCLAUSE {
+	| if cond thennl stmtlist end nlelse stmtlist end ENDCLAUSE {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, $4 - $1);
 		WRITE_UINT32(&else1, $7 - $1);
@@ -274,7 +289,7 @@ ifstmt:	if cond tTHENNL stmtlist end ENDCLAUSE		{
 		checkEnd($9, "if", true);
 
 		g_lingo->processIf(0, 0); }
-	| if cond tTHENNL stmtlist end begin elseifstmt end ENDCLAUSE {
+	| if cond thennl stmtlist end begin elseifstmt end ENDCLAUSE {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, $4 - $1);
 		WRITE_UINT32(&else1, $6 - $1);
@@ -286,7 +301,7 @@ ifstmt:	if cond tTHENNL stmtlist end ENDCLAUSE		{
 		checkEnd($9, "if", true);
 
 		g_lingo->processIf(0, $8 - $1); }
-	| if cond tTHENNL stmtlist end tNLELSE begin stmtoneliner end {
+	| if cond thennl stmtlist end nlelse begin stmtoneliner end {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, $4 - $1);
 		WRITE_UINT32(&else1, $7 - $1);
@@ -306,7 +321,7 @@ ifstmt:	if cond tTHENNL stmtlist end ENDCLAUSE		{
 		(*g_lingo->_currentScript)[$1 + 3] = end; 	/* end, if cond fails */
 
 		g_lingo->processIf(0, 0); }
-	| if cond tTHEN begin stmtoneliner end tNLELSE begin stmtoneliner end {
+	| if cond tTHEN begin stmtoneliner end nlelse begin stmtoneliner end {
 		inst then = 0, else1 = 0, end = 0;
 		WRITE_UINT32(&then, $4 - $1);
 		WRITE_UINT32(&else1, $8 - $1);
@@ -329,7 +344,7 @@ ifstmt:	if cond tTHENNL stmtlist end ENDCLAUSE		{
 	;
 
 elsestmtoneliner: /* nothing */		{ $$ = 0; }
-	| tNLELSE begin stmtoneliner	{ $$ = $2; }
+	| nlelse begin stmtoneliner	{ $$ = $2; }
 	;
 
 elseifstmt:	elseifstmt elseifstmt1
@@ -379,7 +394,7 @@ if:	  tIF					{
 		g_lingo->codeLabel(0); } // Mark beginning of the if() statement
 	;
 
-elseif:	  tNLELSIF			{
+elseif:	  nlelsif			{
 		inst skipEnd;
 		WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions
 		$$ = g_lingo->code1(g_lingo->c_ifcode);




More information about the Scummvm-git-logs mailing list