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

sev- sev at scummvm.org
Wed Jan 15 15:57:21 UTC 2020


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

Summary:
5ba37a5ffe DIRECTOR: LINGO: Made whitespace processing uniform in lexer
abb6f778b0 DIRECTOR: LINGO: Changed handler definition to accept any ID


Commit: 5ba37a5ffe5e98135be3c08f3dbc93f9bd2bbc71
    https://github.com/scummvm/scummvm/commit/5ba37a5ffe5e98135be3c08f3dbc93f9bd2bbc71
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-01-15T10:04:30+01:00

Commit Message:
DIRECTOR: LINGO: Made whitespace processing uniform in lexer

Changed paths:
    engines/director/lingo/lingo-lex.cpp
    engines/director/lingo/lingo-lex.l


diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index 1fe7e55..0018db5 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -373,7 +373,7 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[365] =
+static yyconst flex_int16_t yy_accept[338] =
     {   0,
         0,    0,   77,   75,    4,   73,   73,   75,   75,   75,
        72,   72,   72,   71,   72,   68,   72,   69,   69,   69,
@@ -399,22 +399,19 @@ static yyconst flex_int16_t yy_accept[365] =
 
        55,   55,   55,   62,   69,    0,   69,    8,   69,    0,
        16,   19,    0,   69,   69,   69,    0,   69,   69,   69,
-       45,    0,   69,   58,   48,    0,    0,   55,   55,   55,
-       60,    0,   69,   69,   14,    0,   69,   69,    0,   30,
-        0,   69,   69,   69,    0,    0,    0,    0,   69,   69,
-       69,   69,    0,    0,    0,    0,   55,   55,   55,    0,
-       17,   10,    0,   23,   69,   30,   30,    0,   69,   42,
-       43,    0,    0,    0,    0,   69,   69,   69,   69,    0,
-        0,    0,   55,   55,   55,   17,    0,   69,   30,    0,
-       41,    0,    0,    0,    0,   69,   69,   69,   69,    0,
-
-        0,    0,   55,    0,   55,    0,   24,   39,    0,    0,
-        0,   47,   69,   69,   69,   47,   54,   53,   54,   55,
-        0,    0,    0,   20,   47,    0,    0,    0,   47,   69,
-       69,   69,   53,    0,    0,    0,    0,   47,    0,    0,
-       47,   69,   69,    0,    0,   50,   51,   47,    0,   47,
-       69,    0,   51,   47,   47,    0,   53,    0,   53,    0,
-        0,   52,   52,    0
+       45,    0,   58,   48,    0,    0,   55,   55,   55,   60,
+        0,   69,   69,   14,    0,   69,   69,    0,   30,    0,
+       69,   69,   69,    0,    0,    0,    0,    0,    0,    0,
+        0,   55,   55,   55,    0,   17,   10,    0,   23,   69,
+       30,   30,    0,   69,   42,   43,    0,    0,    0,    0,
+        0,    0,    0,   55,   55,   55,   17,    0,   69,   30,
+        0,   41,    0,    0,    0,    0,    0,    0,    0,   55,
+        0,   55,    0,   24,   39,    0,    0,    0,   47,   54,
+
+       53,   54,   55,    0,    0,    0,   20,   47,    0,    0,
+        0,   53,    0,    0,    0,    0,   47,    0,    0,    0,
+        0,   50,   51,   47,    0,    0,   51,   47,    0,   53,
+        0,   53,    0,    0,   52,   52,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -460,18 +457,18 @@ static yyconst flex_int32_t yy_meta[66] =
         5,    5,    5,    5,    1
     } ;
 
-static yyconst flex_int16_t yy_base[381] =
+static yyconst flex_int16_t yy_base[354] =
     {   0,
-        0,   64,  240,  939,   68,  939,  939,   72,  180,    0,
-      939,  164,  140,   55,   63,  939,  130,   59,   59,   59,
+        0,   64,  240,  879,   68,  879,  879,   72,  180,    0,
+      879,  164,  140,   55,   63,  879,  130,   59,   59,   59,
        55,   63,    0,   64,   75,   70,  100,   77,  110,  102,
-       98,  139,  126,  152,  145,  185,  206,  110,  210,  939,
-      214,  175,   97,  939,    0,  939,    0,   86,  171,  939,
-      939,  939,    0,   66,  116,  144,  154,  111,  192,  134,
+       98,  139,  126,  152,  145,  185,  206,  110,  210,  879,
+      214,  175,   97,  879,    0,  879,    0,   86,  171,  879,
+      879,  879,    0,   66,  116,  144,  154,  111,  192,  134,
       175,  172,  151,   82,    0,  165,  183,  174,  195,  207,
       196,  215,  194,  199,    0,    0,  215,    0,  220,  218,
       206,  211,  208,  208,  213,  221,  229,  238,    0,  248,
-      242,  245,  939,  283,  287,  257,  262,    0,    0,   69,
+      242,  245,  879,  283,  287,  257,  262,    0,    0,   69,
 
       261,    0,  263,  262,  261,  262,  268,  279,   91,  268,
       286,  308,  276,  293,  284,  294,  287,  289,  292,    0,
@@ -482,75 +479,71 @@ static yyconst flex_int16_t yy_base[381] =
       367,    0,    0,  395,  368,  373,  381,  382,  351,  371,
         0,  412,    0,    0,  382,  382,    0,  380,  386,    0,
       399,  397,  419,    0,  399,  429,  400,  399,    0,  415,
-        0,  446,  417,  408,  409,  408,  420,  431,  420,  454,
-
-      470,  479,  480,    0,  434,  441,  441,    0,  447,  436,
-        0,    0,  486,  473,  473,  494,  453,  482,  467,  469,
-        0,  531,  586,    0,    0,  529,  509,  511,  510,  546,
-        0,  481,  478,  489,  939,  504,  511,  526,  500,    0,
-      529,  531,  521,  518,  533,  552,  545,  541,  553,  564,
-      558,  552,  593,  576,  577,  576,  617,  605,  626,  552,
-        0,    0,  595,    0,  579,    0,    0,  597,  602,    0,
-        0,  602,  614,  625,  609,  616,  623,  631,  620,  616,
-      650,  626,  656,  674,  678,  939,  629,  631,    0,  648,
-        0,  637,  651,  642,  654,  653,  669,  652,  662,  675,
-
-      696,  679,  702,  703,  708,  682,    0,  939,  693,  697,
-      697,  939,  699,  704,  708,    0,  939,    0,  939,  751,
-      735,  719,  747,  939,  939,  697,  700,  718,    0,  717,
-      727,  744,    0,  770,  769,  774,  751,  939,  729,  751,
-        0,  748,  757,  791,  763,  807,  809,  939,  770,    0,
-      774,  817,  821,  939,    0,  825,  829,  807,  831,  788,
-      791,  939,  939,  939,  872,  874,  877,  880,  886,  891,
-      896,  898,  903,  908,  911,  914,  919,  922,  927,  932
+        0,  446,  417,  408,  409,  408,  450,  433,  422,  472,
+
+      473,  479,  485,    0,  435,  442,  443,    0,  457,  469,
+        0,    0,  492,  473,  477,  499,  472,  480,  470,  472,
+        0,  538,    0,    0,  516,  493,  539,  532,  553,    0,
+      475,  486,  513,  879,  520,  499,  529,  517,    0,  537,
+      535,  525,  522,  537,  557,  539,  533,  582,  559,  556,
+      569,  595,  604,  605,  558,    0,    0,  578,    0,  567,
+        0,    0,  580,  584,    0,    0,  586,  597,  601,  591,
+      588,  622,  597,  646,  648,  650,  879,  602,  599,    0,
+      613,    0,  603,  623,  606,  631,  643,  626,  645,  670,
+      674,  672,  647,    0,  879,  652,  658,  659,  879,  879,
+
+        0,  879,  685,  695,  663,  700,  879,  879,  670,  671,
+      676,    0,  712,  711,  713,  689,  879,  687,  697,  732,
+      716,  739,  748,  879,  718,  750,  756,  879,  763,  767,
+      745,  771,  745,  734,  879,  879,  879,  812,  814,  817,
+      820,  826,  831,  836,  838,  843,  848,  851,  854,  859,
+      862,  867,  872
     } ;
 
-static yyconst flex_int16_t yy_def[381] =
+static yyconst flex_int16_t yy_def[354] =
     {   0,
-      364,    1,  364,  364,  364,  364,  364,  364,  365,  366,
-      364,  364,  364,  364,  364,  364,  364,  367,  367,  367,
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  367,  367,  367,  364,  364,  364,  367,  364,  364,
-      364,  364,  365,  364,  368,  364,  369,  364,  364,  364,
-      364,  364,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  367,  364,  364,  364,  364,  367,  368,  369,  364,
-
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  364,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  364,
-      367,  367,  367,  367,  367,  367,  367,  367,  370,  367,
-      367,  364,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  367,  367,  367,  367,  367,  367,  367,  367,  367,
-      367,  371,  367,  367,  367,  367,  367,  364,  367,  367,
-      367,  367,  364,  372,  367,  364,  367,  367,  367,  367,
-      367,  364,  367,  367,  367,  367,  367,  367,  367,  371,
-
-      371,  371,  371,  367,  367,  364,  367,  367,  367,  364,
-      372,  367,  364,  367,  367,  373,  364,  367,  367,  367,
-      367,  364,  367,  367,  367,  364,  364,  371,  371,  371,
-      367,  364,  367,  367,  364,  364,  367,  367,  374,  375,
-      364,  367,  367,  367,  364,  364,  364,  364,  367,  367,
-      367,  367,  364,  364,  364,  364,  371,  371,  371,  364,
-      367,  367,  364,  367,  367,  376,  375,  364,  367,  367,
-      367,  364,  364,  364,  364,  367,  367,  367,  367,  364,
-      364,  364,  371,  371,  371,  364,  364,  367,  376,  364,
-      367,  364,  364,  364,  364,  367,  367,  367,  367,  364,
-
-      377,  364,  371,  364,  371,  364,  367,  364,  364,  364,
-      364,  364,  367,  367,  367,  367,  364,  378,  364,  371,
-      364,  364,  364,  364,  364,  364,  364,  364,  367,  367,
-      367,  367,  378,  364,  364,  364,  364,  364,  364,  364,
-      367,  367,  367,  364,  364,  377,  364,  364,  364,  367,
-      367,  364,  377,  364,  367,  379,  380,  364,  380,  364,
-      364,  364,  364,    0,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364
+      337,    1,  337,  337,  337,  337,  337,  337,  338,  339,
+      337,  337,  337,  337,  337,  337,  337,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  337,  337,  337,  340,  337,  337,
+      337,  337,  338,  337,  341,  337,  342,  337,  337,  337,
+      337,  337,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  337,  337,  337,  337,  340,  341,  342,  337,
+
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  337,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  337,
+      340,  340,  340,  340,  340,  340,  340,  340,  343,  340,
+      340,  337,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  340,  340,  340,  340,  340,  340,  340,  340,  340,
+      340,  344,  340,  340,  340,  340,  340,  337,  340,  340,
+      340,  340,  337,  345,  340,  337,  340,  340,  340,  340,
+      340,  337,  340,  340,  340,  340,  340,  340,  340,  344,
+
+      344,  344,  344,  340,  340,  337,  340,  340,  340,  337,
+      345,  340,  337,  340,  340,  346,  337,  340,  340,  340,
+      340,  337,  340,  340,  337,  337,  344,  344,  344,  340,
+      337,  340,  340,  337,  337,  340,  340,  347,  348,  337,
+      340,  340,  340,  337,  337,  337,  337,  337,  337,  337,
+      337,  344,  344,  344,  337,  340,  340,  337,  340,  340,
+      349,  348,  337,  340,  340,  340,  337,  337,  337,  337,
+      337,  337,  337,  344,  344,  344,  337,  337,  340,  349,
+      337,  340,  337,  337,  337,  337,  337,  350,  337,  344,
+      337,  344,  337,  340,  337,  337,  337,  337,  337,  337,
+
+      351,  337,  344,  337,  337,  337,  337,  337,  337,  337,
+      337,  351,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  350,  337,  337,  337,  337,  350,  337,  352,  353,
+      337,  353,  337,  337,  337,  337,    0,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337
     } ;
 
-static yyconst flex_int16_t yy_nxt[1005] =
+static yyconst flex_int16_t yy_nxt[945] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   11,
        13,    4,   14,   15,   16,   17,   18,   19,   20,   21,
@@ -577,8 +570,8 @@ static yyconst flex_int16_t yy_nxt[1005] =
        90,   91,  116,  115,  111,   92,   96,   95,   40,   40,
        95,   39,   40,   40,   41,   41,   40,   40,   41,  109,
       106,  110,  113,  114,  117,  118,  116,   96,  115,  107,
-      119,   96,  122,  123,  120,  124,  125,  133,  126,  364,
-      128,  129,  130,  131,  106,  132,  364,  127,  117,   42,
+      119,   96,  122,  123,  120,  124,  125,  133,  126,  337,
+      128,  129,  130,  131,  106,  132,  337,  127,  117,   42,
       118,  121,   96,  107,  119,  134,  122,  123,  135,  120,
       124,  125,  133,  126,  128,  129,  130,  131,  136,  132,
        42,  127,  137,  140,   42,  121,  138,  139,   42,  134,
@@ -592,80 +585,73 @@ static yyconst flex_int16_t yy_nxt[1005] =
       160,  158,  152,  169,  176,  159,  155,   42,  161,  162,
       170,   42,  167,  171,  163,  164,  165,  174,  175,  172,
       166,  168,  172,  177,  178,  182,  152,  179,  169,  176,
-      180,  181,  149,  185,  170,  149,  186,  171,  187,  364,
+      180,  181,  149,  185,  170,  149,  186,  171,  187,  337,
       188,  174,  175,  189,  190,  198,  173,  191,  177,  178,
       182,  179,  194,  195,  180,  181,  192,  196,  185,  192,
 
       186,  197,  204,  187,  188,  199,  205,  189,  190,  198,
       173,  193,  191,  172,  206,  207,  172,  194,  195,  208,
-      183,  209,  196,  183,  222,  212,  197,  204,  214,  199,
+      183,  209,  196,  183,  337,  212,  197,  204,  214,  199,
       213,  205,  215,  213,  216,  218,  193,  219,  206,  207,
       201,  220,  221,  210,  208,  202,  209,  192,  203,  212,
