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