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