-      192,  224,  214,  225,  223,  226,  215,  235,  226,  216,
-      218,  219,  231,  227,  201,  220,  221,  217,  210,  202,
-      232,  226,  203,  233,  226,  234,  224,  225,  223,  227,
-      226,  226,  235,  226,  226,  241,  231,  213,  227,  227,
-      213,  237,  217,  238,  232,  239,  230,  233,  239,  234,
-
-      242,  239,  243,  244,  239,  228,   53,  236,  364,  241,
-      229,  226,  226,  260,  226,  226,  237,  261,  238,  227,
-      227,  230,  262,  364,  364,  242,  243,  244,  254,  228,
-      253,  264,  236,  253,  229,  222,  263,  260,  257,  364,
-      364,  261,  258,  256,  265,  268,  262,  226,  254,  245,
-      226,  269,  246,  254,  270,  227,  264,  271,  255,  272,
-      263,  247,  257,  256,  248,  222,  258,  256,  273,  265,
-      268,  274,  259,  254,  245,  275,  269,  246,  270,  276,
-      277,  271,  255,  272,  278,  247,  279,  256,  248,  222,
-      222,  286,  280,  273,  253,  274,  259,  253,  281,  275,
-
-      282,  364,  364,  276,  249,  277,  226,  250,  278,  226,
-      279,  287,  364,  288,  227,  286,  251,  280,  226,  252,
-      223,  226,  255,  281,  290,  282,  227,  226,  291,  249,
-      226,  292,  250,  293,  283,  227,  287,  288,  295,  284,
-      251,  294,  297,  252,  223,  296,  255,  298,  290,  299,
-      300,  301,  291,  302,  301,  292,  306,  226,  293,  283,
-      226,  285,  295,  284,  307,  227,  294,  297,  308,  296,
-      309,  310,  298,  299,  300,  304,  303,  302,  304,  226,
-      306,  311,  226,  227,  312,  285,  313,  227,  307,  314,
-      364,  315,  316,  308,  309,  317,  310,  301,  305,  319,
-
-      301,  303,  324,  226,  321,  311,  226,  321,  312,  323,
-      313,  227,  323,  325,  314,  315,  316,  227,  328,  329,
-      317,  326,  254,  305,  319,  338,  327,  324,  330,  332,
-      364,  364,  322,  331,  320,  339,  321,  256,  325,  321,
-      335,  364,  340,  328,  329,  341,  326,  254,  336,  338,
-      327,  336,  334,  330,  332,  334,  322,  331,  320,  339,
-      227,  256,  342,  348,  322,  335,  254,  340,  343,  341,
-      346,  344,  347,  346,  344,  336,  337,  349,  336,  364,
-      364,  256,  350,  351,  352,  364,  342,  348,  322,  254,
-      354,  254,  344,  343,  355,  344,  364,  347,  364,  345,
-
-      337,  349,  364,  337,  256,  256,  350,  351,  346,  352,
-      353,  346,  363,  353,  254,  354,  362,  364,  356,  355,
-      345,  356,  353,  345,  364,  353,  356,  337,  256,  356,
-      358,  360,  358,  358,  364,  358,  361,  363,  364,  364,
-      362,  333,  364,  333,  345,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  360,  364,  364,  364,
-      361,  364,  364,  364,  364,  318,  364,  364,  364,  333,
-      364,  333,   43,   43,  364,   43,   43,   43,   45,   45,
-       53,   53,   53,   98,   98,   98,   99,   99,  364,   99,
-       99,   99,  184,  364,  364,  184,  184,  200,  364,  364,
-
-      200,  211,  211,  211,  240,  364,  240,  240,  240,  266,
-      364,  364,  266,  266,  267,  267,  267,  289,  289,  289,
-      318,  364,  364,  318,  318,  333,  333,  333,  357,  364,
-      364,  357,  357,  359,  364,  359,  359,  359,    3,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-
-      364,  364,  364,  364
+      192,  222,  214,  223,  222,  224,  215,  337,  337,  216,
+      218,  219,  337,  230,  201,  220,  221,  217,  210,  202,
+      337,  231,  203,  225,  225,  232,  225,  225,  223,  224,
+      225,  226,  226,  225,  337,  233,  225,  230,  226,  225,
+      234,  236,  217,  213,  226,  231,  213,  237,  241,  232,
+
+      238,  229,  337,  238,  240,  242,  243,  255,  227,  233,
+      228,   53,  249,  235,  337,  234,  236,  248,  238,  259,
+      248,  238,  237,  241,  337,  256,  229,  251,  240,  242,
+      243,  255,  227,  225,  228,  249,  225,  249,  235,  222,
+      225,  226,  222,  225,  259,  250,  257,  260,  226,  256,
+      251,  251,  258,  263,  225,  264,  244,  225,  265,  245,
+      249,  266,  226,  267,  253,  269,  252,  270,  246,  250,
+      257,  247,  260,  268,  251,  271,  258,  272,  263,  254,
+      264,  244,  265,  248,  245,  266,  248,  267,  253,  269,
+      252,  270,  246,  273,  278,  247,  225,  277,  268,  225,
+
+      271,  279,  272,  254,  226,  225,  225,  281,  225,  225,
+      282,  250,  274,  226,  226,  283,  284,  285,  273,  278,
+      286,  277,  287,  288,  289,  279,  288,  288,  337,  293,
+      288,  281,  294,  295,  282,  250,  296,  274,  275,  283,
+      276,  284,  285,  297,  286,  298,  287,  225,  289,  291,
+      225,  225,  291,  293,  225,  226,  294,  226,  295,  226,
+      296,  299,  275,  300,  276,  302,  290,  307,  297,  298,
+      292,  225,  308,  306,  225,  304,  306,  337,  304,  226,
+      311,  226,  309,  337,  314,  299,  313,  310,  300,  313,
+      302,  290,  307,  249,  226,  292,  304,  308,  317,  304,
+
+      319,  315,  303,  305,  315,  311,  318,  309,  251,  314,
+      323,  310,  322,  320,  315,  322,  320,  315,  249,  249,
+      337,  324,  317,  325,  305,  319,  303,  305,  337,  316,
+      318,  249,  251,  320,  251,  323,  320,  326,  328,  337,
+      322,  321,  316,  322,  249,  324,  251,  325,  305,  327,
+      337,  329,  327,  316,  329,  336,  249,  327,  251,  337,
+      327,  321,  326,  328,  329,  321,  316,  329,  331,  333,
+      251,  331,  331,  335,  334,  331,  337,  337,  337,  312,
+      336,  337,  337,  312,  337,  321,  337,  337,  337,  337,
+      337,  337,  337,  337,  333,  337,  337,  335,  334,  337,
+
+      337,  337,  337,  301,  337,  337,  337,  312,  337,  337,
+      337,  312,   43,   43,  337,   43,   43,   43,   45,   45,
+       53,   53,   53,   98,   98,   98,   99,   99,  337,   99,
+       99,   99,  184,  337,  337,  184,  184,  200,  337,  337,
+      200,  211,  211,  211,  239,  337,  239,  239,  239,  261,
+      337,  337,  261,  261,  262,  262,  262,  280,  280,  280,
+      301,  337,  337,  301,  301,  312,  312,  312,  330,  337,
+      337,  330,  330,  332,  337,  332,  332,  332,    3,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337
     } ;
 
-static yyconst flex_int16_t yy_chk[1005] =
+static yyconst flex_int16_t yy_chk[945] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -713,71 +699,64 @@ static yyconst flex_int16_t yy_chk[1005] =
 
       152,  168,  175,  153,  154,  170,  176,  159,  160,  169,
       135,  164,  161,  172,  178,  179,  172,  165,  166,  181,
-      183,  182,  167,  183,  197,  185,  168,  175,  187,  170,
+      183,  182,  167,  183,    0,  185,  168,  175,  187,  170,
       186,  176,  188,  186,  190,  193,  164,  194,  178,  179,
       172,  195,  196,  183,  181,  172,  182,  192,  172,  185,
-      192,  198,  187,  199,  197,  200,  188,  210,  200,  190,
-      193,  194,  205,  200,  172,  195,  196,  192,  183,  172,
-      206,  201,  172,  207,  201,  209,  198,  199,  197,  201,
-      202,  203,  210,  202,  203,  217,  205,  213,  202,  203,
-      213,  214,  192,  215,  206,  216,  203,  207,  216,  209,
-
-      218,  239,  219,  220,  239,  201,  216,  213,    0,  217,
-      202,  229,  228,  232,  229,  228,  214,  233,  215,  229,
-      228,  203,  234,    0,    0,  218,  219,  220,  227,  201,
-      226,  237,  213,  226,  202,  222,  236,  232,  228,    0,
-        0,  233,  229,  227,  238,  241,  234,  230,  226,  222,
-      230,  242,  222,  227,  243,  230,  237,  244,  226,  245,
-      236,  222,  228,  226,  222,  222,  229,  227,  246,  238,
-      241,  247,  230,  226,  222,  248,  242,  222,  243,  249,
-      250,  244,  226,  245,  251,  222,  252,  226,  222,  222,
-      223,  260,  254,  246,  253,  247,  230,  253,  255,  248,
-
-      256,    0,    0,  249,  223,  250,  258,  223,  251,  258,
-      252,  263,    0,  265,  258,  260,  223,  254,  257,  223,
-      223,  257,  253,  255,  268,  256,  257,  259,  269,  223,
-      259,  272,  223,  273,  257,  259,  263,  265,  275,  258,
-      223,  274,  277,  223,  223,  276,  253,  278,  268,  279,
-      280,  281,  269,  282,  281,  272,  287,  283,  273,  257,
-      283,  259,  275,  258,  288,  283,  274,  277,  290,  276,
-      292,  293,  278,  279,  280,  284,  283,  282,  284,  285,
-      287,  294,  285,  284,  295,  259,  296,  285,  288,  297,
-        0,  298,  299,  290,  292,  300,  293,  301,  285,  302,
-
-      301,  283,  306,  303,  304,  294,  303,  304,  295,  305,
-      296,  303,  305,  309,  297,  298,  299,  305,  311,  313,
-      300,  310,  304,  285,  302,  326,  310,  306,  314,  315,
-        0,    0,  304,  314,  303,  327,  321,  304,  309,  321,
-      322,    0,  328,  311,  313,  330,  310,  304,  323,  326,
-      310,  323,  320,  314,  315,  320,  304,  314,  303,  327,
-      320,  304,  331,  339,  321,  322,  323,  328,  332,  330,
-      335,  334,  337,  335,  334,  336,  323,  340,  336,    0,
-        0,  323,  342,  343,  345,    0,  331,  339,  321,  334,
-      349,  323,  344,  332,  351,  344,    0,  337,    0,  334,
-
-      323,  340,    0,  336,  334,  323,  342,  343,  346,  345,
-      347,  346,  361,  347,  334,  349,  360,    0,  352,  351,
-      344,  352,  353,  334,    0,  353,  356,  336,  334,  356,
-      357,  358,  359,  357,    0,  359,  358,  361,    0,    0,
-      360,  357,    0,  359,  344,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,  358,    0,    0,    0,
-      358,    0,    0,    0,    0,  356,    0,    0,    0,  357,
-        0,  359,  365,  365,    0,  365,  365,  365,  366,  366,
-      367,  367,  367,  368,  368,  368,  369,  369,    0,  369,
-      369,  369,  370,    0,    0,  370,  370,  371,    0,    0,
-
-      371,  372,  372,  372,  373,    0,  373,  373,  373,  374,
-        0,    0,  374,  374,  375,  375,  375,  376,  376,  376,
-      377,    0,    0,  377,  377,  378,  378,  378,  379,    0,
-        0,  379,  379,  380,    0,  380,  380,  380,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-      364,  364,  364,  364,  364,  364,  364,  364,  364,  364,
-
-      364,  364,  364,  364
+      192,  197,  187,  198,  197,  199,  188,    0,    0,  190,
+      193,  194,    0,  205,  172,  195,  196,  192,  183,  172,
+        0,  206,  172,  200,  201,  207,  200,  201,  198,  199,
+      202,  200,  201,  202,    0,  209,  203,  205,  202,  203,
+      210,  214,  192,  213,  203,  206,  213,  215,  218,  207,
+
+      216,  203,    0,  216,  217,  219,  220,  231,  201,  209,
+      202,  216,  226,  213,    0,  210,  214,  225,  238,  236,
+      225,  238,  215,  218,    0,  232,  203,  226,  217,  219,
+      220,  231,  201,  228,  202,  225,  228,  226,  213,  222,
+      227,  228,  222,  227,  236,  225,  233,  237,  227,  232,
+      225,  226,  235,  240,  229,  241,  222,  229,  242,  222,
+      225,  243,  229,  244,  228,  246,  227,  247,  222,  225,
+      233,  222,  237,  245,  225,  249,  235,  250,  240,  229,
+      241,  222,  242,  248,  222,  243,  248,  244,  228,  246,
+      227,  247,  222,  251,  258,  222,  252,  255,  245,  252,
+
+      249,  260,  250,  229,  252,  253,  254,  263,  253,  254,
+      264,  248,  252,  253,  254,  267,  268,  269,  251,  258,
+      270,  255,  271,  272,  273,  260,  272,  288,    0,  278,
+      288,  263,  279,  281,  264,  248,  283,  252,  253,  267,
+      254,  268,  269,  284,  270,  285,  271,  274,  273,  275,
+      274,  276,  275,  278,  276,  274,  279,  275,  281,  276,
+      283,  286,  253,  287,  254,  289,  274,  293,  284,  285,
+      276,  290,  296,  292,  290,  291,  292,    0,  291,  290,
+      298,  292,  297,    0,  305,  286,  303,  297,  287,  303,
+      289,  274,  293,  291,  303,  276,  304,  296,  309,  304,
+
+      311,  306,  290,  291,  306,  298,  310,  297,  291,  305,
+      316,  297,  314,  313,  315,  314,  313,  315,  291,  306,
+        0,  318,  309,  319,  304,  311,  290,  291,    0,  306,
+      310,  313,  291,  320,  306,  316,  320,  321,  325,    0,
+      322,  313,  315,  322,  306,  318,  313,  319,  304,  323,
+        0,  326,  323,  306,  326,  334,  313,  327,  306,    0,
+      327,  320,  321,  325,  329,  313,  315,  329,  330,  331,
+      313,  330,  332,  333,  331,  332,    0,    0,    0,  330,
+      334,    0,    0,  332,    0,  320,    0,    0,    0,    0,
+        0,    0,    0,    0,  331,    0,    0,  333,  331,    0,
+
+        0,    0,    0,  329,    0,    0,    0,  330,    0,    0,
+        0,  332,  338,  338,    0,  338,  338,  338,  339,  339,
+      340,  340,  340,  341,  341,  341,  342,  342,    0,  342,
+      342,  342,  343,    0,    0,  343,  343,  344,    0,    0,
+      344,  345,  345,  345,  346,    0,  346,  346,  346,  347,
+        0,    0,  347,  347,  348,  348,  348,  349,  349,  349,
+      350,    0,    0,  350,  350,  351,  351,  351,  352,    0,
+        0,  352,  352,  353,    0,  353,  353,  353,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337,  337,  337,  337,  337,  337,  337,
+      337,  337,  337,  337
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -866,7 +845,7 @@ static int checkImmediate(int token) {
 	return token;
 }
 
-#line 870 "engines/director/lingo/lingo-lex.cpp"
+#line 849 "engines/director/lingo/lingo-lex.cpp"
 
 #define INITIAL 0
 
@@ -1052,7 +1031,7 @@ YY_DECL
 #line 90 "engines/director/lingo/lingo-lex.l"
 
 
-#line 1056 "engines/director/lingo/lingo-lex.cpp"
+#line 1035 "engines/director/lingo/lingo-lex.cpp"
 
 	if ( !(yy_init) )
 		{
@@ -1106,13 +1085,13 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 365 )
+				if ( yy_current_state >= 338 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_current_state != 364 );
+		while ( yy_current_state != 337 );
 		yy_cp = (yy_last_accepting_cpos);
 		yy_current_state = (yy_last_accepting_state);
 
@@ -1726,7 +1705,7 @@ YY_RULE_SETUP
 #line 384 "engines/director/lingo/lingo-lex.l"
 ECHO;
 	YY_BREAK
-#line 1730 "engines/director/lingo/lingo-lex.cpp"
+#line 1709 "engines/director/lingo/lingo-lex.cpp"
 case YY_STATE_EOF(INITIAL):
 	yyterminate();
 
