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