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