@@ -2020,7 +1999,7 @@ static int yy_get_next_buffer (void)
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 365 )
+			if ( yy_current_state >= 338 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2048,11 +2027,11 @@ static int yy_get_next_buffer (void)
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 365 )
+		if ( yy_current_state >= 338 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 364);
+	yy_is_jam = (yy_current_state == 337);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 09937e2..6076df0 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -85,7 +85,7 @@ constinteger [[:digit:]]+
 conststring \"[^\"\r\n]*\"
 operator [-+*/%^:,()><&\[\]]
 newline [ \t]*[\n\r]
-whitespace [\t ]
+whitespace [ \t]
 
 %%
 
@@ -104,9 +104,9 @@ contains	{ count(); return tCONTAINS; }
 done		{ count(); return tDONE; }
 down		{ count(); return tDOWN; }
 if			{ count(); return tIF; }
-else[\t ]+if { count(); return tELSIF; }
+else[ \t]+if { count(); return tELSIF; }
 else		{ count(); return tELSE; }
-end([\t ]+{identifier})?	{
+end([ \t]+{identifier})?	{
 		count();
 
 		const char *ptr = &yytext[4]; // Skip 'end '
@@ -127,8 +127,8 @@ end([\t ]+{identifier})?	{
 ^[ \t]*factory { count(); return tFACTORY; }
 exit		{ count(); return tEXIT; }
 global		{ count(); return tGLOBAL; }
-go[\t ]+to[\t ]+frame	{ count(); return tGO; }
-go[\t ]+to	{ count(); return tGO; }
+go[ \t]+to[ \t]+frame	{ count(); return tGO; }
+go[ \t]+to	{ count(); return tGO; }
 go			{ count(); return tGO; }
 instance	{ count(); return tINSTANCE; }
 intersects	{ count(); return tINTERSECTS; }
@@ -137,7 +137,7 @@ item		{ count(); return tITEM; }
 line		{ count(); return tLINE; }
 loop		{ count(); return checkImmediate(tLOOP); }
 macro		{ count(); return tMACRO; }
-method[\t ]*{identifier}		{
+method[ \t]*{identifier}		{
 		count();
 
 		const char *ptr = &yytext[6]; // Skip 'method '
@@ -156,7 +156,7 @@ of			{ count(); return tOF; }
 on			{ count(); return tON; }		// D3
 open		{ count(); return tOPEN; }
 or			{ count(); return tOR; }
-play[\t ]+frame	{ count(); return tPLAY; }
+play[ \t]+frame	{ count(); return tPLAY; }
 play		{ count(); return tPLAY; }
 playAccel	{ count(); yylval.s = new Common::String(yytext); return tPLAYACCEL; }
 previous	{ count(); return tPREVIOUS; }
@@ -164,7 +164,7 @@ property	{ count(); return tPROPERTY; }	// D4
 put			{ count(); return tPUT; }
 repeat		{ count(); return checkImmediate(tREPEAT); }
 set			{ count(); return tSET; }
-sound[\ t]+(close|fadeIn|fadeOut|playFile|stop)	{
+sound[ \t]+(close|fadeIn|fadeOut|playFile|stop)	{
 		count();
 
 		const char *ptr = &yytext[6]; // Skip 'sound '
@@ -186,7 +186,7 @@ sound[\ t]+(close|fadeIn|fadeOut|playFile|stop)	{
 	}
 starts		{ count(); return tSTARTS; }
 tell		{ count(); return tTELL; }
-the[ \t]+sqrt[\t ]+of[\t ]+	{
+the[ \t]+sqrt[ \t]+of[ \t]+	{
 		count();
 
 		yylval.e[0] = g_lingo->_theEntities["sqrt"]->entity;
@@ -194,14 +194,14 @@ the[ \t]+sqrt[\t ]+of[\t ]+	{
 
 		return THEENTITYWITHID;
 	}
-the[ \t]+value[\t ]+of[\t ]*	{
+the[ \t]+value[ \t]+of[ \t]*	{
 		count();
 
 		yylval.s = new Common::String("value");
 
 		return FBLTIN;
 	}
-the[ \t]+number[\t ]+of[\t ]+[[:alpha:]]+[\t ](in|of)	{
+the[ \t]+number[ \t]+of[ \t]+[[:alpha:]]+[ \t](in|of)	{
 		count();
 
 		const char *ptr = &yytext[4]; // Skip 'the '
@@ -224,7 +224,7 @@ the[ \t]+number[\t ]+of[\t ]+[[:alpha:]]+[\t ](in|of)	{
 		else
 			error("LEXER: Unhandled chunk expression '%s'", yylval.s->c_str());
 	}
-the[ \t]+[[:alpha:]]+[\t ]+of[\t ]+{identifier}	{
+the[ \t]+[[:alpha:]]+[ \t]+of[ \t]+{identifier}	{
 		count();
 
 		const char *ptr = &yytext[4]; // Skip 'the '


Commit: abb6f778b078ca21d25b3430eea6e668416476df
    https://github.com/scummvm/scummvm/commit/abb6f778b078ca21d25b3430eea6e668416476df
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-01-15T12:21:44+01:00

Commit Message:
DIRECTOR: LINGO: Changed handler definition to accept any ID

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 2eeaac8..e3bb1d2 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -566,16 +566,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  122
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   1491
+#define YYLAST   1479
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  98
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  46
+#define YYNNTS  48
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  161
+#define YYNRULES  163
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  343
+#define YYNSTATES  345
 
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   337
@@ -643,10 +643,10 @@ static const yytype_int16 yyrline[] =
      445,   446,   447,   448,   449,   450,   451,   454,   455,   457,
      461,   466,   470,   475,   479,   491,   492,   493,   494,   498,
      502,   507,   508,   510,   511,   515,   519,   523,   523,   553,
-     553,   560,   561,   561,   568,   578,   586,   588,   589,   590,
-     591,   593,   594,   595,   597,   599,   607,   608,   609,   611,
-     612,   614,   616,   617,   618,   619,   621,   622,   624,   625,
-     627,   631
+     553,   553,   560,   561,   561,   568,   578,   586,   586,   588,
+     589,   590,   591,   593,   594,   595,   597,   599,   607,   608,
+     609,   611,   612,   614,   616,   617,   618,   619,   621,   622,
+     624,   625,   627,   631
 };
 #endif
 
@@ -674,8 +674,8 @@ static const char *const yytname[] =
   "repeatwith", "if", "elseif", "begin", "end", "stmtlist", "when",
   "simpleexpr", "expr", "reference", "proc", "globallist", "propertylist",
   "instancelist", "gotofunc", "gotomovie", "playfunc", "$@1", "defn",
-  "$@2", "$@3", "on", "argdef", "endargdef", "argstore", "macro",
-  "arglist", "nonemptyarglist", "list", "valuelist", "linearlist",
+  "$@2", "$@3", "$@4", "on", "$@5", "argdef", "endargdef", "argstore",
+  "macro", "arglist", "nonemptyarglist", "list", "valuelist", "linearlist",
   "proplist", "proppair", YY_NULLPTR
 };
 #endif
@@ -698,7 +698,7 @@ static const yytype_int16 yytoknum[] =
 };
 # endif
 
-#define YYPACT_NINF (-253)
+#define YYPACT_NINF (-251)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
@@ -712,41 +712,41 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-     263,   -77,  -253,  -253,   866,  -253,   866,   866,    64,   900,
-    -253,  -253,  -253,  -253,  -253,   -24,    30,   749,  -253,    42,
-     866,   -31,    33,    66,    70,   866,   785,    78,   866,   866,
-     866,   866,   866,   866,   866,    83,    88,   866,   866,   866,
-      56,     6,  -253,  -253,  -253,  -253,  -253,   866,    55,   866,
-     587,  -253,  1389,  -253,  -253,  -253,  -253,  -253,  -253,  -253,
-    -253,  -253,    23,   866,  1389,  1389,    22,    22,  -253,  -253,
-     866,  1389,    24,   866,  -253,  -253,  -253,    26,  -253,   866,
-    -253,    80,  -253,   952,  -253,  -253,   939,    96,  -253,   -36,
-      64,     5,    75,    77,  -253,  1306,  -253,   952,  -253,  -253,
-      32,  -253,  1001,  1034,  1067,  1100,  1356,  1265,  -253,    34,
-    -253,  -253,  -253,  1319,    27,    49,  -253,  -253,    52,    60,
-      61,  -253,  -253,   344,  1389,   866,  1389,  -253,  -253,   866,
-    1389,  -253,  -253,   866,   866,   866,   866,   866,   866,   866,
-     866,   866,   866,   866,   866,   866,   866,   866,   866,   866,
-     129,   866,   939,   866,  1319,    18,   866,    22,   129,   135,
-    1389,   866,  -253,  -253,    37,   866,   866,  -253,   866,   866,
-       8,   866,   866,   866,  -253,   866,  -253,   137,   866,   866,
-     866,   866,   866,   866,   866,   866,   866,   866,  -253,  -253,
-     139,  -253,    64,    64,  -253,    64,    48,  -253,  -253,  1389,
-     117,  -253,  1389,     7,     7,     7,     7,  1402,  1402,  -253,
-      19,     7,     7,     7,     7,    19,   -47,   -47,  -253,  -253,
-    -253,   -44,  1389,  -253,  1389,   -38,  -253,  1389,   129,  -253,
-    -253,  1389,  1389,  1389,     7,   866,   866,  1389,     7,  1389,
-    1389,  -253,  1389,  1133,  1389,  1166,  1389,  1199,  1389,  1232,
-    1389,  1389,   668,  -253,  -253,  -253,  -253,  -253,    27,    49,
-    -253,   506,    15,  -253,   120,    76,   152,    76,     9,  1389,
-       7,   866,   866,   866,   866,  -253,   506,  -253,  -253,   103,
-     138,   866,   506,   668,   168,  -253,  -253,  -253,    76,  1389,
-    1389,  1389,  1389,  -253,   108,  -253,   866,  1389,  -253,  -253,
-    -253,   425,   506,  -253,  -253,  1389,  -253,    71,   -20,   174,
-     506,  -253,   506,  -253,  -253,  -253,   866,   116,  -253,  -253,
-    -253,   105,   506,   119,  -253,  1389,  -253,   668,   176,   121,
-    -253,   506,   155,  -253,  -253,  -253,   123,  -253,   124,  -253,
-     506,  -253,  -253
+     264,   -82,  -251,  -251,   867,  -251,   867,   867,    59,   901,
+    -251,  -251,  -251,  -251,  -251,   -25,    11,   750,  -251,  -251,
+     867,    47,    37,    19,    26,   867,   786,    64,   867,   867,
+     867,   867,   867,   867,   867,    69,  -251,   867,   867,   867,
+     102,     8,  -251,  -251,  -251,  -251,  -251,   867,    33,   867,
+     588,  -251,  1390,  -251,  -251,  -251,  -251,  -251,  -251,  -251,
+    -251,  -251,     6,   867,  1390,  1390,     0,     0,  -251,  -251,
+     867,  1390,    23,   867,  -251,  -251,  -251,    28,  -251,   867,
+    -251,    61,  -251,   953,  -251,    99,   940,   107,  -251,    -8,
+      59,     2,   101,   100,  -251,  1307,  -251,   953,  -251,  -251,
+      65,  -251,  1002,  1035,  1068,  1101,  1357,  1266,  -251,    66,
+     132,  -251,  -251,  1320,    58,    73,  -251,  -251,    62,    72,
+      79,  -251,  -251,   345,  1390,   867,  1390,  -251,  -251,   867,
+    1390,  -251,  -251,   867,   867,   867,   867,   867,   867,   867,
+     867,   867,   867,   867,   867,   867,   867,   867,   867,   867,
+     142,   867,   940,   867,  1320,    18,   867,     0,   142,   163,
+    1390,   867,  -251,  -251,    95,   867,   867,  -251,   867,   867,
+       3,   867,   867,   867,  -251,   867,  -251,   164,   867,   867,
+     867,   867,   867,   867,   867,   867,   867,   867,  -251,  -251,
+     167,  -251,  -251,    59,    59,  -251,    59,    67,  -251,  -251,
+    1390,   143,  -251,  1390,    20,    20,    20,    20,   171,   171,
+    -251,    15,    20,    20,    20,    20,    15,   -33,   -33,  -251,
+    -251,  -251,   -34,  1390,  -251,  1390,   -21,  -251,  1390,  -251,
+    -251,  -251,  1390,  1390,  1390,    20,   867,   867,  1390,    20,
+    1390,  1390,  -251,  1390,  1134,  1390,  1167,  1390,  1200,  1390,
+    1233,  1390,  1390,   669,  -251,  -251,  -251,  -251,  -251,    58,
+      73,  -251,   507,    -6,  -251,   144,   104,   174,   104,   142,
+    1390,    20,   867,   867,   867,   867,  -251,   507,  -251,  -251,
+     115,   153,   867,   507,   669,   180,  -251,  -251,  -251,   -17,
+    1390,  1390,  1390,  1390,  -251,   121,  -251,   867,  1390,  -251,
+    -251,  -251,   426,   507,   104,  -251,  1390,  -251,   120,   -16,
+     181,  -251,  -251,   507,  -251,  -251,  -251,   867,   124,  -251,
+    -251,  -251,   111,   507,   507,   125,  -251,  1390,  -251,   669,
+     186,   128,  -251,   507,   165,  -251,  -251,  -251,   133,  -251,
+     134,  -251,   507,  -251,  -251
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -754,61 +754,61 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       0,     0,    52,    62,     0,    53,   146,   146,     0,    56,
-      55,    54,   127,   132,    64,   102,     0,     0,    44,     0,
+       0,     0,    52,    62,     0,    53,   148,   148,     0,    56,
+      55,    54,   127,   133,    64,   102,     0,     0,    44,   129,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     152,     0,     3,    65,    26,     7,    27,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   137,     0,     0,     0,
+     154,     0,     3,    65,    26,     7,    27,     0,     0,     0,
        0,    58,    20,    59,    21,    99,   100,     6,    46,    19,
-      57,     4,    56,     0,    63,   147,   106,    60,    56,    97,
-     146,   149,   145,   146,    46,   101,   109,   103,   115,     0,
-     116,     0,   117,   118,   120,   129,    98,     0,    42,     0,
-       0,     0,     0,     0,   131,   108,   123,   124,   126,   113,
+      57,     4,    56,     0,    63,   149,   106,    60,    56,    97,
+     148,   151,   147,   148,    46,   101,   109,   103,   115,     0,
+     116,     0,   117,   118,   120,     0,    98,     0,    42,     0,
+       0,     0,     0,     0,   132,   108,   123,   124,   126,   113,
      105,    79,     0,     0,     0,     0,     0,     0,   111,   104,
-     136,    84,    85,     0,    55,    54,   153,   156,     0,   154,
-     155,   158,     1,     5,    47,     0,    47,    47,    25,     0,
+       0,    84,    85,     0,    55,    54,   155,   158,     0,   156,
+     157,   160,     1,     5,    47,     0,    47,    47,    25,     0,
       23,    24,    22,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     137,   146,     0,     0,   147,     0,     0,   128,   137,     0,
-     122,     0,   119,    46,     0,     0,     0,    43,     0,     0,
+     139,   148,     0,     0,   149,     0,     0,   128,   139,     0,
+     122,     0,   119,   130,     0,     0,     0,    43,     0,     0,
        0,     0,     0,     0,    51,     0,   125,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,    34,    34,
-       0,    86,     0,     0,   151,     0,     0,     2,    48,    47,
-       0,    31,    47,    75,    76,    73,    74,    77,    78,    70,
-      81,    82,    83,    72,    71,    80,    66,    67,    68,    69,
-     138,     0,   148,    61,   150,     0,   110,   121,   137,     8,
-       9,    10,    11,    15,    13,     0,     0,    14,    12,    18,
-     107,   114,    89,     0,    91,     0,    93,     0,    95,     0,
-      87,    88,     0,    48,   112,   161,   160,   157,     0,     0,
-     159,    47,     0,    48,     0,   144,     0,   144,     0,    16,
-      17,     0,     0,     0,     0,    47,    47,    49,    50,     0,
-       0,     0,    47,     0,     0,    48,   139,    48,   144,    90,
-      92,    94,    96,    33,     0,    28,     0,    47,    37,    47,
-     140,   135,   133,    48,    32,    47,    48,    47,     0,   141,
-     130,    48,    47,    46,    45,    38,     0,     0,    46,    41,
-     142,   134,    47,     0,    48,    47,    35,     0,     0,     0,
-      29,    47,     0,    47,   143,    30,     0,    48,     0,    36,
-      47,    40,    39
+       0,   138,    86,     0,     0,   153,     0,     0,     2,    48,
+      47,     0,    31,    47,    75,    76,    73,    74,    77,    78,
+      70,    81,    82,    83,    72,    71,    80,    66,    67,    68,
+      69,   140,     0,   150,    61,   152,     0,   110,   121,    46,
+       8,     9,    10,    11,    15,    13,     0,     0,    14,    12,
+      18,   107,   114,    89,     0,    91,     0,    93,     0,    95,
+       0,    87,    88,     0,    48,   112,   163,   162,   159,     0,
+       0,   161,    47,     0,    48,     0,   146,     0,   146,   139,
+      16,    17,     0,     0,     0,     0,    47,    47,    49,    50,
+       0,     0,     0,    47,     0,     0,    48,   141,    48,     0,
+      90,    92,    94,    96,    33,     0,    28,     0,    47,    37,
+      47,   142,   136,   134,   146,    32,    47,    48,    47,     0,
+     143,    48,    48,    47,    46,    45,    38,     0,     0,    46,
+      41,   144,   135,   131,    47,     0,    48,    47,    35,     0,
+       0,     0,    29,    47,     0,    47,   145,    30,     0,    48,
+       0,    36,    47,    40,    39
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -253,  -253,    82,  -253,  -243,  -253,     4,    17,  -253,  -253,
-    -253,  -253,  -253,  -253,   157,  -253,   -73,   -89,   -65,  -253,
-      -1,    -4,    45,   161,  -253,  -253,  -253,  -253,   -18,  -253,
-    -253,  -253,  -253,  -253,  -253,  -146,  -253,  -252,   162,    25,
-    -253,  -253,  -253,  -253,  -253,    21
+    -251,  -251,    89,  -251,  -236,  -251,     4,    30,  -251,  -251,
+    -251,  -251,  -251,  -251,   170,  -251,   -73,   -90,  -244,  -251,
+      -2,    -4,    51,   172,  -251,  -251,  -251,  -251,   -11,  -251,
+    -251,  -251,  -251,  -251,  -251,  -251,  -251,  -151,  -251,  -250,
+     175,     5,  -251,  -251,  -251,  -251,  -251,    24
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    41,    42,    43,    44,   127,   278,   252,    46,   307,
-     315,   128,    47,    48,    49,   316,   150,   198,   261,    50,
+      -1,    41,    42,    43,    44,   127,   279,   253,    46,   308,
+     316,   128,    47,    48,    49,   317,   150,   199,   262,    50,
       51,    52,    53,    54,    77,   109,   100,    55,    84,    56,
-      73,    57,   163,    74,    58,   221,   321,   285,    59,   155,
-      72,    60,   118,   119,   120,   121
+      73,    57,    85,   229,    74,    58,   110,   222,   322,   286,
+      59,   155,    72,    60,   118,   119,   120,   121
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -816,214 +816,204 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      64,   158,    65,    65,    45,    71,   122,    69,    98,   275,
-     318,   168,   225,    83,    61,   287,    86,   139,    87,    88,
-      75,    95,    97,   169,   101,   102,   103,   104,   105,   106,
-     107,    66,    67,   111,   112,   113,   303,   200,   201,   117,
-     299,   148,   149,   124,   280,   126,   130,   265,    89,    90,
-     266,    76,   171,   267,    91,   235,   266,     8,   229,   152,
-     319,    92,   281,    85,   172,   162,   154,   236,     2,    65,
-     258,   139,   259,     5,   140,   160,     2,    68,   114,   176,
-     115,     5,   268,   139,   333,    68,    10,    93,    11,   170,
-     228,    94,   145,   146,   147,   148,   149,   123,   157,    99,
-     288,   313,   314,   266,   108,   146,   147,   148,   149,   110,
-     262,   223,   153,   264,   125,   151,   153,   167,   156,   161,
-     159,   199,   173,   174,   192,   202,   177,    45,   190,   203,
-     204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
-     214,   215,   216,   217,   218,   219,   193,    65,   194,   222,
-     220,    40,   224,   116,   195,   196,   226,   227,   241,    40,
-     254,   231,   232,   263,   233,   234,   283,   237,   238,   239,
-     284,   240,   279,   286,   242,   243,   244,   245,   246,   247,
-     248,   249,   250,   251,   295,   296,   293,   294,   276,   300,
-     304,   255,   256,   298,   257,   320,   326,   334,   282,   328,
-     330,   337,   335,   339,   341,   197,   253,   129,   306,   230,
-     308,   131,   132,     0,     0,     0,   311,   260,   317,     0,
-     301,     0,   302,   323,     0,     0,     0,     0,     0,     0,
-       0,   269,   270,   329,     0,     0,   332,     0,   310,     0,
-     324,   312,   336,     0,   338,   327,   322,     0,     0,     0,
-       0,   342,     0,     0,     0,     0,     0,     0,     0,   331,
-       0,     0,     0,    -5,     1,     0,     0,   289,   290,   291,
-     292,     0,   340,     0,     0,     2,     0,   297,     3,     4,
-       5,     6,     7,     8,     9,    10,     0,    11,     0,    12,
-      13,    14,   305,     0,     0,    15,    16,    17,    18,     0,
-       0,    19,     0,     0,     0,     0,    20,    21,    22,     0,
-       0,    23,   325,     0,     0,    24,    25,    26,     0,    27,
-       0,     0,     0,     0,     0,     0,    28,     0,     0,     0,
-       0,     0,     0,    29,    30,    31,    32,    33,     0,     0,
-      34,    35,    36,     0,     0,     0,     0,     0,     0,    37,
-      38,     0,     0,     0,    -5,    39,     2,     0,    40,     3,
+      64,   158,    65,    65,    45,    71,    69,   226,   122,    61,
+     277,    66,    67,    83,   319,    98,    86,   276,   288,    75,
+     283,    95,    97,   281,   101,   102,   103,   104,   105,   106,
+     107,   139,    76,   111,   112,   113,   201,   202,   117,   168,
+      93,   282,   302,   124,   303,   126,   130,    94,   300,   171,
+     236,   169,    89,    90,   311,   148,   149,   266,    91,   152,
+     267,   172,   237,   313,   320,    92,   154,   323,   324,    65,
+     268,     2,   162,   267,   304,   160,     5,   267,   157,   139,
+      68,    10,   333,    11,   139,    99,   176,   140,   170,   259,
+     108,   260,   125,   335,   153,   342,    87,    88,   151,   123,
+     161,   146,   147,   148,   149,   145,   146,   147,   148,   149,
+     263,   224,   153,   265,     2,     8,   230,   156,   289,     5,
+     163,   200,   159,    68,   114,   203,   115,    45,   167,   204,
+     205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   174,    65,   173,   223,
+     314,   315,   225,   191,    40,   193,   269,   228,   195,   177,
+     190,   232,   233,   221,   234,   235,   196,   238,   239,   240,
+     194,   241,   280,   197,   243,   244,   245,   246,   247,   248,
+     249,   250,   251,   252,   227,   242,   294,   295,   255,   264,
+     284,   256,   257,   299,   258,   287,   296,    40,   285,   116,
+     297,   301,   321,   305,   328,   330,   332,   336,   307,   337,
+     309,   339,   198,   341,   343,   231,   312,     0,   318,   254,
+     129,   261,   131,   325,     0,   132,     0,     0,   133,   134,
+     135,   136,   270,   271,   331,   139,     0,   334,   140,   141,
+     142,   326,     0,   338,     0,   340,   329,     0,     0,     0,
+       0,     0,   344,     0,   143,   144,   145,   146,   147,   148,
+     149,     0,     0,     0,    -5,     1,     0,     0,   290,   291,
+     292,   293,     0,     0,     0,     0,     2,     0,   298,     3,
        4,     5,     6,     7,     8,     9,    10,     0,    11,     0,
-      12,    13,    14,     0,     0,     0,    15,    16,    17,    18,
+      12,    13,    14,   306,     0,     0,    15,    16,    17,    18,
        0,     0,    19,     0,     0,     0,     0,    20,    21,    22,
-       0,     0,    23,     0,     0,     0,    24,    25,    26,     0,
+       0,     0,    23,   327,     0,     0,    24,    25,    26,     0,
       27,     0,     0,     0,     0,     0,     0,    28,     0,     0,
        0,     0,     0,     0,    29,    30,    31,    32,    33,     0,
        0,    34,    35,    36,     0,     0,     0,     0,     0,     0,
-      37,    38,     0,     0,     0,     0,    39,     2,     0,    40,
+      37,    38,     0,     0,     0,    -5,    39,     2,     0,    40,
        3,     4,     5,     6,     7,     8,     9,    10,     0,    11,
-     309,    12,     0,    14,     0,     0,     0,    15,    16,    17,
-      18,     0,     0,     0,     0,     0,     0,     0,    20,    21,
-      22,     0,     0,    23,     0,     0,     0,     0,    25,    26,
+       0,    12,    13,    14,     0,     0,     0,    15,    16,    17,
+      18,     0,     0,    19,     0,     0,     0,     0,    20,    21,
+      22,     0,     0,    23,     0,     0,     0,    24,    25,    26,
        0,    27,     0,     0,     0,     0,     0,     0,    28,     0,
        0,     0,     0,     0,     0,    29,    30,    31,    32,    33,
-       0,     0,    34,    35,     0,     0,     0,     0,     0,     0,
-       0,    37,    38,     0,     0,     0,   277,    39,     2,     0,
+       0,     0,    34,    35,    36,     0,     0,     0,     0,     0,
+       0,    37,    38,     0,     0,     0,     0,    39,     2,     0,
       40,     3,     4,     5,     6,     7,     8,     9,    10,     0,
-      11,     0,    12,     0,    14,     0,     0,     0,    15,    16,
+      11,   310,    12,     0,    14,     0,     0,     0,    15,    16,
       17,    18,     0,     0,     0,     0,     0,     0,     0,    20,
       21,    22,     0,     0,    23,     0,     0,     0,     0,    25,
       26,     0,    27,     0,     0,     0,     0,     0,     0,    28,
        0,     0,     0,     0,     0,     0,    29,    30,    31,    32,
       33,     0,     0,    34,    35,     0,     0,     0,     0,     0,
-       0,     0,    37,    38,     0,     0,     0,   277,    39,     2,
+       0,     0,    37,    38,     0,     0,     0,   278,    39,     2,
        0,    40,     3,     4,     5,     6,     7,     8,     9,    10,
        0,    11,     0,    12,     0,    14,     0,     0,     0,    15,
       16,    17,    18,     0,     0,     0,     0,     0,     0,     0,
-      20,     0,    22,     0,     0,     0,     0,     0,     0,     0,
+      20,    21,    22,     0,     0,    23,     0,     0,     0,     0,
       25,    26,     0,    27,     0,     0,     0,     0,     0,     0,
       28,     0,     0,     0,     0,     0,     0,    29,    30,    31,
-      32,    33,     0,     0,     0,    35,     0,     0,     0,     0,
-       0,     0,     0,    37,    38,     0,     0,     0,     0,    39,
+      32,    33,     0,     0,    34,    35,     0,     0,     0,     0,
+       0,     0,     0,    37,    38,     0,     0,     0,   278,    39,
        2,     0,    40,     3,     4,     5,     6,     7,     8,     9,
       10,     0,    11,     0,    12,     0,    14,     0,     0,     0,
-      15,    16,    17,     0,     0,     0,     0,     0,     0,     0,
+      15,    16,    17,    18,     0,     0,     0,     0,     0,     0,
        0,    20,     0,    22,     0,     0,     0,     0,     0,     0,
        0,    25,    26,     0,    27,     0,     0,     0,     0,     0,
        0,    28,     0,     0,     0,     0,     0,     0,    29,    30,
       31,    32,    33,     0,     0,     0,    35,     0,     0,     0,
        0,     0,     0,     0,    37,    38,     0,     0,     0,     0,
-      39,     2,     0,    40,     3,     4,     5,     0,     7,     8,
-      62,    10,     0,    11,     0,     0,     0,    14,     0,     0,
-       0,     0,     0,     0,     0,     0,    78,     0,    79,    80,
-      81,    82,    63,     0,    22,     0,     0,     2,     0,     0,
-       3,     4,     5,     0,     7,     8,    62,    10,     0,    11,
-       0,     0,    28,    14,     0,     0,     0,     0,     0,    29,
-      30,    31,    32,    33,    79,     0,    81,     0,    63,     0,
-      22,     0,     0,     0,     0,    37,    38,     0,     0,     0,
-      96,    39,     0,     0,    40,     0,     0,     0,    28,     0,
-       0,     0,     0,     0,     0,    29,    30,    31,    32,    33,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    37,    38,     0,     0,     0,     0,    39,     2,     0,
-      40,     3,     4,     5,     0,     7,     8,    62,    10,     0,
-      11,     0,     0,     0,    14,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    63,
-       0,    22,     2,     0,     0,     3,     4,     5,     0,     7,
-       8,    62,    10,     0,    11,     0,     0,     0,    14,    28,
+      39,     2,     0,    40,     3,     4,     5,     6,     7,     8,
+       9,    10,     0,    11,     0,    12,     0,    14,     0,     0,
+       0,    15,    16,    17,     0,     0,     0,     0,     0,     0,
+       0,     0,    20,     0,    22,     0,     0,     0,     0,     0,
+       0,     0,    25,    26,     0,    27,     0,     0,     0,     0,
+       0,     0,    28,     0,     0,     0,     0,     0,     0,    29,
+      30,    31,    32,    33,     0,     0,     0,    35,     0,     0,
+       0,     0,     0,     0,     0,    37,    38,     0,     0,     0,
+       0,    39,     2,     0,    40,     3,     4,     5,     0,     7,
+       8,    62,    10,     0,    11,     0,     0,     0,    14,     0,
+       0,     0,     0,     0,     0,     0,     0,    78,     0,    79,
+      80,    81,    82,    63,     0,    22,     0,     0,     2,     0,
+       0,     3,     4,     5,     0,     7,     8,    62,    10,     0,
+      11,     0,     0,    28,    14,     0,     0,     0,     0,     0,
+      29,    30,    31,    32,    33,    79,     0,    81,     0,    63,
+       0,    22,     0,     0,     0,     0,    37,    38,     0,     0,
+       0,    96,    39,     0,     0,    40,     0,     0,     0,    28,
        0,     0,     0,     0,     0,     0,    29,    30,    31,    32,
-      33,     0,     0,    63,     0,    22,     0,     0,     0,     0,
-       0,     0,    37,    38,     0,     0,     0,     0,    39,     0,
-       0,    40,     0,    28,     0,     0,     0,     0,     0,     0,
-      29,    30,    31,    32,    33,   164,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    37,    38,     0,     0,
-       0,    79,    70,    81,     0,    40,   133,   134,   135,   136,
-     137,   138,     0,   139,   165,   166,   140,   141,   142,   133,
+      33,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    37,    38,     0,     0,     0,     0,    39,     2,
+       0,    40,     3,     4,     5,     0,     7,     8,    62,    10,
+       0,    11,     0,     0,     0,    14,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      63,     0,    22,     2,     0,     0,     3,     4,     5,     0,
+       7,     8,    62,    10,     0,    11,     0,     0,     0,    14,
+      28,     0,     0,     0,     0,     0,     0,    29,    30,    31,
+      32,    33,     0,     0,    63,     0,    22,     0,     0,     0,
+       0,     0,     0,    37,    38,     0,     0,     0,     0,    39,
+       0,     0,    40,     0,    28,     0,     0,     0,     0,     0,
+       0,    29,    30,    31,    32,    33,   164,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    37,    38,     0,
+       0,     0,    79,    70,    81,     0,    40,   133,   134,   135,
+     136,   137,   138,     0,   139,   165,   166,   140,   141,   142,
+     133,   134,   135,   136,   137,   138,     0,   139,     0,     0,
+     140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
+       0,     0,     0,     0,     0,     0,   143,   144,   145,   146,
+     147,   148,   149,   178,     0,     0,     0,     0,     0,   179,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   133,
      134,   135,   136,   137,   138,     0,   139,     0,     0,   140,
-     141,   142,   143,   144,   145,   146,   147,   148,   149,     0,
-       0,     0,     0,     0,     0,   143,   144,   145,   146,   147,
-     148,   149,   178,     0,     0,     0,     0,     0,   179,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   133,   134,
+     141,   142,     0,     0,     0,     0,   180,     0,     0,     0,
+       0,     0,   181,     0,     0,   143,   144,   145,   146,   147,
+     148,   149,   133,   134,   135,   136,   137,   138,     0,   139,
+       0,     0,   140,   141,   142,     0,     0,     0,     0,   182,
+       0,     0,     0,     0,     0,   183,     0,     0,   143,   144,
+     145,   146,   147,   148,   149,   133,   134,   135,   136,   137,
+     138,     0,   139,     0,     0,   140,   141,   142,     0,     0,
+       0,     0,   184,     0,     0,     0,     0,     0,   185,     0,
+       0,   143,   144,   145,   146,   147,   148,   149,   133,   134,
      135,   136,   137,   138,     0,   139,     0,     0,   140,   141,
-     142,     0,     0,     0,     0,   180,     0,     0,     0,     0,
-       0,   181,     0,     0,   143,   144,   145,   146,   147,   148,
+     142,     0,     0,     0,     0,   272,     0,     0,     0,     0,
+       0,     0,     0,     0,   143,   144,   145,   146,   147,   148,
      149,   133,   134,   135,   136,   137,   138,     0,   139,     0,
-       0,   140,   141,   142,     0,     0,     0,     0,   182,     0,
-       0,     0,     0,     0,   183,     0,     0,   143,   144,   145,
+       0,   140,   141,   142,     0,     0,     0,     0,   273,     0,
+       0,     0,     0,     0,     0,     0,     0,   143,   144,   145,
      146,   147,   148,   149,   133,   134,   135,   136,   137,   138,
        0,   139,     0,     0,   140,   141,   142,     0,     0,     0,
-       0,   184,     0,     0,     0,     0,     0,   185,     0,     0,
+       0,   274,     0,     0,     0,     0,     0,     0,     0,     0,
      143,   144,   145,   146,   147,   148,   149,   133,   134,   135,
      136,   137,   138,     0,   139,     0,     0,   140,   141,   142,
-       0,     0,     0,     0,   271,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   275,     0,     0,     0,     0,     0,
        0,     0,     0,   143,   144,   145,   146,   147,   148,   149,
      133,   134,   135,   136,   137,   138,     0,   139,     0,     0,
-     140,   141,   142,     0,     0,     0,     0,   272,     0,     0,
-       0,     0,     0,     0,     0,     0,   143,   144,   145,   146,
+     140,   141,   142,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   188,     0,     0,   143,   144,   145,   146,
      147,   148,   149,   133,   134,   135,   136,   137,   138,     0,
      139,     0,     0,   140,   141,   142,     0,     0,     0,     0,
-     273,     0,     0,     0,     0,     0,     0,     0,     0,   143,
-     144,   145,   146,   147,   148,   149,   133,   134,   135,   136,
-     137,   138,     0,   139,     0,     0,   140,   141,   142,     0,
-       0,     0,     0,   274,     0,     0,     0,     0,     0,     0,
-       0,     0,   143,   144,   145,   146,   147,   148,   149,   133,
-     134,   135,   136,   137,   138,     0,   139,     0,     0,   140,
-     141,   142,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   188,     0,     0,   143,   144,   145,   146,   147,
-     148,   149,   133,   134,   135,   136,   137,   138,     0,   139,
-       0,     0,   140,   141,   142,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   143,   144,
-     145,   146,   147,   148,   149,   175,   189,     0,     0,     0,
-       0,     0,     0,   133,   134,   135,   136,   137,   138,     0,
-     139,     0,     0,   140,   141,   142,   133,   134,   135,   136,
-     137,   138,     0,   139,     0,     0,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,     0,     0,     0,     0,
-       0,     0,   143,   144,   145,   146,   147,   148,   149,     0,
-       0,     0,   191,   133,   134,   135,   136,   137,   138,     0,
-     139,     0,     0,   140,   141,   142,     0,     0,     0,     0,
-       0,   186,   187,     0,     0,     0,     0,     0,     0,   143,
-     144,   145,   146,   147,   148,   149,   133,   134,   135,   136,
-     137,   138,     0,   139,     0,     0,   140,   141,   142,   133,
-     134,   135,   136,     0,     0,     0,   139,     0,     0,   140,
-     141,   142,   143,   144,   145,   146,   147,   148,   149,     0,
-       0,     0,     0,     0,     0,   143,   144,   145,   146,   147,
-     148,   149
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   143,
+     144,   145,   146,   147,   148,   149,   175,   189,     0,     0,
+       0,     0,     0,     0,   133,   134,   135,   136,   137,   138,
+       0,   139,     0,     0,   140,   141,   142,   133,   134,   135,
+     136,   137,   138,     0,   139,     0,     0,   140,   141,   142,
+     143,   144,   145,   146,   147,   148,   149,     0,     0,     0,
+       0,     0,     0,   143,   144,   145,   146,   147,   148,   149,
+       0,     0,     0,   192,   133,   134,   135,   136,   137,   138,
+       0,   139,     0,     0,   140,   141,   142,     0,     0,     0,
+       0,     0,   186,   187,     0,     0,     0,     0,     0,     0,
+     143,   144,   145,   146,   147,   148,   149,   133,   134,   135,
+     136,   137,   138,     0,   139,     0,     0,   140,   141,   142,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   143,   144,   145,   146,   147,   148,   149
 };
 
 static const yytype_int16 yycheck[] =
 {
-       4,    74,     6,     7,     0,     9,     0,     8,    26,   252,
-      30,    47,   158,    17,    91,   267,    20,    64,    49,    50,
-      44,    25,    26,    59,    28,    29,    30,    31,    32,    33,
-      34,     6,     7,    37,    38,    39,   288,   126,   127,    40,
-     283,    88,    89,    47,    29,    49,    50,    91,    15,    16,
-      94,    21,    47,    91,    21,    47,    94,    20,    21,    63,
-      80,    28,    47,    21,    59,    83,    70,    59,    12,    73,
-      22,    64,    24,    17,    67,    79,    12,    21,    22,    97,
-      24,    17,   228,    64,   327,    21,    22,    21,    24,    90,
-     163,    21,    85,    86,    87,    88,    89,    91,    73,    21,
-      91,    30,    31,    94,    21,    86,    87,    88,    89,    21,
-     199,    93,    94,   202,    59,    92,    94,    21,    94,    39,
-      94,   125,    47,    46,    97,   129,    94,   123,    94,   133,
+       4,    74,     6,     7,     0,     9,     8,   158,     0,    91,
+     254,     6,     7,    17,    30,    26,    20,   253,   268,    44,
+     264,    25,    26,    29,    28,    29,    30,    31,    32,    33,
+      34,    64,    21,    37,    38,    39,   126,   127,    40,    47,
+      21,    47,   286,    47,   288,    49,    50,    21,   284,    47,
+      47,    59,    15,    16,   304,    88,    89,    91,    21,    63,
+      94,    59,    59,   307,    80,    28,    70,   311,   312,    73,
+      91,    12,    83,    94,    91,    79,    17,    94,    73,    64,
+      21,    22,   326,    24,    64,    21,    97,    67,    90,    22,
+      21,    24,    59,   329,    94,   339,    49,    50,    92,    91,
+      39,    86,    87,    88,    89,    85,    86,    87,    88,    89,
+     200,    93,    94,   203,    12,    20,    21,    94,   269,    17,
+      21,   125,    94,    21,    22,   129,    24,   123,    21,   133,
      134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
-     144,   145,   146,   147,   148,   149,    97,   151,    96,   153,
-      21,    95,   156,    97,    94,    94,    21,   161,    21,    95,
-      21,   165,   166,    46,   168,   169,    46,   171,   172,   173,
-      94,   175,   261,    21,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,    81,    47,   275,   276,   253,    21,
-      82,   192,   193,   282,   195,    21,    80,    21,   263,    94,
-      81,    46,    81,    80,    80,   123,   189,    50,   297,   164,
-     299,    50,    50,    -1,    -1,    -1,   305,   196,   307,    -1,
-     285,    -1,   287,   312,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   235,   236,   322,    -1,    -1,   325,    -1,   303,    -1,
-     313,   306,   331,    -1,   333,   318,   311,    -1,    -1,    -1,
-      -1,   340,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   324,
-      -1,    -1,    -1,     0,     1,    -1,    -1,   271,   272,   273,
-     274,    -1,   337,    -1,    -1,    12,    -1,   281,    15,    16,
-      17,    18,    19,    20,    21,    22,    -1,    24,    -1,    26,
-      27,    28,   296,    -1,    -1,    32,    33,    34,    35,    -1,
-      -1,    38,    -1,    -1,    -1,    -1,    43,    44,    45,    -1,
-      -1,    48,   316,    -1,    -1,    52,    53,    54,    -1,    56,
-      -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,    -1,
-      -1,    -1,    -1,    70,    71,    72,    73,    74,    -1,    -1,
-      77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    86,
-      87,    -1,    -1,    -1,    91,    92,    12,    -1,    95,    15,
+     144,   145,   146,   147,   148,   149,    46,   151,    47,   153,
+      30,    31,   156,    21,    95,    97,   229,   161,    96,    94,
+      94,   165,   166,    21,   168,   169,    94,   171,   172,   173,
+      97,   175,   262,    94,   178,   179,   180,   181,   182,   183,
+     184,   185,   186,   187,    21,    21,   276,   277,    21,    46,
+      46,   193,   194,   283,   196,    21,    81,    95,    94,    97,
+      47,    21,    21,    82,    80,    94,    81,    21,   298,    81,
+     300,    46,   123,    80,    80,   164,   306,    -1,   308,   189,
+      50,   197,    50,   313,    -1,    50,    -1,    -1,    57,    58,
+      59,    60,   236,   237,   324,    64,    -1,   327,    67,    68,
+      69,   314,    -1,   333,    -1,   335,   319,    -1,    -1,    -1,
+      -1,    -1,   342,    -1,    83,    84,    85,    86,    87,    88,
+      89,    -1,    -1,    -1,     0,     1,    -1,    -1,   272,   273,
+     274,   275,    -1,    -1,    -1,    -1,    12,    -1,   282,    15,
       16,    17,    18,    19,    20,    21,    22,    -1,    24,    -1,
-      26,    27,    28,    -1,    -1,    -1,    32,    33,    34,    35,
+      26,    27,    28,   297,    -1,    -1,    32,    33,    34,    35,
       -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,    45,
-      -1,    -1,    48,    -1,    -1,    -1,    52,    53,    54,    -1,
+      -1,    -1,    48,   317,    -1,    -1,    52,    53,    54,    -1,
       56,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,    -1,
       -1,    -1,    -1,    -1,    70,    71,    72,    73,    74,    -1,
       -1,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,
-      86,    87,    -1,    -1,    -1,    -1,    92,    12,    -1,    95,
+      86,    87,    -1,    -1,    -1,    91,    92,    12,    -1,    95,
       15,    16,    17,    18,    19,    20,    21,    22,    -1,    24,
-      25,    26,    -1,    28,    -1,    -1,    -1,    32,    33,    34,
-      35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    44,
-      45,    -1,    -1,    48,    -1,    -1,    -1,    -1,    53,    54,
+      -1,    26,    27,    28,    -1,    -1,    -1,    32,    33,    34,
+      35,    -1,    -1,    38,    -1,    -1,    -1,    -1,    43,    44,
+      45,    -1,    -1,    48,    -1,    -1,    -1,    52,    53,    54,
       -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,    63,    -1,
       -1,    -1,    -1,    -1,    -1,    70,    71,    72,    73,    74,
-      -1,    -1,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    86,    87,    -1,    -1,    -1,    91,    92,    12,    -1,
+      -1,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,    -1,
+      -1,    86,    87,    -1,    -1,    -1,    -1,    92,    12,    -1,
       95,    15,    16,    17,    18,    19,    20,    21,    22,    -1,
-      24,    -1,    26,    -1,    28,    -1,    -1,    -1,    32,    33,
+      24,    25,    26,    -1,    28,    -1,    -1,    -1,    32,    33,
       34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
       44,    45,    -1,    -1,    48,    -1,    -1,    -1,    -1,    53,
       54,    -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,    63,
@@ -1033,93 +1023,99 @@ static const yytype_int16 yycheck[] =
       -1,    95,    15,    16,    17,    18,    19,    20,    21,    22,
       -1,    24,    -1,    26,    -1,    28,    -1,    -1,    -1,    32,
       33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      43,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      43,    44,    45,    -1,    -1,    48,    -1,    -1,    -1,    -1,
       53,    54,    -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,
       63,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
-      73,    74,    -1,    -1,    -1,    78,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,    92,
+      73,    74,    -1,    -1,    77,    78,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    86,    87,    -1,    -1,    -1,    91,    92,
       12,    -1,    95,    15,    16,    17,    18,    19,    20,    21,
       22,    -1,    24,    -1,    26,    -1,    28,    -1,    -1,    -1,
-      32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      32,    33,    34,    35,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    43,    -1,    45,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,    -1,
       -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,
       72,    73,    74,    -1,    -1,    -1,    78,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,
-      92,    12,    -1,    95,    15,    16,    17,    -1,    19,    20,
-      21,    22,    -1,    24,    -1,    -1,    -1,    28,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    39,    40,
-      41,    42,    43,    -1,    45,    -1,    -1,    12,    -1,    -1,
-      15,    16,    17,    -1,    19,    20,    21,    22,    -1,    24,
-      -1,    -1,    63,    28,    -1,    -1,    -1,    -1,    -1,    70,
-      71,    72,    73,    74,    39,    -1,    41,    -1,    43,    -1,
-      45,    -1,    -1,    -1,    -1,    86,    87,    -1,    -1,    -1,
-      55,    92,    -1,    -1,    95,    -1,    -1,    -1,    63,    -1,
-      -1,    -1,    -1,    -1,    -1,    70,    71,    72,    73,    74,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    86,    87,    -1,    -1,    -1,    -1,    92,    12,    -1,
-      95,    15,    16,    17,    -1,    19,    20,    21,    22,    -1,
-      24,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
-      -1,    45,    12,    -1,    -1,    15,    16,    17,    -1,    19,
-      20,    21,    22,    -1,    24,    -1,    -1,    -1,    28,    63,
+      92,    12,    -1,    95,    15,    16,    17,    18,    19,    20,
+      21,    22,    -1,    24,    -1,    26,    -1,    28,    -1,    -1,
+      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    43,    -1,    45,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,
+      -1,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,    70,
+      71,    72,    73,    74,    -1,    -1,    -1,    78,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    86,    87,    -1,    -1,    -1,
+      -1,    92,    12,    -1,    95,    15,    16,    17,    -1,    19,
+      20,    21,    22,    -1,    24,    -1,    -1,    -1,    28,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    37,    -1,    39,
+      40,    41,    42,    43,    -1,    45,    -1,    -1,    12,    -1,
+      -1,    15,    16,    17,    -1,    19,    20,    21,    22,    -1,
+      24,    -1,    -1,    63,    28,    -1,    -1,    -1,    -1,    -1,
+      70,    71,    72,    73,    74,    39,    -1,    41,    -1,    43,
+      -1,    45,    -1,    -1,    -1,    -1,    86,    87,    -1,    -1,
+      -1,    55,    92,    -1,    -1,    95,    -1,    -1,    -1,    63,
       -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,    73,
-      74,    -1,    -1,    43,    -1,    45,    -1,    -1,    -1,    -1,
-      -1,    -1,    86,    87,    -1,    -1,    -1,    -1,    92,    -1,
-      -1,    95,    -1,    63,    -1,    -1,    -1,    -1,    -1,    -1,
-      70,    71,    72,    73,    74,    36,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    86,    87,    -1,    -1,
-      -1,    39,    92,    41,    -1,    95,    57,    58,    59,    60,
-      61,    62,    -1,    64,    65,    66,    67,    68,    69,    57,
+      74,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    86,    87,    -1,    -1,    -1,    -1,    92,    12,
+      -1,    95,    15,    16,    17,    -1,    19,    20,    21,    22,
+      -1,    24,    -1,    -1,    -1,    28,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      43,    -1,    45,    12,    -1,    -1,    15,    16,    17,    -1,
+      19,    20,    21,    22,    -1,    24,    -1,    -1,    -1,    28,
+      63,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    72,
+      73,    74,    -1,    -1,    43,    -1,    45,    -1,    -1,    -1,
+      -1,    -1,    -1,    86,    87,    -1,    -1,    -1,    -1,    92,
+      -1,    -1,    95,    -1,    63,    -1,    -1,    -1,    -1,    -1,
+      -1,    70,    71,    72,    73,    74,    36,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    86,    87,    -1,
+      -1,    -1,    39,    92,    41,    -1,    95,    57,    58,    59,
+      60,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
+      57,    58,    59,    60,    61,    62,    -1,    64,    -1,    -1,
+      67,    68,    69,    83,    84,    85,    86,    87,    88,    89,
+      -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    85,    86,
+      87,    88,    89,    41,    -1,    -1,    -1,    -1,    -1,    47,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,
       58,    59,    60,    61,    62,    -1,    64,    -1,    -1,    67,
-      68,    69,    83,    84,    85,    86,    87,    88,    89,    -1,
-      -1,    -1,    -1,    -1,    -1,    83,    84,    85,    86,    87,
-      88,    89,    41,    -1,    -1,    -1,    -1,    -1,    47,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    57,    58,
+      68,    69,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,
+      -1,    -1,    47,    -1,    -1,    83,    84,    85,    86,    87,
+      88,    89,    57,    58,    59,    60,    61,    62,    -1,    64,
+      -1,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,    41,
+      -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,    83,    84,
+      85,    86,    87,    88,    89,    57,    58,    59,    60,    61,
+      62,    -1,    64,    -1,    -1,    67,    68,    69,    -1,    -1,
+      -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    47,    -1,
+      -1,    83,    84,    85,    86,    87,    88,    89,    57,    58,
       59,    60,    61,    62,    -1,    64,    -1,    -1,    67,    68,
       69,    -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,
-      -1,    47,    -1,    -1,    83,    84,    85,    86,    87,    88,
+      -1,    -1,    -1,    -1,    83,    84,    85,    86,    87,    88,
       89,    57,    58,    59,    60,    61,    62,    -1,    64,    -1,
       -1,    67,    68,    69,    -1,    -1,    -1,    -1,    41,    -1,
-      -1,    -1,    -1,    -1,    47,    -1,    -1,    83,    84,    85,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    85,
       86,    87,    88,    89,    57,    58,    59,    60,    61,    62,
       -1,    64,    -1,    -1,    67,    68,    69,    -1,    -1,    -1,
-      -1,    41,    -1,    -1,    -1,    -1,    -1,    47,    -1,    -1,
+      -1,    41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
       83,    84,    85,    86,    87,    88,    89,    57,    58,    59,
       60,    61,    62,    -1,    64,    -1,    -1,    67,    68,    69,
       -1,    -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    83,    84,    85,    86,    87,    88,    89,
       57,    58,    59,    60,    61,    62,    -1,    64,    -1,    -1,
-      67,    68,    69,    -1,    -1,    -1,    -1,    41,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    83,    84,    85,    86,
+      67,    68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    47,    -1,    -1,    83,    84,    85,    86,
       87,    88,    89,    57,    58,    59,    60,    61,    62,    -1,
       64,    -1,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
-      41,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,
-      84,    85,    86,    87,    88,    89,    57,    58,    59,    60,
-      61,    62,    -1,    64,    -1,    -1,    67,    68,    69,    -1,
-      -1,    -1,    -1,    41,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    83,    84,    85,    86,    87,    88,    89,    57,
-      58,    59,    60,    61,    62,    -1,    64,    -1,    -1,    67,
-      68,    69,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    47,    -1,    -1,    83,    84,    85,    86,    87,
-      88,    89,    57,    58,    59,    60,    61,    62,    -1,    64,
-      -1,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,    84,
-      85,    86,    87,    88,    89,    49,    91,    -1,    -1,    -1,
-      -1,    -1,    -1,    57,    58,    59,    60,    61,    62,    -1,
-      64,    -1,    -1,    67,    68,    69,    57,    58,    59,    60,
-      61,    62,    -1,    64,    -1,    -1,    67,    68,    69,    83,
-      84,    85,    86,    87,    88,    89,    -1,    -1,    -1,    -1,
-      -1,    -1,    83,    84,    85,    86,    87,    88,    89,    -1,
-      -1,    -1,    93,    57,    58,    59,    60,    61,    62,    -1,
-      64,    -1,    -1,    67,    68,    69,    -1,    -1,    -1,    -1,
-      -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,    83,
-      84,    85,    86,    87,    88,    89,    57,    58,    59,    60,
-      61,    62,    -1,    64,    -1,    -1,    67,    68,    69,    57,
-      58,    59,    60,    -1,    -1,    -1,    64,    -1,    -1,    67,
-      68,    69,    83,    84,    85,    86,    87,    88,    89,    -1,
-      -1,    -1,    -1,    -1,    -1,    83,    84,    85,    86,    87,
-      88,    89
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    83,
+      84,    85,    86,    87,    88,    89,    49,    91,    -1,    -1,
+      -1,    -1,    -1,    -1,    57,    58,    59,    60,    61,    62,
+      -1,    64,    -1,    -1,    67,    68,    69,    57,    58,    59,
+      60,    61,    62,    -1,    64,    -1,    -1,    67,    68,    69,
+      83,    84,    85,    86,    87,    88,    89,    -1,    -1,    -1,
+      -1,    -1,    -1,    83,    84,    85,    86,    87,    88,    89,
+      -1,    -1,    -1,    93,    57,    58,    59,    60,    61,    62,
+      -1,    64,    -1,    -1,    67,    68,    69,    -1,    -1,    -1,
+      -1,    -1,    75,    76,    -1,    -1,    -1,    -1,    -1,    -1,
+      83,    84,    85,    86,    87,    88,    89,    57,    58,    59,
+      60,    61,    62,    -1,    64,    -1,    -1,    67,    68,    69,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    83,    84,    85,    86,    87,    88,    89
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1131,36 +1127,36 @@ static const yytype_uint8 yystos[] =
       43,    44,    45,    48,    52,    53,    54,    56,    63,    70,
       71,    72,    73,    74,    77,    78,    79,    86,    87,    92,
       95,    99,   100,   101,   102,   104,   106,   110,   111,   112,
-     117,   118,   119,   120,   121,   125,   127,   129,   132,   136,
-     139,    91,    21,    43,   119,   119,   137,   137,    21,   118,
-      92,   119,   138,   128,   131,    44,    21,   122,    37,    39,
-      40,    41,    42,   119,   126,    21,   119,    49,    50,    15,
+     117,   118,   119,   120,   121,   125,   127,   129,   133,   138,
+     141,    91,    21,    43,   119,   119,   139,   139,    21,   118,
+      92,   119,   140,   128,   132,    44,    21,   122,    37,    39,
+      40,    41,    42,   119,   126,   130,   119,    49,    50,    15,
       16,    21,    28,    21,    21,   119,    55,   119,   126,    21,
      124,   119,   119,   119,   119,   119,   119,   119,    21,   123,
-      21,   119,   119,   119,    22,    24,    97,   118,   140,   141,
-     142,   143,     0,    91,   119,    59,   119,   103,   109,   112,
-     119,   121,   136,    57,    58,    59,    60,    61,    62,    64,
+     134,   119,   119,   119,    22,    24,    97,   118,   142,   143,
+     144,   145,     0,    91,   119,    59,   119,   103,   109,   112,
+     119,   121,   138,    57,    58,    59,    60,    61,    62,    64,
       67,    68,    69,    83,    84,    85,    86,    87,    88,    89,
-     114,    92,   119,    94,   119,   137,    94,   137,   114,    94,
-     119,    39,   126,   130,    36,    65,    66,    21,    47,    59,
+     114,    92,   119,    94,   119,   139,    94,   139,   114,    94,
+     119,    39,   126,    21,    36,    65,    66,    21,    47,    59,
      118,    47,    59,    47,    46,    49,   126,    94,    41,    47,
       41,    47,    41,    47,    41,    47,    75,    76,    47,    91,
-      94,    93,    97,    97,    96,    94,    94,   100,   115,   119,
-     115,   115,   119,   119,   119,   119,   119,   119,   119,   119,
+      94,    21,    93,    97,    97,    96,    94,    94,   100,   115,
+     119,   115,   115,   119,   119,   119,   119,   119,   119,   119,
      119,   119,   119,   119,   119,   119,   119,   119,   119,   119,
-      21,   133,   119,    93,   119,   133,    21,   119,   114,    21,
-     120,   119,   119,   119,   119,    47,    59,   119,   119,   119,
-     119,    21,   119,   119,   119,   119,   119,   119,   119,   119,
-     119,   119,   105,   105,    21,   118,   118,   118,    22,    24,
-     143,   116,   115,    46,   115,    91,    94,    91,   133,   119,
-     119,    41,    41,    41,    41,   102,   116,    91,   104,   115,
-      29,    47,   116,    46,    94,   135,    21,   135,    91,   119,
-     119,   119,   119,   115,   115,    81,    47,   119,   115,   102,
-      21,   116,   116,   135,    82,   119,   115,   107,   115,    25,
-     116,   115,   116,    30,    31,   108,   113,   115,    30,    80,
-      21,   134,   116,   115,   114,   119,    80,   114,    94,   115,
-      81,   116,   115,   102,    21,    81,   115,    46,   115,    80,
-     116,    80,   115
+     119,    21,   135,   119,    93,   119,   135,    21,   119,   131,
+      21,   120,   119,   119,   119,   119,    47,    59,   119,   119,
+     119,   119,    21,   119,   119,   119,   119,   119,   119,   119,
+     119,   119,   119,   105,   105,    21,   118,   118,   118,    22,
+      24,   145,   116,   115,    46,   115,    91,    94,    91,   114,
+     119,   119,    41,    41,    41,    41,   102,   116,    91,   104,
+     115,    29,    47,   116,    46,    94,   137,    21,   137,   135,
+     119,   119,   119,   119,   115,   115,    81,    47,   119,   115,
+     102,    21,   116,   116,    91,    82,   119,   115,   107,   115,
+      25,   137,   115,   116,    30,    31,   108,   113,   115,    30,
+      80,    21,   136,   116,   116,   115,   114,   119,    80,   114,
+      94,   115,    81,   116,   115,   102,    21,    81,   115,    46,
+     115,    80,   116,    80,   115
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
@@ -1179,10 +1175,10 @@ static const yytype_uint8 yyr1[] =
      121,   121,   121,   121,   121,   121,   121,   121,   121,   122,
      122,   123,   123,   124,   124,   125,   125,   125,   125,   125,
      125,   126,   126,   127,   127,   127,   127,   128,   127,   130,
-     129,   129,   131,   129,   129,   129,   132,   133,   133,   133,
-     133,   134,   134,   134,   135,   136,   137,   137,   137,   138,
-     138,   139,   140,   140,   140,   140,   141,   141,   142,   142,
-     143,   143
+     131,   129,   129,   132,   129,   129,   129,   134,   133,   135,
+     135,   135,   135,   136,   136,   136,   137,   138,   139,   139,
+     139,   140,   140,   141,   142,   142,   142,   142,   143,   143,
+     144,   144,   145,   145
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -1201,10 +1197,10 @@ static const yytype_int8 yyr2[] =
        1,     2,     1,     2,     2,     2,     2,     4,     2,     1,
        3,     1,     3,     1,     3,     2,     2,     2,     2,     3,
        2,     3,     2,     2,     2,     3,     2,     0,     3,     0,
-       8,     2,     0,     7,     8,     6,     2,     0,     1,     3,
-       4,     0,     1,     3,     0,     2,     0,     1,     3,     1,
-       3,     3,     0,     1,     1,     1,     1,     3,     1,     3,
-       3,     3
+       0,     9,     2,     0,     7,     8,     6,     0,     3,     0,
+       1,     3,     4,     0,     1,     3,     0,     2,     0,     1,
+       3,     1,     3,     3,     0,     1,     1,     1,     1,     3,
+       1,     3,     3,     3
 };
 
 
@@ -1642,73 +1638,73 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
     case 18: /* BLTIN  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1646 "engines/director/lingo/lingo-gr.cpp"
+#line 1642 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 19: /* FBLTIN  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1652 "engines/director/lingo/lingo-gr.cpp"
+#line 1648 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 20: /* RBLTIN  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1658 "engines/director/lingo/lingo-gr.cpp"
+#line 1654 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 21: /* ID  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1664 "engines/director/lingo/lingo-gr.cpp"
+#line 1660 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 22: /* STRING  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1670 "engines/director/lingo/lingo-gr.cpp"
+#line 1666 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 23: /* HANDLER  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1676 "engines/director/lingo/lingo-gr.cpp"
+#line 1672 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 24: /* SYMBOL  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1682 "engines/director/lingo/lingo-gr.cpp"
+#line 1678 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 25: /* ENDCLAUSE  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1688 "engines/director/lingo/lingo-gr.cpp"
+#line 1684 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 26: /* tPLAYACCEL  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1694 "engines/director/lingo/lingo-gr.cpp"
+#line 1690 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 27: /* tMETHOD  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1700 "engines/director/lingo/lingo-gr.cpp"
+#line 1696 "engines/director/lingo/lingo-gr.cpp"
         break;
 
     case 28: /* THEOBJECTFIELD  */
 #line 131 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).objectfield).os; }
-#line 1706 "engines/director/lingo/lingo-gr.cpp"
+#line 1702 "engines/director/lingo/lingo-gr.cpp"
         break;
 
-    case 132: /* on  */
+    case 133: /* on  */
 #line 130 "engines/director/lingo/lingo-gr.y"
             { delete ((*yyvaluep).s); }
-#line 1712 "engines/director/lingo/lingo-gr.cpp"
+#line 1708 "engines/director/lingo/lingo-gr.cpp"
         break;
 
       default:
@@ -1978,7 +1974,7 @@ yyreduce:
   case 4:
 #line 137 "engines/director/lingo/lingo-gr.y"
                                 { yyerrok; }
-#line 1982 "engines/director/lingo/lingo-gr.cpp"
+#line 1978 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 8:
@@ -1989,7 +1985,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code);
 		delete (yyvsp[0].s); }
-#line 1993 "engines/director/lingo/lingo-gr.cpp"
+#line 1989 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 9:
@@ -1997,19 +1993,19 @@ yyreduce:
                                                 {
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[-2].code); }
-#line 2001 "engines/director/lingo/lingo-gr.cpp"
+#line 1997 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 10:
 #line 152 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->code1(LC::c_after); }
-#line 2007 "engines/director/lingo/lingo-gr.cpp"
+#line 2003 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 11:
 #line 153 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->code1(LC::c_before); }
-#line 2013 "engines/director/lingo/lingo-gr.cpp"
+#line 2009 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 12:
@@ -2020,7 +2016,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2024 "engines/director/lingo/lingo-gr.cpp"
+#line 2020 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 13:
@@ -2032,7 +2028,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2036 "engines/director/lingo/lingo-gr.cpp"
+#line 2032 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 14:
@@ -2043,7 +2039,7 @@ yyreduce:
 		g_lingo->code1(LC::c_assign);
 		(yyval.code) = (yyvsp[0].code);
 		delete (yyvsp[-2].s); }
-#line 2047 "engines/director/lingo/lingo-gr.cpp"
+#line 2043 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 15:
@@ -2055,7 +2051,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].e)[0]);
 		g_lingo->codeInt((yyvsp[-2].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2059 "engines/director/lingo/lingo-gr.cpp"
+#line 2055 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 16:
@@ -2066,7 +2062,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2070 "engines/director/lingo/lingo-gr.cpp"
+#line 2066 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 17:
@@ -2077,7 +2073,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-3].e)[0]);
 		g_lingo->codeInt((yyvsp[-3].e)[1]);
 		(yyval.code) = (yyvsp[0].code); }
-#line 2081 "engines/director/lingo/lingo-gr.cpp"
+#line 2077 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 18:
@@ -2088,7 +2084,7 @@ yyreduce:
 		g_lingo->codeInt((yyvsp[-2].objectfield).oe);
 		delete (yyvsp[-2].objectfield).os;
 		(yyval.code) = (yyvsp[0].code); }
