This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Promote v5.36 usage and feature bundles doc
[perl5.git] / perly.tab
1 /* -*- buffer-read-only: t -*-
2    !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
3    This file is built by regen_perly.pl from perly.y.
4    Any changes made here will be lost!
5  */
6
7 #define YYFINAL  16
8 /* YYLAST -- Last index in YYTABLE.  */
9 #define YYLAST   2982
10
11 /* YYNTOKENS -- Number of terminals.  */
12 #define YYNTOKENS  115
13 /* YYNNTS -- Number of nonterminals.  */
14 #define YYNNTS  105
15 /* YYNRULES -- Number of rules.  */
16 #define YYNRULES  307
17 /* YYNSTATES -- Number of states.  */
18 #define YYNSTATES  613
19
20 #define YYUNDEFTOK  2
21 #define YYMAXUTOK   369
22
23 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
24    as returned by yylex, with out-of-bounds checking.  */
25 #define YYTRANSLATE(YYX)                                                \
26   ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
27
28 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
29    as returned by yylex.  */
30 static const yytype_uint8 yytranslate[] =
31 {
32        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
33        2,     2,     2,     2,     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,     2,     2,     2,     2,     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,     2,     2,     2,     2,
50        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
51        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
52        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
53        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
54        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
55        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
56        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
57        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
58        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
59       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
60       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
61       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
62       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
63       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
64       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
65       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
66       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
67       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
68      105,   106,   107,   108,   109,   110,   111,   112,   113,   114
69 };
70
71 #if YYDEBUG
72   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
73 static const yytype_uint16 yyrline[] =
74 {
75        0,   153,   153,   152,   164,   163,   174,   173,   187,   186,
76      200,   199,   213,   212,   223,   222,   235,   243,   247,   254,
77      259,   266,   272,   276,   278,   275,   285,   286,   296,   297,
78      306,   310,   314,   321,   331,   333,   346,   343,   367,   362,
79      383,   391,   390,   399,   405,   411,   416,   418,   420,   427,
80      435,   437,   434,   454,   459,   468,   475,   474,   489,   497,
81      504,   503,   518,   525,   524,   539,   543,   547,   552,   560,
82      578,   579,   583,   587,   589,   591,   593,   595,   597,   599,
83      602,   608,   609,   614,   625,   626,   631,   633,   638,   645,
84      646,   650,   654,   658,   663,   667,   671,   672,   675,   681,
85      686,   692,   693,   698,   699,   704,   705,   707,   712,   714,
86      725,   727,   732,   734,   738,   758,   759,   761,   767,   832,
87      834,   840,   842,   846,   852,   853,   858,   859,   863,   867,
88      867,   934,   935,   940,   952,   953,   957,   968,   970,   972,
89      976,   978,   983,   987,   991,   995,  1001,  1006,  1012,  1018,
90     1020,  1022,  1025,  1024,  1035,  1036,  1040,  1044,  1047,  1052,
91     1057,  1060,  1064,  1068,  1074,  1082,  1089,  1095,  1097,  1099,
92     1104,  1106,  1108,  1113,  1115,  1117,  1119,  1121,  1123,  1125,
93     1127,  1129,  1131,  1133,  1137,  1139,  1141,  1143,  1147,  1149,
94     1153,  1155,  1157,  1159,  1163,  1165,  1170,  1172,  1175,  1177,
95     1179,  1182,  1185,  1196,  1199,  1207,  1209,  1211,  1214,  1220,
96     1222,  1226,  1227,  1228,  1229,  1230,  1232,  1234,  1236,  1238,
97     1240,  1242,  1244,  1246,  1248,  1250,  1252,  1254,  1256,  1266,
98     1276,  1286,  1296,  1298,  1300,  1303,  1308,  1312,  1314,  1316,
99     1318,  1321,  1323,  1326,  1328,  1330,  1332,  1334,  1336,  1338,
100     1340,  1342,  1345,  1347,  1349,  1351,  1353,  1355,  1359,  1362,
101     1361,  1374,  1375,  1376,  1381,  1383,  1385,  1387,  1392,  1394,
102     1397,  1399,  1401,  1407,  1408,  1412,  1413,  1417,  1418,  1423,
103     1428,  1430,  1434,  1437,  1441,  1442,  1443,  1446,  1447,  1450,
104     1451,  1454,  1458,  1462,  1468,  1474,  1476,  1480,  1484,  1485,
105     1489,  1490,  1494,  1495,  1500,  1502,  1504,  1507
106 };
107 #endif
108
109 #if YYDEBUG || YYERROR_VERBOSE || 0
110 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
111    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
112 static const char *const yytname[] =
113 {
114   "$end", "error", "$undefined", "GRAMPROG", "GRAMEXPR", "GRAMBLOCK",
115   "GRAMBARESTMT", "GRAMFULLSTMT", "GRAMSTMTSEQ", "GRAMSUBSIGNATURE",
116   "PERLY_AMPERSAND", "PERLY_BRACE_OPEN", "PERLY_BRACE_CLOSE",
117   "PERLY_BRACKET_OPEN", "PERLY_BRACKET_CLOSE", "PERLY_COMMA",
118   "PERLY_DOLLAR", "PERLY_DOT", "PERLY_EQUAL_SIGN", "PERLY_MINUS",
119   "PERLY_PERCENT_SIGN", "PERLY_PLUS", "PERLY_SEMICOLON", "PERLY_SLASH",
120   "PERLY_SNAIL", "PERLY_STAR", "KW_FORMAT", "KW_PACKAGE", "KW_LOCAL",
121   "KW_MY", "KW_IF", "KW_ELSE", "KW_ELSIF", "KW_UNLESS", "KW_FOR",
122   "KW_UNTIL", "KW_WHILE", "KW_CONTINUE", "KW_GIVEN", "KW_WHEN",
123   "KW_DEFAULT", "KW_TRY", "KW_CATCH", "KW_FINALLY", "KW_DEFER",
124   "KW_REQUIRE", "KW_DO", "KW_USE_or_NO", "KW_SUB_named",
125   "KW_SUB_named_sig", "KW_SUB_anon", "KW_SUB_anon_sig", "BAREWORD",
126   "METHCALL0", "METHCALL", "THING", "PMFUNC", "PRIVATEREF", "QWLIST",
127   "FUNC0OP", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB", "PLUGEXPR", "PLUGSTMT",
128   "LABEL", "LOOPEX", "DOTDOT", "YADAYADA", "FUNC0", "FUNC1", "FUNC",
129   "UNIOP", "LSTOP", "MULOP", "ADDOP", "DOLSHARP", "HASHBRACK", "NOAMP",
130   "COLONATTR", "FORMLBRACK", "FORMRBRACK", "SUBLEXSTART", "SUBLEXEND",
131   "PREC_LOW", "OROP", "ANDOP", "NOTOP", "ASSIGNOP", "PERLY_QUESTION_MARK",
132   "PERLY_COLON", "OROR", "DORDOR", "ANDAND", "BITOROP", "BITANDOP",
133   "CHEQOP", "NCEQOP", "CHRELOP", "NCRELOP", "SHIFTOP", "MATCHOP",
134   "PERLY_EXCLAMATION_MARK", "PERLY_TILDE", "UMINUS", "REFGEN", "POWOP",
135   "PREINC", "PREDEC", "POSTINC", "POSTDEC", "POSTJOIN", "ARROW",
136   "PERLY_PAREN_CLOSE", "PERLY_PAREN_OPEN", "$accept", "grammar", "@1",
137   "@2", "@3", "@4", "@5", "@6", "@7", "block", "empty", "formblock",
138   "remember", "mblock", "mremember", "catch_paren", "$@8", "$@9",
139   "stmtseq", "formstmtseq", "fullstmt", "labfullstmt", "barestmt", "$@10",
140   "$@11", "$@12", "$@13", "$@14", "@15", "$@16", "$@17", "formline",
141   "formarg", "condition", "sideff", "else", "cont", "finally", "mintro",
142   "nexpr", "texpr", "iexpr", "mexpr", "mnexpr", "formname", "startsub",
143   "startanonsub", "startformsub", "subname", "proto", "subattrlist",
144   "myattrlist", "sigvarname", "sigslurpsigil", "sigslurpelem",
145   "sigdefault", "sigscalarelem", "sigelem", "siglist", "optsiglist",
146   "optsubsignature", "subsignature", "subsigguts", "$@18", "optsubbody",
147   "subbody", "optsigsubbody", "sigsubbody", "expr", "listexpr", "listop",
148   "@19", "methodname", "subscripted", "termbinop", "termrelop",
149   "relopchain", "termeqop", "eqopchain", "termunop", "anonymous", "termdo",
150   "term", "@20", "myattrterm", "myterm", "optlistexpr", "optexpr",
151   "optrepl", "my_scalar", "list_of_scalars", "my_list_of_scalars",
152   "my_var", "refgen_topic", "my_refgen", "amper", "scalar", "ary", "hsh",
153   "arylen", "star", "sliceme", "kvslice", "gelem", "indirob", YY_NULLPTR
154 };
155 #endif
156
157 # ifdef YYPRINT
158 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
159    (internal) symbol number NUM (which must be that of a token).  */
160 static const yytype_uint16 yytoknum[] =
161 {
162        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
163      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
164      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
165      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
166      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
167      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
168      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
169      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
170      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
171      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
172      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
173      365,   366,   367,   368,   369
174 };
175 # endif
176
177 #define YYPACT_NINF -507
178
179 #define yypact_value_is_default(Yystate) \
180   (!!((Yystate) == (-507)))
181
182 #define YYTABLE_NINF -303
183
184 #define yytable_value_is_error(Yytable_value) \
185   (!!((Yytable_value) == (-303)))
186
187   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
188      STATE-NUM.  */
189 static const yytype_int16 yypact[] =
190 {
191      625,  -507,  -507,  -507,  -507,  -507,  -507,  -507,    34,  -507,
192     2734,    52,  1602,  1503,  -507,  -507,  -507,  -507,   205,  2734,
193      205,  2734,   205,  2734,   205,   205,  2734,    13,  2734,  2174,
194     -507,  -507,  -507,   205,   205,  -507,  -507,   102,   -27,  -507,
195     2734,  -507,  -507,  2734,     5,    37,   -32,  2174,  2104,   205,
196     2734,    -5,  2734,  2734,  2734,  2734,  2734,  2734,  2244,  -507,
197       22,   124,  -507,     0,  -507,   129,    50,    92,    77,  -507,
198     -507,  -507,   549,  -507,  -507,    71,    48,    88,    91,  -507,
199      184,   191,   306,   190,  -507,  -507,  -507,  -507,  -507,   181,
200      128,   131,    -2,   149,   154,   159,   173,    52,   288,   288,
201     -507,    -5,    -5,  -507,   287,   277,  -507,   300,   261,  1503,
202     -507,  -507,  -507,  -507,   700,  -507,   374,   809,  -507,  -507,
203     -507,  -507,  -507,   310,  -507,   380,  -507,   380,  -507,  -507,
204      229,  2804,  2314,   248,  -507,  -507,  -507,   229,  -507,   229,
205      279,   257,  2734,   228,   267,  2734,   245,   229,    52,   549,
206      246,  2384,  2734,  2104,  -507,   229,  2000,  -507,   124,  -507,
207     1898,  2734,  -507,   338,  -507,  -507,  2734,   124,   380,   380,
208      380,   417,   417,   352,   113,  2734,  2734,  2734,  2734,  2734,
209     2454,  -507,  -507,  2734,  -507,  -507,  2734,  2734,  2734,  2734,
210     2734,  2734,  2734,  2734,  2734,  2734,  2734,  2734,  2734,  2734,
211     2734,  2734,  2734,  2734,  -507,  -507,  -507,    60,  2524,  2734,
212     2734,  2734,  2734,  2734,  2734,  2734,  -507,   316,   322,  -507,
213     -507,   268,   433,  -507,  -507,   252,  -507,  -507,  -507,  -507,
214     -507,  -507,   334,  -507,  -507,  -507,  -507,  -507,    52,  -507,
215     -507,  -507,  2734,  2734,  2734,  2734,  2734,  2734,  -507,  -507,
216     -507,   324,  -507,  -507,  -507,   324,  -507,  -507,  -507,   364,
217     -507,  -507,  2594,   380,   248,    12,    42,    54,  -507,   207,
218      327,  -507,  -507,  -507,   257,   349,  -507,  -507,  -507,  2734,
219     2734,    10,  -507,  -507,  -507,  -507,   230,   325,   296,  2734,
220      124,   398,  -507,  2734,   403,   332,  -507,   549,   125,    25,
221     -507,   240,   229,   314,   463,   201,   354,   549,   509,  1950,
222     1950,  2825,  2853,  2870,   314,   314,   229,   229,   321,   380,
223      380,   394,  2734,  2734,   209,   396,   404,   412,  -507,   413,
224     2664,   333,  -507,  -507,   259,   127,    67,   144,    69,   146,
225       72,   155,   909,  -507,  -507,   430,    32,  2734,  2734,  -507,
226        2,  -507,  -507,   336,  -507,  -507,  -507,  -507,  1698,   451,
227     -507,  2734,  2734,  2734,  2734,  -507,  -507,   400,  -507,  -507,
228     -507,  -507,    22,  -507,  -507,  -507,    22,  -507,  -507,  -507,
229      366,   366,   374,    61,   265,  -507,  -507,  -507,  -507,  -507,
230      347,  -507,   355,    49,  -507,  2734,  -507,  -507,  -507,   271,
231     -507,    74,  2734,   458,  -507,  -507,  2734,  -507,   158,    76,
232     -507,  -507,  -507,  -507,  -507,  -507,   278,  2734,  -507,   460,
233     -507,   461,  -507,   462,  -507,   464,  -507,  -507,  -507,  -507,
234     -507,   368,    22,   369,   469,   363,  -507,  -507,  -507,  -507,
235     -507,   383,   457,    90,  -507,  2734,   386,   393,    22,   401,
236      405,  1008,   379,   455,   279,   257,  2734,  -507,  -507,  -507,
237     -507,    85,   502,  -507,  -507,  -507,   505,  -507,  -507,  2734,
238     -507,   437,  -507,  -507,  -507,   123,  -507,  1849,   511,  -507,
239     -507,   408,  -507,  -507,  -507,  -507,   512,  -507,   288,   288,
240      516,   427,  -507,  2734,  2734,   288,  -507,   432,   434,  -507,
241     -507,   288,   288,  -507,  -507,  -507,  -507,  2734,   257,   526,
242      549,  -507,   452,  -507,    22,  -507,  -507,  -507,  -507,   485,
243     -507,   192,   192,   469,   456,   465,   467,   277,  2734,  2734,
244      288,   288,   288,  -507,  -507,   469,   288,   560,   563,  -507,
245     -507,  -507,  1107,  -507,  1206,  -507,  1305,   288,   472,  -507,
246     -507,  -507,  -507,  2734,   288,   288,  -507,   568,   478,   277,
247      277,   277,  -507,   528,  -507,  -507,  -507,  -507,  -507,  -507,
248     -507,    20,  -507,  -507,  2734,   481,   277,   277,  -507,   288,
249     -507,  -507,  -507,   482,    52,  -507,   594,   532,  -507,   501,
250      288,  -507,  -507,  -507,   277,  -507,  -507,  -507,  -507,  -507,
251     -507,   288,   277,  1794,  -507,  1404,   192,  -507,   504,  -507,
252     -507,   288,  -507
253 };
254
255   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
256      Performed when YYTABLE does not specify something else to do.  Zero
257      means the default is an error.  */
258 static const yytype_uint16 yydefact[] =
259 {
260        0,     2,     4,     6,     8,    10,    12,    14,     0,    19,
261       17,     0,     0,     0,    17,   129,     1,    17,     0,    17,
262        0,     0,     0,     0,     0,     0,     0,     0,   248,     0,
263       99,    99,   261,     0,     0,   232,   259,   220,   254,   256,
264      250,    99,   263,   242,   252,     0,     0,   245,    17,     0,
265       17,     0,     0,     0,     0,     0,     0,     0,     0,   275,
266      276,   139,   262,   227,   211,   175,   184,   176,   190,   212,
267      213,   214,   142,   217,     5,   233,   222,   225,   224,   226,
268      223,     0,     0,     0,    19,     7,    73,    68,   100,     0,
269        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
270       98,     0,     0,    34,     0,    17,     9,     0,    74,     0,
271       11,    31,    30,    26,     0,    15,    17,     0,   304,   307,
272      306,   305,   291,     0,   292,   196,   294,   197,   293,   297,
273      218,     0,     0,   265,   270,   272,   271,   249,   210,   209,
274       17,    17,    17,     0,     0,     0,     0,   251,     0,   243,
275        0,     0,    17,    17,   246,   247,   304,   273,   274,   149,
276      305,     0,   295,     0,   101,   102,    17,   244,   198,   199,
277      216,   203,   204,   221,     0,     0,     0,   140,     0,     0,
278        0,   187,   186,     0,   193,   192,     0,     0,     0,     0,
279        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
280        0,     0,     0,     0,   200,   201,   202,     0,     0,     0,
281        0,     0,     0,     0,     0,     0,    17,    17,     0,    19,
282       19,    19,     0,    19,    19,     0,    19,    19,    19,    19,
283       47,    21,     0,    66,    41,    98,    98,    67,     0,    84,
284       62,    65,     0,     0,     0,     0,     0,     0,    33,    32,
285       27,   110,   113,   112,   124,   110,   120,   119,   123,   125,
286      130,   205,     0,   267,     0,   222,   225,   224,   269,     0,
287      109,   264,   104,   103,    17,   107,   105,    19,   147,    17,
288        0,     0,   255,   152,   253,   257,     0,     0,     0,     0,
289      143,     0,   236,     0,   219,   138,   137,   141,     0,     0,
290      166,     0,   189,   195,   179,   172,   173,   170,     0,   181,
291      182,   180,   178,   177,   194,   191,   188,   185,   174,   183,
292      171,     0,     0,     0,     0,   301,   299,   303,   154,     0,
293        0,   146,   155,   234,     0,     0,     0,     0,     0,     0,
294        0,     0,     0,    96,    97,     0,     0,     0,     0,   289,
295        0,   290,   287,     0,   288,   284,   285,   286,     0,     0,
296       19,     0,    91,     0,     0,    17,    19,     0,    36,    38,
297       85,    75,    72,    76,    79,    78,    93,    77,    80,   111,
298       17,    17,   121,   221,     0,   266,   268,   108,    19,   106,
299       17,   208,     0,    17,   168,    17,   258,   151,   150,     0,
300      206,     0,     0,     0,   159,   165,     0,   240,     0,     0,
301      237,   239,   238,   241,   296,   163,     0,    17,   235,     0,
302      157,     0,   228,     0,   229,     0,    16,    19,    35,    19,
303       40,     0,    94,     0,     0,     0,   279,    19,    89,    90,
304       95,     0,     0,    74,    56,     0,     0,     0,    92,     0,
305        0,     0,    17,     0,    17,    17,   116,   115,   118,   114,
306      122,   219,     0,   207,   129,   126,     0,   127,   148,     0,
307      277,     0,   153,   144,   169,     0,   162,   215,     0,   158,
308      164,     0,   160,   230,   231,   156,     0,    63,     0,     0,
309      283,     0,   282,     0,     0,     0,    50,     0,     0,    88,
310       88,     0,     0,    20,    23,    22,    60,    17,    17,    19,
311      117,    17,     0,    17,   278,   260,   167,   161,   145,     0,
312       17,    17,    17,   280,     0,     0,     0,    17,    91,     0,
313        0,     0,     0,    45,    46,     0,     0,     0,    19,   135,
314       39,   134,     0,   128,     0,    17,     0,     0,     0,    81,
315       43,    44,   281,     0,     0,     0,    59,     0,     0,    17,
316       17,    17,    24,    86,    42,   132,    37,   131,   133,   136,
317       28,     0,    64,    82,     0,     0,    17,    17,    51,     0,
318       55,    49,    48,     0,     0,    61,     0,    17,    29,     0,
319        0,    53,    58,    88,    17,    25,    87,    18,    17,    70,
320       69,     0,    17,     0,    57,     0,    17,    54,     0,    71,
321       83,     0,    52
322 };
323
324   /* YYPGOTO[NTERM-NUM].  */
325 static const yytype_int16 yypgoto[] =
326 {
327     -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,    -3,
328      -10,  -507,    51,   -96,  -507,  -507,  -507,  -507,   -11,  -507,
329      609,   517,     8,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
330     -507,  -507,  -507,   298,  -348,  -506,  -271,  -507,  -465,  -507,
331       97,   274,  -307,    33,  -507,     3,   103,  -507,   157,   185,
332     -272,   387,   397,  -507,  -507,   272,  -507,   275,  -507,  -507,
333     -507,  -507,   198,  -507,  -507,   116,  -507,   147,    39,   -20,
334     -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,  -507,
335     -507,  -507,   496,  -507,  -507,   533,  -130,    29,  -507,  -507,
336     -507,  -507,   304,  -507,  -507,   443,   145,   -26,   -22,  -507,
337     -507,  -507,  -507,  -507,    44
338 };
339
340   /* YYDEFGOTO[NTERM-NUM].  */
341 static const yytype_int16 yydefgoto[] =
342 {
343       -1,     8,     9,    10,    11,    12,    13,    14,    15,   105,
344      239,   428,   390,   232,   365,   506,   535,   583,   114,   571,
345      250,   111,   112,   454,   455,   367,   528,   593,   497,   536,
346      520,   588,   600,   371,   107,   550,   240,   585,   531,   440,
347      447,   375,   431,   442,   345,   234,   140,   217,   166,   274,
348      277,   271,   380,   255,   256,   458,   257,   258,   259,   260,
349      466,   467,   115,   116,   566,   463,   540,   391,   108,    61,
350       62,   395,   331,    63,    64,    65,    66,    67,    68,    69,
351       70,    71,    72,   144,    73,   133,   159,    74,   471,   435,
352      490,   491,   352,   353,   224,    75,    76,    77,    78,    79,
353       80,    81,    82,    83,   124
354 };
355
356   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
357      positive, shift that token.  If negative, reduce the rule whose
358      number is the opposite.  If YYTABLE_NINF, syntax error.  */
359 static const yytype_int16 yytable[] =
360 {
361       59,   135,   388,   233,   113,   136,   117,   113,    85,    59,
362      439,   178,   278,   179,    20,   120,   551,   120,    20,   120,
363      106,   120,   120,   209,   394,   210,   138,   221,   158,    20,
364      120,   120,   167,    22,    16,   532,   292,    24,   157,   404,
365       59,   433,   586,   429,   154,   120,   120,   164,   123,    60,
366      152,   441,   165,  -298,   430,  -298,   449,   450,    60,   209,
367       17,   210,   122,    84,   177,  -300,   126,  -300,   128,   129,
368      321,   322,   469,   323,   293,   587,   324,   142,   143,   163,
369      325,   420,   153,   422,   326,   327,   424,   146,   474,    60,
370      479,  -270,   161,   162,   230,   175,   176,   174,   402,  -298,
371      610,  -298,  -300,   222,  -300,   266,   254,   175,   176,   267,
372      175,   176,   223,   328,   180,   145,   434,   249,   131,   150,
373      242,  -272,   158,   243,   244,   245,   246,   132,   603,   247,
374      273,   276,   157,  -271,   141,   216,   329,   516,   498,   177,
375     -269,   290,    59,    59,   148,   283,   158,   403,   183,   419,
376      120,   151,   175,   176,   175,   176,   157,   175,   176,   175,
377      176,   175,   176,   121,  -268,   121,   421,   121,   423,   121,
378      121,   269,   134,   186,   330,   175,   176,   425,   121,   121,
379      478,   287,   288,   509,   281,   208,   525,   526,   184,   185,
380      286,    60,    60,   160,   121,  -302,   356,   289,   175,   176,
381      357,   215,   211,   -94,   212,   342,   113,   344,   175,   176,
382      175,   176,   175,   176,   295,   296,    84,   298,   299,   301,
383       84,    20,   558,   547,   548,    20,   294,   181,   182,   175,
384      176,   175,   176,   218,   410,   370,   538,   225,   368,   369,
385      175,   176,   219,   175,   176,   220,   575,   334,   335,   336,
386      337,   338,   339,   340,   341,   439,   556,   118,   235,   236,
387      393,   118,   119,   226,   276,   472,   119,   589,   227,    59,
388      347,   348,   350,   228,   358,   359,   265,   361,   362,   363,
389      364,   372,   372,   372,   376,   372,   372,   229,   580,   581,
390      582,   242,   175,   176,   243,   244,   245,   246,   160,   231,
391      247,   384,   202,   188,   189,   591,   592,   203,   392,   237,
392      204,   205,   206,   207,   238,   175,   176,   213,    60,   214,
393      386,   120,   241,   604,   261,   175,   176,   270,   399,   201,
394      202,   607,   401,   356,   272,   203,   275,   357,   204,   205,
395      206,   207,   279,   396,   175,   176,   175,   176,   438,   280,
396      175,   176,   332,   405,   451,   113,   175,   176,   282,   284,
397      291,   408,   409,   175,   176,   293,   360,   355,   343,   416,
398      457,   457,   418,   349,   346,   158,   366,   537,   461,   382,
399      465,   379,   387,   470,   473,   157,   432,   432,   188,   189,
400      251,   480,   521,   522,   252,   188,   189,   443,   253,   527,
401      376,   448,   432,   432,   389,   533,   534,    59,   397,   398,
402      400,   445,   199,   200,   201,   202,   402,   452,   176,   407,
403      203,   411,   202,   204,   205,   206,   207,   203,   188,   412,
404      204,   205,   206,   207,   559,   560,   561,   413,   414,   462,
405      563,   475,   505,    18,   273,   276,   481,   417,   427,    20,
406      437,   573,   453,    22,   456,   202,    60,    24,   576,   577,
407      203,   464,   351,   204,   205,   206,   207,    20,   468,   121,
408      476,    22,   482,   483,   484,    24,   485,   493,   486,   496,
409      487,   488,   489,   594,   432,    20,   203,   158,   494,   204,
410      205,   206,   207,   504,   602,   436,   495,   157,   276,   499,
411      542,   113,   544,   113,   355,   606,   500,   507,   514,   546,
412      113,   549,   549,   511,   501,   612,   513,   125,   502,   127,
413      515,   518,   130,   517,   137,   139,  -303,  -303,  -303,   207,
414     -303,   523,   432,   432,   519,   570,   147,   188,   189,   149,
415      524,   373,   374,   155,   377,   378,   529,   530,   539,   168,
416      169,   170,   171,   172,   192,   193,   194,   195,   196,   197,
417      198,   199,   200,   201,   202,   543,   545,   448,   432,   203,
418      553,   584,   204,   205,   206,   207,   187,   599,   554,   492,
419      555,   596,   564,   188,   189,   565,   574,   605,   113,   462,
420      578,   579,   432,   438,   590,   595,   549,   190,   191,   406,
421      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
422      202,   597,   598,   432,   601,   203,   187,   611,   204,   205,
423      206,   207,   110,   188,   189,   557,   248,   263,     1,     2,
424        3,     4,     5,     6,     7,   446,   608,   190,   191,   508,
425      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
426      202,   385,   381,   459,   567,   203,   541,   460,   204,   205,
427      206,   207,   512,   444,   264,   354,     0,     0,   552,     0,
428        0,     0,     0,   297,     0,     0,     0,     0,     0,   302,
429      562,     0,   303,   304,   305,   306,   307,   308,   309,   310,
430      311,   312,   313,   314,   315,   316,   317,   318,   319,   320,
431      -13,    86,     0,     0,     0,     0,     0,     0,     0,     0,
432       18,    84,     0,    19,     0,     0,    20,     0,     0,    21,
433       22,    23,    87,     0,    24,    25,    88,    89,    26,    27,
434       90,     0,     0,    91,    92,    93,    94,     0,    95,    96,
435       97,    98,     0,     0,    99,    28,    29,   100,   101,   102,
436       30,    31,    32,    33,    34,    35,    36,     0,    37,    38,
437       39,    40,    41,    42,   103,   109,    43,     0,   104,    44,
438       45,    46,    47,    48,     0,     0,    49,    50,    51,     0,
439        0,     0,     0,     0,     0,     0,     0,    52,     0,     0,
440        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
441        0,     0,    53,    54,     0,    55,     0,    56,    57,    -3,
442       86,     0,     0,     0,    58,     0,     0,     0,     0,    18,
443       84,     0,    19,     0,     0,    20,     0,     0,    21,    22,
444       23,    87,     0,    24,    25,    88,    89,    26,    27,    90,
445        0,     0,    91,    92,    93,    94,     0,    95,    96,    97,
446       98,     0,     0,    99,    28,    29,   100,   101,   102,    30,
447       31,    32,    33,    34,    35,    36,     0,    37,    38,    39,
448       40,    41,    42,   103,   109,    43,     0,   104,    44,    45,
449       46,    47,    48,     0,     0,    49,    50,    51,     0,     0,
450        0,     0,     0,     0,     0,     0,    52,     0,     0,     0,
451        0,     0,   477,     0,     0,     0,     0,     0,     0,     0,
452       86,    53,    54,     0,    55,     0,    56,    57,     0,    18,
453       84,   426,    19,    58,     0,    20,     0,     0,    21,    22,
454       23,    87,     0,    24,    25,    88,    89,    26,    27,    90,
455        0,     0,    91,    92,    93,    94,     0,    95,    96,    97,
456       98,     0,   510,    99,    28,    29,   100,   101,   102,    30,
457       31,    32,    33,    34,    35,    36,     0,    37,    38,    39,
458       40,    41,    42,   103,   109,    43,     0,   104,    44,    45,
459       46,    47,    48,     0,     0,    49,    50,    51,     0,     0,
460        0,     0,     0,     0,     0,     0,    52,     0,     0,     0,
461        0,     0,     0,     0,     0,     0,     0,     0,     0,    86,
462        0,    53,    54,     0,    55,     0,    56,    57,    18,    84,
463      503,    19,     0,    58,    20,     0,     0,    21,    22,    23,
464       87,     0,    24,    25,    88,    89,    26,    27,    90,     0,
465        0,    91,    92,    93,    94,     0,    95,    96,    97,    98,
466        0,     0,    99,    28,    29,   100,   101,   102,    30,    31,
467       32,    33,    34,    35,    36,     0,    37,    38,    39,    40,
468       41,    42,   103,   109,    43,     0,   104,    44,    45,    46,
469       47,    48,     0,     0,    49,    50,    51,     0,     0,     0,
470        0,     0,     0,     0,     0,    52,     0,     0,     0,     0,
471        0,     0,     0,     0,     0,     0,     0,     0,    86,     0,
472       53,    54,     0,    55,     0,    56,    57,    18,    84,   568,
473       19,     0,    58,    20,     0,     0,    21,    22,    23,    87,
474        0,    24,    25,    88,    89,    26,    27,    90,     0,     0,
475       91,    92,    93,    94,     0,    95,    96,    97,    98,     0,
476        0,    99,    28,    29,   100,   101,   102,    30,    31,    32,
477       33,    34,    35,    36,     0,    37,    38,    39,    40,    41,
478       42,   103,   109,    43,     0,   104,    44,    45,    46,    47,
479       48,     0,     0,    49,    50,    51,     0,     0,     0,     0,
480        0,     0,     0,     0,    52,     0,     0,     0,     0,     0,
481        0,     0,     0,     0,     0,     0,     0,    86,     0,    53,
482       54,     0,    55,     0,    56,    57,    18,    84,   569,    19,
483        0,    58,    20,     0,     0,    21,    22,    23,    87,     0,
484       24,    25,    88,    89,    26,    27,    90,     0,     0,    91,
485       92,    93,    94,     0,    95,    96,    97,    98,     0,     0,
486       99,    28,    29,   100,   101,   102,    30,    31,    32,    33,
487       34,    35,    36,     0,    37,    38,    39,    40,    41,    42,
488      103,   109,    43,     0,   104,    44,    45,    46,    47,    48,
489        0,     0,    49,    50,    51,     0,     0,     0,     0,     0,
490        0,     0,     0,    52,     0,     0,     0,     0,     0,     0,
491        0,     0,     0,     0,     0,     0,    86,     0,    53,    54,
492        0,    55,     0,    56,    57,    18,    84,   572,    19,     0,
493       58,    20,     0,     0,    21,    22,    23,    87,     0,    24,
494       25,    88,    89,    26,    27,    90,     0,     0,    91,    92,
495       93,    94,     0,    95,    96,    97,    98,     0,     0,    99,
496       28,    29,   100,   101,   102,    30,    31,    32,    33,    34,
497       35,    36,     0,    37,    38,    39,    40,    41,    42,   103,
498      109,    43,     0,   104,    44,    45,    46,    47,    48,     0,
499        0,    49,    50,    51,     0,     0,     0,     0,     0,     0,
500        0,     0,    52,     0,     0,     0,     0,     0,     0,     0,
501        0,     0,     0,     0,     0,    86,     0,    53,    54,     0,
502       55,     0,    56,    57,    18,    84,     0,    19,     0,    58,
503       20,     0,     0,    21,    22,    23,    87,     0,    24,    25,
504       88,    89,    26,    27,    90,     0,     0,    91,    92,    93,
505       94,     0,    95,    96,    97,    98,     0,     0,    99,    28,
506       29,   100,   101,   102,    30,    31,    32,    33,    34,    35,
507       36,     0,    37,    38,    39,    40,    41,    42,   103,   109,
508       43,     0,   104,    44,    45,    46,    47,    48,     0,     0,
509       49,    50,    51,     0,     0,   609,     0,     0,     0,     0,
510        0,    52,     0,     0,     0,     0,     0,     0,     0,     0,
511        0,     0,     0,     0,    86,     0,    53,    54,     0,    55,
512        0,    56,    57,    18,    84,     0,    19,     0,    58,    20,
513        0,     0,    21,    22,    23,    87,     0,    24,    25,    88,
514       89,    26,    27,    90,     0,     0,    91,    92,    93,    94,
515        0,    95,    96,    97,    98,     0,     0,    99,    28,    29,
516      100,   101,   102,    30,    31,    32,    33,    34,    35,    36,
517        0,    37,    38,    39,    40,    41,    42,   103,   109,    43,
518        0,   104,    44,    45,    46,    47,    48,     0,     0,    49,
519       50,    51,     0,     0,     0,     0,     0,     0,     0,     0,
520       52,     0,     0,     0,     0,     0,     0,     0,     0,     0,
521        0,     0,     0,    86,     0,    53,    54,     0,    55,     0,
522       56,    57,    18,    84,     0,    19,     0,    58,    20,     0,
523        0,    21,    22,    23,    87,     0,    24,    25,    88,    89,
524       26,    27,    90,     0,     0,    91,    92,    93,    94,     0,
525       95,    96,    97,    98,     0,     0,    99,    28,    29,   100,
526      101,   102,    30,    31,    32,    33,    34,    35,    36,     0,
527       37,    38,    39,    40,    41,    42,   103,     0,    43,     0,
528      104,    44,    45,    46,    47,    48,     0,     0,    49,    50,
529       51,     0,     0,     0,     0,     0,     0,     0,     0,    52,
530        0,     0,     0,     0,     0,     0,     0,     0,     0,    86,
531        0,     0,     0,     0,    53,    54,     0,    55,    18,    56,
532       57,    19,     0,     0,    20,     0,    58,    21,    22,    23,
533      -17,     0,    24,    25,     0,     0,    26,    27,     0,     0,
534        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
535        0,     0,     0,    28,    29,     0,     0,     0,    30,    31,
536       32,    33,    34,    35,    36,     0,    37,    38,    39,    40,
537       41,    42,     0,     0,    43,     0,     0,    44,    45,    46,
538       47,    48,     0,     0,    49,    50,    51,     0,     0,     0,
539        0,     0,     0,     0,     0,    52,     0,     0,     0,     0,
540        0,     0,     0,     0,     0,    86,     0,     0,     0,     0,
541       53,    54,     0,    55,    18,    56,    57,    19,     0,     0,
542       20,     0,    58,    21,    22,    23,     0,     0,    24,    25,
543        0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
544        0,     0,     0,     0,     0,     0,     0,     0,     0,    28,
545       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
546       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
547       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
548       49,    50,    51,     0,     0,     0,     0,     0,     0,     0,
549        0,    52,     0,     0,     0,     0,     0,     0,     0,     0,
550        0,     0,     0,     0,     0,     0,    53,    54,  -222,    55,
551        0,    56,    57,     0,     0,     0,     0,   -17,    58,   209,
552        0,   210,  -222,  -222,     0,     0,   187,     0,     0,     0,
553     -222,  -222,     0,   188,   189,     0,     0,     0,  -222,     0,
554        0,  -222,  -222,  -222,  -222,     0,     0,  -222,   191,     0,
555      192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
556      202,     0,     0,     0,     0,   203,     0,     0,   204,   205,
557      206,   207,     0,     0,     0,  -222,     0,     0,     0,     0,
558        0,     0,  -222,  -222,     0,     0,     0,     0,     0,     0,
559        0,  -222,     0,  -222,  -222,     0,  -222,  -222,  -222,  -222,
560     -222,  -222,  -222,  -222,  -222,  -222,  -222,  -222,  -222,  -222,
561     -261,     0,     0,     0,  -222,     0,     0,  -222,  -222,  -222,
562     -222,  -222,     0,     0,  -261,  -261,     0,     0,     0,     0,
563        0,     0,  -261,  -261,   188,   189,     0,     0,     0,     0,
564     -261,     0,     0,  -261,  -261,  -261,  -261,     0,     0,  -261,
565        0,     0,     0,   194,   195,   196,   197,   198,   199,   200,
566      201,   202,     0,     0,     0,     0,   203,     0,     0,   204,
567      205,   206,   207,     0,     0,     0,     0,  -261,     0,     0,
568        0,     0,     0,     0,  -261,  -261,     0,     0,     0,     0,
569        0,     0,     0,  -261,     0,  -261,  -261,     0,  -261,  -261,
570     -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,  -261,
571     -261,  -261,     0,     0,     0,     0,  -261,     0,     0,  -261,
572     -261,  -261,  -261,  -261,    18,    84,     0,    19,     0,     0,
573       20,     0,     0,    21,    22,    23,     0,     0,    24,    25,
574        0,     0,    26,    27,     0,     0,     0,     0,     0,     0,
575        0,     0,     0,     0,     0,     0,     0,     0,     0,    28,
576       29,     0,     0,     0,    30,    31,   156,    33,    34,    35,
577       36,   119,    37,    38,    39,    40,    41,    42,     0,     0,
578       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
579       49,    50,    51,     0,    18,    84,     0,    19,     0,     0,
580       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
581        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
582        0,    56,    57,     0,     0,     0,     0,     0,    58,    28,
583       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
584       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
585       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
586       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
587       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
588        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
589        0,    56,    57,     0,     0,     0,     0,     0,    58,    28,
590       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
591       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
592       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
593       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
594       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
595        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
596        0,    56,    57,     0,     0,     0,     0,   173,    58,    28,
597       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
598       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
599       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
600       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
601       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
602        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
603        0,    56,    57,     0,     0,     0,     0,   268,    58,    28,
604       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
605       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
606       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
607       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
608       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
609        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
610        0,    56,    57,     0,     0,     0,     0,   285,    58,    28,
611       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
612       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
613       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
614       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
615       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
616        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
617        0,    56,    57,     0,     0,     0,     0,   300,    58,    28,
618       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
619       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
620       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
621       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
622       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
623        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
624        0,    56,    57,     0,     0,     0,     0,   333,    58,    28,
625       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
626       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
627       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
628       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
629       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
630        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
631        0,    56,    57,     0,     0,     0,     0,   383,    58,    28,
632       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
633       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
634       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
635       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
636       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
637        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
638        0,    56,    57,     0,     0,     0,     0,   415,    58,    28,
639       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
640       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
641       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
642       49,    50,    51,     0,    18,     0,     0,    19,     0,     0,
643       20,    52,     0,    21,    22,    23,     0,     0,    24,    25,
644        0,     0,    26,    27,     0,     0,    53,    54,     0,    55,
645        0,    56,    57,     0,     0,     0,     0,     0,    58,    28,
646       29,     0,     0,     0,    30,    31,    32,    33,    34,    35,
647       36,     0,    37,    38,    39,    40,    41,    42,     0,     0,
648       43,     0,     0,    44,    45,    46,    47,    48,     0,     0,
649       49,    50,    51,     0,     0,     0,     0,     0,     0,     0,
650        0,    52,     0,     0,     0,     0,     0,     0,     0,   188,
651      189,     0,     0,     0,     0,     0,    53,    54,     0,    55,
652        0,    56,    57,     0,     0,     0,     0,     0,   262,   195,
653      196,   197,   198,   199,   200,   201,   202,   188,   189,     0,
654        0,   203,     0,     0,   204,   205,   206,   207,     0,     0,
655        0,     0,     0,     0,   188,   189,     0,     0,   196,   197,
656      198,   199,   200,   201,   202,     0,     0,     0,     0,   203,
657        0,     0,   204,   205,   206,   207,   197,   198,   199,   200,
658      201,   202,     0,     0,     0,     0,   203,     0,     0,   204,
659      205,   206,   207
660 };
661
662 static const yytype_int16 yycheck[] =
663 {
664       10,    27,   274,    99,    14,    27,    17,    17,    11,    19,
665      358,    11,   142,    13,    16,    18,   522,    20,    16,    22,
666       12,    24,    25,    11,    14,    13,    29,    29,    48,    16,
667       33,    34,    52,    20,     0,   500,   166,    24,    48,    14,
668       50,   348,    22,    11,    47,    48,    49,    52,    19,    10,
669       82,   358,    57,    11,    22,    13,   363,   364,    19,    11,
670        9,    13,    18,    11,    15,    11,    22,    13,    24,    25,
671       10,    11,    23,    13,    13,    55,    16,    33,    34,    50,
672       20,    14,   114,    14,    24,    25,    14,   114,    14,    50,
673       14,    79,    48,    49,    97,    85,    86,    58,    13,    11,
674      606,    13,    11,   105,    13,   131,   116,    85,    86,   131,
675       85,    86,   114,    53,   114,    13,   114,   109,   105,   114,
676       30,    79,   142,    33,    34,    35,    36,   114,   593,    39,
677      140,   141,   142,    79,    31,    84,    76,    14,   445,    15,
678       79,   161,   152,   153,    41,   148,   166,    22,    98,    22,
679      153,   114,    85,    86,    85,    86,   166,    85,    86,    85,
680       86,    85,    86,    18,    79,    20,    22,    22,    22,    24,
681       25,   132,    27,    96,   114,    85,    86,    22,    33,    34,
682       22,   152,   153,   455,   145,   114,   493,   494,    96,    97,
683      151,   152,   153,    48,    49,    11,   222,   153,    85,    86,
684      222,    11,    11,   113,    13,   216,   216,   217,    85,    86,
685       85,    86,    85,    86,   175,   176,    11,   178,   179,   180,
686       11,    16,   529,    31,    32,    16,   113,    98,    99,    85,
687       86,    85,    86,    52,    25,   238,   508,    92,   235,   236,
688       85,    86,   114,    85,    86,   114,   553,   208,   209,   210,
689      211,   212,   213,   214,   215,   603,   527,    52,   101,   102,
690      280,    52,    57,   114,   274,   395,    57,   574,   114,   279,
691      219,   220,   221,   114,   223,   224,   131,   226,   227,   228,
692      229,   242,   243,   244,   245,   246,   247,   114,   559,   560,
693      561,    30,    85,    86,    33,    34,    35,    36,   153,    11,
694       39,   262,   101,    74,    75,   576,   577,   106,   279,    22,
695      109,   110,   111,   112,    37,    85,    86,    11,   279,    13,
696      113,   324,    22,   594,    14,    85,    86,    79,   289,   100,
697      101,   602,   293,   359,    55,   106,    79,   359,   109,   110,
698      111,   112,   114,   113,    85,    86,    85,    86,   358,    82,
699       85,    86,   207,   113,   365,   365,    85,    86,   113,   113,
700       22,   322,   323,    85,    86,    13,   114,   222,    52,   330,
701      380,   381,   113,   105,    52,   395,    42,   507,   113,    15,
702      390,    57,    55,   393,   113,   395,   347,   348,    74,    75,
703       16,   113,   488,   489,    20,    74,    75,   358,    24,   495,
704      361,   362,   363,   364,    55,   501,   502,   417,    83,   113,
705       12,   360,    98,    99,   100,   101,    13,   366,    86,    25,
706      106,    25,   101,   109,   110,   111,   112,   106,    74,    25,
707      109,   110,   111,   112,   530,   531,   532,    25,    25,   388,
708      536,   402,   452,    10,   454,   455,   417,   114,    18,    16,
709      114,   547,    52,    20,    88,   101,   417,    24,   554,   555,
710      106,   114,    29,   109,   110,   111,   112,    16,   113,   324,
711       12,    20,    12,    12,    12,    24,    12,   114,   427,    22,
712      429,   113,   113,   579,   445,    16,   106,   507,   437,   109,
713      110,   111,   112,   114,   590,   350,   113,   507,   508,   113,
714      511,   511,   513,   513,   359,   601,   113,    52,   469,   520,
715      520,   521,   522,    11,   113,   611,    11,    21,   113,    23,
716       83,   113,    26,    12,    28,    29,   109,   110,   111,   112,
717       67,    15,   493,   494,    22,   545,    40,    74,    75,    43,
718      113,   243,   244,    47,   246,   247,   114,   113,    22,    53,
719       54,    55,    56,    57,    91,    92,    93,    94,    95,    96,
720       97,    98,    99,   100,   101,   113,    81,   528,   529,   106,
721      114,    43,   109,   110,   111,   112,    67,   587,   113,   434,
722      113,   584,    22,    74,    75,    22,   114,   598,   598,   538,
723       22,   113,   553,   603,   113,   113,   606,    88,    89,    90,
724       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
725      101,    17,    80,   574,   113,   106,    67,   113,   109,   110,
726      111,   112,    13,    74,    75,   528,   109,   131,     3,     4,
727        5,     6,     7,     8,     9,   361,   603,    88,    89,   454,
728       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
729      101,   264,   255,   381,   538,   106,   509,   382,   109,   110,
730      111,   112,   464,   359,   131,   222,    -1,    -1,   523,    -1,
731       -1,    -1,    -1,   177,    -1,    -1,    -1,    -1,    -1,   183,
732      535,    -1,   186,   187,   188,   189,   190,   191,   192,   193,
733      194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
734        0,     1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
735       10,    11,    -1,    13,    -1,    -1,    16,    -1,    -1,    19,
736       20,    21,    22,    -1,    24,    25,    26,    27,    28,    29,
737       30,    -1,    -1,    33,    34,    35,    36,    -1,    38,    39,
738       40,    41,    -1,    -1,    44,    45,    46,    47,    48,    49,
739       50,    51,    52,    53,    54,    55,    56,    -1,    58,    59,
740       60,    61,    62,    63,    64,    65,    66,    -1,    68,    69,
741       70,    71,    72,    73,    -1,    -1,    76,    77,    78,    -1,
742       -1,    -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,
743       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
744       -1,    -1,   102,   103,    -1,   105,    -1,   107,   108,     0,
745        1,    -1,    -1,    -1,   114,    -1,    -1,    -1,    -1,    10,
746       11,    -1,    13,    -1,    -1,    16,    -1,    -1,    19,    20,
747       21,    22,    -1,    24,    25,    26,    27,    28,    29,    30,
748       -1,    -1,    33,    34,    35,    36,    -1,    38,    39,    40,
749       41,    -1,    -1,    44,    45,    46,    47,    48,    49,    50,
750       51,    52,    53,    54,    55,    56,    -1,    58,    59,    60,
751       61,    62,    63,    64,    65,    66,    -1,    68,    69,    70,
752       71,    72,    73,    -1,    -1,    76,    77,    78,    -1,    -1,
753       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
754       -1,    -1,   406,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
755        1,   102,   103,    -1,   105,    -1,   107,   108,    -1,    10,
756       11,    12,    13,   114,    -1,    16,    -1,    -1,    19,    20,
757       21,    22,    -1,    24,    25,    26,    27,    28,    29,    30,
758       -1,    -1,    33,    34,    35,    36,    -1,    38,    39,    40,
759       41,    -1,   456,    44,    45,    46,    47,    48,    49,    50,
760       51,    52,    53,    54,    55,    56,    -1,    58,    59,    60,
761       61,    62,    63,    64,    65,    66,    -1,    68,    69,    70,
762       71,    72,    73,    -1,    -1,    76,    77,    78,    -1,    -1,
763       -1,    -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,
764       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,
765       -1,   102,   103,    -1,   105,    -1,   107,   108,    10,    11,
766       12,    13,    -1,   114,    16,    -1,    -1,    19,    20,    21,
767       22,    -1,    24,    25,    26,    27,    28,    29,    30,    -1,
768       -1,    33,    34,    35,    36,    -1,    38,    39,    40,    41,
769       -1,    -1,    44,    45,    46,    47,    48,    49,    50,    51,
770       52,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
771       62,    63,    64,    65,    66,    -1,    68,    69,    70,    71,
772       72,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,
773       -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
774       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,
775      102,   103,    -1,   105,    -1,   107,   108,    10,    11,    12,
776       13,    -1,   114,    16,    -1,    -1,    19,    20,    21,    22,
777       -1,    24,    25,    26,    27,    28,    29,    30,    -1,    -1,
778       33,    34,    35,    36,    -1,    38,    39,    40,    41,    -1,
779       -1,    44,    45,    46,    47,    48,    49,    50,    51,    52,
780       53,    54,    55,    56,    -1,    58,    59,    60,    61,    62,
781       63,    64,    65,    66,    -1,    68,    69,    70,    71,    72,
782       73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,
783       -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,
784       -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,   102,
785      103,    -1,   105,    -1,   107,   108,    10,    11,    12,    13,
786       -1,   114,    16,    -1,    -1,    19,    20,    21,    22,    -1,
787       24,    25,    26,    27,    28,    29,    30,    -1,    -1,    33,
788       34,    35,    36,    -1,    38,    39,    40,    41,    -1,    -1,
789       44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
790       54,    55,    56,    -1,    58,    59,    60,    61,    62,    63,
791       64,    65,    66,    -1,    68,    69,    70,    71,    72,    73,
792       -1,    -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,
793       -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,
794       -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,   102,   103,
795       -1,   105,    -1,   107,   108,    10,    11,    12,    13,    -1,
796      114,    16,    -1,    -1,    19,    20,    21,    22,    -1,    24,
797       25,    26,    27,    28,    29,    30,    -1,    -1,    33,    34,
798       35,    36,    -1,    38,    39,    40,    41,    -1,    -1,    44,
799       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
800       55,    56,    -1,    58,    59,    60,    61,    62,    63,    64,
801       65,    66,    -1,    68,    69,    70,    71,    72,    73,    -1,
802       -1,    76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,
803       -1,    -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
804       -1,    -1,    -1,    -1,    -1,     1,    -1,   102,   103,    -1,
805      105,    -1,   107,   108,    10,    11,    -1,    13,    -1,   114,
806       16,    -1,    -1,    19,    20,    21,    22,    -1,    24,    25,
807       26,    27,    28,    29,    30,    -1,    -1,    33,    34,    35,
808       36,    -1,    38,    39,    40,    41,    -1,    -1,    44,    45,
809       46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
810       56,    -1,    58,    59,    60,    61,    62,    63,    64,    65,
811       66,    -1,    68,    69,    70,    71,    72,    73,    -1,    -1,
812       76,    77,    78,    -1,    -1,    81,    -1,    -1,    -1,    -1,
813       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
814       -1,    -1,    -1,    -1,     1,    -1,   102,   103,    -1,   105,
815       -1,   107,   108,    10,    11,    -1,    13,    -1,   114,    16,
816       -1,    -1,    19,    20,    21,    22,    -1,    24,    25,    26,
817       27,    28,    29,    30,    -1,    -1,    33,    34,    35,    36,
818       -1,    38,    39,    40,    41,    -1,    -1,    44,    45,    46,
819       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
820       -1,    58,    59,    60,    61,    62,    63,    64,    65,    66,
821       -1,    68,    69,    70,    71,    72,    73,    -1,    -1,    76,
822       77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
823       87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
824       -1,    -1,    -1,     1,    -1,   102,   103,    -1,   105,    -1,
825      107,   108,    10,    11,    -1,    13,    -1,   114,    16,    -1,
826       -1,    19,    20,    21,    22,    -1,    24,    25,    26,    27,
827       28,    29,    30,    -1,    -1,    33,    34,    35,    36,    -1,
828       38,    39,    40,    41,    -1,    -1,    44,    45,    46,    47,
829       48,    49,    50,    51,    52,    53,    54,    55,    56,    -1,
830       58,    59,    60,    61,    62,    63,    64,    -1,    66,    -1,
831       68,    69,    70,    71,    72,    73,    -1,    -1,    76,    77,
832       78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    87,
833       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,
834       -1,    -1,    -1,    -1,   102,   103,    -1,   105,    10,   107,
835      108,    13,    -1,    -1,    16,    -1,   114,    19,    20,    21,
836       22,    -1,    24,    25,    -1,    -1,    28,    29,    -1,    -1,
837       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
838       -1,    -1,    -1,    45,    46,    -1,    -1,    -1,    50,    51,
839       52,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
840       62,    63,    -1,    -1,    66,    -1,    -1,    69,    70,    71,
841       72,    73,    -1,    -1,    76,    77,    78,    -1,    -1,    -1,
842       -1,    -1,    -1,    -1,    -1,    87,    -1,    -1,    -1,    -1,
843       -1,    -1,    -1,    -1,    -1,     1,    -1,    -1,    -1,    -1,
844      102,   103,    -1,   105,    10,   107,   108,    13,    -1,    -1,
845       16,    -1,   114,    19,    20,    21,    -1,    -1,    24,    25,
846       -1,    -1,    28,    29,    -1,    -1,    -1,    -1,    -1,    -1,
847       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,
848       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
849       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
850       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
851       76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
852       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
853       -1,    -1,    -1,    -1,    -1,    -1,   102,   103,     0,   105,
854       -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,    11,
855       -1,    13,    14,    15,    -1,    -1,    67,    -1,    -1,    -1,
856       22,    23,    -1,    74,    75,    -1,    -1,    -1,    30,    -1,
857       -1,    33,    34,    35,    36,    -1,    -1,    39,    89,    -1,
858       91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
859      101,    -1,    -1,    -1,    -1,   106,    -1,    -1,   109,   110,
860      111,   112,    -1,    -1,    -1,    67,    -1,    -1,    -1,    -1,
861       -1,    -1,    74,    75,    -1,    -1,    -1,    -1,    -1,    -1,
862       -1,    83,    -1,    85,    86,    -1,    88,    89,    90,    91,
863       92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
864        0,    -1,    -1,    -1,   106,    -1,    -1,   109,   110,   111,
865      112,   113,    -1,    -1,    14,    15,    -1,    -1,    -1,    -1,
866       -1,    -1,    22,    23,    74,    75,    -1,    -1,    -1,    -1,
867       30,    -1,    -1,    33,    34,    35,    36,    -1,    -1,    39,
868       -1,    -1,    -1,    93,    94,    95,    96,    97,    98,    99,
869      100,   101,    -1,    -1,    -1,    -1,   106,    -1,    -1,   109,
870      110,   111,   112,    -1,    -1,    -1,    -1,    67,    -1,    -1,
871       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    -1,    -1,
872       -1,    -1,    -1,    83,    -1,    85,    86,    -1,    88,    89,
873       90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
874      100,   101,    -1,    -1,    -1,    -1,   106,    -1,    -1,   109,
875      110,   111,   112,   113,    10,    11,    -1,    13,    -1,    -1,
876       16,    -1,    -1,    19,    20,    21,    -1,    -1,    24,    25,
877       -1,    -1,    28,    29,    -1,    -1,    -1,    -1,    -1,    -1,
878       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    45,
879       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
880       56,    57,    58,    59,    60,    61,    62,    63,    -1,    -1,
881       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
882       76,    77,    78,    -1,    10,    11,    -1,    13,    -1,    -1,
883       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
884       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
885       -1,   107,   108,    -1,    -1,    -1,    -1,    -1,   114,    45,
886       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
887       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
888       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
889       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
890       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
891       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
892       -1,   107,   108,    -1,    -1,    -1,    -1,    -1,   114,    45,
893       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
894       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
895       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
896       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
897       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
898       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
899       -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,    45,
900       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
901       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
902       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
903       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
904       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
905       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
906       -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,    45,
907       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
908       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
909       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
910       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
911       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
912       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
913       -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,    45,
914       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
915       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
916       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
917       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
918       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
919       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
920       -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,    45,
921       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
922       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
923       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
924       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
925       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
926       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
927       -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,    45,
928       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
929       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
930       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
931       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
932       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
933       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
934       -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,    45,
935       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
936       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
937       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
938       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
939       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
940       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
941       -1,   107,   108,    -1,    -1,    -1,    -1,   113,   114,    45,
942       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
943       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
944       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
945       76,    77,    78,    -1,    10,    -1,    -1,    13,    -1,    -1,
946       16,    87,    -1,    19,    20,    21,    -1,    -1,    24,    25,
947       -1,    -1,    28,    29,    -1,    -1,   102,   103,    -1,   105,
948       -1,   107,   108,    -1,    -1,    -1,    -1,    -1,   114,    45,
949       46,    -1,    -1,    -1,    50,    51,    52,    53,    54,    55,
950       56,    -1,    58,    59,    60,    61,    62,    63,    -1,    -1,
951       66,    -1,    -1,    69,    70,    71,    72,    73,    -1,    -1,
952       76,    77,    78,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
953       -1,    87,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    74,
954       75,    -1,    -1,    -1,    -1,    -1,   102,   103,    -1,   105,
955       -1,   107,   108,    -1,    -1,    -1,    -1,    -1,   114,    94,
956       95,    96,    97,    98,    99,   100,   101,    74,    75,    -1,
957       -1,   106,    -1,    -1,   109,   110,   111,   112,    -1,    -1,
958       -1,    -1,    -1,    -1,    74,    75,    -1,    -1,    95,    96,
959       97,    98,    99,   100,   101,    -1,    -1,    -1,    -1,   106,
960       -1,    -1,   109,   110,   111,   112,    96,    97,    98,    99,
961      100,   101,    -1,    -1,    -1,    -1,   106,    -1,    -1,   109,
962      110,   111,   112
963 };
964
965   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
966      symbol of state STATE-NUM.  */
967 static const yytype_uint8 yystos[] =
968 {
969        0,     3,     4,     5,     6,     7,     8,     9,   116,   117,
970      118,   119,   120,   121,   122,   123,     0,   127,    10,    13,
971       16,    19,    20,    21,    24,    25,    28,    29,    45,    46,
972       50,    51,    52,    53,    54,    55,    56,    58,    59,    60,
973       61,    62,    63,    66,    69,    70,    71,    72,    73,    76,
974       77,    78,    87,   102,   103,   105,   107,   108,   114,   125,
975      183,   184,   185,   188,   189,   190,   191,   192,   193,   194,
976      195,   196,   197,   199,   202,   210,   211,   212,   213,   214,
977      215,   216,   217,   218,    11,   124,     1,    22,    26,    27,
978       30,    33,    34,    35,    36,    38,    39,    40,    41,    44,
979       47,    48,    49,    64,    68,   124,   137,   149,   183,    65,
980      135,   136,   137,   125,   133,   177,   178,   133,    52,    57,
981      124,   211,   219,   202,   219,   197,   219,   197,   219,   219,
982      197,   105,   114,   200,   211,   212,   213,   197,   124,   197,
983      161,   161,   219,   219,   198,    13,   114,   197,   161,   197,
984      114,   114,    82,   114,   124,   197,    52,   125,   184,   201,
985      211,   219,   219,   202,    52,    57,   163,   184,   197,   197,
986      197,   197,   197,   113,   183,    85,    86,    15,    11,    13,
987      114,    98,    99,    98,    96,    97,    96,    67,    74,    75,
988       88,    89,    91,    92,    93,    94,    95,    96,    97,    98,
989       99,   100,   101,   106,   109,   110,   111,   112,   114,    11,
990       13,    11,    13,    11,    13,    11,   127,   162,    52,   114,
991      114,    29,   105,   114,   209,   211,   114,   114,   114,   114,
992      124,    11,   128,   128,   160,   163,   163,    22,    37,   125,
993      151,    22,    30,    33,    34,    35,    36,    39,   136,   137,
994      135,    16,    20,    24,   125,   168,   169,   171,   172,   173,
995      174,    14,   114,   197,   200,   211,   212,   213,   113,   183,
996       79,   166,    55,   125,   164,    79,   125,   165,   201,   114,
997       82,   183,   113,   124,   113,   113,   183,   202,   202,   219,
998      184,    22,   201,    13,   113,   183,   183,   197,   183,   183,
999      113,   183,   197,   197,   197,   197,   197,   197,   197,   197,
1000      197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
1001      197,    10,    11,    13,    16,    20,    24,    25,    53,    76,
1002      114,   187,   211,   113,   183,   183,   183,   183,   183,   183,
1003      183,   183,   133,    52,   125,   159,    52,   127,   127,   105,
1004      127,    29,   207,   208,   210,   211,   212,   213,   127,   127,
1005      114,   127,   127,   127,   127,   129,    42,   140,   160,   160,
1006      124,   148,   183,   148,   148,   156,   183,   148,   148,    57,
1007      167,   167,    15,   113,   183,   166,   113,    55,   165,    55,
1008      127,   182,   202,   184,    14,   186,   113,    83,   113,   183,
1009       12,   183,    13,    22,    14,   113,    90,    25,   183,   183,
1010       25,    25,    25,    25,    25,   113,   183,   114,   113,    22,
1011       14,    22,    14,    22,    14,    22,    12,    18,   126,    11,
1012       22,   157,   183,   157,   114,   204,   211,   114,   125,   149,
1013      154,   157,   158,   183,   207,   127,   156,   155,   183,   157,
1014      157,   133,   127,    52,   138,   139,    88,   125,   170,   170,
1015      172,   113,   127,   180,   114,   125,   175,   176,   113,    23,
1016      125,   203,   201,   113,    14,   183,    12,   197,    22,    14,
1017      113,   202,    12,    12,    12,    12,   127,   127,   113,   113,
1018      205,   206,   211,   114,   127,   113,    22,   143,   157,   113,
1019      113,   113,   113,    12,   114,   125,   130,    52,   164,   165,
1020      197,    11,   177,    11,   183,    83,    14,    12,   113,    22,
1021      145,   128,   128,    15,   113,   157,   157,   128,   141,   114,
1022      113,   153,   153,   128,   128,   131,   144,   201,   165,    22,
1023      181,   182,   133,   113,   133,    81,   133,    31,    32,   125,
1024      150,   150,   211,   114,   113,   113,   151,   155,   157,   128,
1025      128,   128,   211,   128,    22,    22,   179,   180,    12,    12,
1026      125,   134,    12,   128,   114,   157,   128,   128,    22,   113,
1027      151,   151,   151,   132,    43,   152,    22,    55,   146,   157,
1028      113,   151,   151,   142,   128,   113,   124,    17,    80,   125,
1029      147,   113,   128,   153,   151,   133,   128,   151,   158,    81,
1030      150,   113,   128
1031 };
1032
1033   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1034 static const yytype_uint8 yyr1[] =
1035 {
1036        0,   115,   117,   116,   118,   116,   119,   116,   120,   116,
1037      121,   116,   122,   116,   123,   116,   124,   125,   126,   127,
1038      128,   129,   130,   131,   132,   130,   133,   133,   134,   134,
1039      135,   135,   136,   136,   137,   137,   138,   137,   139,   137,
1040      137,   140,   137,   137,   137,   137,   137,   137,   137,   137,
1041      141,   142,   137,   137,   137,   137,   143,   137,   137,   137,
1042      144,   137,   137,   145,   137,   137,   137,   137,   137,   146,
1043      147,   147,   148,   149,   149,   149,   149,   149,   149,   149,
1044      149,   150,   150,   150,   151,   151,   152,   152,   153,   154,
1045      154,   155,   155,   156,   157,   158,   159,   159,   160,   161,
1046      162,   163,   163,   164,   164,   165,   165,   165,   166,   166,
1047      167,   167,   168,   168,   169,   170,   170,   170,   171,   172,
1048      172,   173,   173,   173,   174,   174,   175,   175,   176,   178,
1049      177,   179,   179,   180,   181,   181,   182,   183,   183,   183,
1050      184,   184,   184,   185,   185,   185,   185,   185,   185,   185,
1051      185,   185,   186,   185,   187,   187,   188,   188,   188,   188,
1052      188,   188,   188,   188,   188,   188,   188,   188,   188,   188,
1053      189,   189,   189,   189,   189,   189,   189,   189,   189,   189,
1054      189,   189,   189,   189,   190,   190,   190,   190,   191,   191,
1055      192,   192,   192,   192,   193,   193,   194,   194,   194,   194,
1056      194,   194,   194,   194,   194,   195,   195,   195,   195,   196,
1057      196,   197,   197,   197,   197,   197,   197,   197,   197,   197,
1058      197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
1059      197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
1060      197,   197,   197,   197,   197,   197,   197,   197,   197,   197,
1061      197,   197,   197,   197,   197,   197,   197,   197,   197,   198,
1062      197,   197,   197,   197,   199,   199,   199,   199,   200,   200,
1063      200,   200,   200,   201,   201,   202,   202,   203,   203,   204,
1064      205,   205,   205,   206,   207,   207,   207,   208,   208,   209,
1065      209,   210,   211,   212,   213,   214,   214,   215,   216,   216,
1066      217,   217,   218,   218,   219,   219,   219,   219
1067 };
1068
1069   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1070 static const yytype_uint8 yyr2[] =
1071 {
1072        0,     2,     0,     4,     0,     3,     0,     3,     0,     3,
1073        0,     3,     0,     3,     0,     3,     4,     0,     7,     0,
1074        4,     0,     1,     0,     0,     5,     1,     2,     1,     2,
1075        1,     1,     2,     2,     1,     4,     0,     7,     0,     6,
1076        4,     0,     7,     7,     7,     6,     6,     2,     8,     8,
1077        0,     0,    13,     9,    11,     8,     0,    10,     9,     7,
1078        0,     8,     2,     0,     8,     2,     2,     2,     1,     2,
1079        1,     3,     1,     1,     1,     3,     3,     3,     3,     3,
1080        3,     1,     2,     6,     1,     2,     0,     2,     0,     1,
1081        1,     0,     1,     1,     1,     1,     1,     1,     0,     0,
1082        0,     1,     1,     1,     1,     1,     2,     1,     2,     1,
1083        0,     1,     1,     1,     3,     1,     1,     2,     3,     1,
1084        1,     2,     3,     1,     1,     1,     1,     1,     3,     0,
1085        2,     1,     1,     4,     1,     1,     5,     3,     3,     1,
1086        2,     3,     1,     3,     5,     6,     3,     3,     5,     2,
1087        4,     4,     0,     5,     1,     1,     5,     4,     5,     4,
1088        5,     6,     5,     4,     5,     4,     3,     6,     4,     5,
1089        3,     3,     3,     3,     3,     1,     1,     3,     3,     3,
1090        3,     3,     3,     3,     1,     3,     2,     2,     3,     3,
1091        1,     3,     2,     2,     3,     3,     2,     2,     2,     2,
1092        2,     2,     2,     2,     2,     3,     4,     5,     4,     2,
1093        2,     1,     1,     1,     1,     5,     2,     1,     2,     3,
1094        1,     2,     1,     1,     1,     1,     1,     1,     4,     4,
1095        5,     5,     1,     1,     3,     4,     3,     4,     4,     4,
1096        4,     4,     1,     2,     2,     1,     2,     2,     1,     2,
1097        1,     2,     1,     3,     1,     3,     1,     3,     4,     0,
1098        6,     1,     1,     1,     3,     2,     4,     3,     3,     2,
1099        1,     1,     1,     1,     1,     1,     1,     1,     2,     1,
1100        2,     3,     1,     1,     1,     1,     1,     1,     1,     2,
1101        2,     2,     2,     2,     2,     2,     4,     2,     1,     3,
1102        1,     3,     1,     3,     1,     1,     1,     1
1103 };
1104
1105 typedef enum {
1106         toketype_ival, toketype_opval
1107 } toketypes;
1108
1109 /* type of each token/terminal */
1110 static const toketypes yy_type_tab[] =
1111 {
1112   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1113   toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1114   toketype_ival, toketype_ival, toketype_ival,
1115   toketype_ival, toketype_ival, toketype_ival,
1116   toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1117   toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1118   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1119   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1120   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1121   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1122   toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1123   toketype_ival, toketype_ival, toketype_ival, toketype_opval,
1124   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1125   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1126   toketype_opval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1127   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1128   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1129   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1130   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1131   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1132   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1133   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1134   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
1135   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
1136   toketype_ival, toketype_opval, toketype_ival, toketype_opval, toketype_ival, toketype_ival,
1137   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
1138   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_opval,
1139   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
1140   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
1141   toketype_ival, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
1142   toketype_opval, toketype_opval, toketype_ival, toketype_opval,
1143   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1144   toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval,
1145   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1146   toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1147   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1148   toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1149   toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1150   toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
1151   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval
1152 };
1153
1154 /* Generated from:
1155  * 963e49faa7d19d5de631a5b22e01030327621687cee61ec2c63cb7c2602c5e3a perly.y
1156  * acf1cbfd2545faeaaa58b1cf0cf9d7f98b5be0752eb7a54528ef904a9e2e1ca7 regen_perly.pl
1157  * ex: set ro: */