This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
char can be unsigned, so i8 needs to be signed char.
[perl5.git] / perly.tab
1 #define YYFINAL  3
2 /* YYLAST -- Last index in YYTABLE.  */
3 #define YYLAST   2049
4
5 /* YYNTOKENS -- Number of terminals.  */
6 #define YYNTOKENS  90
7 /* YYNNTS -- Number of nonterminals.  */
8 #define YYNNTS  65
9 /* YYNRULES -- Number of rules.  */
10 #define YYNRULES  209
11 /* YYNRULES -- Number of states.  */
12 #define YYNSTATES  419
13
14 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
15 #define YYUNDEFTOK  2
16 #define YYMAXUTOK   325
17
18 #define YYTRANSLATE(YYX)                                                \
19   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
20
21 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
22 static const yytype_uint8 yytranslate[] =
23 {
24        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
25        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
26        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
27        2,     2,     2,    77,     2,     2,     9,    11,    13,     2,
28       88,    87,    12,     8,    66,     7,     2,     2,     2,     2,
29        2,     2,     2,     2,     2,     2,     2,     2,    69,    14,
30        2,     2,     2,    68,    10,     2,     2,     2,     2,     2,
31        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
32        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
33        2,     5,     2,     6,     2,     2,     2,     2,     2,     2,
34        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
35        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
36        2,     2,     2,     3,     2,     4,    78,     2,     2,     2,
37        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
38        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
39        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
40        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
41        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
42        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
43        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
44        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
45        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
48        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
49        2,     2,     2,     2,     2,     2,     1,     2,    15,    16,
50       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
51       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
52       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
53       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
54       57,    58,    59,    60,    61,    62,    63,    64,    65,    67,
55       70,    71,    72,    73,    74,    75,    76,    79,    80,    81,
56       82,    83,    84,    85,    86,    89
57 };
58
59 #if YYDEBUG
60 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
61    YYRHS.  */
62 static const yytype_uint16 yyprhs[] =
63 {
64        0,     0,     3,     6,    11,    12,    13,    14,    19,    20,
65       21,    24,    27,    30,    32,    34,    37,    40,    44,    46,
66       48,    52,    56,    60,    64,    68,    69,    72,    79,    87,
67       95,   102,   105,   106,   109,   119,   129,   140,   150,   159,
68      172,   176,   185,   186,   187,   189,   190,   192,   194,   196,
69      198,   200,   201,   203,   205,   207,   209,   211,   213,   215,
70      217,   222,   224,   225,   232,   239,   240,   241,   242,   244,
71      245,   247,   248,   251,   253,   256,   258,   260,   262,   266,
72      267,   275,   279,   283,   287,   289,   292,   296,   298,   302,
73      308,   315,   319,   323,   329,   332,   337,   338,   344,   346,
74      348,   354,   359,   365,   370,   376,   383,   389,   394,   400,
75      405,   409,   416,   422,   426,   430,   434,   438,   442,   446,
76      450,   454,   458,   462,   466,   470,   474,   478,   481,   484,
77      487,   490,   493,   496,   499,   502,   506,   509,   514,   518,
78      524,   527,   530,   535,   541,   546,   552,   554,   556,   558,
79      560,   566,   569,   571,   574,   578,   581,   583,   585,   587,
80      589,   591,   593,   598,   604,   606,   608,   612,   617,   621,
81      623,   626,   629,   631,   634,   637,   639,   642,   644,   647,
82      649,   653,   655,   659,   664,   669,   671,   673,   677,   680,
83      684,   687,   689,   691,   693,   694,   696,   697,   699,   702,
84      704,   707,   710,   713,   716,   719,   722,   724,   726,   728
85 };
86
87 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
88 static const yytype_int16 yyrhs[] =
89 {
90       91,     0,    -1,    95,    98,    -1,     3,    93,    98,     4,
91       -1,    -1,    -1,    -1,     3,    97,    98,     4,    -1,    -1,
92       -1,    98,   115,    -1,    98,    99,    -1,   114,   102,    -1,
93      105,    -1,   106,    -1,   114,   103,    -1,   114,    14,    -1,
94      114,   100,    14,    -1,     1,    -1,   132,    -1,   132,    32,
95      132,    -1,   132,    33,   132,    -1,   132,    30,   132,    -1,
96      132,    31,   110,    -1,   132,    37,   132,    -1,    -1,    34,
97       96,    -1,    35,    88,   111,    87,    96,   101,    -1,    32,
98       88,    93,   111,    87,    96,   101,    -1,    33,    88,    93,
99      113,    87,    96,   101,    -1,    39,    88,    93,   111,    87,
100       96,    -1,    40,    92,    -1,    -1,    36,    92,    -1,   114,
101       30,    88,    93,   109,    87,   107,    96,   104,    -1,   114,
102       31,    88,    93,   110,    87,   107,    96,   104,    -1,   114,
103       37,    57,    93,   147,    88,   111,    87,    96,   104,    -1,
104      114,    37,   149,    88,    93,   111,    87,    96,   104,    -1,
105      114,    37,    88,    93,   111,    87,    96,   104,    -1,   114,
106       37,    88,    93,   112,    14,   109,    14,   107,   112,    87,
107       96,    -1,   114,    92,   104,    -1,   114,    38,    88,    93,
108       94,   111,    87,    96,    -1,    -1,    -1,   100,    -1,    -1,
109      132,    -1,   132,    -1,   132,    -1,   108,    -1,   110,    -1,
110       -1,    24,    -1,   117,    -1,   120,    -1,   119,    -1,   129,
111       -1,   130,    -1,   116,    -1,    89,    -1,    25,   123,   118,
112       92,    -1,    15,    -1,    -1,    58,   121,   124,   125,   126,
113      128,    -1,    26,   121,   124,   125,   126,   128,    -1,    -1,
114       -1,    -1,    15,    -1,    -1,    18,    -1,    -1,    60,    18,
115       -1,    60,    -1,    60,    18,    -1,    60,    -1,    92,    -1,
116       14,    -1,    28,    15,    14,    -1,    -1,    29,   121,   131,
117       15,    15,   145,    14,    -1,   132,    64,   132,    -1,   132,
118       63,   132,    -1,   132,    62,   132,    -1,   133,    -1,   133,
119       66,    -1,   133,    66,   142,    -1,   142,    -1,    47,   154,
120      133,    -1,    45,    88,   154,   132,    87,    -1,   142,    86,
121      136,    88,   146,    87,    -1,   142,    86,   136,    -1,    16,
122      154,   145,    -1,    17,   154,    88,   146,    87,    -1,    47,
123      145,    -1,    45,    88,   146,    87,    -1,    -1,    23,   122,
124       92,   135,   145,    -1,    16,    -1,   149,    -1,   153,     3,
125      132,    14,     4,    -1,   149,     5,   132,     6,    -1,   142,
126       86,     5,   132,     6,    -1,   137,     5,   132,     6,    -1,
127      149,     3,   132,    14,     4,    -1,   142,    86,     3,   132,
128       14,     4,    -1,   137,     3,   132,    14,     4,    -1,   142,
129       86,    88,    87,    -1,   142,    86,    88,   132,    87,    -1,
130      137,    88,   132,    87,    -1,   137,    88,    87,    -1,    88,
131      132,    87,     5,   132,     6,    -1,    88,    87,     5,   132,
132        6,    -1,   142,    67,   142,    -1,   142,    81,   142,    -1,
133      142,    50,   142,    -1,   142,    51,   142,    -1,   142,    75,
134      142,    -1,   142,    48,   142,    -1,   142,    49,   142,    -1,
135      142,    74,   142,    -1,   142,    73,   142,    -1,   142,    42,
136      142,    -1,   142,    72,   142,    -1,   142,    71,   142,    -1,
137      142,    70,   142,    -1,   142,    76,   142,    -1,     7,   142,
138       -1,     8,   142,    -1,    77,   142,    -1,    78,   142,    -1,
139      142,    83,    -1,   142,    82,    -1,    85,   142,    -1,    84,
140      142,    -1,     5,   132,     6,    -1,     5,     6,    -1,    54,
141      132,    14,     4,    -1,    54,    14,     4,    -1,    27,   122,
142      125,   126,    92,    -1,    53,   142,    -1,    53,    92,    -1,
143       53,    15,    88,    87,    -1,    53,    15,    88,   132,    87,
144       -1,    53,   149,    88,    87,    -1,    53,   149,    88,   132,
145       87,    -1,   138,    -1,   139,    -1,   140,    -1,   141,    -1,
146      142,    68,   142,    69,   142,    -1,    79,   142,    -1,   143,
147       -1,    56,   142,    -1,    88,   132,    87,    -1,    88,    87,
148       -1,   149,    -1,   153,    -1,   151,    -1,   150,    -1,   152,
149       -1,   137,    -1,   150,     5,   132,     6,    -1,   150,     3,
150      132,    14,     4,    -1,    18,    -1,   148,    -1,   148,    88,
151       87,    -1,   148,    88,   132,    87,    -1,    55,    15,   145,
152       -1,    41,    -1,    41,   142,    -1,    65,   133,    -1,    46,
153       -1,    46,    92,    -1,    46,   142,    -1,    59,    -1,    59,
154      142,    -1,    22,    -1,    22,   142,    -1,    43,    -1,    43,
155       88,    87,    -1,    21,    -1,    44,    88,    87,    -1,    44,
156       88,   132,    87,    -1,    19,    88,   133,    87,    -1,    15,
157       -1,   134,    -1,    57,   144,   127,    -1,    57,   144,    -1,
158       88,   132,    87,    -1,    88,    87,    -1,   149,    -1,   151,
159       -1,   150,    -1,    -1,   133,    -1,    -1,   132,    -1,   132,
160       66,    -1,   149,    -1,    13,   154,    -1,     9,   154,    -1,
161       10,   154,    -1,    11,   154,    -1,    52,   154,    -1,    12,
162      154,    -1,    15,    -1,   149,    -1,    92,    -1,    20,    -1
163 };
164
165 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
166 static const yytype_uint16 yyrline[] =
167 {
168        0,   135,   135,   141,   151,   155,   159,   165,   175,   180,
169      181,   188,   198,   201,   202,   204,   206,   223,   242,   244,
170      246,   250,   254,   258,   262,   271,   272,   276,   287,   295,
171      306,   309,   315,   316,   323,   336,   348,   359,   369,   379,
172      411,   419,   429,   435,   436,   441,   444,   448,   453,   457,
173      461,   467,   476,   480,   482,   484,   486,   488,   493,   497,
174      503,   517,   518,   522,   535,   558,   564,   569,   574,   584,
175      585,   590,   591,   595,   605,   609,   619,   620,   629,   643,
176      642,   661,   665,   669,   673,   677,   687,   696,   700,   705,
177      712,   721,   727,   733,   741,   745,   752,   751,   762,   763,
178      767,   776,   781,   789,   796,   803,   813,   822,   829,   838,
179      845,   851,   858,   868,   872,   876,   882,   886,   890,   894,
180      898,   902,   906,   918,   922,   926,   930,   940,   944,   951,
181      955,   959,   964,   969,   974,   983,   988,   993,   999,  1005,
182     1016,  1020,  1024,  1036,  1049,  1057,  1069,  1070,  1071,  1072,
183     1073,  1078,  1082,  1084,  1088,  1093,  1098,  1100,  1102,  1104,
184     1106,  1108,  1110,  1119,  1130,  1132,  1134,  1139,  1152,  1157,
185     1162,  1166,  1170,  1174,  1178,  1182,  1186,  1190,  1192,  1195,
186     1199,  1205,  1208,  1217,  1223,  1228,  1229,  1233,  1241,  1248,
187     1253,  1258,  1260,  1262,  1267,  1269,  1274,  1275,  1277,  1292,
188     1296,  1302,  1308,  1314,  1320,  1326,  1333,  1335,  1337,  1340
189 };
190 #endif
191
192 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
193 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
194    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
195 static const char *const yytname[] =
196 {
197   "$end", "error", "$undefined", "'{'", "'}'", "'['", "']'", "'-'", "'+'",
198   "'$'", "'@'", "'%'", "'*'", "'&'", "';'", "WORD", "METHOD", "FUNCMETH",
199   "THING", "PMFUNC", "PRIVATEREF", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB",
200   "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE", "USE", "WHILE", "UNTIL",
201   "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE", "FOR", "GIVEN", "WHEN",
202   "DEFAULT", "LOOPEX", "DOTDOT", "FUNC0", "FUNC1", "FUNC", "UNIOP",
203   "LSTOP", "RELOP", "EQOP", "MULOP", "ADDOP", "DOLSHARP", "DO",
204   "HASHBRACK", "NOAMP", "LOCAL", "MY", "MYSUB", "REQUIRE", "COLONATTR",
205   "PREC_LOW", "DOROP", "OROP", "ANDOP", "NOTOP", "','", "ASSIGNOP", "'?'",
206   "':'", "DORDOR", "OROR", "ANDAND", "BITOROP", "BITANDOP", "SHIFTOP",
207   "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS", "POWOP", "POSTDEC",
208   "POSTINC", "PREDEC", "PREINC", "ARROW", "')'", "'('", "PEG", "$accept",
209   "prog", "block", "remember", "mydefsv", "progstart", "mblock",
210   "mremember", "lineseq", "line", "sideff", "else", "cond", "case", "cont",
211   "loop", "switch", "mintro", "nexpr", "texpr", "iexpr", "mexpr", "mnexpr",
212   "miexpr", "label", "decl", "peg", "format", "formname", "mysubrout",
213   "subrout", "startsub", "startanonsub", "startformsub", "subname",
214   "proto", "subattrlist", "myattrlist", "subbody", "package", "use", "@1",
215   "expr", "argexpr", "listop", "@2", "method", "subscripted", "termbinop",
216   "termunop", "anonymous", "termdo", "term", "myattrterm", "myterm",
217   "listexpr", "listexprcom", "my_scalar", "amper", "scalar", "ary", "hsh",
218   "arylen", "star", "indirob", 0
219 };
220 #endif
221
222 # ifdef YYPRINT
223 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
224    token YYLEX-NUM.  */
225 static const yytype_uint16 yytoknum[] =
226 {
227        0,   256,   257,   123,   125,    91,    93,    45,    43,    36,
228       64,    37,    42,    38,    59,   258,   259,   260,   261,   262,
229      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
230      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
231      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
232      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
233      303,   304,   305,   306,   307,   308,    44,   309,    63,    58,
234      310,   311,   312,   313,   314,   315,   316,    33,   126,   317,
235      318,   319,   320,   321,   322,   323,   324,    41,    40,   325
236 };
237 # endif
238
239 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
240 static const yytype_uint8 yyr1[] =
241 {
242        0,    90,    91,    92,    93,    94,    95,    96,    97,    98,
243       98,    98,    99,    99,    99,    99,    99,    99,   100,   100,
244      100,   100,   100,   100,   100,   101,   101,   101,   102,   102,
245      103,   103,   104,   104,   105,   105,   105,   105,   105,   105,
246      105,   106,   107,   108,   108,   109,   109,   110,   111,   112,
247      113,   114,   114,   115,   115,   115,   115,   115,   115,   116,
248      117,   118,   118,   119,   120,   121,   122,   123,   124,   125,
249      125,   126,   126,   126,   127,   127,   128,   128,   129,   131,
250      130,   132,   132,   132,   132,   133,   133,   133,   134,   134,
251      134,   134,   134,   134,   134,   134,   135,   134,   136,   136,
252      137,   137,   137,   137,   137,   137,   137,   137,   137,   137,
253      137,   137,   137,   138,   138,   138,   138,   138,   138,   138,
254      138,   138,   138,   138,   138,   138,   138,   139,   139,   139,
255      139,   139,   139,   139,   139,   140,   140,   140,   140,   140,
256      141,   141,   141,   141,   141,   141,   142,   142,   142,   142,
257      142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
258      142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
259      142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
260      142,   142,   142,   142,   142,   142,   142,   143,   143,   144,
261      144,   144,   144,   144,   145,   145,   146,   146,   146,   147,
262      148,   149,   150,   151,   152,   153,   154,   154,   154,   154
263 };
264
265 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
266 static const yytype_uint8 yyr2[] =
267 {
268        0,     2,     2,     4,     0,     0,     0,     4,     0,     0,
269        2,     2,     2,     1,     1,     2,     2,     3,     1,     1,
270        3,     3,     3,     3,     3,     0,     2,     6,     7,     7,
271        6,     2,     0,     2,     9,     9,    10,     9,     8,    12,
272        3,     8,     0,     0,     1,     0,     1,     1,     1,     1,
273        1,     0,     1,     1,     1,     1,     1,     1,     1,     1,
274        4,     1,     0,     6,     6,     0,     0,     0,     1,     0,
275        1,     0,     2,     1,     2,     1,     1,     1,     3,     0,
276        7,     3,     3,     3,     1,     2,     3,     1,     3,     5,
277        6,     3,     3,     5,     2,     4,     0,     5,     1,     1,
278        5,     4,     5,     4,     5,     6,     5,     4,     5,     4,
279        3,     6,     5,     3,     3,     3,     3,     3,     3,     3,
280        3,     3,     3,     3,     3,     3,     3,     2,     2,     2,
281        2,     2,     2,     2,     2,     3,     2,     4,     3,     5,
282        2,     2,     4,     5,     4,     5,     1,     1,     1,     1,
283        5,     2,     1,     2,     3,     2,     1,     1,     1,     1,
284        1,     1,     4,     5,     1,     1,     3,     4,     3,     1,
285        2,     2,     1,     2,     2,     1,     2,     1,     2,     1,
286        3,     1,     3,     4,     4,     1,     1,     3,     2,     3,
287        2,     1,     1,     1,     0,     1,     0,     1,     2,     1,
288        2,     2,     2,     2,     2,     2,     1,     1,     1,     1
289 };
290
291 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
292    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
293    means the default is an error.  */
294 static const yytype_uint8 yydefact[] =
295 {
296        6,     0,     9,     1,    51,    52,    67,    65,     0,    65,
297       65,    59,    11,    13,    14,     0,    10,    58,    53,    55,
298       54,    56,    57,    62,     0,     0,    79,     0,    18,     4,
299        0,     0,     0,     0,     0,     0,     0,     0,    16,   185,
300        0,     0,   164,     0,   181,   177,    66,    66,     0,     0,
301        0,     0,     0,     0,     0,     0,   169,   179,     0,     0,
302      172,   194,     0,     0,     0,     0,     0,     0,   175,     0,
303        0,     0,     0,     0,     0,     0,    32,     0,    12,    15,
304       19,    84,   186,   161,   146,   147,   148,   149,    87,   152,
305      165,   156,   159,   158,   160,   157,    61,     0,    68,    69,
306       78,     0,    69,     9,   136,     0,   127,   128,   206,   209,
307      208,   207,   201,   202,   203,   205,   200,   194,     0,     0,
308      178,     0,    69,     4,     4,     4,     4,     4,     4,     0,
309        4,     4,    31,   170,     0,     0,   196,   173,   174,   206,
310      195,    94,   207,     0,   204,   185,   141,   140,   156,     0,
311        0,   194,   153,     0,   188,   191,   193,   192,   176,   171,
312      129,   130,   151,   134,   133,   155,     0,     0,    40,    17,
313        0,     0,     0,     0,     0,     0,     0,     0,    85,     0,
314        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
315        0,     0,     0,     0,     0,     0,     0,   132,   131,     0,
316        0,     0,     0,     0,     0,     0,    60,    70,    71,     0,
317       71,    51,   135,    92,   196,     0,    96,    71,    45,     0,
318        0,     0,     0,     0,     4,     5,     0,   180,   182,     0,
319      197,     0,     0,    88,     0,     0,   138,     0,   168,   190,
320        0,    75,   187,     0,   154,    33,    22,    23,    47,    20,
321       21,    24,    83,    82,    81,    86,     0,     0,   110,     0,
322      122,   118,   119,   115,   116,   113,     0,   125,   124,   123,
323      121,   120,   117,   126,   114,     0,     0,    98,     0,    91,
324       99,   166,     0,     0,     0,     0,     0,     0,    73,     0,
325      194,     0,     3,     0,   184,   194,     0,     0,    46,     0,
326        0,    48,    50,     0,     0,   199,    44,    49,     0,     0,
327       19,     0,     0,     0,   183,   198,    95,     0,   142,     0,
328      144,     0,   137,   189,    74,     0,     0,     0,   103,   109,
329        0,     0,     0,   107,     0,   196,   167,     0,   101,     0,
330      162,     0,    72,    77,    76,    64,     0,    63,    93,    97,
331      139,    42,    42,     0,     0,     0,     0,    45,     0,     0,
332        0,    89,   143,   145,   112,     0,   106,   150,     0,   102,
333      108,     0,   104,   163,   100,    80,     0,     0,     8,    25,
334       25,     0,    32,     0,     0,     0,    30,   111,   105,    90,
335       32,    32,     9,     0,     0,    28,    29,     0,    38,    42,
336       32,    41,    34,    35,    51,    26,     0,    32,     0,    37,
337        7,     0,    36,     0,     0,     0,    25,    39,    27
338 };
339
340 /* YYDEFGOTO[NTERM-NUM].  */
341 static const yytype_int16 yydefgoto[] =
342 {
343       -1,     1,   110,   103,   312,     2,   379,   392,     4,    12,
344      306,   395,    78,    79,   168,    13,    14,   376,   307,   297,
345      247,   300,   309,   303,    15,    16,    17,    18,    97,    19,
346       20,    24,   121,    23,    99,   208,   289,   242,   345,    21,
347       22,   101,   301,    81,    82,   295,   279,    83,    84,    85,
348       86,    87,    88,    89,   154,   141,   231,   304,    90,    91,
349       92,    93,    94,    95,   112
350 };
351
352 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
353    STATE-NUM.  */
354 #define YYPACT_NINF -376
355 static const yytype_int16 yypact[] =
356 {
357     -376,    31,  -376,  -376,    89,  -376,  -376,  -376,    28,  -376,
358     -376,  -376,  -376,  -376,  -376,   291,  -376,  -376,  -376,  -376,
359     -376,  -376,  -376,    53,    84,    86,  -376,    84,  -376,  -376,
360      867,  1703,  1703,   650,   650,   650,   650,   650,  -376,  -376,
361      650,   650,  -376,    44,  -376,  1703,  -376,  -376,    49,    57,
362       79,    95,    14,    96,   114,   100,  1703,   128,   139,   145,
363      639,   555,   650,   723,   949,   153,  1703,    35,  1703,  1703,
364     1703,  1703,  1703,  1703,  1703,  1031,   200,   239,  -376,  -376,
365     1029,   188,  -376,    16,  -376,  -376,  -376,  -376,  1879,  -376,
366      171,   131,   202,  -376,  -376,   261,  -376,   100,  -376,   250,
367     -376,   254,   250,  -376,  -376,    10,   132,   132,  -376,  -376,
368     -376,  -376,  -376,  -376,  -376,  -376,  -376,  1703,   187,  1703,
369      898,   100,   250,  -376,  -376,  -376,  -376,  -376,  -376,   191,
370     -376,  -376,  -376,  1879,   198,  1115,   555,  -376,   898,  1763,
371      188,  -376,   784,  1703,  -376,   201,  -376,   898,    19,   284,
372       13,  1703,   898,  1199,   231,  -376,  -376,  -376,   898,   188,
373      132,   132,   132,     9,     9,   288,   107,   100,  -376,  -376,
374     1703,  1703,  1703,  1703,  1703,  1703,  1703,  1703,  1703,  1703,
375     1703,  1283,  1703,  1703,  1703,  1703,  1703,  1703,  1703,  1703,
376     1703,  1703,  1703,  1703,  1703,  1703,  1703,  -376,  -376,    23,
377     1367,  1703,  1703,  1703,  1703,  1703,  -376,  -376,   235,   282,
378      235,   197,  -376,  -376,  1703,    59,  -376,   235,  1703,  1703,
379     1703,  1703,   310,   387,  -376,  -376,  1703,  -376,  -376,   148,
380      319,   252,  1703,   188,  1451,  1535,  -376,   337,  -376,  -376,
381      194,   331,  -376,  1703,   346,  -376,   112,  -376,   112,   112,
382      112,   112,   298,   298,  -376,  1879,    34,    77,  -376,   253,
383     1963,   852,   710,   503,   671,  1879,  1837,   375,   375,   542,
384      625,   755,   457,   132,   132,  1703,  1703,  -376,  1619,   264,
385     -376,  -376,   297,   117,    80,   134,    88,   210,   345,    15,
386     1703,    15,  -376,   280,  -376,  1703,   100,   285,   112,   286,
387      287,   112,  -376,   290,   283,  -376,  -376,  -376,   293,   364,
388      468,  1703,  1703,   303,  -376,  -376,  -376,   302,  -376,   349,
389     -376,   358,  -376,  -376,  -376,   129,  1703,   403,  -376,  -376,
390     1703,   263,   167,  -376,   431,  1703,  -376,   411,  -376,   412,
391     -376,   413,  -376,  -376,  -376,  -376,   377,  -376,  -376,  -376,
392     -376,  -376,  -376,   416,   416,  1703,   416,  1703,   340,   342,
393      416,  -376,  -376,  -376,  -376,   203,  -376,  1921,   433,  -376,
394     -376,   348,  -376,  -376,  -376,  -376,   416,   416,  -376,    21,
395       21,   351,   200,   439,   416,   416,  -376,  -376,  -376,  -376,
396      200,   200,  -376,   416,   366,  -376,  -376,   416,  -376,  -376,
397      200,  -376,  -376,  -376,   329,  -376,  1703,   200,   469,  -376,
398     -376,   368,  -376,   372,   416,   416,    21,  -376,  -376
399 };
400
401 /* YYPGOTO[NTERM-NUM].  */
402 static const yytype_int16 yypgoto[] =
403 {
404     -376,  -376,   -13,   -61,  -376,  -376,  1487,  -376,  -102,  -376,
405      445,  -375,  -376,  -376,  -120,  -376,  -376,  -319,  -376,   105,
406       63,  -206,    55,  -376,  -376,  -376,  -376,  -376,  -376,  -376,
407     -376,    72,   420,  -376,   441,   -12,  -180,  -376,   178,  -376,
408     -376,  -376,   -15,   -58,  -376,  -376,  -376,  -376,  -376,  -376,
409     -376,  -376,    56,  -376,  -376,  -113,  -202,  -376,  -376,   -27,
410      406,   422,  -376,  -376,    17
411 };
412
413 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
414    positive, shift that token.  If negative, reduce the rule which
415    number is the opposite.  If zero, do what YYDEFACT says.
416    If YYTABLE_NINF, syntax error.  */
417 #define YYTABLE_NINF -186
418 static const yytype_int16 yytable[] =
419 {
420       80,   211,    76,   140,   213,   396,   111,   111,   111,   111,
421      111,   159,   293,   111,   111,   105,   212,   308,    29,   179,
422      313,   180,   201,    33,   202,   129,   275,   237,   276,   343,
423      291,     3,    33,   377,   142,   111,   148,   296,   238,   277,
424      155,   418,   132,    25,    33,    34,    35,   137,   327,   150,
425      146,   113,   114,   115,   116,   393,   394,   117,   118,   140,
426      166,   215,   218,   219,   220,   221,   222,   223,    96,   225,
427      226,   127,   175,   176,   177,   175,   176,   177,   143,   144,
428      408,    26,    27,   328,   206,   233,   338,   106,   107,    -2,
429      210,  -186,  -186,   140,   340,   199,   175,   176,   177,    98,
430      100,   120,   128,    29,   181,   358,   359,   235,   216,   142,
431      217,   278,   133,     5,     6,     7,   138,     8,     9,   147,
432      229,   230,   152,   153,   158,   178,   160,   161,   162,   163,
433      164,   337,   119,   371,   201,   364,   202,   123,   240,   175,
434      176,   177,   175,   176,   177,   124,   294,    10,   339,   381,
435      175,   176,   177,   232,   245,   246,   248,   249,   250,   251,
436      252,   253,   254,   311,   256,   257,   259,   125,   151,   175,
437      176,   177,   280,   369,   175,   176,   177,   346,    11,   175,
438      176,   177,   349,   126,   130,   282,   283,   284,   285,   286,
439      287,   175,   176,   177,   244,   305,   175,   176,   177,   230,
440      411,   292,   131,   298,   248,   203,   248,   204,   310,   387,
441      175,   176,   177,   196,   197,   198,   134,   317,   199,   319,
442      321,     5,     6,     7,   341,     8,     9,   135,   325,   175,
443      176,   177,   140,   136,   255,   314,   167,   140,   260,   261,
444      262,   263,   264,   265,   266,   267,   268,   269,   270,   271,
445      272,   273,   274,   169,   178,    10,   175,   176,   177,   200,
446      331,   332,   398,   334,   205,   175,   176,   177,   207,   209,
447      402,   403,   175,   176,   177,   214,   344,   368,   344,   224,
448      409,   323,   299,   350,   302,   227,    11,   412,   236,   234,
449      404,   241,    28,   243,    29,   288,    30,   290,    31,    32,
450       33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
451       43,   365,    44,    45,    46,   175,   176,   177,    47,    33,
452      230,    48,    49,    50,    51,   175,   176,   177,    52,    53,
453       54,    55,    56,   410,    57,    58,    59,    60,    61,   316,
454      329,   322,   298,    62,    63,    64,    65,    66,    67,   324,
455       68,   326,   335,     5,     6,     7,    69,     8,     9,   175,
456      176,   177,   177,   342,   175,   176,   177,   348,    70,    71,
457       72,   355,   351,   352,   353,    73,    74,   354,   357,    75,
458      356,   175,   176,   177,   336,   315,   367,    10,    28,   361,
459      360,   375,    30,    80,    31,    32,    33,    34,    35,    36,
460       37,   -43,    39,    40,    41,    42,    43,   366,    44,    45,
461       46,   175,   176,   177,    47,   372,   373,   374,    11,   378,
462      175,   176,   177,   183,   184,   185,   186,   384,    56,   385,
463       57,    58,    59,    60,    61,   389,   362,   388,   397,    62,
464       63,    64,    65,    66,    67,   363,    68,   191,   192,   193,
465      194,   195,    69,   399,   406,   414,   196,   197,   198,   415,
466       77,   199,   383,   413,    70,    71,    72,   122,   102,   347,
467       28,    73,    74,   156,    30,    75,    31,    32,    33,    34,
468       35,    36,    37,     0,    39,    40,    41,    42,    43,   157,
469       44,    45,    46,   175,   176,   177,    47,     0,   170,   171,
470      172,   173,     0,     0,     0,   174,     0,   185,   186,     0,
471       56,     0,    57,    58,    59,    60,    61,     0,   370,     0,
472        0,    62,    63,    64,    65,    66,    67,     0,    68,     0,
473      175,   176,   177,   195,    69,     0,     0,     0,   196,   197,
474      198,     0,     0,   199,     0,     0,    70,    71,    72,     0,
475        0,     0,     0,    73,    74,   -48,   -43,    75,    29,     0,
476       30,     0,    31,    32,    33,    34,    35,    36,    37,     0,
477      139,    40,    41,    42,    43,   109,    44,    45,    46,   195,
478        0,     0,    47,     0,   196,   197,   198,     0,     0,   199,
479      183,   184,   185,   186,     0,     0,    56,     0,    57,    58,
480       59,    60,    61,     0,     0,     0,     0,    62,    63,    64,
481       65,    66,    67,     0,    68,   192,   193,   194,   195,     0,
482       69,     0,     0,   196,   197,   198,     0,     0,   199,     0,
483        0,     0,    70,    71,    72,     0,     0,     0,     0,    73,
484       74,     0,    29,    75,    30,     0,    31,    32,    33,    34,
485       35,    36,    37,    29,    39,    40,    41,    42,    43,    33,
486       44,    45,    46,     0,     0,   108,    47,     0,     0,     0,
487      109,     0,     0,   183,   184,   185,   186,     0,     0,     0,
488       56,     0,    57,    58,    59,    60,    61,     0,     0,     0,
489        0,    62,    63,    64,    65,    66,    67,     0,    68,   193,
490      194,   195,     0,     0,    69,     0,   196,   197,   198,     0,
491        0,   199,     0,     0,     0,     0,    70,    71,    72,     0,
492        0,   185,     0,    73,    74,     0,    29,    75,    30,     0,
493       31,    32,    33,    34,    35,    36,    37,     0,   145,    40,
494       41,    42,    43,     0,    44,    45,    46,   195,     0,     0,
495       47,     0,   196,   197,   198,     0,     0,   199,   183,  -186,
496      185,   186,     0,     0,    56,     0,    57,    58,    59,    60,
497       61,     0,     0,     0,     0,    62,    63,    64,    65,    66,
498       67,     0,    68,     0,     0,   194,   195,   201,    69,   202,
499     -156,   196,   197,   198,     0,     0,   199,     0,  -156,     0,
500       70,    71,    72,   183,   184,   185,   186,    73,    74,     0,
501        0,    75,     0,     0,  -156,  -156,  -156,  -156,     0,     0,
502        0,  -156,     0,     0,     0,     0,  -156,     0,     0,     0,
503      194,   195,  -156,  -156,  -156,  -156,   196,   197,   198,     0,
504        0,   199,     0,     0,     0,     0,  -156,  -156,  -156,     0,
505     -156,  -156,  -156,  -156,  -156,  -156,  -156,  -156,  -156,  -156,
506     -156,     0,     0,     0,     0,  -156,  -156,  -156,     0,     0,
507     -156,  -156,    30,   104,    31,    32,    33,    34,    35,    36,
508       37,     0,    39,    40,    41,    42,    43,     0,    44,    45,
509       46,     0,     0,     0,    47,     0,     0,     0,     0,     0,
510     -186,     0,   185,   186,     0,     0,     0,     0,    56,     0,
511       57,    58,    59,    60,    61,     0,     0,     0,     0,    62,
512       63,    64,    65,    66,    67,     0,    68,   194,   195,     0,
513        0,     0,    69,   196,   197,   198,     0,     0,   199,     0,
514        0,     0,     0,     0,    70,    71,    72,     0,   185,   186,
515        0,    73,    74,     0,    30,    75,    31,    32,    33,    34,
516       35,    36,    37,   149,    39,    40,    41,    42,    43,     0,
517       44,    45,    46,   194,   195,     0,    47,     0,     0,   196,
518      197,   198,     0,     0,   199,     0,     0,     0,     0,     0,
519       56,     0,    57,    58,    59,    60,    61,     0,     0,     0,
520        0,    62,    63,    64,    65,    66,    67,     0,    68,     0,
521        0,     0,     0,     0,    69,     0,     0,     0,     0,     0,
522        0,     0,     0,     0,     0,     0,    70,    71,    72,     0,
523        0,     0,     0,    73,    74,     0,    30,    75,    31,    32,
524       33,    34,    35,    36,    37,     0,    39,    40,    41,    42,
525       43,     0,    44,    45,    46,     0,     0,     0,    47,   170,
526      171,   172,   173,     0,     0,     0,   174,     0,     0,     0,
527        0,     0,    56,     0,    57,    58,    59,    60,    61,     0,
528        0,     0,     0,    62,    63,    64,    65,    66,    67,     0,
529       68,   175,   176,   177,     0,     0,    69,     0,     0,     0,
530        0,     0,     0,     0,     0,     0,     0,     0,    70,    71,
531       72,     0,     0,     0,     0,    73,    74,     0,   165,    75,
532       30,     0,    31,    32,    33,    34,    35,    36,    37,     0,
533       39,    40,    41,    42,    43,     0,    44,    45,    46,     0,
534        0,     0,    47,     0,     0,     0,     0,     0,     0,     0,
535        0,     0,     0,     0,     0,     0,    56,     0,    57,    58,
536       59,    60,    61,     0,     0,     0,     0,    62,    63,    64,
537       65,    66,    67,     0,    68,     0,     0,     0,     0,     0,
538       69,     0,     0,     0,     0,     0,     0,     0,     0,     0,
539        0,     0,    70,    71,    72,     0,     0,     0,     0,    73,
540       74,     0,   228,    75,    30,     0,    31,    32,    33,    34,
541       35,    36,    37,     0,    39,    40,    41,    42,    43,     0,
542       44,    45,    46,     0,     0,     0,    47,     0,     0,     0,
543        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
544       56,     0,    57,    58,    59,    60,    61,     0,     0,     0,
545        0,    62,    63,    64,    65,    66,    67,     0,    68,     0,
546        0,     0,     0,     0,    69,     0,     0,     0,     0,     0,
547        0,     0,     0,     0,     0,     0,    70,    71,    72,     0,
548        0,     0,     0,    73,    74,     0,   239,    75,    30,     0,
549       31,    32,    33,    34,    35,    36,    37,     0,    39,    40,
550       41,    42,    43,     0,    44,    45,    46,     0,     0,     0,
551       47,     0,     0,     0,     0,     0,     0,     0,     0,     0,
552        0,     0,     0,     0,    56,     0,    57,    58,    59,    60,
553       61,     0,     0,     0,     0,    62,    63,    64,    65,    66,
554       67,     0,    68,     0,     0,     0,     0,     0,    69,     0,
555        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
556       70,    71,    72,     0,     0,     0,     0,    73,    74,     0,
557      258,    75,    30,     0,    31,    32,    33,    34,    35,    36,
558       37,     0,    39,    40,    41,    42,    43,     0,    44,    45,
559       46,     0,     0,     0,    47,     0,     0,     0,     0,     0,
560        0,     0,     0,     0,     0,     0,     0,     0,    56,     0,
561       57,    58,    59,    60,    61,     0,     0,     0,     0,    62,
562       63,    64,    65,    66,    67,     0,    68,     0,     0,     0,
563        0,     0,    69,     0,     0,     0,     0,     0,     0,     0,
564        0,     0,     0,     0,    70,    71,    72,     0,     0,     0,
565        0,    73,    74,     0,   281,    75,    30,     0,    31,    32,
566       33,    34,    35,    36,    37,     0,    39,    40,    41,    42,
567       43,     0,    44,    45,    46,     0,     0,     0,    47,     0,
568        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
569        0,     0,    56,     0,    57,    58,    59,    60,    61,     0,
570        0,     0,     0,    62,    63,    64,    65,    66,    67,     0,
571       68,     0,     0,     0,     0,     0,    69,     0,     0,     0,
572        0,     0,     0,     0,     0,     0,     0,     0,    70,    71,
573       72,     0,     0,     0,     0,    73,    74,     0,   318,    75,
574       30,     0,    31,    32,    33,    34,    35,    36,    37,     0,
575       39,    40,    41,    42,    43,     0,    44,    45,    46,     0,
576        0,     0,    47,     0,     0,     0,     0,     0,     0,     0,
577        0,     0,     0,     0,     0,     0,    56,     0,    57,    58,
578       59,    60,    61,     0,     0,     0,     0,    62,    63,    64,
579       65,    66,    67,     0,    68,     0,     0,     0,     0,     0,
580       69,     0,     0,     0,     0,     0,     0,     0,     0,     0,
581        0,     0,    70,    71,    72,     0,     0,     0,     0,    73,
582       74,     0,   320,    75,    30,     0,    31,    32,    33,    34,
583       35,    36,    37,     0,    39,    40,    41,    42,    43,     0,
584       44,    45,    46,     0,     0,     0,    47,     0,     0,     0,
585        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
586       56,     0,    57,    58,    59,    60,    61,     0,     0,     0,
587        0,    62,    63,    64,    65,    66,    67,     0,    68,     0,
588        0,     0,     0,     0,    69,     0,     0,     0,     0,     0,
589        0,     0,     0,     0,     0,     0,    70,    71,    72,     0,
590        0,     0,     0,    73,    74,     0,   333,    75,    30,     0,
591       31,    32,    33,    34,    35,    36,    37,     0,    39,    40,
592       41,    42,    43,     0,    44,    45,    46,     0,     0,     0,
593       47,     0,     0,     0,     0,     0,     0,     0,     0,     0,
594        0,     0,     0,     0,    56,     0,    57,    58,    59,    60,
595       61,     0,     0,     0,     0,    62,    63,    64,    65,    66,
596       67,     0,    68,     0,     0,     0,     0,     0,    69,  -185,
597        0,     0,     0,     0,     0,     0,     0,  -185,     0,     0,
598       70,    71,    72,     0,     0,     0,     0,    73,    74,     0,
599        0,    75,     0,  -185,  -185,  -185,  -185,     0,     0,     0,
600     -185,     0,     0,     0,     0,  -185,     0,     0,     0,     0,
601        0,  -185,  -185,  -185,  -185,     0,     0,     0,     0,     0,
602        0,     0,     0,     0,     0,  -185,  -185,  -185,     0,  -185,
603     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
604        0,   380,     0,   382,  -185,  -185,  -185,   386,     0,  -185,
605     -185,     0,     0,     0,     0,     0,     0,     0,     0,     0,
606        0,     0,     0,   390,   391,     0,     0,     0,     0,     0,
607        0,   400,   401,     0,     0,     0,     0,     0,     0,   182,
608      405,     0,     0,     0,   407,   183,   184,   185,   186,     0,
609        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
610        0,   416,   417,     0,   187,   188,   330,   189,   190,   191,
611      192,   193,   194,   195,     0,     0,     0,     0,   196,   197,
612      198,   182,     0,   199,     0,     0,     0,   183,   184,   185,
613      186,     0,     0,     0,     0,     0,     0,     0,     0,     0,
614        0,     0,     0,     0,     0,     0,   187,   188,     0,   189,
615      190,   191,   192,   193,   194,   195,     0,     0,     0,     0,
616      196,   197,   198,   182,     0,   199,     0,     0,     0,   183,
617      184,   185,   186,     0,     0,     0,     0,     0,     0,     0,
618        0,     0,     0,     0,     0,     0,     0,     0,     0,   188,
619        0,   189,   190,   191,   192,   193,   194,   195,     0,     0,
620        0,     0,   196,   197,   198,  -186,     0,   199,     0,     0,
621        0,   183,   184,   185,   186,     0,     0,     0,     0,     0,
622        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
623        0,     0,     0,   189,   190,   191,   192,   193,   194,   195,
624        0,     0,     0,     0,   196,   197,   198,     0,     0,   199
625 };
626
627 static const yytype_int16 yycheck[] =
628 {
629       15,   103,    15,    61,   117,   380,    33,    34,    35,    36,
630       37,    69,   214,    40,    41,    30,     6,   223,     3,     3,
631      226,     5,     3,     9,     5,    52,     3,    14,     5,    14,
632      210,     0,     9,   352,    61,    62,    63,   217,   151,    16,
633       67,   416,    55,    15,     9,    10,    11,    60,    14,    64,
634       63,    34,    35,    36,    37,    34,    35,    40,    41,   117,
635       75,   119,   123,   124,   125,   126,   127,   128,    15,   130,
636      131,    57,    62,    63,    64,    62,    63,    64,    61,    62,
637      399,     9,    10,     6,    97,   143,     6,    31,    32,     0,
638      102,    82,    83,   151,     6,    86,    62,    63,    64,    15,
639       14,    45,    88,     3,    88,   311,   312,    88,   121,   136,
640      122,    88,    56,    24,    25,    26,    60,    28,    29,    63,
641      135,   136,    66,    88,    68,    66,    70,    71,    72,    73,
642       74,    14,    88,   335,     3,     6,     5,    88,   153,    62,
643       63,    64,    62,    63,    64,    88,    87,    58,    14,   355,
644       62,    63,    64,   136,   167,   170,   171,   172,   173,   174,
645      175,   176,   177,   224,   179,   180,   181,    88,    15,    62,
646       63,    64,   199,     6,    62,    63,    64,   290,    89,    62,
647       63,    64,   295,    88,    88,   200,   201,   202,   203,   204,
648      205,    62,    63,    64,    87,   222,    62,    63,    64,   214,
649      406,     4,    88,   218,   219,     3,   221,     5,   223,     6,
650       62,    63,    64,    81,    82,    83,    88,   232,    86,   234,
651      235,    24,    25,    26,    14,    28,    29,    88,   243,    62,
652       63,    64,   290,    88,   178,    87,    36,   295,   182,   183,
653      184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
654      194,   195,   196,    14,    66,    58,    62,    63,    64,    88,
655      275,   276,   382,   278,     3,    62,    63,    64,    18,    15,
656      390,   391,    62,    63,    64,    88,   289,    14,   291,    88,
657      400,    87,   219,   296,   221,    87,    89,   407,     4,    88,
658      392,    60,     1,     5,     3,    60,     5,    15,     7,     8,
659        9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
660       19,   326,    21,    22,    23,    62,    63,    64,    27,     9,
661      335,    30,    31,    32,    33,    62,    63,    64,    37,    38,
662       39,    40,    41,     4,    43,    44,    45,    46,    47,    87,
663       87,     4,   357,    52,    53,    54,    55,    56,    57,    18,
664       59,     5,    88,    24,    25,    26,    65,    28,    29,    62,
665       63,    64,    64,    18,    62,    63,    64,    87,    77,    78,
666       79,    88,    87,    87,    87,    84,    85,    87,    14,    88,
667       87,    62,    63,    64,    87,    66,   330,    58,     1,    87,
668       87,    14,     5,   408,     7,     8,     9,    10,    11,    12,
669       13,    14,    15,    16,    17,    18,    19,     4,    21,    22,
670       23,    62,    63,    64,    27,     4,     4,     4,    89,     3,
671       62,    63,    64,    48,    49,    50,    51,    87,    41,    87,
672       43,    44,    45,    46,    47,    87,    87,     4,    87,    52,
673       53,    54,    55,    56,    57,    87,    59,    72,    73,    74,
674       75,    76,    65,    14,    88,    87,    81,    82,    83,    87,
675       15,    86,   357,   408,    77,    78,    79,    47,    27,   291,
676        1,    84,    85,    67,     5,    88,     7,     8,     9,    10,
677       11,    12,    13,    -1,    15,    16,    17,    18,    19,    67,
678       21,    22,    23,    62,    63,    64,    27,    -1,    30,    31,
679       32,    33,    -1,    -1,    -1,    37,    -1,    50,    51,    -1,
680       41,    -1,    43,    44,    45,    46,    47,    -1,    87,    -1,
681       -1,    52,    53,    54,    55,    56,    57,    -1,    59,    -1,
682       62,    63,    64,    76,    65,    -1,    -1,    -1,    81,    82,
683       83,    -1,    -1,    86,    -1,    -1,    77,    78,    79,    -1,
684       -1,    -1,    -1,    84,    85,    87,    87,    88,     3,    -1,
685        5,    -1,     7,     8,     9,    10,    11,    12,    13,    -1,
686       15,    16,    17,    18,    19,    20,    21,    22,    23,    76,
687       -1,    -1,    27,    -1,    81,    82,    83,    -1,    -1,    86,
688       48,    49,    50,    51,    -1,    -1,    41,    -1,    43,    44,
689       45,    46,    47,    -1,    -1,    -1,    -1,    52,    53,    54,
690       55,    56,    57,    -1,    59,    73,    74,    75,    76,    -1,
691       65,    -1,    -1,    81,    82,    83,    -1,    -1,    86,    -1,
692       -1,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,    84,
693       85,    -1,     3,    88,     5,    -1,     7,     8,     9,    10,
694       11,    12,    13,     3,    15,    16,    17,    18,    19,     9,
695       21,    22,    23,    -1,    -1,    15,    27,    -1,    -1,    -1,
696       20,    -1,    -1,    48,    49,    50,    51,    -1,    -1,    -1,
697       41,    -1,    43,    44,    45,    46,    47,    -1,    -1,    -1,
698       -1,    52,    53,    54,    55,    56,    57,    -1,    59,    74,
699       75,    76,    -1,    -1,    65,    -1,    81,    82,    83,    -1,
700       -1,    86,    -1,    -1,    -1,    -1,    77,    78,    79,    -1,
701       -1,    50,    -1,    84,    85,    -1,     3,    88,     5,    -1,
702        7,     8,     9,    10,    11,    12,    13,    -1,    15,    16,
703       17,    18,    19,    -1,    21,    22,    23,    76,    -1,    -1,
704       27,    -1,    81,    82,    83,    -1,    -1,    86,    48,    49,
705       50,    51,    -1,    -1,    41,    -1,    43,    44,    45,    46,
706       47,    -1,    -1,    -1,    -1,    52,    53,    54,    55,    56,
707       57,    -1,    59,    -1,    -1,    75,    76,     3,    65,     5,
708        6,    81,    82,    83,    -1,    -1,    86,    -1,    14,    -1,
709       77,    78,    79,    48,    49,    50,    51,    84,    85,    -1,
710       -1,    88,    -1,    -1,    30,    31,    32,    33,    -1,    -1,
711       -1,    37,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,
712       75,    76,    48,    49,    50,    51,    81,    82,    83,    -1,
713       -1,    86,    -1,    -1,    -1,    -1,    62,    63,    64,    -1,
714       66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
715       76,    -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,
716       86,    87,     5,     6,     7,     8,     9,    10,    11,    12,
717       13,    -1,    15,    16,    17,    18,    19,    -1,    21,    22,
718       23,    -1,    -1,    -1,    27,    -1,    -1,    -1,    -1,    -1,
719       48,    -1,    50,    51,    -1,    -1,    -1,    -1,    41,    -1,
720       43,    44,    45,    46,    47,    -1,    -1,    -1,    -1,    52,
721       53,    54,    55,    56,    57,    -1,    59,    75,    76,    -1,
722       -1,    -1,    65,    81,    82,    83,    -1,    -1,    86,    -1,
723       -1,    -1,    -1,    -1,    77,    78,    79,    -1,    50,    51,
724       -1,    84,    85,    -1,     5,    88,     7,     8,     9,    10,
725       11,    12,    13,    14,    15,    16,    17,    18,    19,    -1,
726       21,    22,    23,    75,    76,    -1,    27,    -1,    -1,    81,
727       82,    83,    -1,    -1,    86,    -1,    -1,    -1,    -1,    -1,
728       41,    -1,    43,    44,    45,    46,    47,    -1,    -1,    -1,
729       -1,    52,    53,    54,    55,    56,    57,    -1,    59,    -1,
730       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
731       -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    79,    -1,
732       -1,    -1,    -1,    84,    85,    -1,     5,    88,     7,     8,
733        9,    10,    11,    12,    13,    -1,    15,    16,    17,    18,
734       19,    -1,    21,    22,    23,    -1,    -1,    -1,    27,    30,
735       31,    32,    33,    -1,    -1,    -1,    37,    -1,    -1,    -1,
736       -1,    -1,    41,    -1,    43,    44,    45,    46,    47,    -1,
737       -1,    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,
738       59,    62,    63,    64,    -1,    -1,    65,    -1,    -1,    -1,
739       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78,
740       79,    -1,    -1,    -1,    -1,    84,    85,    -1,    87,    88,
741        5,    -1,     7,     8,     9,    10,    11,    12,    13,    -1,
742       15,    16,    17,    18,    19,    -1,    21,    22,    23,    -1,
743       -1,    -1,    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
744       -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,    43,    44,
745       45,    46,    47,    -1,    -1,    -1,    -1,    52,    53,    54,
746       55,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
747       65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
748       -1,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,    84,
749       85,    -1,    87,    88,     5,    -1,     7,     8,     9,    10,
750       11,    12,    13,    -1,    15,    16,    17,    18,    19,    -1,
751       21,    22,    23,    -1,    -1,    -1,    27,    -1,    -1,    -1,
752       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
753       41,    -1,    43,    44,    45,    46,    47,    -1,    -1,    -1,
754       -1,    52,    53,    54,    55,    56,    57,    -1,    59,    -1,
755       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
756       -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    79,    -1,
757       -1,    -1,    -1,    84,    85,    -1,    87,    88,     5,    -1,
758        7,     8,     9,    10,    11,    12,    13,    -1,    15,    16,
759       17,    18,    19,    -1,    21,    22,    23,    -1,    -1,    -1,
760       27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
761       -1,    -1,    -1,    -1,    41,    -1,    43,    44,    45,    46,
762       47,    -1,    -1,    -1,    -1,    52,    53,    54,    55,    56,
763       57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,    -1,
764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
765       77,    78,    79,    -1,    -1,    -1,    -1,    84,    85,    -1,
766       87,    88,     5,    -1,     7,     8,     9,    10,    11,    12,
767       13,    -1,    15,    16,    17,    18,    19,    -1,    21,    22,
768       23,    -1,    -1,    -1,    27,    -1,    -1,    -1,    -1,    -1,
769       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,
770       43,    44,    45,    46,    47,    -1,    -1,    -1,    -1,    52,
771       53,    54,    55,    56,    57,    -1,    59,    -1,    -1,    -1,
772       -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
773       -1,    -1,    -1,    -1,    77,    78,    79,    -1,    -1,    -1,
774       -1,    84,    85,    -1,    87,    88,     5,    -1,     7,     8,
775        9,    10,    11,    12,    13,    -1,    15,    16,    17,    18,
776       19,    -1,    21,    22,    23,    -1,    -1,    -1,    27,    -1,
777       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
778       -1,    -1,    41,    -1,    43,    44,    45,    46,    47,    -1,
779       -1,    -1,    -1,    52,    53,    54,    55,    56,    57,    -1,
780       59,    -1,    -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,
781       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    77,    78,
782       79,    -1,    -1,    -1,    -1,    84,    85,    -1,    87,    88,
783        5,    -1,     7,     8,     9,    10,    11,    12,    13,    -1,
784       15,    16,    17,    18,    19,    -1,    21,    22,    23,    -1,
785       -1,    -1,    27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
786       -1,    -1,    -1,    -1,    -1,    -1,    41,    -1,    43,    44,
787       45,    46,    47,    -1,    -1,    -1,    -1,    52,    53,    54,
788       55,    56,    57,    -1,    59,    -1,    -1,    -1,    -1,    -1,
789       65,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
790       -1,    -1,    77,    78,    79,    -1,    -1,    -1,    -1,    84,
791       85,    -1,    87,    88,     5,    -1,     7,     8,     9,    10,
792       11,    12,    13,    -1,    15,    16,    17,    18,    19,    -1,
793       21,    22,    23,    -1,    -1,    -1,    27,    -1,    -1,    -1,
794       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
795       41,    -1,    43,    44,    45,    46,    47,    -1,    -1,    -1,
796       -1,    52,    53,    54,    55,    56,    57,    -1,    59,    -1,
797       -1,    -1,    -1,    -1,    65,    -1,    -1,    -1,    -1,    -1,
798       -1,    -1,    -1,    -1,    -1,    -1,    77,    78,    79,    -1,
799       -1,    -1,    -1,    84,    85,    -1,    87,    88,     5,    -1,
800        7,     8,     9,    10,    11,    12,    13,    -1,    15,    16,
801       17,    18,    19,    -1,    21,    22,    23,    -1,    -1,    -1,
802       27,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
803       -1,    -1,    -1,    -1,    41,    -1,    43,    44,    45,    46,
804       47,    -1,    -1,    -1,    -1,    52,    53,    54,    55,    56,
805       57,    -1,    59,    -1,    -1,    -1,    -1,    -1,    65,     6,
806       -1,    -1,    -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,
807       77,    78,    79,    -1,    -1,    -1,    -1,    84,    85,    -1,
808       -1,    88,    -1,    30,    31,    32,    33,    -1,    -1,    -1,
809       37,    -1,    -1,    -1,    -1,    42,    -1,    -1,    -1,    -1,
810       -1,    48,    49,    50,    51,    -1,    -1,    -1,    -1,    -1,
811       -1,    -1,    -1,    -1,    -1,    62,    63,    64,    -1,    66,
812       67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
813       -1,   354,    -1,   356,    81,    82,    83,   360,    -1,    86,
814       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
815       -1,    -1,    -1,   376,   377,    -1,    -1,    -1,    -1,    -1,
816       -1,   384,   385,    -1,    -1,    -1,    -1,    -1,    -1,    42,
817      393,    -1,    -1,    -1,   397,    48,    49,    50,    51,    -1,
818       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
819       -1,   414,   415,    -1,    67,    68,    69,    70,    71,    72,
820       73,    74,    75,    76,    -1,    -1,    -1,    -1,    81,    82,
821       83,    42,    -1,    86,    -1,    -1,    -1,    48,    49,    50,
822       51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
823       -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    -1,    70,
824       71,    72,    73,    74,    75,    76,    -1,    -1,    -1,    -1,
825       81,    82,    83,    42,    -1,    86,    -1,    -1,    -1,    48,
826       49,    50,    51,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
827       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    68,
828       -1,    70,    71,    72,    73,    74,    75,    76,    -1,    -1,
829       -1,    -1,    81,    82,    83,    42,    -1,    86,    -1,    -1,
830       -1,    48,    49,    50,    51,    -1,    -1,    -1,    -1,    -1,
831       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
832       -1,    -1,    -1,    70,    71,    72,    73,    74,    75,    76,
833       -1,    -1,    -1,    -1,    81,    82,    83,    -1,    -1,    86
834 };
835
836 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
837    symbol of state STATE-NUM.  */
838 static const yytype_uint8 yystos[] =
839 {
840        0,    91,    95,     0,    98,    24,    25,    26,    28,    29,
841       58,    89,    99,   105,   106,   114,   115,   116,   117,   119,
842      120,   129,   130,   123,   121,    15,   121,   121,     1,     3,
843        5,     7,     8,     9,    10,    11,    12,    13,    14,    15,
844       16,    17,    18,    19,    21,    22,    23,    27,    30,    31,
845       32,    33,    37,    38,    39,    40,    41,    43,    44,    45,
846       46,    47,    52,    53,    54,    55,    56,    57,    59,    65,
847       77,    78,    79,    84,    85,    88,    92,   100,   102,   103,
848      132,   133,   134,   137,   138,   139,   140,   141,   142,   143,
849      148,   149,   150,   151,   152,   153,    15,   118,    15,   124,
850       14,   131,   124,    93,     6,   132,   142,   142,    15,    20,
851       92,   149,   154,   154,   154,   154,   154,   154,   154,    88,
852      142,   122,   122,    88,    88,    88,    88,    57,    88,   149,
853       88,    88,    92,   142,    88,    88,    88,    92,   142,    15,
854      133,   145,   149,   154,   154,    15,    92,   142,   149,    14,
855      132,    15,   142,    88,   144,   149,   150,   151,   142,   133,
856      142,   142,   142,   142,   142,    87,   132,    36,   104,    14,
857       30,    31,    32,    33,    37,    62,    63,    64,    66,     3,
858        5,    88,    42,    48,    49,    50,    51,    67,    68,    70,
859       71,    72,    73,    74,    75,    76,    81,    82,    83,    86,
860       88,     3,     5,     3,     5,     3,    92,    18,   125,    15,
861      125,    98,     6,   145,    88,   133,    92,   125,    93,    93,
862       93,    93,    93,    93,    88,    93,    93,    87,    87,   132,
863      132,   146,   154,   133,    88,    88,     4,    14,   145,    87,
864      132,    60,   127,     5,    87,    92,   132,   110,   132,   132,
865      132,   132,   132,   132,   132,   142,   132,   132,    87,   132,
866      142,   142,   142,   142,   142,   142,   142,   142,   142,   142,
867      142,   142,   142,   142,   142,     3,     5,    16,    88,   136,
868      149,    87,   132,   132,   132,   132,   132,   132,    60,   126,
869       15,   126,     4,   146,    87,   135,   126,   109,   132,   110,
870      111,   132,   110,   113,   147,   149,   100,   108,   111,   112,
871      132,    93,    94,   111,    87,    66,    87,   132,    87,   132,
872       87,   132,     4,    87,    18,   132,     5,    14,     6,    87,
873       69,   132,   132,    87,   132,    88,    87,    14,     6,    14,
874        6,    14,    18,    14,    92,   128,   145,   128,    87,   145,
875       92,    87,    87,    87,    87,    88,    87,    14,   111,   111,
876       87,    87,    87,    87,     6,   132,     4,   142,    14,     6,
877       87,   146,     4,     4,     4,    14,   107,   107,     3,    96,
878       96,   111,    96,   109,    87,    87,    96,     6,     4,    87,
879       96,    96,    97,    34,    35,   101,   101,    87,   104,    14,
880       96,    96,   104,   104,    98,    96,    88,    96,   107,   104,
881        4,   111,   104,   112,    87,    87,    96,    96,   101
882 };
883
884 typedef enum {
885         toketype_i_tkval, toketype_ival, toketype_opval, toketype_p_tkval
886 } toketypes;
887
888 /* type of each token/terminal */
889 static const toketypes yy_type_tab[] =
890 {
891   toketype_ival, toketype_ival, toketype_ival, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
892   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_opval, toketype_opval, toketype_opval,
893   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
894   toketype_p_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
895   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
896   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
897   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
898   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
899   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
900   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
901   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
902   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_i_tkval, toketype_ival,
903   toketype_ival, toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
904   toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
905   toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
906   toketype_opval, toketype_p_tkval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
907   toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
908   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
909   toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
910   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
911   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
912   toketype_opval, toketype_opval, toketype_opval
913 };