-#line 2092 "engines/director/lingo/lingo-gr.cpp"
+#line 2088 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 28:
@@ -2099,7 +2095,7 @@ yyreduce:
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-5].code));
 		(*g_lingo->_currentScript)[(yyvsp[-5].code) + 1] = body;	/* body of loop */
 		(*g_lingo->_currentScript)[(yyvsp[-5].code) + 2] = end; }
-#line 2103 "engines/director/lingo/lingo-gr.cpp"
+#line 2099 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 29:
@@ -2116,7 +2112,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-9].code) + 3] = body;		/* body of loop */
 		(*g_lingo->_currentScript)[(yyvsp[-9].code) + 4] = inc;		/* increment */
 		(*g_lingo->_currentScript)[(yyvsp[-9].code) + 5] = end; }
-#line 2120 "engines/director/lingo/lingo-gr.cpp"
+#line 2116 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 30:
@@ -2133,7 +2129,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-10].code) + 3] = body;		/* body of loop */
 		(*g_lingo->_currentScript)[(yyvsp[-10].code) + 4] = inc;		/* increment */
 		(*g_lingo->_currentScript)[(yyvsp[-10].code) + 5] = end; }
-#line 2137 "engines/director/lingo/lingo-gr.cpp"
+#line 2133 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 31:
@@ -2143,7 +2139,7 @@ yyreduce:
 		WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code));
 		g_lingo->code1(STOP);
 		(*g_lingo->_currentScript)[(yyvsp[-2].code) + 1] = end; }
