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