diff options
| -rw-r--r-- | engines/director/lingo/lingo-code.cpp | 9 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 1540 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.h | 16 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.y | 8 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-the.cpp | 4 | ||||
| -rw-r--r-- | engines/director/lingo/lingo.h | 2 | 
6 files changed, 806 insertions, 773 deletions
| diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp index c4ee5feeb1..c571d7cf6e 100644 --- a/engines/director/lingo/lingo-code.cpp +++ b/engines/director/lingo/lingo-code.cpp @@ -462,6 +462,15 @@ void Lingo::c_theentityassign() {  	g_lingo->setTheEntity(entity, id, field, d);  } +void Lingo::c_objectfieldassign() { +	Common::String object(g_lingo->readString()); +	int field  = g_lingo->readInt(); + +	Datum d = g_lingo->pop(); + +	g_lingo->setObjectField(object, field, d); +} +  void Lingo::c_swap() {  	Datum d2 = g_lingo->pop();  	Datum d1 = g_lingo->pop(); diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index 8cfbb58bcc..cea85112a3 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -97,10 +97,10 @@       STRING = 286,       HANDLER = 287,       SYMBOL = 288, -     THEOBJECTFIELD = 289, -     ENDCLAUSE = 290, -     tPLAYACCEL = 291, -     tMETHOD = 292, +     ENDCLAUSE = 289, +     tPLAYACCEL = 290, +     tMETHOD = 291, +     THEOBJECTFIELD = 292,       tDOWN = 293,       tELSE = 294,       tELSIF = 295, @@ -190,10 +190,10 @@  #define STRING 286  #define HANDLER 287  #define SYMBOL 288 -#define THEOBJECTFIELD 289 -#define ENDCLAUSE 290 -#define tPLAYACCEL 291 -#define tMETHOD 292 +#define ENDCLAUSE 289 +#define tPLAYACCEL 290 +#define tMETHOD 291 +#define THEOBJECTFIELD 292  #define tDOWN 293  #define tELSE 294  #define tELSIF 295 @@ -549,18 +549,18 @@ union yyalloc  #endif  /* YYFINAL -- State number of the termination state.  */ -#define YYFINAL  124 +#define YYFINAL  125  /* YYLAST -- Last index in YYTABLE.  */ -#define YYLAST   1621 +#define YYLAST   1624  /* YYNTOKENS -- Number of terminals.  */  #define YYNTOKENS  107  /* YYNNTS -- Number of nonterminals.  */  #define YYNNTS  41  /* YYNRULES -- Number of rules.  */ -#define YYNRULES  158 +#define YYNRULES  159  /* YYNRULES -- Number of states.  */ -#define YYNSTATES  339 +#define YYNSTATES  342  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  #define YYUNDEFTOK  2 @@ -615,21 +615,21 @@ static const yytype_uint8 yytranslate[] =  static const yytype_uint16 yyprhs[] =  {         0,     0,     3,     7,     9,    12,    13,    15,    17,    22, -      27,    32,    37,    42,    47,    52,    57,    63,    69,    71, -      73,    75,    77,    79,    81,    83,    85,    87,    94,   105, -     117,   121,   128,   133,   143,   156,   157,   160,   167,   179, -     187,   190,   194,   196,   198,   199,   200,   201,   204,   207, -     211,   213,   215,   217,   219,   221,   223,   225,   227,   229, -     232,   235,   240,   242,   245,   247,   251,   255,   259,   263, -     267,   271,   275,   279,   283,   287,   291,   295,   299,   302, -     306,   310,   314,   318,   321,   324,   328,   332,   337,   342, -     347,   354,   359,   366,   371,   378,   383,   390,   395,   402, -     404,   407,   410,   412,   414,   417,   419,   422,   425,   428, -     430,   433,   436,   438,   441,   446,   449,   453,   455,   459, -     461,   465,   467,   471,   474,   477,   480,   483,   487,   490, -     494,   497,   500,   503,   507,   510,   511,   515,   516,   525, -     528,   529,   537,   546,   553,   556,   557,   559,   563,   568, -     569,   571,   575,   576,   579,   580,   582,   586,   588 +      27,    32,    37,    42,    47,    52,    57,    63,    69,    74, +      76,    78,    80,    82,    84,    86,    88,    90,    92,    99, +     110,   122,   126,   133,   138,   148,   161,   162,   165,   172, +     184,   192,   195,   199,   201,   203,   204,   205,   206,   209, +     212,   216,   218,   220,   222,   224,   226,   228,   230,   232, +     234,   237,   240,   245,   247,   250,   252,   256,   260,   264, +     268,   272,   276,   280,   284,   288,   292,   296,   300,   304, +     307,   311,   315,   319,   323,   326,   329,   333,   337,   342, +     347,   352,   359,   364,   371,   376,   383,   388,   395,   400, +     407,   409,   412,   415,   417,   419,   422,   424,   427,   430, +     433,   435,   438,   441,   443,   446,   451,   454,   458,   460, +     464,   466,   470,   472,   476,   479,   482,   485,   488,   492, +     495,   499,   502,   505,   508,   512,   515,   516,   520,   521, +     530,   533,   534,   542,   551,   558,   561,   562,   564,   568, +     573,   574,   576,   580,   581,   584,   585,   587,   591,   593  };  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */ @@ -641,81 +641,81 @@ static const yytype_int16 yyrhs[] =       128,    -1,    52,   128,    75,   128,    -1,    54,    30,    68,       128,    -1,    54,    15,    68,   128,    -1,    54,    30,    56,       128,    -1,    54,    15,    56,   128,    -1,    54,    16,   128, -      56,   128,    -1,    54,    16,   127,    68,   128,    -1,   145, -      -1,   128,    -1,   130,    -1,   145,    -1,   128,    -1,   130, -      -1,   117,    -1,   111,    -1,   114,    -1,   118,   128,   123, -     124,   123,    91,    -1,   119,    68,   128,   123,    56,   128, -     123,   124,   123,    91,    -1,   119,    68,   128,   123,    38, -      56,   128,   123,   124,   123,    91,    -1,   125,   112,   123, -      -1,   126,   128,   101,   124,   123,    92,    -1,   126,   128, -      56,   128,    -1,   120,   128,   123,    55,   124,   123,   115, -     123,    90,    -1,   120,   128,   123,    55,   124,   123,   115, -      39,   122,   124,   123,    90,    -1,    -1,   116,   115,    -1, -     121,   128,   123,    55,   124,   123,    -1,   120,   128,   123, -      55,   111,   123,    39,   122,   111,   123,    90,    -1,   120, -     128,   123,    55,   111,   123,    90,    -1,    53,    59,    -1, -      53,    58,    30,    -1,    44,    -1,    40,    -1,    -1,    -1, -      -1,   124,   101,    -1,   124,   113,    -1,    57,    30,    55, -      -1,    86,    -1,    12,    -1,    17,    -1,    33,    -1,    31, -      -1,    30,    -1,   127,    -1,   129,    -1,    25,    -1,    26, -     128,    -1,    27,   147,    -1,    30,   102,   146,   103,    -1, -      15,    -1,    16,   128,    -1,   110,    -1,   128,    96,   128, -      -1,   128,    97,   128,    -1,   128,    98,   128,    -1,   128, -      99,   128,    -1,   128,    73,   128,    -1,   128,    94,   128, -      -1,   128,    93,   128,    -1,   128,    68,   128,    -1,   128, -      69,   128,    -1,   128,    66,   128,    -1,   128,    67,   128, -      -1,   128,    70,   128,    -1,   128,    71,   128,    -1,    72, -     128,    -1,   128,    95,   128,    -1,   128,    76,   128,    -1, -     128,    77,   128,    -1,   128,    78,   128,    -1,    96,   128, -      -1,    97,   128,    -1,   102,   128,   103,    -1,   104,   146, -     105,    -1,    83,   128,    84,   128,    -1,    83,   128,    85, -     128,    -1,    79,   128,    50,   128,    -1,    79,   128,    56, -     128,    50,   128,    -1,    80,   128,    50,   128,    -1,    80, -     128,    56,   128,    50,   128,    -1,    81,   128,    50,   128, -      -1,    81,   128,    56,   128,    50,   128,    -1,    82,   128, -      50,   128,    -1,    82,   128,    56,   128,    50,   128,    -1, -      89,   102,    30,   103,    -1,    89,   102,    30,   106,   146, -     103,    -1,    89,    -1,    29,   127,    -1,    52,   128,    -1, -     134,    -1,   136,    -1,    41,    53,    -1,    41,    -1,    42, -     131,    -1,    87,   132,    -1,    65,   133,    -1,    19,    -1, -      21,   128,    -1,    20,   128,    -1,    20,    -1,    22,   147, -      -1,    62,   128,    58,   128,    -1,    62,   128,    -1,    23, -      30,   146,    -1,    30,    -1,   131,   106,    30,    -1,    30, -      -1,   132,   106,    30,    -1,    30,    -1,   133,   106,    30, -      -1,    43,    46,    -1,    43,    49,    -1,    43,    51,    -1, -      43,   128,    -1,    43,   128,   135,    -1,    43,   135,    -1, -      50,    48,   128,    -1,    48,   128,    -1,    63,    64,    -1, -      63,   128,    -1,    63,   128,   135,    -1,    63,   135,    -1, -      -1,    36,   137,   146,    -1,    -1,    47,    30,   139,   122, -     142,   101,   144,   124,    -1,    61,    30,    -1,    -1,    37, -     140,   122,   142,   101,   144,   124,    -1,   141,   122,   142, -     101,   144,   124,    35,   143,    -1,   141,   122,   142,   101, -     144,   124,    -1,    88,    30,    -1,    -1,    30,    -1,   142, -     106,    30,    -1,   142,   101,   106,    30,    -1,    -1,    30, -      -1,   143,   106,    30,    -1,    -1,    30,   147,    -1,    -1, -     128,    -1,   146,   106,   128,    -1,   128,    -1,   147,   106, -     128,    -1 +      56,   128,    -1,    54,    16,   127,    68,   128,    -1,    54, +      37,    56,   128,    -1,   145,    -1,   128,    -1,   130,    -1, +     145,    -1,   128,    -1,   130,    -1,   117,    -1,   111,    -1, +     114,    -1,   118,   128,   123,   124,   123,    91,    -1,   119, +      68,   128,   123,    56,   128,   123,   124,   123,    91,    -1, +     119,    68,   128,   123,    38,    56,   128,   123,   124,   123, +      91,    -1,   125,   112,   123,    -1,   126,   128,   101,   124, +     123,    92,    -1,   126,   128,    56,   128,    -1,   120,   128, +     123,    55,   124,   123,   115,   123,    90,    -1,   120,   128, +     123,    55,   124,   123,   115,    39,   122,   124,   123,    90, +      -1,    -1,   116,   115,    -1,   121,   128,   123,    55,   124, +     123,    -1,   120,   128,   123,    55,   111,   123,    39,   122, +     111,   123,    90,    -1,   120,   128,   123,    55,   111,   123, +      90,    -1,    53,    59,    -1,    53,    58,    30,    -1,    44, +      -1,    40,    -1,    -1,    -1,    -1,   124,   101,    -1,   124, +     113,    -1,    57,    30,    55,    -1,    86,    -1,    12,    -1, +      17,    -1,    33,    -1,    31,    -1,    30,    -1,   127,    -1, +     129,    -1,    25,    -1,    26,   128,    -1,    27,   147,    -1, +      30,   102,   146,   103,    -1,    15,    -1,    16,   128,    -1, +     110,    -1,   128,    96,   128,    -1,   128,    97,   128,    -1, +     128,    98,   128,    -1,   128,    99,   128,    -1,   128,    73, +     128,    -1,   128,    94,   128,    -1,   128,    93,   128,    -1, +     128,    68,   128,    -1,   128,    69,   128,    -1,   128,    66, +     128,    -1,   128,    67,   128,    -1,   128,    70,   128,    -1, +     128,    71,   128,    -1,    72,   128,    -1,   128,    95,   128, +      -1,   128,    76,   128,    -1,   128,    77,   128,    -1,   128, +      78,   128,    -1,    96,   128,    -1,    97,   128,    -1,   102, +     128,   103,    -1,   104,   146,   105,    -1,    83,   128,    84, +     128,    -1,    83,   128,    85,   128,    -1,    79,   128,    50, +     128,    -1,    79,   128,    56,   128,    50,   128,    -1,    80, +     128,    50,   128,    -1,    80,   128,    56,   128,    50,   128, +      -1,    81,   128,    50,   128,    -1,    81,   128,    56,   128, +      50,   128,    -1,    82,   128,    50,   128,    -1,    82,   128, +      56,   128,    50,   128,    -1,    89,   102,    30,   103,    -1, +      89,   102,    30,   106,   146,   103,    -1,    89,    -1,    29, +     127,    -1,    52,   128,    -1,   134,    -1,   136,    -1,    41, +      53,    -1,    41,    -1,    42,   131,    -1,    87,   132,    -1, +      65,   133,    -1,    19,    -1,    21,   128,    -1,    20,   128, +      -1,    20,    -1,    22,   147,    -1,    62,   128,    58,   128, +      -1,    62,   128,    -1,    23,    30,   146,    -1,    30,    -1, +     131,   106,    30,    -1,    30,    -1,   132,   106,    30,    -1, +      30,    -1,   133,   106,    30,    -1,    43,    46,    -1,    43, +      49,    -1,    43,    51,    -1,    43,   128,    -1,    43,   128, +     135,    -1,    43,   135,    -1,    50,    48,   128,    -1,    48, +     128,    -1,    63,    64,    -1,    63,   128,    -1,    63,   128, +     135,    -1,    63,   135,    -1,    -1,    35,   137,   146,    -1, +      -1,    47,    30,   139,   122,   142,   101,   144,   124,    -1, +      61,    30,    -1,    -1,    36,   140,   122,   142,   101,   144, +     124,    -1,   141,   122,   142,   101,   144,   124,    34,   143, +      -1,   141,   122,   142,   101,   144,   124,    -1,    88,    30, +      -1,    -1,    30,    -1,   142,   106,    30,    -1,   142,   101, +     106,    30,    -1,    -1,    30,    -1,   143,   106,    30,    -1, +      -1,    30,   147,    -1,    -1,   128,    -1,   146,   106,   128, +      -1,   128,    -1,   147,   106,   128,    -1  };  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  static const yytype_uint16 yyrline[] =  { -       0,   130,   130,   131,   132,   135,   136,   137,   140,   146, -     149,   150,   151,   157,   164,   170,   177,   183,   191,   192, -     193,   196,   197,   198,   199,   202,   203,   208,   219,   236, -     248,   253,   255,   260,   270,   282,   283,   286,   294,   304, -     317,   320,   327,   334,   342,   345,   348,   349,   350,   353, -     359,   363,   366,   369,   372,   375,   381,   382,   383,   386, -     389,   390,   393,   401,   407,   408,   409,   410,   411,   412, -     413,   414,   415,   416,   417,   418,   419,   420,   421,   422, -     423,   424,   425,   426,   427,   428,   429,   430,   431,   432, -     433,   434,   435,   436,   437,   438,   439,   440,   441,   442, -     445,   450,   451,   452,   453,   454,   455,   456,   457,   458, -     461,   464,   467,   471,   472,   473,   474,   477,   478,   481, -     482,   485,   486,   497,   498,   499,   500,   504,   508,   514, -     515,   518,   519,   523,   527,   531,   531,   561,   561,   567, -     568,   568,   574,   582,   589,   591,   592,   593,   594,   597, -     598,   599,   602,   605,   613,   614,   615,   618,   619 +       0,   131,   131,   132,   133,   136,   137,   138,   141,   147, +     150,   151,   152,   158,   165,   171,   178,   184,   190,   197, +     198,   199,   202,   203,   204,   205,   208,   209,   214,   225, +     242,   254,   259,   261,   266,   276,   288,   289,   292,   300, +     310,   323,   326,   333,   340,   348,   351,   354,   355,   356, +     359,   365,   369,   372,   375,   378,   381,   387,   388,   389, +     392,   395,   396,   399,   407,   413,   414,   415,   416,   417, +     418,   419,   420,   421,   422,   423,   424,   425,   426,   427, +     428,   429,   430,   431,   432,   433,   434,   435,   436,   437, +     438,   439,   440,   441,   442,   443,   444,   445,   446,   447, +     448,   451,   456,   457,   458,   459,   460,   461,   462,   463, +     464,   467,   470,   473,   477,   478,   479,   480,   483,   484, +     487,   488,   491,   492,   503,   504,   505,   506,   510,   514, +     520,   521,   524,   525,   529,   533,   537,   537,   567,   567, +     573,   574,   574,   580,   588,   595,   597,   598,   599,   600, +     603,   604,   605,   608,   611,   619,   620,   621,   624,   625  };  #endif @@ -730,7 +730,7 @@ static const char *const yytname[] =    "BLTINNOARGS", "BLTINNOARGSORONE", "BLTINONEARG", "BLTINARGLIST",    "TWOWORDBUILTIN", "FBLTIN", "FBLTINNOARGS", "FBLTINONEARG",    "FBLTINARGLIST", "RBLTIN", "RBLTINONEARG", "ID", "STRING", "HANDLER", -  "SYMBOL", "THEOBJECTFIELD", "ENDCLAUSE", "tPLAYACCEL", "tMETHOD", +  "SYMBOL", "ENDCLAUSE", "tPLAYACCEL", "tMETHOD", "THEOBJECTFIELD",    "tDOWN", "tELSE", "tELSIF", "tEXIT", "tGLOBAL", "tGO", "tIF", "tINTO",    "tLOOP", "tMACRO", "tMOVIE", "tNEXT", "tOF", "tPREVIOUS", "tPUT",    "tREPEAT", "tSET", "tTHEN", "tTO", "tWHEN", "tWITH", "tWHILE", "tNLELSE", @@ -773,42 +773,42 @@ static const yytype_uint16 yytoknum[] =  static const yytype_uint8 yyr1[] =  {         0,   107,   108,   108,   108,   109,   109,   109,   110,   110, -     110,   110,   110,   110,   110,   110,   110,   110,   111,   111, -     111,   112,   112,   112,   112,   113,   113,   113,   113,   113, -     113,   113,   113,   114,   114,   115,   115,   116,   117,   117, -     118,   119,   120,   121,   122,   123,   124,   124,   124,   125, -     126,   127,   127,   127,   127,   127,   128,   128,   128,   128, +     110,   110,   110,   110,   110,   110,   110,   110,   110,   111, +     111,   111,   112,   112,   112,   112,   113,   113,   113,   113, +     113,   113,   113,   113,   114,   114,   115,   115,   116,   117, +     117,   118,   119,   120,   121,   122,   123,   124,   124,   124, +     125,   126,   127,   127,   127,   127,   127,   128,   128,   128,       128,   128,   128,   128,   128,   128,   128,   128,   128,   128,       128,   128,   128,   128,   128,   128,   128,   128,   128,   128,       128,   128,   128,   128,   128,   128,   128,   128,   128,   128,       128,   128,   128,   128,   128,   128,   128,   128,   128,   128, -     129,   130,   130,   130,   130,   130,   130,   130,   130,   130, -     130,   130,   130,   130,   130,   130,   130,   131,   131,   132, -     132,   133,   133,   134,   134,   134,   134,   134,   134,   135, -     135,   136,   136,   136,   136,   137,   136,   139,   138,   138, -     140,   138,   138,   138,   141,   142,   142,   142,   142,   143, -     143,   143,   144,   145,   146,   146,   146,   147,   147 +     128,   129,   130,   130,   130,   130,   130,   130,   130,   130, +     130,   130,   130,   130,   130,   130,   130,   130,   131,   131, +     132,   132,   133,   133,   134,   134,   134,   134,   134,   134, +     135,   135,   136,   136,   136,   136,   137,   136,   139,   138, +     138,   140,   138,   138,   138,   141,   142,   142,   142,   142, +     143,   143,   143,   144,   145,   146,   146,   146,   147,   147  };  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  static const yytype_uint8 yyr2[] =  {         0,     2,     3,     1,     2,     0,     1,     1,     4,     4, -       4,     4,     4,     4,     4,     4,     5,     5,     1,     1, -       1,     1,     1,     1,     1,     1,     1,     6,    10,    11, -       3,     6,     4,     9,    12,     0,     2,     6,    11,     7, -       2,     3,     1,     1,     0,     0,     0,     2,     2,     3, -       1,     1,     1,     1,     1,     1,     1,     1,     1,     2, -       2,     4,     1,     2,     1,     3,     3,     3,     3,     3, -       3,     3,     3,     3,     3,     3,     3,     3,     2,     3, -       3,     3,     3,     2,     2,     3,     3,     4,     4,     4, -       6,     4,     6,     4,     6,     4,     6,     4,     6,     1, -       2,     2,     1,     1,     2,     1,     2,     2,     2,     1, -       2,     2,     1,     2,     4,     2,     3,     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 +       4,     4,     4,     4,     4,     4,     5,     5,     4,     1, +       1,     1,     1,     1,     1,     1,     1,     1,     6,    10, +      11,     3,     6,     4,     9,    12,     0,     2,     6,    11, +       7,     2,     3,     1,     1,     0,     0,     0,     2,     2, +       3,     1,     1,     1,     1,     1,     1,     1,     1,     1, +       2,     2,     4,     1,     2,     1,     3,     3,     3,     3, +       3,     3,     3,     3,     3,     3,     3,     3,     3,     2, +       3,     3,     3,     3,     2,     2,     3,     3,     4,     4, +       4,     6,     4,     6,     4,     6,     4,     6,     4,     6, +       1,     2,     2,     1,     1,     2,     1,     2,     2,     2, +       1,     2,     2,     1,     2,     4,     2,     3,     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  };  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -816,101 +816,103 @@ static const yytype_uint8 yyr2[] =     means the default is an error.  */  static const yytype_uint8 yydefact[] =  { -       0,     0,    51,    62,     0,    52,   109,   112,     0,     0, -       0,    58,     0,     0,     0,    55,    54,    53,   135,   140, -     105,     0,     0,    42,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,    50, -       0,     0,    99,     0,     0,     0,   154,     0,     3,    64, -      25,     7,    26,     0,     0,     0,     0,     0,    56,    19, -      57,    20,   102,   103,     6,    44,    18,     4,    55,     0, -      63,   111,   110,   157,   113,   154,    59,    60,    55,   100, -     154,   153,   154,    44,   104,   117,   106,   123,     0,   124, -       0,   125,   126,   128,   137,   101,     0,    40,     0,     0, -       0,     0,   139,   115,   131,   132,   134,   121,   108,    78, -       0,     0,     0,     0,     0,   119,   107,   144,     0,    83, -      84,     0,   155,     0,     1,     5,    45,     0,    45,    45, -      24,     0,    22,    23,    21,     0,     0,     0,     0,     0, +       0,     0,    52,    63,     0,    53,   110,   113,     0,     0, +       0,    59,     0,     0,     0,    56,    55,    54,   136,   141, +     106,     0,     0,    43,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,    51, +       0,     0,   100,     0,     0,     0,   155,     0,     3,    65, +      26,     7,    27,     0,     0,     0,     0,     0,    57,    20, +      58,    21,   103,   104,     6,    45,    19,     4,    56,     0, +      64,   112,   111,   158,   114,   155,    60,    61,    56,   101, +     155,   154,   155,    45,   105,   118,   107,   124,     0,   125, +       0,   126,   127,   129,   138,   102,     0,    41,     0,     0, +       0,     0,     0,   140,   116,   132,   133,   135,   122,   109, +      79,     0,     0,     0,     0,     0,   120,   108,   145,     0, +      84,    85,     0,   156,     0,     1,     5,    46,     0,    46, +      46,    25,     0,    23,    24,    22,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,   145,   154,     0,     0,   116,   155,     0, -     136,   145,     0,   130,     0,   127,    44,     0,     0,     0, -      41,     0,     0,    56,     0,     0,     0,    49,     0,   133, -       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,    85,    86,     0,     2,    46,    45,     0, -      30,    45,     0,    46,    74,    75,    72,    73,    76,    77, -      69,    80,    81,    82,    71,    70,    79,    65,    66,    67, -      68,   146,     0,   158,    61,     0,   118,   129,   145,     8, -       9,    10,    11,    15,    13,     0,     0,    14,    12,   114, -     122,    89,     0,    91,     0,    93,     0,    95,     0,    87, -      88,   120,    97,   154,   156,    45,     0,    46,     0,    32, -      45,   152,     0,   152,     0,    17,    16,     0,     0,     0, -       0,     0,    47,    48,     0,     0,     0,    45,     0,     0, -       0,    46,   147,    46,   152,    90,    92,    94,    96,    98, -      27,     0,    45,    35,    45,    31,   148,   143,   141,    46, -      45,    46,    43,    45,    35,     0,     0,   149,   138,    46, -      45,    44,     0,    36,    45,    44,    39,   150,   142,    45, -       0,    46,    33,     0,     0,     0,     0,    28,    45,    46, -      45,   151,    29,     0,    45,     0,    34,    37,    38 +       0,     0,     0,     0,   146,   155,     0,     0,   117,   156, +       0,   137,   146,     0,   131,     0,   128,    45,     0,     0, +       0,    42,     0,     0,    57,     0,     0,     0,     0,    50, +       0,   134,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,    86,    87,     0,     2,    47, +      46,     0,    31,    46,     0,    47,    75,    76,    73,    74, +      77,    78,    70,    81,    82,    83,    72,    71,    80,    66, +      67,    68,    69,   147,     0,   159,    62,     0,   119,   130, +     146,     8,     9,    10,    11,    15,    13,     0,     0,    14, +      12,    18,   115,   123,    90,     0,    92,     0,    94,     0, +      96,     0,    88,    89,   121,    98,   155,   157,    46,     0, +      47,     0,    33,    46,   153,     0,   153,     0,    17,    16, +       0,     0,     0,     0,     0,    48,    49,     0,     0,     0, +      46,     0,     0,     0,    47,   148,    47,   153,    91,    93, +      95,    97,    99,    28,     0,    46,    36,    46,    32,   149, +     144,   142,    47,    46,    47,    44,    46,    36,     0,     0, +     150,   139,    47,    46,    45,     0,    37,    46,    45,    40, +     151,   143,    46,     0,    47,    34,     0,     0,     0,     0, +      29,    46,    47,    46,   152,    30,     0,    46,     0,    35, +      38,    39  };  /* YYDEFGOTO[NTERM-NUM].  */  static const yytype_int16 yydefgoto[] =  { -      -1,    47,    48,    49,    50,   129,   273,    52,   303,   304, -     130,    53,    54,    55,   305,   153,   197,   255,    56,    57, -      58,    59,    60,    61,    86,   116,   108,    62,    93,    63, -      82,    64,   166,    83,    65,   222,   318,   281,    66,   159, +      -1,    47,    48,    49,    50,   130,   276,    52,   306,   307, +     131,    53,    54,    55,   308,   154,   199,   258,    56,    57, +      58,    59,    60,    61,    86,   117,   109,    62,    93,    63, +      82,    64,   167,    83,    65,   224,   321,   284,    66,   160,        74  };  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing     STATE-NUM.  */ -#define YYPACT_NINF -265 +#define YYPACT_NINF -266  static const yytype_int16 yypact[] =  { -     312,   -42,  -265,  -265,   972,  -265,  -265,   972,   972,   972, -     -10,  -265,   972,   972,    58,  1005,  -265,  -265,  -265,  -265, -      16,    20,   850,  -265,    43,   972,    24,    42,    70,    76, -     972,   911,    78,   972,   972,   972,   972,   972,   972,  -265, -      80,    81,    10,   972,   972,   972,   972,     6,  -265,  -265, -    -265,  -265,  -265,   972,    45,   972,   676,   972,  -265,  1522, -    -265,  -265,  -265,  -265,  -265,  -265,  -265,  -265,    12,   972, -    1522,  1522,  1522,  1522,     9,   972,  1522,     9,  -265,  -265, -     972,     9,   972,  -265,  -265,  -265,    11,  -265,   972,  -265, -      68,  -265,  1058,  -265,  -265,  1044,    88,  -265,    -1,   972, -       0,    64,  -265,  1416,  -265,  1058,  -265,  -265,    18,  -265, -    1094,  1128,  1162,  1196,  1488,  -265,    19,  -265,    92,  -265, -    -265,  1450,  1522,    -3,  -265,   403,  1522,   972,  1522,  -265, -    -265,   972,  1522,  -265,  -265,  1366,   972,   972,   972,   972, -     972,   972,   972,   972,   972,   972,   972,   972,   972,   972, -     972,   972,   972,    98,   972,  1044,   972,    23,  1450,   -13, -      23,    98,   100,  1522,   972,  -265,  -265,    75,   972,   972, -    -265,   972,   972,    63,  1402,   972,   972,  -265,   972,  -265, -     119,   972,   972,   972,   972,   972,   972,   972,   972,   972, -     972,   121,    -7,  -265,  -265,   972,  -265,  -265,  1522,    99, -    -265,  1522,   972,  -265,   -51,   -51,   -51,   -51,   143,   143, -    -265,   -35,   -51,   -51,   -51,   -51,   -35,   -19,   -19,  -265, -    -265,  -265,   -82,  1522,  -265,   -78,  -265,  1522,    98,  -265, -    -265,  1522,  1522,  1522,   -51,   972,   972,  1522,   -51,  1522, -    -265,  1522,  1230,  1522,  1264,  1522,  1298,  1522,  1332,  1522, -    1522,  -265,  -265,   972,  1522,   585,   -21,  -265,   101,  1522, -     585,    47,   125,    47,   -20,   -51,  1522,   972,   972,   972, -     972,    -5,  -265,  -265,    66,   102,   972,   585,   767,    67, -     131,  -265,  -265,  -265,    47,  1522,  1522,  1522,  1522,  -265, -    -265,   972,  1522,   122,  -265,  -265,  -265,   494,   585,  -265, -    1522,  -265,  -265,   127,   122,   972,   -24,   139,   585,  -265, -     585,  -265,    83,  -265,  1522,  -265,  -265,  -265,    69,   585, -      85,  -265,  -265,   115,   767,   158,   103,  -265,   585,  -265, -    -265,  -265,  -265,   105,   585,   106,  -265,  -265,  -265 +     315,   -77,  -266,  -266,   975,  -266,  -266,   975,   975,   975, +     -11,  -266,   975,   975,    42,  1008,  -266,  -266,  -266,  -266, +      -3,    30,   853,  -266,    38,   975,    46,    40,    57,    64, +     975,   914,    69,   975,   975,   975,   975,   975,   975,  -266, +      80,    81,    10,   975,   975,   975,   975,     2,  -266,  -266, +    -266,  -266,  -266,   975,    45,   975,   679,   975,  -266,  1525, +    -266,  -266,  -266,  -266,  -266,  -266,  -266,  -266,    12,   975, +    1525,  1525,  1525,  1525,     9,   975,  1525,     9,  -266,  -266, +     975,     9,   975,  -266,  -266,  -266,    13,  -266,   975,  -266, +      68,  -266,  1061,  -266,  -266,  1047,    88,  -266,     1,   975, +      11,    61,    65,  -266,  1419,  -266,  1061,  -266,  -266,    17, +    -266,  1097,  1131,  1165,  1199,  1491,  -266,    19,  -266,    96, +    -266,  -266,  1453,  1525,     3,  -266,   406,  1525,   975,  1525, +    -266,  -266,   975,  1525,  -266,  -266,  1369,   975,   975,   975, +     975,   975,   975,   975,   975,   975,   975,   975,   975,   975, +     975,   975,   975,   975,    97,   975,  1047,   975,    23,  1453, +     -23,    23,    97,   100,  1525,   975,  -266,  -266,    77,   975, +     975,  -266,   975,   975,    63,  1405,   975,   975,   975,  -266, +     975,  -266,   120,   975,   975,   975,   975,   975,   975,   975, +     975,   975,   975,   122,   -10,  -266,  -266,   975,  -266,  -266, +    1525,    99,  -266,  1525,   975,  -266,   -51,   -51,   -51,   -51, +     130,   130,  -266,    -7,   -51,   -51,   -51,   -51,    -7,   -35, +     -35,  -266,  -266,  -266,   -86,  1525,  -266,   -78,  -266,  1525, +      97,  -266,  -266,  1525,  1525,  1525,   -51,   975,   975,  1525, +     -51,  1525,  1525,  -266,  1525,  1233,  1525,  1267,  1525,  1301, +    1525,  1335,  1525,  1525,  -266,  -266,   975,  1525,   588,   -21, +    -266,   101,  1525,   588,    49,   127,    49,   -20,   -51,  1525, +     975,   975,   975,   975,    -5,  -266,  -266,    67,   103,   975, +     588,   770,    70,   133,  -266,  -266,  -266,    49,  1525,  1525, +    1525,  1525,  -266,  -266,   975,  1525,   131,  -266,  -266,  -266, +     497,   588,  -266,  1525,  -266,  -266,   121,   131,   975,   -29, +     137,   588,  -266,   588,  -266,    85,  -266,  1525,  -266,  -266, +    -266,    71,   588,    79,  -266,  -266,   123,   770,   159,   110, +    -266,   588,  -266,  -266,  -266,  -266,   104,   588,   112,  -266, +    -266,  -266  };  /* YYPGOTO[NTERM-NUM].  */  static const yytype_int16 yypgoto[] =  { -    -265,  -265,    72,  -265,  -264,  -265,     1,  -265,  -112,  -265, -    -265,  -265,  -265,   144,  -265,   -81,    -8,   -94,  -265,  -265, -      -2,    -4,    32,   145,  -265,  -265,  -265,  -265,   -18,  -265, -    -265,  -265,  -265,  -265,  -265,  -151,  -265,  -247,   146,   -39, -      79 +    -266,  -266,    78,  -266,  -265,  -266,     6,  -266,  -117,  -266, +    -266,  -266,  -266,   135,  -266,   -82,    -8,   -41,  -266,  -266, +      -2,    -4,    37,   153,  -266,  -266,  -266,  -266,   -18,  -266, +    -266,  -266,  -266,  -266,  -266,  -148,  -266,  -229,   154,   -39, +      87  };  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If @@ -920,336 +922,336 @@ static const yytype_int16 yypgoto[] =  #define YYTABLE_NINF -6  static const yytype_int16 yytable[] =  { -      70,    51,   161,    71,    72,    73,   124,   123,    76,    73, -     225,    73,    79,   106,   294,   315,   283,   275,    92,   261, -      75,    95,   142,   263,   262,   143,   103,   105,   262,   109, -     110,   111,   112,   113,   114,   276,   157,   299,   142,   119, -     120,   121,   122,   160,   148,   149,   150,   151,   152,   126, -      85,   128,   132,   135,   142,   171,   175,    98,    99,    67, -     330,   149,   150,   151,   152,   155,   316,   172,   176,    84, -       2,   122,   100,    94,   165,     5,   158,   264,   122,   151, -     152,   284,    96,    97,   163,   228,   262,   179,    78,    16, -     224,    17,    77,   195,    81,   174,   252,   173,   289,   253, -     101,   195,   194,   195,    14,   229,   102,   125,   107,   260, -     115,   117,   118,   127,   154,   156,   164,   162,   170,   177, -     199,   200,   192,   198,   180,   191,    51,   201,   221,   195, -     226,   235,   204,   205,   206,   207,   208,   209,   210,   211, -     212,   213,   214,   215,   216,   217,   218,   219,   220,   240, -     122,   251,   223,   280,   257,   282,   278,   290,   291,   295, -     227,   296,   302,   277,   231,   232,   311,   233,   234,   317, -     329,   237,   238,   322,   239,   325,   327,   241,   242,   243, -     244,   245,   246,   247,   248,   249,   250,   297,   331,   298, -     256,   254,   313,   258,   332,   336,   338,   196,   259,   230, -     131,   133,   134,     0,     0,   308,     0,   310,     0,   136, -     137,   138,   139,     0,   271,   319,   142,     0,     0,   143, -     144,   145,     0,     0,     0,     0,     0,   328,     0,     0, -     321,   265,   266,     0,   324,   334,   146,   147,   148,   149, -     150,   151,   152,     0,     0,     0,     0,   274,     0,   122, -       0,     0,   279,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,   285,   286,   287,   288,     0,     0,   293, -       0,     0,   292,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,   301,     0,   306,   300,     0,     0, -       0,     0,   309,     0,     0,   312,     0,     0,     0,     0, -       0,   314,   320,     0,     0,     0,   323,     0,     0,     0, -       0,   326,    -5,     1,     0,     0,     0,     0,     0,     0, -     333,     0,   335,     0,     2,     0,   337,     3,     4,     5, -       0,     6,     7,     8,     9,    10,     0,    11,    12,    13, -       0,    14,    15,    16,     0,    17,     0,     0,    18,    19, -       0,     0,     0,    20,    21,    22,    23,     0,     0,    24, -       0,     0,     0,     0,    25,    26,    27,     0,     0,    28, -       0,     0,     0,    29,    30,    31,     0,    32,     0,     0, -       0,     0,     0,     0,    33,     0,     0,     0,     0,     0, -       0,    34,    35,    36,    37,    38,     0,     0,    39,    40, -      41,    42,     0,     0,     0,     0,     0,     0,    43,    44, -       0,     0,     0,    -5,    45,     2,    46,     0,     3,     4, -       5,     0,     6,     7,     8,     9,    10,     0,    11,    12, -      13,     0,    14,    15,    16,     0,    17,     0,     0,    18, -      19,     0,     0,     0,    20,    21,    22,    23,     0,     0, -      24,     0,     0,     0,     0,    25,    26,    27,     0,     0, -      28,     0,     0,     0,    29,    30,    31,     0,    32,     0, -       0,     0,     0,     0,     0,    33,     0,     0,     0,     0, -       0,     0,    34,    35,    36,    37,    38,     0,     0,    39, -      40,    41,    42,     0,     0,     0,     0,     0,     0,    43, -      44,     0,     0,     0,     0,    45,     2,    46,     0,     3, -       4,     5,     0,     6,     7,     8,     9,    10,     0,    11, -      12,    13,     0,    14,    15,    16,     0,    17,     0,   307, -      18,     0,     0,     0,     0,    20,    21,    22,    23,     0, -       0,     0,     0,     0,     0,     0,    25,    26,    27,     0, -       0,    28,     0,     0,     0,     0,    30,    31,     0,    32, -       0,     0,     0,     0,     0,     0,    33,     0,     0,     0, -       0,     0,     0,    34,    35,    36,    37,    38,     0,     0, -      39,    40,     0,    42,     0,     0,     0,     0,     0,     0, -      43,    44,     0,     0,     0,   272,    45,     2,    46,     0, +      70,   162,   125,    71,    72,    73,    51,   124,    76,    73, +     318,    73,    79,   107,   227,   264,   297,   278,    92,    75, +     265,    95,   143,   266,    67,   144,   104,   106,   265,   110, +     111,   112,   113,   114,   115,   279,   158,   286,   143,   120, +     121,   122,   123,   161,   149,   150,   151,   152,   153,   127, +      84,   129,   133,   136,     2,    98,    99,   172,   302,     5, +      85,   319,   333,   152,   153,   156,   143,   176,    94,   173, +     100,   123,    78,    16,   166,    17,   159,   101,   123,   177, +     226,   287,   267,   197,   164,   230,   265,   102,   181,   150, +     151,   152,   153,   255,   103,   175,   256,   174,   292,   108, +      77,   197,    81,   126,    96,    97,    14,   231,   196,   197, +     116,   118,   119,   128,   155,   157,   165,   178,   171,   163, +     179,   201,   202,   182,   200,   193,   194,   223,   203,   197, +     228,   237,    51,   206,   207,   208,   209,   210,   211,   212, +     213,   214,   215,   216,   217,   218,   219,   220,   221,   222, +     243,   123,   254,   225,   260,   283,   281,   285,   293,   294, +     314,   229,   298,   299,   263,   233,   234,   320,   235,   236, +     330,   305,   239,   240,   241,   325,   242,   328,   332,   244, +     245,   246,   247,   248,   249,   250,   251,   252,   253,   334, +     316,   132,   259,   257,   339,   261,   137,   138,   139,   140, +     262,   335,   341,   143,   198,   232,   144,   145,   146,   134, +     135,     0,     0,     0,     0,     0,     0,   274,     0,   280, +       0,     0,     0,   147,   148,   149,   150,   151,   152,   153, +       0,     0,   324,   268,   269,     0,   327,     0,     0,     0, +       0,     0,     0,   300,     0,   301,     0,     0,     0,     0, +     277,     0,   123,     0,     0,   282,     0,     0,     0,     0, +       0,   311,     0,   313,     0,     0,   288,   289,   290,   291, +       0,   322,   296,     0,     0,   295,     0,     0,     0,     0, +       0,     0,     0,   331,     0,     0,     0,   304,     0,   309, +     303,   337,     0,     0,     0,   312,     0,     0,   315,     0, +       0,     0,     0,     0,   317,   323,     0,     0,     0,   326, +       0,     0,     0,     0,   329,    -5,     1,     0,     0,     0, +       0,     0,     0,   336,     0,   338,     0,     2,     0,   340,         3,     4,     5,     0,     6,     7,     8,     9,    10,     0,        11,    12,    13,     0,    14,    15,    16,     0,    17,     0, -       0,    18,     0,     0,     0,     0,    20,    21,    22,    23, -       0,     0,     0,     0,     0,     0,     0,    25,    26,    27, -       0,     0,    28,     0,     0,     0,     0,    30,    31,     0, +      18,    19,     0,     0,     0,     0,    20,    21,    22,    23, +       0,     0,    24,     0,     0,     0,     0,    25,    26,    27, +       0,     0,    28,     0,     0,     0,    29,    30,    31,     0,        32,     0,     0,     0,     0,     0,     0,    33,     0,     0,         0,     0,     0,     0,    34,    35,    36,    37,    38,     0, -       0,    39,    40,     0,    42,     0,     0,     0,     0,     0, -       0,    43,    44,     0,     0,     0,   272,    45,     2,    46, +       0,    39,    40,    41,    42,     0,     0,     0,     0,     0, +       0,    43,    44,     0,     0,     0,    -5,    45,     2,    46,         0,     3,     4,     5,     0,     6,     7,     8,     9,    10,         0,    11,    12,    13,     0,    14,    15,    16,     0,    17, -       0,     0,    18,     0,     0,     0,     0,    20,    21,    22, -      23,     0,     0,     0,     0,     0,     0,     0,    25,     0, -      27,     0,     0,     0,     0,     0,     0,     0,    30,    31, +       0,    18,    19,     0,     0,     0,     0,    20,    21,    22, +      23,     0,     0,    24,     0,     0,     0,     0,    25,    26, +      27,     0,     0,    28,     0,     0,     0,    29,    30,    31,         0,    32,     0,     0,     0,     0,     0,     0,    33,     0,         0,     0,     0,     0,     0,    34,    35,    36,    37,    38, -       0,     0,     0,    40,     0,    42,     0,     0,     0,     0, +       0,     0,    39,    40,    41,    42,     0,     0,     0,     0,         0,     0,    43,    44,     0,     0,     0,     0,    45,     2,        46,     0,     3,     4,     5,     0,     6,     7,     8,     9,        10,     0,    11,    12,    13,     0,    14,    15,    16,     0, -      17,     0,     0,    18,     0,     0,     0,     0,    20,    21, -      22,     0,     0,     0,     0,     0,     0,     0,     0,    25, -       0,    27,     0,     0,     0,     0,     0,     0,     0,    30, +      17,   310,    18,     0,     0,     0,     0,     0,    20,    21, +      22,    23,     0,     0,     0,     0,     0,     0,     0,    25, +      26,    27,     0,     0,    28,     0,     0,     0,     0,    30,        31,     0,    32,     0,     0,     0,     0,     0,     0,    33,         0,     0,     0,     0,     0,     0,    34,    35,    36,    37, -      38,     0,     0,     0,    40,     0,    42,     0,     0,     0, -       0,     0,     2,    43,    44,     3,     4,     5,     0,    45, -       0,    46,     0,     0,     0,    11,    12,    13,     0,    14, -      68,    16,     0,    17,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,    87,     0,    88,    89, -      90,    91,    69,     0,    27,     0,     0,     0,     0,     0, +      38,     0,     0,    39,    40,     0,    42,     0,     0,     0, +       0,     0,     0,    43,    44,     0,     0,     0,   275,    45, +       2,    46,     0,     3,     4,     5,     0,     6,     7,     8, +       9,    10,     0,    11,    12,    13,     0,    14,    15,    16, +       0,    17,     0,    18,     0,     0,     0,     0,     0,    20, +      21,    22,    23,     0,     0,     0,     0,     0,     0,     0, +      25,    26,    27,     0,     0,    28,     0,     0,     0,     0, +      30,    31,     0,    32,     0,     0,     0,     0,     0,     0, +      33,     0,     0,     0,     0,     0,     0,    34,    35,    36, +      37,    38,     0,     0,    39,    40,     0,    42,     0,     0, +       0,     0,     0,     0,    43,    44,     0,     0,     0,   275, +      45,     2,    46,     0,     3,     4,     5,     0,     6,     7, +       8,     9,    10,     0,    11,    12,    13,     0,    14,    15, +      16,     0,    17,     0,    18,     0,     0,     0,     0,     0, +      20,    21,    22,    23,     0,     0,     0,     0,     0,     0, +       0,    25,     0,    27,     0,     0,     0,     0,     0,     0, +       0,    30,    31,     0,    32,     0,     0,     0,     0,     0, +       0,    33,     0,     0,     0,     0,     0,     0,    34,    35, +      36,    37,    38,     0,     0,     0,    40,     0,    42,     0, +       0,     0,     0,     0,     0,    43,    44,     0,     0,     0, +       0,    45,     2,    46,     0,     3,     4,     5,     0,     6, +       7,     8,     9,    10,     0,    11,    12,    13,     0,    14, +      15,    16,     0,    17,     0,    18,     0,     0,     0,     0, +       0,    20,    21,    22,     0,     0,     0,     0,     0,     0, +       0,     0,    25,     0,    27,     0,     0,     0,     0,     0, +       0,     0,    30,    31,     0,    32,     0,     0,     0,     0, +       0,     0,    33,     0,     0,     0,     0,     0,     0,    34, +      35,    36,    37,    38,     0,     0,     0,    40,     0,    42, +       0,     0,     0,     0,     0,     2,    43,    44,     3,     4, +       5,     0,    45,     0,    46,     0,     0,     0,    11,    12, +      13,     0,    14,    68,    16,     0,    17,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,    87, +       0,    88,    89,    90,    91,    69,     0,    27,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,    33,     2,     0,     0,     3,     4,     5,    34, -      35,    36,    37,    38,     0,     0,    11,    12,    13,    42, -      14,    68,    16,     0,    17,     0,    43,    44,     0,     0, -       0,     0,    45,     0,    46,     0,     0,     0,     0,    88, -       0,    90,     0,    69,     0,    27,     0,     0,     0,     0, -       0,     0,     0,     0,     0,   104,     0,     0,     0,     0, -       0,     0,     0,    33,     2,     0,     0,     3,     4,     5, -      34,    35,    36,    37,    38,     0,     0,    11,    12,    13, -      42,    14,    68,    16,     0,    17,     0,    43,    44,     0, -       0,     0,     0,    45,     0,    46,     0,     2,     0,     0, -       3,     4,     5,     0,    69,     0,    27,     0,     0,     0, -      11,    12,    13,     0,    14,    68,    16,     0,    17,     0, -       0,     0,     0,     0,    33,     0,     0,     0,     0,     0, -       0,    34,    35,    36,    37,    38,     0,    69,     0,    27, -       0,    42,     0,     0,     0,     0,     0,     0,    43,    44, -       0,     0,     0,     0,    45,     0,    46,    33,     0,     0, -       0,     0,     0,     0,    34,    35,    36,    37,    38,   167, -       0,     0,     0,     0,    42,     0,     0,     0,     0,     0, -       0,    43,    44,     0,     0,     0,    88,    80,    90,    46, -     136,   137,   138,   139,   140,   141,     0,   142,   168,   169, -     143,   144,   145,     0,   136,   137,   138,   139,   140,   141, -       0,   142,     0,     0,   143,   144,   145,   146,   147,   148, -     149,   150,   151,   152,   181,     0,     0,     0,     0,     0, -     182,   146,   147,   148,   149,   150,   151,   152,     0,     0, -     136,   137,   138,   139,   140,   141,     0,   142,     0,     0, -     143,   144,   145,     0,     0,     0,     0,     0,   183,     0, -       0,     0,     0,     0,   184,     0,     0,   146,   147,   148, -     149,   150,   151,   152,   136,   137,   138,   139,   140,   141, -       0,   142,     0,     0,   143,   144,   145,     0,     0,     0, -       0,     0,   185,     0,     0,     0,     0,     0,   186,     0, -       0,   146,   147,   148,   149,   150,   151,   152,   136,   137, -     138,   139,   140,   141,     0,   142,     0,     0,   143,   144, -     145,     0,     0,     0,     0,     0,   187,     0,     0,     0, -       0,     0,   188,     0,     0,   146,   147,   148,   149,   150, -     151,   152,   136,   137,   138,   139,   140,   141,     0,   142, -       0,     0,   143,   144,   145,     0,     0,     0,     0,     0, -     267,     0,     0,     0,     0,     0,     0,     0,     0,   146, -     147,   148,   149,   150,   151,   152,   136,   137,   138,   139, -     140,   141,     0,   142,     0,     0,   143,   144,   145,     0, -       0,     0,     0,     0,   268,     0,     0,     0,     0,     0, -       0,     0,     0,   146,   147,   148,   149,   150,   151,   152, -     136,   137,   138,   139,   140,   141,     0,   142,     0,     0, -     143,   144,   145,     0,     0,     0,     0,     0,   269,     0, -       0,     0,     0,     0,     0,     0,     0,   146,   147,   148, -     149,   150,   151,   152,   136,   137,   138,   139,   140,   141, -       0,   142,     0,     0,   143,   144,   145,     0,     0,     0, -       0,     0,   270,     0,     0,     0,     0,     0,     0,     0, -       0,   146,   147,   148,   149,   150,   151,   152,   136,   137, -     138,   139,   140,   141,     0,   142,     0,     0,   143,   144, -     145,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,   202,     0,     0,   146,   147,   148,   149,   150, -     151,   152,   136,   137,   138,   139,   140,   141,     0,   142, -       0,     0,   143,   144,   145,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,     0,     0,   236,   146, -     147,   148,   149,   150,   151,   152,     0,   203,   136,   137, -     138,   139,   140,   141,   178,   142,     0,     0,   143,   144, -     145,     0,   136,   137,   138,   139,   140,   141,     0,   142, -       0,     0,   143,   144,   145,   146,   147,   148,   149,   150, -     151,   152,     0,     0,     0,     0,     0,     0,     0,   146, -     147,   148,   149,   150,   151,   152,   136,   137,   138,   139, -     140,   141,     0,   142,     0,     0,   143,   144,   145,     0, +       0,     0,     0,     0,     0,    33,     2,     0,     0,     3, +       4,     5,    34,    35,    36,    37,    38,     0,     0,    11, +      12,    13,    42,    14,    68,    16,     0,    17,     0,    43, +      44,     0,     0,     0,     0,    45,     0,    46,     0,     0, +       0,     0,    88,     0,    90,     0,    69,     0,    27,     0, +       0,     0,     0,     0,     0,     0,     0,     0,   105,     0, +       0,     0,     0,     0,     0,     0,    33,     2,     0,     0, +       3,     4,     5,    34,    35,    36,    37,    38,     0,     0, +      11,    12,    13,    42,    14,    68,    16,     0,    17,     0, +      43,    44,     0,     0,     0,     0,    45,     0,    46,     0, +       2,     0,     0,     3,     4,     5,     0,    69,     0,    27, +       0,     0,     0,    11,    12,    13,     0,    14,    68,    16, +       0,    17,     0,     0,     0,     0,     0,    33,     0,     0, +       0,     0,     0,     0,    34,    35,    36,    37,    38,     0, +      69,     0,    27,     0,    42,     0,     0,     0,     0,     0, +       0,    43,    44,     0,     0,     0,     0,    45,     0,    46, +      33,     0,     0,     0,     0,     0,     0,    34,    35,    36, +      37,    38,   168,     0,     0,     0,     0,    42,     0,     0, +       0,     0,     0,     0,    43,    44,     0,     0,     0,    88, +      80,    90,    46,   137,   138,   139,   140,   141,   142,     0, +     143,   169,   170,   144,   145,   146,     0,   137,   138,   139, +     140,   141,   142,     0,   143,     0,     0,   144,   145,   146, +     147,   148,   149,   150,   151,   152,   153,   183,     0,     0, +       0,     0,     0,   184,   147,   148,   149,   150,   151,   152, +     153,     0,     0,   137,   138,   139,   140,   141,   142,     0, +     143,     0,     0,   144,   145,   146,     0,     0,     0,     0, +       0,   185,     0,     0,     0,     0,     0,   186,     0,     0, +     147,   148,   149,   150,   151,   152,   153,   137,   138,   139, +     140,   141,   142,     0,   143,     0,     0,   144,   145,   146, +       0,     0,     0,     0,     0,   187,     0,     0,     0,     0, +       0,   188,     0,     0,   147,   148,   149,   150,   151,   152, +     153,   137,   138,   139,   140,   141,   142,     0,   143,     0, +       0,   144,   145,   146,     0,     0,     0,     0,     0,   189, +       0,     0,     0,     0,     0,   190,     0,     0,   147,   148, +     149,   150,   151,   152,   153,   137,   138,   139,   140,   141, +     142,     0,   143,     0,     0,   144,   145,   146,     0,     0, +       0,     0,     0,   270,     0,     0,     0,     0,     0,     0, +       0,     0,   147,   148,   149,   150,   151,   152,   153,   137, +     138,   139,   140,   141,   142,     0,   143,     0,     0,   144, +     145,   146,     0,     0,     0,     0,     0,   271,     0,     0, +       0,     0,     0,     0,     0,     0,   147,   148,   149,   150, +     151,   152,   153,   137,   138,   139,   140,   141,   142,     0, +     143,     0,     0,   144,   145,   146,     0,     0,     0,     0, +       0,   272,     0,     0,     0,     0,     0,     0,     0,     0, +     147,   148,   149,   150,   151,   152,   153,   137,   138,   139, +     140,   141,   142,     0,   143,     0,     0,   144,   145,   146, +       0,     0,     0,     0,     0,   273,     0,     0,     0,     0, +       0,     0,     0,     0,   147,   148,   149,   150,   151,   152, +     153,   137,   138,   139,   140,   141,   142,     0,   143,     0, +       0,   144,   145,   146,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   204,     0,     0,   147,   148, +     149,   150,   151,   152,   153,   137,   138,   139,   140,   141, +     142,     0,   143,     0,     0,   144,   145,   146,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,   146,   147,   148,   149,   150,   151,   152, -       0,     0,     0,   193,   136,   137,   138,   139,   140,   141, -       0,   142,     0,     0,   143,   144,   145,     0,     0,     0, -       0,     0,   189,   190,     0,     0,     0,     0,     0,     0, -       0,   146,   147,   148,   149,   150,   151,   152,   136,   137, -     138,   139,   140,   141,     0,   142,     0,     0,   143,   144, -     145,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,   146,   147,   148,   149,   150, -     151,   152 +       0,   238,   147,   148,   149,   150,   151,   152,   153,     0, +     205,   137,   138,   139,   140,   141,   142,   180,   143,     0, +       0,   144,   145,   146,     0,   137,   138,   139,   140,   141, +     142,     0,   143,     0,     0,   144,   145,   146,   147,   148, +     149,   150,   151,   152,   153,     0,     0,     0,     0,     0, +       0,     0,   147,   148,   149,   150,   151,   152,   153,   137, +     138,   139,   140,   141,   142,     0,   143,     0,     0,   144, +     145,   146,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,   147,   148,   149,   150, +     151,   152,   153,     0,     0,     0,   195,   137,   138,   139, +     140,   141,   142,     0,   143,     0,     0,   144,   145,   146, +       0,     0,     0,     0,     0,   191,   192,     0,     0,     0, +       0,     0,     0,     0,   147,   148,   149,   150,   151,   152, +     153,   137,   138,   139,   140,   141,   142,     0,   143,     0, +       0,   144,   145,   146,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,   147,   148, +     149,   150,   151,   152,   153  };  static const yytype_int16 yycheck[] =  { -       4,     0,    83,     7,     8,     9,     0,    46,    12,    13, -     161,    15,    14,    31,   278,    39,   263,    38,    22,   101, -      30,    25,    73,   101,   106,    76,    30,    31,   106,    33, -      34,    35,    36,    37,    38,    56,    75,   284,    73,    43, +       4,    83,     0,     7,     8,     9,     0,    46,    12,    13, +      39,    15,    14,    31,   162,   101,   281,    38,    22,    30, +     106,    25,    73,   101,   101,    76,    30,    31,   106,    33, +      34,    35,    36,    37,    38,    56,    75,   266,    73,    43,        44,    45,    46,    82,    95,    96,    97,    98,    99,    53, -      30,    55,    56,    57,    73,    56,    56,    15,    16,   101, -     324,    96,    97,    98,    99,    69,    90,    68,    68,    53, -      12,    75,    30,    30,    92,    17,    80,   228,    82,    98, -      99,   101,    58,    59,    88,   166,   106,   105,    30,    31, -     103,    33,    13,   106,    15,    99,   103,    99,   103,   106, -      30,   106,   105,   106,    29,    30,    30,   101,    30,   203, -      30,    30,   102,    68,   102,   106,    48,   106,    30,    55, -     128,   129,    30,   127,   106,   106,   125,   131,    30,   106, -      30,    68,   136,   137,   138,   139,   140,   141,   142,   143, -     144,   145,   146,   147,   148,   149,   150,   151,   152,    30, -     154,    30,   156,   106,    55,    30,    55,    91,    56,    92, -     164,    30,    40,   257,   168,   169,    39,   171,   172,    30, -      55,   175,   176,    90,   178,   106,    91,   181,   182,   183, -     184,   185,   186,   187,   188,   189,   190,   281,    30,   283, -     198,   195,   304,   201,    91,    90,    90,   125,   202,   167, -      56,    56,    56,    -1,    -1,   299,    -1,   301,    -1,    66, -      67,    68,    69,    -1,   253,   309,    73,    -1,    -1,    76, -      77,    78,    -1,    -1,    -1,    -1,    -1,   321,    -1,    -1, -     311,   235,   236,    -1,   315,   329,    93,    94,    95,    96, -      97,    98,    99,    -1,    -1,    -1,    -1,   255,    -1,   253, -      -1,    -1,   260,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,   267,   268,   269,   270,    -1,    -1,   277, -      -1,    -1,   276,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,   292,    -1,   294,   291,    -1,    -1, -      -1,    -1,   300,    -1,    -1,   303,    -1,    -1,    -1,    -1, -      -1,   305,   310,    -1,    -1,    -1,   314,    -1,    -1,    -1, -      -1,   319,     0,     1,    -1,    -1,    -1,    -1,    -1,    -1, -     328,    -1,   330,    -1,    12,    -1,   334,    15,    16,    17, -      -1,    19,    20,    21,    22,    23,    -1,    25,    26,    27, -      -1,    29,    30,    31,    -1,    33,    -1,    -1,    36,    37, -      -1,    -1,    -1,    41,    42,    43,    44,    -1,    -1,    47, -      -1,    -1,    -1,    -1,    52,    53,    54,    -1,    -1,    57, -      -1,    -1,    -1,    61,    62,    63,    -1,    65,    -1,    -1, -      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1, -      -1,    79,    80,    81,    82,    83,    -1,    -1,    86,    87, -      88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97, -      -1,    -1,    -1,   101,   102,    12,   104,    -1,    15,    16, -      17,    -1,    19,    20,    21,    22,    23,    -1,    25,    26, -      27,    -1,    29,    30,    31,    -1,    33,    -1,    -1,    36, -      37,    -1,    -1,    -1,    41,    42,    43,    44,    -1,    -1, -      47,    -1,    -1,    -1,    -1,    52,    53,    54,    -1,    -1, -      57,    -1,    -1,    -1,    61,    62,    63,    -1,    65,    -1, -      -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1, -      -1,    -1,    79,    80,    81,    82,    83,    -1,    -1,    86, -      87,    88,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96, -      97,    -1,    -1,    -1,    -1,   102,    12,   104,    -1,    15, -      16,    17,    -1,    19,    20,    21,    22,    23,    -1,    25, -      26,    27,    -1,    29,    30,    31,    -1,    33,    -1,    35, -      36,    -1,    -1,    -1,    -1,    41,    42,    43,    44,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    52,    53,    54,    -1, -      -1,    57,    -1,    -1,    -1,    -1,    62,    63,    -1,    65, -      -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1, -      -1,    -1,    -1,    79,    80,    81,    82,    83,    -1,    -1, -      86,    87,    -1,    89,    -1,    -1,    -1,    -1,    -1,    -1, -      96,    97,    -1,    -1,    -1,   101,   102,    12,   104,    -1, +      53,    55,    56,    57,    12,    15,    16,    56,   287,    17, +      30,    90,   327,    98,    99,    69,    73,    56,    30,    68, +      30,    75,    30,    31,    92,    33,    80,    37,    82,    68, +     103,   101,   230,   106,    88,   167,   106,    30,   106,    96, +      97,    98,    99,   103,    30,    99,   106,    99,   103,    30, +      13,   106,    15,   101,    58,    59,    29,    30,   105,   106, +      30,    30,   102,    68,   102,   106,    48,    56,    30,   106, +      55,   129,   130,   106,   128,   106,    30,    30,   132,   106, +      30,    68,   126,   137,   138,   139,   140,   141,   142,   143, +     144,   145,   146,   147,   148,   149,   150,   151,   152,   153, +      30,   155,    30,   157,    55,   106,    55,    30,    91,    56, +      39,   165,    92,    30,   205,   169,   170,    30,   172,   173, +      91,    40,   176,   177,   178,    90,   180,   106,    55,   183, +     184,   185,   186,   187,   188,   189,   190,   191,   192,    30, +     307,    56,   200,   197,    90,   203,    66,    67,    68,    69, +     204,    91,    90,    73,   126,   168,    76,    77,    78,    56, +      56,    -1,    -1,    -1,    -1,    -1,    -1,   256,    -1,   260, +      -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    99, +      -1,    -1,   314,   237,   238,    -1,   318,    -1,    -1,    -1, +      -1,    -1,    -1,   284,    -1,   286,    -1,    -1,    -1,    -1, +     258,    -1,   256,    -1,    -1,   263,    -1,    -1,    -1,    -1, +      -1,   302,    -1,   304,    -1,    -1,   270,   271,   272,   273, +      -1,   312,   280,    -1,    -1,   279,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,   324,    -1,    -1,    -1,   295,    -1,   297, +     294,   332,    -1,    -1,    -1,   303,    -1,    -1,   306,    -1, +      -1,    -1,    -1,    -1,   308,   313,    -1,    -1,    -1,   317, +      -1,    -1,    -1,    -1,   322,     0,     1,    -1,    -1,    -1, +      -1,    -1,    -1,   331,    -1,   333,    -1,    12,    -1,   337,        15,    16,    17,    -1,    19,    20,    21,    22,    23,    -1,        25,    26,    27,    -1,    29,    30,    31,    -1,    33,    -1, -      -1,    36,    -1,    -1,    -1,    -1,    41,    42,    43,    44, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    52,    53,    54, -      -1,    -1,    57,    -1,    -1,    -1,    -1,    62,    63,    -1, +      35,    36,    -1,    -1,    -1,    -1,    41,    42,    43,    44, +      -1,    -1,    47,    -1,    -1,    -1,    -1,    52,    53,    54, +      -1,    -1,    57,    -1,    -1,    -1,    61,    62,    63,    -1,        65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1,        -1,    -1,    -1,    -1,    79,    80,    81,    82,    83,    -1, -      -1,    86,    87,    -1,    89,    -1,    -1,    -1,    -1,    -1, +      -1,    86,    87,    88,    89,    -1,    -1,    -1,    -1,    -1,        -1,    96,    97,    -1,    -1,    -1,   101,   102,    12,   104,        -1,    15,    16,    17,    -1,    19,    20,    21,    22,    23,        -1,    25,    26,    27,    -1,    29,    30,    31,    -1,    33, -      -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    42,    43, -      44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    52,    -1, -      54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62,    63, +      -1,    35,    36,    -1,    -1,    -1,    -1,    41,    42,    43, +      44,    -1,    -1,    47,    -1,    -1,    -1,    -1,    52,    53, +      54,    -1,    -1,    57,    -1,    -1,    -1,    61,    62,    63,        -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    -1,        -1,    -1,    -1,    -1,    -1,    79,    80,    81,    82,    83, -      -1,    -1,    -1,    87,    -1,    89,    -1,    -1,    -1,    -1, +      -1,    -1,    86,    87,    88,    89,    -1,    -1,    -1,    -1,        -1,    -1,    96,    97,    -1,    -1,    -1,    -1,   102,    12,       104,    -1,    15,    16,    17,    -1,    19,    20,    21,    22,        23,    -1,    25,    26,    27,    -1,    29,    30,    31,    -1, -      33,    -1,    -1,    36,    -1,    -1,    -1,    -1,    41,    42, -      43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    52, -      -1,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    62, +      33,    34,    35,    -1,    -1,    -1,    -1,    -1,    41,    42, +      43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    52, +      53,    54,    -1,    -1,    57,    -1,    -1,    -1,    -1,    62,        63,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,        -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81,    82, -      83,    -1,    -1,    -1,    87,    -1,    89,    -1,    -1,    -1, -      -1,    -1,    12,    96,    97,    15,    16,    17,    -1,   102, -      -1,   104,    -1,    -1,    -1,    25,    26,    27,    -1,    29, -      30,    31,    -1,    33,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    46,    -1,    48,    49, -      50,    51,    52,    -1,    54,    -1,    -1,    -1,    -1,    -1, +      83,    -1,    -1,    86,    87,    -1,    89,    -1,    -1,    -1, +      -1,    -1,    -1,    96,    97,    -1,    -1,    -1,   101,   102, +      12,   104,    -1,    15,    16,    17,    -1,    19,    20,    21, +      22,    23,    -1,    25,    26,    27,    -1,    29,    30,    31, +      -1,    33,    -1,    35,    -1,    -1,    -1,    -1,    -1,    41, +      42,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      52,    53,    54,    -1,    -1,    57,    -1,    -1,    -1,    -1, +      62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1, +      72,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81, +      82,    83,    -1,    -1,    86,    87,    -1,    89,    -1,    -1, +      -1,    -1,    -1,    -1,    96,    97,    -1,    -1,    -1,   101, +     102,    12,   104,    -1,    15,    16,    17,    -1,    19,    20, +      21,    22,    23,    -1,    25,    26,    27,    -1,    29,    30, +      31,    -1,    33,    -1,    35,    -1,    -1,    -1,    -1,    -1, +      41,    42,    43,    44,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    52,    -1,    54,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    62,    63,    -1,    65,    -1,    -1,    -1,    -1,    -1, +      -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80, +      81,    82,    83,    -1,    -1,    -1,    87,    -1,    89,    -1, +      -1,    -1,    -1,    -1,    -1,    96,    97,    -1,    -1,    -1, +      -1,   102,    12,   104,    -1,    15,    16,    17,    -1,    19, +      20,    21,    22,    23,    -1,    25,    26,    27,    -1,    29, +      30,    31,    -1,    33,    -1,    35,    -1,    -1,    -1,    -1, +      -1,    41,    42,    43,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    52,    -1,    54,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    62,    63,    -1,    65,    -1,    -1,    -1,    -1, +      -1,    -1,    72,    -1,    -1,    -1,    -1,    -1,    -1,    79, +      80,    81,    82,    83,    -1,    -1,    -1,    87,    -1,    89, +      -1,    -1,    -1,    -1,    -1,    12,    96,    97,    15,    16, +      17,    -1,   102,    -1,   104,    -1,    -1,    -1,    25,    26, +      27,    -1,    29,    30,    31,    -1,    33,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    46, +      -1,    48,    49,    50,    51,    52,    -1,    54,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    72,    12,    -1,    -1,    15,    16,    17,    79, -      80,    81,    82,    83,    -1,    -1,    25,    26,    27,    89, -      29,    30,    31,    -1,    33,    -1,    96,    97,    -1,    -1, -      -1,    -1,   102,    -1,   104,    -1,    -1,    -1,    -1,    48, -      -1,    50,    -1,    52,    -1,    54,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    64,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    72,    12,    -1,    -1,    15,    16,    17, -      79,    80,    81,    82,    83,    -1,    -1,    25,    26,    27, -      89,    29,    30,    31,    -1,    33,    -1,    96,    97,    -1, -      -1,    -1,    -1,   102,    -1,   104,    -1,    12,    -1,    -1, -      15,    16,    17,    -1,    52,    -1,    54,    -1,    -1,    -1, -      25,    26,    27,    -1,    29,    30,    31,    -1,    33,    -1, -      -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,    -1, -      -1,    79,    80,    81,    82,    83,    -1,    52,    -1,    54, -      -1,    89,    -1,    -1,    -1,    -1,    -1,    -1,    96,    97, -      -1,    -1,    -1,    -1,   102,    -1,   104,    72,    -1,    -1, -      -1,    -1,    -1,    -1,    79,    80,    81,    82,    83,    45, -      -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1, -      -1,    96,    97,    -1,    -1,    -1,    48,   102,    50,   104, -      66,    67,    68,    69,    70,    71,    -1,    73,    74,    75, -      76,    77,    78,    -1,    66,    67,    68,    69,    70,    71, -      -1,    73,    -1,    -1,    76,    77,    78,    93,    94,    95, -      96,    97,    98,    99,    50,    -1,    -1,    -1,    -1,    -1, -      56,    93,    94,    95,    96,    97,    98,    99,    -1,    -1, -      66,    67,    68,    69,    70,    71,    -1,    73,    -1,    -1, -      76,    77,    78,    -1,    -1,    -1,    -1,    -1,    50,    -1, -      -1,    -1,    -1,    -1,    56,    -1,    -1,    93,    94,    95, -      96,    97,    98,    99,    66,    67,    68,    69,    70,    71, -      -1,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1, -      -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    56,    -1, -      -1,    93,    94,    95,    96,    97,    98,    99,    66,    67, -      68,    69,    70,    71,    -1,    73,    -1,    -1,    76,    77, -      78,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1, -      -1,    -1,    56,    -1,    -1,    93,    94,    95,    96,    97, -      98,    99,    66,    67,    68,    69,    70,    71,    -1,    73, -      -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1, -      50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    93, -      94,    95,    96,    97,    98,    99,    66,    67,    68,    69, -      70,    71,    -1,    73,    -1,    -1,    76,    77,    78,    -1, -      -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    99, -      66,    67,    68,    69,    70,    71,    -1,    73,    -1,    -1, -      76,    77,    78,    -1,    -1,    -1,    -1,    -1,    50,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95, -      96,    97,    98,    99,    66,    67,    68,    69,    70,    71, -      -1,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1, -      -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    93,    94,    95,    96,    97,    98,    99,    66,    67, -      68,    69,    70,    71,    -1,    73,    -1,    -1,    76,    77, -      78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    56,    -1,    -1,    93,    94,    95,    96,    97, -      98,    99,    66,    67,    68,    69,    70,    71,    -1,    73, -      -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    56,    93, -      94,    95,    96,    97,    98,    99,    -1,   101,    66,    67, -      68,    69,    70,    71,    58,    73,    -1,    -1,    76,    77, -      78,    -1,    66,    67,    68,    69,    70,    71,    -1,    73, -      -1,    -1,    76,    77,    78,    93,    94,    95,    96,    97, -      98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    93, -      94,    95,    96,    97,    98,    99,    66,    67,    68,    69, -      70,    71,    -1,    73,    -1,    -1,    76,    77,    78,    -1, +      -1,    -1,    -1,    -1,    -1,    72,    12,    -1,    -1,    15, +      16,    17,    79,    80,    81,    82,    83,    -1,    -1,    25, +      26,    27,    89,    29,    30,    31,    -1,    33,    -1,    96, +      97,    -1,    -1,    -1,    -1,   102,    -1,   104,    -1,    -1, +      -1,    -1,    48,    -1,    50,    -1,    52,    -1,    54,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    72,    12,    -1,    -1, +      15,    16,    17,    79,    80,    81,    82,    83,    -1,    -1, +      25,    26,    27,    89,    29,    30,    31,    -1,    33,    -1, +      96,    97,    -1,    -1,    -1,    -1,   102,    -1,   104,    -1, +      12,    -1,    -1,    15,    16,    17,    -1,    52,    -1,    54, +      -1,    -1,    -1,    25,    26,    27,    -1,    29,    30,    31, +      -1,    33,    -1,    -1,    -1,    -1,    -1,    72,    -1,    -1, +      -1,    -1,    -1,    -1,    79,    80,    81,    82,    83,    -1, +      52,    -1,    54,    -1,    89,    -1,    -1,    -1,    -1,    -1, +      -1,    96,    97,    -1,    -1,    -1,    -1,   102,    -1,   104, +      72,    -1,    -1,    -1,    -1,    -1,    -1,    79,    80,    81, +      82,    83,    45,    -1,    -1,    -1,    -1,    89,    -1,    -1, +      -1,    -1,    -1,    -1,    96,    97,    -1,    -1,    -1,    48, +     102,    50,   104,    66,    67,    68,    69,    70,    71,    -1, +      73,    74,    75,    76,    77,    78,    -1,    66,    67,    68, +      69,    70,    71,    -1,    73,    -1,    -1,    76,    77,    78, +      93,    94,    95,    96,    97,    98,    99,    50,    -1,    -1, +      -1,    -1,    -1,    56,    93,    94,    95,    96,    97,    98, +      99,    -1,    -1,    66,    67,    68,    69,    70,    71,    -1, +      73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1, +      -1,    50,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1, +      93,    94,    95,    96,    97,    98,    99,    66,    67,    68, +      69,    70,    71,    -1,    73,    -1,    -1,    76,    77,    78, +      -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1, +      -1,    56,    -1,    -1,    93,    94,    95,    96,    97,    98, +      99,    66,    67,    68,    69,    70,    71,    -1,    73,    -1, +      -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,    50, +      -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    93,    94, +      95,    96,    97,    98,    99,    66,    67,    68,    69,    70, +      71,    -1,    73,    -1,    -1,    76,    77,    78,    -1,    -1, +      -1,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    93,    94,    95,    96,    97,    98,    99,    66, +      67,    68,    69,    70,    71,    -1,    73,    -1,    -1,    76, +      77,    78,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95,    96, +      97,    98,    99,    66,    67,    68,    69,    70,    71,    -1, +      73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1, +      -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      93,    94,    95,    96,    97,    98,    99,    66,    67,    68, +      69,    70,    71,    -1,    73,    -1,    -1,    76,    77,    78, +      -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    93,    94,    95,    96,    97,    98, +      99,    66,    67,    68,    69,    70,    71,    -1,    73,    -1, +      -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    93,    94, +      95,    96,    97,    98,    99,    66,    67,    68,    69,    70, +      71,    -1,    73,    -1,    -1,    76,    77,    78,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    99, -      -1,    -1,    -1,   103,    66,    67,    68,    69,    70,    71, -      -1,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1, -      -1,    -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    93,    94,    95,    96,    97,    98,    99,    66,    67, -      68,    69,    70,    71,    -1,    73,    -1,    -1,    76,    77, -      78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    93,    94,    95,    96,    97, -      98,    99 +      -1,    56,    93,    94,    95,    96,    97,    98,    99,    -1, +     101,    66,    67,    68,    69,    70,    71,    58,    73,    -1, +      -1,    76,    77,    78,    -1,    66,    67,    68,    69,    70, +      71,    -1,    73,    -1,    -1,    76,    77,    78,    93,    94, +      95,    96,    97,    98,    99,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    93,    94,    95,    96,    97,    98,    99,    66, +      67,    68,    69,    70,    71,    -1,    73,    -1,    -1,    76, +      77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    93,    94,    95,    96, +      97,    98,    99,    -1,    -1,    -1,   103,    66,    67,    68, +      69,    70,    71,    -1,    73,    -1,    -1,    76,    77,    78, +      -1,    -1,    -1,    -1,    -1,    84,    85,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    93,    94,    95,    96,    97,    98, +      99,    66,    67,    68,    69,    70,    71,    -1,    73,    -1, +      -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    94, +      95,    96,    97,    98,    99  };  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1257,7 +1259,7 @@ static const yytype_int16 yycheck[] =  static const yytype_uint8 yystos[] =  {         0,     1,    12,    15,    16,    17,    19,    20,    21,    22, -      23,    25,    26,    27,    29,    30,    31,    33,    36,    37, +      23,    25,    26,    27,    29,    30,    31,    33,    35,    36,        41,    42,    43,    44,    47,    52,    53,    54,    57,    61,        62,    63,    65,    72,    79,    80,    81,    82,    83,    86,        87,    88,    89,    96,    97,   102,   104,   108,   109,   110, @@ -1266,30 +1268,31 @@ static const yytype_uint8 yystos[] =       128,   128,   128,   128,   147,    30,   128,   147,    30,   127,       102,   147,   137,   140,    53,    30,   131,    46,    48,    49,        50,    51,   128,   135,    30,   128,    58,    59,    15,    16, -      30,    30,    30,   128,    64,   128,   135,    30,   133,   128, -     128,   128,   128,   128,   128,    30,   132,    30,   102,   128, -     128,   128,   128,   146,     0,   101,   128,    68,   128,   112, -     117,   120,   128,   130,   145,   128,    66,    67,    68,    69, -      70,    71,    73,    76,    77,    78,    93,    94,    95,    96, -      97,    98,    99,   122,   102,   128,   106,   146,   128,   146, -     146,   122,   106,   128,    48,   135,   139,    45,    74,    75, -      30,    56,    68,   127,   128,    56,    68,    55,    58,   135, -     106,    50,    56,    50,    56,    50,    56,    50,    56,    84, -      85,   106,    30,   103,   105,   106,   109,   123,   128,   123, -     123,   128,    56,   101,   128,   128,   128,   128,   128,   128, +      30,    37,    30,    30,   128,    64,   128,   135,    30,   133, +     128,   128,   128,   128,   128,   128,    30,   132,    30,   102, +     128,   128,   128,   128,   146,     0,   101,   128,    68,   128, +     112,   117,   120,   128,   130,   145,   128,    66,    67,    68, +      69,    70,    71,    73,    76,    77,    78,    93,    94,    95, +      96,    97,    98,    99,   122,   102,   128,   106,   146,   128, +     146,   146,   122,   106,   128,    48,   135,   139,    45,    74, +      75,    30,    56,    68,   127,   128,    56,    68,    56,    55, +      58,   135,   106,    50,    56,    50,    56,    50,    56,    50, +      56,    84,    85,   106,    30,   103,   105,   106,   109,   123, +     128,   123,   123,   128,    56,   101,   128,   128,   128,   128,       128,   128,   128,   128,   128,   128,   128,   128,   128,   128, -     128,    30,   142,   128,   103,   142,    30,   128,   122,    30, -     129,   128,   128,   128,   128,    68,    56,   128,   128,   128, -      30,   128,   128,   128,   128,   128,   128,   128,   128,   128, -     128,    30,   103,   106,   128,   124,   123,    55,   123,   128, -     124,   101,   106,   101,   142,   128,   128,    50,    50,    50, -      50,   146,   101,   113,   123,    38,    56,   124,    55,   123, -     106,   144,    30,   144,   101,   128,   128,   128,   128,   103, -      91,    56,   128,   123,   111,    92,    30,   124,   124,   144, -     128,   123,    40,   115,   116,   121,   123,    35,   124,   123, -     124,    39,   123,   115,   128,    39,    90,    30,   143,   124, -     123,   122,    90,   123,   122,   106,   123,    91,   124,    55, -     111,    30,    91,   123,   124,   123,    90,   123,    90 +     128,   128,   128,    30,   142,   128,   103,   142,    30,   128, +     122,    30,   129,   128,   128,   128,   128,    68,    56,   128, +     128,   128,   128,    30,   128,   128,   128,   128,   128,   128, +     128,   128,   128,   128,    30,   103,   106,   128,   124,   123, +      55,   123,   128,   124,   101,   106,   101,   142,   128,   128, +      50,    50,    50,    50,   146,   101,   113,   123,    38,    56, +     124,    55,   123,   106,   144,    30,   144,   101,   128,   128, +     128,   128,   103,    91,    56,   128,   123,   111,    92,    30, +     124,   124,   144,   128,   123,    40,   115,   116,   121,   123, +      34,   124,   123,   124,    39,   123,   115,   128,    39,    90, +      30,   143,   124,   123,   122,    90,   123,   122,   106,   123, +      91,   124,    55,   111,    30,    91,   123,   124,   123,    90, +     123,    90  };  #define yyerrok		(yyerrstatus = 0) @@ -2104,12 +2107,12 @@ yyreduce:    switch (yyn)      {          case 4: -#line 132 "engines/director/lingo/lingo-gr.y" +#line 133 "engines/director/lingo/lingo-gr.y"      { yyerrok; ;}      break;    case 8: -#line 140 "engines/director/lingo/lingo-gr.y" +#line 141 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_varpush);  		g_lingo->codeString((yyvsp[(4) - (4)].s)->c_str()); @@ -2119,24 +2122,24 @@ yyreduce:      break;    case 9: -#line 146 "engines/director/lingo/lingo-gr.y" +#line 147 "engines/director/lingo/lingo-gr.y"      {  			g_lingo->code1(g_lingo->c_assign);  			(yyval.code) = (yyvsp[(2) - (4)].code); ;}      break;    case 10: -#line 149 "engines/director/lingo/lingo-gr.y" +#line 150 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->code1(g_lingo->c_after); ;}      break;    case 11: -#line 150 "engines/director/lingo/lingo-gr.y" +#line 151 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->code1(g_lingo->c_before); ;}      break;    case 12: -#line 151 "engines/director/lingo/lingo-gr.y" +#line 152 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_varpush);  		g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str()); @@ -2146,7 +2149,7 @@ yyreduce:      break;    case 13: -#line 157 "engines/director/lingo/lingo-gr.y" +#line 158 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(0); // Put dummy id @@ -2157,7 +2160,7 @@ yyreduce:      break;    case 14: -#line 164 "engines/director/lingo/lingo-gr.y" +#line 165 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_varpush);  		g_lingo->codeString((yyvsp[(2) - (4)].s)->c_str()); @@ -2167,7 +2170,7 @@ yyreduce:      break;    case 15: -#line 170 "engines/director/lingo/lingo-gr.y" +#line 171 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(0); // Put dummy id @@ -2178,7 +2181,7 @@ yyreduce:      break;    case 16: -#line 177 "engines/director/lingo/lingo-gr.y" +#line 178 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_swap);  		g_lingo->code1(g_lingo->c_theentityassign); @@ -2188,7 +2191,7 @@ yyreduce:      break;    case 17: -#line 183 "engines/director/lingo/lingo-gr.y" +#line 184 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_swap);  		g_lingo->code1(g_lingo->c_theentityassign); @@ -2197,8 +2200,17 @@ yyreduce:  		(yyval.code) = (yyvsp[(5) - (5)].code); ;}      break; -  case 27: -#line 208 "engines/director/lingo/lingo-gr.y" +  case 18: +#line 190 "engines/director/lingo/lingo-gr.y" +    { +		g_lingo->code1(g_lingo->c_objectfieldassign); +		g_lingo->codeString((yyvsp[(2) - (4)].objectfield).s->c_str()); +		g_lingo->codeInt((yyvsp[(2) - (4)].objectfield).e); +		(yyval.code) = (yyvsp[(4) - (4)].code); ;} +    break; + +  case 28: +#line 214 "engines/director/lingo/lingo-gr.y"      {  		inst body = 0, end = 0;  		WRITE_UINT32(&body, (yyvsp[(3) - (6)].code) - (yyvsp[(1) - (6)].code)); @@ -2207,8 +2219,8 @@ yyreduce:  		(*g_lingo->_currentScript)[(yyvsp[(1) - (6)].code) + 2] = end; ;}      break; -  case 28: -#line 219 "engines/director/lingo/lingo-gr.y" +  case 29: +#line 225 "engines/director/lingo/lingo-gr.y"      {  		inst init = 0, finish = 0, body = 0, end = 0, inc = 0;  		WRITE_UINT32(&init, (yyvsp[(3) - (10)].code) - (yyvsp[(1) - (10)].code)); @@ -2223,8 +2235,8 @@ yyreduce:  		(*g_lingo->_currentScript)[(yyvsp[(1) - (10)].code) + 5] = end; ;}      break; -  case 29: -#line 236 "engines/director/lingo/lingo-gr.y" +  case 30: +#line 242 "engines/director/lingo/lingo-gr.y"      {  		inst init = 0, finish = 0, body = 0, end = 0, inc = 0;  		WRITE_UINT32(&init, (yyvsp[(3) - (11)].code) - (yyvsp[(1) - (11)].code)); @@ -2239,8 +2251,8 @@ yyreduce:  		(*g_lingo->_currentScript)[(yyvsp[(1) - (11)].code) + 5] = end; ;}      break; -  case 30: -#line 248 "engines/director/lingo/lingo-gr.y" +  case 31: +#line 254 "engines/director/lingo/lingo-gr.y"      {  		inst end = 0;  		WRITE_UINT32(&end, (yyvsp[(3) - (3)].code) - (yyvsp[(1) - (3)].code)); @@ -2248,21 +2260,21 @@ yyreduce:  		(*g_lingo->_currentScript)[(yyvsp[(1) - (3)].code) + 1] = end; ;}      break; -  case 31: -#line 253 "engines/director/lingo/lingo-gr.y" +  case 32: +#line 259 "engines/director/lingo/lingo-gr.y"      {  			warning("STUB: TELL is not implemented"); ;}      break; -  case 32: -#line 255 "engines/director/lingo/lingo-gr.y" +  case 33: +#line 261 "engines/director/lingo/lingo-gr.y"      {  			warning("STUB: TELL is not implemented");  		;}      break; -  case 33: -#line 260 "engines/director/lingo/lingo-gr.y" +  case 34: +#line 266 "engines/director/lingo/lingo-gr.y"      {  		inst then = 0, else1 = 0, end = 0;  		WRITE_UINT32(&then, (yyvsp[(3) - (9)].code) - (yyvsp[(1) - (9)].code)); @@ -2275,8 +2287,8 @@ yyreduce:  		g_lingo->processIf((yyvsp[(1) - (9)].code), (yyvsp[(8) - (9)].code) - (yyvsp[(1) - (9)].code), 0); ;}      break; -  case 34: -#line 270 "engines/director/lingo/lingo-gr.y" +  case 35: +#line 276 "engines/director/lingo/lingo-gr.y"      {  		inst then = 0, else1 = 0, end = 0;  		WRITE_UINT32(&then, (yyvsp[(3) - (12)].code) - (yyvsp[(1) - (12)].code)); @@ -2289,8 +2301,8 @@ yyreduce:  		g_lingo->processIf((yyvsp[(1) - (12)].code), (yyvsp[(11) - (12)].code) - (yyvsp[(1) - (12)].code), (yyvsp[(9) - (12)].code) - (yyvsp[(1) - (12)].code)); ;}      break; -  case 37: -#line 286 "engines/director/lingo/lingo-gr.y" +  case 38: +#line 292 "engines/director/lingo/lingo-gr.y"      {  		inst then = 0;  		WRITE_UINT32(&then, (yyvsp[(3) - (6)].code) - (yyvsp[(1) - (6)].code)); @@ -2299,8 +2311,8 @@ yyreduce:  		g_lingo->codeLabel((yyvsp[(1) - (6)].code)); ;}      break; -  case 38: -#line 294 "engines/director/lingo/lingo-gr.y" +  case 39: +#line 300 "engines/director/lingo/lingo-gr.y"      {  		inst then = 0, else1 = 0, end = 0;  		WRITE_UINT32(&then, (yyvsp[(3) - (11)].code) - (yyvsp[(1) - (11)].code)); @@ -2313,8 +2325,8 @@ yyreduce:  		g_lingo->processIf((yyvsp[(1) - (11)].code), (yyvsp[(10) - (11)].code) - (yyvsp[(1) - (11)].code), (yyvsp[(8) - (11)].code) - (yyvsp[(1) - (11)].code)); ;}      break; -  case 39: -#line 304 "engines/director/lingo/lingo-gr.y" +  case 40: +#line 310 "engines/director/lingo/lingo-gr.y"      {  			inst then = 0, else1 = 0, end = 0;  			WRITE_UINT32(&then, (yyvsp[(3) - (7)].code) - (yyvsp[(1) - (7)].code)); @@ -2327,13 +2339,13 @@ yyreduce:  			g_lingo->processIf((yyvsp[(1) - (7)].code), (yyvsp[(6) - (7)].code) - (yyvsp[(1) - (7)].code), (yyvsp[(6) - (7)].code) - (yyvsp[(1) - (7)].code)); ;}      break; -  case 40: -#line 317 "engines/director/lingo/lingo-gr.y" +  case 41: +#line 323 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->code3(g_lingo->c_repeatwhilecode, STOP, STOP); ;}      break; -  case 41: -#line 320 "engines/director/lingo/lingo-gr.y" +  case 42: +#line 326 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code3(g_lingo->c_repeatwithcode, STOP, STOP);  		g_lingo->code3(STOP, STOP, STOP); @@ -2341,8 +2353,8 @@ yyreduce:  		delete (yyvsp[(3) - (3)].s); ;}      break; -  case 42: -#line 327 "engines/director/lingo/lingo-gr.y" +  case 43: +#line 333 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_ifcode);  		g_lingo->code3(STOP, STOP, STOP); @@ -2350,8 +2362,8 @@ yyreduce:  		g_lingo->codeLabel(0); ;}      break; -  case 43: -#line 334 "engines/director/lingo/lingo-gr.y" +  case 44: +#line 340 "engines/director/lingo/lingo-gr.y"      {  		inst skipEnd;  		WRITE_UINT32(&skipEnd, 1); // We have to skip end to avoid multiple executions @@ -2360,23 +2372,23 @@ yyreduce:  		g_lingo->code1(skipEnd); ;}      break; -  case 44: -#line 342 "engines/director/lingo/lingo-gr.y" +  case 45: +#line 348 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->_currentScript->size(); ;}      break; -  case 45: -#line 345 "engines/director/lingo/lingo-gr.y" +  case 46: +#line 351 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(STOP); (yyval.code) = g_lingo->_currentScript->size(); ;}      break; -  case 46: -#line 348 "engines/director/lingo/lingo-gr.y" +  case 47: +#line 354 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->_currentScript->size(); ;}      break; -  case 49: -#line 353 "engines/director/lingo/lingo-gr.y" +  case 50: +#line 359 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_whencode);  		g_lingo->code1(STOP); @@ -2384,82 +2396,82 @@ yyreduce:  		delete (yyvsp[(2) - (3)].s); ;}      break; -  case 50: -#line 359 "engines/director/lingo/lingo-gr.y" +  case 51: +#line 365 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_tellcode);  		g_lingo->code1(STOP); ;}      break; -  case 51: -#line 363 "engines/director/lingo/lingo-gr.y" +  case 52: +#line 369 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt((yyvsp[(1) - (1)].i)); ;}      break; -  case 52: -#line 366 "engines/director/lingo/lingo-gr.y" +  case 53: +#line 372 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_floatpush);  		g_lingo->codeFloat((yyvsp[(1) - (1)].f)); ;}      break; -  case 53: -#line 369 "engines/director/lingo/lingo-gr.y" +  case 54: +#line 375 "engines/director/lingo/lingo-gr.y"      {											// D3  		(yyval.code) = g_lingo->code1(g_lingo->c_symbolpush);  		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}      break; -  case 54: -#line 372 "engines/director/lingo/lingo-gr.y" +  case 55: +#line 378 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_stringpush);  		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); ;}      break; -  case 55: -#line 375 "engines/director/lingo/lingo-gr.y" +  case 56: +#line 381 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_eval);  		g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str());  		delete (yyvsp[(1) - (1)].s); ;}      break; -  case 56: -#line 381 "engines/director/lingo/lingo-gr.y" +  case 57: +#line 387 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = (yyvsp[(1) - (1)].code); ;}      break; -  case 58: -#line 383 "engines/director/lingo/lingo-gr.y" +  case 59: +#line 389 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);  		delete (yyvsp[(1) - (1)].s); ;}      break; -  case 59: -#line 386 "engines/director/lingo/lingo-gr.y" +  case 60: +#line 392 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);  		delete (yyvsp[(1) - (2)].s); ;}      break; -  case 60: -#line 389 "engines/director/lingo/lingo-gr.y" +  case 61: +#line 395 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}      break; -  case 61: -#line 390 "engines/director/lingo/lingo-gr.y" +  case 62: +#line 396 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->codeFunc((yyvsp[(1) - (4)].s), (yyvsp[(3) - (4)].narg));  		delete (yyvsp[(1) - (4)].s); ;}      break; -  case 62: -#line 393 "engines/director/lingo/lingo-gr.y" +  case 63: +#line 399 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(0); // Put dummy id @@ -2470,8 +2482,8 @@ yyreduce:  		g_lingo->code2(e, f); ;}      break; -  case 63: -#line 401 "engines/director/lingo/lingo-gr.y" +  case 64: +#line 407 "engines/director/lingo/lingo-gr.y"      {  		(yyval.code) = g_lingo->code1(g_lingo->c_theentitypush);  		inst e = 0, f = 0; @@ -2480,369 +2492,369 @@ yyreduce:  		g_lingo->code2(e, f); ;}      break; -  case 65: -#line 408 "engines/director/lingo/lingo-gr.y" +  case 66: +#line 414 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_add); ;}      break; -  case 66: -#line 409 "engines/director/lingo/lingo-gr.y" +  case 67: +#line 415 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_sub); ;}      break; -  case 67: -#line 410 "engines/director/lingo/lingo-gr.y" +  case 68: +#line 416 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_mul); ;}      break; -  case 68: -#line 411 "engines/director/lingo/lingo-gr.y" +  case 69: +#line 417 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_div); ;}      break; -  case 69: -#line 412 "engines/director/lingo/lingo-gr.y" +  case 70: +#line 418 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_mod); ;}      break; -  case 70: -#line 413 "engines/director/lingo/lingo-gr.y" +  case 71: +#line 419 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gt); ;}      break; -  case 71: -#line 414 "engines/director/lingo/lingo-gr.y" +  case 72: +#line 420 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_lt); ;}      break; -  case 72: -#line 415 "engines/director/lingo/lingo-gr.y" +  case 73: +#line 421 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_eq); ;}      break; -  case 73: -#line 416 "engines/director/lingo/lingo-gr.y" +  case 74: +#line 422 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_neq); ;}      break; -  case 74: -#line 417 "engines/director/lingo/lingo-gr.y" +  case 75: +#line 423 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_ge); ;}      break; -  case 75: -#line 418 "engines/director/lingo/lingo-gr.y" +  case 76: +#line 424 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_le); ;}      break; -  case 76: -#line 419 "engines/director/lingo/lingo-gr.y" +  case 77: +#line 425 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_and); ;}      break; -  case 77: -#line 420 "engines/director/lingo/lingo-gr.y" +  case 78: +#line 426 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_or); ;}      break; -  case 78: -#line 421 "engines/director/lingo/lingo-gr.y" +  case 79: +#line 427 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_not); ;}      break; -  case 79: -#line 422 "engines/director/lingo/lingo-gr.y" +  case 80: +#line 428 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_ampersand); ;}      break; -  case 80: -#line 423 "engines/director/lingo/lingo-gr.y" +  case 81: +#line 429 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_concat); ;}      break; -  case 81: -#line 424 "engines/director/lingo/lingo-gr.y" +  case 82: +#line 430 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_contains); ;}      break; -  case 82: -#line 425 "engines/director/lingo/lingo-gr.y" +  case 83: +#line 431 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_starts); ;}      break; -  case 83: -#line 426 "engines/director/lingo/lingo-gr.y" +  case 84: +#line 432 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = (yyvsp[(2) - (2)].code); ;}      break; -  case 84: -#line 427 "engines/director/lingo/lingo-gr.y" +  case 85: +#line 433 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = (yyvsp[(2) - (2)].code); g_lingo->code1(g_lingo->c_negate); ;}      break; -  case 85: -#line 428 "engines/director/lingo/lingo-gr.y" +  case 86: +#line 434 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = (yyvsp[(2) - (3)].code); ;}      break; -  case 86: -#line 429 "engines/director/lingo/lingo-gr.y" +  case 87: +#line 435 "engines/director/lingo/lingo-gr.y"      { (yyval.code) = g_lingo->code1(g_lingo->c_arraypush); g_lingo->codeArray((yyvsp[(2) - (3)].narg)); ;}      break; -  case 87: -#line 430 "engines/director/lingo/lingo-gr.y" +  case 88: +#line 436 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_intersects); ;}      break; -  case 88: -#line 431 "engines/director/lingo/lingo-gr.y" +  case 89: +#line 437 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_within); ;}      break; -  case 89: -#line 432 "engines/director/lingo/lingo-gr.y" +  case 90: +#line 438 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_charOf); ;}      break; -  case 90: -#line 433 "engines/director/lingo/lingo-gr.y" +  case 91: +#line 439 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_charToOf); ;}      break; -  case 91: -#line 434 "engines/director/lingo/lingo-gr.y" +  case 92: +#line 440 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_itemOf); ;}      break; -  case 92: -#line 435 "engines/director/lingo/lingo-gr.y" +  case 93: +#line 441 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_itemToOf); ;}      break; -  case 93: -#line 436 "engines/director/lingo/lingo-gr.y" +  case 94: +#line 442 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_lineOf); ;}      break; -  case 94: -#line 437 "engines/director/lingo/lingo-gr.y" +  case 95: +#line 443 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_lineToOf); ;}      break; -  case 95: -#line 438 "engines/director/lingo/lingo-gr.y" +  case 96: +#line 444 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_wordOf); ;}      break; -  case 96: -#line 439 "engines/director/lingo/lingo-gr.y" +  case 97: +#line 445 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_wordToOf); ;}      break; -  case 97: -#line 440 "engines/director/lingo/lingo-gr.y" +  case 98: +#line 446 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeMe((yyvsp[(3) - (4)].s), 0); ;}      break; -  case 98: -#line 441 "engines/director/lingo/lingo-gr.y" +  case 99: +#line 447 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeMe((yyvsp[(3) - (6)].s), (yyvsp[(5) - (6)].narg)); ;}      break; -  case 99: -#line 442 "engines/director/lingo/lingo-gr.y" +  case 100: +#line 448 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeMe(nullptr, 0); ;}      break; -  case 100: -#line 445 "engines/director/lingo/lingo-gr.y" +  case 101: +#line 451 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);  		delete (yyvsp[(1) - (2)].s); ;}      break; -  case 101: -#line 450 "engines/director/lingo/lingo-gr.y" +  case 102: +#line 456 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_printtop); ;}      break; -  case 104: -#line 453 "engines/director/lingo/lingo-gr.y" +  case 105: +#line 459 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_exitRepeat); ;}      break; -  case 105: -#line 454 "engines/director/lingo/lingo-gr.y" +  case 106: +#line 460 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_procret); ;}      break; -  case 109: -#line 458 "engines/director/lingo/lingo-gr.y" +  case 110: +#line 464 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 0);  		delete (yyvsp[(1) - (1)].s); ;}      break; -  case 110: -#line 461 "engines/director/lingo/lingo-gr.y" +  case 111: +#line 467 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);  		delete (yyvsp[(1) - (2)].s); ;}      break; -  case 111: -#line 464 "engines/director/lingo/lingo-gr.y" +  case 112: +#line 470 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeFunc((yyvsp[(1) - (2)].s), 1);  		delete (yyvsp[(1) - (2)].s); ;}      break; -  case 112: -#line 467 "engines/director/lingo/lingo-gr.y" +  case 113: +#line 473 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_voidpush);  		g_lingo->codeFunc((yyvsp[(1) - (1)].s), 1);  		delete (yyvsp[(1) - (1)].s); ;}      break; -  case 113: -#line 471 "engines/director/lingo/lingo-gr.y" +  case 114: +#line 477 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeFunc((yyvsp[(1) - (2)].s), (yyvsp[(2) - (2)].narg)); ;}      break; -  case 114: -#line 472 "engines/director/lingo/lingo-gr.y" +  case 115: +#line 478 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_open); ;}      break; -  case 115: -#line 473 "engines/director/lingo/lingo-gr.y" +  case 116: +#line 479 "engines/director/lingo/lingo-gr.y"      { g_lingo->code2(g_lingo->c_voidpush, g_lingo->c_open); ;}      break; -  case 116: -#line 474 "engines/director/lingo/lingo-gr.y" +  case 117: +#line 480 "engines/director/lingo/lingo-gr.y"      { Common::String s(*(yyvsp[(1) - (3)].s)); s += '-'; s += *(yyvsp[(2) - (3)].s); g_lingo->codeFunc(&s, (yyvsp[(3) - (3)].narg)); ;}      break; -  case 117: -#line 477 "engines/director/lingo/lingo-gr.y" +  case 118: +#line 483 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}      break; -  case 118: -#line 478 "engines/director/lingo/lingo-gr.y" +  case 119: +#line 484 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_global); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}      break; -  case 119: -#line 481 "engines/director/lingo/lingo-gr.y" +  case 120: +#line 487 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}      break; -  case 120: -#line 482 "engines/director/lingo/lingo-gr.y" +  case 121: +#line 488 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_property); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}      break; -  case 121: -#line 485 "engines/director/lingo/lingo-gr.y" +  case 122: +#line 491 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(1) - (1)].s)->c_str()); delete (yyvsp[(1) - (1)].s); ;}      break; -  case 122: -#line 486 "engines/director/lingo/lingo-gr.y" +  case 123: +#line 492 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_instance); g_lingo->codeString((yyvsp[(3) - (3)].s)->c_str()); delete (yyvsp[(3) - (3)].s); ;}      break; -  case 123: -#line 497 "engines/director/lingo/lingo-gr.y" +  case 124: +#line 503 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotoloop); ;}      break; -  case 124: -#line 498 "engines/director/lingo/lingo-gr.y" +  case 125: +#line 504 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotonext); ;}      break; -  case 125: -#line 499 "engines/director/lingo/lingo-gr.y" +  case 126: +#line 505 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_gotoprevious); ;}      break; -  case 126: -#line 500 "engines/director/lingo/lingo-gr.y" +  case 127: +#line 506 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(1);  		g_lingo->code1(g_lingo->c_goto); ;}      break; -  case 127: -#line 504 "engines/director/lingo/lingo-gr.y" +  case 128: +#line 510 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(3);  		g_lingo->code1(g_lingo->c_goto); ;}      break; -  case 128: -#line 508 "engines/director/lingo/lingo-gr.y" +  case 129: +#line 514 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(2);  		g_lingo->code1(g_lingo->c_goto); ;}      break; -  case 131: -#line 518 "engines/director/lingo/lingo-gr.y" +  case 132: +#line 524 "engines/director/lingo/lingo-gr.y"      { g_lingo->code1(g_lingo->c_playdone); ;}      break; -  case 132: -#line 519 "engines/director/lingo/lingo-gr.y" +  case 133: +#line 525 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(1);  		g_lingo->code1(g_lingo->c_play); ;}      break; -  case 133: -#line 523 "engines/director/lingo/lingo-gr.y" +  case 134: +#line 529 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(3);  		g_lingo->code1(g_lingo->c_play); ;}      break; -  case 134: -#line 527 "engines/director/lingo/lingo-gr.y" +  case 135: +#line 533 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_intpush);  		g_lingo->codeInt(2);  		g_lingo->code1(g_lingo->c_play); ;}      break; -  case 135: -#line 531 "engines/director/lingo/lingo-gr.y" +  case 136: +#line 537 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeSetImmediate(true); ;}      break; -  case 136: -#line 531 "engines/director/lingo/lingo-gr.y" +  case 137: +#line 537 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->codeSetImmediate(false);  		g_lingo->codeFunc((yyvsp[(1) - (3)].s), (yyvsp[(3) - (3)].narg)); ;}      break; -  case 137: -#line 561 "engines/director/lingo/lingo-gr.y" +  case 138: +#line 567 "engines/director/lingo/lingo-gr.y"      { g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); ;}      break; -  case 138: -#line 562 "engines/director/lingo/lingo-gr.y" +  case 139: +#line 568 "engines/director/lingo/lingo-gr.y"      {  			g_lingo->code1(g_lingo->c_procret);  			g_lingo->define(*(yyvsp[(2) - (8)].s), (yyvsp[(4) - (8)].code), (yyvsp[(5) - (8)].narg)); @@ -2850,18 +2862,18 @@ yyreduce:  			g_lingo->_indef = kStateNone; ;}      break; -  case 139: -#line 567 "engines/director/lingo/lingo-gr.y" +  case 140: +#line 573 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeFactory(*(yyvsp[(2) - (2)].s)); ;}      break; -  case 140: -#line 568 "engines/director/lingo/lingo-gr.y" +  case 141: +#line 574 "engines/director/lingo/lingo-gr.y"      { g_lingo->_indef = kStateInArgs; ;}      break; -  case 141: -#line 569 "engines/director/lingo/lingo-gr.y" +  case 142: +#line 575 "engines/director/lingo/lingo-gr.y"      {  			g_lingo->code1(g_lingo->c_procret);  			g_lingo->define(*(yyvsp[(1) - (7)].s), (yyvsp[(3) - (7)].code), (yyvsp[(4) - (7)].narg) + 1, &g_lingo->_currentFactory); @@ -2869,8 +2881,8 @@ yyreduce:  			g_lingo->_indef = kStateNone; ;}      break; -  case 142: -#line 574 "engines/director/lingo/lingo-gr.y" +  case 143: +#line 580 "engines/director/lingo/lingo-gr.y"      {	// D3  		g_lingo->code1(g_lingo->c_procret);  		g_lingo->define(*(yyvsp[(1) - (8)].s), (yyvsp[(2) - (8)].code), (yyvsp[(3) - (8)].narg)); @@ -2881,8 +2893,8 @@ yyreduce:  		checkEnd((yyvsp[(7) - (8)].s), (yyvsp[(1) - (8)].s)->c_str(), false); ;}      break; -  case 143: -#line 582 "engines/director/lingo/lingo-gr.y" +  case 144: +#line 588 "engines/director/lingo/lingo-gr.y"      {	// D4. No 'end' clause  		g_lingo->code1(g_lingo->c_procret);  		g_lingo->define(*(yyvsp[(1) - (6)].s), (yyvsp[(2) - (6)].code), (yyvsp[(3) - (6)].narg)); @@ -2891,38 +2903,38 @@ yyreduce:  		g_lingo->_ignoreMe = false; ;}      break; -  case 144: -#line 589 "engines/director/lingo/lingo-gr.y" +  case 145: +#line 595 "engines/director/lingo/lingo-gr.y"      { (yyval.s) = (yyvsp[(2) - (2)].s); g_lingo->_indef = kStateInArgs; g_lingo->_currentFactory.clear(); g_lingo->_ignoreMe = true; ;}      break; -  case 145: -#line 591 "engines/director/lingo/lingo-gr.y" +  case 146: +#line 597 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 0; ;}      break; -  case 146: -#line 592 "engines/director/lingo/lingo-gr.y" +  case 147: +#line 598 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(1) - (1)].s)); (yyval.narg) = 1; ;}      break; -  case 147: -#line 593 "engines/director/lingo/lingo-gr.y" +  case 148: +#line 599 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(3) - (3)].s)); (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break; -  case 148: -#line 594 "engines/director/lingo/lingo-gr.y" +  case 149: +#line 600 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArg((yyvsp[(4) - (4)].s)); (yyval.narg) = (yyvsp[(1) - (4)].narg) + 1; ;}      break; -  case 152: -#line 602 "engines/director/lingo/lingo-gr.y" +  case 153: +#line 608 "engines/director/lingo/lingo-gr.y"      { g_lingo->codeArgStore(); g_lingo->_indef = kStateInDef; ;}      break; -  case 153: -#line 605 "engines/director/lingo/lingo-gr.y" +  case 154: +#line 611 "engines/director/lingo/lingo-gr.y"      {  		g_lingo->code1(g_lingo->c_call);  		g_lingo->codeString((yyvsp[(1) - (2)].s)->c_str()); @@ -2931,34 +2943,34 @@ yyreduce:  		g_lingo->code1(numpar); ;}      break; -  case 154: -#line 613 "engines/director/lingo/lingo-gr.y" +  case 155: +#line 619 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 0; ;}      break; -  case 155: -#line 614 "engines/director/lingo/lingo-gr.y" +  case 156: +#line 620 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 1; ;}      break; -  case 156: -#line 615 "engines/director/lingo/lingo-gr.y" +  case 157: +#line 621 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break; -  case 157: -#line 618 "engines/director/lingo/lingo-gr.y" +  case 158: +#line 624 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = 1; ;}      break; -  case 158: -#line 619 "engines/director/lingo/lingo-gr.y" +  case 159: +#line 625 "engines/director/lingo/lingo-gr.y"      { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break;  /* Line 1267 of yacc.c.  */ -#line 2962 "engines/director/lingo/lingo-gr.cpp" +#line 2974 "engines/director/lingo/lingo-gr.cpp"        default: break;      }    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3172,6 +3184,6 @@ yyreturn:  } -#line 622 "engines/director/lingo/lingo-gr.y" +#line 628 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.h b/engines/director/lingo/lingo-gr.h index c5e73ff8f4..0441764eb3 100644 --- a/engines/director/lingo/lingo-gr.h +++ b/engines/director/lingo/lingo-gr.h @@ -70,10 +70,10 @@       STRING = 286,       HANDLER = 287,       SYMBOL = 288, -     THEOBJECTFIELD = 289, -     ENDCLAUSE = 290, -     tPLAYACCEL = 291, -     tMETHOD = 292, +     ENDCLAUSE = 289, +     tPLAYACCEL = 290, +     tMETHOD = 291, +     THEOBJECTFIELD = 292,       tDOWN = 293,       tELSE = 294,       tELSIF = 295, @@ -163,10 +163,10 @@  #define STRING 286  #define HANDLER 287  #define SYMBOL 288 -#define THEOBJECTFIELD 289 -#define ENDCLAUSE 290 -#define tPLAYACCEL 291 -#define tMETHOD 292 +#define ENDCLAUSE 289 +#define tPLAYACCEL 290 +#define tMETHOD 291 +#define THEOBJECTFIELD 292  #define tDOWN 293  #define tELSE 294  #define tELSIF 295 diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index 93d61a58ad..73ced14898 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -103,8 +103,9 @@ void checkEnd(Common::String *token, const char *expect, bool required) {  %token<f> FLOAT  %token<s> BLTIN BLTINNOARGS BLTINNOARGSORONE BLTINONEARG BLTINARGLIST TWOWORDBUILTIN  %token<s> FBLTIN FBLTINNOARGS FBLTINONEARG FBLTINARGLIST RBLTIN RBLTINONEARG -%token<s> ID STRING HANDLER SYMBOL THEOBJECTFIELD +%token<s> ID STRING HANDLER SYMBOL  %token<s> ENDCLAUSE tPLAYACCEL tMETHOD +%token<objectfield> THEOBJECTFIELD  %token tDOWN tELSE tELSIF tEXIT tGLOBAL tGO tIF tINTO tLOOP tMACRO  %token tMOVIE tNEXT tOF tPREVIOUS tPUT tREPEAT tSET tTHEN tTO tWHEN  %token tWITH tWHILE tNLELSE tFACTORY tOPEN tPLAY tDONE tINSTANCE @@ -186,6 +187,11 @@ asgn: tPUT expr tINTO ID 		{  		g_lingo->codeInt($2[0]);  		g_lingo->codeInt($2[1]);  		$$ = $5; } +	| tSET THEOBJECTFIELD tTO expr	{ +		g_lingo->code1(g_lingo->c_objectfieldassign); +		g_lingo->codeString($2.s->c_str()); +		g_lingo->codeInt($2.e); +		$$ = $4; }  	;  stmtoneliner: macro diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index e90fa3f60d..d6c48896eb 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -842,4 +842,8 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) {  	}  } +void Lingo::setObjectField(Common::String &obj, int field, Datum &d) { +	warning("STUB: setObjectField(\"%s\", %d, ...)", obj.c_str(), field); +} +  } // End of namespace Director diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h index 57eb36f993..3deb44e830 100644 --- a/engines/director/lingo/lingo.h +++ b/engines/director/lingo/lingo.h @@ -322,6 +322,7 @@ public:  	static void c_theentitypush();  	static void c_theentityassign(); +	static void c_objectfieldassign();  	static void c_repeatwhilecode();  	static void c_repeatwithcode(); @@ -571,6 +572,7 @@ public:  	Datum getTheEntity(int entity, Datum &id, int field);  	Datum getTheSprite(Datum &id, int field);  	Datum getTheCast(Datum &id, int field); +	void setObjectField(Common::String &obj, int field, Datum &d);  public:  	bool isInArgStack(Common::String *s); | 