-#line 2147 "engines/director/lingo/lingo-gr.cpp"
+#line 2143 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 32:
@@ -2152,7 +2148,7 @@ yyreduce:
 		inst end;
 		WRITE_UINT32(&end, (yyvsp[-1].code) - (yyvsp[-3].code));
 		(*g_lingo->_currentScript)[(yyvsp[-3].code) + 1] = end; }
-#line 2156 "engines/director/lingo/lingo-gr.cpp"
+#line 2152 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 33:
@@ -2161,7 +2157,7 @@ yyreduce:
 		inst end;
 		WRITE_UINT32(&end, (yyvsp[0].code) - (yyvsp[-2].code));
 		(*g_lingo->_currentScript)[(yyvsp[-2].code) + 1] = end; }
-#line 2165 "engines/director/lingo/lingo-gr.cpp"
+#line 2161 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 34:
@@ -2169,7 +2165,7 @@ yyreduce:
                                                         {
 		(yyval.code) = g_lingo->code1(LC::c_tellcode);
 		g_lingo->code1(STOP); }
-#line 2173 "engines/director/lingo/lingo-gr.cpp"
+#line 2169 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 35:
@@ -2184,7 +2180,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-8].code) + 3] = end;	/* end, if cond fails */
 
 		g_lingo->processIf((yyvsp[-8].code), (yyvsp[-1].code) - (yyvsp[-8].code), 0); }
