2 /* A Bison parser, made from ./yaccsrc.y
3 by GNU Bison version 1.28 */
5 #define YYBISON 1 /* Identify Bison output. */
7 #define yyparse __reginaparse
8 #define yylex __reginalex
9 #define yyerror __reginaerror
10 #define yylval __reginalval
11 #define yychar __reginachar
12 #define yydebug __reginadebug
13 #define yynerrs __reginanerrs
59 #define ASSIGNMENTVARIABLE 302
65 #define SCIENTIFIC 308
66 #define ENGINEERING 309
68 #define CONCATENATE 311
75 #define EQUALEQUAL 318
76 #define NOTEQUALEQUAL 319
81 #define PLACEHOLDER 324
85 #define EXFUNCNAME 328
86 #define INFUNCNAME 329
88 #define DOVARIABLE 331
98 #define ENVIRONMENT 341
99 #define LOSTDIGITS 342
120 #line 1 "./yaccsrc.y"
124 static char *RCSid
= "$Id$";
128 * The Regina Rexx Interpreter
129 * Copyright (C) 1992-1994 Anders Christensen <anders@pvv.unit.no>
131 * This library is free software; you can redistribute it and/or
132 * modify it under the terms of the GNU Library General Public
133 * License as published by the Free Software Foundation; either
134 * version 2 of the License, or (at your option) any later version.
136 * This library is distributed in the hope that it will be useful,
137 * but WITHOUT ANY WARRANTY; without even the implied warranty of
138 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
139 * Library General Public License for more details.
141 * You should have received a copy of the GNU Library General Public
142 * License along with this library; if not, write to the Free
143 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
149 #if defined(HAVE_MALLOC_H)
153 #if defined(HAVE_ALLOCA_H)
163 #if defined(_MSC_VER) || defined(MAC)
164 # define __STDC__ 1 /* Hack to allow const since it is not defined */
167 #define YYSTYPE nodeptr
169 /* locals, they are protected by regina_parser (see lexsrc.l) */
170 static int tmplno
, tmpchr
;
171 static nodeptr current
, with
= NULL
;
172 #if 0 /* see below */
173 static nodeptr
*narray
=NULL
;
174 static int narptr
=0, narmax
=0 ;
177 static int gettypeof( nodeptr
this ) ;
178 static void checkconst( nodeptr
this ) ;
179 static void transform( nodeptr
this ) ;
180 static nodeptr
create_head( const char *name
) ;
181 static nodeptr
makenode( int type
, int numb
, ... ) ;
182 static void checkdosyntax( cnodeptr
this ) ;
183 void newlabel( const tsd_t
*TSD
, internal_parser_type
*ipt
, nodeptr
this ) ;
185 #line 97 "./yaccsrc.y"
206 #define YYFLAG -32768
209 #define YYTRANSLATE(x) ((unsigned)(x) <= 361 ? yytranslate[x] : 276)
211 static const char yytranslate
[] = { 0,
212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 112, 105, 2, 116,
216 117, 110, 108, 118, 109, 2, 111, 2, 2, 2,
217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
218 106, 2, 2, 2, 2, 2, 2, 2, 2, 2,
219 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
223 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
224 2, 2, 2, 104, 2, 2, 2, 2, 2, 2,
225 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
226 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
227 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
228 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
230 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
231 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
232 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
233 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
235 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
236 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
237 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
238 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
239 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
240 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
241 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
242 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
243 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
244 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
245 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
246 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
247 97, 98, 99, 100, 101, 102, 103, 107, 113, 114,
252 static const short yyprhs
[] = { 0,
253 0, 3, 5, 8, 10, 13, 16, 18, 20, 24,
254 26, 28, 30, 31, 34, 36, 38, 40, 42, 44,
255 45, 48, 50, 52, 54, 56, 58, 60, 62, 64,
256 66, 68, 70, 72, 74, 76, 78, 80, 82, 84,
257 86, 88, 90, 92, 94, 96, 98, 100, 102, 104,
258 106, 108, 110, 112, 114, 116, 118, 120, 122, 124,
259 126, 128, 130, 132, 134, 136, 138, 140, 142, 144,
260 146, 148, 150, 152, 154, 156, 158, 159, 163, 167,
261 169, 171, 172, 176, 180, 186, 190, 195, 200, 204,
262 205, 211, 212, 218, 219, 226, 227, 235, 241, 246,
263 247, 254, 259, 262, 264, 267, 269, 273, 281, 288,
264 294, 299, 303, 305, 306, 311, 313, 314, 316, 318,
265 320, 321, 324, 326, 330, 335, 339, 341, 343, 345,
266 347, 350, 353, 356, 359, 363, 366, 370, 372, 375,
267 379, 382, 386, 388, 391, 395, 398, 402, 404, 409,
268 413, 418, 422, 427, 431, 433, 435, 437, 440, 443,
269 446, 449, 451, 454, 457, 460, 463, 466, 469, 472,
270 475, 476, 480, 481, 485, 487, 488, 490, 493, 496,
271 499, 502, 505, 506, 510, 514, 518, 522, 526, 533,
272 543, 553, 560, 563, 568, 571, 574, 578, 582, 583,
273 589, 592, 595, 597, 601, 602, 608, 611, 614, 615,
274 620, 625, 629, 630, 637, 642, 646, 652, 653, 659,
275 663, 668, 669, 674, 676, 678, 682, 687, 693, 698,
276 704, 708, 709, 714, 718, 720, 722, 724, 726, 728,
277 730, 733, 737, 741, 744, 745, 750, 751, 757, 758,
278 765, 770, 774, 778, 782, 786, 790, 793, 797, 799,
279 806, 811, 816, 819, 823, 829, 832, 834, 836, 843,
280 851, 855, 858, 860, 862, 865, 869, 870, 875, 876,
281 882, 886, 887, 893, 894, 900, 901, 908, 909, 917,
282 923, 928, 929, 936, 941, 944, 947, 949, 951, 953,
283 955, 957, 959, 961, 963, 965, 967, 969, 971, 973,
284 978, 982, 983, 989, 993, 995, 999, 1001, 1005, 1008,
285 1010, 1014, 1018, 1020, 1024, 1028, 1030, 1034, 1036, 1040,
286 1042, 1046, 1048, 1052, 1054, 1058, 1060, 1064, 1066, 1070,
287 1072, 1076, 1078, 1082, 1084, 1088, 1092, 1094, 1098, 1100,
288 1104, 1106, 1110, 1112, 1116, 1118, 1122, 1124, 1128, 1130,
289 1134, 1136, 1140, 1142, 1146, 1148, 1152, 1154, 1156, 1158,
290 1160, 1162, 1164, 1166, 1169, 1172, 1174, 1176, 1180, 1182,
291 1186, 1188, 1190, 1194, 1198, 1200, 1202, 1206, 1208, 1209,
292 1213, 1216, 1219, 1221, 1224, 1228, 1233, 1238, 1243, 1245,
293 1247, 1249, 1251, 1253, 1255, 1258, 1261, 1262, 1266, 1268,
294 1270, 1271, 1274, 1276, 1281, 1285, 1287, 1289
297 static const short yyrhs
[] = { 125,
298 120, 0, 125, 0, 122, 120, 0, 122, 0, 127,
299 121, 0, 127, 129, 0, 127, 0, 123, 0, 129,
300 172, 126, 0, 121, 0, 129, 0, 126, 0, 0,
301 49, 126, 0, 49, 0, 128, 0, 240, 0, 130,
302 0, 205, 0, 0, 129, 131, 0, 159, 0, 170,
303 0, 163, 0, 164, 0, 173, 0, 201, 0, 203,
304 0, 204, 0, 206, 0, 207, 0, 208, 0, 210,
305 0, 212, 0, 214, 0, 216, 0, 221, 0, 222,
306 0, 226, 0, 230, 0, 231, 0, 232, 0, 234,
307 0, 233, 0, 236, 0, 242, 0, 255, 0, 202,
308 0, 258, 0, 5, 0, 6, 0, 12, 0, 13,
309 0, 16, 0, 18, 0, 32, 0, 33, 0, 3,
310 0, 4, 0, 36, 0, 17, 0, 76, 0, 19,
311 0, 20, 0, 86, 0, 21, 0, 27, 0, 29,
312 0, 30, 0, 31, 0, 34, 0, 38, 0, 35,
313 0, 37, 0, 45, 0, 47, 0, 0, 140, 160,
314 161, 0, 25, 260, 177, 0, 179, 0, 126, 0,
315 0, 1, 162, 177, 0, 176, 272, 177, 0, 116,
316 260, 117, 197, 177, 0, 141, 224, 126, 0, 132,
317 250, 271, 126, 0, 132, 269, 271, 126, 0, 132,
318 262, 126, 0, 0, 132, 251, 1, 165, 126, 0,
319 0, 132, 252, 1, 166, 126, 0, 0, 132, 251,
320 253, 1, 167, 126, 0, 0, 132, 251, 253, 249,
321 1, 168, 126, 0, 132, 251, 253, 249, 126, 0,
322 132, 251, 253, 126, 0, 0, 132, 252, 253, 1,
323 169, 126, 0, 132, 252, 253, 126, 0, 260, 126,
324 0, 46, 0, 171, 275, 0, 171, 0, 171, 275,
325 1, 0, 133, 174, 200, 126, 124, 172, 126, 0,
326 198, 106, 260, 199, 199, 199, 0, 198, 106, 260,
327 199, 199, 0, 198, 106, 260, 199, 0, 198, 106,
328 260, 0, 50, 0, 0, 50, 1, 175, 126, 0,
329 260, 0, 0, 72, 0, 73, 0, 79, 0, 0,
330 178, 179, 0, 126, 0, 26, 180, 126, 0, 26,
331 180, 1, 126, 0, 26, 197, 126, 0, 181, 0,
332 182, 0, 183, 0, 1, 0, 187, 184, 0, 188,
333 185, 0, 189, 186, 0, 188, 197, 0, 188, 189,
334 197, 0, 189, 197, 0, 189, 188, 197, 0, 197,
335 0, 187, 197, 0, 187, 189, 197, 0, 189, 197,
336 0, 189, 187, 197, 0, 197, 0, 187, 197, 0,
337 187, 188, 197, 0, 188, 197, 0, 188, 187, 197,
338 0, 197, 0, 197, 95, 197, 190, 0, 197, 95,
339 1, 0, 197, 96, 197, 191, 0, 197, 96, 1,
340 0, 197, 41, 197, 191, 0, 197, 41, 1, 0,
341 192, 0, 97, 0, 192, 0, 98, 192, 0, 98,
342 1, 0, 99, 192, 0, 99, 1, 0, 97, 0,
343 100, 195, 0, 100, 1, 0, 101, 193, 0, 101,
344 1, 0, 102, 195, 0, 102, 1, 0, 103, 195,
345 0, 103, 1, 0, 0, 194, 197, 274, 0, 0,
346 196, 197, 176, 0, 67, 0, 0, 77, 0, 7,
347 260, 0, 9, 260, 0, 8, 260, 0, 10, 260,
348 0, 11, 260, 0, 0, 142, 273, 1, 0, 142,
349 273, 126, 0, 158, 273, 1, 0, 158, 273, 126,
350 0, 134, 272, 126, 0, 135, 260, 125, 14, 125,
351 122, 0, 135, 260, 125, 14, 125, 122, 15, 125,
352 122, 0, 135, 260, 125, 14, 125, 122, 15, 125,
353 1, 0, 135, 260, 125, 14, 125, 1, 0, 135,
354 126, 0, 135, 260, 125, 1, 0, 129, 14, 0,
355 129, 15, 0, 143, 260, 126, 0, 136, 275, 126,
356 0, 0, 136, 275, 1, 209, 126, 0, 136, 126,
357 0, 211, 125, 0, 144, 0, 137, 275, 126, 0,
358 0, 137, 275, 1, 213, 126, 0, 137, 126, 0,
359 145, 126, 0, 0, 145, 1, 215, 126, 0, 146,
360 51, 260, 126, 0, 146, 51, 126, 0, 0, 146,
361 52, 220, 1, 217, 126, 0, 146, 52, 220, 126,
362 0, 146, 52, 126, 0, 146, 52, 25, 260, 126,
363 0, 0, 146, 52, 1, 218, 126, 0, 146, 53,
364 126, 0, 146, 53, 260, 126, 0, 0, 146, 1,
365 219, 126, 0, 54, 0, 55, 0, 147, 272, 126,
366 0, 148, 225, 265, 126, 0, 148, 47, 225, 265,
367 126, 0, 148, 4, 224, 126, 0, 148, 47, 4,
368 224, 126, 0, 148, 47, 1, 0, 0, 148, 1,
369 223, 126, 0, 265, 118, 224, 0, 265, 0, 81,
370 0, 22, 0, 80, 0, 29, 0, 23, 0, 24,
371 275, 0, 25, 272, 26, 0, 25, 1, 126, 0,
372 149, 126, 0, 0, 149, 1, 227, 126, 0, 0,
373 149, 28, 1, 228, 126, 0, 0, 149, 28, 273,
374 1, 229, 126, 0, 149, 28, 273, 126, 0, 150,
375 265, 126, 0, 151, 272, 126, 0, 152, 272, 126,
376 0, 138, 272, 126, 0, 139, 272, 126, 0, 46,
377 275, 0, 46, 275, 1, 0, 46, 0, 153, 126,
378 237, 241, 235, 126, 0, 153, 126, 46, 1, 0,
379 153, 126, 156, 1, 0, 153, 1, 0, 153, 126,
380 14, 0, 153, 126, 237, 156, 1, 0, 238, 237,
381 0, 238, 0, 1, 0, 155, 260, 125, 14, 125,
382 127, 0, 155, 260, 125, 14, 125, 127, 14, 0,
383 155, 260, 126, 0, 155, 1, 0, 155, 0, 156,
384 0, 129, 239, 0, 156, 125, 124, 0, 0, 154,
385 25, 260, 126, 0, 0, 154, 250, 1, 243, 126,
386 0, 154, 250, 126, 0, 0, 154, 251, 1, 244,
387 126, 0, 0, 154, 252, 1, 245, 126, 0, 0,
388 154, 251, 254, 1, 246, 126, 0, 0, 154, 251,
389 254, 249, 1, 247, 126, 0, 154, 251, 254, 249,
390 126, 0, 154, 251, 254, 126, 0, 0, 154, 252,
391 254, 1, 248, 126, 0, 154, 252, 254, 126, 0,
392 83, 73, 0, 83, 1, 0, 72, 0, 73, 0,
393 1, 0, 39, 0, 40, 0, 41, 0, 43, 0,
394 71, 0, 84, 0, 253, 0, 44, 0, 42, 0,
395 88, 0, 157, 25, 260, 126, 0, 157, 260, 126,
396 0, 0, 157, 257, 1, 256, 126, 0, 157, 257,
397 126, 0, 82, 0, 259, 272, 126, 0, 48, 0,
398 116, 260, 117, 0, 56, 260, 0, 56, 0, 260,
399 108, 260, 0, 260, 106, 260, 0, 106, 0, 260,
400 109, 260, 0, 260, 110, 260, 0, 110, 0, 260,
401 111, 260, 0, 111, 0, 260, 112, 260, 0, 112,
402 0, 260, 104, 260, 0, 104, 0, 260, 105, 260,
403 0, 105, 0, 260, 69, 260, 0, 69, 0, 260,
404 68, 260, 0, 68, 0, 260, 67, 260, 0, 67,
405 0, 260, 59, 260, 0, 59, 0, 260, 61, 260,
406 0, 60, 0, 260, 60, 260, 0, 260, 58, 260,
407 0, 58, 0, 260, 62, 260, 0, 62, 0, 260,
408 63, 260, 0, 63, 0, 260, 64, 260, 0, 64,
409 0, 260, 65, 260, 0, 65, 0, 260, 89, 260,
410 0, 89, 0, 260, 90, 260, 0, 90, 0, 260,
411 91, 260, 0, 91, 0, 260, 92, 260, 0, 92,
412 0, 260, 93, 260, 0, 93, 0, 260, 94, 260,
413 0, 94, 0, 261, 0, 72, 0, 78, 0, 85,
414 0, 79, 0, 262, 0, 108, 260, 0, 109, 260,
415 0, 108, 0, 109, 0, 260, 57, 260, 0, 57,
416 0, 260, 107, 260, 0, 107, 0, 73, 0, 264,
417 271, 117, 0, 263, 271, 117, 0, 75, 0, 74,
418 0, 270, 267, 265, 0, 270, 0, 0, 1, 266,
419 126, 0, 109, 268, 0, 108, 268, 0, 268, 0,
420 106, 268, 0, 116, 261, 117, 0, 109, 116, 261,
421 117, 0, 108, 116, 261, 117, 0, 106, 116, 261,
422 117, 0, 269, 0, 66, 0, 72, 0, 79, 0,
423 78, 0, 85, 0, 70, 270, 0, 261, 270, 0,
424 0, 272, 118, 271, 0, 272, 0, 260, 0, 0,
425 274, 273, 0, 274, 0, 116, 274, 117, 273, 0,
426 116, 274, 117, 0, 73, 0, 73, 0, 1, 0
432 static const short yyrline
[] = { 0,
433 107, 108, 111, 112, 115, 116, 119, 120, 123, 126,
434 127, 130, 131, 134, 135, 138, 139, 142, 143, 146,
435 149, 152, 153, 154, 155, 156, 157, 158, 159, 160,
436 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
437 171, 172, 173, 174, 175, 176, 177, 178, 179, 182,
438 185, 188, 191, 194, 197, 200, 203, 206, 209, 212,
439 215, 218, 221, 224, 227, 230, 233, 236, 239, 242,
440 245, 248, 251, 254, 257, 260, 263, 265, 267, 270,
441 271, 272, 274, 274, 278, 284, 288, 291, 295, 299,
442 301, 301, 303, 303, 305, 305, 307, 307, 313, 318,
443 320, 320, 326, 333, 338, 340, 341, 344, 363, 367,
444 371, 374, 377, 378, 380, 380, 382, 385, 386, 387,
445 390, 394, 396, 399, 400, 401, 404, 405, 406, 407,
446 410, 414, 418, 422, 423, 424, 425, 426, 429, 430,
447 431, 432, 433, 436, 437, 438, 439, 440, 443, 444,
448 447, 448, 451, 452, 455, 456, 461, 462, 464, 465,
449 466, 467, 472, 483, 484, 494, 495, 502, 503, 510,
450 513, 514, 517, 518, 521, 522, 525, 528, 529, 530,
451 533, 534, 535, 538, 539, 543, 544, 548, 552, 556,
452 561, 563, 565, 566, 569, 572, 575, 580, 582, 584,
453 584, 587, 593, 597, 599, 601, 601, 604, 605, 607,
454 609, 612, 613, 615, 615, 619, 621, 623, 625, 625,
455 626, 629, 631, 633, 634, 637, 640, 645, 650, 653,
456 657, 658, 660, 662, 663, 666, 667, 668, 669, 670,
457 671, 673, 674, 677, 678, 680, 680, 682, 682, 684,
458 684, 688, 692, 696, 700, 704, 708, 709, 710, 713,
459 717, 718, 720, 721, 722, 726, 727, 728, 731, 735,
460 737, 739, 742, 743, 746, 749, 752, 758, 761, 763,
461 763, 765, 767, 767, 769, 769, 771, 771, 773, 773,
462 779, 785, 787, 787, 793, 794, 797, 798, 799, 802,
463 805, 808, 809, 810, 811, 814, 815, 816, 817, 819,
464 821, 823, 825, 825, 829, 833, 839, 846, 847, 848,
465 849, 850, 852, 853, 854, 855, 856, 857, 858, 859,
466 860, 861, 862, 863, 864, 865, 866, 867, 868, 869,
467 870, 872, 873, 875, 876, 878, 879, 880, 882, 883,
468 885, 886, 887, 888, 889, 890, 891, 892, 893, 894,
469 895, 896, 897, 898, 899, 900, 901, 902, 903, 905,
470 909, 913, 915, 916, 917, 918, 919, 920, 921, 922,
471 923, 926, 930, 932, 936, 939, 942, 943, 944, 946,
472 948, 950, 952, 954, 956, 958, 960, 962, 964, 968,
473 969, 978, 979, 983, 989, 990, 992, 995, 998, 1002,
474 1003, 1006, 1008, 1010, 1012, 1016, 1019, 1020
479 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
481 static const char * const yytname
[] = { "$","error","$undefined.","ADDRESS",
482 "ARG","CALL","DO","TO","BY","FOR","WHILE","UNTIL","EXIT","IF","THEN","ELSE",
483 "ITERATE","INTERPRET","LEAVE","NOP","NUMERIC","PARSE","EXTERNAL","SOURCE","VAR",
484 "VALUE","WITH","PROCEDURE","EXPOSE","PULL","PUSH","QUEUE","SAY","RETURN","SELECT",
485 "WHEN","DROP","OTHERWISE","SIGNAL","ON","OFF","ERROR","SYNTAX","HALT","NOVALUE",
486 "TRACE","END","UPPER","ASSIGNMENTVARIABLE","STATSEP","FOREVER","DIGITS","FORM",
487 "FUZZ","SCIENTIFIC","ENGINEERING","NOT","CONCATENATE","MODULUS","GTE","GT","LTE",
488 "LT","DIFFERENT","EQUALEQUAL","NOTEQUALEQUAL","OFFSET","SPACE","EXP","XOR","PLACEHOLDER",
489 "NOTREADY","CONSYMBOL","SIMSYMBOL","EXFUNCNAME","INFUNCNAME","LABEL","DOVARIABLE",
490 "HEXSTRING","STRING","VERSION","LINEIN","WHATEVER","NAME","FAILURE","BINSTRING",
491 "OPTIONS","ENVIRONMENT","LOSTDIGITS","GTGT","LTLT","NOTGTGT","NOTLTLT","GTGTE",
492 "LTLTE","INPUT","OUTPUT","NORMAL","APPEND","REPLACE","STREAM","STEM","LIFO",
493 "FIFO","'|'","'&'","'='","CCAT","'+'","'-'","'*'","'/'","'%'","UMINUS","UPLUSS",
494 "SYNTOP","'('","')'","','","prog","stats","xstats","ystatement","lonely_end",
495 "nxstats","nseps","seps","statement","mstatement","gruff","mttstatement","mtstatement",
496 "call","do","exit","if","iterate","leave","say","return","address","arg","drop",
497 "interpret","label","nop","numeric","options","parse","proc","pull","push","queue",
498 "select","signal","when","otherwise","trace","upper","address_stat","@1","address_stat2",
499 "@2","arg_stat","call_stat","@3","@4","@5","@6","@7","expr_stat","end_stat",
500 "end","do_stat","repetitor","@8","nvir","naddr_with","@9","addr_with","connection",
501 "inputstmts","outputstmts","errorstmts","adeo","adei","adio","inputstmt","outputstmt",
502 "errorstmt","resourcei","resourceo","resources","nsimsymb","@10","nnvir","@11",
503 "nspace","dovar","tobyfor","conditional","drop_stat","upper_stat","exit_stat",
504 "if_stat","unexp_then","unexp_else","ipret_stat","iterate_stat","@12","label_stat",
505 "labelname","leave_stat","@13","nop_stat","@14","numeric_stat","@15","@16","@17",
506 "form_expr","options_stat","parse_stat","@18","templs","parse_param","proc_stat",
507 "@19","@20","@21","pull_stat","push_stat","queue_stat","say_stat","return_stat",
508 "sel_end","select_stat","when_stats","when_stat","when_or_other","ex_when_stat",
509 "otherwise_stat","signal_stat","@22","@23","@24","@25","@26","@27","namespec",
510 "asymbol","on","off","c_action","s_action","trace_stat","@28","whatever","assignment",
511 "ass_part","expr","symbtree","function","intfunc","extfunc","template","@29",
512 "solid","offset","string","pv","exprs","nexpr","anyvars","xsimsymb","simsymb", NULL
516 static const short yyr1
[] = { 0,
517 119, 119, 120, 120, 121, 121, 122, 122, 123, 124,
518 124, 125, 125, 126, 126, 127, 127, 128, 128, 129,
519 130, 131, 131, 131, 131, 131, 131, 131, 131, 131,
520 131, 131, 131, 131, 131, 131, 131, 131, 131, 131,
521 131, 131, 131, 131, 131, 131, 131, 131, 131, 132,
522 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
523 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
524 153, 154, 155, 156, 157, 158, 160, 159, 161, 161,
525 161, 162, 161, 161, 161, 163, 164, 164, 164, 165,
526 164, 166, 164, 167, 164, 168, 164, 164, 164, 169,
527 164, 164, 170, 171, 172, 172, 172, 173, 174, 174,
528 174, 174, 174, 175, 174, 174, 174, 176, 176, 176,
529 178, 177, 177, 179, 179, 179, 180, 180, 180, 180,
530 181, 182, 183, 184, 184, 184, 184, 184, 185, 185,
531 185, 185, 185, 186, 186, 186, 186, 186, 187, 187,
532 188, 188, 189, 189, 190, 190, 191, 191, 191, 191,
533 191, 191, 192, 192, 192, 192, 192, 192, 192, 192,
534 194, 193, 196, 195, 197, 197, 198, 199, 199, 199,
535 200, 200, 200, 201, 201, 202, 202, 203, 204, 204,
536 204, 204, 204, 204, 205, 206, 207, 208, 209, 208,
537 208, 210, 211, 212, 213, 212, 212, 214, 215, 214,
538 216, 216, 217, 216, 216, 216, 216, 218, 216, 216,
539 216, 219, 216, 220, 220, 221, 222, 222, 222, 222,
540 222, 223, 222, 224, 224, 225, 225, 225, 225, 225,
541 225, 225, 225, 226, 227, 226, 228, 226, 229, 226,
542 226, 230, 231, 232, 233, 234, 235, 235, 235, 236,
543 236, 236, 236, 236, 236, 237, 237, 237, 238, 238,
544 238, 238, 239, 239, 240, 241, 241, 242, 243, 242,
545 242, 244, 242, 245, 242, 246, 242, 247, 242, 242,
546 242, 248, 242, 242, 249, 249, 250, 250, 250, 251,
547 252, 253, 253, 253, 253, 254, 254, 254, 254, 255,
548 255, 256, 255, 255, 257, 258, 259, 260, 260, 260,
549 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
550 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
551 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
552 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
553 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
554 260, 260, 260, 260, 260, 260, 260, 260, 260, 260,
555 260, 261, 262, 262, 263, 264, 265, 265, 266, 265,
556 267, 267, 267, 267, 267, 267, 267, 267, 267, 268,
557 268, 269, 269, 269, 270, 270, 270, 271, 271, 272,
558 272, 273, 273, 273, 273, 274, 275, 275
561 static const short yyr2
[] = { 0,
562 2, 1, 2, 1, 2, 2, 1, 1, 3, 1,
563 1, 1, 0, 2, 1, 1, 1, 1, 1, 0,
564 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
566 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
567 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
568 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
569 1, 1, 1, 1, 1, 1, 0, 3, 3, 1,
570 1, 0, 3, 3, 5, 3, 4, 4, 3, 0,
571 5, 0, 5, 0, 6, 0, 7, 5, 4, 0,
572 6, 4, 2, 1, 2, 1, 3, 7, 6, 5,
573 4, 3, 1, 0, 4, 1, 0, 1, 1, 1,
574 0, 2, 1, 3, 4, 3, 1, 1, 1, 1,
575 2, 2, 2, 2, 3, 2, 3, 1, 2, 3,
576 2, 3, 1, 2, 3, 2, 3, 1, 4, 3,
577 4, 3, 4, 3, 1, 1, 1, 2, 2, 2,
578 2, 1, 2, 2, 2, 2, 2, 2, 2, 2,
579 0, 3, 0, 3, 1, 0, 1, 2, 2, 2,
580 2, 2, 0, 3, 3, 3, 3, 3, 6, 9,
581 9, 6, 2, 4, 2, 2, 3, 3, 0, 5,
582 2, 2, 1, 3, 0, 5, 2, 2, 0, 4,
583 4, 3, 0, 6, 4, 3, 5, 0, 5, 3,
584 4, 0, 4, 1, 1, 3, 4, 5, 4, 5,
585 3, 0, 4, 3, 1, 1, 1, 1, 1, 1,
586 2, 3, 3, 2, 0, 4, 0, 5, 0, 6,
587 4, 3, 3, 3, 3, 3, 2, 3, 1, 6,
588 4, 4, 2, 3, 5, 2, 1, 1, 6, 7,
589 3, 2, 1, 1, 2, 3, 0, 4, 0, 5,
590 3, 0, 5, 0, 5, 0, 6, 0, 7, 5,
591 4, 0, 6, 4, 2, 2, 1, 1, 1, 1,
592 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
593 3, 0, 5, 3, 1, 3, 1, 3, 2, 1,
594 3, 3, 1, 3, 3, 1, 3, 1, 3, 1,
595 3, 1, 3, 1, 3, 1, 3, 1, 3, 1,
596 3, 1, 3, 1, 3, 3, 1, 3, 1, 3,
597 1, 3, 1, 3, 1, 3, 1, 3, 1, 3,
598 1, 3, 1, 3, 1, 3, 1, 1, 1, 1,
599 1, 1, 1, 2, 2, 1, 1, 3, 1, 3,
600 1, 1, 3, 3, 1, 1, 3, 1, 0, 3,
601 2, 2, 1, 2, 3, 4, 4, 4, 1, 1,
602 1, 1, 1, 1, 2, 2, 0, 3, 1, 1,
603 0, 2, 1, 4, 3, 1, 1, 1
606 static const short yydefact
[] = { 13,
607 15, 20, 12, 14, 1, 20, 8, 7, 16, 20,
608 18, 19, 17, 3, 58, 59, 50, 51, 52, 53,
609 195, 54, 61, 55, 63, 64, 66, 67, 68, 69,
610 70, 56, 57, 71, 73, 60, 74, 72, 75, 104,
611 76, 317, 320, 379, 347, 342, 344, 349, 351, 353,
612 355, 340, 338, 336, 369, 382, 386, 385, 62, 370,
613 372, 371, 65, 357, 359, 361, 363, 365, 367, 332,
614 334, 323, 381, 376, 377, 326, 328, 330, 0, 0,
615 21, 0, 117, 411, 0, 0, 0, 411, 411, 77,
616 0, 0, 0, 203, 0, 0, 411, 0, 0, 0,
617 411, 411, 0, 0, 273, 274, 0, 0, 22, 24,
618 25, 23, 0, 0, 26, 27, 48, 28, 29, 30,
619 31, 32, 33, 13, 34, 35, 36, 37, 38, 39,
620 40, 41, 42, 44, 43, 45, 275, 46, 47, 49,
621 411, 0, 368, 373, 411, 411, 319, 374, 375, 0,
622 196, 299, 300, 301, 297, 298, 403, 402, 404, 411,
623 0, 0, 0, 411, 0, 177, 183, 0, 116, 410,
624 0, 193, 13, 418, 417, 201, 0, 207, 0, 0,
625 0, 0, 389, 407, 0, 407, 235, 388, 416, 0,
626 0, 413, 0, 209, 208, 222, 0, 0, 0, 0,
627 232, 0, 237, 240, 0, 0, 239, 0, 238, 236,
628 0, 245, 0, 244, 0, 0, 0, 263, 0, 0,
629 0, 0, 0, 0, 315, 0, 0, 0, 0, 9,
630 202, 0, 0, 0, 0, 0, 0, 0, 0, 0,
631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
632 0, 0, 0, 0, 0, 0, 0, 0, 0, 103,
633 0, 409, 0, 318, 0, 90, 302, 303, 304, 305,
634 0, 92, 0, 89, 0, 114, 0, 0, 0, 0,
635 188, 0, 199, 198, 205, 204, 255, 256, 82, 0,
636 0, 118, 119, 120, 0, 81, 78, 411, 80, 0,
637 405, 86, 406, 0, 400, 401, 0, 0, 0, 0,
638 0, 393, 399, 0, 184, 185, 412, 197, 0, 0,
639 212, 0, 218, 0, 224, 225, 216, 0, 220, 0,
640 226, 0, 0, 241, 0, 0, 231, 0, 0, 0,
641 0, 247, 0, 252, 253, 254, 268, 264, 0, 0,
642 0, 277, 0, 0, 279, 281, 282, 308, 307, 309,
643 306, 0, 284, 0, 0, 312, 314, 311, 186, 187,
644 107, 316, 378, 346, 341, 345, 343, 348, 350, 352,
645 354, 339, 337, 335, 356, 358, 360, 362, 364, 366,
646 331, 333, 322, 380, 321, 324, 325, 327, 329, 384,
647 411, 383, 87, 0, 94, 0, 99, 0, 0, 100,
648 102, 88, 0, 181, 182, 20, 112, 194, 13, 0,
649 0, 121, 121, 130, 175, 0, 127, 128, 129, 176,
650 176, 176, 0, 0, 121, 390, 234, 0, 394, 0,
651 392, 0, 391, 0, 387, 415, 210, 223, 211, 0,
652 0, 213, 215, 221, 233, 229, 243, 242, 0, 0,
653 227, 246, 0, 249, 251, 261, 272, 13, 262, 0,
654 0, 266, 278, 0, 0, 286, 291, 0, 0, 292,
655 294, 310, 0, 408, 91, 0, 296, 295, 96, 98,
656 93, 0, 115, 10, 0, 20, 11, 0, 0, 0,
657 111, 0, 200, 206, 123, 83, 0, 79, 0, 124,
658 131, 176, 176, 138, 132, 176, 176, 143, 133, 176,
659 176, 148, 0, 0, 0, 126, 176, 84, 0, 0,
660 0, 395, 414, 219, 217, 0, 230, 228, 248, 0,
661 0, 271, 265, 20, 0, 0, 280, 283, 0, 288,
662 290, 285, 0, 313, 95, 0, 101, 0, 5, 6,
663 178, 180, 179, 110, 192, 189, 122, 125, 176, 134,
664 176, 136, 176, 139, 176, 141, 176, 144, 176, 146,
665 154, 0, 150, 0, 152, 0, 121, 398, 397, 396,
666 214, 250, 13, 276, 0, 260, 287, 0, 293, 97,
667 108, 109, 13, 135, 137, 140, 142, 145, 147, 162,
668 0, 0, 0, 0, 0, 0, 153, 157, 156, 149,
669 155, 151, 85, 20, 258, 289, 0, 159, 158, 161,
670 160, 164, 163, 176, 166, 165, 176, 168, 167, 170,
671 169, 269, 20, 191, 190, 0, 0, 270, 174, 172,
675 static const short yydefgoto
[] = { 651,
676 5, 494, 6, 7, 495, 2, 3, 8, 9, 10,
677 11, 81, 82, 83, 84, 85, 86, 87, 88, 89,
678 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
679 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
680 182, 297, 422, 110, 111, 404, 409, 486, 556, 492,
681 112, 113, 114, 115, 167, 413, 298, 506, 507, 299,
682 426, 427, 428, 429, 511, 515, 519, 430, 431, 432,
683 620, 617, 618, 636, 637, 633, 634, 433, 168, 501,
684 279, 116, 117, 118, 119, 12, 120, 121, 122, 420,
685 123, 124, 125, 421, 126, 319, 127, 536, 450, 320,
686 328, 128, 129, 332, 185, 211, 130, 341, 463, 540,
687 131, 132, 133, 134, 135, 546, 136, 352, 353, 137,
688 13, 471, 138, 474, 475, 479, 549, 598, 553, 408,
689 160, 161, 162, 361, 362, 139, 483, 226, 140, 141,
690 170, 143, 144, 145, 146, 187, 300, 311, 312, 164,
691 188, 261, 262, 191, 192, 177
694 static const short yypact
[] = { -31,
695 -31, 26,-32768,-32768,-32768, 50,-32768,-32768,-32768, 1211,
696 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
697 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
698 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
699 -32768,-32768, 394,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
700 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
701 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
702 -32768,-32768,-32768, 394, 394,-32768,-32768,-32768, 1817, 53,
703 -32768, 484, 1696, 1817, 1633, 21, 21, 1817, 1817,-32768,
704 328, -54, 1817,-32768, 36, 311, 1817, 303, 142, 498,
705 1817, 1817, 43, 370,-32768,-32768, 1569, -54,-32768,-32768,
706 -32768,-32768, 143, -31,-32768,-32768,-32768,-32768,-32768,-32768,
707 -32768,-32768,-32768, -31,-32768,-32768,-32768,-32768,-32768,-32768,
708 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
709 1817, 1760,-32768,-32768, 1817, 1817,-32768,-32768,-32768, 1877,
710 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1817,
711 259, 265, -31, 1817, 429,-32768, 45, -70, 1999, 1999,
712 -31,-32768, 1760,-32768,-32768,-32768, 208,-32768, 220, -31,
713 -31, 41,-32768, -35, -31, -35, -39, 516,-32768, 78,
714 273, -54, 1760,-32768,-32768,-32768, 1633, 428, 1633, -31,
715 -32768, 328,-32768,-32768, 42, 1032,-32768, 550,-32768,-32768,
716 498,-32768, 20,-32768, -31, -31, -31,-32768, 483, 1817,
717 275, 250, 377, 1817,-32768, 295, 1760, 302, 316,-32768,
718 -32768, -31, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817,
719 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817,
720 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817, 1817,-32768,
721 38, 51, 71,-32768, -31,-32768,-32768,-32768,-32768,-32768,
722 56,-32768, 319,-32768, -31,-32768, 1817, 1817, -31, 1817,
723 -32768, 46,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1817,
724 22,-32768,-32768,-32768, 1817,-32768,-32768, 1817,-32768, -31,
725 -32768,-32768,-32768, 328,-32768,-32768, -32, 217, 229, 117,
726 328,-32768,-32768, 76,-32768,-32768,-32768,-32768, -31, -31,
727 -32768, 1760,-32768, 1817,-32768,-32768,-32768, 336,-32768, 1760,
728 -32768, -31, -31,-32768, -31, 178,-32768, 328, 498, -31,
729 -31,-32768, 379,-32768,-32768,-32768,-32768,-32768, 207, 1097,
730 210, 236, 499, 1760,-32768,-32768,-32768,-32768,-32768,-32768,
731 -32768, 122,-32768, 386, 1760,-32768,-32768,-32768,-32768,-32768,
732 -32768,-32768, 314, 213, 2111, 2111, 2111, 2111, 2111, 2111,
733 2111, 314,-32768, 2055, 2111, 2111, 2111, 2111, 2111, 2111,
734 2055, 2167, 2111, 314, 321, 321, 213, 213, 213,-32768,
735 1817,-32768,-32768, -31,-32768, 60,-32768, 413, -31,-32768,
736 -32768,-32768, -31, 1999, 1999,-32768, 1512,-32768, -31, -31,
737 -31, -31, 1760,-32768,-32768, 414,-32768,-32768,-32768, 242,
738 242, 242, 215, 1938, -31,-32768,-32768, 117,-32768, 117,
739 -32768, 117,-32768, 165,-32768, -54,-32768,-32768,-32768, -31,
740 1760,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -31, -31,
741 -32768,-32768, -31,-32768,-32768,-32768,-32768, 1760,-32768, 735,
742 267,-32768,-32768, -31, -31,-32768,-32768, 415, -31,-32768,
743 -32768,-32768, -31,-32768,-32768, -31,-32768,-32768,-32768,-32768,
744 -32768, -31,-32768,-32768, 269,-32768, 1325, 1817, 1817, 1817,
745 449, 849,-32768,-32768,-32768,-32768, 290,-32768, -31,-32768,
746 -32768, 242, 242, -24,-32768, 242, 242, -9,-32768, 242,
747 242, 90, 81, 24, 100,-32768, 242,-32768, 202, 206,
748 214,-32768,-32768,-32768,-32768, -31,-32768,-32768,-32768, -31,
749 327, 338,-32768,-32768, 145, -31,-32768,-32768, -31,-32768,
750 -32768,-32768, -31,-32768,-32768, -31,-32768, -31,-32768, 1325,
751 1999, 1999, 1999, 449,-32768, 320,-32768,-32768, 242, 329,
752 242, 285, 242, 329, 242, 301, 242, 285, 242, 301,
753 -32768, 572,-32768, 425,-32768, 572, -31,-32768,-32768,-32768,
754 -32768,-32768, -31,-32768, 426,-32768,-32768, -31,-32768,-32768,
755 -32768,-32768, -31,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
756 28, 73, 140, 80, 205, 287,-32768,-32768,-32768,-32768,
757 -32768,-32768,-32768,-32768,-32768,-32768, 963,-32768,-32768,-32768,
758 -32768,-32768,-32768, 242,-32768,-32768, 242,-32768,-32768,-32768,
759 -32768, 385, 1439,-32768,-32768, 226, 78,-32768,-32768,-32768,
763 static const short yypgoto
[] = {-32768,
764 411, -58, -490,-32768, -99, -122, 176, -409,-32768, -5,
765 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
766 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
767 -32768,-32768,-32768,-32768,-32768, -213, -203,-32768,-32768,-32768,
768 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
769 -32768,-32768, -41,-32768,-32768,-32768, -194, -415,-32768, -37,
770 -32768,-32768,-32768,-32768,-32768,-32768,-32768, -379, -352, -400,
771 -32768, -112, -535,-32768,-32768, -420,-32768, -417,-32768, -399,
772 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
773 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
774 -32768,-32768,-32768,-32768, -193, 272,-32768,-32768,-32768,-32768,
775 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 133,-32768,-32768,
776 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 131,
777 390, 401, 403, 92, 289,-32768,-32768,-32768,-32768,-32768,
778 -10, -52, 431,-32768,-32768, -89,-32768,-32768, 194, 326,
779 -20, -136, -43, -104, -187, -86
786 static const short yytable
[] = { 142,
787 179, 231, 314, 228, 80, 350, 496, 508, 333, 263,
788 215, 566, 514, 518, 522, 351, 523, 1, 189, 528,
789 342, 174, 424, 265, 583, -2, 229, 275, 628, 513,
790 517, 523, 147, 305, 184, 280, 194, 56, 186, 306,
791 171, 289, 174, 218, 180, 181, 418, 186, 621, -4,
792 282, 516, 520, 200, 277, 278, 405, 216, 217, 419,
793 487, 190, -176, 148, 149, 290, 291, 151, 150, 1,
794 -176, 525, 169, 630, 173, 629, 631, 512, 304, 521,
795 635, 581, 193, 438, 1, 524, 496, 317, 425, 1,
796 425, 1, 189, 175, 570, 572, 227, 232, 574, 576,
797 585, 564, 578, 580, 1, 582, 584, 586, 343, 587,
798 437, 569, 292, 293, 175, 573, -176, -176, 334, 294,
799 -176, 340, 476, -176, -176, -176, -176, 613, 614, 615,
800 616, 186, 488, 186, 496, 190, 645, 575, 406, 350,
801 632, 579, 212, 174, 459, 174, -171, 425, 470, 186,
802 189, 604, -171, 605, 400, 606, 295, 607, 186, 608,
803 571, 609, 336, 301, 602, 303, 425, 577, 401, 213,
804 1, 623, 613, 614, 615, 616, 4, -176, -176, -176,
805 -176, -176, -176, -176, 524, 525, 322, 402, 330, 56,
806 1, -106, 446, -259, 639, 641, -176, -176, -176, -176,
807 -176, -176, -176, 458, 406, 638, -173, 466, 283, 354,
808 469, -173, -173, 365, 642, 175, 646, 175, -173, 647,
809 285, 445, 373, 374, 375, 376, 377, 378, 379, 380,
810 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
811 391, 392, 393, 394, 395, 396, 397, 398, 399, 460,
812 357, 186, 271, 273, 435, 523, 1, 444, 186, 266,
813 172, 176, 178, 1, 484, 272, 414, 415, 1, 417,
814 195, -173, 37, 315, 214, 355, -173, -173, 219, 423,
815 243, 532, 305, -173, 434, 186, 186, 640, 306, 230,
816 267, 358, 268, 359, 305, 366, 502, 292, 293, 267,
817 306, 268, 369, 201, 294, 267, 202, 268, 425, 524,
818 525, 196, 545, 451, 40, 291, 371, 260, 588, 410,
819 269, 1, 589, 1, 203, 204, 205, 206, 183, 269,
820 590, 207, 440, 270, 603, 269, 452, 360, 274, 468,
821 593, 533, 270, 1, 442, 541, 281, 544, 270, 208,
822 1, -12, 284, -173, 286, 287, 288, 296, -173, -173,
823 302, 197, 198, 199, -105, -173, 316, 1, 318, 523,
824 152, 234, 321, 327, 329, 331, -407, 363, 234, 464,
825 525, 243, 209, 210, 1, 529, 480, 530, 243, 531,
826 344, 345, 346, -407, 220, 524, 356, 184, 648, -407,
827 56, 367, 368, 370, 652, -407, -407, 372, 153, 154,
828 497, 653, -407, 489, 509, 550, 14, 267, 358, 268,
829 359, 255, 256, 257, 258, 259, 625, 1, 323, 276,
830 257, 258, 259, -407, 1, -407, -407, 559, -113, -113,
831 403, 155, 156, -407, 594, -407, 407, 269, 411, 43,
832 412, 649, 324, 558, 416, 498, 499, 500, 595, 650,
833 270, 1, 1, 1, 360, 55, 56, 57, 58, 567,
834 624, 60, 61, 622, -257, 436, 1, -113, 62, 339,
835 627, 325, 326, 347, 152, 472, 142, 561, 562, 563,
836 560, 80, 478, 221, 447, 448, 348, 449, 183, 347,
837 439, 441, 443, 453, 222, 454, 223, 455, 456, 79,
838 457, 364, 163, 313, 0, 461, 462, 35, 465, 37,
839 0, 619, 153, 154, 613, 614, 615, 616, 349, 473,
840 0, 0, 0, 35, 0, -267, 0, 477, 497, 481,
841 482, 0, 0, 0, -267, 0, -407, 0, 0, 142,
842 337, 0, 0, 338, 80, 155, 156, 57, 58, 0,
843 0, 157, 158, -407, 0, 0, 0, 184, 159, -407,
844 56, 203, 204, 205, 206, -407, -407, 0, 207, 485,
845 0, 305, -407, 490, 491, 0, 0, 306, 493, 0,
846 0, 0, 0, 157, 158, 503, 504, 505, 505, 0,
847 159, 510, 0, -407, 0, -407, -407, 0, 526, 0,
848 505, 0, 0, -407, 0, 0, 0, 0, 643, 0,
849 0, 307, 0, 308, 309, 534, 535, 0, 0, 209,
850 210, 310, 142, 0, 537, 538, 0, 80, 539, 0,
851 0, 0, 0, 542, 0, 0, 0, 0, 0, 547,
852 548, 0, 0, 551, 552, 0, 0, 0, 554, 0,
853 0, 555, 0, 0, 0, 0, 0, 557, 610, 611,
854 612, 613, 614, 615, 616, 0, 0, 0, 0, 0,
855 0, 0, 0, 0, 568, 0, 0, 0, 0, 0,
856 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
858 0, 591, 0, 0, 0, 592, 0, 0, 0, 0,
859 0, 596, 0, 0, 597, 0, 0, 0, 599, 0,
860 0, 600, 0, 601, 0, 543, 0, -13, -13, -13,
861 -13, 0, 0, 0, 0, 0, -13, -13, -13, -13,
862 -13, -13, -13, -13, -13, -13, 0, 0, 0, 0,
863 0, -13, 505, -13, -13, -13, -13, -13, -13, -13,
864 -13, -13, -13, 626, 0, 0, 0, 0, 0, -13,
865 -13, -13, -13, 1, 0, 0, 0, 0, 0, 0,
866 -13, -13, -13, -13, -13, 0, -13, -13, -13, -13,
867 0, -13, -13, -13, 0, 0, -13, -13, -13, -13,
868 -13, 0, -13, -13, 0, 0, 0, 0, 0, -13,
869 -13, 0, 0, -13, -13, -13, -13, -13, -13, 0,
870 0, 0, 0, 0, 0, 0, 0, 0, -13, -13,
871 -13, -13, -13, -13, -13, -13, -13, 0, 0, 565,
872 -13, -20, -20, -20, -20, 0, 0, 0, 0, 0,
873 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
874 0, 0, 0, 0, 0, -20, 0, -20, -20, -20,
875 -20, -20, -20, -20, -20, -20, -20, 0, 0, 0,
876 0, 0, 0, -20, -20, -20, -20, 0, 0, 0,
877 0, 0, 0, 0, -20, -20, -20, -20, -20, 0,
878 -20, -20, -20, -20, 0, -20, -20, -20, 0, 0,
879 -20, -20, -20, -20, -20, 0, -20, -20, 0, 0,
880 0, 0, 0, -20, -20, 0, 0, -20, -20, -20,
881 -20, -20, -20, 0, 0, 0, 0, 0, 0, 0,
882 0, 0, -20, -20, -20, -20, -20, -20, -20, -20,
883 -20, 0, 0, 644, -20, -20, -20, -20, -20, 0,
884 0, 0, 0, 0, -20, -20, -20, -20, -20, -20,
885 -20, -20, -20, -20, 0, 0, 0, 0, 0, -20,
886 0, -20, -20, -20, -20, -20, -20, -20, -20, -20,
887 -20, 0, 0, 0, 0, 0, 0, -20, -20, -20,
888 -20, 0, 0, 0, 0, 0, 0, 0, -20, -20,
889 -20, -20, -20, 0, -20, -20, -20, -20, 0, -20,
890 -20, -20, 335, 0, -20, -20, -20, -20, -20, 0,
891 -20, -20, 0, 0, 0, 0, 0, -20, -20, 0,
892 0, -20, -20, -20, -20, -20, -20, -411, 0, 0,
893 0, 0, 0, 0, 0, 0, -20, -20, -20, -20,
894 -20, -20, -20, -20, -20, 0, 0, 0, -20, 0,
895 0, 0, 0, 0, 0, 0, 0, 43, 44, 45,
896 46, 47, 0, 48, 49, 50, 51, 467, 52, 53,
897 54, 0, 0, 55, 56, 57, 58, 0, 0, 60,
898 61, 0, 0, 0, 0, 0, 62, 0, 0, 0,
899 64, 65, 66, 67, 68, 69, 0, 0, 0, 0,
900 0, 0, 0, 0, 0, 70, 71, 72, 73, 74,
901 75, 76, 77, 78, 0, 0, 0, 79, 0, 0,
902 0, 0, 43, 44, 45, 46, 47, 0, 48, 49,
903 50, 51, 0, 52, 53, 54, 0, 0, 55, 56,
904 57, 58, 0, 0, 60, 61, 0, 0, 0, 0,
905 0, 62, 0, 0, 0, 64, 65, 66, 67, 68,
906 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
907 70, 71, 72, 73, 74, 75, 76, 77, 78, 0,
908 0, 0, 79, 15, 16, 17, 18, 0, 0, 0,
909 0, 0, 19, 20, 21, 0, 22, 23, 24, 25,
910 26, 27, 0, 0, 0, 0, 0, 28, 0, 29,
911 30, 31, 32, 33, 34, 35, 36, 37, 38, 0,
912 0, 0, 0, 0, 0, 39, 40, 41, 42, 0,
913 0, 0, 0, 0, 0, 0, 43, 44, 45, 46,
914 47, 0, 48, 49, 50, 51, 0, 52, 53, 54,
915 0, 0, 55, 56, 57, 58, 59, 0, 60, 61,
916 0, 0, 0, 0, 0, 62, 63, 0, 0, 64,
917 65, 66, 67, 68, 69, 0, 0, 0, 0, 0,
918 0, 0, 0, 0, 70, 71, 72, 73, 74, 75,
919 76, 77, 78, 0, 0, 0, 79, 15, 16, 17,
920 18, 0, 0, 0, 0, 0, 19, 20, 21, -20,
921 22, 23, 24, 25, 26, 27, 0, 0, 0, 0,
922 0, 28, 0, 29, 30, 31, 32, 33, 34, 35,
923 36, 37, 38, 0, 0, 0, 0, 0, 0, 39,
924 0, 41, 42, 0, 0, 0, 0, 0, 0, 0,
925 43, 44, 45, 46, 47, 0, 48, 49, 50, 51,
926 0, 52, 53, 54, 0, 0, 55, 56, 57, 58,
927 59, 0, 60, 61, 0, 0, 0, 0, 0, 62,
928 63, 0, 0, 64, 65, 66, 67, 68, 69, 0,
929 0, 0, 0, 0, 0, 0, 0, 0, 70, 71,
930 72, 73, 74, 75, 76, 77, 78, 0, 0, 0,
931 79, 15, 16, 17, 18, 0, 0, 0, 0, 0,
932 19, 20, 21, 0, 22, 23, 24, 25, 26, 27,
933 0, 0, 0, 0, 0, 28, 0, 29, 30, 31,
934 32, 33, 34, 35, 36, 37, 38, 0, 0, 0,
935 0, 0, 0, 39, 0, 41, 42, 0, 0, 0,
936 0, 0, 0, 0, 43, 44, 45, 46, 47, 0,
937 48, 49, 50, 51, 0, 52, 53, 54, 0, 0,
938 55, 56, 57, 58, 59, 0, 60, 61, 498, 499,
939 500, 0, 0, 62, 63, 0, 0, 64, 65, 66,
940 67, 68, 69, 0, 0, 0, 0, 0, 0, 0,
941 0, 0, 70, 71, 72, 73, 74, 75, 76, 77,
942 78, 0, 0, 0, 79, 0, 0, 0, 0, 0,
943 0, 0, 0, 0, 0, 0, 0, 0, 233, 234,
944 235, 236, 237, 238, 239, 240, 241, 0, 242, 243,
945 244, 0, 0, 0, 0, 0, 0, 0, 0, 0,
946 0, 0, 0, 224, 0, 0, 0, 0, 0, 0,
947 245, 246, 247, 248, 249, 250, 0, 0, 0, 0,
948 0, 0, 0, 0, 0, 251, 252, 253, 254, 255,
949 256, 257, 258, 259, 43, 44, 45, 46, 47, 0,
950 48, 49, 50, 51, 0, 52, 53, 54, 0, 0,
951 55, 56, 57, 58, 0, 0, 60, 61, 0, 0,
952 225, 0, 0, 62, 0, 0, 0, 64, 65, 66,
953 67, 68, 69, 0, 0, 0, 0, 0, 0, 0,
954 0, 0, 70, 71, 72, 73, 74, 75, 76, 77,
955 78, 1, 0, 0, 79, 0, 0, 0, 43, 44,
956 45, 46, 47, 0, 48, 49, 50, 51, 0, 52,
957 53, 54, 0, 0, 55, 56, 57, 58, 0, 0,
958 60, 61, 0, 0, 0, 0, 0, 62, 0, 0,
959 0, 64, 65, 66, 67, 68, 69, 0, 0, 0,
960 0, 0, 0, 0, 0, 0, 70, 71, 72, 73,
961 74, 75, 76, 77, 78, 165, 0, 0, 79, 0,
962 0, 43, 44, 45, 46, 47, 0, 48, 49, 50,
963 51, 0, 52, 53, 54, 0, 0, 55, 56, 57,
964 58, 0, 166, 60, 61, 0, 0, 0, 0, 0,
965 62, 0, 0, 0, 64, 65, 66, 67, 68, 69,
966 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
967 71, 72, 73, 74, 75, 76, 77, 78, 1, 0,
968 0, 79, 0, 0, 0, 0, 233, 234, 235, 236,
969 237, 238, 239, 240, 241, 0, 242, 243, 244, 0,
970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
971 0, 0, 0, 0, 0, 0, 0, 0, 245, 246,
972 247, 248, 249, 250, 0, 0, 0, 0, 0, 0,
973 0, 0, 0, 251, 252, 253, 254, 255, 256, 257,
974 258, 259, 43, 44, 45, 46, 47, 0, 48, 49,
975 50, 51, 0, 52, 53, 54, 0, 0, 55, 56,
976 57, 58, 0, 0, 60, 61, 0, 0, 0, 0,
977 0, 62, 0, 0, 0, 64, 65, 66, 67, 68,
978 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
979 70, 71, 72, 73, 74, 75, 76, 77, 78, 0,
980 0, 0, 79, 233, 234, 235, 236, 237, 238, 239,
981 240, 241, 0, 242, 243, 244, 0, 0, 0, 0,
982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
983 0, 0, 0, 0, 0, 245, 246, 247, 248, 249,
984 250, 0, 0, 0, 0, 0, 0, 0, 0, 0,
985 251, 252, 253, 254, 255, 256, 257, 258, 259, 0,
986 0, 0, 0, 264, 233, 234, 235, 236, 237, 238,
987 239, 240, 241, 0, 242, 243, 244, 0, 0, 0,
988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
989 0, 0, 0, 0, 0, 0, 245, 246, 247, 248,
990 249, 250, 0, 0, 0, 0, 0, 0, 0, 0,
991 0, 251, 252, 253, 254, 255, 256, 257, 258, 259,
992 0, 0, 0, 0, 527, 233, 234, 235, 236, 237,
993 238, 239, 240, 241, 0, 242, 243, 244, 0, 0,
994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
995 0, 0, 0, 0, 0, 0, 0, 245, 246, 247,
996 248, 249, 250, 0, 0, 0, 0, 0, 0, 0,
997 0, 0, 251, 252, 253, 254, 255, 256, 257, 258,
998 259, 233, 234, 235, 236, 237, 238, 239, 240, 241,
999 0, 242, 243, 0, 0, 0, 0, 0, 0, 0,
1000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1001 0, 0, 0, 245, 246, 247, 248, 249, 250, 0,
1002 0, 0, 0, 0, 0, 0, 0, 0, 0, 252,
1003 253, 254, 255, 256, 257, 258, 259, 233, 234,-32768,
1004 -32768,-32768,-32768,-32768,-32768,-32768, 0, 242, 243, 0,
1005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1006 0, 0, 0, 0, 0, 0, 0, 0, 0,-32768,
1007 -32768,-32768,-32768,-32768,-32768, 0, 0, 0, 0, 0,
1008 0, 0, 0, 0, 0, 0,-32768, 254, 255, 256,
1009 257, 258, 259, 233, 234, 235, 236, 237, 238, 239,
1010 240, 241, 0, 242, 243, 0, 0, 0, 0, 0,
1011 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1012 0, 0, 0, 0, 0, 245, 246, 247, 248, 249,
1013 250, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1014 0, 0, 253, 254, 255, 256, 257, 258, 259
1017 static const short yycheck
[] = { 10,
1018 87, 124, 190, 108, 10, 219, 416, 423, 202, 146,
1019 100, 502, 430, 431, 432, 219, 41, 49, 73, 435,
1020 1, 1, 1, 160, 1, 0, 113, 164, 1, 430,
1021 431, 41, 43, 66, 70, 106, 1, 73, 91, 72,
1022 84, 1, 1, 1, 88, 89, 1, 100, 584, 0,
1023 173, 431, 432, 97, 10, 11, 1, 101, 102, 14,
1024 1, 116, 41, 74, 75, 25, 26, 15, 79, 49,
1025 49, 96, 83, 1, 85, 611, 612, 430, 118, 432,
1026 1, 1, 93, 116, 49, 95, 496, 192, 67, 49,
1027 67, 49, 73, 73, 512, 513, 107, 141, 516, 517,
1028 1, 501, 520, 521, 49, 523, 524, 525, 213, 527,
1029 304, 512, 72, 73, 73, 516, 95, 96, 205, 79,
1030 97, 211, 1, 100, 101, 102, 103, 100, 101, 102,
1031 103, 184, 73, 186, 544, 116, 627, 517, 83, 353,
1032 1, 521, 1, 1, 338, 1, 67, 67, 352, 202,
1033 73, 569, 73, 571, 117, 573, 116, 575, 211, 577,
1034 513, 579, 206, 184, 564, 186, 67, 520, 118, 28,
1035 49, 587, 100, 101, 102, 103, 1, 97, 98, 99,
1036 100, 101, 102, 103, 95, 96, 197, 117, 199, 73,
1037 49, 49, 117, 49, 615, 616, 97, 98, 99, 100,
1038 101, 102, 103, 26, 83, 1, 67, 1, 1, 220,
1039 1, 72, 73, 224, 624, 73, 634, 73, 79, 637,
1040 1, 311, 233, 234, 235, 236, 237, 238, 239, 240,
1041 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
1042 251, 252, 253, 254, 255, 256, 257, 258, 259, 339,
1043 1, 304, 161, 162, 298, 41, 49, 310, 311, 1,
1044 85, 86, 87, 49, 401, 1, 277, 278, 49, 280,
1045 95, 67, 37, 1, 99, 1, 72, 73, 103, 290,
1046 68, 117, 66, 79, 295, 338, 339, 1, 72, 114,
1047 41, 42, 43, 44, 66, 1, 419, 72, 73, 41,
1048 72, 43, 1, 1, 79, 41, 4, 43, 67, 95,
1049 96, 1, 46, 324, 46, 26, 1, 142, 117, 1,
1050 71, 49, 117, 49, 22, 23, 24, 25, 1, 71,
1051 117, 29, 116, 84, 15, 71, 1, 88, 163, 350,
1052 14, 446, 84, 49, 116, 468, 171, 470, 84, 47,
1053 49, 14, 177, 67, 179, 180, 181, 182, 72, 73,
1054 185, 51, 52, 53, 49, 79, 191, 49, 193, 41,
1055 1, 58, 197, 198, 199, 200, 49, 1, 58, 1,
1056 96, 68, 80, 81, 49, 438, 1, 440, 68, 442,
1057 215, 216, 217, 66, 25, 95, 221, 70, 14, 72,
1058 73, 226, 227, 228, 0, 78, 79, 232, 39, 40,
1059 416, 0, 85, 1, 1, 1, 6, 41, 42, 43,
1060 44, 108, 109, 110, 111, 112, 1, 49, 1, 1,
1061 110, 111, 112, 106, 49, 108, 109, 496, 10, 11,
1062 265, 72, 73, 116, 544, 118, 271, 71, 273, 56,
1063 275, 646, 25, 495, 279, 7, 8, 9, 545, 647,
1064 84, 49, 49, 49, 88, 72, 73, 74, 75, 507,
1065 593, 78, 79, 586, 49, 300, 49, 49, 85, 208,
1066 603, 54, 55, 1, 1, 353, 497, 498, 499, 500,
1067 496, 497, 362, 104, 319, 320, 14, 322, 1, 1,
1068 307, 308, 309, 328, 104, 330, 104, 332, 333, 116,
1069 335, 223, 82, 188, -1, 340, 341, 35, 343, 37,
1070 -1, 97, 39, 40, 100, 101, 102, 103, 46, 354,
1071 -1, -1, -1, 35, -1, 37, -1, 362, 544, 364,
1072 365, -1, -1, -1, 46, -1, 49, -1, -1, 560,
1073 1, -1, -1, 4, 560, 72, 73, 74, 75, -1,
1074 -1, 78, 79, 66, -1, -1, -1, 70, 85, 72,
1075 73, 22, 23, 24, 25, 78, 79, -1, 29, 404,
1076 -1, 66, 85, 408, 409, -1, -1, 72, 413, -1,
1077 -1, -1, -1, 78, 79, 420, 421, 422, 423, -1,
1078 85, 426, -1, 106, -1, 108, 109, -1, 433, -1,
1079 435, -1, -1, 116, -1, -1, -1, -1, 624, -1,
1080 -1, 106, -1, 108, 109, 450, 451, -1, -1, 80,
1081 81, 116, 643, -1, 459, 460, -1, 643, 463, -1,
1082 -1, -1, -1, 468, -1, -1, -1, -1, -1, 474,
1083 475, -1, -1, 478, 479, -1, -1, -1, 483, -1,
1084 -1, 486, -1, -1, -1, -1, -1, 492, 97, 98,
1085 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
1086 -1, -1, -1, -1, 509, -1, -1, -1, -1, -1,
1087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1088 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1089 -1, 536, -1, -1, -1, 540, -1, -1, -1, -1,
1090 -1, 546, -1, -1, 549, -1, -1, -1, 553, -1,
1091 -1, 556, -1, 558, -1, 1, -1, 3, 4, 5,
1092 6, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1093 16, 17, 18, 19, 20, 21, -1, -1, -1, -1,
1094 -1, 27, 587, 29, 30, 31, 32, 33, 34, 35,
1095 36, 37, 38, 598, -1, -1, -1, -1, -1, 45,
1096 46, 47, 48, 49, -1, -1, -1, -1, -1, -1,
1097 56, 57, 58, 59, 60, -1, 62, 63, 64, 65,
1098 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75,
1099 76, -1, 78, 79, -1, -1, -1, -1, -1, 85,
1100 86, -1, -1, 89, 90, 91, 92, 93, 94, -1,
1101 -1, -1, -1, -1, -1, -1, -1, -1, 104, 105,
1102 106, 107, 108, 109, 110, 111, 112, -1, -1, 1,
1103 116, 3, 4, 5, 6, -1, -1, -1, -1, -1,
1104 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1105 -1, -1, -1, -1, -1, 27, -1, 29, 30, 31,
1106 32, 33, 34, 35, 36, 37, 38, -1, -1, -1,
1107 -1, -1, -1, 45, 46, 47, 48, -1, -1, -1,
1108 -1, -1, -1, -1, 56, 57, 58, 59, 60, -1,
1109 62, 63, 64, 65, -1, 67, 68, 69, -1, -1,
1110 72, 73, 74, 75, 76, -1, 78, 79, -1, -1,
1111 -1, -1, -1, 85, 86, -1, -1, 89, 90, 91,
1112 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1113 -1, -1, 104, 105, 106, 107, 108, 109, 110, 111,
1114 112, -1, -1, 1, 116, 3, 4, 5, 6, -1,
1115 -1, -1, -1, -1, 12, 13, 14, 15, 16, 17,
1116 18, 19, 20, 21, -1, -1, -1, -1, -1, 27,
1117 -1, 29, 30, 31, 32, 33, 34, 35, 36, 37,
1118 38, -1, -1, -1, -1, -1, -1, 45, 46, 47,
1119 48, -1, -1, -1, -1, -1, -1, -1, 56, 57,
1120 58, 59, 60, -1, 62, 63, 64, 65, -1, 67,
1121 68, 69, 1, -1, 72, 73, 74, 75, 76, -1,
1122 78, 79, -1, -1, -1, -1, -1, 85, 86, -1,
1123 -1, 89, 90, 91, 92, 93, 94, 26, -1, -1,
1124 -1, -1, -1, -1, -1, -1, 104, 105, 106, 107,
1125 108, 109, 110, 111, 112, -1, -1, -1, 116, -1,
1126 -1, -1, -1, -1, -1, -1, -1, 56, 57, 58,
1127 59, 60, -1, 62, 63, 64, 65, 1, 67, 68,
1128 69, -1, -1, 72, 73, 74, 75, -1, -1, 78,
1129 79, -1, -1, -1, -1, -1, 85, -1, -1, -1,
1130 89, 90, 91, 92, 93, 94, -1, -1, -1, -1,
1131 -1, -1, -1, -1, -1, 104, 105, 106, 107, 108,
1132 109, 110, 111, 112, -1, -1, -1, 116, -1, -1,
1133 -1, -1, 56, 57, 58, 59, 60, -1, 62, 63,
1134 64, 65, -1, 67, 68, 69, -1, -1, 72, 73,
1135 74, 75, -1, -1, 78, 79, -1, -1, -1, -1,
1136 -1, 85, -1, -1, -1, 89, 90, 91, 92, 93,
1137 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1138 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
1139 -1, -1, 116, 3, 4, 5, 6, -1, -1, -1,
1140 -1, -1, 12, 13, 14, -1, 16, 17, 18, 19,
1141 20, 21, -1, -1, -1, -1, -1, 27, -1, 29,
1142 30, 31, 32, 33, 34, 35, 36, 37, 38, -1,
1143 -1, -1, -1, -1, -1, 45, 46, 47, 48, -1,
1144 -1, -1, -1, -1, -1, -1, 56, 57, 58, 59,
1145 60, -1, 62, 63, 64, 65, -1, 67, 68, 69,
1146 -1, -1, 72, 73, 74, 75, 76, -1, 78, 79,
1147 -1, -1, -1, -1, -1, 85, 86, -1, -1, 89,
1148 90, 91, 92, 93, 94, -1, -1, -1, -1, -1,
1149 -1, -1, -1, -1, 104, 105, 106, 107, 108, 109,
1150 110, 111, 112, -1, -1, -1, 116, 3, 4, 5,
1151 6, -1, -1, -1, -1, -1, 12, 13, 14, 15,
1152 16, 17, 18, 19, 20, 21, -1, -1, -1, -1,
1153 -1, 27, -1, 29, 30, 31, 32, 33, 34, 35,
1154 36, 37, 38, -1, -1, -1, -1, -1, -1, 45,
1155 -1, 47, 48, -1, -1, -1, -1, -1, -1, -1,
1156 56, 57, 58, 59, 60, -1, 62, 63, 64, 65,
1157 -1, 67, 68, 69, -1, -1, 72, 73, 74, 75,
1158 76, -1, 78, 79, -1, -1, -1, -1, -1, 85,
1159 86, -1, -1, 89, 90, 91, 92, 93, 94, -1,
1160 -1, -1, -1, -1, -1, -1, -1, -1, 104, 105,
1161 106, 107, 108, 109, 110, 111, 112, -1, -1, -1,
1162 116, 3, 4, 5, 6, -1, -1, -1, -1, -1,
1163 12, 13, 14, -1, 16, 17, 18, 19, 20, 21,
1164 -1, -1, -1, -1, -1, 27, -1, 29, 30, 31,
1165 32, 33, 34, 35, 36, 37, 38, -1, -1, -1,
1166 -1, -1, -1, 45, -1, 47, 48, -1, -1, -1,
1167 -1, -1, -1, -1, 56, 57, 58, 59, 60, -1,
1168 62, 63, 64, 65, -1, 67, 68, 69, -1, -1,
1169 72, 73, 74, 75, 76, -1, 78, 79, 7, 8,
1170 9, -1, -1, 85, 86, -1, -1, 89, 90, 91,
1171 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1172 -1, -1, 104, 105, 106, 107, 108, 109, 110, 111,
1173 112, -1, -1, -1, 116, -1, -1, -1, -1, -1,
1174 -1, -1, -1, -1, -1, -1, -1, -1, 57, 58,
1175 59, 60, 61, 62, 63, 64, 65, -1, 67, 68,
1176 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1177 -1, -1, -1, 25, -1, -1, -1, -1, -1, -1,
1178 89, 90, 91, 92, 93, 94, -1, -1, -1, -1,
1179 -1, -1, -1, -1, -1, 104, 105, 106, 107, 108,
1180 109, 110, 111, 112, 56, 57, 58, 59, 60, -1,
1181 62, 63, 64, 65, -1, 67, 68, 69, -1, -1,
1182 72, 73, 74, 75, -1, -1, 78, 79, -1, -1,
1183 82, -1, -1, 85, -1, -1, -1, 89, 90, 91,
1184 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1185 -1, -1, 104, 105, 106, 107, 108, 109, 110, 111,
1186 112, 49, -1, -1, 116, -1, -1, -1, 56, 57,
1187 58, 59, 60, -1, 62, 63, 64, 65, -1, 67,
1188 68, 69, -1, -1, 72, 73, 74, 75, -1, -1,
1189 78, 79, -1, -1, -1, -1, -1, 85, -1, -1,
1190 -1, 89, 90, 91, 92, 93, 94, -1, -1, -1,
1191 -1, -1, -1, -1, -1, -1, 104, 105, 106, 107,
1192 108, 109, 110, 111, 112, 50, -1, -1, 116, -1,
1193 -1, 56, 57, 58, 59, 60, -1, 62, 63, 64,
1194 65, -1, 67, 68, 69, -1, -1, 72, 73, 74,
1195 75, -1, 77, 78, 79, -1, -1, -1, -1, -1,
1196 85, -1, -1, -1, 89, 90, 91, 92, 93, 94,
1197 -1, -1, -1, -1, -1, -1, -1, -1, -1, 104,
1198 105, 106, 107, 108, 109, 110, 111, 112, 49, -1,
1199 -1, 116, -1, -1, -1, -1, 57, 58, 59, 60,
1200 61, 62, 63, 64, 65, -1, 67, 68, 69, -1,
1201 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1202 -1, -1, -1, -1, -1, -1, -1, -1, 89, 90,
1203 91, 92, 93, 94, -1, -1, -1, -1, -1, -1,
1204 -1, -1, -1, 104, 105, 106, 107, 108, 109, 110,
1205 111, 112, 56, 57, 58, 59, 60, -1, 62, 63,
1206 64, 65, -1, 67, 68, 69, -1, -1, 72, 73,
1207 74, 75, -1, -1, 78, 79, -1, -1, -1, -1,
1208 -1, 85, -1, -1, -1, 89, 90, 91, 92, 93,
1209 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1210 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
1211 -1, -1, 116, 57, 58, 59, 60, 61, 62, 63,
1212 64, 65, -1, 67, 68, 69, -1, -1, -1, -1,
1213 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1214 -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
1215 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1216 104, 105, 106, 107, 108, 109, 110, 111, 112, -1,
1217 -1, -1, -1, 117, 57, 58, 59, 60, 61, 62,
1218 63, 64, 65, -1, 67, 68, 69, -1, -1, -1,
1219 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1220 -1, -1, -1, -1, -1, -1, 89, 90, 91, 92,
1221 93, 94, -1, -1, -1, -1, -1, -1, -1, -1,
1222 -1, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1223 -1, -1, -1, -1, 117, 57, 58, 59, 60, 61,
1224 62, 63, 64, 65, -1, 67, 68, 69, -1, -1,
1225 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1226 -1, -1, -1, -1, -1, -1, -1, 89, 90, 91,
1227 92, 93, 94, -1, -1, -1, -1, -1, -1, -1,
1228 -1, -1, 104, 105, 106, 107, 108, 109, 110, 111,
1229 112, 57, 58, 59, 60, 61, 62, 63, 64, 65,
1230 -1, 67, 68, -1, -1, -1, -1, -1, -1, -1,
1231 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1232 -1, -1, -1, 89, 90, 91, 92, 93, 94, -1,
1233 -1, -1, -1, -1, -1, -1, -1, -1, -1, 105,
1234 106, 107, 108, 109, 110, 111, 112, 57, 58, 59,
1235 60, 61, 62, 63, 64, 65, -1, 67, 68, -1,
1236 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1237 -1, -1, -1, -1, -1, -1, -1, -1, -1, 89,
1238 90, 91, 92, 93, 94, -1, -1, -1, -1, -1,
1239 -1, -1, -1, -1, -1, -1, 106, 107, 108, 109,
1240 110, 111, 112, 57, 58, 59, 60, 61, 62, 63,
1241 64, 65, -1, 67, 68, -1, -1, -1, -1, -1,
1242 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1243 -1, -1, -1, -1, -1, 89, 90, 91, 92, 93,
1244 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1245 -1, -1, 106, 107, 108, 109, 110, 111, 112
1247 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
1248 #line 3 "/usr/lib/bison.simple"
1249 /* This file comes from bison-1.28. */
1251 /* Skeleton output parser for bison,
1252 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
1254 This program is free software; you can redistribute it and/or modify
1255 it under the terms of the GNU General Public License as published by
1256 the Free Software Foundation; either version 2, or (at your option)
1259 This program is distributed in the hope that it will be useful,
1260 but WITHOUT ANY WARRANTY; without even the implied warranty of
1261 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1262 GNU General Public License for more details.
1264 You should have received a copy of the GNU General Public License
1265 along with this program; if not, write to the Free Software
1266 Foundation, Inc., 59 Temple Place - Suite 330,
1267 Boston, MA 02111-1307, USA. */
1269 /* As a special exception, when this file is copied by Bison into a
1270 Bison output file, you may use that output file without restriction.
1271 This special exception was added by the Free Software Foundation
1272 in version 1.24 of Bison. */
1274 /* This is the parser code that is written into each bison parser
1275 when the %semantic_parser declaration is not specified in the grammar.
1276 It was written by Richard Stallman by simplifying the hairy parser
1277 used when %semantic_parser is specified. */
1279 #ifndef YYSTACK_USE_ALLOCA
1281 #define YYSTACK_USE_ALLOCA
1282 #else /* alloca not defined */
1284 #define YYSTACK_USE_ALLOCA
1285 #define alloca __builtin_alloca
1286 #else /* not GNU C. */
1287 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
1288 #define YYSTACK_USE_ALLOCA
1290 #else /* not sparc */
1291 /* We think this test detects Watcom and Microsoft C. */
1292 /* This used to test MSDOS, but that is a bad idea
1293 since that symbol is in the user namespace. */
1294 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
1295 #if 0 /* No need for malloc.h, which pollutes the namespace;
1296 instead, just don't use alloca. */
1299 #else /* not MSDOS, or __TURBOC__ */
1301 /* I don't know what this was needed for, but it pollutes the namespace.
1302 So I turned it off. rms, 2 May 1997. */
1303 /* #include <malloc.h> */
1305 #define YYSTACK_USE_ALLOCA
1306 #else /* not MSDOS, or __TURBOC__, or _AIX */
1308 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
1309 and on HPUX 10. Eventually we can turn this on. */
1310 #define YYSTACK_USE_ALLOCA
1311 #define alloca __builtin_alloca
1314 #endif /* not _AIX */
1315 #endif /* not MSDOS, or __TURBOC__ */
1316 #endif /* not sparc */
1317 #endif /* not GNU C */
1318 #endif /* alloca not defined */
1319 #endif /* YYSTACK_USE_ALLOCA not defined */
1321 #ifdef YYSTACK_USE_ALLOCA
1322 #define YYSTACK_ALLOC alloca
1324 #define YYSTACK_ALLOC malloc
1327 /* Note: there must be only one dollar sign in this file.
1328 It is replaced by the list of actions, each action
1329 as one case of the switch. */
1331 #define yyerrok (yyerrstatus = 0)
1332 #define yyclearin (yychar = YYEMPTY)
1335 #define YYACCEPT goto yyacceptlab
1336 #define YYABORT goto yyabortlab
1337 #define YYERROR goto yyerrlab1
1338 /* Like YYERROR except do call yyerror.
1339 This remains here temporarily to ease the
1340 transition to the new meaning of YYERROR, for GCC.
1341 Once GCC version 2 has supplanted version 1, this can go. */
1342 #define YYFAIL goto yyerrlab
1343 #define YYRECOVERING() (!!yyerrstatus)
1344 #define YYBACKUP(token, value) \
1346 if (yychar == YYEMPTY && yylen == 1) \
1347 { yychar = (token), yylval = (value); \
1348 yychar1 = YYTRANSLATE (yychar); \
1353 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1357 #define YYERRCODE 256
1360 #define YYLEX yylex()
1366 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1368 #define YYLEX yylex(&yylval, &yylloc)
1370 #else /* not YYLSP_NEEDED */
1372 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1374 #define YYLEX yylex(&yylval)
1376 #endif /* not YYLSP_NEEDED */
1379 /* If nonreentrant, generate the variables here */
1383 int yychar
; /* the lookahead symbol */
1384 YYSTYPE yylval
; /* the semantic value of the */
1385 /* lookahead symbol */
1388 YYLTYPE yylloc
; /* location data for the lookahead */
1392 int yynerrs
; /* number of parse errors so far */
1393 #endif /* not YYPURE */
1396 int yydebug
; /* nonzero means print parse trace */
1397 /* Since this is uninitialized, it does not stop multiple parsers
1401 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1404 #define YYINITDEPTH 200
1407 /* YYMAXDEPTH is the maximum size the stacks can grow to
1408 (effective only if the built-in stack extension method is used). */
1415 #define YYMAXDEPTH 10000
1418 /* Define __yy_memcpy. Note that the size argument
1419 should be passed with type unsigned int, because that is what the non-GCC
1420 definitions require. With GCC, __builtin_memcpy takes an arg
1421 of type size_t, but it can handle unsigned int. */
1423 #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
1424 #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
1425 #else /* not GNU C or C++ */
1428 /* This is the most reliable way to avoid incompatibilities
1429 in available built-in functions on various systems. */
1431 __yy_memcpy (to
, from
, count
)
1436 register char *f
= from
;
1437 register char *t
= to
;
1438 register int i
= count
;
1444 #else /* __cplusplus */
1446 /* This is the most reliable way to avoid incompatibilities
1447 in available built-in functions on various systems. */
1449 __yy_memcpy (char *to
, char *from
, unsigned int count
)
1451 register char *t
= to
;
1452 register char *f
= from
;
1453 register int i
= count
;
1462 #line 217 "/usr/lib/bison.simple"
1464 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
1465 into yyparse. The argument should have type void *.
1466 It should actually point to an object.
1467 Grammar actions can access the variable by casting it
1468 to the proper pointer type. */
1470 #ifdef YYPARSE_PARAM
1472 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
1473 #define YYPARSE_PARAM_DECL
1474 #else /* not __cplusplus */
1475 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
1476 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
1477 #endif /* not __cplusplus */
1478 #else /* not YYPARSE_PARAM */
1479 #define YYPARSE_PARAM_ARG
1480 #define YYPARSE_PARAM_DECL
1481 #endif /* not YYPARSE_PARAM */
1483 /* Prevent warning if -Wstrict-prototypes. */
1485 #ifdef YYPARSE_PARAM
1486 int yyparse (void *);
1493 yyparse(YYPARSE_PARAM_ARG
)
1496 register int yystate
;
1498 register short *yyssp
;
1499 register YYSTYPE
*yyvsp
;
1500 int yyerrstatus
; /* number of tokens to shift before error messages enabled */
1501 int yychar1
= 0; /* lookahead token as an internal (translated) token number */
1503 short yyssa
[YYINITDEPTH
]; /* the state stack */
1504 YYSTYPE yyvsa
[YYINITDEPTH
]; /* the semantic value stack */
1506 short *yyss
= yyssa
; /* refer to the stacks thru separate pointers */
1507 YYSTYPE
*yyvs
= yyvsa
; /* to allow yyoverflow to reallocate them elsewhere */
1510 YYLTYPE yylsa
[YYINITDEPTH
]; /* the location stack */
1511 YYLTYPE
*yyls
= yylsa
;
1514 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1516 #define YYPOPSTACK (yyvsp--, yyssp--)
1519 int yystacksize
= YYINITDEPTH
;
1520 int yyfree_stacks
= 0;
1531 YYSTYPE yyval
; /* the variable used to return */
1532 /* semantic values from the action */
1539 fprintf(stderr
, "Starting parse\n");
1545 yychar
= YYEMPTY
; /* Cause a token to be read. */
1547 /* Initialize stack pointers.
1548 Waste one element of value and location stack
1549 so that they stay on the same level as the state stack.
1550 The wasted elements are never initialized. */
1558 /* Push a new state, which is found in yystate . */
1559 /* In all cases, when you get here, the value and location stacks
1560 have just been pushed. so pushing a state here evens the stacks. */
1565 if (yyssp
>= yyss
+ yystacksize
- 1)
1567 /* Give user a chance to reallocate the stack */
1568 /* Use copies of these so that the &'s don't force the real ones into memory. */
1569 YYSTYPE
*yyvs1
= yyvs
;
1570 short *yyss1
= yyss
;
1572 YYLTYPE
*yyls1
= yyls
;
1575 /* Get the current used size of the three stacks, in elements. */
1576 int size
= yyssp
- yyss
+ 1;
1579 /* Each stack pointer address is followed by the size of
1580 the data in use in that stack, in bytes. */
1582 /* This used to be a conditional around just the two extra args,
1583 but that might be undefined if yyoverflow is a macro. */
1584 yyoverflow("parser stack overflow",
1585 &yyss1
, size
* sizeof (*yyssp
),
1586 &yyvs1
, size
* sizeof (*yyvsp
),
1587 &yyls1
, size
* sizeof (*yylsp
),
1590 yyoverflow("parser stack overflow",
1591 &yyss1
, size
* sizeof (*yyssp
),
1592 &yyvs1
, size
* sizeof (*yyvsp
),
1596 yyss
= yyss1
; yyvs
= yyvs1
;
1600 #else /* no yyoverflow */
1601 /* Extend the stack our own way. */
1602 if (yystacksize
>= YYMAXDEPTH
)
1604 yyerror("parser stack overflow");
1616 if (yystacksize
> YYMAXDEPTH
)
1617 yystacksize
= YYMAXDEPTH
;
1618 #ifndef YYSTACK_USE_ALLOCA
1621 yyss
= (short *) YYSTACK_ALLOC (yystacksize
* sizeof (*yyssp
));
1622 __yy_memcpy ((char *)yyss
, (char *)yyss1
,
1623 size
* (unsigned int) sizeof (*yyssp
));
1624 yyvs
= (YYSTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yyvsp
));
1625 __yy_memcpy ((char *)yyvs
, (char *)yyvs1
,
1626 size
* (unsigned int) sizeof (*yyvsp
));
1628 yyls
= (YYLTYPE
*) YYSTACK_ALLOC (yystacksize
* sizeof (*yylsp
));
1629 __yy_memcpy ((char *)yyls
, (char *)yyls1
,
1630 size
* (unsigned int) sizeof (*yylsp
));
1632 #endif /* no yyoverflow */
1634 yyssp
= yyss
+ size
- 1;
1635 yyvsp
= yyvs
+ size
- 1;
1637 yylsp
= yyls
+ size
- 1;
1642 fprintf(stderr
, "Stack size increased to %d\n", yystacksize
);
1645 if (yyssp
>= yyss
+ yystacksize
- 1)
1651 fprintf(stderr
, "Entering state %d\n", yystate
);
1657 /* Do appropriate processing given the current state. */
1658 /* Read a lookahead token if we need one and don't already have one. */
1661 /* First try to decide what to do without reference to lookahead token. */
1663 yyn
= yypact
[yystate
];
1667 /* Not known => get a lookahead token if don't already have one. */
1669 /* yychar is either YYEMPTY or YYEOF
1670 or a valid token in external form. */
1672 if (yychar
== YYEMPTY
)
1676 fprintf(stderr
, "Reading a token: ");
1681 /* Convert token to internal form (in yychar1) for indexing tables with */
1683 if (yychar
<= 0) /* This means end of input. */
1686 yychar
= YYEOF
; /* Don't call YYLEX any more */
1690 fprintf(stderr
, "Now at end of input.\n");
1695 yychar1
= YYTRANSLATE(yychar
);
1700 fprintf (stderr
, "Next token is %d (%s", yychar
, yytname
[yychar1
]);
1701 /* Give the individual parser a way to print the precise meaning
1702 of a token, for further debugging info. */
1704 YYPRINT (stderr
, yychar
, yylval
);
1706 fprintf (stderr
, ")\n");
1712 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != yychar1
)
1717 /* yyn is what to do for this token type in this state.
1718 Negative => reduce, -yyn is rule number.
1719 Positive => shift, yyn is new state.
1720 New state is final state => don't bother to shift,
1721 just return success.
1722 0, or most negative number => error. */
1737 /* Shift the lookahead token. */
1741 fprintf(stderr
, "Shifting token %d (%s), ", yychar
, yytname
[yychar1
]);
1744 /* Discard the token being shifted unless it is eof. */
1745 if (yychar
!= YYEOF
)
1753 /* count tokens shifted since error; after three, turn off error status. */
1754 if (yyerrstatus
) yyerrstatus
--;
1759 /* Do the default action for the current state. */
1762 yyn
= yydefact
[yystate
];
1766 /* Do a reduction. yyn is the number of a rule to reduce with. */
1770 yyval
= yyvsp
[1-yylen
]; /* implement default value of the action */
1777 fprintf (stderr
, "Reducing via rule %d (line %d), ",
1780 /* Print the symbols being reduced, and their result. */
1781 for (i
= yyprhs
[yyn
]; yyrhs
[i
] > 0; i
++)
1782 fprintf (stderr
, "%s ", yytname
[yyrhs
[i
]]);
1783 fprintf (stderr
, " -> %s\n", yytname
[yyr1
[yyn
]]);
1791 #line 107 "./yaccsrc.y"
1792 { EndProg( yyvsp
[0] ) ; ;
1795 #line 108 "./yaccsrc.y"
1796 { EndProg( NULL
) ; ;
1799 #line 111 "./yaccsrc.y"
1800 { yyval
->next
= yyvsp
[0] ; ;
1803 #line 112 "./yaccsrc.y"
1804 { yyval
->next
= NULL
; ;
1807 #line 115 "./yaccsrc.y"
1808 { yyval
->next
= yyvsp
[0] ; ;
1811 #line 116 "./yaccsrc.y"
1812 { yyval
->next
= NULL
; ;
1815 #line 119 "./yaccsrc.y"
1816 { yyval
= yyvsp
[0] ; ;
1819 #line 120 "./yaccsrc.y"
1820 { exiterror( ERR_UNMATCHED_END
, 1 ) ; ;
1823 #line 126 "./yaccsrc.y"
1824 { yyval
= yyvsp
[0] ; ;
1827 #line 127 "./yaccsrc.y"
1831 #line 138 "./yaccsrc.y"
1835 #line 139 "./yaccsrc.y"
1839 #line 142 "./yaccsrc.y"
1843 #line 143 "./yaccsrc.y"
1847 #line 146 "./yaccsrc.y"
1848 { tmpchr
=parser_data
.tstart
; tmplno
=parser_data
.tline
; ;
1851 #line 149 "./yaccsrc.y"
1855 #line 182 "./yaccsrc.y"
1856 { yyval
= makenode(X_CALL
,0) ;
1857 yyval
->lineno
= parser_data
.tline
;
1858 yyval
->charnr
= parser_data
.tstart
; ;
1861 #line 185 "./yaccsrc.y"
1862 { yyval
= makenode(X_DO
,0) ;
1863 yyval
->lineno
= parser_data
.tline
;
1864 yyval
->charnr
= parser_data
.tstart
; ;
1867 #line 188 "./yaccsrc.y"
1868 { yyval
= makenode(X_EXIT
,0) ;
1869 yyval
->lineno
= parser_data
.tline
;
1870 yyval
->charnr
= parser_data
.tstart
; ;
1873 #line 191 "./yaccsrc.y"
1874 { yyval
= makenode(X_IF
,0) ;
1875 yyval
->lineno
= parser_data
.tline
;
1876 yyval
->charnr
= parser_data
.tstart
; ;
1879 #line 194 "./yaccsrc.y"
1880 { yyval
= makenode(X_ITERATE
,0) ;
1881 yyval
->lineno
= parser_data
.tline
;
1882 yyval
->charnr
= parser_data
.tstart
; ;
1885 #line 197 "./yaccsrc.y"
1886 { yyval
= makenode(X_LEAVE
,0) ;
1887 yyval
->lineno
= parser_data
.tline
;
1888 yyval
->charnr
= parser_data
.tstart
; ;
1891 #line 200 "./yaccsrc.y"
1892 { yyval
= makenode(X_SAY
,0) ;
1893 yyval
->lineno
= parser_data
.tline
;
1894 yyval
->charnr
= parser_data
.tstart
; ;
1897 #line 203 "./yaccsrc.y"
1898 { yyval
= makenode(X_RETURN
,0) ;
1899 yyval
->lineno
= parser_data
.tline
;
1900 yyval
->charnr
= parser_data
.tstart
; ;
1903 #line 206 "./yaccsrc.y"
1904 { yyval
= makenode(X_ADDR_N
,0) ;
1905 yyval
->lineno
= parser_data
.tline
;
1906 yyval
->charnr
= parser_data
.tstart
; ;
1909 #line 209 "./yaccsrc.y"
1910 { yyval
= makenode(X_PARSE_ARG_U
,0) ;
1911 yyval
->lineno
= parser_data
.tline
;
1912 yyval
->charnr
= parser_data
.tstart
; ;
1915 #line 212 "./yaccsrc.y"
1916 { yyval
= makenode(X_DROP
,0) ;
1917 yyval
->lineno
= parser_data
.tline
;
1918 yyval
->charnr
= parser_data
.tstart
; ;
1921 #line 215 "./yaccsrc.y"
1922 { yyval
= makenode(X_IPRET
,0) ;
1923 yyval
->lineno
= parser_data
.tline
;
1924 yyval
->charnr
= parser_data
.tstart
; ;
1927 #line 218 "./yaccsrc.y"
1928 { yyval
= makenode(X_LABEL
,0) ;
1929 yyval
->lineno
= parser_data
.tline
;
1930 yyval
->charnr
= parser_data
.tstart
; ;
1933 #line 221 "./yaccsrc.y"
1934 { yyval
= makenode(X_NULL
,0) ;
1935 yyval
->lineno
= parser_data
.tline
;
1936 yyval
->charnr
= parser_data
.tstart
; ;
1939 #line 224 "./yaccsrc.y"
1940 { yyval
= makenode(0,0) ;
1941 yyval
->lineno
= parser_data
.tline
;
1942 yyval
->charnr
= parser_data
.tstart
; ;
1945 #line 227 "./yaccsrc.y"
1946 { yyval
= makenode(X_OPTIONS
,0) ;
1947 yyval
->lineno
= parser_data
.tline
;
1948 yyval
->charnr
= parser_data
.tstart
; ;
1951 #line 230 "./yaccsrc.y"
1952 { yyval
= makenode(0,0) ;
1953 yyval
->lineno
= parser_data
.tline
;
1954 yyval
->charnr
= parser_data
.tstart
; ;
1957 #line 233 "./yaccsrc.y"
1958 { yyval
= makenode(X_PROC
,0) ;
1959 yyval
->lineno
= parser_data
.tline
;
1960 yyval
->charnr
= parser_data
.tstart
; ;
1963 #line 236 "./yaccsrc.y"
1964 { yyval
= makenode(X_PULL
,0) ;
1965 yyval
->lineno
= parser_data
.tline
;
1966 yyval
->charnr
= parser_data
.tstart
; ;
1969 #line 239 "./yaccsrc.y"
1970 { yyval
= makenode(X_PUSH
,0) ;
1971 yyval
->lineno
= parser_data
.tline
;
1972 yyval
->charnr
= parser_data
.tstart
; ;
1975 #line 242 "./yaccsrc.y"
1976 { yyval
= makenode(X_QUEUE
,0) ;
1977 yyval
->lineno
= parser_data
.tline
;
1978 yyval
->charnr
= parser_data
.tstart
; ;
1981 #line 245 "./yaccsrc.y"
1982 { yyval
= makenode(X_SELECT
,0) ;
1983 yyval
->lineno
= parser_data
.tline
;
1984 yyval
->charnr
= parser_data
.tstart
; ;
1987 #line 248 "./yaccsrc.y"
1988 { yyval
= makenode(X_SIG_LAB
,0) ;
1989 yyval
->lineno
= parser_data
.tline
;
1990 yyval
->charnr
= parser_data
.tstart
; ;
1993 #line 251 "./yaccsrc.y"
1994 { yyval
= makenode(X_WHEN
,0) ;
1995 yyval
->lineno
= parser_data
.tline
;
1996 yyval
->charnr
= parser_data
.tstart
; ;
1999 #line 254 "./yaccsrc.y"
2000 { yyval
= makenode(X_OTHERWISE
,0) ;
2001 yyval
->lineno
= parser_data
.tline
;
2002 yyval
->charnr
= parser_data
.tstart
; ;
2005 #line 257 "./yaccsrc.y"
2006 { yyval
= makenode(X_TRACE
,0) ;
2007 yyval
->lineno
= parser_data
.tline
;
2008 yyval
->charnr
= parser_data
.tstart
; ;
2011 #line 260 "./yaccsrc.y"
2012 { yyval
= makenode(X_UPPER_VAR
,0) ;
2013 yyval
->lineno
= parser_data
.tline
;
2014 yyval
->charnr
= parser_data
.tstart
; ;
2017 #line 263 "./yaccsrc.y"
2018 { yyval
= current
= yyvsp
[0] ; ;
2021 #line 267 "./yaccsrc.y"
2022 { current
->type
= X_ADDR_V
;
2023 current
->p
[0] = yyvsp
[-1] ;
2024 current
->p
[1] = yyvsp
[0] ; ;
2027 #line 270 "./yaccsrc.y"
2028 { exiterror( ERR_STRING_EXPECTED
, 1, __reginatext
) ;;
2031 #line 271 "./yaccsrc.y"
2032 { current
->type
= X_ADDR_S
; ;
2035 #line 272 "./yaccsrc.y"
2036 { exiterror( ERR_STRING_EXPECTED
, 1, __reginatext
) ;;
2039 #line 274 "./yaccsrc.y"
2040 { current
->name
= (streng
*)yyvsp
[-2] ;
2041 current
->type
= X_ADDR_N
;
2042 current
->p
[0] = yyvsp
[-1] ;
2043 current
->p
[1] = yyvsp
[0] ; ;
2046 #line 278 "./yaccsrc.y"
2047 { current
->type
= X_ADDR_V
;
2048 current
->p
[0] = yyvsp
[-3] ;
2049 current
->p
[1] = yyvsp
[0] ;
2050 current
->u
.nonansi
= 1 ; ;
2053 #line 284 "./yaccsrc.y"
2054 { yyval
= yyvsp
[-2] ;
2055 yyval
->p
[0] = yyvsp
[-1] ; ;
2058 #line 288 "./yaccsrc.y"
2059 { yyval
= yyvsp
[-3] ;
2060 yyval
->p
[0] = yyvsp
[-1] ;
2061 yyval
->name
= (streng
*) yyvsp
[-2] ; ;
2064 #line 291 "./yaccsrc.y"
2065 { yyval
= yyvsp
[-3] ;
2066 yyval
->type
= X_EX_FUNC
;
2067 yyval
->p
[0] = yyvsp
[-1] ;
2068 yyval
->name
= (streng
*) yyvsp
[-2] ; ;
2071 #line 295 "./yaccsrc.y"
2072 { yyval
= yyvsp
[-2] ;
2073 yyval
->name
= yyvsp
[-1]->name
;
2074 yyval
->p
[0] = yyvsp
[-1]->p
[0] ;
2075 RejectNode( yyvsp
[-1] ); ;
2078 #line 299 "./yaccsrc.y"
2079 { exiterror( ERR_INV_SUBKEYWORD
, 1, "ERROR FAILURE HALT NOTREADY", __reginatext
) ;;
2082 #line 301 "./yaccsrc.y"
2083 { exiterror( ERR_INV_SUBKEYWORD
, 2, "ERROR FAILURE HALT NOTREADY", __reginatext
) ;;
2086 #line 303 "./yaccsrc.y"
2087 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2090 #line 305 "./yaccsrc.y"
2091 { exiterror( ERR_STRING_EXPECTED
, 3, __reginatext
) ;;
2094 #line 308 "./yaccsrc.y"
2095 { yyval
= yyvsp
[-4] ;
2096 yyval
->type
= X_CALL_SET
;
2097 yyval
->p
[0] = yyvsp
[-3] ;
2098 yyval
->name
= (streng
*)yyvsp
[-1] ;
2099 yyval
->p
[1] = yyvsp
[-2] ; ;
2102 #line 313 "./yaccsrc.y"
2103 { yyval
= yyvsp
[-3] ;
2104 yyval
->type
= X_CALL_SET
;
2105 yyval
->p
[0] = yyvsp
[-2] ;
2106 yyval
->name
= NULL
;
2107 yyval
->p
[1] = yyvsp
[-1] ; ;
2110 #line 318 "./yaccsrc.y"
2111 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2114 #line 320 "./yaccsrc.y"
2115 { yyval
= yyvsp
[-3] ;
2116 yyval
->type
= X_CALL_SET
;
2117 yyval
->p
[0] = yyvsp
[-2] ;
2118 yyval
->p
[1] = yyvsp
[-1] ; ;
2121 #line 327 "./yaccsrc.y"
2122 { yyval
= makenode(X_COMMAND
,0) ;
2123 yyval
->charnr
= tmpchr
;
2124 yyval
->lineno
= tmplno
;
2125 yyval
->p
[0] = yyvsp
[-1] ; ;
2128 #line 333 "./yaccsrc.y"
2129 { yyval
= makenode(X_END
,0) ;
2130 yyval
->lineno
= parser_data
.tline
;
2131 yyval
->charnr
= parser_data
.tstart
; ;
2134 #line 338 "./yaccsrc.y"
2135 { yyval
= yyvsp
[-1] ;
2136 yyval
->name
= (streng
*)(yyvsp
[0]) ; ;
2139 #line 340 "./yaccsrc.y"
2140 { yyval
= yyvsp
[0] ; ;
2143 #line 341 "./yaccsrc.y"
2144 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2147 #line 345 "./yaccsrc.y"
2148 { yyval
= yyvsp
[-6] ;
2149 yyval
->p
[0] = yyvsp
[-5] ;
2150 yyval
->p
[1] = yyvsp
[-4] ;
2151 yyval
->p
[2] = yyvsp
[-2] ;
2152 yyval
->p
[3] = yyvsp
[-1] ;
2153 if ((yyval
->p
[0]==NULL
|| yyval
->p
[0]->name
==NULL
)
2154 && yyval
->p
[3]->name
)
2155 exiterror( ERR_UNMATCHED_END
, 0 ) ;
2156 if ((yyval
->p
[0])&&(yyval
->p
[0]->name
)&&
2157 (yyval
->p
[3]->name
)&&
2158 ((yyval
->p
[3]->name
->len
!= yyval
->p
[0]->name
->len
)||
2159 (strncmp(yyval
->p
[3]->name
->value
,
2160 yyval
->p
[0]->name
->value
,
2161 yyval
->p
[0]->name
->len
))))
2162 exiterror( ERR_UNMATCHED_END
, 0 ) ;
2166 #line 364 "./yaccsrc.y"
2167 { yyval
=makenode(X_REP
,4,yyvsp
[-3],yyvsp
[-2],yyvsp
[-1],yyvsp
[0]) ;
2168 yyval
->name
= (streng
*)yyvsp
[-5] ;
2169 checkdosyntax(yyval
) ; ;
2172 #line 368 "./yaccsrc.y"
2173 { yyval
=makenode(X_REP
,3,yyvsp
[-2],yyvsp
[-1],yyvsp
[0]) ;
2174 yyval
->name
= (streng
*)yyvsp
[-4] ;
2175 checkdosyntax(yyval
) ; ;
2178 #line 371 "./yaccsrc.y"
2179 { yyval
=makenode(X_REP
,2,yyvsp
[-1],yyvsp
[0]) ;
2180 yyval
->name
= (streng
*)yyvsp
[-3] ;
2181 checkdosyntax(yyval
) ; ;
2184 #line 374 "./yaccsrc.y"
2185 { yyval
=makenode(X_REP
,1,yyvsp
[0]) ;
2186 yyval
->name
= (streng
*)yyvsp
[-2] ;
2187 checkdosyntax(yyval
) ; ;
2190 #line 377 "./yaccsrc.y"
2191 { yyval
= makenode(X_REP_FOREVER
,0) ; ;
2194 #line 378 "./yaccsrc.y"
2195 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2198 #line 380 "./yaccsrc.y"
2199 { yyvsp
[0] = makenode(X_DO_EXPR
,1,yyvsp
[0]) ;
2200 yyval
= makenode(X_REP
,2,NULL
,yyvsp
[0]) ; ;
2203 #line 382 "./yaccsrc.y"
2207 #line 385 "./yaccsrc.y"
2208 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
2211 #line 386 "./yaccsrc.y"
2212 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
2215 #line 387 "./yaccsrc.y"
2216 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
2219 #line 390 "./yaccsrc.y"
2220 { SymbolDetect
|= SD_ADDRWITH
;
2221 yyval
= with
= makenode(X_ADDR_WITH
,0) ;
2222 yyval
->lineno
= parser_data
.tline
;
2223 yyval
->charnr
= parser_data
.tstart
; ;
2226 #line 394 "./yaccsrc.y"
2228 SymbolDetect
&= ~SD_ADDRWITH
; ;
2231 #line 396 "./yaccsrc.y"
2235 #line 399 "./yaccsrc.y"
2236 { yyval
= yyvsp
[-1] ; /* pro forma */ ;
2239 #line 400 "./yaccsrc.y"
2240 { exiterror( ERR_INV_SUBKEYWORD
, 5, __reginatext
) ; ;
2243 #line 401 "./yaccsrc.y"
2244 { exiterror( ERR_INV_SUBKEYWORD
, 5, __reginatext
) ; ;
2247 #line 407 "./yaccsrc.y"
2248 { exiterror( ERR_INV_SUBKEYWORD
, 5, __reginatext
) ; ;
2251 #line 443 "./yaccsrc.y"
2252 { with
->p
[0] = yyvsp
[0]; ;
2255 #line 444 "./yaccsrc.y"
2256 { exiterror( ERR_INV_SUBKEYWORD
, 6, __reginatext
) ; ;
2259 #line 447 "./yaccsrc.y"
2260 { with
->p
[1] = yyvsp
[0]; ;
2263 #line 448 "./yaccsrc.y"
2264 { exiterror( ERR_INV_SUBKEYWORD
, 7, __reginatext
) ; ;
2267 #line 451 "./yaccsrc.y"
2268 { with
->p
[2] = yyvsp
[0]; ;
2271 #line 452 "./yaccsrc.y"
2272 { exiterror( ERR_INV_SUBKEYWORD
, 14, __reginatext
) ; ;
2275 #line 455 "./yaccsrc.y"
2276 { yyval
= yyvsp
[0] ; ;
2279 #line 456 "./yaccsrc.y"
2280 { yyval
= makenode(X_ADDR_WITH
, 0) ;
2281 yyval
->lineno
= parser_data
.tline
;
2282 yyval
->charnr
= parser_data
.tstart
; ;
2285 #line 461 "./yaccsrc.y"
2286 { yyval
= yyvsp
[0] ; ;
2289 #line 462 "./yaccsrc.y"
2290 { yyval
= yyvsp
[0] ;
2291 yyval
->u
.of
.append
= 1 ; ;
2294 #line 464 "./yaccsrc.y"
2295 { exiterror( ERR_INV_SUBKEYWORD
, 8, __reginatext
) ; ;
2298 #line 465 "./yaccsrc.y"
2299 { yyval
= yyvsp
[0] ; ;
2302 #line 466 "./yaccsrc.y"
2303 { exiterror( ERR_INV_SUBKEYWORD
, 9, __reginatext
) ; ;
2306 #line 467 "./yaccsrc.y"
2307 { yyval
= makenode(X_ADDR_WITH
, 0) ;
2308 yyval
->lineno
= parser_data
.tline
;
2309 yyval
->charnr
= parser_data
.tstart
; ;
2312 #line 472 "./yaccsrc.y"
2313 { /* ANSI extension: nsimsymb is
2314 * used by the standard, but I think
2315 * there are no reasons why using
2316 * it here as a must. FGC
2318 yyval
= makenode(X_ADDR_WITH
, 0) ;
2319 yyval
->name
= (streng
*) yyvsp
[0] ;
2320 yyval
->lineno
= parser_data
.tline
;
2321 yyval
->charnr
= parser_data
.tstart
;
2322 yyval
->u
.of
.awt
= isSTREAM
;
2323 SymbolDetect
|= SD_ADDRWITH
; ;
2326 #line 483 "./yaccsrc.y"
2327 { exiterror( ERR_INVALID_OPTION
, 1, __reginatext
) ; ;
2330 #line 484 "./yaccsrc.y"
2332 streng
*tmp
=(streng
*)yyvsp
[0];
2333 if ( tmp
->value
[(tmp
->len
)-1] != '.' )
2334 exiterror( ERR_INVALID_OPTION
, 3, __reginatext
);
2335 yyval
= makenode(X_ADDR_WITH
, 0, 0) ;
2336 yyval
->name
= (streng
*) yyvsp
[0] ;
2337 yyval
->lineno
= parser_data
.tline
;
2338 yyval
->charnr
= parser_data
.tstart
;
2339 yyval
->u
.of
.awt
= isSTEM
;
2340 SymbolDetect
|= SD_ADDRWITH
; ;
2343 #line 494 "./yaccsrc.y"
2344 { exiterror( ERR_INVALID_OPTION
, 2, __reginatext
) ; ;
2347 #line 495 "./yaccsrc.y"
2349 yyval
= makenode(X_ADDR_WITH
, 0) ;
2350 yyval
->name
= (streng
*) yyvsp
[0] ;
2351 yyval
->lineno
= parser_data
.tline
;
2352 yyval
->charnr
= parser_data
.tstart
;
2353 yyval
->u
.of
.awt
= isLIFO
;
2354 SymbolDetect
|= SD_ADDRWITH
; ;
2357 #line 502 "./yaccsrc.y"
2358 { exiterror( ERR_INVALID_OPTION
, 100, __reginatext
) ; ;
2361 #line 503 "./yaccsrc.y"
2363 yyval
= makenode(X_ADDR_WITH
, 0) ;
2364 yyval
->name
= (streng
*) yyvsp
[0] ;
2365 yyval
->lineno
= parser_data
.tline
;
2366 yyval
->charnr
= parser_data
.tstart
;
2367 yyval
->u
.of
.awt
= isFIFO
;
2368 SymbolDetect
|= SD_ADDRWITH
; ;
2371 #line 510 "./yaccsrc.y"
2372 { exiterror( ERR_INVALID_OPTION
, 101, __reginatext
) ; ;
2375 #line 513 "./yaccsrc.y"
2376 { SymbolDetect
&= ~SD_ADDRWITH
; ;
2379 #line 514 "./yaccsrc.y"
2380 { yyval
= yyvsp
[0] ; ;
2383 #line 517 "./yaccsrc.y"
2384 { SymbolDetect
&= ~SD_ADDRWITH
; ;
2387 #line 518 "./yaccsrc.y"
2388 { yyval
= yyvsp
[0] ; ;
2391 #line 525 "./yaccsrc.y"
2392 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
2395 #line 528 "./yaccsrc.y"
2396 { yyval
= makenode(X_DO_TO
,1,yyvsp
[0]) ; ;
2399 #line 529 "./yaccsrc.y"
2400 { yyval
= makenode(X_DO_FOR
,1,yyvsp
[0]) ; ;
2403 #line 530 "./yaccsrc.y"
2404 { yyval
= makenode(X_DO_BY
,1,yyvsp
[0]) ; ;
2407 #line 533 "./yaccsrc.y"
2408 { yyval
= makenode(X_WHILE
,1,yyvsp
[0]) ; ;
2411 #line 534 "./yaccsrc.y"
2412 { yyval
= makenode(X_UNTIL
,1,yyvsp
[0]) ; ;
2415 #line 535 "./yaccsrc.y"
2419 #line 538 "./yaccsrc.y"
2420 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;
2423 #line 539 "./yaccsrc.y"
2424 { yyval
= yyvsp
[-2] ;
2425 yyval
->p
[0] = yyvsp
[-1] ; ;
2428 #line 543 "./yaccsrc.y"
2429 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;
2432 #line 544 "./yaccsrc.y"
2433 { yyval
= yyvsp
[-2] ;
2434 yyval
->p
[0] = yyvsp
[-1] ; ;
2437 #line 548 "./yaccsrc.y"
2438 { yyval
= yyvsp
[-2] ;
2439 yyval
->p
[0] = yyvsp
[-1] ; ;
2442 #line 553 "./yaccsrc.y"
2443 { yyval
= yyvsp
[-5] ;
2444 yyval
->p
[0] = yyvsp
[-4] ;
2445 yyval
->p
[1] = yyvsp
[0] ; ;
2448 #line 557 "./yaccsrc.y"
2449 { yyval
= yyvsp
[-8] ;
2450 yyval
->p
[0] = yyvsp
[-7] ;
2451 yyval
->p
[1] = yyvsp
[-3] ;
2452 yyval
->p
[2] = yyvsp
[0] ; ;
2455 #line 562 "./yaccsrc.y"
2456 { exiterror( ERR_INCOMPLETE_STRUCT
, 4 ) ;;
2459 #line 564 "./yaccsrc.y"
2460 { exiterror( ERR_INCOMPLETE_STRUCT
, 3 ) ;;
2463 #line 565 "./yaccsrc.y"
2464 { exiterror( ERR_INCOMPLETE_STRUCT
, 0 ) ;;
2467 #line 566 "./yaccsrc.y"
2468 { exiterror( ERR_THEN_EXPECTED
, 1, parser_data
.if_linenr
, __reginatext
) ; ;
2471 #line 569 "./yaccsrc.y"
2472 { exiterror( ERR_THEN_UNEXPECTED
, 1 ) ; ;
2475 #line 572 "./yaccsrc.y"
2476 { exiterror( ERR_THEN_UNEXPECTED
, 2 ) ; ;
2479 #line 575 "./yaccsrc.y"
2480 { yyval
= yyvsp
[-2] ;
2481 yyval
->p
[0] = yyvsp
[-1] ; ;
2484 #line 580 "./yaccsrc.y"
2485 { yyval
= yyvsp
[-2] ;
2486 yyval
->name
= (streng
*) yyvsp
[-1] ; ;
2489 #line 582 "./yaccsrc.y"
2490 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2493 #line 584 "./yaccsrc.y"
2494 { yyval
= yyvsp
[-1] ; ;
2497 #line 587 "./yaccsrc.y"
2498 { yyval
= yyvsp
[-1] ;
2499 newlabel( (const tsd_t
*)parser_data
.TSD
,
2504 #line 593 "./yaccsrc.y"
2505 { yyval
= yyvsp
[0] ;
2506 yyval
->name
= Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
2509 #line 597 "./yaccsrc.y"
2510 { yyval
= yyvsp
[-2] ;
2511 yyval
->name
= (streng
*) yyvsp
[-1] ; ;
2514 #line 599 "./yaccsrc.y"
2515 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2518 #line 601 "./yaccsrc.y"
2519 { yyval
= yyvsp
[-1] ; ;
2522 #line 604 "./yaccsrc.y"
2523 { yyval
= yyvsp
[-1] ; ;
2526 #line 605 "./yaccsrc.y"
2527 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2530 #line 609 "./yaccsrc.y"
2531 { yyval
= yyvsp
[-3] ;
2532 yyval
->type
= X_NUM_D
;
2533 yyval
->p
[0] = yyvsp
[-1] ; ;
2536 #line 612 "./yaccsrc.y"
2537 { yyval
= yyvsp
[-2]; yyval
->type
= X_NUM_DDEF
; ;
2540 #line 613 "./yaccsrc.y"
2541 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2544 #line 616 "./yaccsrc.y"
2545 { yyval
= yyvsp
[-3] ;
2546 yyval
->type
= X_NUM_F
;
2547 yyval
->p
[0] = yyvsp
[-1] ; ;
2550 #line 619 "./yaccsrc.y"
2551 { /* NOTE! This clashes ANSI! */
2552 yyval
= yyvsp
[-2] ; yyval
->type
=X_NUM_FRMDEF
;;
2555 #line 621 "./yaccsrc.y"
2556 { yyval
= yyvsp
[-4] ; yyval
->type
=X_NUM_V
;
2557 yyval
->p
[0] = yyvsp
[-1] ; ;
2560 #line 623 "./yaccsrc.y"
2561 { exiterror( ERR_INV_SUBKEYWORD
, 11, "ENGINEERING SCIENTIFIC", __reginatext
) ;;
2564 #line 625 "./yaccsrc.y"
2565 { yyval
= yyvsp
[-2]; yyval
->type
= X_NUM_FDEF
;;
2568 #line 626 "./yaccsrc.y"
2569 { yyval
= yyvsp
[-3] ;
2570 yyval
->type
= X_NUM_FUZZ
;
2571 yyval
->p
[0] = yyvsp
[-1] ; ;
2574 #line 629 "./yaccsrc.y"
2575 { exiterror( ERR_INV_SUBKEYWORD
, 15, "DIGITS FORM FUZZ", __reginatext
) ;;
2578 #line 633 "./yaccsrc.y"
2579 { yyval
= makenode(X_NUM_SCI
,0) ; ;
2582 #line 634 "./yaccsrc.y"
2583 { yyval
= makenode(X_NUM_ENG
,0) ; ;
2586 #line 637 "./yaccsrc.y"
2587 { (yyval
=yyvsp
[-2])->p
[0]=yyvsp
[-1] ; ;
2590 #line 641 "./yaccsrc.y"
2591 { yyval
= yyvsp
[-3] ;
2592 yyval
->type
= X_PARSE
;
2593 yyval
->p
[0] = yyvsp
[-2] ;
2594 yyval
->p
[1] = yyvsp
[-1] ; ;
2597 #line 646 "./yaccsrc.y"
2598 { yyval
= yyvsp
[-4] ;
2599 yyval
->type
= X_PARSE_U
;
2600 yyval
->p
[0] = yyvsp
[-2] ;
2601 yyval
->p
[1] = yyvsp
[-1] ; ;
2604 #line 650 "./yaccsrc.y"
2605 { yyval
= yyvsp
[-3] ;
2606 yyval
->type
= X_PARSE_ARG
;
2607 yyval
->p
[0] = yyvsp
[-1] ; ;
2610 #line 654 "./yaccsrc.y"
2611 { yyval
= yyvsp
[-4] ;
2612 yyval
->type
= X_PARSE_ARG_U
;
2613 yyval
->p
[0] = yyvsp
[-1] ; ;
2616 #line 657 "./yaccsrc.y"
2617 { exiterror( ERR_INV_SUBKEYWORD
, 13, "ARG EXTERNAL LINEIN PULL SOURCE UPPER VAR VALUE VERSION", __reginatext
) ;;
2620 #line 658 "./yaccsrc.y"
2621 { exiterror( ERR_INV_SUBKEYWORD
, 12, "ARG EXTERNAL LINEIN PULL SOURCE UPPER VAR VALUE VERSION", __reginatext
) ;;
2624 #line 662 "./yaccsrc.y"
2625 { yyval
= yyvsp
[-2] ; yyval
->next
= yyvsp
[0] ; ;
2628 #line 663 "./yaccsrc.y"
2629 { yyval
= yyvsp
[0] ; ;
2632 #line 666 "./yaccsrc.y"
2633 { yyval
= makenode(X_PARSE_EXT
,0) ; ;
2636 #line 667 "./yaccsrc.y"
2637 { yyval
= makenode(X_PARSE_EXT
,0) ; ;
2640 #line 668 "./yaccsrc.y"
2641 { yyval
= makenode(X_PARSE_VER
,0) ; ;
2644 #line 669 "./yaccsrc.y"
2645 { yyval
= makenode(X_PARSE_PULL
,0) ; ;
2648 #line 670 "./yaccsrc.y"
2649 { yyval
= makenode(X_PARSE_SRC
,0) ; ;
2652 #line 671 "./yaccsrc.y"
2653 { yyval
= makenode(X_PARSE_VAR
,0) ;
2654 yyval
->name
= (streng
*) yyvsp
[0] ; ;
2657 #line 673 "./yaccsrc.y"
2658 { yyval
= makenode(X_PARSE_VAL
,1,yyvsp
[-1]) ; ;
2661 #line 674 "./yaccsrc.y"
2662 { exiterror( ERR_INVALID_TEMPLATE
, 3 ) ;;
2665 #line 677 "./yaccsrc.y"
2666 { yyval
= yyvsp
[-1] ; ;
2669 #line 678 "./yaccsrc.y"
2670 { exiterror( ERR_INV_SUBKEYWORD
, 17, __reginatext
) ;;
2673 #line 680 "./yaccsrc.y"
2674 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;
2677 #line 682 "./yaccsrc.y"
2678 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;
2681 #line 684 "./yaccsrc.y"
2682 { yyval
= yyvsp
[-3] ;
2683 yyval
->p
[0] = yyvsp
[-1] ; ;
2686 #line 688 "./yaccsrc.y"
2687 { yyval
= yyvsp
[-2] ;
2688 yyval
->p
[0] = yyvsp
[-1] ; ;
2691 #line 692 "./yaccsrc.y"
2692 { yyval
= yyvsp
[-2] ;
2693 yyval
->p
[0] = yyvsp
[-1] ; ;
2696 #line 696 "./yaccsrc.y"
2697 { yyval
= yyvsp
[-2] ;
2698 yyval
->p
[0] = yyvsp
[-1] ; ;
2701 #line 700 "./yaccsrc.y"
2702 { yyval
= yyvsp
[-2] ;
2703 yyval
->p
[0] = yyvsp
[-1] ; ;
2706 #line 704 "./yaccsrc.y"
2707 { yyval
= yyvsp
[-2] ;
2708 yyval
->p
[0] = yyvsp
[-1] ; ;
2711 #line 708 "./yaccsrc.y"
2712 { exiterror( ERR_UNMATCHED_END
, 0 ) ;;
2715 #line 709 "./yaccsrc.y"
2716 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2719 #line 714 "./yaccsrc.y"
2720 { yyval
= yyvsp
[-5] ;
2721 yyval
->p
[0] = yyvsp
[-3] ;
2722 yyval
->p
[1] = yyvsp
[-2] ; ;
2725 #line 717 "./yaccsrc.y"
2726 { exiterror( ERR_WHEN_EXPECTED
, 0 ) ;;
2729 #line 719 "./yaccsrc.y"
2730 { exiterror( ERR_WHEN_EXPECTED
, 0 ) ;;
2733 #line 720 "./yaccsrc.y"
2734 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2737 #line 721 "./yaccsrc.y"
2738 { exiterror( ERR_THEN_UNEXPECTED
, 0 ) ;;
2741 #line 723 "./yaccsrc.y"
2742 { exiterror( ERR_INCOMPLETE_STRUCT
, 0 ) ;;
2745 #line 726 "./yaccsrc.y"
2746 { yyval
->next
= yyvsp
[0] ; ;
2749 #line 727 "./yaccsrc.y"
2750 { yyval
= yyvsp
[0] ; ;
2753 #line 728 "./yaccsrc.y"
2754 { exiterror( ERR_WHEN_EXPECTED
, 0 ) ;;
2757 #line 732 "./yaccsrc.y"
2758 { yyval
= yyvsp
[-5] ;
2759 yyval
->p
[0] = yyvsp
[-4] ;
2760 yyval
->p
[1] = yyvsp
[0] ; ;
2763 #line 736 "./yaccsrc.y"
2764 { exiterror( ERR_THEN_UNEXPECTED
, 0 ) ;;
2767 #line 738 "./yaccsrc.y"
2768 { exiterror( ERR_THEN_EXPECTED
, 2, parser_data
.when_linenr
, __reginatext
) ; ;
2771 #line 739 "./yaccsrc.y"
2772 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
2775 #line 746 "./yaccsrc.y"
2776 { exiterror( ERR_WHEN_UNEXPECTED
, 0 ) ;;
2779 #line 749 "./yaccsrc.y"
2782 yyval
->p
[0] = yyvsp
[0] ; ;
2785 #line 752 "./yaccsrc.y"
2786 { yyval
= makenode(X_NO_OTHERWISE
,0) ;
2787 yyval
->lineno
= parser_data
.tline
;
2788 yyval
->charnr
= parser_data
.tstart
; ;
2791 #line 758 "./yaccsrc.y"
2792 { yyval
= yyvsp
[-3] ;
2793 yyval
->type
= X_SIG_VAL
;
2794 yyval
->p
[0] = yyvsp
[-1] ; ;
2797 #line 761 "./yaccsrc.y"
2798 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2801 #line 763 "./yaccsrc.y"
2802 { yyval
= yyvsp
[-2] ;
2803 yyval
->name
= (streng
*)yyvsp
[-1] ; ;
2806 #line 765 "./yaccsrc.y"
2807 { exiterror( ERR_INV_SUBKEYWORD
, 3, "ERROR FAILURE HALT NOTREADY NOVALUE SYNTAX LOSTDIGITS", __reginatext
) ;;
2810 #line 767 "./yaccsrc.y"
2811 { exiterror( ERR_INV_SUBKEYWORD
, 4, "ERROR FAILURE HALT NOTREADY NOVALUE SYNTAX LOSTDIGITS", __reginatext
) ;;
2814 #line 769 "./yaccsrc.y"
2815 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2818 #line 771 "./yaccsrc.y"
2819 { exiterror( ERR_STRING_EXPECTED
, 3, __reginatext
) ;;
2822 #line 774 "./yaccsrc.y"
2823 { yyval
= yyvsp
[-4] ;
2824 yyval
->type
= X_SIG_SET
;
2825 yyval
->p
[0] = yyvsp
[-3] ;
2826 yyval
->name
= (streng
*)yyvsp
[-1] ;
2827 yyval
->p
[1] = yyvsp
[-2] ; ;
2830 #line 780 "./yaccsrc.y"
2831 { yyval
= yyvsp
[-3] ;
2832 yyval
->type
= X_SIG_SET
;
2833 yyval
->p
[0] = yyvsp
[-2] ;
2834 yyval
->name
= (streng
*)yyvsp
[0] ;
2835 yyval
->p
[1] = yyvsp
[-1] ; ;
2838 #line 785 "./yaccsrc.y"
2839 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2842 #line 787 "./yaccsrc.y"
2843 { yyval
= yyvsp
[-3] ;
2844 yyval
->type
= X_SIG_SET
;
2845 yyval
->p
[0] = yyvsp
[-2] ;
2846 yyval
->p
[1] = yyvsp
[-1] ; ;
2849 #line 793 "./yaccsrc.y"
2850 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
);;
2853 #line 794 "./yaccsrc.y"
2854 { exiterror( ERR_STRING_EXPECTED
, 3, __reginatext
) ;;
2857 #line 797 "./yaccsrc.y"
2858 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
2861 #line 798 "./yaccsrc.y"
2862 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
2865 #line 799 "./yaccsrc.y"
2866 { exiterror( ERR_STRING_EXPECTED
, 0 ) ;;
2869 #line 802 "./yaccsrc.y"
2870 { yyval
= makenode(X_ON
,0) ; ;
2873 #line 805 "./yaccsrc.y"
2874 { yyval
= makenode(X_OFF
,0) ; ;
2877 #line 808 "./yaccsrc.y"
2878 { yyval
= makenode(X_S_ERROR
,0) ; ;
2881 #line 809 "./yaccsrc.y"
2882 { yyval
= makenode(X_S_HALT
,0) ; ;
2885 #line 810 "./yaccsrc.y"
2886 { yyval
= makenode(X_S_NOTREADY
,0) ; ;
2889 #line 811 "./yaccsrc.y"
2890 { yyval
= makenode(X_S_FAILURE
,0) ; ;
2893 #line 814 "./yaccsrc.y"
2894 { yyval
= yyvsp
[0] ; ;
2897 #line 815 "./yaccsrc.y"
2898 { yyval
= makenode(X_S_NOVALUE
,0) ; ;
2901 #line 816 "./yaccsrc.y"
2902 { yyval
= makenode(X_S_SYNTAX
,0) ; ;
2905 #line 817 "./yaccsrc.y"
2906 { yyval
= makenode(X_S_LOSTDIGITS
,0) ; ;
2909 #line 819 "./yaccsrc.y"
2910 { yyval
= yyvsp
[-3] ;
2911 yyval
->p
[0] = yyvsp
[-1] ; ;
2914 #line 821 "./yaccsrc.y"
2915 { yyval
= yyvsp
[-2] ;
2916 yyval
->p
[0] = yyvsp
[-1] ; ;
2919 #line 823 "./yaccsrc.y"
2920 { exiterror( ERR_EXTRA_DATA
, 1, __reginatext
) ;;
2923 #line 825 "./yaccsrc.y"
2924 { yyval
= yyvsp
[-2] ;
2925 yyval
->name
= (streng
*) yyvsp
[-1] ; ;
2928 #line 829 "./yaccsrc.y"
2929 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
2932 #line 833 "./yaccsrc.y"
2933 { yyval
= yyvsp
[-2] ;
2934 yyval
->p
[1] = yyvsp
[-1] ;
2935 if ((yyvsp
[-1]) && gettypeof(yyval
->p
[1])==1)
2936 yyval
->type
= X_NASSIGN
; ;
2939 #line 839 "./yaccsrc.y"
2940 { yyval
= makenode(X_ASSIGN
,0) ;
2941 yyval
->charnr
= parser_data
.tstart
;
2942 yyval
->lineno
= parser_data
.tline
;
2943 yyval
->p
[0] = (nodeptr
)create_head( (const char *)retvalue
); ;
2946 #line 846 "./yaccsrc.y"
2947 { yyval
= yyvsp
[-1] ; ;
2950 #line 847 "./yaccsrc.y"
2951 { yyval
= makenode(X_LOG_NOT
,1,yyvsp
[0]) ; ;
2954 #line 848 "./yaccsrc.y"
2955 { exiterror( ERR_INVALID_EXPRESSION
, 1, "NOT" ) ;;
2958 #line 849 "./yaccsrc.y"
2959 { yyval
= makenode(X_PLUSS
,2,yyvsp
[-2],yyvsp
[0]) ; ;
2962 #line 850 "./yaccsrc.y"
2963 { yyval
= makenode(X_EQUAL
,2,yyvsp
[-2],yyvsp
[0]) ;
2964 transform( yyval
) ; ;
2967 #line 852 "./yaccsrc.y"
2968 { exiterror( ERR_INVALID_EXPRESSION
, 1, "=" ) ;;
2971 #line 853 "./yaccsrc.y"
2972 { yyval
= makenode(X_MINUS
,2,yyvsp
[-2],yyvsp
[0]) ; ;
2975 #line 854 "./yaccsrc.y"
2976 { yyval
= makenode(X_MULT
,2,yyvsp
[-2],yyvsp
[0]) ; ;
2979 #line 855 "./yaccsrc.y"
2980 { exiterror( ERR_INVALID_EXPRESSION
, 1, "*" ) ;;
2983 #line 856 "./yaccsrc.y"
2984 { yyval
= makenode(X_DEVIDE
,2,yyvsp
[-2],yyvsp
[0]) ; ;
2987 #line 857 "./yaccsrc.y"
2988 { exiterror( ERR_INVALID_EXPRESSION
, 1, "/" ) ;;
2991 #line 858 "./yaccsrc.y"
2992 { yyval
= makenode(X_INTDIV
,2,yyvsp
[-2],yyvsp
[0]) ; ;
2995 #line 859 "./yaccsrc.y"
2996 { exiterror( ERR_INVALID_EXPRESSION
, 1, "%" ) ;;
2999 #line 860 "./yaccsrc.y"
3000 { yyval
= makenode(X_LOG_OR
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3003 #line 861 "./yaccsrc.y"
3004 { exiterror( ERR_INVALID_EXPRESSION
, 1, "|" ) ;;
3007 #line 862 "./yaccsrc.y"
3008 { yyval
= makenode(X_LOG_AND
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3011 #line 863 "./yaccsrc.y"
3012 { exiterror( ERR_INVALID_EXPRESSION
, 1, "&" ) ;;
3015 #line 864 "./yaccsrc.y"
3016 { yyval
= makenode(X_LOG_XOR
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3019 #line 865 "./yaccsrc.y"
3020 { exiterror( ERR_INVALID_EXPRESSION
, 1, "&&" ) ;;
3023 #line 866 "./yaccsrc.y"
3024 { yyval
= makenode(X_EXP
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3027 #line 867 "./yaccsrc.y"
3028 { exiterror( ERR_INVALID_EXPRESSION
, 1, "**" ) ;;
3031 #line 868 "./yaccsrc.y"
3032 { yyval
= makenode(X_SPACE
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3035 #line 869 "./yaccsrc.y"
3036 { exiterror( ERR_INVALID_EXPRESSION
, 1, " " ) ;;
3039 #line 870 "./yaccsrc.y"
3040 { yyval
= makenode(X_GTE
,2,yyvsp
[-2],yyvsp
[0]) ;
3041 transform( yyval
) ; ;
3044 #line 872 "./yaccsrc.y"
3045 { exiterror( ERR_INVALID_EXPRESSION
, 1, ">=" ) ;;
3048 #line 873 "./yaccsrc.y"
3049 { yyval
= makenode(X_LTE
,2,yyvsp
[-2],yyvsp
[0]) ;
3050 transform( yyval
) ; ;
3053 #line 875 "./yaccsrc.y"
3054 { exiterror( ERR_INVALID_EXPRESSION
, 1, ">" ) ;;
3057 #line 876 "./yaccsrc.y"
3058 { yyval
= makenode(X_GT
,2,yyvsp
[-2],yyvsp
[0]) ;
3059 transform( yyval
) ; ;
3062 #line 878 "./yaccsrc.y"
3063 { yyval
= makenode(X_MODULUS
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3066 #line 879 "./yaccsrc.y"
3067 { exiterror( ERR_INVALID_EXPRESSION
, 1, "//" ) ;;
3070 #line 880 "./yaccsrc.y"
3071 { yyval
= makenode(X_LT
,2,yyvsp
[-2],yyvsp
[0]) ;
3072 transform( yyval
) ; ;
3075 #line 882 "./yaccsrc.y"
3076 { exiterror( ERR_INVALID_EXPRESSION
, 1, "<" ) ;;
3079 #line 883 "./yaccsrc.y"
3080 { yyval
= makenode(X_DIFF
,2,yyvsp
[-2],yyvsp
[0]) ;
3081 transform( yyval
) ; ;
3084 #line 885 "./yaccsrc.y"
3085 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
3088 #line 886 "./yaccsrc.y"
3089 { yyval
= makenode(X_S_EQUAL
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3092 #line 887 "./yaccsrc.y"
3093 { exiterror( ERR_INVALID_EXPRESSION
, 1, "==" ) ;;
3096 #line 888 "./yaccsrc.y"
3097 { yyval
= makenode(X_S_DIFF
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3100 #line 889 "./yaccsrc.y"
3101 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
3104 #line 890 "./yaccsrc.y"
3105 { yyval
= makenode(X_S_GT
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3108 #line 891 "./yaccsrc.y"
3109 { exiterror( ERR_INVALID_EXPRESSION
, 1, ">>" ) ;;
3112 #line 892 "./yaccsrc.y"
3113 { yyval
= makenode(X_S_LT
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3116 #line 893 "./yaccsrc.y"
3117 { exiterror( ERR_INVALID_EXPRESSION
, 1, "<<" ) ;;
3120 #line 894 "./yaccsrc.y"
3121 { yyval
= makenode(X_S_NGT
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3124 #line 895 "./yaccsrc.y"
3125 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
3128 #line 896 "./yaccsrc.y"
3129 { yyval
= makenode(X_S_NLT
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3132 #line 897 "./yaccsrc.y"
3133 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
3136 #line 898 "./yaccsrc.y"
3137 { yyval
= makenode(X_S_GTE
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3140 #line 899 "./yaccsrc.y"
3141 { exiterror( ERR_INVALID_EXPRESSION
, 1, ">>=" ) ;;
3144 #line 900 "./yaccsrc.y"
3145 { yyval
= makenode(X_S_LTE
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3148 #line 901 "./yaccsrc.y"
3149 { exiterror( ERR_INVALID_EXPRESSION
, 1, "<<=" ) ;;
3152 #line 902 "./yaccsrc.y"
3153 { yyval
= yyvsp
[0] ; ;
3156 #line 903 "./yaccsrc.y"
3157 { yyval
= makenode(X_STRING
,0) ;
3158 yyval
->name
= Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
3161 #line 905 "./yaccsrc.y"
3162 { yyval
= makenode(X_STRING
,0) ;
3163 yyval
->name
= Str_make_TSD(parser_data
.TSD
,retlength
) ;
3164 memcpy(yyval
->name
->value
,retvalue
,
3165 yyval
->name
->len
=retlength
); ;
3168 #line 909 "./yaccsrc.y"
3169 { yyval
= makenode(X_STRING
,0) ;
3170 yyval
->name
= Str_make_TSD(parser_data
.TSD
,retlength
) ;
3171 memcpy(yyval
->name
->value
,retvalue
,
3172 yyval
->name
->len
=retlength
); ;
3175 #line 913 "./yaccsrc.y"
3176 { yyval
= makenode(X_STRING
,0) ;
3177 yyval
->name
= Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
3180 #line 915 "./yaccsrc.y"
3181 { yyval
= yyvsp
[0] ; ;
3184 #line 916 "./yaccsrc.y"
3185 { yyval
= makenode(X_U_PLUSS
,1,yyvsp
[0]) ; ;
3188 #line 917 "./yaccsrc.y"
3189 { yyval
= makenode(X_U_MINUS
,1,yyvsp
[0]) ; ;
3192 #line 918 "./yaccsrc.y"
3193 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
3196 #line 919 "./yaccsrc.y"
3197 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
3200 #line 920 "./yaccsrc.y"
3201 { yyval
= makenode(X_CONCAT
,2,yyvsp
[-2],yyvsp
[0]) ; ;
3204 #line 921 "./yaccsrc.y"
3205 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
3208 #line 922 "./yaccsrc.y"
3209 { yyval
= makenode(X_CONCAT
,2,yyvsp
[-2],yyvsp
[-1]) ; ;
3212 #line 923 "./yaccsrc.y"
3213 { exiterror( ERR_INVALID_EXPRESSION
, 0 ) ;;
3216 #line 926 "./yaccsrc.y"
3217 { yyval
= (nodeptr
)create_head( (const char *)retvalue
) ; ;
3220 #line 930 "./yaccsrc.y"
3221 { yyval
= makenode(X_EX_FUNC
,1,yyvsp
[-1]) ;
3222 yyval
->name
= (streng
*)yyvsp
[-2] ; ;
3225 #line 932 "./yaccsrc.y"
3226 { yyval
= makenode(X_IN_FUNC
,1,yyvsp
[-1]) ;
3227 yyval
->name
= (streng
*)yyvsp
[-2] ; ;
3230 #line 936 "./yaccsrc.y"
3231 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
3234 #line 939 "./yaccsrc.y"
3235 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
3238 #line 942 "./yaccsrc.y"
3239 { yyval
=makenode(X_TPL_SOLID
,3,yyvsp
[-2],yyvsp
[-1],yyvsp
[0]);;
3242 #line 943 "./yaccsrc.y"
3243 { yyval
=makenode(X_TPL_SOLID
,1,yyvsp
[0]) ; ;
3246 #line 944 "./yaccsrc.y"
3247 { exiterror( ERR_INVALID_TEMPLATE
, 1, __reginatext
) ;;
3250 #line 948 "./yaccsrc.y"
3251 { yyval
= makenode(X_NEG_OFFS
,0) ;
3252 yyval
->name
= (streng
*) yyvsp
[0] ; ;
3255 #line 950 "./yaccsrc.y"
3256 { yyval
= makenode(X_POS_OFFS
,0) ;
3257 yyval
->name
= (streng
*) yyvsp
[0] ; ;
3260 #line 952 "./yaccsrc.y"
3261 { yyval
= makenode(X_ABS_OFFS
,0) ;
3262 yyval
->name
= (streng
*) yyvsp
[0] ; ;
3265 #line 954 "./yaccsrc.y"
3266 { yyval
= makenode(X_ABS_OFFS
,0) ;
3267 yyval
->name
= (streng
*) yyvsp
[0] ; ;
3270 #line 956 "./yaccsrc.y"
3271 { yyval
= makenode(X_TPL_VAR
,0) ;
3272 yyval
->p
[0] = yyvsp
[-1] ; ;
3275 #line 958 "./yaccsrc.y"
3276 { yyval
= makenode(X_NEG_OFFS
,0) ;
3277 yyval
->p
[0] = yyvsp
[-1] ; ;
3280 #line 960 "./yaccsrc.y"
3281 { yyval
= makenode(X_POS_OFFS
,0) ;
3282 yyval
->p
[0] = yyvsp
[-1] ; ;
3285 #line 962 "./yaccsrc.y"
3286 { yyval
= makenode(X_ABS_OFFS
,0) ;
3287 yyval
->p
[0] = yyvsp
[-1] ; ;
3290 #line 964 "./yaccsrc.y"
3291 { yyval
= makenode(X_TPL_MVE
,0) ;
3292 yyval
->name
= (streng
*) yyvsp
[0] ; ;
3295 #line 968 "./yaccsrc.y"
3296 { yyval
= (nodeptr
)Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
3299 #line 969 "./yaccsrc.y"
3300 { streng
*sptr
= Str_cre_TSD(parser_data
.TSD
,retvalue
) ;
3301 if (myisnumber(sptr
))
3303 exiterror( ERR_INVALID_INTEGER
, 4, sptr
->value
) ;
3306 exiterror( ERR_INVALID_TEMPLATE
, 0 ) ;;
3309 #line 978 "./yaccsrc.y"
3310 { yyval
= (nodeptr
) Str_cre_TSD(parser_data
.TSD
,retvalue
) ; ;
3313 #line 979 "./yaccsrc.y"
3314 { streng
*sptr
= Str_make_TSD(parser_data
.TSD
,retlength
) ;
3315 memcpy(sptr
->value
,retvalue
,
3316 sptr
->len
=retlength
) ;
3317 yyval
= (nodeptr
) sptr
; ;
3320 #line 983 "./yaccsrc.y"
3321 { streng
*sptr
= Str_make_TSD(parser_data
.TSD
,retlength
) ;
3322 memcpy(sptr
->value
,retvalue
,
3323 sptr
->len
=retlength
) ;
3324 yyval
= (nodeptr
) sptr
; ;
3327 #line 989 "./yaccsrc.y"
3328 { yyval
= makenode(X_TPL_POINT
,1,yyvsp
[0]) ; ;
3331 #line 990 "./yaccsrc.y"
3332 { yyval
= makenode(X_TPL_SYMBOL
,1,yyvsp
[0]) ;
3333 yyval
->p
[1] = yyvsp
[-1] ; ;
3336 #line 992 "./yaccsrc.y"
3340 #line 995 "./yaccsrc.y"
3341 { yyval
= makenode(X_EXPRLIST
,2,yyvsp
[-2],yyvsp
[0]) ;
3342 checkconst( yyval
) ; ;
3345 #line 998 "./yaccsrc.y"
3346 { yyval
= makenode(X_EXPRLIST
,1,yyvsp
[0]) ;
3347 checkconst( yyval
) ; ;
3350 #line 1002 "./yaccsrc.y"
3351 { yyval
= yyvsp
[0] ; ;
3354 #line 1003 "./yaccsrc.y"
3358 #line 1006 "./yaccsrc.y"
3359 { yyval
= makenode(X_SIM_SYMBOL
,1,yyvsp
[0]) ;
3360 yyval
->name
= (streng
*) yyvsp
[-1] ; ;
3363 #line 1008 "./yaccsrc.y"
3364 { yyval
= makenode(X_SIM_SYMBOL
,0) ;
3365 yyval
->name
= (streng
*) yyvsp
[0] ; ;
3368 #line 1010 "./yaccsrc.y"
3369 { yyval
= makenode(X_IND_SYMBOL
,1,yyvsp
[0]) ;
3370 yyval
->name
= (streng
*) yyvsp
[-2] ; ;
3373 #line 1012 "./yaccsrc.y"
3374 { yyval
= makenode(X_IND_SYMBOL
,0) ;
3375 yyval
->name
= (streng
*) yyvsp
[-1] ; ;
3378 #line 1016 "./yaccsrc.y"
3379 { yyval
= (treenode
*) Str_cre_TSD(parser_data
.TSD
,retvalue
);;
3382 #line 1019 "./yaccsrc.y"
3383 { yyval
= (treenode
*) Str_cre_TSD(parser_data
.TSD
,retvalue
);;
3386 #line 1020 "./yaccsrc.y"
3387 { exiterror( ERR_SYMBOL_EXPECTED
, 1, __reginatext
) ;;
3390 /* the action file gets copied in in place of this dollarsign */
3391 #line 543 "/usr/lib/bison.simple"
3402 short *ssp1
= yyss
- 1;
3403 fprintf (stderr
, "state stack now");
3404 while (ssp1
!= yyssp
)
3405 fprintf (stderr
, " %d", *++ssp1
);
3406 fprintf (stderr
, "\n");
3416 yylsp
->first_line
= yylloc
.first_line
;
3417 yylsp
->first_column
= yylloc
.first_column
;
3418 yylsp
->last_line
= (yylsp
-1)->last_line
;
3419 yylsp
->last_column
= (yylsp
-1)->last_column
;
3424 yylsp
->last_line
= (yylsp
+yylen
-1)->last_line
;
3425 yylsp
->last_column
= (yylsp
+yylen
-1)->last_column
;
3429 /* Now "shift" the result of the reduction.
3430 Determine what state that goes to,
3431 based on the state we popped back to
3432 and the rule number reduced by. */
3436 yystate
= yypgoto
[yyn
- YYNTBASE
] + *yyssp
;
3437 if (yystate
>= 0 && yystate
<= YYLAST
&& yycheck
[yystate
] == *yyssp
)
3438 yystate
= yytable
[yystate
];
3440 yystate
= yydefgoto
[yyn
- YYNTBASE
];
3444 yyerrlab
: /* here on detecting error */
3447 /* If not already recovering from an error, report this error. */
3451 #ifdef YYERROR_VERBOSE
3452 yyn
= yypact
[yystate
];
3454 if (yyn
> YYFLAG
&& yyn
< YYLAST
)
3461 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
3462 for (x
= (yyn
< 0 ? -yyn
: 0);
3463 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3464 if (yycheck
[x
+ yyn
] == x
)
3465 size
+= strlen(yytname
[x
]) + 15, count
++;
3466 msg
= (char *) malloc(size
+ 15);
3469 strcpy(msg
, "parse error");
3474 for (x
= (yyn
< 0 ? -yyn
: 0);
3475 x
< (sizeof(yytname
) / sizeof(char *)); x
++)
3476 if (yycheck
[x
+ yyn
] == x
)
3478 strcat(msg
, count
== 0 ? ", expecting `" : " or `");
3479 strcat(msg
, yytname
[x
]);
3488 yyerror ("parse error; also virtual memory exceeded");
3491 #endif /* YYERROR_VERBOSE */
3492 yyerror("parse error");
3496 yyerrlab1
: /* here on error raised explicitly by an action */
3498 if (yyerrstatus
== 3)
3500 /* if just tried and failed to reuse lookahead token after an error, discard it. */
3502 /* return failure if at end of input */
3503 if (yychar
== YYEOF
)
3508 fprintf(stderr
, "Discarding token %d (%s).\n", yychar
, yytname
[yychar1
]);
3514 /* Else will try to reuse lookahead token
3515 after shifting the error token. */
3517 yyerrstatus
= 3; /* Each real token shifted decrements this */
3521 yyerrdefault
: /* current state does not do anything special for the error token. */
3524 /* This is wrong; only states that explicitly want error tokens
3525 should shift them. */
3526 yyn
= yydefact
[yystate
]; /* If its default is to accept any token, ok. Otherwise pop it.*/
3527 if (yyn
) goto yydefault
;
3530 yyerrpop
: /* pop the current state because it cannot handle the error token */
3532 if (yyssp
== yyss
) YYABORT
;
3542 short *ssp1
= yyss
- 1;
3543 fprintf (stderr
, "Error: state stack now");
3544 while (ssp1
!= yyssp
)
3545 fprintf (stderr
, " %d", *++ssp1
);
3546 fprintf (stderr
, "\n");
3552 yyn
= yypact
[yystate
];
3557 if (yyn
< 0 || yyn
> YYLAST
|| yycheck
[yyn
] != YYTERROR
)
3576 fprintf(stderr
, "Shifting error token, ");
3588 /* YYACCEPT comes here. */
3600 /* YYABORT comes here. */
3611 #line 1023 "./yaccsrc.y"
3615 static void checkin( nodeptr ptr
)
3618 tsd_t
*TSD
= parser_data
.TSD
;
3622 narray
= MallocTSD( sizeof(nodeptr
)* 100 ) ;
3629 new = MallocTSD( sizeof(nodeptr
)*narmax
*3 ) ;
3630 memcpy( new, narray
, sizeof(nodeptr
)*narmax
) ;
3636 narray
[narptr
++] = ptr
;
3640 static nodeptr
makenode( int type
, int numb
, ... )
3646 assert(numb
<= sizeof(thisleave
->p
)/sizeof(thisleave
->p
[0]));
3648 printf("makenode: making new node, type: %d\n",type
) ;
3649 #endif /* REXXDEBUG */
3651 thisleave
= FreshNode( ) ;
3652 /* thisleave is initialized to zero except for nodeindex */
3653 va_start( argptr
, numb
) ;
3654 thisleave
->type
= type
;
3655 thisleave
->lineno
= -1 ;
3656 thisleave
->charnr
= -1 ;
3657 for (i
=0;i
<numb
;i
++)
3658 thisleave
->p
[i
]=va_arg(argptr
, nodeptr
) ;
3662 return( thisleave
) ;
3665 static char *getdokeyword( int type
)
3670 case X_DO_TO
: ptr
="TO";break;
3671 case X_DO_BY
: ptr
="BY";break;
3672 case X_DO_FOR
: ptr
="FOR";break;
3673 default: ptr
="";break;
3678 static void checkdosyntax( cnodeptr
this )
3680 if ((this->p
[1]!=NULL
)&&(this->p
[2]!=NULL
))
3682 if ((this->p
[1]->type
)==(this->p
[2]->type
))
3684 exiterror( ERR_INVALID_DO_SYNTAX
, 1, getdokeyword(this->p
[1]->type
) ) ;
3687 if ((this->p
[2]!=NULL
)&&(this->p
[3]!=NULL
))
3689 if ((this->p
[2]->type
)==(this->p
[3]->type
))
3691 exiterror( ERR_INVALID_DO_SYNTAX
, 1, getdokeyword(this->p
[2]->type
) ) ;
3694 if ((this->p
[1]!=NULL
)&&(this->p
[3]!=NULL
))
3696 if ((this->p
[1]->type
)==(this->p
[3]->type
))
3698 exiterror( ERR_INVALID_DO_SYNTAX
, 1, getdokeyword(this->p
[1]->type
) ) ;
3705 void newlabel( const tsd_t
*TSD
, internal_parser_type
*ipt
, nodeptr
this )
3711 new = MallocTSD(sizeof(labelbox
)) ;
3715 if (ipt
->first_label
== NULL
)
3717 ipt
->first_label
= new ;
3718 ipt
->last_label
= new ; /* must be NULL, too */
3722 ipt
->last_label
->next
= new ;
3723 ipt
->last_label
= new ;
3728 static nodeptr
create_tail( const char *name
)
3734 tsd_t
*TSD
= parser_data
.TSD
;
3738 node
= makenode( X_CTAIL_SYMBOL
, 0 ) ;
3739 node
->name
= Str_make_TSD( parser_data
.TSD
, 0) ;
3744 constant
= isdigit(*cptr
) || *cptr
=='.' || (!*cptr
) ;
3745 node
= makenode( (constant
) ? X_CTAIL_SYMBOL
: X_VTAIL_SYMBOL
, 0 ) ;
3747 for (;*cptr
&& *cptr
!='.'; cptr
++) ;
3748 node
->name
= Str_ncre_TSD( parser_data
.TSD
, name
, cptr
-name
) ;
3752 node
->p
[0] = create_tail( ++cptr
) ;
3753 if (constant
&& node
->p
[0]->type
==X_CTAIL_SYMBOL
)
3755 streng
*first
, *second
;
3758 first
= node
->name
;
3759 second
= node
->p
[0]->name
;
3761 node
->p
[0]->name
= NULL
;
3762 tname
= Str_makeTSD( first
->len
+ second
->len
+ 1) ;
3763 memcpy( tname
->value
, first
->value
, first
->len
) ;
3764 tname
->value
[first
->len
] = '.' ;
3765 memcpy( tname
->value
+first
->len
+1, second
->value
, second
->len
) ;
3766 tname
->len
= first
->len
+ second
->len
+ 1 ;
3768 Free_stringTSD( first
) ;
3769 Free_stringTSD( second
) ;
3770 node
->name
= tname
;
3772 node
->p
[0] = tptr
->p
[0] ;
3780 static nodeptr
create_head( const char *name
)
3785 for (cptr
=name
; *cptr
&& *cptr
!='.'; cptr
++) ;
3786 node
= makenode( X_SIM_SYMBOL
, 0 ) ;
3787 node
->name
= Str_ncre_TSD( parser_data
.TSD
, name
, cptr
-name
+(*cptr
=='.')) ;
3792 node
->p
[0] = create_tail( cptr
) ;
3796 node
->type
= (node
->p
[0]) ? X_HEAD_SYMBOL
: X_STEM_SYMBOL
;
3802 #define IS_UNKNOWN 0
3803 #define IS_A_NUMBER 1
3804 #define IS_NO_NUMBER 2
3805 #define IS_IRREG_NUMBER 10
3807 static int gettypeof( nodeptr
this )
3809 tsd_t
*TSD
= parser_data
.TSD
;
3839 return IS_A_NUMBER
;
3852 return IS_A_NUMBER
;
3854 this->u
.number
= is_a_descr( TSD
, this->name
) ;
3857 streng
*stmp
= str_norm( TSD
, this->u
.number
, NULL
) ;
3858 if (Str_cmp(stmp
,this->name
))
3860 Free_stringTSD( stmp
) ;
3863 Free_stringTSD( stmp
) ;
3865 return (this->u
.number
) ? IS_A_NUMBER
: IS_NO_NUMBER
;
3873 static void transform( nodeptr
this )
3875 int left
, rght
, type
;
3877 left
= gettypeof( this->p
[0] ) ;
3878 rght
= gettypeof( this->p
[1] ) ;
3881 if (left
==1 && rght
==1)
3884 this->type
= X_NEQUAL
;
3885 else if (type
==X_DIFF
)
3886 this->type
= X_NDIFF
;
3887 else if (type
==X_GTE
)
3888 this->type
= X_NGTE
;
3889 else if (type
==X_GT
)
3890 this->type
= X_NGT
;
3891 else if (type
==X_LTE
)
3892 this->type
= X_NLTE
;
3893 else if (type
==X_LT
)
3894 this->type
= X_NLT
;
3896 else if (left
==2 || rght
==2)
3899 this->type
= X_SEQUAL
;
3900 else if (type
==X_DIFF
)
3901 this->type
= X_SDIFF
;
3902 else if (type
==X_GTE
)
3903 this->type
= X_SGTE
;
3904 else if (type
==X_GT
)
3905 this->type
= X_SGT
;
3906 else if (type
==X_LTE
)
3907 this->type
= X_SLTE
;
3908 else if (type
==X_LT
)
3909 this->type
= X_SLT
;
3913 type
= this->p
[0]->type
;
3914 if (left
==1 && (type
==X_STRING
|| type
==X_CON_SYMBOL
))
3915 this->u
.flags
.lnum
= 1 ;
3917 this->u
.flags
.lsvar
= 1 ;
3919 this->u
.flags
.lcvar
= 1 ;
3921 type
= this->p
[1]->type
;
3922 if (rght
==1 && (type
==X_STRING
|| type
==X_CON_SYMBOL
))
3923 this->u
.flags
.rnum
= 1 ;
3925 this->u
.flags
.rsvar
= 1 ;
3927 this->u
.flags
.rcvar
= 1 ;
3932 static int is_const( cnodeptr
this )
3945 return is_const( this->p
[0] ) ;
3950 /* case X_DEVIDE: Bug 20000807-41821 */
3973 return is_const( this->p
[0] ) && is_const( this->p
[1] ) ;
3979 static void checkconst( nodeptr
this )
3981 tsd_t
*TSD
= parser_data
.TSD
;
3983 assert( this->type
== X_EXPRLIST
) ;
3984 if (is_const(this->p
[0]))
3987 this->u
.strng
= evaluate( TSD
, this->p
[0], NULL
) ;
3989 this->u
.strng
= NULL
;
3991 this->type
= X_CEXPRLIST
;