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