-#line 2188 "engines/director/lingo/lingo-gr.cpp"
+#line 2184 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 36:
@@ -2199,7 +2195,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-11].code) + 3] = end;	/* end, if cond fails */
 
 		g_lingo->processIf((yyvsp[-11].code), (yyvsp[-1].code) - (yyvsp[-11].code), (yyvsp[-3].code) - (yyvsp[-11].code)); }
-#line 2203 "engines/director/lingo/lingo-gr.cpp"
+#line 2199 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 39:
@@ -2210,7 +2206,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-5].code) + 1] = then;	/* thenpart */
 
 		g_lingo->codeLabel((yyvsp[-5].code)); }
-#line 2214 "engines/director/lingo/lingo-gr.cpp"
+#line 2210 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 40:
@@ -2225,7 +2221,7 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-10].code) + 3] = end;	/* end, if cond fails */
 
 		g_lingo->processIf((yyvsp[-10].code), (yyvsp[-1].code) - (yyvsp[-10].code), (yyvsp[-3].code) - (yyvsp[-10].code)); }
-#line 2229 "engines/director/lingo/lingo-gr.cpp"
+#line 2225 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 41:
@@ -2240,13 +2236,13 @@ yyreduce:
 		(*g_lingo->_currentScript)[(yyvsp[-6].code) + 3] = end;	/* end, if cond fails */
 
 		g_lingo->processIf((yyvsp[-6].code), (yyvsp[-1].code) - (yyvsp[-6].code), (yyvsp[-1].code) - (yyvsp[-6].code)); }
