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