This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Note in comment that many \N{...} tests won't work here
[perl5.git] / perly.tab
1 #define YYFINAL  3
2 /* YYLAST -- Last index in YYTABLE.  */
3 #define YYLAST   2074
4
5 /* YYNTOKENS -- Number of terminals.  */
6 #define YYNTOKENS  93
7 /* YYNNTS -- Number of nonterminals.  */
8 #define YYNNTS  65
9 /* YYNRULES -- Number of rules.  */
10 #define YYNRULES  213
11 /* YYNRULES -- Number of states.  */
12 #define YYNSTATES  425
13
14 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
15 #define YYUNDEFTOK  2
16 #define YYMAXUTOK   328
17
18 #define YYTRANSLATE(YYX)                                                \
19   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
20
21 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
22 static const yytype_uint8 yytranslate[] =
23 {
24        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
25        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
26        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
27        2,     2,     2,    80,     2,     2,     9,    11,    13,     2,
28       91,    90,    12,     8,    69,     7,     2,     2,     2,     2,
29        2,     2,     2,     2,     2,     2,     2,     2,    72,    14,
30        2,     2,     2,    71,    10,     2,     2,     2,     2,     2,
31        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
32        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
33        2,     5,     2,     6,     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,     3,     2,     4,    81,     2,     2,     2,
37        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
38        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
39        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
40        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
41        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
42        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
43        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
44        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
45        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
46        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
47        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
48        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
49        2,     2,     2,     2,     2,     2,     1,     2,    15,    16,
50       17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
51       27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
52       37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
53       47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
54       57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
55       67,    68,    70,    73,    74,    75,    76,    77,    78,    79,
56       82,    83,    84,    85,    86,    87,    88,    89,    92
57 };
58
59 #if YYDEBUG
60 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
61    YYRHS.  */
62 static const yytype_uint16 yyprhs[] =
63 {
64        0,     0,     3,     6,    11,    12,    13,    14,    19,    20,
65       21,    24,    27,    30,    32,    34,    37,    40,    44,    47,
66       49,    51,    55,    59,    63,    67,    71,    75,    76,    79,
67       86,    94,   102,   109,   112,   113,   116,   126,   136,   147,
68      157,   166,   179,   183,   192,   193,   194,   196,   197,   199,
69      201,   203,   205,   207,   208,   210,   212,   214,   216,   218,
70      220,   222,   224,   229,   231,   232,   239,   246,   247,   248,
71      249,   251,   252,   254,   255,   258,   260,   263,   265,   267,
72      269,   274,   275,   283,   287,   291,   295,   297,   300,   304,
73      306,   310,   316,   323,   327,   331,   337,   340,   345,   346,
74      352,   354,   356,   362,   367,   373,   378,   384,   391,   397,
75      402,   408,   413,   417,   424,   430,   434,   438,   442,   446,
76      450,   454,   458,   462,   466,   470,   474,   478,   482,   486,
77      489,   492,   495,   498,   501,   504,   507,   510,   514,   517,
78      522,   526,   532,   535,   538,   543,   549,   554,   560,   562,
79      564,   566,   568,   574,   577,   579,   582,   586,   589,   591,
80      593,   595,   597,   599,   601,   606,   612,   614,   616,   620,
81      625,   629,   631,   634,   637,   639,   642,   645,   647,   650,
82      652,   655,   657,   661,   663,   667,   672,   677,   679,   681,
83      683,   685,   689,   692,   696,   699,   701,   703,   705,   706,
84      708,   709,   711,   714,   716,   719,   722,   725,   728,   731,
85      734,   736,   738,   740
86 };
87
88 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
89 static const yytype_int16 yyrhs[] =
90 {
91       94,     0,    -1,    98,   101,    -1,     3,    96,   101,     4,
92       -1,    -1,    -1,    -1,     3,   100,   101,     4,    -1,    -1,
93       -1,   101,   118,    -1,   101,   102,    -1,   117,   105,    -1,
94      108,    -1,   109,    -1,   117,   106,    -1,   117,    14,    -1,
95      117,   103,    14,    -1,   117,    25,    -1,     1,    -1,   135,
96       -1,   135,    34,   135,    -1,   135,    35,   135,    -1,   135,
97       32,   135,    -1,   135,    33,   113,    -1,   135,    39,   135,
98       -1,   135,    41,   135,    -1,    -1,    36,    99,    -1,    37,
99       91,   114,    90,    99,   104,    -1,    34,    91,    96,   114,
100       90,    99,   104,    -1,    35,    91,    96,   116,    90,    99,
101      104,    -1,    41,    91,    96,   114,    90,    99,    -1,    42,
102       95,    -1,    -1,    38,    95,    -1,   117,    32,    91,    96,
103      112,    90,   110,    99,   107,    -1,   117,    33,    91,    96,
104      113,    90,   110,    99,   107,    -1,   117,    39,    60,    96,
105      150,    91,   114,    90,    99,   107,    -1,   117,    39,   152,
106       91,    96,   114,    90,    99,   107,    -1,   117,    39,    91,
107       96,   114,    90,    99,   107,    -1,   117,    39,    91,    96,
108      115,    14,   112,    14,   110,   115,    90,    99,    -1,   117,
109       95,   107,    -1,   117,    40,    91,    96,    97,   114,    90,
110       99,    -1,    -1,    -1,   103,    -1,    -1,   135,    -1,   135,
111       -1,   135,    -1,   111,    -1,   113,    -1,    -1,    26,    -1,
112      120,    -1,   123,    -1,   122,    -1,   132,    -1,   133,    -1,
113      119,    -1,    92,    -1,    27,   126,   121,    95,    -1,    15,
114       -1,    -1,    61,   124,   127,   128,   129,   131,    -1,    28,
115      124,   127,   128,   129,   131,    -1,    -1,    -1,    -1,    15,
116       -1,    -1,    18,    -1,    -1,    63,    18,    -1,    63,    -1,
117       63,    18,    -1,    63,    -1,    95,    -1,    14,    -1,    30,
118       15,    15,    14,    -1,    -1,    31,   124,   134,    15,    15,
119      148,    14,    -1,   135,    67,   135,    -1,   135,    66,   135,
120       -1,   135,    65,   135,    -1,   136,    -1,   136,    69,    -1,
121      136,    69,   145,    -1,   145,    -1,    50,   157,   136,    -1,
122       48,    91,   157,   135,    90,    -1,   145,    89,   139,    91,
123      149,    90,    -1,   145,    89,   139,    -1,    16,   157,   148,
124       -1,    17,   157,    91,   149,    90,    -1,    50,   148,    -1,
125       48,    91,   149,    90,    -1,    -1,    23,   125,    95,   138,
126      148,    -1,    16,    -1,   152,    -1,   156,     3,   135,    14,
127        4,    -1,   152,     5,   135,     6,    -1,   145,    89,     5,
128      135,     6,    -1,   140,     5,   135,     6,    -1,   152,     3,
129      135,    14,     4,    -1,   145,    89,     3,   135,    14,     4,
130       -1,   140,     3,   135,    14,     4,    -1,   145,    89,    91,
131       90,    -1,   145,    89,    91,   135,    90,    -1,   140,    91,
132      135,    90,    -1,   140,    91,    90,    -1,    91,   135,    90,
133        5,   135,     6,    -1,    91,    90,     5,   135,     6,    -1,
134      145,    70,   145,    -1,   145,    84,   145,    -1,   145,    53,
135      145,    -1,   145,    54,   145,    -1,   145,    78,   145,    -1,
136      145,    51,   145,    -1,   145,    52,   145,    -1,   145,    77,
137      145,    -1,   145,    76,   145,    -1,   145,    44,   145,    -1,
138      145,    75,   145,    -1,   145,    74,   145,    -1,   145,    73,
139      145,    -1,   145,    79,   145,    -1,     7,   145,    -1,     8,
140      145,    -1,    80,   145,    -1,    81,   145,    -1,   145,    86,
141       -1,   145,    85,    -1,    88,   145,    -1,    87,   145,    -1,
142        5,   135,     6,    -1,     5,     6,    -1,    57,   135,    14,
143        4,    -1,    57,    14,     4,    -1,    29,   125,   128,   129,
144       95,    -1,    56,   145,    -1,    56,    95,    -1,    56,    15,
145       91,    90,    -1,    56,    15,    91,   135,    90,    -1,    56,
146      152,    91,    90,    -1,    56,   152,    91,   135,    90,    -1,
147      141,    -1,   142,    -1,   143,    -1,   144,    -1,   145,    71,
148      145,    72,   145,    -1,    82,   145,    -1,   146,    -1,    59,
149      145,    -1,    91,   135,    90,    -1,    91,    90,    -1,   152,
150       -1,   156,    -1,   154,    -1,   153,    -1,   155,    -1,   140,
151       -1,   153,     5,   135,     6,    -1,   153,     3,   135,    14,
152        4,    -1,    18,    -1,   151,    -1,   151,    91,    90,    -1,
153      151,    91,   135,    90,    -1,    58,    15,   148,    -1,    43,
154       -1,    43,   145,    -1,    68,   136,    -1,    49,    -1,    49,
155       95,    -1,    49,   145,    -1,    62,    -1,    62,   145,    -1,
156       22,    -1,    22,   145,    -1,    46,    -1,    46,    91,    90,
157       -1,    21,    -1,    47,    91,    90,    -1,    47,    91,   135,
158       90,    -1,    19,    91,   136,    90,    -1,    15,    -1,   137,
159       -1,    45,    -1,    24,    -1,    60,   147,   130,    -1,    60,
160      147,    -1,    91,   135,    90,    -1,    91,    90,    -1,   152,
161       -1,   154,    -1,   153,    -1,    -1,   136,    -1,    -1,   135,
162       -1,   135,    69,    -1,   152,    -1,    13,   157,    -1,     9,
163      157,    -1,    10,   157,    -1,    11,   157,    -1,    55,   157,
164       -1,    12,   157,    -1,    15,    -1,   152,    -1,    95,    -1,
165       20,    -1
166 };
167
168 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
169 static const yytype_uint16 yyrline[] =
170 {
171        0,   141,   141,   147,   157,   161,   165,   171,   181,   186,
172      187,   194,   204,   207,   208,   210,   212,   229,   245,   250,
173      252,   254,   258,   262,   266,   270,   275,   281,   282,   286,
174      297,   305,   316,   319,   325,   326,   333,   346,   358,   369,
175      379,   389,   421,   429,   439,   445,   446,   451,   454,   458,
176      463,   467,   471,   477,   486,   490,   492,   494,   496,   498,
177      503,   507,   513,   533,   534,   538,   551,   574,   580,   585,
178      590,   600,   601,   606,   607,   611,   621,   625,   635,   636,
179      645,   663,   662,   681,   685,   689,   693,   697,   707,   716,
180      720,   725,   732,   741,   747,   753,   761,   765,   772,   771,
181      782,   783,   787,   796,   801,   809,   816,   823,   833,   842,
182      849,   858,   865,   871,   878,   888,   892,   896,   902,   906,
183      910,   914,   918,   922,   926,   938,   942,   946,   950,   960,
184      964,   971,   975,   979,   984,   989,   994,  1003,  1008,  1013,
185     1019,  1025,  1036,  1040,  1044,  1056,  1069,  1077,  1089,  1090,
186     1091,  1092,  1093,  1098,  1102,  1104,  1108,  1113,  1118,  1120,
187     1122,  1124,  1126,  1128,  1130,  1139,  1150,  1152,  1154,  1159,
188     1172,  1177,  1182,  1186,  1190,  1194,  1198,  1202,  1206,  1210,
189     1212,  1215,  1219,  1225,  1228,  1237,  1243,  1248,  1249,  1250,
190     1256,  1260,  1268,  1275,  1280,  1285,  1287,  1289,  1294,  1296,
191     1301,  1302,  1304,  1319,  1323,  1329,  1335,  1341,  1347,  1353,
192     1360,  1362,  1364,  1367
193 };
194 #endif
195
196 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
197 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
198    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
199 static const char *const yytname[] =
200 {
201   "$end", "error", "$undefined", "'{'", "'}'", "'['", "']'", "'-'", "'+'",
202   "'$'", "'@'", "'%'", "'*'", "'&'", "';'", "WORD", "METHOD", "FUNCMETH",
203   "THING", "PMFUNC", "PRIVATEREF", "FUNC0SUB", "UNIOPSUB", "LSTOPSUB",
204   "PLUGEXPR", "PLUGSTMT", "LABEL", "FORMAT", "SUB", "ANONSUB", "PACKAGE",
205   "USE", "WHILE", "UNTIL", "IF", "UNLESS", "ELSE", "ELSIF", "CONTINUE",
206   "FOR", "GIVEN", "WHEN", "DEFAULT", "LOOPEX", "DOTDOT", "YADAYADA",
207   "FUNC0", "FUNC1", "FUNC", "UNIOP", "LSTOP", "RELOP", "EQOP", "MULOP",
208   "ADDOP", "DOLSHARP", "DO", "HASHBRACK", "NOAMP", "LOCAL", "MY", "MYSUB",
209   "REQUIRE", "COLONATTR", "PREC_LOW", "DOROP", "OROP", "ANDOP", "NOTOP",
210   "','", "ASSIGNOP", "'?'", "':'", "DORDOR", "OROR", "ANDAND", "BITOROP",
211   "BITANDOP", "SHIFTOP", "MATCHOP", "'!'", "'~'", "REFGEN", "UMINUS",
212   "POWOP", "POSTDEC", "POSTINC", "PREDEC", "PREINC", "ARROW", "')'", "'('",
213   "PEG", "$accept", "prog", "block", "remember", "mydefsv", "progstart",
214   "mblock", "mremember", "lineseq", "line", "sideff", "else", "cond",
215   "case", "cont", "loop", "switch", "mintro", "nexpr", "texpr", "iexpr",
216   "mexpr", "mnexpr", "miexpr", "label", "decl", "peg", "format",
217   "formname", "mysubrout", "subrout", "startsub", "startanonsub",
218   "startformsub", "subname", "proto", "subattrlist", "myattrlist",
219   "subbody", "package", "use", "$@1", "expr", "argexpr", "listop", "@2",
220   "method", "subscripted", "termbinop", "termunop", "anonymous", "termdo",
221   "term", "myattrterm", "myterm", "listexpr", "listexprcom", "my_scalar",
222   "amper", "scalar", "ary", "hsh", "arylen", "star", "indirob", 0
223 };
224 #endif
225
226 # ifdef YYPRINT
227 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
228    token YYLEX-NUM.  */
229 static const yytype_uint16 yytoknum[] =
230 {
231        0,   256,   257,   123,   125,    91,    93,    45,    43,    36,
232       64,    37,    42,    38,    59,   258,   259,   260,   261,   262,
233      263,   264,   265,   266,   267,   268,   269,   270,   271,   272,
234      273,   274,   275,   276,   277,   278,   279,   280,   281,   282,
235      283,   284,   285,   286,   287,   288,   289,   290,   291,   292,
236      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
237      303,   304,   305,   306,   307,   308,   309,   310,   311,    44,
238      312,    63,    58,   313,   314,   315,   316,   317,   318,   319,
239       33,   126,   320,   321,   322,   323,   324,   325,   326,   327,
240       41,    40,   328
241 };
242 # endif
243
244 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
245 static const yytype_uint8 yyr1[] =
246 {
247        0,    93,    94,    95,    96,    97,    98,    99,   100,   101,
248      101,   101,   102,   102,   102,   102,   102,   102,   102,   103,
249      103,   103,   103,   103,   103,   103,   103,   104,   104,   104,
250      105,   105,   106,   106,   107,   107,   108,   108,   108,   108,
251      108,   108,   108,   109,   110,   111,   111,   112,   112,   113,
252      114,   115,   116,   117,   117,   118,   118,   118,   118,   118,
253      118,   119,   120,   121,   121,   122,   123,   124,   125,   126,
254      127,   128,   128,   129,   129,   129,   130,   130,   131,   131,
255      132,   134,   133,   135,   135,   135,   135,   136,   136,   136,
256      137,   137,   137,   137,   137,   137,   137,   137,   138,   137,
257      139,   139,   140,   140,   140,   140,   140,   140,   140,   140,
258      140,   140,   140,   140,   140,   141,   141,   141,   141,   141,
259      141,   141,   141,   141,   141,   141,   141,   141,   141,   142,
260      142,   142,   142,   142,   142,   142,   142,   143,   143,   143,
261      143,   143,   144,   144,   144,   144,   144,   144,   145,   145,
262      145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
263      145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
264      145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
265      145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
266      145,   146,   146,   147,   147,   147,   147,   147,   148,   148,
267      149,   149,   149,   150,   151,   152,   153,   154,   155,   156,
268      157,   157,   157,   157
269 };
270
271 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
272 static const yytype_uint8 yyr2[] =
273 {
274        0,     2,     2,     4,     0,     0,     0,     4,     0,     0,
275        2,     2,     2,     1,     1,     2,     2,     3,     2,     1,
276        1,     3,     3,     3,     3,     3,     3,     0,     2,     6,
277        7,     7,     6,     2,     0,     2,     9,     9,    10,     9,
278        8,    12,     3,     8,     0,     0,     1,     0,     1,     1,
279        1,     1,     1,     0,     1,     1,     1,     1,     1,     1,
280        1,     1,     4,     1,     0,     6,     6,     0,     0,     0,
281        1,     0,     1,     0,     2,     1,     2,     1,     1,     1,
282        4,     0,     7,     3,     3,     3,     1,     2,     3,     1,
283        3,     5,     6,     3,     3,     5,     2,     4,     0,     5,
284        1,     1,     5,     4,     5,     4,     5,     6,     5,     4,
285        5,     4,     3,     6,     5,     3,     3,     3,     3,     3,
286        3,     3,     3,     3,     3,     3,     3,     3,     3,     2,
287        2,     2,     2,     2,     2,     2,     2,     3,     2,     4,
288        3,     5,     2,     2,     4,     5,     4,     5,     1,     1,
289        1,     1,     5,     2,     1,     2,     3,     2,     1,     1,
290        1,     1,     1,     1,     4,     5,     1,     1,     3,     4,
291        3,     1,     2,     2,     1,     2,     2,     1,     2,     1,
292        2,     1,     3,     1,     3,     4,     4,     1,     1,     1,
293        1,     3,     2,     3,     2,     1,     1,     1,     0,     1,
294        0,     1,     2,     1,     2,     2,     2,     2,     2,     2,
295        1,     1,     1,     1
296 };
297
298 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
299    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
300    means the default is an error.  */
301 static const yytype_uint8 yydefact[] =
302 {
303        6,     0,     9,     1,    53,    54,    69,    67,     0,    67,
304       67,    61,    11,    13,    14,     0,    10,    60,    55,    57,
305       56,    58,    59,    64,     0,     0,    81,     0,    19,     4,
306        0,     0,     0,     0,     0,     0,     0,     0,    16,   187,
307        0,     0,   166,     0,   183,   179,    68,   190,    18,    68,
308        0,     0,     0,     0,     0,     0,     0,     0,   171,   189,
309      181,     0,     0,   174,   198,     0,     0,     0,     0,     0,
310        0,   177,     0,     0,     0,     0,     0,     0,     0,    34,
311        0,    12,    15,    20,    86,   188,   163,   148,   149,   150,
312      151,    89,   154,   167,   158,   161,   160,   162,   159,    63,
313        0,    70,    71,     0,     0,    71,     9,   138,     0,   129,
314      130,   210,   213,   212,   211,   205,   206,   207,   209,   204,
315      198,     0,     0,   180,     0,    71,     4,     4,     4,     4,
316        4,     4,     0,     4,     4,    33,   172,     0,     0,   200,
317      175,   176,   210,   199,    96,   211,     0,   208,   187,   143,
318      142,   158,     0,     0,   198,   155,     0,   192,   195,   197,
319      196,   178,   173,   131,   132,   153,   136,   135,   157,     0,
320        0,    42,    17,     0,     0,     0,     0,     0,     0,     0,
321        0,     0,    87,     0,     0,     0,     0,     0,     0,     0,
322        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
323        0,   134,   133,     0,     0,     0,     0,     0,     0,     0,
324       62,    72,    73,    80,     0,    73,    53,   137,    94,   200,
325        0,    98,    73,    47,     0,     0,     0,     0,     0,     4,
326        5,     0,   182,   184,     0,   201,     0,     0,    90,     0,
327        0,   140,     0,   170,   194,     0,    77,   191,     0,   156,
328       35,    23,    24,    49,    21,    22,    25,    26,    85,    84,
329       83,    88,     0,     0,   112,     0,   124,   120,   121,   117,
330      118,   115,     0,   127,   126,   125,   123,   122,   119,   128,
331      116,     0,     0,   100,     0,    93,   101,   168,     0,     0,
332        0,     0,     0,     0,    75,     0,   198,     0,     3,     0,
333      186,   198,     0,     0,    48,     0,     0,    50,    52,     0,
334        0,   203,    46,    51,     0,     0,    20,     0,     0,     0,
335      185,   202,    97,     0,   144,     0,   146,     0,   139,   193,
336       76,     0,     0,     0,   105,   111,     0,     0,     0,   109,
337        0,   200,   169,     0,   103,     0,   164,     0,    74,    79,
338       78,    66,     0,    65,    95,    99,   141,    44,    44,     0,
339        0,     0,     0,    47,     0,     0,     0,    91,   145,   147,
340      114,     0,   108,   152,     0,   104,   110,     0,   106,   165,
341      102,    82,     0,     0,     8,    27,    27,     0,    34,     0,
342        0,     0,    32,   113,   107,    92,    34,    34,     9,     0,
343        0,    30,    31,     0,    40,    44,    34,    43,    36,    37,
344       53,    28,     0,    34,     0,    39,     7,     0,    38,     0,
345        0,     0,    27,    41,    29
346 };
347
348 /* YYDEFGOTO[NTERM-NUM].  */
349 static const yytype_int16 yydefgoto[] =
350 {
351       -1,     1,   113,   106,   318,     2,   385,   398,     4,    12,
352      312,   401,    81,    82,   171,    13,    14,   382,   313,   303,
353      252,   306,   315,   309,    15,    16,    17,    18,   100,    19,
354       20,    24,   124,    23,   102,   212,   295,   247,   351,    21,
355       22,   104,   307,    84,    85,   301,   285,    86,    87,    88,
356       89,    90,    91,    92,   157,   144,   236,   310,    93,    94,
357       95,    96,    97,    98,   115
358 };
359
360 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
361    STATE-NUM.  */
362 #define YYPACT_NINF -373
363 static const yytype_int16 yypact[] =
364 {
365     -373,    28,  -373,  -373,     3,  -373,  -373,  -373,    65,  -373,
366     -373,  -373,  -373,  -373,  -373,   320,  -373,  -373,  -373,  -373,
367     -373,  -373,  -373,    74,    75,    84,  -373,    75,  -373,  -373,
368      899,  1765,  1765,   378,   378,   378,   378,   378,  -373,  -373,
369      378,   378,  -373,   -67,  -373,  1765,  -373,  -373,  -373,  -373,
370      -51,   -24,    -8,    -5,     9,    37,    76,   147,  1765,  -373,
371       89,    92,    97,   666,   579,   378,   753,   984,   141,  1765,
372       12,  1765,  1765,  1765,  1765,  1765,  1765,  1765,  1069,   137,
373      167,  -373,  -373,  1067,   115,  -373,    48,  -373,  -373,  -373,
374     -373,  1907,  -373,   104,    93,   110,  -373,  -373,   207,  -373,
375      147,  -373,   200,   209,   214,   200,  -373,  -373,   140,    68,
376       68,  -373,  -373,  -373,  -373,  -373,  -373,  -373,  -373,  -373,
377     1765,   135,  1765,   230,   147,   200,  -373,  -373,  -373,  -373,
378     -373,  -373,   146,  -373,  -373,  -373,  1907,   151,  1156,   579,
379     -373,   230,  1825,   115,  -373,   813,  1765,  -373,   169,  -373,
380      230,    52,   260,   120,  1765,   230,  1243,   202,  -373,  -373,
381     -373,   230,   115,    68,    68,    68,    59,    59,   263,   319,
382      147,  -373,  -373,  1765,  1765,  1765,  1765,  1765,  1765,  1765,
383     1765,  1765,  1765,  1765,  1765,  1330,  1765,  1765,  1765,  1765,
384     1765,  1765,  1765,  1765,  1765,  1765,  1765,  1765,  1765,  1765,
385     1765,  -373,  -373,    88,  1417,  1765,  1765,  1765,  1765,  1765,
386     -373,  -373,   212,  -373,   259,   212,    81,  -373,  -373,  1765,
387      -43,  -373,   212,  1765,  1765,  1765,  1765,   270,   405,  -373,
388     -373,  1765,  -373,  -373,   366,    71,   195,  1765,   115,  1504,
389     1591,  -373,   288,  -373,  -373,   461,   276,  -373,  1765,   290,
390     -373,   224,  -373,   224,   224,   224,   224,   224,   231,   231,
391     -373,  1907,   221,   149,  -373,   540,  1985,   970,   884,   525,
392      217,  1907,  1868,   478,   478,   566,   652,   931,   393,    68,
393       68,  1765,  1765,  -373,  1678,   216,  -373,  -373,   627,   245,
394      165,   291,   196,   306,   282,    24,  1765,    24,  -373,   223,
395     -373,  1765,   147,   228,   224,   232,   234,   224,  -373,   250,
396      255,  -373,  -373,  -373,   257,   336,   404,  1765,  1765,   261,
397     -373,  -373,  -373,   653,  -373,   714,  -373,   724,  -373,  -373,
398     -373,   206,  1765,   360,  -373,  -373,  1765,   375,   211,  -373,
399      727,  1765,  -373,   370,  -373,   379,  -373,   386,  -373,  -373,
400     -373,  -373,   377,  -373,  -373,  -373,  -373,  -373,  -373,   391,
401      391,  1765,   391,  1765,   305,   307,   391,  -373,  -373,  -373,
402     -373,   215,  -373,  1946,   392,  -373,  -373,   313,  -373,  -373,
403     -373,  -373,   391,   391,  -373,    25,    25,   314,   137,   411,
404      391,   391,  -373,  -373,  -373,  -373,   137,   137,  -373,   391,
405      339,  -373,  -373,   391,  -373,  -373,   137,  -373,  -373,  -373,
406       90,  -373,  1765,   137,   490,  -373,  -373,   315,  -373,   345,
407      391,   391,    25,  -373,  -373
408 };
409
410 /* YYPGOTO[NTERM-NUM].  */
411 static const yytype_int16 yypgoto[] =
412 {
413     -373,  -373,     2,   -52,  -373,  -373,  -163,  -373,  -105,  -373,
414      429,  -372,  -373,  -373,   128,  -373,  -373,  -349,  -373,    86,
415      -48,  -212,    43,  -373,  -373,  -373,  -373,  -373,  -373,  -373,
416     -373,    61,   409,  -373,   432,   -59,  -183,  -373,   171,  -373,
417     -373,  -373,   -15,   -62,  -373,  -373,  -373,  -373,  -373,  -373,
418     -373,  -373,    56,  -373,  -373,  -100,  -206,  -373,  -373,   -29,
419      396,   406,  -373,  -373,     8
420 };
421
422 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
423    positive, shift that token.  If negative, reduce the rule which
424    number is the opposite.  If zero, do what YYDEFACT says.
425    If YYTABLE_NINF, syntax error.  */
426 #define YYTABLE_NINF -188
427 static const yytype_int16 yytable[] =
428 {
429       83,   216,   143,    -2,   114,   114,   114,   114,   114,   383,
430      162,   114,   114,   299,   402,   108,   314,    79,    33,   319,
431      218,    33,    34,    35,   122,   132,   182,    29,     3,     5,
432        6,     7,   297,     8,     9,   145,   114,   151,   349,   302,
433      126,   158,   116,   117,   118,   119,   215,   300,   120,   121,
434      424,   183,   153,   184,   243,   205,   414,   206,   143,   135,
435      220,   399,   400,   169,    10,   140,   222,   127,   149,   130,
436       26,    27,   146,   147,   223,   224,   225,   226,   227,   228,
437       25,   230,   231,   128,   238,   298,   129,   109,   110,    99,
438      101,   281,   143,   282,   416,    11,   205,    33,   206,   103,
439      131,   123,   210,   156,   283,   364,   365,     5,     6,     7,
440      145,     8,     9,   207,   136,   208,     5,     6,     7,   141,
441        8,     9,   150,   234,   235,   155,   221,   161,   133,   163,
442      164,   165,   166,   167,   242,   377,   179,   180,   181,   185,
443      321,   245,    10,   240,  -188,  -188,   217,   237,   203,   387,
444       29,    10,   200,   201,   202,   334,   154,   203,   251,   253,
445      254,   255,   256,   257,   258,   259,   260,   134,   262,   263,
446      265,   344,   250,    11,   286,   170,   305,   317,   308,   284,
447      137,   172,    11,   138,   182,   179,   180,   181,   139,   288,
448      289,   290,   291,   292,   293,   204,   352,   386,   311,   388,
449      417,   355,   346,   392,   235,   179,   180,   181,   304,   253,
450      209,   253,   370,   316,   179,   180,   181,   375,   211,   396,
451      397,   393,   323,   213,   325,   327,   219,   406,   407,   214,
452      179,   180,   181,   331,   143,   333,   411,   229,   261,   143,
453      413,   232,   266,   267,   268,   269,   270,   271,   272,   273,
454      274,   275,   276,   277,   278,   279,   280,   422,   423,   343,
455      239,   179,   180,   181,   241,   246,   337,   338,   248,   340,
456      189,   179,   180,   181,   296,   294,   179,   180,   181,    33,
457      179,   180,   181,   189,   190,   322,   179,   180,   181,   179,
458      180,   181,   328,   410,   330,   332,   199,   350,   181,   350,
459      348,   200,   201,   202,   356,   345,   203,   341,   198,   199,
460      179,   180,   181,   354,   200,   201,   202,   371,   357,   203,
461      347,    28,   358,    29,   359,    30,   235,    31,    32,    33,
462       34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
463      360,    44,    45,    46,    47,    48,   361,   362,   304,    49,
464      363,   366,    50,    51,    52,    53,   179,   180,   181,    54,
465       55,    56,    57,    58,   372,    59,    60,    61,    62,    63,
466       64,   179,   180,   181,   378,    65,    66,    67,    68,    69,
467       70,    29,    71,   379,   179,   180,   181,    33,    72,   374,
468      380,   381,   373,   111,   384,   390,   394,   391,   112,    83,
469       73,    74,    75,   395,   403,   420,    28,    76,    77,   249,
470       30,    78,    31,    32,    33,    34,    35,    36,    37,   -45,
471       39,    40,    41,    42,    43,   405,    44,    45,    46,    47,
472      412,   179,   180,   181,    49,   421,   173,   174,   175,   176,
473      179,   180,   181,   177,    80,   178,   189,   190,    58,   389,
474       59,    60,    61,    62,    63,    64,   320,   419,   125,   105,
475       65,    66,    67,    68,    69,    70,   159,    71,   353,   179,
476      180,   181,   199,    72,     0,     0,   160,   200,   201,   202,
477        0,     0,   203,     0,     0,    73,    74,    75,     0,     0,
478        0,    28,    76,    77,   -50,    30,    78,    31,    32,    33,
479       34,    35,    36,    37,     0,    39,    40,    41,    42,    43,
480        0,    44,    45,    46,    47,     0,   404,     0,     0,    49,
481        0,     0,     0,     0,   408,   409,   179,   180,   181,   187,
482      188,   189,   190,    58,   415,    59,    60,    61,    62,    63,
483       64,   418,     0,     0,     0,    65,    66,    67,    68,    69,
484       70,   329,    71,   195,   196,   197,   198,   199,    72,     0,
485        0,     0,   200,   201,   202,     0,     0,   203,     0,     0,
486       73,    74,    75,     0,     0,     0,     0,    76,    77,     0,
487      -45,    78,    29,     0,    30,     0,    31,    32,    33,    34,
488       35,    36,    37,     0,   142,    40,    41,    42,    43,   112,
489       44,    45,    46,    47,   199,   179,   180,   181,    49,   200,
490      201,   202,     0,     0,   203,     0,     0,   187,   188,   189,
491      190,     0,    58,     0,    59,    60,    61,    62,    63,    64,
492      335,     0,     0,     0,    65,    66,    67,    68,    69,    70,
493        0,    71,   196,   197,   198,   199,     0,    72,     0,     0,
494      200,   201,   202,     0,     0,   203,     0,     0,     0,    73,
495       74,    75,     0,     0,     0,     0,    76,    77,     0,    29,
496       78,    30,     0,    31,    32,    33,    34,    35,    36,    37,
497        0,    39,    40,    41,    42,    43,     0,    44,    45,    46,
498       47,     0,   179,   180,   181,    49,     0,     0,     0,     0,
499        0,     0,     0,   187,   188,   189,   190,     0,     0,    58,
500        0,    59,    60,    61,    62,    63,    64,   342,   179,   180,
501      181,    65,    66,    67,    68,    69,    70,     0,    71,   197,
502      198,   199,     0,     0,    72,     0,   200,   201,   202,     0,
503        0,   203,     0,   367,     0,     0,    73,    74,    75,     0,
504        0,     0,     0,    76,    77,     0,    29,    78,    30,     0,
505       31,    32,    33,    34,    35,    36,    37,     0,   148,    40,
506       41,    42,    43,     0,    44,    45,    46,    47,     0,   179,
507      180,   181,    49,     0,     0,     0,     0,     0,     0,   179,
508      180,   181,   179,   180,   181,     0,    58,     0,    59,    60,
509       61,    62,    63,    64,   368,     0,     0,     0,    65,    66,
510       67,    68,    69,    70,   369,    71,   205,   376,   206,  -158,
511        0,    72,     0,     0,     0,     0,     0,  -158,     0,     0,
512        0,     0,     0,    73,    74,    75,     0,     0,     0,     0,
513       76,    77,     0,     0,    78,  -158,  -158,  -158,  -158,     0,
514        0,     0,  -158,     0,  -158,     0,     0,  -158,     0,     0,
515        0,     0,     0,     0,  -158,  -158,  -158,  -158,     0,     0,
516        0,     0,     0,     0,     0,     0,     0,     0,  -158,  -158,
517     -158,     0,  -158,  -158,  -158,  -158,  -158,  -158,  -158,  -158,
518     -158,  -158,  -158,     0,     0,     0,     0,  -158,  -158,  -158,
519        0,     0,  -158,  -158,    30,   107,    31,    32,    33,    34,
520       35,    36,    37,     0,    39,    40,    41,    42,    43,     0,
521       44,    45,    46,    47,     0,     0,     0,     0,    49,     0,
522        0,     0,     0,     0,     0,   187,  -188,   189,   190,     0,
523        0,     0,    58,     0,    59,    60,    61,    62,    63,    64,
524        0,     0,     0,     0,    65,    66,    67,    68,    69,    70,
525        0,    71,   198,   199,     0,     0,     0,    72,   200,   201,
526      202,     0,     0,   203,     0,     0,     0,     0,     0,    73,
527       74,    75,   187,   188,   189,   190,    76,    77,     0,    30,
528       78,    31,    32,    33,    34,    35,    36,    37,   152,    39,
529       40,    41,    42,    43,     0,    44,    45,    46,    47,   198,
530      199,     0,     0,    49,     0,   200,   201,   202,     0,     0,
531      203,  -188,     0,   189,   190,     0,     0,    58,     0,    59,
532       60,    61,    62,    63,    64,     0,     0,     0,     0,    65,
533       66,    67,    68,    69,    70,     0,    71,     0,   198,   199,
534        0,     0,    72,     0,   200,   201,   202,     0,     0,   203,
535        0,     0,     0,     0,    73,    74,    75,     0,     0,     0,
536        0,    76,    77,     0,    30,    78,    31,    32,    33,    34,
537       35,    36,    37,     0,    39,    40,    41,    42,    43,     0,
538       44,    45,    46,    47,     0,     0,     0,     0,    49,   173,
539      174,   175,   176,     0,     0,     0,   177,     0,   178,     0,
540        0,     0,    58,     0,    59,    60,    61,    62,    63,    64,
541        0,     0,     0,     0,    65,    66,    67,    68,    69,    70,
542        0,    71,   179,   180,   181,     0,     0,    72,     0,     0,
543        0,     0,     0,     0,     0,     0,     0,     0,     0,    73,
544       74,    75,     0,     0,     0,     0,    76,    77,     0,   168,
545       78,    30,     0,    31,    32,    33,    34,    35,    36,    37,
546        0,    39,    40,    41,    42,    43,     0,    44,    45,    46,
547       47,     0,     0,     0,     0,    49,     0,     0,     0,     0,
548        0,     0,     0,     0,     0,     0,     0,     0,     0,    58,
549        0,    59,    60,    61,    62,    63,    64,     0,     0,     0,
550        0,    65,    66,    67,    68,    69,    70,     0,    71,     0,
551        0,     0,     0,     0,    72,     0,     0,     0,     0,     0,
552        0,     0,     0,     0,     0,     0,    73,    74,    75,     0,
553        0,     0,     0,    76,    77,     0,   233,    78,    30,     0,
554       31,    32,    33,    34,    35,    36,    37,     0,    39,    40,
555       41,    42,    43,     0,    44,    45,    46,    47,     0,     0,
556        0,     0,    49,     0,     0,     0,     0,     0,     0,     0,
557        0,     0,     0,     0,     0,     0,    58,     0,    59,    60,
558       61,    62,    63,    64,     0,     0,     0,     0,    65,    66,
559       67,    68,    69,    70,     0,    71,     0,     0,     0,     0,
560        0,    72,     0,     0,     0,     0,     0,     0,     0,     0,
561        0,     0,     0,    73,    74,    75,     0,     0,     0,     0,
562       76,    77,     0,   244,    78,    30,     0,    31,    32,    33,
563       34,    35,    36,    37,     0,    39,    40,    41,    42,    43,
564        0,    44,    45,    46,    47,     0,     0,     0,     0,    49,
565        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
566        0,     0,     0,    58,     0,    59,    60,    61,    62,    63,
567       64,     0,     0,     0,     0,    65,    66,    67,    68,    69,
568       70,     0,    71,     0,     0,     0,     0,     0,    72,     0,
569        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
570       73,    74,    75,     0,     0,     0,     0,    76,    77,     0,
571      264,    78,    30,     0,    31,    32,    33,    34,    35,    36,
572       37,     0,    39,    40,    41,    42,    43,     0,    44,    45,
573       46,    47,     0,     0,     0,     0,    49,     0,     0,     0,
574        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
575       58,     0,    59,    60,    61,    62,    63,    64,     0,     0,
576        0,     0,    65,    66,    67,    68,    69,    70,     0,    71,
577        0,     0,     0,     0,     0,    72,     0,     0,     0,     0,
578        0,     0,     0,     0,     0,     0,     0,    73,    74,    75,
579        0,     0,     0,     0,    76,    77,     0,   287,    78,    30,
580        0,    31,    32,    33,    34,    35,    36,    37,     0,    39,
581       40,    41,    42,    43,     0,    44,    45,    46,    47,     0,
582        0,     0,     0,    49,     0,     0,     0,     0,     0,     0,
583        0,     0,     0,     0,     0,     0,     0,    58,     0,    59,
584       60,    61,    62,    63,    64,     0,     0,     0,     0,    65,
585       66,    67,    68,    69,    70,     0,    71,     0,     0,     0,
586        0,     0,    72,     0,     0,     0,     0,     0,     0,     0,
587        0,     0,     0,     0,    73,    74,    75,     0,     0,     0,
588        0,    76,    77,     0,   324,    78,    30,     0,    31,    32,
589       33,    34,    35,    36,    37,     0,    39,    40,    41,    42,
590       43,     0,    44,    45,    46,    47,     0,     0,     0,     0,
591       49,     0,     0,     0,     0,     0,     0,     0,     0,     0,
592        0,     0,     0,     0,    58,     0,    59,    60,    61,    62,
593       63,    64,     0,     0,     0,     0,    65,    66,    67,    68,
594       69,    70,     0,    71,     0,     0,     0,     0,     0,    72,
595        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
596        0,    73,    74,    75,     0,     0,     0,     0,    76,    77,
597        0,   326,    78,    30,     0,    31,    32,    33,    34,    35,
598       36,    37,     0,    39,    40,    41,    42,    43,     0,    44,
599       45,    46,    47,     0,     0,     0,     0,    49,     0,     0,
600        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
601        0,    58,     0,    59,    60,    61,    62,    63,    64,     0,
602        0,     0,     0,    65,    66,    67,    68,    69,    70,     0,
603       71,     0,     0,     0,     0,     0,    72,     0,     0,     0,
604        0,     0,     0,     0,     0,     0,     0,     0,    73,    74,
605       75,     0,     0,     0,     0,    76,    77,     0,   339,    78,
606       30,     0,    31,    32,    33,    34,    35,    36,    37,     0,
607       39,    40,    41,    42,    43,     0,    44,    45,    46,    47,
608        0,     0,     0,     0,    49,     0,     0,     0,     0,     0,
609        0,     0,     0,     0,     0,     0,     0,     0,    58,     0,
610       59,    60,    61,    62,    63,    64,     0,     0,     0,     0,
611       65,    66,    67,    68,    69,    70,     0,    71,     0,     0,
612        0,  -187,     0,    72,     0,     0,     0,     0,     0,  -187,
613        0,     0,     0,     0,     0,    73,    74,    75,     0,     0,
614        0,     0,    76,    77,     0,     0,    78,  -187,  -187,  -187,
615     -187,     0,     0,     0,  -187,     0,  -187,     0,     0,  -187,
616        0,     0,     0,     0,     0,     0,  -187,  -187,  -187,  -187,
617        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
618     -187,  -187,  -187,     0,  -187,  -187,  -187,  -187,  -187,  -187,
619     -187,  -187,  -187,  -187,  -187,     0,     0,     0,     0,  -187,
620     -187,  -187,   186,     0,  -187,  -187,     0,     0,     0,   187,
621      188,   189,   190,     0,     0,     0,     0,     0,     0,     0,
622        0,     0,     0,     0,     0,     0,     0,     0,   191,   192,
623      336,   193,   194,   195,   196,   197,   198,   199,     0,     0,
624        0,   186,   200,   201,   202,     0,     0,   203,   187,   188,
625      189,   190,     0,     0,     0,     0,     0,     0,     0,     0,
626        0,     0,     0,     0,     0,     0,     0,   191,   192,     0,
627      193,   194,   195,   196,   197,   198,   199,     0,     0,     0,
628      186,   200,   201,   202,     0,     0,   203,   187,   188,   189,
629      190,     0,     0,     0,     0,     0,     0,     0,     0,     0,
630        0,     0,     0,     0,     0,     0,     0,   192,     0,   193,
631      194,   195,   196,   197,   198,   199,     0,     0,     0,  -188,
632      200,   201,   202,     0,     0,   203,   187,   188,   189,   190,
633        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
634        0,     0,     0,     0,     0,     0,     0,     0,   193,   194,
635      195,   196,   197,   198,   199,     0,     0,     0,     0,   200,
636      201,   202,     0,     0,   203
637 };
638
639 static const yytype_int16 yycheck[] =
640 {
641       15,   106,    64,     0,    33,    34,    35,    36,    37,   358,
642       72,    40,    41,   219,   386,    30,   228,    15,     9,   231,
643      120,     9,    10,    11,    91,    54,    69,     3,     0,    26,
644       27,    28,   215,    30,    31,    64,    65,    66,    14,   222,
645       91,    70,    34,    35,    36,    37,   105,    90,    40,    41,
646      422,     3,    67,     5,   154,     3,   405,     5,   120,    57,
647      122,    36,    37,    78,    61,    63,   125,    91,    66,    60,
648        9,    10,    64,    65,   126,   127,   128,   129,   130,   131,
649       15,   133,   134,    91,   146,     4,    91,    31,    32,    15,
650       15,     3,   154,     5,     4,    92,     3,     9,     5,    15,
651       91,    45,   100,    91,    16,   317,   318,    26,    27,    28,
652      139,    30,    31,     3,    58,     5,    26,    27,    28,    63,
653       30,    31,    66,   138,   139,    69,   124,    71,    91,    73,
654       74,    75,    76,    77,    14,   341,    65,    66,    67,    91,
655       69,   156,    61,    91,    85,    86,     6,   139,    89,   361,
656        3,    61,    84,    85,    86,     6,    15,    89,   173,   174,
657      175,   176,   177,   178,   179,   180,   181,    91,   183,   184,
658      185,     6,   170,    92,   203,    38,   224,   229,   226,    91,
659       91,    14,    92,    91,    69,    65,    66,    67,    91,   204,
660      205,   206,   207,   208,   209,    91,   296,   360,   227,   362,
661      412,   301,     6,   366,   219,    65,    66,    67,   223,   224,
662        3,   226,     6,   228,    65,    66,    67,     6,    18,   382,
663      383,     6,   237,    14,   239,   240,    91,   390,   391,    15,
664       65,    66,    67,   248,   296,    14,   399,    91,   182,   301,
665      403,    90,   186,   187,   188,   189,   190,   191,   192,   193,
666      194,   195,   196,   197,   198,   199,   200,   420,   421,    14,
667       91,    65,    66,    67,     4,    63,   281,   282,     5,   284,
668       53,    65,    66,    67,    15,    63,    65,    66,    67,     9,
669       65,    66,    67,    53,    54,    90,    65,    66,    67,    65,
670       66,    67,     4,   398,    18,     5,    79,   295,    67,   297,
671       18,    84,    85,    86,   302,    14,    89,    91,    78,    79,
672       65,    66,    67,    90,    84,    85,    86,   332,    90,    89,
673       14,     1,    90,     3,    90,     5,   341,     7,     8,     9,
674       10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
675       90,    21,    22,    23,    24,    25,    91,    90,   363,    29,
676       14,    90,    32,    33,    34,    35,    65,    66,    67,    39,
677       40,    41,    42,    43,     4,    45,    46,    47,    48,    49,
678       50,    65,    66,    67,     4,    55,    56,    57,    58,    59,
679       60,     3,    62,     4,    65,    66,    67,     9,    68,    14,
680        4,    14,   336,    15,     3,    90,     4,    90,    20,   414,
681       80,    81,    82,    90,    90,    90,     1,    87,    88,    90,
682        5,    91,     7,     8,     9,    10,    11,    12,    13,    14,
683       15,    16,    17,    18,    19,    14,    21,    22,    23,    24,
684       91,    65,    66,    67,    29,    90,    32,    33,    34,    35,
685       65,    66,    67,    39,    15,    41,    53,    54,    43,   363,
686       45,    46,    47,    48,    49,    50,    90,   414,    49,    27,
687       55,    56,    57,    58,    59,    60,    70,    62,   297,    65,
688       66,    67,    79,    68,    -1,    -1,    70,    84,    85,    86,
689       -1,    -1,    89,    -1,    -1,    80,    81,    82,    -1,    -1,
690       -1,     1,    87,    88,    90,     5,    91,     7,     8,     9,
691       10,    11,    12,    13,    -1,    15,    16,    17,    18,    19,
692       -1,    21,    22,    23,    24,    -1,   388,    -1,    -1,    29,
693       -1,    -1,    -1,    -1,   396,   397,    65,    66,    67,    51,
694       52,    53,    54,    43,   406,    45,    46,    47,    48,    49,
695       50,   413,    -1,    -1,    -1,    55,    56,    57,    58,    59,
696       60,    90,    62,    75,    76,    77,    78,    79,    68,    -1,
697       -1,    -1,    84,    85,    86,    -1,    -1,    89,    -1,    -1,
698       80,    81,    82,    -1,    -1,    -1,    -1,    87,    88,    -1,
699       90,    91,     3,    -1,     5,    -1,     7,     8,     9,    10,
700       11,    12,    13,    -1,    15,    16,    17,    18,    19,    20,
701       21,    22,    23,    24,    79,    65,    66,    67,    29,    84,
702       85,    86,    -1,    -1,    89,    -1,    -1,    51,    52,    53,
703       54,    -1,    43,    -1,    45,    46,    47,    48,    49,    50,
704       90,    -1,    -1,    -1,    55,    56,    57,    58,    59,    60,
705       -1,    62,    76,    77,    78,    79,    -1,    68,    -1,    -1,
706       84,    85,    86,    -1,    -1,    89,    -1,    -1,    -1,    80,
707       81,    82,    -1,    -1,    -1,    -1,    87,    88,    -1,     3,
708       91,     5,    -1,     7,     8,     9,    10,    11,    12,    13,
709       -1,    15,    16,    17,    18,    19,    -1,    21,    22,    23,
710       24,    -1,    65,    66,    67,    29,    -1,    -1,    -1,    -1,
711       -1,    -1,    -1,    51,    52,    53,    54,    -1,    -1,    43,
712       -1,    45,    46,    47,    48,    49,    50,    90,    65,    66,
713       67,    55,    56,    57,    58,    59,    60,    -1,    62,    77,
714       78,    79,    -1,    -1,    68,    -1,    84,    85,    86,    -1,
715       -1,    89,    -1,    90,    -1,    -1,    80,    81,    82,    -1,
716       -1,    -1,    -1,    87,    88,    -1,     3,    91,     5,    -1,
717        7,     8,     9,    10,    11,    12,    13,    -1,    15,    16,
718       17,    18,    19,    -1,    21,    22,    23,    24,    -1,    65,
719       66,    67,    29,    -1,    -1,    -1,    -1,    -1,    -1,    65,
720       66,    67,    65,    66,    67,    -1,    43,    -1,    45,    46,
721       47,    48,    49,    50,    90,    -1,    -1,    -1,    55,    56,
722       57,    58,    59,    60,    90,    62,     3,    90,     5,     6,
723       -1,    68,    -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,
724       -1,    -1,    -1,    80,    81,    82,    -1,    -1,    -1,    -1,
725       87,    88,    -1,    -1,    91,    32,    33,    34,    35,    -1,
726       -1,    -1,    39,    -1,    41,    -1,    -1,    44,    -1,    -1,
727       -1,    -1,    -1,    -1,    51,    52,    53,    54,    -1,    -1,
728       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    65,    66,
729       67,    -1,    69,    70,    71,    72,    73,    74,    75,    76,
730       77,    78,    79,    -1,    -1,    -1,    -1,    84,    85,    86,
731       -1,    -1,    89,    90,     5,     6,     7,     8,     9,    10,
732       11,    12,    13,    -1,    15,    16,    17,    18,    19,    -1,
733       21,    22,    23,    24,    -1,    -1,    -1,    -1,    29,    -1,
734       -1,    -1,    -1,    -1,    -1,    51,    52,    53,    54,    -1,
735       -1,    -1,    43,    -1,    45,    46,    47,    48,    49,    50,
736       -1,    -1,    -1,    -1,    55,    56,    57,    58,    59,    60,
737       -1,    62,    78,    79,    -1,    -1,    -1,    68,    84,    85,
738       86,    -1,    -1,    89,    -1,    -1,    -1,    -1,    -1,    80,
739       81,    82,    51,    52,    53,    54,    87,    88,    -1,     5,
740       91,     7,     8,     9,    10,    11,    12,    13,    14,    15,
741       16,    17,    18,    19,    -1,    21,    22,    23,    24,    78,
742       79,    -1,    -1,    29,    -1,    84,    85,    86,    -1,    -1,
743       89,    51,    -1,    53,    54,    -1,    -1,    43,    -1,    45,
744       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    55,
745       56,    57,    58,    59,    60,    -1,    62,    -1,    78,    79,
746       -1,    -1,    68,    -1,    84,    85,    86,    -1,    -1,    89,
747       -1,    -1,    -1,    -1,    80,    81,    82,    -1,    -1,    -1,
748       -1,    87,    88,    -1,     5,    91,     7,     8,     9,    10,
749       11,    12,    13,    -1,    15,    16,    17,    18,    19,    -1,
750       21,    22,    23,    24,    -1,    -1,    -1,    -1,    29,    32,
751       33,    34,    35,    -1,    -1,    -1,    39,    -1,    41,    -1,
752       -1,    -1,    43,    -1,    45,    46,    47,    48,    49,    50,
753       -1,    -1,    -1,    -1,    55,    56,    57,    58,    59,    60,
754       -1,    62,    65,    66,    67,    -1,    -1,    68,    -1,    -1,
755       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,
756       81,    82,    -1,    -1,    -1,    -1,    87,    88,    -1,    90,
757       91,     5,    -1,     7,     8,     9,    10,    11,    12,    13,
758       -1,    15,    16,    17,    18,    19,    -1,    21,    22,    23,
759       24,    -1,    -1,    -1,    -1,    29,    -1,    -1,    -1,    -1,
760       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,
761       -1,    45,    46,    47,    48,    49,    50,    -1,    -1,    -1,
762       -1,    55,    56,    57,    58,    59,    60,    -1,    62,    -1,
763       -1,    -1,    -1,    -1,    68,    -1,    -1,    -1,    -1,    -1,
764       -1,    -1,    -1,    -1,    -1,    -1,    80,    81,    82,    -1,
765       -1,    -1,    -1,    87,    88,    -1,    90,    91,     5,    -1,
766        7,     8,     9,    10,    11,    12,    13,    -1,    15,    16,
767       17,    18,    19,    -1,    21,    22,    23,    24,    -1,    -1,
768       -1,    -1,    29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
769       -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,    45,    46,
770       47,    48,    49,    50,    -1,    -1,    -1,    -1,    55,    56,
771       57,    58,    59,    60,    -1,    62,    -1,    -1,    -1,    -1,
772       -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
773       -1,    -1,    -1,    80,    81,    82,    -1,    -1,    -1,    -1,
774       87,    88,    -1,    90,    91,     5,    -1,     7,     8,     9,
775       10,    11,    12,    13,    -1,    15,    16,    17,    18,    19,
776       -1,    21,    22,    23,    24,    -1,    -1,    -1,    -1,    29,
777       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
778       -1,    -1,    -1,    43,    -1,    45,    46,    47,    48,    49,
779       50,    -1,    -1,    -1,    -1,    55,    56,    57,    58,    59,
780       60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,    -1,
781       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
782       80,    81,    82,    -1,    -1,    -1,    -1,    87,    88,    -1,
783       90,    91,     5,    -1,     7,     8,     9,    10,    11,    12,
784       13,    -1,    15,    16,    17,    18,    19,    -1,    21,    22,
785       23,    24,    -1,    -1,    -1,    -1,    29,    -1,    -1,    -1,
786       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
787       43,    -1,    45,    46,    47,    48,    49,    50,    -1,    -1,
788       -1,    -1,    55,    56,    57,    58,    59,    60,    -1,    62,
789       -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    -1,    -1,
790       -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,    81,    82,
791       -1,    -1,    -1,    -1,    87,    88,    -1,    90,    91,     5,
792       -1,     7,     8,     9,    10,    11,    12,    13,    -1,    15,
793       16,    17,    18,    19,    -1,    21,    22,    23,    24,    -1,
794       -1,    -1,    -1,    29,    -1,    -1,    -1,    -1,    -1,    -1,
795       -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,    45,
796       46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,    55,
797       56,    57,    58,    59,    60,    -1,    62,    -1,    -1,    -1,
798       -1,    -1,    68,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
799       -1,    -1,    -1,    -1,    80,    81,    82,    -1,    -1,    -1,
800       -1,    87,    88,    -1,    90,    91,     5,    -1,     7,     8,
801        9,    10,    11,    12,    13,    -1,    15,    16,    17,    18,
802       19,    -1,    21,    22,    23,    24,    -1,    -1,    -1,    -1,
803       29,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
804       -1,    -1,    -1,    -1,    43,    -1,    45,    46,    47,    48,
805       49,    50,    -1,    -1,    -1,    -1,    55,    56,    57,    58,
806       59,    60,    -1,    62,    -1,    -1,    -1,    -1,    -1,    68,
807       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
808       -1,    80,    81,    82,    -1,    -1,    -1,    -1,    87,    88,
809       -1,    90,    91,     5,    -1,     7,     8,     9,    10,    11,
810       12,    13,    -1,    15,    16,    17,    18,    19,    -1,    21,
811       22,    23,    24,    -1,    -1,    -1,    -1,    29,    -1,    -1,
812       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
813       -1,    43,    -1,    45,    46,    47,    48,    49,    50,    -1,
814       -1,    -1,    -1,    55,    56,    57,    58,    59,    60,    -1,
815       62,    -1,    -1,    -1,    -1,    -1,    68,    -1,    -1,    -1,
816       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    80,    81,
817       82,    -1,    -1,    -1,    -1,    87,    88,    -1,    90,    91,
818        5,    -1,     7,     8,     9,    10,    11,    12,    13,    -1,
819       15,    16,    17,    18,    19,    -1,    21,    22,    23,    24,
820       -1,    -1,    -1,    -1,    29,    -1,    -1,    -1,    -1,    -1,
821       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    43,    -1,
822       45,    46,    47,    48,    49,    50,    -1,    -1,    -1,    -1,
823       55,    56,    57,    58,    59,    60,    -1,    62,    -1,    -1,
824       -1,     6,    -1,    68,    -1,    -1,    -1,    -1,    -1,    14,
825       -1,    -1,    -1,    -1,    -1,    80,    81,    82,    -1,    -1,
826       -1,    -1,    87,    88,    -1,    -1,    91,    32,    33,    34,
827       35,    -1,    -1,    -1,    39,    -1,    41,    -1,    -1,    44,
828       -1,    -1,    -1,    -1,    -1,    -1,    51,    52,    53,    54,
829       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
830       65,    66,    67,    -1,    69,    70,    71,    72,    73,    74,
831       75,    76,    77,    78,    79,    -1,    -1,    -1,    -1,    84,
832       85,    86,    44,    -1,    89,    90,    -1,    -1,    -1,    51,
833       52,    53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
834       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,
835       72,    73,    74,    75,    76,    77,    78,    79,    -1,    -1,
836       -1,    44,    84,    85,    86,    -1,    -1,    89,    51,    52,
837       53,    54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
838       -1,    -1,    -1,    -1,    -1,    -1,    -1,    70,    71,    -1,
839       73,    74,    75,    76,    77,    78,    79,    -1,    -1,    -1,
840       44,    84,    85,    86,    -1,    -1,    89,    51,    52,    53,
841       54,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
842       -1,    -1,    -1,    -1,    -1,    -1,    -1,    71,    -1,    73,
843       74,    75,    76,    77,    78,    79,    -1,    -1,    -1,    44,
844       84,    85,    86,    -1,    -1,    89,    51,    52,    53,    54,
845       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
846       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    73,    74,
847       75,    76,    77,    78,    79,    -1,    -1,    -1,    -1,    84,
848       85,    86,    -1,    -1,    89
849 };
850
851 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
852    symbol of state STATE-NUM.  */
853 static const yytype_uint8 yystos[] =
854 {
855        0,    94,    98,     0,   101,    26,    27,    28,    30,    31,
856       61,    92,   102,   108,   109,   117,   118,   119,   120,   122,
857      123,   132,   133,   126,   124,    15,   124,   124,     1,     3,
858        5,     7,     8,     9,    10,    11,    12,    13,    14,    15,
859       16,    17,    18,    19,    21,    22,    23,    24,    25,    29,
860       32,    33,    34,    35,    39,    40,    41,    42,    43,    45,
861       46,    47,    48,    49,    50,    55,    56,    57,    58,    59,
862       60,    62,    68,    80,    81,    82,    87,    88,    91,    95,
863      103,   105,   106,   135,   136,   137,   140,   141,   142,   143,
864      144,   145,   146,   151,   152,   153,   154,   155,   156,    15,
865      121,    15,   127,    15,   134,   127,    96,     6,   135,   145,
866      145,    15,    20,    95,   152,   157,   157,   157,   157,   157,
867      157,   157,    91,   145,   125,   125,    91,    91,    91,    91,
868       60,    91,   152,    91,    91,    95,   145,    91,    91,    91,
869       95,   145,    15,   136,   148,   152,   157,   157,    15,    95,
870      145,   152,    14,   135,    15,   145,    91,   147,   152,   153,
871      154,   145,   136,   145,   145,   145,   145,   145,    90,   135,
872       38,   107,    14,    32,    33,    34,    35,    39,    41,    65,
873       66,    67,    69,     3,     5,    91,    44,    51,    52,    53,
874       54,    70,    71,    73,    74,    75,    76,    77,    78,    79,
875       84,    85,    86,    89,    91,     3,     5,     3,     5,     3,
876       95,    18,   128,    14,    15,   128,   101,     6,   148,    91,
877      136,    95,   128,    96,    96,    96,    96,    96,    96,    91,
878       96,    96,    90,    90,   135,   135,   149,   157,   136,    91,
879       91,     4,    14,   148,    90,   135,    63,   130,     5,    90,
880       95,   135,   113,   135,   135,   135,   135,   135,   135,   135,
881      135,   145,   135,   135,    90,   135,   145,   145,   145,   145,
882      145,   145,   145,   145,   145,   145,   145,   145,   145,   145,
883      145,     3,     5,    16,    91,   139,   152,    90,   135,   135,
884      135,   135,   135,   135,    63,   129,    15,   129,     4,   149,
885       90,   138,   129,   112,   135,   113,   114,   135,   113,   116,
886      150,   152,   103,   111,   114,   115,   135,    96,    97,   114,
887       90,    69,    90,   135,    90,   135,    90,   135,     4,    90,
888       18,   135,     5,    14,     6,    90,    72,   135,   135,    90,
889      135,    91,    90,    14,     6,    14,     6,    14,    18,    14,
890       95,   131,   148,   131,    90,   148,    95,    90,    90,    90,
891       90,    91,    90,    14,   114,   114,    90,    90,    90,    90,
892        6,   135,     4,   145,    14,     6,    90,   149,     4,     4,
893        4,    14,   110,   110,     3,    99,    99,   114,    99,   112,
894       90,    90,    99,     6,     4,    90,    99,    99,   100,    36,
895       37,   104,   104,    90,   107,    14,    99,    99,   107,   107,
896      101,    99,    91,    99,   110,   107,     4,   114,   107,   115,
897       90,    90,    99,    99,   104
898 };
899
900 typedef enum {
901         toketype_i_tkval, toketype_ival, toketype_opval, toketype_p_tkval
902 } toketypes;
903
904 /* type of each token/terminal */
905 static const toketypes yy_type_tab[] =
906 {
907   toketype_ival, toketype_ival, toketype_ival, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
908   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_opval, toketype_opval, toketype_opval,
909   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
910   toketype_opval, toketype_opval, toketype_p_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
911   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
912   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
913   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
914   toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval, toketype_i_tkval,
915   toketype_i_tkval, toketype_i_tkval, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
916   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
917   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
918   toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival, toketype_ival,
919   toketype_i_tkval, toketype_ival, toketype_ival, toketype_opval, toketype_ival, toketype_ival, toketype_ival,
920   toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
921   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval,
922   toketype_opval, toketype_opval, toketype_opval, toketype_p_tkval, toketype_opval, toketype_opval, toketype_opval,
923   toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_ival,
924   toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
925   toketype_opval, toketype_opval, toketype_opval, toketype_ival, toketype_opval, toketype_opval, toketype_opval, toketype_ival,
926   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
927   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval,
928   toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval, toketype_opval
929 };