-#line 2244 "engines/director/lingo/lingo-gr.cpp"
+#line 2240 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 42:
 #line 324 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.code) = g_lingo->code3(LC::c_repeatwhilecode, STOP, STOP); }
-#line 2250 "engines/director/lingo/lingo-gr.cpp"
+#line 2246 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 43:
@@ -2256,7 +2252,7 @@ yyreduce:
 		g_lingo->code3(STOP, STOP, STOP);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2260 "engines/director/lingo/lingo-gr.cpp"
+#line 2256 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 44:
@@ -2266,7 +2262,7 @@ yyreduce:
 		g_lingo->code3(STOP, STOP, STOP);
 		g_lingo->code1(0);  // Do not skip end
 		g_lingo->codeLabel(0); }
-#line 2270 "engines/director/lingo/lingo-gr.cpp"
+#line 2266 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 45:
@@ -2277,25 +2273,25 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_ifcode);
 		g_lingo->code3(STOP, STOP, STOP);
 		g_lingo->code1(skipEnd); }
-#line 2281 "engines/director/lingo/lingo-gr.cpp"
+#line 2277 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 46:
 #line 345 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2287 "engines/director/lingo/lingo-gr.cpp"
+#line 2283 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 47:
 #line 347 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2293 "engines/director/lingo/lingo-gr.cpp"
+#line 2289 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 48:
 #line 349 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->_currentScript->size(); }
-#line 2299 "engines/director/lingo/lingo-gr.cpp"
+#line 2295 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 51:
@@ -2305,7 +2301,7 @@ yyreduce:
 		g_lingo->code1(STOP);
 		g_lingo->codeString((yyvsp[-1].s)->c_str());
 		delete (yyvsp[-1].s); }
-#line 2309 "engines/director/lingo/lingo-gr.cpp"
+#line 2305 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 52:
@@ -2313,7 +2309,7 @@ yyreduce:
                         {
 		(yyval.code) = g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt((yyvsp[0].i)); }
-#line 2317 "engines/director/lingo/lingo-gr.cpp"
+#line 2313 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 53:
@@ -2321,7 +2317,7 @@ yyreduce:
                         {
 		(yyval.code) = g_lingo->code1(LC::c_floatpush);
 		g_lingo->codeFloat((yyvsp[0].f)); }
-#line 2325 "engines/director/lingo/lingo-gr.cpp"
+#line 2321 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 54:
@@ -2330,7 +2326,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2334 "engines/director/lingo/lingo-gr.cpp"
+#line 2330 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 55:
@@ -2339,7 +2335,7 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2343 "engines/director/lingo/lingo-gr.cpp"
+#line 2339 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 56:
@@ -2348,13 +2344,13 @@ yyreduce:
 		(yyval.code) = g_lingo->code1(LC::c_eval);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2352 "engines/director/lingo/lingo-gr.cpp"
+#line 2348 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 58:
 #line 379 "engines/director/lingo/lingo-gr.y"
                  { (yyval.code) = (yyvsp[0].code); }
-#line 2358 "engines/director/lingo/lingo-gr.cpp"
+#line 2354 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 60:
@@ -2362,7 +2358,7 @@ yyreduce:
                                 {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2366 "engines/director/lingo/lingo-gr.cpp"
+#line 2362 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 61:
@@ -2370,7 +2366,7 @@ yyreduce:
                                 {
 		(yyval.code) = g_lingo->codeFunc((yyvsp[-3].s), (yyvsp[-1].narg));
 		delete (yyvsp[-3].s); }
-#line 2374 "engines/director/lingo/lingo-gr.cpp"
+#line 2370 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 62:
@@ -2383,7 +2379,7 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[0].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[0].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2387 "engines/director/lingo/lingo-gr.cpp"
+#line 2383 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 63:
@@ -2394,7 +2390,7 @@ yyreduce:
 		WRITE_UINT32(&e, (yyvsp[-1].e)[0]);
 		WRITE_UINT32(&f, (yyvsp[-1].e)[1]);
 		g_lingo->code2(e, f); }
-#line 2398 "engines/director/lingo/lingo-gr.cpp"
+#line 2394 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 64:
@@ -2404,193 +2400,193 @@ yyreduce:
 		g_lingo->codeString((yyvsp[0].objectfield).os->c_str());
 		g_lingo->codeInt((yyvsp[0].objectfield).oe);
 		delete (yyvsp[0].objectfield).os; }
-#line 2408 "engines/director/lingo/lingo-gr.cpp"
+#line 2404 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 66:
 #line 407 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_add); }
-#line 2414 "engines/director/lingo/lingo-gr.cpp"
+#line 2410 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 67:
 #line 408 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_sub); }
-#line 2420 "engines/director/lingo/lingo-gr.cpp"
+#line 2416 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 68:
 #line 409 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_mul); }
-#line 2426 "engines/director/lingo/lingo-gr.cpp"
+#line 2422 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 69:
 #line 410 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_div); }
-#line 2432 "engines/director/lingo/lingo-gr.cpp"
+#line 2428 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 70:
 #line 411 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_mod); }
-#line 2438 "engines/director/lingo/lingo-gr.cpp"
+#line 2434 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 71:
 #line 412 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gt); }
-#line 2444 "engines/director/lingo/lingo-gr.cpp"
+#line 2440 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 72:
 #line 413 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_lt); }
-#line 2450 "engines/director/lingo/lingo-gr.cpp"
+#line 2446 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 73:
 #line 414 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_eq); }
-#line 2456 "engines/director/lingo/lingo-gr.cpp"
+#line 2452 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 74:
 #line 415 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_neq); }
-#line 2462 "engines/director/lingo/lingo-gr.cpp"
+#line 2458 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 75:
 #line 416 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_ge); }
-#line 2468 "engines/director/lingo/lingo-gr.cpp"
+#line 2464 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 76:
 #line 417 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_le); }
-#line 2474 "engines/director/lingo/lingo-gr.cpp"
+#line 2470 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 77:
 #line 418 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_and); }
-#line 2480 "engines/director/lingo/lingo-gr.cpp"
+#line 2476 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 78:
 #line 419 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_or); }
-#line 2486 "engines/director/lingo/lingo-gr.cpp"
+#line 2482 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 79:
 #line 420 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_not); }
-#line 2492 "engines/director/lingo/lingo-gr.cpp"
+#line 2488 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 80:
 #line 421 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_ampersand); }
-#line 2498 "engines/director/lingo/lingo-gr.cpp"
+#line 2494 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 81:
 #line 422 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_concat); }
-#line 2504 "engines/director/lingo/lingo-gr.cpp"
+#line 2500 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 82:
 #line 423 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_contains); }
-#line 2510 "engines/director/lingo/lingo-gr.cpp"
+#line 2506 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 83:
 #line 424 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_starts); }
-#line 2516 "engines/director/lingo/lingo-gr.cpp"
+#line 2512 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 84:
 #line 425 "engines/director/lingo/lingo-gr.y"
                                     { (yyval.code) = (yyvsp[0].code); }
-#line 2522 "engines/director/lingo/lingo-gr.cpp"
+#line 2518 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 85:
 #line 426 "engines/director/lingo/lingo-gr.y"
                                     { (yyval.code) = (yyvsp[0].code); g_lingo->code1(LC::c_negate); }
-#line 2528 "engines/director/lingo/lingo-gr.cpp"
+#line 2524 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 86:
 #line 427 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = (yyvsp[-1].code); }
-#line 2534 "engines/director/lingo/lingo-gr.cpp"
+#line 2530 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 87:
 #line 428 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_intersects); }
-#line 2540 "engines/director/lingo/lingo-gr.cpp"
+#line 2536 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 88:
 #line 429 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_within); }
-#line 2546 "engines/director/lingo/lingo-gr.cpp"
+#line 2542 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 89:
 #line 430 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_charOf); }
-#line 2552 "engines/director/lingo/lingo-gr.cpp"
+#line 2548 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 90:
 #line 431 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_charToOf); }
-#line 2558 "engines/director/lingo/lingo-gr.cpp"
+#line 2554 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 91:
 #line 432 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_itemOf); }
-#line 2564 "engines/director/lingo/lingo-gr.cpp"
+#line 2560 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 92:
 #line 433 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_itemToOf); }
