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