diff options
| -rw-r--r-- | engines/director/lingo/lingo-gr.cpp | 803 | ||||
| -rw-r--r-- | engines/director/lingo/lingo-gr.y | 8 | 
2 files changed, 417 insertions, 394 deletions
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp index e82270e0de..5b1db0e762 100644 --- a/engines/director/lingo/lingo-gr.cpp +++ b/engines/director/lingo/lingo-gr.cpp @@ -518,18 +518,18 @@ union yyalloc  #endif  /* YYFINAL -- State number of the termination state.  */ -#define YYFINAL  112 +#define YYFINAL  114  /* YYLAST -- Last index in YYTABLE.  */ -#define YYLAST   1601 +#define YYLAST   1635  /* YYNTOKENS -- Number of terminals.  */  #define YYNTOKENS  96  /* YYNNTS -- Number of nonterminals.  */ -#define YYNNTS  40 +#define YYNNTS  41  /* YYNRULES -- Number of rules.  */ -#define YYNRULES  151 +#define YYNRULES  153  /* YYNRULES -- Number of states.  */ -#define YYNSTATES  331 +#define YYNSTATES  335  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  #define YYUNDEFTOK  2 @@ -597,7 +597,7 @@ static const yytype_uint16 yyprhs[] =       475,   478,   481,   484,   488,   491,   494,   496,   500,   503,       506,   509,   513,   516,   517,   521,   522,   531,   534,   535,       544,   545,   546,   557,   558,   560,   564,   569,   570,   573, -     574,   576 +     574,   576,   580,   582  };  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */ @@ -660,7 +660,8 @@ static const yytype_int16 yyrhs[] =        98,   133,   116,    -1,    -1,    -1,    79,    21,   130,   114,       131,   132,    98,   133,   116,    25,    -1,    -1,    21,    -1,       132,    95,    21,    -1,   132,    98,    95,    21,    -1,    -1, -      21,   135,    -1,    -1,   118,    -1,   135,    95,   118,    -1 +      21,   136,    -1,    -1,   118,    -1,   135,    95,   118,    -1, +     118,    -1,   135,    95,   118,    -1  };  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */ @@ -681,7 +682,7 @@ static const yytype_uint16 yyrline[] =       494,   495,   496,   499,   502,   507,   508,   511,   512,   515,       516,   519,   522,   525,   525,   555,   555,   561,   564,   564,       569,   570,   569,   580,   581,   582,   583,   585,   589,   597, -     598,   599 +     598,   599,   602,   603  };  #endif @@ -710,7 +711,7 @@ static const char *const yytname[] =    "repeatwith", "if", "elseif", "begin", "end", "stmtlist", "when", "expr",    "func", "globallist", "instancelist", "gotofunc", "gotoframe",    "gotomovie", "playfunc", "@1", "defn", "@2", "@3", "@4", "@5", "argdef", -  "argstore", "macro", "arglist", 0 +  "argstore", "macro", "arglist", "nonemptyarglist", 0  };  #endif @@ -750,7 +751,7 @@ static const yytype_uint8 yyr1[] =       122,   122,   122,   122,   122,   123,   123,   124,   124,   125,       125,   125,   125,   126,   125,   128,   127,   127,   129,   127,       130,   131,   127,   132,   132,   132,   132,   133,   134,   135, -     135,   135 +     135,   135,   136,   136  };  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ @@ -771,7 +772,7 @@ static const yytype_uint8 yyr2[] =         2,     2,     2,     3,     2,     2,     1,     3,     2,     2,         2,     3,     2,     0,     3,     0,     8,     2,     0,     8,         0,     0,    10,     0,     1,     3,     4,     0,     2,     0, -       1,     3 +       1,     3,     1,     3  };  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -786,135 +787,150 @@ static const yytype_uint8 yydefact[] =       149,     0,     3,    66,    23,    11,    24,     0,     0,     0,         0,    21,     8,    99,   100,     7,     9,     5,     4,    63,         0,    66,    65,   106,   105,   149,   150,   109,   149,   149, -     148,   149,   101,   115,   103,     0,   119,     0,   120,     0, -     121,   126,   122,   124,   135,    98,     0,    47,     0,     0, -       0,     0,   137,   138,   113,   129,   130,   132,   117,   104, -      79,     0,     0,     0,     0,     0,   140,     0,    84,    85, -       0,     0,     1,     6,     0,     0,     0,     0,    44,    52, -       0,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,   149,     0,   150,     0, -       0,   114,     0,   134,     0,   125,   128,     0,   123,    51, -       0,     0,     0,    48,     0,     0,     0,     0,     0,    56, -      51,     0,   131,     0,     0,     0,     0,     0,     0,     0, -       0,     0,     0,     0,    51,     0,    86,    87,     2,     0, -      52,     0,     0,    51,     0,    28,    75,    76,    74,    77, -      78,    71,    81,    82,    83,    80,    67,    68,    69,    70, -      72,    73,   108,   151,    62,   116,   127,   143,    12,    13, -      14,    19,    16,     0,     0,    18,    15,   143,   112,   118, -      90,     0,    92,     0,    94,     0,    96,     0,    88,    89, -     141,   110,   149,    53,     0,    46,    53,     0,    45,   144, -       0,    20,    17,     0,     0,     0,     0,     0,   143,     0, -      52,     0,     0,    52,    52,    22,     0,   147,   147,    91, -      93,    95,    97,     0,   111,    54,    55,     0,     0,    52, -      51,    32,   145,     0,    53,    53,   147,    25,    52,    53, -      29,    53,     0,    50,    51,    52,    40,     0,   146,   136, -     139,    53,    53,    52,    52,    52,    42,    38,     0,     0, -      39,    35,     0,     0,    52,     0,     0,    37,     0,     0, -      52,    51,    52,    51,   142,     0,    26,    30,    31,    51, -      33,     0,    34,     0,    27,    53,    36,    52,    52,    41, -      43 +     152,     0,   148,   149,   101,   115,   103,     0,   119,     0, +     120,     0,   121,   126,   122,   124,   135,    98,     0,    47, +       0,     0,     0,     0,   137,   138,   113,   129,   130,   132, +     117,   104,    79,     0,     0,     0,     0,     0,   140,     0, +      84,    85,     0,     0,     1,     6,     0,     0,     0,     0, +      44,    52,     0,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,   149,     0, +     150,     0,     0,   114,     0,     0,   134,     0,   125,   128, +       0,   123,    51,     0,     0,     0,    48,     0,     0,     0, +       0,     0,    56,    51,     0,   131,     0,     0,     0,     0, +       0,     0,     0,     0,     0,     0,     0,    51,     0,    86, +      87,     2,     0,    52,     0,     0,    51,     0,    28,    75, +      76,    74,    77,    78,    71,    81,    82,    83,    80,    67, +      68,    69,    70,    72,    73,   108,   151,    62,   153,   116, +     127,   143,    12,    13,    14,    19,    16,     0,     0,    18, +      15,   143,   112,   118,    90,     0,    92,     0,    94,     0, +      96,     0,    88,    89,   141,   110,   149,    53,     0,    46, +      53,     0,    45,   144,     0,    20,    17,     0,     0,     0, +       0,     0,   143,     0,    52,     0,     0,    52,    52,    22, +       0,   147,   147,    91,    93,    95,    97,     0,   111,    54, +      55,     0,     0,    52,    51,    32,   145,     0,    53,    53, +     147,    25,    52,    53,    29,    53,     0,    50,    51,    52, +      40,     0,   146,   136,   139,    53,    53,    52,    52,    52, +      42,    38,     0,     0,    39,    35,     0,     0,    52,     0, +       0,    37,     0,     0,    52,    51,    52,    51,   142,     0, +      26,    30,    31,    51,    33,     0,    34,     0,    27,    53, +      36,    52,    52,    41,    43  };  /* YYDEFGOTO[NTERM-NUM].  */  static const yytype_int16 yydefgoto[] =  { -      -1,    41,   265,    42,    61,    44,   266,    46,   312,   295, -     296,   286,   297,   117,    47,    48,    49,   287,   207,   185, -     250,    50,    51,   255,    74,    99,    53,    82,    83,    54, -      71,    55,   149,   160,   174,   248,   240,   274,    56,   142 +      -1,    41,   269,    42,    61,    44,   270,    46,   316,   299, +     300,   290,   301,   119,    47,    48,    49,   291,   211,   188, +     254,    50,    51,   259,    76,   101,    53,    84,    85,    54, +      73,    55,   152,   163,   177,   252,   244,   278,    56,   144, +      72  };  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing     STATE-NUM.  */ -#define YYPACT_NINF -240 +#define YYPACT_NINF -241  static const yytype_int16 yypact[] =  { -     326,   -69,  -240,  -240,  1001,  -240,  -240,  1001,  1001,  1067, -      44,   409,  -240,  -240,  -240,   -20,    46,   900,  -240,    62, -    1001,    58,    74,    67,    73,    75,  1001,   966,    80,  1001, -    1001,  1001,  1001,  1001,  1001,    87,   -10,  1001,  1001,  1001, -    1001,    14,  -240,    16,  -240,  -240,  -240,    29,    33,  1092, -    1001,  1509,  -240,  -240,  -240,  -240,  -240,  -240,  -240,    30, -    1001,  -240,  1509,  1509,  1509,  1001,  1509,    45,  1001,  1001, -      45,  1001,  -240,  -240,    47,  1001,  -240,  1001,  -240,    82, -    -240,  1509,     9,  -240,  -240,   377,   123,  -240,   -39,  1001, -     -24,   100,  -240,  -240,  1354,  -240,     9,  -240,  -240,    51, -     -11,  1131,  1163,  1195,  1227,  1385,  -240,   126,   -11,   -11, -    1447,    17,  -240,   494,  1092,  1001,  1092,   104,  1478,  1509, -    1001,  1001,  1001,  1001,  1001,  1001,  1001,  1001,  1001,  1001, -    1001,  1001,  1001,  1001,  1001,  1001,  1001,   377,  1447,   -35, -    1001,    45,   -31,    45,   129,  1509,  1509,  1001,  -240,  -240, -     130,  1001,  1001,  -240,  1001,  1001,   803,  1001,  1001,  -240, -    -240,  1001,  -240,   133,  1001,  1001,  1001,  1001,  1001,  1001, -    1001,  1001,  1001,  1001,  -240,     8,  -240,  -240,  -240,    70, -    1509,    71,  1416,   -69,  1001,  -240,   863,   863,   863,   -11, -     -11,   -11,  1509,   863,   863,  1061,   173,   173,   -11,   -11, -    1509,  1509,  -240,  1509,  -240,  -240,  1509,   136,  -240,  1509, -    1509,  1509,  1509,  1001,  1001,  1509,  1509,   136,  1509,  -240, -    1509,   140,  1509,  1259,  1509,  1291,  1509,  1323,  1509,  1509, -    -240,  -240,  1001,  -240,     2,  -240,  -240,   826,  1509,  -240, -     -43,  1509,  1509,   -43,  1001,  1001,  1001,  1001,   136,    10, -     660,   117,  1001,   660,  -240,  -240,   143,    81,    81,  1509, -    1509,  1509,  1509,   -43,  -240,  -240,  -240,   152,  1001,  1509, -     -14,   -26,  -240,   158,  -240,  -240,    81,  -240,  1509,  -240, -    -240,  -240,   153,  -240,  -240,   153,  -240,  1092,  -240,   660, -     660,  -240,  -240,   660,   660,   153,   153,  -240,  1092,   826, -    -240,   131,   138,   577,   660,   159,   163,  -240,   164,   145, -    -240,  -240,  -240,  -240,  -240,   166,  -240,  -240,  -240,  -240, -    -240,   826,  -240,   743,  -240,   743,  -240,  -240,   660,  -240, -    -240 +     288,   -17,  -241,  -241,   963,  -241,  -241,   963,   963,  1029, +      35,   371,  -241,  -241,  -241,    21,    54,   862,  -241,    68, +     963,    58,    74,    76,    81,    87,   963,   928,    88,   963, +     963,   963,   963,   963,   963,    91,   -10,   963,   963,   963, +     963,     2,  -241,     3,  -241,  -241,  -241,    24,    33,  1054, +     963,  1543,  -241,  -241,  -241,  -241,  -241,  -241,  -241,    27, +     963,  -241,  1543,  1543,  1543,   963,  1543,    25,   963,   963, +    1347,    47,  -241,   963,  -241,  -241,    50,   963,  -241,   963, +    -241,    83,  -241,  1543,    65,  -241,  -241,   143,   126,  -241, +     -32,   963,   -24,   103,  -241,  -241,  1316,  -241,    65,  -241, +    -241,    55,   -33,   340,  1093,  1125,  1157,  1419,  -241,   131, +     -33,   -33,  1481,   -70,  -241,   456,  1054,   963,  1054,   108, +    1512,  1543,   963,   963,   963,   963,   963,   963,   963,   963, +     963,   963,   963,   963,   963,   963,   963,   963,   963,   143, +    1481,   -23,   963,    25,    -7,   963,    25,   136,  1543,  1543, +     963,  -241,  -241,   139,   963,   963,  -241,   963,   963,   765, +     963,   963,  -241,  -241,   963,  -241,   142,   963,   963,   963, +     963,   963,   963,   963,   963,   963,   963,  -241,     6,  -241, +    -241,  -241,    77,  1543,    90,  1450,   -17,   963,  -241,   825, +     825,   825,   -33,   -33,   -33,  1543,   825,   825,  1023,   130, +     130,   -33,   -33,  1543,  1543,  -241,  1543,  -241,  1383,  -241, +    1543,   145,  -241,  1543,  1543,  1543,  1543,   963,   963,  1543, +    1543,   145,  1543,  -241,  1543,  1189,  1543,  1221,  1543,  1253, +    1543,  1285,  1543,  1543,  -241,  -241,   963,  -241,    -4,  -241, +    -241,   788,  1543,  -241,   -11,  1543,  1543,   -11,   963,   963, +     963,   963,   145,     9,   622,   118,   963,   622,  -241,  -241, +     161,    89,    89,  1543,  1543,  1543,  1543,   -11,  -241,  -241, +    -241,   160,   963,  1543,    -5,   -13,  -241,   165,  -241,  -241, +      89,  -241,  1543,  -241,  -241,  -241,   158,  -241,  -241,   158, +    -241,  1054,  -241,   622,   622,  -241,  -241,   622,   622,   158, +     158,  -241,  1054,   788,  -241,   141,   147,   539,   622,   170, +     172,  -241,   177,   159,  -241,  -241,  -241,  -241,  -241,   178, +    -241,  -241,  -241,  -241,  -241,   788,  -241,   705,  -241,   705, +    -241,  -241,   622,  -241,  -241  };  /* YYPGOTO[NTERM-NUM].  */  static const yytype_int16 yypgoto[] =  { -    -240,  -240,    12,    83,    25,  -236,     0,  -240,  -240,  -240, -     -78,  -212,  -101,  -112,  -240,  -240,  -240,  -239,   -92,     7, -    -182,  -240,     1,    26,  -240,  -240,  -240,   172,    -7,  -240, -    -240,  -240,  -240,  -240,  -240,  -240,  -211,  -214,  -240,     6 +    -241,  -241,    12,    93,     7,  -240,     0,  -241,  -241,  -241, +     -58,  -235,   -69,  -112,  -241,  -241,  -241,  -239,  -134,   -34, +    -185,  -241,     1,    26,  -241,  -241,  -241,   204,   -16,  -241, +    -241,  -241,  -241,  -241,  -241,  -241,  -206,  -218,  -241,     8, +    -241  };  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If     positive, shift that token.  If negative, reduce the rule which     number is the opposite.  If zero, do what YYDEFACT says.     If YYTABLE_NINF, syntax error.  */ -#define YYTABLE_NINF -150 +#define YYTABLE_NINF -152  static const yytype_int16 yytable[] =  { -      45,   254,   179,   283,   181,    62,   243,   154,    63,    64, -      66,   280,    66,    58,   112,    67,   -10,    70,    81,    57, -      97,    85,   157,    72,   284,    43,    52,    94,    81,   251, -     100,   101,   102,   103,   104,   105,   281,   263,   108,   109, -     110,    66,   155,   298,   275,    57,   111,    77,   252,    79, -     118,   119,   256,   113,   253,   202,   298,   158,   126,   204, -     140,   137,   291,   310,   140,    68,   138,    73,   217,    66, -     138,   139,    66,   300,   141,   148,   145,   143,   146,   107, -     134,   135,   230,    84,   300,   326,    88,    89,    91,   162, -     156,   237,   289,   290,    92,    90,    93,   293,   231,   294, -     264,    98,    57,   232,   -10,   140,    86,    87,   106,   303, -     304,   177,   140,    45,   115,   118,   180,   182,   114,   136, -     147,   186,   187,   188,   189,   190,   191,   192,   193,   194, -     195,   196,   197,   198,   199,   200,   201,    66,    43,    52, -     140,   203,   144,   328,   153,   159,   163,   175,   206,   183, -     205,   208,   209,   210,   219,   211,   212,   239,   215,   216, -     233,   235,   218,   268,   272,   220,   221,   222,   223,   224, -     225,   226,   227,   228,   229,   302,   273,   277,   282,   288, -     244,   311,   283,   313,   316,   238,   309,   234,   317,   318, -     319,   324,   299,   285,   307,   236,   178,   120,   121,    96, -       0,     0,   122,   123,   124,     0,   125,     0,     0,   126, -     127,   128,     0,     0,   241,   242,     0,     0,     0,   321, -       0,   323,   129,   130,   131,   132,   133,   325,     0,     0, -       0,   134,   135,    66,     0,     0,   123,   124,   249,   125, -       0,     0,   126,     0,     0,   259,   260,   261,   262,     0, -       0,     0,   257,   269,     0,   258,     0,   267,   132,   133, -     270,   271,     0,     0,   134,   135,     0,     0,     0,   278, -       0,     0,     0,     0,     0,   276,   279,     0,     0,     0, -       0,     0,     0,     0,     0,   292,     0,     0,   118,     0, -       0,     0,   301,     0,     0,     0,     0,     0,     0,   118, -     305,   306,   308,     0,     0,     0,     0,     0,     0,     0, -       0,   315,     0,     0,     0,     0,     0,   320,     0,   322, -       0,     0,     0,   327,     0,   327,    -6,     1,     0,     0, -       0,     0,     0,     0,   329,   330,     0,     2,     3,     4, +      45,   258,   114,   -10,   182,    62,   184,    43,    63,    64, +      66,    99,    70,    58,   157,   247,   287,    67,    83,    71, +     284,    87,   160,   255,   180,   142,    52,    96,    83,   221, +     102,   103,   104,   105,   106,   107,   128,   288,   110,   111, +     112,    66,   256,   234,   279,   285,   267,   302,   113,   158, +     120,   121,   241,   115,   304,   257,    68,   161,   136,   137, +     302,   139,   295,   314,    74,   304,   140,   205,   151,    66, +     140,    57,   142,   141,    66,    75,   143,    57,   148,   109, +     149,   146,   165,   207,   260,   330,    90,    91,   142,    86, +      57,   -10,   159,   293,   294,    92,   235,    93,   297,   268, +     298,   236,    94,    79,   142,    81,    88,    89,    95,   100, +     307,   308,   108,   116,   117,    45,   138,   120,   183,   185, +     142,   150,    43,   189,   190,   191,   192,   193,   194,   195, +     196,   197,   198,   199,   200,   201,   202,   203,   204,    66, +     286,    52,   145,   206,   332,   147,   208,   156,   162,   238, +     166,   210,   178,   186,   303,   213,   214,   209,   215,   216, +     212,   219,   220,   223,   272,   222,   243,   237,   224,   225, +     226,   227,   228,   229,   230,   231,   232,   233,   153,   306, +     239,   325,   276,   327,   277,   281,   292,   287,   242,   329, +     313,   315,   317,   125,   126,   320,   127,   321,   240,   128, +     122,   123,   322,   328,   323,   124,   125,   126,   181,   127, +     154,   155,   128,   129,   130,   134,   135,   289,   245,   246, +     271,   136,   137,   274,   275,   131,   132,   133,   134,   135, +     311,    98,     0,     0,   136,   137,     0,    66,     0,   283, +       0,     0,     0,     0,   253,     0,     0,     0,   296,   263, +     264,   265,   266,     0,     0,   305,   261,   273,     0,   262, +       0,     0,     0,   309,   310,   312,     0,     0,     0,     0, +       0,     0,     0,   282,   319,     0,     0,     0,     0,   280, +     324,     0,   326,     0,     0,     0,     0,     0,    -6,     1, +       0,     0,   120,     0,     0,     0,     0,   333,   334,     2, +       3,     4,     5,   120,     6,     7,     8,     9,    10,    11, +      12,     0,    13,     0,    14,     0,     0,     0,    15,     0, +      16,    17,    18,     0,     0,    19,     0,   331,     0,   331, +      20,    21,    22,     0,     0,    23,     0,     0,     0,    24, +      25,    26,    27,     0,    28,     0,     0,     0,     0,     0, +       0,     0,     0,    29,     0,     0,     0,     0,     0,     0, +      30,    31,    32,    33,    34,     0,     0,    35,    36,     0, +       0,    37,    38,     0,     0,     0,    -6,    39,     0,     0, +     167,    40,     2,     3,     4,     5,   168,     6,     0,     0, +       0,     0,    59,    12,     0,    13,     0,   122,   123,     0, +       0,     0,   124,   125,   126,     0,   127,     0,     0,   128, +     129,   130,     0,    60,     0,    22,     0,     0,     0,     0, +       0,     0,   131,   132,   133,   134,   135,     0,     0,     0, +       0,   136,   137,     0,     0,     0,    29,     0,     0,     0, +       0,     0,     0,    30,    31,    32,    33,    34,     0,     0, +       0,     0,     0,     0,    37,    38,     0,     0,     0,     0, +      69,     0,     0,     0,    40,     0,  -149,     2,     3,     4,         5,     0,     6,     7,     8,     9,    10,    11,    12,     0,        13,     0,    14,     0,     0,     0,    15,     0,    16,    17,        18,     0,     0,    19,     0,     0,     0,     0,    20,    21, @@ -922,164 +938,167 @@ static const yytype_int16 yytable[] =        27,     0,    28,     0,     0,     0,     0,     0,     0,     0,         0,    29,     0,     0,     0,     0,     0,     0,    30,    31,        32,    33,    34,     0,     0,    35,    36,     0,     0,    37, -      38,     0,   150,     0,    -6,    39,     0,     0,     0,    40, -       2,     3,     4,     5,     0,     6,     0,     0,     0,     0, -      59,    12,     0,    13,   120,   121,     0,     0,     0,   122, -     123,   124,     0,   125,   151,   152,   126,   127,   128,     0, -       0,    60,     0,    22,     0,     0,     0,     0,     0,   129, -     130,   131,   132,   133,     0,     0,     0,     0,   134,   135, +      38,     0,     0,     0,     0,    39,     0,     0,     0,    40, +       2,     3,     4,     5,     0,     6,     7,     8,     9,    10, +      59,    12,     0,    13,   318,    14,     0,     0,     0,    15, +       0,    16,    17,    18,     0,     0,     0,     0,     0,     0, +       0,    20,    21,    22,     0,     0,    23,     0,     0,     0, +       0,     0,    26,    27,     0,    28,     0,     0,     0,     0,         0,     0,     0,     0,    29,     0,     0,     0,     0,     0, -       0,    30,    31,    32,    33,    34,     0,     0,     0,     0, -       0,     0,    37,    38,     0,     0,     0,     0,    69,     0, -       0,     0,    40,     0,  -149,     2,     3,     4,     5,     0, -       6,     7,     8,     9,    10,    11,    12,     0,    13,     0, -      14,     0,     0,     0,    15,     0,    16,    17,    18,     0, -       0,    19,     0,     0,     0,     0,    20,    21,    22,     0, -       0,    23,     0,     0,     0,    24,    25,    26,    27,     0, -      28,     0,     0,     0,     0,     0,     0,     0,     0,    29, -       0,     0,     0,     0,     0,     0,    30,    31,    32,    33, -      34,     0,     0,    35,    36,     0,     0,    37,    38,     0, -       0,     0,     0,    39,     0,     0,     0,    40,     2,     3, -       4,     5,     0,     6,     7,     8,     9,    10,    59,    12, -       0,    13,   314,    14,     0,     0,     0,    15,     0,    16, -      17,    18,     0,     0,     0,     0,     0,     0,     0,    20, -      21,    22,     0,     0,    23,     0,     0,     0,     0,     0, -      26,    27,     0,    28,     0,     0,     0,     0,     0,     0, -       0,     0,    29,     0,     0,     0,     0,     0,     0,    30, -      31,    32,    33,    34,     0,     0,     0,    36,     0,     0, -      37,    38,     0,     0,     0,    57,    39,     0,     0,     0, -      40,     2,     3,     4,     5,     0,     6,     7,     8,     9, -      10,    59,    12,     0,    13,     0,    14,     0,     0,     0, -      15,     0,    16,    17,    18,     0,     0,     0,     0,     0, -       0,     0,    20,    21,    22,     0,     0,    23,     0,     0, -       0,     0,     0,    26,    27,     0,    28,     0,     0,     0, -       0,     0,     0,     0,     0,    29,     0,     0,     0,     0, -       0,     0,    30,    31,    32,    33,    34,     0,     0,     0, -      36,     0,     0,    37,    38,     0,     0,     0,    57,    39, -       0,     0,     0,    40,     2,     3,     4,     5,     0,     6, -       7,     8,     9,    10,    59,    12,     0,    13,     0,    14, -       0,     0,     0,    15,     0,    16,    17,    18,     0,     0, -       0,     0,     0,     0,     0,    20,    21,    22,     0,     0, -      23,     0,     0,     0,     0,     0,    26,    27,     0,    28, -       0,     0,     0,     0,     0,     0,     0,     0,    29,     0, +       0,    30,    31,    32,    33,    34,     0,     0,     0,    36, +       0,     0,    37,    38,     0,     0,     0,    57,    39,     0, +       0,     0,    40,     2,     3,     4,     5,     0,     6,     7, +       8,     9,    10,    59,    12,     0,    13,     0,    14,     0, +       0,     0,    15,     0,    16,    17,    18,     0,     0,     0, +       0,     0,     0,     0,    20,    21,    22,     0,     0,    23, +       0,     0,     0,     0,     0,    26,    27,     0,    28,     0, +       0,     0,     0,     0,     0,     0,     0,    29,     0,     0, +       0,     0,     0,     0,    30,    31,    32,    33,    34,     0, +       0,     0,    36,     0,     0,    37,    38,     0,     0,     0, +      57,    39,     0,     0,     0,    40,     2,     3,     4,     5, +       0,     6,     7,     8,     9,    10,    59,    12,     0,    13, +       0,    14,     0,     0,     0,    15,     0,    16,    17,    18, +       0,     0,     0,     0,     0,     0,     0,    20,    21,    22, +       0,     0,    23,     0,     0,     0,     0,     0,    26,    27, +       0,    28,     0,     0,     0,     0,     0,     0,     0,     0, +      29,     0,     0,     0,     0,     0,     0,    30,    31,    32, +      33,    34,     0,     0,     0,    36,     0,     0,    37,    38, +       0,     0,     0,     0,    39,     0,     0,     0,    40,     2, +       3,     4,     5,     0,     6,     7,     8,     9,    10,    59, +      12,   217,    13,     0,    14,     0,     0,     0,    15,     0, +      16,    17,   122,   123,     0,     0,     0,   124,   125,   126, +      20,   127,    22,     0,   128,   129,   130,     0,     0,     0, +       0,    26,    27,     0,    28,     0,   218,   131,   132,   133, +     134,   135,     0,    29,     0,     0,   136,   137,     0,     0, +      30,    31,    32,    33,    34,     0,     0,     0,    36,     0, +       0,    37,    38,     2,     3,     4,     5,    39,     6,     0, +       0,    40,     0,    59,    12,     0,    13,     0,   125,   126, +       0,   127,     0,    77,   128,     0,     0,     0,    78,     0, +      79,    80,    81,    82,    60,     0,    22,   131,   132,   133, +     134,   135,     0,     0,     0,     0,   136,   137,     0,     0, +       0,     0,     0,     0,     0,     0,     0,    29,     0,     0, +       0,     0,     0,     0,    30,    31,    32,    33,    34,     2, +       3,     4,     5,     0,     6,    37,    38,     0,     0,    59, +      12,    39,    13,     0,     0,    40,     0,     0,     0,    77, +       0,     0,     0,     0,     0,     0,    79,     0,    81,     0, +      60,     0,    22,     0,     2,     3,     4,     5,     0,     6, +       0,     0,     0,    97,    59,    12,     0,    13,     0,     0, +       0,     0,     0,    29,     0,     0,     0,     0,     0,     0, +      30,    31,    32,    33,    34,    60,     0,    22,     0,     0, +       0,    37,    38,     0,     0,     0,     0,    39,     0,     0, +       0,    40,     0,     0,     0,     0,     0,     0,    29,     0,         0,     0,     0,     0,     0,    30,    31,    32,    33,    34, -       0,     0,     0,    36,     0,     0,    37,    38,     0,     0, -       0,     0,    39,     0,     0,     0,    40,     2,     3,     4, -       5,     0,     6,     7,     8,     9,    10,    59,    12,   213, -      13,     0,    14,     0,     0,     0,    15,     0,    16,    17, -     120,   121,     0,     0,     0,   122,   123,   124,    20,   125, -      22,     0,   126,   127,   128,     0,     0,     0,     0,    26, -      27,     0,    28,     0,   214,   129,   130,   131,   132,   133, -       0,    29,     0,     0,   134,   135,     0,     0,    30,    31, -      32,    33,    34,     0,     0,     0,    36,     0,     0,    37, -      38,     2,     3,     4,     5,    39,     6,     0,     0,    40, -       0,    59,    12,     0,    13,     0,   123,   124,     0,   125, -       0,    75,   126,     0,     0,     0,    76,     0,    77,    78, -      79,    80,    60,     0,    22,   129,   130,   131,   132,   133, -       0,     0,     0,     0,   134,   135,     0,     0,     0,     0, -       0,     0,     0,     0,     0,    29,     0,     0,     0,     0, -       0,     0,    30,    31,    32,    33,    34,     2,     3,     4, -       5,     0,     6,    37,    38,     0,     0,    59,    12,    39, -      13,     0,     0,    40,     0,     0,     0,    75,     0,     0, -       0,     0,     0,     0,    77,     0,    79,     0,    60,     0, -      22,     0,     2,     3,     4,     5,     0,     6,     0,     0, -       0,    95,    59,    12,     0,    13,     0,     0,     0,     0, -       0,    29,     0,     0,     0,     0,     0,     0,    30,    31, -      32,    33,    34,    60,     0,    22,     0,     0,     0,    37, -      38,     0,     0,     0,     0,    39,     0,     0,     0,    40, -       0,     0,     0,     0,     0,     0,    29,     0,     0,     0, -       0,     0,     0,    30,    31,    32,    33,    34,     2,     3, -       4,     5,     0,     6,    37,    38,     0,     0,    59,    12, -      39,    13,     0,     0,    40,     0,     0,     0,     0,     0, -       0,     0,     0,     2,     3,     4,     5,     0,     6,    60, -       0,    22,     0,    59,    12,     0,    13,     0,     0,     0, -       0,     0,     0,     0,   123,   124,     0,   125,     0,     0, -     126,     0,    29,     0,    60,     0,    22,     0,     0,    30, -      31,    32,    33,    34,   130,   131,   132,   133,     0,     0, -      37,    38,   134,   135,     0,     0,    65,    29,     0,     0, -      40,     0,     0,     0,    30,    31,    32,    33,    34,     0, -       0,   164,     0,     0,     0,    37,    38,   165,     0,     0, -       0,   116,     0,     0,     0,    40,     0,     0,   120,   121, -       0,     0,     0,   122,   123,   124,     0,   125,     0,     0, -     126,   127,   128,   166,     0,     0,     0,     0,     0,   167, -       0,     0,     0,   129,   130,   131,   132,   133,     0,     0, -     120,   121,   134,   135,     0,   122,   123,   124,     0,   125, -       0,     0,   126,   127,   128,   168,     0,     0,     0,     0, -       0,   169,     0,     0,     0,   129,   130,   131,   132,   133, -       0,     0,   120,   121,   134,   135,     0,   122,   123,   124, -       0,   125,     0,     0,   126,   127,   128,   170,     0,     0, -       0,     0,     0,   171,     0,     0,     0,   129,   130,   131, -     132,   133,     0,     0,   120,   121,   134,   135,     0,   122, -     123,   124,     0,   125,     0,     0,   126,   127,   128,   245, -       0,     0,     0,     0,     0,     0,     0,     0,     0,   129, -     130,   131,   132,   133,     0,     0,   120,   121,   134,   135, -       0,   122,   123,   124,     0,   125,     0,     0,   126,   127, -     128,   246,     0,     0,     0,     0,     0,     0,     0,     0, -       0,   129,   130,   131,   132,   133,     0,     0,   120,   121, -     134,   135,     0,   122,   123,   124,     0,   125,     0,     0, -     126,   127,   128,   247,     0,     0,     0,     0,     0,     0, -       0,     0,     0,   129,   130,   131,   132,   133,     0,     0, -     120,   121,   134,   135,     0,   122,   123,   124,     0,   125, -       0,     0,   126,   127,   128,     0,     0,     0,     0,     0, -       0,     0,   161,     0,     0,   129,   130,   131,   132,   133, -       0,   120,   121,     0,   134,   135,   122,   123,   124,     0, -     125,     0,     0,   126,   127,   128,     0,     0,     0,     0, -       0,     0,     0,     0,     0,     0,   129,   130,   131,   132, -     133,     0,   120,   121,     0,   134,   135,   122,   123,   124, -       0,   125,     0,     0,   126,   127,   128,     0,     0,     0, -       0,     0,   172,   173,     0,     0,     0,   129,   130,   131, -     132,   133,     0,   120,   121,     0,   134,   135,   122,   123, -     124,     0,   125,     0,     0,   126,   127,   128,     0,     0, -       0,     0,     0,     0,     0,     0,     0,   184,   129,   130, -     131,   132,   133,     0,   120,   121,   176,   134,   135,   122, -     123,   124,     0,   125,     0,     0,   126,   127,   128,     0, -       0,     0,     0,     0,     0,     0,     0,     0,     0,   129, -     130,   131,   132,   133,     0,   120,   121,   176,   134,   135, -     122,   123,   124,     0,   125,     0,     0,   126,   127,   128, -       0,     0,     0,     0,     0,     0,     0,     0,     0,   184, -     129,   130,   131,   132,   133,     0,   120,   121,     0,   134, -     135,   122,   123,   124,     0,   125,     0,     0,   126,   127, -     128,     0,     0,     0,     0,     0,     0,     0,     0,     0, -       0,   129,   130,   131,   132,   133,     0,     0,     0,     0, -     134,   135 +       2,     3,     4,     5,     0,     6,    37,    38,     0,     0, +      59,    12,    39,    13,     0,     0,    40,     0,     0,     0, +       0,     0,     0,     0,     0,     2,     3,     4,     5,     0, +       6,    60,     0,    22,     0,    59,    12,     0,    13,     0, +       0,     0,     0,     0,     0,     0,   125,   126,     0,   127, +       0,     0,   128,     0,    29,     0,    60,     0,    22,     0, +       0,    30,    31,    32,    33,    34,   132,   133,   134,   135, +       0,     0,    37,    38,   136,   137,     0,     0,    65,    29, +       0,     0,    40,     0,     0,     0,    30,    31,    32,    33, +      34,     0,     0,   169,     0,     0,     0,    37,    38,   170, +       0,     0,     0,   118,     0,     0,     0,    40,     0,     0, +     122,   123,     0,     0,     0,   124,   125,   126,     0,   127, +       0,     0,   128,   129,   130,   171,     0,     0,     0,     0, +       0,   172,     0,     0,     0,   131,   132,   133,   134,   135, +       0,     0,   122,   123,   136,   137,     0,   124,   125,   126, +       0,   127,     0,     0,   128,   129,   130,   173,     0,     0, +       0,     0,     0,   174,     0,     0,     0,   131,   132,   133, +     134,   135,     0,     0,   122,   123,   136,   137,     0,   124, +     125,   126,     0,   127,     0,     0,   128,   129,   130,   248, +       0,     0,     0,     0,     0,     0,     0,     0,     0,   131, +     132,   133,   134,   135,     0,     0,   122,   123,   136,   137, +       0,   124,   125,   126,     0,   127,     0,     0,   128,   129, +     130,   249,     0,     0,     0,     0,     0,     0,     0,     0, +       0,   131,   132,   133,   134,   135,     0,     0,   122,   123, +     136,   137,     0,   124,   125,   126,     0,   127,     0,     0, +     128,   129,   130,   250,     0,     0,     0,     0,     0,     0, +       0,     0,     0,   131,   132,   133,   134,   135,     0,     0, +     122,   123,   136,   137,     0,   124,   125,   126,     0,   127, +       0,     0,   128,   129,   130,   251,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   131,   132,   133,   134,   135, +       0,     0,   122,   123,   136,   137,     0,   124,   125,   126, +       0,   127,     0,     0,   128,   129,   130,     0,     0,     0, +       0,     0,     0,     0,   164,     0,     0,   131,   132,   133, +     134,   135,     0,   122,   123,     0,   136,   137,   124,   125, +     126,     0,   127,     0,     0,   128,   129,   130,     0,     0, +       0,     0,     0,     0,     0,     0,     0,     0,   131,   132, +     133,   134,   135,     0,   122,   123,     0,   136,   137,   124, +     125,   126,     0,   127,     0,     0,   128,   129,   130,     0, +       0,     0,     0,     0,     0,     0,     0,     0,     0,   131, +     132,   133,   134,   135,     0,     0,     0,     0,   136,   137, +     122,   123,  -150,     0,     0,   124,   125,   126,     0,   127, +       0,     0,   128,   129,   130,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   131,   132,   133,   134,   135, +       0,     0,     0,     0,   136,   137,   122,   123,  -151,     0, +       0,   124,   125,   126,     0,   127,     0,     0,   128,   129, +     130,     0,     0,     0,     0,     0,   175,   176,     0,     0, +       0,   131,   132,   133,   134,   135,     0,   122,   123,     0, +     136,   137,   124,   125,   126,     0,   127,     0,     0,   128, +     129,   130,     0,     0,     0,     0,     0,     0,     0,     0, +       0,   187,   131,   132,   133,   134,   135,     0,   122,   123, +     179,   136,   137,   124,   125,   126,     0,   127,     0,     0, +     128,   129,   130,     0,     0,     0,     0,     0,     0,     0, +       0,     0,     0,   131,   132,   133,   134,   135,     0,   122, +     123,   179,   136,   137,   124,   125,   126,     0,   127,     0, +       0,   128,   129,   130,     0,     0,     0,     0,     0,     0, +       0,     0,     0,   187,   131,   132,   133,   134,   135,     0, +     122,   123,     0,   136,   137,   124,   125,   126,     0,   127, +       0,     0,   128,   129,   130,     0,     0,     0,     0,     0, +       0,     0,     0,     0,     0,   131,   132,   133,   134,   135, +       0,     0,     0,     0,   136,   137  };  static const yytype_int16 yycheck[] =  { -       0,   237,   114,    29,   116,     4,   217,    46,     7,     8, -       9,    25,    11,     1,     0,     9,     0,    11,    17,    88, -      27,    20,    46,    43,    50,     0,     0,    26,    27,    27, -      29,    30,    31,    32,    33,    34,    50,   248,    37,    38, -      39,    40,    81,   282,   258,    88,    40,    38,    46,    40, -      49,    50,    95,    41,   236,    90,   295,    81,    69,    90, -      95,    60,   276,   299,    95,    21,    65,    21,   160,    68, -      69,    65,    71,   285,    68,    82,    75,    71,    77,    89, -      91,    92,   174,    21,   296,   321,    12,    13,    21,    96, -      89,   183,   274,   275,    21,    21,    21,   279,    90,   281, -      90,    21,    88,    95,    88,    95,    48,    49,    21,   291, -     292,    94,    95,   113,    81,   114,   115,   116,    89,    89, -      38,   120,   121,   122,   123,   124,   125,   126,   127,   128, -     129,   130,   131,   132,   133,   134,   135,   136,   113,   113, -      95,   140,    95,   325,    21,    45,    95,    21,   147,    45, -      21,    21,   151,   152,    21,   154,   155,    21,   157,   158, -      90,    90,   161,    46,    21,   164,   165,   166,   167,   168, -     169,   170,   171,   172,   173,   287,    95,    25,   270,    21, -      40,    50,    29,    45,    25,   184,   298,   180,    25,    25, -      45,    25,   284,   271,   295,   183,   113,    57,    58,    27, +       0,   241,     0,     0,   116,     4,   118,     0,     7,     8, +       9,    27,    11,     1,    46,   221,    29,     9,    17,    11, +      25,    20,    46,    27,    94,    95,     0,    26,    27,   163, +      29,    30,    31,    32,    33,    34,    69,    50,    37,    38, +      39,    40,    46,   177,   262,    50,   252,   286,    40,    81, +      49,    50,   186,    41,   289,   240,    21,    81,    91,    92, +     299,    60,   280,   303,    43,   300,    65,    90,    84,    68, +      69,    88,    95,    65,    73,    21,    68,    88,    77,    89, +      79,    73,    98,    90,    95,   325,    12,    13,    95,    21, +      88,    88,    91,   278,   279,    21,    90,    21,   283,    90, +     285,    95,    21,    38,    95,    40,    48,    49,    21,    21, +     295,   296,    21,    89,    81,   115,    89,   116,   117,   118, +      95,    38,   115,   122,   123,   124,   125,   126,   127,   128, +     129,   130,   131,   132,   133,   134,   135,   136,   137,   138, +     274,   115,    95,   142,   329,    95,   145,    21,    45,   183, +      95,   150,    21,    45,   288,   154,   155,    21,   157,   158, +      21,   160,   161,    21,    46,   164,    21,    90,   167,   168, +     169,   170,   171,   172,   173,   174,   175,   176,    35,   291, +      90,   315,    21,   317,    95,    25,    21,    29,   187,   323, +     302,    50,    45,    63,    64,    25,    66,    25,   186,    69, +      57,    58,    25,    25,    45,    62,    63,    64,   115,    66, +      67,    68,    69,    70,    71,    85,    86,   275,   217,   218, +     254,    91,    92,   257,   258,    82,    83,    84,    85,    86, +     299,    27,    -1,    -1,    91,    92,    -1,   236,    -1,   273, +      -1,    -1,    -1,    -1,   236,    -1,    -1,    -1,   282,   248, +     249,   250,   251,    -1,    -1,   289,   244,   256,    -1,   247, +      -1,    -1,    -1,   297,   298,   299,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,   272,   308,    -1,    -1,    -1,    -1,   267, +     314,    -1,   316,    -1,    -1,    -1,    -1,    -1,     0,     1, +      -1,    -1,   291,    -1,    -1,    -1,    -1,   331,   332,    11, +      12,    13,    14,   302,    16,    17,    18,    19,    20,    21, +      22,    -1,    24,    -1,    26,    -1,    -1,    -1,    30,    -1, +      32,    33,    34,    -1,    -1,    37,    -1,   327,    -1,   329, +      42,    43,    44,    -1,    -1,    47,    -1,    -1,    -1,    51, +      52,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1, +      72,    73,    74,    75,    76,    -1,    -1,    79,    80,    -1, +      -1,    83,    84,    -1,    -1,    -1,    88,    89,    -1,    -1, +      40,    93,    11,    12,    13,    14,    46,    16,    -1,    -1, +      -1,    -1,    21,    22,    -1,    24,    -1,    57,    58,    -1,        -1,    -1,    62,    63,    64,    -1,    66,    -1,    -1,    69, -      70,    71,    -1,    -1,   213,   214,    -1,    -1,    -1,   311, -      -1,   313,    82,    83,    84,    85,    86,   319,    -1,    -1, -      -1,    91,    92,   232,    -1,    -1,    63,    64,   232,    66, -      -1,    -1,    69,    -1,    -1,   244,   245,   246,   247,    -1, -      -1,    -1,   240,   252,    -1,   243,    -1,   250,    85,    86, -     253,   254,    -1,    -1,    91,    92,    -1,    -1,    -1,   268, -      -1,    -1,    -1,    -1,    -1,   263,   269,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,   278,    -1,    -1,   287,    -1, -      -1,    -1,   285,    -1,    -1,    -1,    -1,    -1,    -1,   298, -     293,   294,   295,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,   304,    -1,    -1,    -1,    -1,    -1,   310,    -1,   312, -      -1,    -1,    -1,   323,    -1,   325,     0,     1,    -1,    -1, -      -1,    -1,    -1,    -1,   327,   328,    -1,    11,    12,    13, +      70,    71,    -1,    42,    -1,    44,    -1,    -1,    -1,    -1, +      -1,    -1,    82,    83,    84,    85,    86,    -1,    -1,    -1, +      -1,    91,    92,    -1,    -1,    -1,    65,    -1,    -1,    -1, +      -1,    -1,    -1,    72,    73,    74,    75,    76,    -1,    -1, +      -1,    -1,    -1,    -1,    83,    84,    -1,    -1,    -1,    -1, +      89,    -1,    -1,    -1,    93,    -1,    95,    11,    12,    13,        14,    -1,    16,    17,    18,    19,    20,    21,    22,    -1,        24,    -1,    26,    -1,    -1,    -1,    30,    -1,    32,    33,        34,    -1,    -1,    37,    -1,    -1,    -1,    -1,    42,    43, @@ -1087,88 +1106,68 @@ static const yytype_int16 yycheck[] =        54,    -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,        74,    75,    76,    -1,    -1,    79,    80,    -1,    -1,    83, -      84,    -1,    35,    -1,    88,    89,    -1,    -1,    -1,    93, -      11,    12,    13,    14,    -1,    16,    -1,    -1,    -1,    -1, -      21,    22,    -1,    24,    57,    58,    -1,    -1,    -1,    62, -      63,    64,    -1,    66,    67,    68,    69,    70,    71,    -1, -      -1,    42,    -1,    44,    -1,    -1,    -1,    -1,    -1,    82, -      83,    84,    85,    86,    -1,    -1,    -1,    -1,    91,    92, +      84,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    93, +      11,    12,    13,    14,    -1,    16,    17,    18,    19,    20, +      21,    22,    -1,    24,    25,    26,    -1,    -1,    -1,    30, +      -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    42,    43,    44,    -1,    -1,    47,    -1,    -1,    -1, +      -1,    -1,    53,    54,    -1,    56,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1, -      -1,    72,    73,    74,    75,    76,    -1,    -1,    -1,    -1, -      -1,    -1,    83,    84,    -1,    -1,    -1,    -1,    89,    -1, -      -1,    -1,    93,    -1,    95,    11,    12,    13,    14,    -1, -      16,    17,    18,    19,    20,    21,    22,    -1,    24,    -1, -      26,    -1,    -1,    -1,    30,    -1,    32,    33,    34,    -1, -      -1,    37,    -1,    -1,    -1,    -1,    42,    43,    44,    -1, -      -1,    47,    -1,    -1,    -1,    51,    52,    53,    54,    -1, -      56,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65, -      -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    74,    75, -      76,    -1,    -1,    79,    80,    -1,    -1,    83,    84,    -1, -      -1,    -1,    -1,    89,    -1,    -1,    -1,    93,    11,    12, -      13,    14,    -1,    16,    17,    18,    19,    20,    21,    22, -      -1,    24,    25,    26,    -1,    -1,    -1,    30,    -1,    32, -      33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42, -      43,    44,    -1,    -1,    47,    -1,    -1,    -1,    -1,    -1, -      53,    54,    -1,    56,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72, -      73,    74,    75,    76,    -1,    -1,    -1,    80,    -1,    -1, -      83,    84,    -1,    -1,    -1,    88,    89,    -1,    -1,    -1, -      93,    11,    12,    13,    14,    -1,    16,    17,    18,    19, -      20,    21,    22,    -1,    24,    -1,    26,    -1,    -1,    -1, -      30,    -1,    32,    33,    34,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    42,    43,    44,    -1,    -1,    47,    -1,    -1, -      -1,    -1,    -1,    53,    54,    -1,    56,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1, -      -1,    -1,    72,    73,    74,    75,    76,    -1,    -1,    -1, -      80,    -1,    -1,    83,    84,    -1,    -1,    -1,    88,    89, -      -1,    -1,    -1,    93,    11,    12,    13,    14,    -1,    16, -      17,    18,    19,    20,    21,    22,    -1,    24,    -1,    26, -      -1,    -1,    -1,    30,    -1,    32,    33,    34,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    42,    43,    44,    -1,    -1, -      47,    -1,    -1,    -1,    -1,    -1,    53,    54,    -1,    56, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1, +      -1,    72,    73,    74,    75,    76,    -1,    -1,    -1,    80, +      -1,    -1,    83,    84,    -1,    -1,    -1,    88,    89,    -1, +      -1,    -1,    93,    11,    12,    13,    14,    -1,    16,    17, +      18,    19,    20,    21,    22,    -1,    24,    -1,    26,    -1, +      -1,    -1,    30,    -1,    32,    33,    34,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    42,    43,    44,    -1,    -1,    47, +      -1,    -1,    -1,    -1,    -1,    53,    54,    -1,    56,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1, +      -1,    -1,    -1,    -1,    72,    73,    74,    75,    76,    -1, +      -1,    -1,    80,    -1,    -1,    83,    84,    -1,    -1,    -1, +      88,    89,    -1,    -1,    -1,    93,    11,    12,    13,    14, +      -1,    16,    17,    18,    19,    20,    21,    22,    -1,    24, +      -1,    26,    -1,    -1,    -1,    30,    -1,    32,    33,    34, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,    44, +      -1,    -1,    47,    -1,    -1,    -1,    -1,    -1,    53,    54, +      -1,    56,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73,    74, +      75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83,    84, +      -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    93,    11, +      12,    13,    14,    -1,    16,    17,    18,    19,    20,    21, +      22,    46,    24,    -1,    26,    -1,    -1,    -1,    30,    -1, +      32,    33,    57,    58,    -1,    -1,    -1,    62,    63,    64, +      42,    66,    44,    -1,    69,    70,    71,    -1,    -1,    -1, +      -1,    53,    54,    -1,    56,    -1,    81,    82,    83,    84, +      85,    86,    -1,    65,    -1,    -1,    91,    92,    -1,    -1, +      72,    73,    74,    75,    76,    -1,    -1,    -1,    80,    -1, +      -1,    83,    84,    11,    12,    13,    14,    89,    16,    -1, +      -1,    93,    -1,    21,    22,    -1,    24,    -1,    63,    64, +      -1,    66,    -1,    31,    69,    -1,    -1,    -1,    36,    -1, +      38,    39,    40,    41,    42,    -1,    44,    82,    83,    84, +      85,    86,    -1,    -1,    -1,    -1,    91,    92,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1, +      -1,    -1,    -1,    -1,    72,    73,    74,    75,    76,    11, +      12,    13,    14,    -1,    16,    83,    84,    -1,    -1,    21, +      22,    89,    24,    -1,    -1,    93,    -1,    -1,    -1,    31, +      -1,    -1,    -1,    -1,    -1,    -1,    38,    -1,    40,    -1, +      42,    -1,    44,    -1,    11,    12,    13,    14,    -1,    16, +      -1,    -1,    -1,    55,    21,    22,    -1,    24,    -1,    -1, +      -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1, +      72,    73,    74,    75,    76,    42,    -1,    44,    -1,    -1, +      -1,    83,    84,    -1,    -1,    -1,    -1,    89,    -1,    -1, +      -1,    93,    -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,        -1,    -1,    -1,    -1,    -1,    72,    73,    74,    75,    76, -      -1,    -1,    -1,    80,    -1,    -1,    83,    84,    -1,    -1, -      -1,    -1,    89,    -1,    -1,    -1,    93,    11,    12,    13, -      14,    -1,    16,    17,    18,    19,    20,    21,    22,    46, -      24,    -1,    26,    -1,    -1,    -1,    30,    -1,    32,    33, -      57,    58,    -1,    -1,    -1,    62,    63,    64,    42,    66, -      44,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    53, -      54,    -1,    56,    -1,    81,    82,    83,    84,    85,    86, -      -1,    65,    -1,    -1,    91,    92,    -1,    -1,    72,    73, -      74,    75,    76,    -1,    -1,    -1,    80,    -1,    -1,    83, -      84,    11,    12,    13,    14,    89,    16,    -1,    -1,    93, -      -1,    21,    22,    -1,    24,    -1,    63,    64,    -1,    66, -      -1,    31,    69,    -1,    -1,    -1,    36,    -1,    38,    39, -      40,    41,    42,    -1,    44,    82,    83,    84,    85,    86, -      -1,    -1,    -1,    -1,    91,    92,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1, -      -1,    -1,    72,    73,    74,    75,    76,    11,    12,    13, -      14,    -1,    16,    83,    84,    -1,    -1,    21,    22,    89, -      24,    -1,    -1,    93,    -1,    -1,    -1,    31,    -1,    -1, -      -1,    -1,    -1,    -1,    38,    -1,    40,    -1,    42,    -1, -      44,    -1,    11,    12,    13,    14,    -1,    16,    -1,    -1, -      -1,    55,    21,    22,    -1,    24,    -1,    -1,    -1,    -1, -      -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    72,    73, -      74,    75,    76,    42,    -1,    44,    -1,    -1,    -1,    83, -      84,    -1,    -1,    -1,    -1,    89,    -1,    -1,    -1,    93, -      -1,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1, -      -1,    -1,    -1,    72,    73,    74,    75,    76,    11,    12, -      13,    14,    -1,    16,    83,    84,    -1,    -1,    21,    22, -      89,    24,    -1,    -1,    93,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    11,    12,    13,    14,    -1,    16,    42, -      -1,    44,    -1,    21,    22,    -1,    24,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    63,    64,    -1,    66,    -1,    -1, -      69,    -1,    65,    -1,    42,    -1,    44,    -1,    -1,    72, -      73,    74,    75,    76,    83,    84,    85,    86,    -1,    -1, -      83,    84,    91,    92,    -1,    -1,    89,    65,    -1,    -1, -      93,    -1,    -1,    -1,    72,    73,    74,    75,    76,    -1, -      -1,    40,    -1,    -1,    -1,    83,    84,    46,    -1,    -1, -      -1,    89,    -1,    -1,    -1,    93,    -1,    -1,    57,    58, -      -1,    -1,    -1,    62,    63,    64,    -1,    66,    -1,    -1, -      69,    70,    71,    40,    -1,    -1,    -1,    -1,    -1,    46, -      -1,    -1,    -1,    82,    83,    84,    85,    86,    -1,    -1, -      57,    58,    91,    92,    -1,    62,    63,    64,    -1,    66, +      11,    12,    13,    14,    -1,    16,    83,    84,    -1,    -1, +      21,    22,    89,    24,    -1,    -1,    93,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    11,    12,    13,    14,    -1, +      16,    42,    -1,    44,    -1,    21,    22,    -1,    24,    -1, +      -1,    -1,    -1,    -1,    -1,    -1,    63,    64,    -1,    66, +      -1,    -1,    69,    -1,    65,    -1,    42,    -1,    44,    -1, +      -1,    72,    73,    74,    75,    76,    83,    84,    85,    86, +      -1,    -1,    83,    84,    91,    92,    -1,    -1,    89,    65, +      -1,    -1,    93,    -1,    -1,    -1,    72,    73,    74,    75, +      76,    -1,    -1,    40,    -1,    -1,    -1,    83,    84,    46, +      -1,    -1,    -1,    89,    -1,    -1,    -1,    93,    -1,    -1, +      57,    58,    -1,    -1,    -1,    62,    63,    64,    -1,    66,        -1,    -1,    69,    70,    71,    40,    -1,    -1,    -1,    -1,        -1,    46,    -1,    -1,    -1,    82,    83,    84,    85,    86,        -1,    -1,    57,    58,    91,    92,    -1,    62,    63,    64, @@ -1185,28 +1184,38 @@ static const yytype_int16 yycheck[] =        69,    70,    71,    40,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    82,    83,    84,    85,    86,    -1,    -1,        57,    58,    91,    92,    -1,    62,    63,    64,    -1,    66, -      -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1, -      -1,    -1,    48,    -1,    -1,    82,    83,    84,    85,    86, -      -1,    57,    58,    -1,    91,    92,    62,    63,    64,    -1, -      66,    -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    82,    83,    84,    85, -      86,    -1,    57,    58,    -1,    91,    92,    62,    63,    64, +      -1,    -1,    69,    70,    71,    40,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    82,    83,    84,    85,    86, +      -1,    -1,    57,    58,    91,    92,    -1,    62,    63,    64,        -1,    66,    -1,    -1,    69,    70,    71,    -1,    -1,    -1, -      -1,    -1,    77,    78,    -1,    -1,    -1,    82,    83,    84, +      -1,    -1,    -1,    -1,    48,    -1,    -1,    82,    83,    84,        85,    86,    -1,    57,    58,    -1,    91,    92,    62,    63,        64,    -1,    66,    -1,    -1,    69,    70,    71,    -1,    -1, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    82,    83, -      84,    85,    86,    -1,    57,    58,    90,    91,    92,    62, +      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82,    83, +      84,    85,    86,    -1,    57,    58,    -1,    91,    92,    62,        63,    64,    -1,    66,    -1,    -1,    69,    70,    71,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    82, -      83,    84,    85,    86,    -1,    57,    58,    90,    91,    92, -      62,    63,    64,    -1,    66,    -1,    -1,    69,    70,    71, -      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81, -      82,    83,    84,    85,    86,    -1,    57,    58,    -1,    91, -      92,    62,    63,    64,    -1,    66,    -1,    -1,    69,    70, -      71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, -      -1,    82,    83,    84,    85,    86,    -1,    -1,    -1,    -1, -      91,    92 +      83,    84,    85,    86,    -1,    -1,    -1,    -1,    91,    92, +      57,    58,    95,    -1,    -1,    62,    63,    64,    -1,    66, +      -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    82,    83,    84,    85,    86, +      -1,    -1,    -1,    -1,    91,    92,    57,    58,    95,    -1, +      -1,    62,    63,    64,    -1,    66,    -1,    -1,    69,    70, +      71,    -1,    -1,    -1,    -1,    -1,    77,    78,    -1,    -1, +      -1,    82,    83,    84,    85,    86,    -1,    57,    58,    -1, +      91,    92,    62,    63,    64,    -1,    66,    -1,    -1,    69, +      70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    81,    82,    83,    84,    85,    86,    -1,    57,    58, +      90,    91,    92,    62,    63,    64,    -1,    66,    -1,    -1, +      69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    82,    83,    84,    85,    86,    -1,    57, +      58,    90,    91,    92,    62,    63,    64,    -1,    66,    -1, +      -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    81,    82,    83,    84,    85,    86,    -1, +      57,    58,    -1,    91,    92,    62,    63,    64,    -1,    66, +      -1,    -1,    69,    70,    71,    -1,    -1,    -1,    -1,    -1, +      -1,    -1,    -1,    -1,    -1,    82,    83,    84,    85,    86, +      -1,    -1,    -1,    -1,    91,    92  };  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -1220,33 +1229,33 @@ static const yytype_uint8 yystos[] =        93,    97,    99,   100,   101,   102,   103,   110,   111,   112,       117,   118,   119,   122,   125,   127,   134,    88,    98,    21,        42,   100,   118,   118,   118,    89,   118,   135,    21,    89, -     135,   126,    43,    21,   120,    31,    36,    38,    39,    40, -      41,   118,   123,   124,    21,   118,    48,    49,    12,    13, -      21,    21,    21,    21,   118,    55,   123,   124,    21,   121, -     118,   118,   118,   118,   118,   118,    21,    89,   118,   118, -     118,   135,     0,    98,    89,    81,    89,   109,   118,   118, -      57,    58,    62,    63,    64,    66,    69,    70,    71,    82, -      83,    84,    85,    86,    91,    92,    89,   118,   118,   135, -      95,   135,   135,   135,    95,   118,   118,    38,   124,   128, -      35,    67,    68,    21,    46,    81,   118,    46,    81,    45, -     129,    48,   124,    95,    40,    46,    40,    46,    40,    46, -      40,    46,    77,    78,   130,    21,    90,    94,    99,   109, -     118,   109,   118,    45,    81,   115,   118,   118,   118,   118, -     118,   118,   118,   118,   118,   118,   118,   118,   118,   118, -     118,   118,    90,   118,    90,    21,   118,   114,    21,   118, -     118,   118,   118,    46,    81,   118,   118,   114,   118,    21, +     118,   135,   136,   126,    43,    21,   120,    31,    36,    38, +      39,    40,    41,   118,   123,   124,    21,   118,    48,    49, +      12,    13,    21,    21,    21,    21,   118,    55,   123,   124, +      21,   121,   118,   118,   118,   118,   118,   118,    21,    89, +     118,   118,   118,   135,     0,    98,    89,    81,    89,   109, +     118,   118,    57,    58,    62,    63,    64,    66,    69,    70, +      71,    82,    83,    84,    85,    86,    91,    92,    89,   118, +     118,   135,    95,   135,   135,    95,   135,    95,   118,   118, +      38,   124,   128,    35,    67,    68,    21,    46,    81,   118, +      46,    81,    45,   129,    48,   124,    95,    40,    46,    40, +      46,    40,    46,    40,    46,    77,    78,   130,    21,    90, +      94,    99,   109,   118,   109,   118,    45,    81,   115,   118,       118,   118,   118,   118,   118,   118,   118,   118,   118,   118, -     114,    90,    95,    90,   115,    90,    98,   114,   118,    21, -     132,   118,   118,   132,    40,    40,    40,    40,   131,   135, -     116,    27,    46,   116,   101,   119,    95,    98,    98,   118, -     118,   118,   118,   132,    90,    98,   102,   115,    46,   118, -     115,   115,    21,    95,   133,   133,    98,    25,   118,   115, -      25,    50,   114,    29,    50,   106,   107,   113,    21,   116, -     116,   133,   115,   116,   116,   105,   106,   108,   113,   114, -     107,   115,   109,   116,   116,   115,   115,   108,   115,   109, -     101,    50,   104,    45,    25,   115,    25,    25,    25,    45, -     115,   114,   115,   114,    25,   114,   101,   102,   116,   115, -     115 +     118,   118,   118,   118,   118,    90,   118,    90,   118,    21, +     118,   114,    21,   118,   118,   118,   118,    46,    81,   118, +     118,   114,   118,    21,   118,   118,   118,   118,   118,   118, +     118,   118,   118,   118,   114,    90,    95,    90,   115,    90, +      98,   114,   118,    21,   132,   118,   118,   132,    40,    40, +      40,    40,   131,   135,   116,    27,    46,   116,   101,   119, +      95,    98,    98,   118,   118,   118,   118,   132,    90,    98, +     102,   115,    46,   118,   115,   115,    21,    95,   133,   133, +      98,    25,   118,   115,    25,    50,   114,    29,    50,   106, +     107,   113,    21,   116,   116,   133,   115,   116,   116,   105, +     106,   108,   113,   114,   107,   115,   109,   116,   116,   115, +     115,   108,   115,   109,   101,    50,   104,    45,    25,   115, +      25,    25,    25,    45,   115,   114,   115,   114,    25,   114, +     101,   102,   116,   115,   115  };  #define yyerrok		(yyerrstatus = 0) @@ -2911,9 +2920,19 @@ yyreduce:      { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;}      break; +  case 152: +#line 602 "engines/director/lingo/lingo-gr.y" +    { (yyval.narg) = 1; ;} +    break; + +  case 153: +#line 603 "engines/director/lingo/lingo-gr.y" +    { (yyval.narg) = (yyvsp[(1) - (3)].narg) + 1; ;} +    break; +  /* Line 1267 of yacc.c.  */ -#line 2917 "engines/director/lingo/lingo-gr.cpp" +#line 2936 "engines/director/lingo/lingo-gr.cpp"        default: break;      }    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3127,6 +3146,6 @@ yyreturn:  } -#line 602 "engines/director/lingo/lingo-gr.y" +#line 606 "engines/director/lingo/lingo-gr.y" diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y index d6fe5cd7b6..e2e874b97f 100644 --- a/engines/director/lingo/lingo-gr.y +++ b/engines/director/lingo/lingo-gr.y @@ -103,7 +103,7 @@ void checkEnd(Common::String *token, const char *expect, bool required) {  %token tON tME  %type<code> asgn begin elseif elsestmtoneliner end expr if when repeatwhile repeatwith stmtlist -%type<narg> argdef arglist +%type<narg> argdef arglist nonemptyarglist  %right '='  %left tLT tLE tGT tGE tNEQ tCONTAINS tSTARTS @@ -586,7 +586,7 @@ argstore:	  /* nothing */		{ g_lingo->codeArgStore(); }  	; -macro: ID arglist		{ +macro: ID nonemptyarglist	{  		g_lingo->code1(g_lingo->c_call);  		g_lingo->codeString($1->c_str());  		inst numpar = 0; @@ -599,4 +599,8 @@ arglist:  /* nothing */ 	{ $$ = 0; }  	| arglist ',' expr		{ $$ = $1 + 1; }  	; +nonemptyarglist:  expr		{ $$ = 1; } +	| arglist ',' expr		{ $$ = $1 + 1; } +	; +  %%  | 