-#line 2570 "engines/director/lingo/lingo-gr.cpp"
+#line 2566 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 93:
 #line 434 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_lineOf); }
-#line 2576 "engines/director/lingo/lingo-gr.cpp"
+#line 2572 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 94:
 #line 435 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_lineToOf); }
-#line 2582 "engines/director/lingo/lingo-gr.cpp"
+#line 2578 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 95:
 #line 436 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_wordOf); }
-#line 2588 "engines/director/lingo/lingo-gr.cpp"
+#line 2584 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 96:
 #line 437 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_wordToOf); }
-#line 2594 "engines/director/lingo/lingo-gr.cpp"
+#line 2590 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 97:
@@ -2598,25 +2594,25 @@ yyreduce:
                                         {
 		g_lingo->codeFunc((yyvsp[-1].s), 1);
 		delete (yyvsp[-1].s); }
-#line 2602 "engines/director/lingo/lingo-gr.cpp"
+#line 2598 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 98:
 #line 443 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_printtop); }
-#line 2608 "engines/director/lingo/lingo-gr.cpp"
+#line 2604 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 101:
 #line 446 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_exitRepeat); }
-#line 2614 "engines/director/lingo/lingo-gr.cpp"
+#line 2610 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 102:
 #line 447 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_procret); }
-#line 2620 "engines/director/lingo/lingo-gr.cpp"
+#line 2616 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 106:
@@ -2624,19 +2620,19 @@ yyreduce:
                                         {
 		g_lingo->codeFunc((yyvsp[-1].s), (yyvsp[0].narg));
 		delete (yyvsp[-1].s); }
-#line 2628 "engines/director/lingo/lingo-gr.cpp"
+#line 2624 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 107:
 #line 454 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->code1(LC::c_open); }
-#line 2634 "engines/director/lingo/lingo-gr.cpp"
+#line 2630 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 108:
 #line 455 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code2(LC::c_voidpush, LC::c_open); }
-#line 2640 "engines/director/lingo/lingo-gr.cpp"
+#line 2636 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 109:
@@ -2645,7 +2641,7 @@ yyreduce:
 		g_lingo->code1(LC::c_global);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2649 "engines/director/lingo/lingo-gr.cpp"
+#line 2645 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 110:
@@ -2654,7 +2650,7 @@ yyreduce:
 		g_lingo->code1(LC::c_global);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2658 "engines/director/lingo/lingo-gr.cpp"
+#line 2654 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 111:
@@ -2663,7 +2659,7 @@ yyreduce:
 		g_lingo->code1(LC::c_property);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2667 "engines/director/lingo/lingo-gr.cpp"
+#line 2663 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 112:
@@ -2672,7 +2668,7 @@ yyreduce:
 		g_lingo->code1(LC::c_property);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2676 "engines/director/lingo/lingo-gr.cpp"
+#line 2672 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 113:
@@ -2681,7 +2677,7 @@ yyreduce:
 		g_lingo->code1(LC::c_instance);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2685 "engines/director/lingo/lingo-gr.cpp"
+#line 2681 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 114:
@@ -2690,25 +2686,25 @@ yyreduce:
 		g_lingo->code1(LC::c_instance);
 		g_lingo->codeString((yyvsp[0].s)->c_str());
 		delete (yyvsp[0].s); }
-#line 2694 "engines/director/lingo/lingo-gr.cpp"
+#line 2690 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 115:
 #line 491 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoloop); }
-#line 2700 "engines/director/lingo/lingo-gr.cpp"
+#line 2696 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 116:
 #line 492 "engines/director/lingo/lingo-gr.y"
                                                         { g_lingo->code1(LC::c_gotonext); }
-#line 2706 "engines/director/lingo/lingo-gr.cpp"
+#line 2702 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 117:
 #line 493 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->code1(LC::c_gotoprevious); }
-#line 2712 "engines/director/lingo/lingo-gr.cpp"
+#line 2708 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 118:
@@ -2717,7 +2713,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_goto); }
-#line 2721 "engines/director/lingo/lingo-gr.cpp"
+#line 2717 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 119:
@@ -2726,7 +2722,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_goto); }
-#line 2730 "engines/director/lingo/lingo-gr.cpp"
+#line 2726 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 120:
@@ -2735,13 +2731,13 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_goto); }
-#line 2739 "engines/director/lingo/lingo-gr.cpp"
+#line 2735 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 123:
 #line 510 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->code1(LC::c_playdone); }
-#line 2745 "engines/director/lingo/lingo-gr.cpp"
+#line 2741 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 124:
@@ -2750,7 +2746,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(1);
 		g_lingo->code1(LC::c_play); }
-#line 2754 "engines/director/lingo/lingo-gr.cpp"
+#line 2750 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 125:
@@ -2759,7 +2755,7 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(3);
 		g_lingo->code1(LC::c_play); }
-#line 2763 "engines/director/lingo/lingo-gr.cpp"
+#line 2759 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 126:
@@ -2768,13 +2764,13 @@ yyreduce:
 		g_lingo->code1(LC::c_intpush);
 		g_lingo->codeInt(2);
 		g_lingo->code1(LC::c_play); }
-#line 2772 "engines/director/lingo/lingo-gr.cpp"
+#line 2768 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 127:
 #line 523 "engines/director/lingo/lingo-gr.y"
                      { g_lingo->codeSetImmediate(true); }
-#line 2778 "engines/director/lingo/lingo-gr.cpp"
+#line 2774 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 128:
@@ -2783,16 +2779,22 @@ yyreduce:
 		g_lingo->codeSetImmediate(false);
 		g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg));
 		delete (yyvsp[-2].s); }
-#line 2787 "engines/director/lingo/lingo-gr.cpp"
+#line 2783 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 129:
 #line 553 "engines/director/lingo/lingo-gr.y"
-                { g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); }
-#line 2793 "engines/director/lingo/lingo-gr.cpp"
+             { g_lingo->_indef = kStateInArgs; }
+#line 2789 "engines/director/lingo/lingo-gr.cpp"
     break;
 
   case 130:
+#line 553 "engines/director/lingo/lingo-gr.y"
+                                                    { g_lingo->_currentFactory.clear(); }
+#line 2795 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 131:
 #line 554 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
@@ -2800,22 +2802,22 @@ yyreduce:
 		g_lingo->clearArgStack();
 		g_lingo->_indef = kStateNone;
 		delete (yyvsp[-6].s); }
-#line 2804 "engines/director/lingo/lingo-gr.cpp"
+#line 2806 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 131:
+  case 132:
 #line 560 "engines/director/lingo/lingo-gr.y"
                         { g_lingo->codeFactory(*(yyvsp[0].s)); delete (yyvsp[0].s); }
-#line 2810 "engines/director/lingo/lingo-gr.cpp"
+#line 2812 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 132:
+  case 133:
 #line 561 "engines/director/lingo/lingo-gr.y"
                   { g_lingo->_indef = kStateInArgs; }
-#line 2816 "engines/director/lingo/lingo-gr.cpp"
+#line 2818 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 133:
+  case 134:
 #line 562 "engines/director/lingo/lingo-gr.y"
                                                                         {
 		g_lingo->code1(LC::c_procret);
@@ -2823,10 +2825,10 @@ yyreduce:
 		g_lingo->clearArgStack();
 		g_lingo->_indef = kStateNone;
 		delete (yyvsp[-6].s); }
-#line 2827 "engines/director/lingo/lingo-gr.cpp"
+#line 2829 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 134:
+  case 135:
 #line 568 "engines/director/lingo/lingo-gr.y"
                                                                      {	// D3
 		g_lingo->code1(LC::c_procret);
@@ -2838,10 +2840,10 @@ yyreduce:
 		checkEnd((yyvsp[-1].s), (yyvsp[-7].s)->c_str(), false);
 		delete (yyvsp[-7].s);
 		delete (yyvsp[-1].s); }
-#line 2842 "engines/director/lingo/lingo-gr.cpp"
+#line 2844 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 135:
+  case 136:
 #line 578 "engines/director/lingo/lingo-gr.y"
                                                  {	// D4. No 'end' clause
 		g_lingo->code1(LC::c_procret);
@@ -2850,58 +2852,64 @@ yyreduce:
 		g_lingo->clearArgStack();
 		g_lingo->_ignoreMe = false;
 		delete (yyvsp[-5].s); }
-#line 2854 "engines/director/lingo/lingo-gr.cpp"
+#line 2856 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 136:
+  case 137:
 #line 586 "engines/director/lingo/lingo-gr.y"
-            { (yyval.s) = (yyvsp[0].s); g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; }
-#line 2860 "engines/director/lingo/lingo-gr.cpp"
+         { g_lingo->_indef = kStateInArgs; }
+#line 2862 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 137:
+  case 138:
+#line 586 "engines/director/lingo/lingo-gr.y"
+                                                { (yyval.s) = (yyvsp[0].s); g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; }
+#line 2868 "engines/director/lingo/lingo-gr.cpp"
+    break;
+
+  case 139:
 #line 588 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.narg) = 0; }
-#line 2866 "engines/director/lingo/lingo-gr.cpp"
+#line 2874 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 138:
+  case 140:
 #line 589 "engines/director/lingo/lingo-gr.y"
                                                 { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = 1; delete (yyvsp[0].s); }
-#line 2872 "engines/director/lingo/lingo-gr.cpp"
+#line 2880 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 139:
+  case 141:
 #line 590 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = (yyvsp[-2].narg) + 1; delete (yyvsp[0].s); }
-#line 2878 "engines/director/lingo/lingo-gr.cpp"
+#line 2886 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 140:
+  case 142:
 #line 591 "engines/director/lingo/lingo-gr.y"
                                 { g_lingo->codeArg((yyvsp[0].s)); (yyval.narg) = (yyvsp[-3].narg) + 1; delete (yyvsp[0].s); }
-#line 2884 "engines/director/lingo/lingo-gr.cpp"
+#line 2892 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 142:
+  case 144:
 #line 594 "engines/director/lingo/lingo-gr.y"
                                                 { delete (yyvsp[0].s); }
-#line 2890 "engines/director/lingo/lingo-gr.cpp"
+#line 2898 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 143:
+  case 145:
 #line 595 "engines/director/lingo/lingo-gr.y"
                                         { delete (yyvsp[0].s); }
-#line 2896 "engines/director/lingo/lingo-gr.cpp"
+#line 2904 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 144:
+  case 146:
 #line 597 "engines/director/lingo/lingo-gr.y"
                                         { g_lingo->codeArgStore(); g_lingo->_indef = kStateInDef; }
-#line 2902 "engines/director/lingo/lingo-gr.cpp"
+#line 2910 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 145:
+  case 147:
 #line 599 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code1(LC::c_call);
@@ -2910,113 +2918,113 @@ yyreduce:
 		WRITE_UINT32(&numpar, (yyvsp[0].narg));
 		g_lingo->code1(numpar);
 		delete (yyvsp[-1].s); }
-#line 2914 "engines/director/lingo/lingo-gr.cpp"
+#line 2922 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 146:
+  case 148:
 #line 607 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.narg) = 0; }
-#line 2920 "engines/director/lingo/lingo-gr.cpp"
+#line 2928 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 147:
+  case 149:
 #line 608 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.narg) = 1; }
-#line 2926 "engines/director/lingo/lingo-gr.cpp"
+#line 2934 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 148:
+  case 150:
 #line 609 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 2932 "engines/director/lingo/lingo-gr.cpp"
+#line 2940 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 149:
+  case 151:
 #line 611 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 1; }
-#line 2938 "engines/director/lingo/lingo-gr.cpp"
+#line 2946 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 150:
+  case 152:
 #line 612 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 2944 "engines/director/lingo/lingo-gr.cpp"
+#line 2952 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 151:
+  case 153:
 #line 614 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.code) = (yyvsp[-1].code); }
-#line 2950 "engines/director/lingo/lingo-gr.cpp"
+#line 2958 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 152:
+  case 154:
 #line 616 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.code) = g_lingo->code2(LC::c_arraypush, 0); }
-#line 2956 "engines/director/lingo/lingo-gr.cpp"
+#line 2964 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 153:
+  case 155:
 #line 617 "engines/director/lingo/lingo-gr.y"
                                                 { (yyval.code) = g_lingo->code2(LC::c_proparraypush, 0); }
-#line 2962 "engines/director/lingo/lingo-gr.cpp"
+#line 2970 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 154:
+  case 156:
 #line 618 "engines/director/lingo/lingo-gr.y"
                      { (yyval.code) = g_lingo->code1(LC::c_arraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 2968 "engines/director/lingo/lingo-gr.cpp"
+#line 2976 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 155:
+  case 157:
 #line 619 "engines/director/lingo/lingo-gr.y"
                          { (yyval.code) = g_lingo->code1(LC::c_proparraypush); (yyval.code) = g_lingo->codeInt((yyvsp[0].narg)); }
-#line 2974 "engines/director/lingo/lingo-gr.cpp"
+#line 2982 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 156:
+  case 158:
 #line 621 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 1; }
-#line 2980 "engines/director/lingo/lingo-gr.cpp"
+#line 2988 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 157:
+  case 159:
 #line 622 "engines/director/lingo/lingo-gr.y"
                                     { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 2986 "engines/director/lingo/lingo-gr.cpp"
+#line 2994 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 158:
+  case 160:
 #line 624 "engines/director/lingo/lingo-gr.y"
                                         { (yyval.narg) = 1; }
-#line 2992 "engines/director/lingo/lingo-gr.cpp"
+#line 3000 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 159:
+  case 161:
 #line 625 "engines/director/lingo/lingo-gr.y"
                                 { (yyval.narg) = (yyvsp[-2].narg) + 1; }
-#line 2998 "engines/director/lingo/lingo-gr.cpp"
+#line 3006 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 160:
+  case 162:
 #line 627 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code1(LC::c_symbolpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3007 "engines/director/lingo/lingo-gr.cpp"
+#line 3015 "engines/director/lingo/lingo-gr.cpp"
     break;
 
-  case 161:
+  case 163:
 #line 631 "engines/director/lingo/lingo-gr.y"
                                 {
 		g_lingo->code1(LC::c_stringpush);
 		g_lingo->codeString((yyvsp[-2].s)->c_str());
 		delete (yyvsp[-2].s); }
-#line 3016 "engines/director/lingo/lingo-gr.cpp"
+#line 3024 "engines/director/lingo/lingo-gr.cpp"
     break;
 
 
-#line 3020 "engines/director/lingo/lingo-gr.cpp"
+#line 3028 "engines/director/lingo/lingo-gr.cpp"
 
       default: break;
     }
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index 334ebfa..9a064ca 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -550,7 +550,7 @@ playfunc: tPLAY tDONE			{ g_lingo->code1(LC::c_playdone); }
 //
 // See also:
 //   on keyword
-defn: tMACRO ID { g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); }
+defn: tMACRO { g_lingo->_indef = kStateInArgs; } ID { g_lingo->_currentFactory.clear(); }
 			begin argdef '\n' argstore stmtlist 		{
 		g_lingo->code1(LC::c_procret);
 		g_lingo->define(*$ID, $begin, $argdef);
@@ -583,7 +583,7 @@ defn: tMACRO ID { g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear
 		g_lingo->_ignoreMe = false;
 		delete $on; }
 
-on:  tON ID { $$ = $ID; g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; }
+on:  tON { g_lingo->_indef = kStateInArgs; } ID { $$ = $ID; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; }
 
 argdef:  /* nothing */ 		{ $$ = 0; }
 	| ID					{ g_lingo->codeArg($ID); $$ = 1; delete $ID; }




More information about the Scummvm-git-logs mailing list