bringing SDL 1.2.14 from vendor into the main branch
[AROS-Contrib.git] / regina / yaccsrc.c
blob378c19d893a7d59a63de8e38bf4d24450c1e7b11
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
14 #define ADDRESS 257
15 #define ARG 258
16 #define CALL 259
17 #define DO 260
18 #define TO 261
19 #define BY 262
20 #define FOR 263
21 #define WHILE 264
22 #define UNTIL 265
23 #define EXIT 266
24 #define IF 267
25 #define THEN 268
26 #define ELSE 269
27 #define ITERATE 270
28 #define INTERPRET 271
29 #define LEAVE 272
30 #define NOP 273
31 #define NUMERIC 274
32 #define PARSE 275
33 #define EXTERNAL 276
34 #define SOURCE 277
35 #define VAR 278
36 #define VALUE 279
37 #define WITH 280
38 #define PROCEDURE 281
39 #define EXPOSE 282
40 #define PULL 283
41 #define PUSH 284
42 #define QUEUE 285
43 #define SAY 286
44 #define RETURN 287
45 #define SELECT 288
46 #define WHEN 289
47 #define DROP 290
48 #define OTHERWISE 291
49 #define SIGNAL 292
50 #define ON 293
51 #define OFF 294
52 #define ERROR 295
53 #define SYNTAX 296
54 #define HALT 297
55 #define NOVALUE 298
56 #define TRACE 299
57 #define END 300
58 #define UPPER 301
59 #define ASSIGNMENTVARIABLE 302
60 #define STATSEP 303
61 #define FOREVER 304
62 #define DIGITS 305
63 #define FORM 306
64 #define FUZZ 307
65 #define SCIENTIFIC 308
66 #define ENGINEERING 309
67 #define NOT 310
68 #define CONCATENATE 311
69 #define MODULUS 312
70 #define GTE 313
71 #define GT 314
72 #define LTE 315
73 #define LT 316
74 #define DIFFERENT 317
75 #define EQUALEQUAL 318
76 #define NOTEQUALEQUAL 319
77 #define OFFSET 320
78 #define SPACE 321
79 #define EXP 322
80 #define XOR 323
81 #define PLACEHOLDER 324
82 #define NOTREADY 325
83 #define CONSYMBOL 326
84 #define SIMSYMBOL 327
85 #define EXFUNCNAME 328
86 #define INFUNCNAME 329
87 #define LABEL 330
88 #define DOVARIABLE 331
89 #define HEXSTRING 332
90 #define STRING 333
91 #define VERSION 334
92 #define LINEIN 335
93 #define WHATEVER 336
94 #define NAME 337
95 #define FAILURE 338
96 #define BINSTRING 339
97 #define OPTIONS 340
98 #define ENVIRONMENT 341
99 #define LOSTDIGITS 342
100 #define GTGT 343
101 #define LTLT 344
102 #define NOTGTGT 345
103 #define NOTLTLT 346
104 #define GTGTE 347
105 #define LTLTE 348
106 #define INPUT 349
107 #define OUTPUT 350
108 #define NORMAL 351
109 #define APPEND 352
110 #define REPLACE 353
111 #define STREAM 354
112 #define STEM 355
113 #define LIFO 356
114 #define FIFO 357
115 #define CCAT 358
116 #define UMINUS 359
117 #define UPLUSS 360
118 #define SYNTOP 361
120 #line 1 "./yaccsrc.y"
123 #ifndef lint
124 static char *RCSid = "$Id$";
125 #endif
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.
146 #include <time.h>
147 #include "rexx.h"
149 #if defined(HAVE_MALLOC_H)
150 # include <malloc.h>
151 #endif
153 #if defined(HAVE_ALLOCA_H)
154 # include <alloca.h>
155 #endif
157 #include <ctype.h>
158 #include <stdarg.h>
159 #include <stdio.h>
160 #include <string.h>
161 #include <assert.h>
163 #if defined(_MSC_VER) || defined(MAC)
164 # define __STDC__ 1 /* Hack to allow const since it is not defined */
165 #endif
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 ;
175 #endif
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"
187 #ifdef NDEBUG
188 # define YYDEBUG 0
189 #else
190 # define YYDEBUG 1
191 #endif
192 #ifndef YYSTYPE
193 #define YYSTYPE int
194 #endif
195 #include <stdio.h>
197 #ifndef __cplusplus
198 #ifndef __STDC__
199 #define const
200 #endif
201 #endif
205 #define YYFINAL 653
206 #define YYFLAG -32768
207 #define YYNTBASE 119
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,
251 #if YYDEBUG != 0
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
429 #endif
431 #if YYDEBUG != 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
476 #endif
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
514 #endif
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,
672 0, 0, 0
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,
760 405, 412,-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
783 #define YYLAST 2279
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)
1257 any later version.
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
1280 #ifdef alloca
1281 #define YYSTACK_USE_ALLOCA
1282 #else /* alloca not defined */
1283 #ifdef __GNUC__
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
1289 #include <alloca.h>
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. */
1297 #include <malloc.h>
1298 #endif
1299 #else /* not MSDOS, or __TURBOC__ */
1300 #if defined(_AIX)
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> */
1304 #pragma alloca
1305 #define YYSTACK_USE_ALLOCA
1306 #else /* not MSDOS, or __TURBOC__, or _AIX */
1307 #if 0
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
1312 #endif /* __hpux */
1313 #endif
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
1323 #else
1324 #define YYSTACK_ALLOC malloc
1325 #endif
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)
1333 #define YYEMPTY -2
1334 #define YYEOF 0
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) \
1345 do \
1346 if (yychar == YYEMPTY && yylen == 1) \
1347 { yychar = (token), yylval = (value); \
1348 yychar1 = YYTRANSLATE (yychar); \
1349 YYPOPSTACK; \
1350 goto yybackup; \
1352 else \
1353 { yyerror ("syntax error: cannot back up"); YYERROR; } \
1354 while (0)
1356 #define YYTERROR 1
1357 #define YYERRCODE 256
1359 #ifndef YYPURE
1360 #define YYLEX yylex()
1361 #endif
1363 #ifdef YYPURE
1364 #ifdef YYLSP_NEEDED
1365 #ifdef YYLEX_PARAM
1366 #define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
1367 #else
1368 #define YYLEX yylex(&yylval, &yylloc)
1369 #endif
1370 #else /* not YYLSP_NEEDED */
1371 #ifdef YYLEX_PARAM
1372 #define YYLEX yylex(&yylval, YYLEX_PARAM)
1373 #else
1374 #define YYLEX yylex(&yylval)
1375 #endif
1376 #endif /* not YYLSP_NEEDED */
1377 #endif
1379 /* If nonreentrant, generate the variables here */
1381 #ifndef YYPURE
1383 int yychar; /* the lookahead symbol */
1384 YYSTYPE yylval; /* the semantic value of the */
1385 /* lookahead symbol */
1387 #ifdef YYLSP_NEEDED
1388 YYLTYPE yylloc; /* location data for the lookahead */
1389 /* symbol */
1390 #endif
1392 int yynerrs; /* number of parse errors so far */
1393 #endif /* not YYPURE */
1395 #if YYDEBUG != 0
1396 int yydebug; /* nonzero means print parse trace */
1397 /* Since this is uninitialized, it does not stop multiple parsers
1398 from coexisting. */
1399 #endif
1401 /* YYINITDEPTH indicates the initial size of the parser's stacks */
1403 #ifndef YYINITDEPTH
1404 #define YYINITDEPTH 200
1405 #endif
1407 /* YYMAXDEPTH is the maximum size the stacks can grow to
1408 (effective only if the built-in stack extension method is used). */
1410 #if YYMAXDEPTH == 0
1411 #undef YYMAXDEPTH
1412 #endif
1414 #ifndef YYMAXDEPTH
1415 #define YYMAXDEPTH 10000
1416 #endif
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++ */
1426 #ifndef __cplusplus
1428 /* This is the most reliable way to avoid incompatibilities
1429 in available built-in functions on various systems. */
1430 static void
1431 __yy_memcpy (to, from, count)
1432 char *to;
1433 char *from;
1434 unsigned int count;
1436 register char *f = from;
1437 register char *t = to;
1438 register int i = count;
1440 while (i-- > 0)
1441 *t++ = *f++;
1444 #else /* __cplusplus */
1446 /* This is the most reliable way to avoid incompatibilities
1447 in available built-in functions on various systems. */
1448 static void
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;
1455 while (i-- > 0)
1456 *t++ = *f++;
1459 #endif
1460 #endif
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
1471 #ifdef __cplusplus
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. */
1484 #ifdef __GNUC__
1485 #ifdef YYPARSE_PARAM
1486 int yyparse (void *);
1487 #else
1488 int yyparse (void);
1489 #endif
1490 #endif
1493 yyparse(YYPARSE_PARAM_ARG)
1494 YYPARSE_PARAM_DECL
1496 register int yystate;
1497 register int yyn;
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 */
1509 #ifdef YYLSP_NEEDED
1510 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
1511 YYLTYPE *yyls = yylsa;
1512 YYLTYPE *yylsp;
1514 #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
1515 #else
1516 #define YYPOPSTACK (yyvsp--, yyssp--)
1517 #endif
1519 int yystacksize = YYINITDEPTH;
1520 int yyfree_stacks = 0;
1522 #ifdef YYPURE
1523 int yychar;
1524 YYSTYPE yylval;
1525 int yynerrs;
1526 #ifdef YYLSP_NEEDED
1527 YYLTYPE yylloc;
1528 #endif
1529 #endif
1531 YYSTYPE yyval; /* the variable used to return */
1532 /* semantic values from the action */
1533 /* routines */
1535 int yylen;
1537 #if YYDEBUG != 0
1538 if (yydebug)
1539 fprintf(stderr, "Starting parse\n");
1540 #endif
1542 yystate = 0;
1543 yyerrstatus = 0;
1544 yynerrs = 0;
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. */
1552 yyssp = yyss - 1;
1553 yyvsp = yyvs;
1554 #ifdef YYLSP_NEEDED
1555 yylsp = yyls;
1556 #endif
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. */
1561 yynewstate:
1563 *++yyssp = yystate;
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;
1571 #ifdef YYLSP_NEEDED
1572 YYLTYPE *yyls1 = yyls;
1573 #endif
1575 /* Get the current used size of the three stacks, in elements. */
1576 int size = yyssp - yyss + 1;
1578 #ifdef yyoverflow
1579 /* Each stack pointer address is followed by the size of
1580 the data in use in that stack, in bytes. */
1581 #ifdef YYLSP_NEEDED
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),
1588 &yystacksize);
1589 #else
1590 yyoverflow("parser stack overflow",
1591 &yyss1, size * sizeof (*yyssp),
1592 &yyvs1, size * sizeof (*yyvsp),
1593 &yystacksize);
1594 #endif
1596 yyss = yyss1; yyvs = yyvs1;
1597 #ifdef YYLSP_NEEDED
1598 yyls = yyls1;
1599 #endif
1600 #else /* no yyoverflow */
1601 /* Extend the stack our own way. */
1602 if (yystacksize >= YYMAXDEPTH)
1604 yyerror("parser stack overflow");
1605 if (yyfree_stacks)
1607 free (yyss);
1608 free (yyvs);
1609 #ifdef YYLSP_NEEDED
1610 free (yyls);
1611 #endif
1613 return 2;
1615 yystacksize *= 2;
1616 if (yystacksize > YYMAXDEPTH)
1617 yystacksize = YYMAXDEPTH;
1618 #ifndef YYSTACK_USE_ALLOCA
1619 yyfree_stacks = 1;
1620 #endif
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));
1627 #ifdef YYLSP_NEEDED
1628 yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
1629 __yy_memcpy ((char *)yyls, (char *)yyls1,
1630 size * (unsigned int) sizeof (*yylsp));
1631 #endif
1632 #endif /* no yyoverflow */
1634 yyssp = yyss + size - 1;
1635 yyvsp = yyvs + size - 1;
1636 #ifdef YYLSP_NEEDED
1637 yylsp = yyls + size - 1;
1638 #endif
1640 #if YYDEBUG != 0
1641 if (yydebug)
1642 fprintf(stderr, "Stack size increased to %d\n", yystacksize);
1643 #endif
1645 if (yyssp >= yyss + yystacksize - 1)
1646 YYABORT;
1649 #if YYDEBUG != 0
1650 if (yydebug)
1651 fprintf(stderr, "Entering state %d\n", yystate);
1652 #endif
1654 goto yybackup;
1655 yybackup:
1657 /* Do appropriate processing given the current state. */
1658 /* Read a lookahead token if we need one and don't already have one. */
1659 /* yyresume: */
1661 /* First try to decide what to do without reference to lookahead token. */
1663 yyn = yypact[yystate];
1664 if (yyn == YYFLAG)
1665 goto yydefault;
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)
1674 #if YYDEBUG != 0
1675 if (yydebug)
1676 fprintf(stderr, "Reading a token: ");
1677 #endif
1678 yychar = YYLEX;
1681 /* Convert token to internal form (in yychar1) for indexing tables with */
1683 if (yychar <= 0) /* This means end of input. */
1685 yychar1 = 0;
1686 yychar = YYEOF; /* Don't call YYLEX any more */
1688 #if YYDEBUG != 0
1689 if (yydebug)
1690 fprintf(stderr, "Now at end of input.\n");
1691 #endif
1693 else
1695 yychar1 = YYTRANSLATE(yychar);
1697 #if YYDEBUG != 0
1698 if (yydebug)
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. */
1703 #ifdef YYPRINT
1704 YYPRINT (stderr, yychar, yylval);
1705 #endif
1706 fprintf (stderr, ")\n");
1708 #endif
1711 yyn += yychar1;
1712 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1713 goto yydefault;
1715 yyn = yytable[yyn];
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. */
1724 if (yyn < 0)
1726 if (yyn == YYFLAG)
1727 goto yyerrlab;
1728 yyn = -yyn;
1729 goto yyreduce;
1731 else if (yyn == 0)
1732 goto yyerrlab;
1734 if (yyn == YYFINAL)
1735 YYACCEPT;
1737 /* Shift the lookahead token. */
1739 #if YYDEBUG != 0
1740 if (yydebug)
1741 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
1742 #endif
1744 /* Discard the token being shifted unless it is eof. */
1745 if (yychar != YYEOF)
1746 yychar = YYEMPTY;
1748 *++yyvsp = yylval;
1749 #ifdef YYLSP_NEEDED
1750 *++yylsp = yylloc;
1751 #endif
1753 /* count tokens shifted since error; after three, turn off error status. */
1754 if (yyerrstatus) yyerrstatus--;
1756 yystate = yyn;
1757 goto yynewstate;
1759 /* Do the default action for the current state. */
1760 yydefault:
1762 yyn = yydefact[yystate];
1763 if (yyn == 0)
1764 goto yyerrlab;
1766 /* Do a reduction. yyn is the number of a rule to reduce with. */
1767 yyreduce:
1768 yylen = yyr2[yyn];
1769 if (yylen > 0)
1770 yyval = yyvsp[1-yylen]; /* implement default value of the action */
1772 #if YYDEBUG != 0
1773 if (yydebug)
1775 int i;
1777 fprintf (stderr, "Reducing via rule %d (line %d), ",
1778 yyn, yyrline[yyn]);
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]]);
1785 #endif
1788 switch (yyn) {
1790 case 1:
1791 #line 107 "./yaccsrc.y"
1792 { EndProg( yyvsp[0] ) ; ;
1793 break;}
1794 case 2:
1795 #line 108 "./yaccsrc.y"
1796 { EndProg( NULL ) ; ;
1797 break;}
1798 case 3:
1799 #line 111 "./yaccsrc.y"
1800 { yyval->next = yyvsp[0] ; ;
1801 break;}
1802 case 4:
1803 #line 112 "./yaccsrc.y"
1804 { yyval->next = NULL ; ;
1805 break;}
1806 case 5:
1807 #line 115 "./yaccsrc.y"
1808 { yyval->next = yyvsp[0] ; ;
1809 break;}
1810 case 6:
1811 #line 116 "./yaccsrc.y"
1812 { yyval->next = NULL ; ;
1813 break;}
1814 case 7:
1815 #line 119 "./yaccsrc.y"
1816 { yyval = yyvsp[0] ; ;
1817 break;}
1818 case 8:
1819 #line 120 "./yaccsrc.y"
1820 { exiterror( ERR_UNMATCHED_END, 1 ) ; ;
1821 break;}
1822 case 10:
1823 #line 126 "./yaccsrc.y"
1824 { yyval = yyvsp[0] ; ;
1825 break;}
1826 case 11:
1827 #line 127 "./yaccsrc.y"
1828 { yyval = NULL ; ;
1829 break;}
1830 case 16:
1831 #line 138 "./yaccsrc.y"
1832 { yyval=yyvsp[0]; ;
1833 break;}
1834 case 17:
1835 #line 139 "./yaccsrc.y"
1836 { yyval=yyvsp[0]; ;
1837 break;}
1838 case 18:
1839 #line 142 "./yaccsrc.y"
1840 { yyval=yyvsp[0]; ;
1841 break;}
1842 case 19:
1843 #line 143 "./yaccsrc.y"
1844 { yyval=yyvsp[0]; ;
1845 break;}
1846 case 20:
1847 #line 146 "./yaccsrc.y"
1848 { tmpchr=parser_data.tstart; tmplno=parser_data.tline; ;
1849 break;}
1850 case 21:
1851 #line 149 "./yaccsrc.y"
1852 { yyval=yyvsp[0]; ;
1853 break;}
1854 case 50:
1855 #line 182 "./yaccsrc.y"
1856 { yyval = makenode(X_CALL,0) ;
1857 yyval->lineno = parser_data.tline ;
1858 yyval->charnr = parser_data.tstart ; ;
1859 break;}
1860 case 51:
1861 #line 185 "./yaccsrc.y"
1862 { yyval = makenode(X_DO,0) ;
1863 yyval->lineno = parser_data.tline ;
1864 yyval->charnr = parser_data.tstart ; ;
1865 break;}
1866 case 52:
1867 #line 188 "./yaccsrc.y"
1868 { yyval = makenode(X_EXIT,0) ;
1869 yyval->lineno = parser_data.tline ;
1870 yyval->charnr = parser_data.tstart ; ;
1871 break;}
1872 case 53:
1873 #line 191 "./yaccsrc.y"
1874 { yyval = makenode(X_IF,0) ;
1875 yyval->lineno = parser_data.tline ;
1876 yyval->charnr = parser_data.tstart ; ;
1877 break;}
1878 case 54:
1879 #line 194 "./yaccsrc.y"
1880 { yyval = makenode(X_ITERATE,0) ;
1881 yyval->lineno = parser_data.tline ;
1882 yyval->charnr = parser_data.tstart ; ;
1883 break;}
1884 case 55:
1885 #line 197 "./yaccsrc.y"
1886 { yyval = makenode(X_LEAVE,0) ;
1887 yyval->lineno = parser_data.tline ;
1888 yyval->charnr = parser_data.tstart ; ;
1889 break;}
1890 case 56:
1891 #line 200 "./yaccsrc.y"
1892 { yyval = makenode(X_SAY,0) ;
1893 yyval->lineno = parser_data.tline ;
1894 yyval->charnr = parser_data.tstart ; ;
1895 break;}
1896 case 57:
1897 #line 203 "./yaccsrc.y"
1898 { yyval = makenode(X_RETURN,0) ;
1899 yyval->lineno = parser_data.tline ;
1900 yyval->charnr = parser_data.tstart ; ;
1901 break;}
1902 case 58:
1903 #line 206 "./yaccsrc.y"
1904 { yyval = makenode(X_ADDR_N,0) ;
1905 yyval->lineno = parser_data.tline ;
1906 yyval->charnr = parser_data.tstart ; ;
1907 break;}
1908 case 59:
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 ; ;
1913 break;}
1914 case 60:
1915 #line 212 "./yaccsrc.y"
1916 { yyval = makenode(X_DROP,0) ;
1917 yyval->lineno = parser_data.tline ;
1918 yyval->charnr = parser_data.tstart ; ;
1919 break;}
1920 case 61:
1921 #line 215 "./yaccsrc.y"
1922 { yyval = makenode(X_IPRET,0) ;
1923 yyval->lineno = parser_data.tline ;
1924 yyval->charnr = parser_data.tstart ; ;
1925 break;}
1926 case 62:
1927 #line 218 "./yaccsrc.y"
1928 { yyval = makenode(X_LABEL,0) ;
1929 yyval->lineno = parser_data.tline ;
1930 yyval->charnr = parser_data.tstart ; ;
1931 break;}
1932 case 63:
1933 #line 221 "./yaccsrc.y"
1934 { yyval = makenode(X_NULL,0) ;
1935 yyval->lineno = parser_data.tline ;
1936 yyval->charnr = parser_data.tstart ; ;
1937 break;}
1938 case 64:
1939 #line 224 "./yaccsrc.y"
1940 { yyval = makenode(0,0) ;
1941 yyval->lineno = parser_data.tline ;
1942 yyval->charnr = parser_data.tstart ; ;
1943 break;}
1944 case 65:
1945 #line 227 "./yaccsrc.y"
1946 { yyval = makenode(X_OPTIONS,0) ;
1947 yyval->lineno = parser_data.tline ;
1948 yyval->charnr = parser_data.tstart ; ;
1949 break;}
1950 case 66:
1951 #line 230 "./yaccsrc.y"
1952 { yyval = makenode(0,0) ;
1953 yyval->lineno = parser_data.tline ;
1954 yyval->charnr = parser_data.tstart ; ;
1955 break;}
1956 case 67:
1957 #line 233 "./yaccsrc.y"
1958 { yyval = makenode(X_PROC,0) ;
1959 yyval->lineno = parser_data.tline ;
1960 yyval->charnr = parser_data.tstart ; ;
1961 break;}
1962 case 68:
1963 #line 236 "./yaccsrc.y"
1964 { yyval = makenode(X_PULL,0) ;
1965 yyval->lineno = parser_data.tline ;
1966 yyval->charnr = parser_data.tstart ; ;
1967 break;}
1968 case 69:
1969 #line 239 "./yaccsrc.y"
1970 { yyval = makenode(X_PUSH,0) ;
1971 yyval->lineno = parser_data.tline ;
1972 yyval->charnr = parser_data.tstart ; ;
1973 break;}
1974 case 70:
1975 #line 242 "./yaccsrc.y"
1976 { yyval = makenode(X_QUEUE,0) ;
1977 yyval->lineno = parser_data.tline ;
1978 yyval->charnr = parser_data.tstart ; ;
1979 break;}
1980 case 71:
1981 #line 245 "./yaccsrc.y"
1982 { yyval = makenode(X_SELECT,0) ;
1983 yyval->lineno = parser_data.tline ;
1984 yyval->charnr = parser_data.tstart ; ;
1985 break;}
1986 case 72:
1987 #line 248 "./yaccsrc.y"
1988 { yyval = makenode(X_SIG_LAB,0) ;
1989 yyval->lineno = parser_data.tline ;
1990 yyval->charnr = parser_data.tstart ; ;
1991 break;}
1992 case 73:
1993 #line 251 "./yaccsrc.y"
1994 { yyval = makenode(X_WHEN,0) ;
1995 yyval->lineno = parser_data.tline ;
1996 yyval->charnr = parser_data.tstart ; ;
1997 break;}
1998 case 74:
1999 #line 254 "./yaccsrc.y"
2000 { yyval = makenode(X_OTHERWISE,0) ;
2001 yyval->lineno = parser_data.tline ;
2002 yyval->charnr = parser_data.tstart ; ;
2003 break;}
2004 case 75:
2005 #line 257 "./yaccsrc.y"
2006 { yyval = makenode(X_TRACE,0) ;
2007 yyval->lineno = parser_data.tline ;
2008 yyval->charnr = parser_data.tstart ; ;
2009 break;}
2010 case 76:
2011 #line 260 "./yaccsrc.y"
2012 { yyval = makenode(X_UPPER_VAR,0) ;
2013 yyval->lineno = parser_data.tline ;
2014 yyval->charnr = parser_data.tstart ; ;
2015 break;}
2016 case 77:
2017 #line 263 "./yaccsrc.y"
2018 { yyval = current = yyvsp[0] ; ;
2019 break;}
2020 case 79:
2021 #line 267 "./yaccsrc.y"
2022 { current->type = X_ADDR_V ;
2023 current->p[0] = yyvsp[-1] ;
2024 current->p[1] = yyvsp[0] ; ;
2025 break;}
2026 case 80:
2027 #line 270 "./yaccsrc.y"
2028 { exiterror( ERR_STRING_EXPECTED, 1, __reginatext ) ;;
2029 break;}
2030 case 81:
2031 #line 271 "./yaccsrc.y"
2032 { current->type = X_ADDR_S ; ;
2033 break;}
2034 case 82:
2035 #line 272 "./yaccsrc.y"
2036 { exiterror( ERR_STRING_EXPECTED, 1, __reginatext ) ;;
2037 break;}
2038 case 84:
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] ; ;
2044 break;}
2045 case 85:
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 ; ;
2051 break;}
2052 case 86:
2053 #line 284 "./yaccsrc.y"
2054 { yyval = yyvsp[-2] ;
2055 yyval->p[0] = yyvsp[-1] ; ;
2056 break;}
2057 case 87:
2058 #line 288 "./yaccsrc.y"
2059 { yyval = yyvsp[-3] ;
2060 yyval->p[0] = yyvsp[-1] ;
2061 yyval->name = (streng *) yyvsp[-2] ; ;
2062 break;}
2063 case 88:
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] ; ;
2069 break;}
2070 case 89:
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] ); ;
2076 break;}
2077 case 90:
2078 #line 299 "./yaccsrc.y"
2079 { exiterror( ERR_INV_SUBKEYWORD, 1, "ERROR FAILURE HALT NOTREADY", __reginatext ) ;;
2080 break;}
2081 case 92:
2082 #line 301 "./yaccsrc.y"
2083 { exiterror( ERR_INV_SUBKEYWORD, 2, "ERROR FAILURE HALT NOTREADY", __reginatext ) ;;
2084 break;}
2085 case 94:
2086 #line 303 "./yaccsrc.y"
2087 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2088 break;}
2089 case 96:
2090 #line 305 "./yaccsrc.y"
2091 { exiterror( ERR_STRING_EXPECTED, 3, __reginatext ) ;;
2092 break;}
2093 case 98:
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] ; ;
2100 break;}
2101 case 99:
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] ; ;
2108 break;}
2109 case 100:
2110 #line 318 "./yaccsrc.y"
2111 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2112 break;}
2113 case 102:
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] ; ;
2119 break;}
2120 case 103:
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] ; ;
2126 break;}
2127 case 104:
2128 #line 333 "./yaccsrc.y"
2129 { yyval = makenode(X_END,0) ;
2130 yyval->lineno = parser_data.tline ;
2131 yyval->charnr = parser_data.tstart ; ;
2132 break;}
2133 case 105:
2134 #line 338 "./yaccsrc.y"
2135 { yyval = yyvsp[-1] ;
2136 yyval->name = (streng*)(yyvsp[0]) ; ;
2137 break;}
2138 case 106:
2139 #line 340 "./yaccsrc.y"
2140 { yyval = yyvsp[0] ; ;
2141 break;}
2142 case 107:
2143 #line 341 "./yaccsrc.y"
2144 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2145 break;}
2146 case 108:
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 ) ;
2164 break;}
2165 case 109:
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) ; ;
2170 break;}
2171 case 110:
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) ; ;
2176 break;}
2177 case 111:
2178 #line 371 "./yaccsrc.y"
2179 { yyval =makenode(X_REP,2,yyvsp[-1],yyvsp[0]) ;
2180 yyval->name = (streng *)yyvsp[-3] ;
2181 checkdosyntax(yyval) ; ;
2182 break;}
2183 case 112:
2184 #line 374 "./yaccsrc.y"
2185 { yyval =makenode(X_REP,1,yyvsp[0]) ;
2186 yyval->name = (streng *)yyvsp[-2] ;
2187 checkdosyntax(yyval) ; ;
2188 break;}
2189 case 113:
2190 #line 377 "./yaccsrc.y"
2191 { yyval = makenode(X_REP_FOREVER,0) ; ;
2192 break;}
2193 case 114:
2194 #line 378 "./yaccsrc.y"
2195 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2196 break;}
2197 case 116:
2198 #line 380 "./yaccsrc.y"
2199 { yyvsp[0] = makenode(X_DO_EXPR,1,yyvsp[0]) ;
2200 yyval = makenode(X_REP,2,NULL,yyvsp[0]) ; ;
2201 break;}
2202 case 117:
2203 #line 382 "./yaccsrc.y"
2204 { yyval = NULL ; ;
2205 break;}
2206 case 118:
2207 #line 385 "./yaccsrc.y"
2208 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
2209 break;}
2210 case 119:
2211 #line 386 "./yaccsrc.y"
2212 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
2213 break;}
2214 case 120:
2215 #line 387 "./yaccsrc.y"
2216 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
2217 break;}
2218 case 121:
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 ; ;
2224 break;}
2225 case 122:
2226 #line 394 "./yaccsrc.y"
2227 { with = NULL ;
2228 SymbolDetect &= ~SD_ADDRWITH ; ;
2229 break;}
2230 case 123:
2231 #line 396 "./yaccsrc.y"
2232 { yyval = NULL ; ;
2233 break;}
2234 case 124:
2235 #line 399 "./yaccsrc.y"
2236 { yyval = yyvsp[-1] ; /* pro forma */ ;
2237 break;}
2238 case 125:
2239 #line 400 "./yaccsrc.y"
2240 { exiterror( ERR_INV_SUBKEYWORD, 5, __reginatext ) ; ;
2241 break;}
2242 case 126:
2243 #line 401 "./yaccsrc.y"
2244 { exiterror( ERR_INV_SUBKEYWORD, 5, __reginatext ) ; ;
2245 break;}
2246 case 130:
2247 #line 407 "./yaccsrc.y"
2248 { exiterror( ERR_INV_SUBKEYWORD, 5, __reginatext ) ; ;
2249 break;}
2250 case 149:
2251 #line 443 "./yaccsrc.y"
2252 { with->p[0] = yyvsp[0]; ;
2253 break;}
2254 case 150:
2255 #line 444 "./yaccsrc.y"
2256 { exiterror( ERR_INV_SUBKEYWORD, 6, __reginatext ) ; ;
2257 break;}
2258 case 151:
2259 #line 447 "./yaccsrc.y"
2260 { with->p[1] = yyvsp[0]; ;
2261 break;}
2262 case 152:
2263 #line 448 "./yaccsrc.y"
2264 { exiterror( ERR_INV_SUBKEYWORD, 7, __reginatext ) ; ;
2265 break;}
2266 case 153:
2267 #line 451 "./yaccsrc.y"
2268 { with->p[2] = yyvsp[0]; ;
2269 break;}
2270 case 154:
2271 #line 452 "./yaccsrc.y"
2272 { exiterror( ERR_INV_SUBKEYWORD, 14, __reginatext ) ; ;
2273 break;}
2274 case 155:
2275 #line 455 "./yaccsrc.y"
2276 { yyval = yyvsp[0] ; ;
2277 break;}
2278 case 156:
2279 #line 456 "./yaccsrc.y"
2280 { yyval = makenode(X_ADDR_WITH, 0) ;
2281 yyval->lineno = parser_data.tline ;
2282 yyval->charnr = parser_data.tstart ; ;
2283 break;}
2284 case 157:
2285 #line 461 "./yaccsrc.y"
2286 { yyval = yyvsp[0] ; ;
2287 break;}
2288 case 158:
2289 #line 462 "./yaccsrc.y"
2290 { yyval = yyvsp[0] ;
2291 yyval->u.of.append = 1 ; ;
2292 break;}
2293 case 159:
2294 #line 464 "./yaccsrc.y"
2295 { exiterror( ERR_INV_SUBKEYWORD, 8, __reginatext ) ; ;
2296 break;}
2297 case 160:
2298 #line 465 "./yaccsrc.y"
2299 { yyval = yyvsp[0] ; ;
2300 break;}
2301 case 161:
2302 #line 466 "./yaccsrc.y"
2303 { exiterror( ERR_INV_SUBKEYWORD, 9, __reginatext ) ; ;
2304 break;}
2305 case 162:
2306 #line 467 "./yaccsrc.y"
2307 { yyval = makenode(X_ADDR_WITH, 0) ;
2308 yyval->lineno = parser_data.tline ;
2309 yyval->charnr = parser_data.tstart ; ;
2310 break;}
2311 case 163:
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 ; ;
2324 break;}
2325 case 164:
2326 #line 483 "./yaccsrc.y"
2327 { exiterror( ERR_INVALID_OPTION, 1, __reginatext ) ; ;
2328 break;}
2329 case 165:
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 ; ;
2341 break;}
2342 case 166:
2343 #line 494 "./yaccsrc.y"
2344 { exiterror( ERR_INVALID_OPTION, 2, __reginatext ) ; ;
2345 break;}
2346 case 167:
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 ; ;
2355 break;}
2356 case 168:
2357 #line 502 "./yaccsrc.y"
2358 { exiterror( ERR_INVALID_OPTION, 100, __reginatext ) ; ;
2359 break;}
2360 case 169:
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 ; ;
2369 break;}
2370 case 170:
2371 #line 510 "./yaccsrc.y"
2372 { exiterror( ERR_INVALID_OPTION, 101, __reginatext ) ; ;
2373 break;}
2374 case 171:
2375 #line 513 "./yaccsrc.y"
2376 { SymbolDetect &= ~SD_ADDRWITH ; ;
2377 break;}
2378 case 172:
2379 #line 514 "./yaccsrc.y"
2380 { yyval = yyvsp[0] ; ;
2381 break;}
2382 case 173:
2383 #line 517 "./yaccsrc.y"
2384 { SymbolDetect &= ~SD_ADDRWITH ; ;
2385 break;}
2386 case 174:
2387 #line 518 "./yaccsrc.y"
2388 { yyval = yyvsp[0] ; ;
2389 break;}
2390 case 177:
2391 #line 525 "./yaccsrc.y"
2392 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
2393 break;}
2394 case 178:
2395 #line 528 "./yaccsrc.y"
2396 { yyval = makenode(X_DO_TO,1,yyvsp[0]) ; ;
2397 break;}
2398 case 179:
2399 #line 529 "./yaccsrc.y"
2400 { yyval = makenode(X_DO_FOR,1,yyvsp[0]) ; ;
2401 break;}
2402 case 180:
2403 #line 530 "./yaccsrc.y"
2404 { yyval = makenode(X_DO_BY,1,yyvsp[0]) ; ;
2405 break;}
2406 case 181:
2407 #line 533 "./yaccsrc.y"
2408 { yyval = makenode(X_WHILE,1,yyvsp[0]) ; ;
2409 break;}
2410 case 182:
2411 #line 534 "./yaccsrc.y"
2412 { yyval = makenode(X_UNTIL,1,yyvsp[0]) ; ;
2413 break;}
2414 case 183:
2415 #line 535 "./yaccsrc.y"
2416 { yyval = NULL ; ;
2417 break;}
2418 case 184:
2419 #line 538 "./yaccsrc.y"
2420 { exiterror( ERR_SYMBOL_EXPECTED, 1, __reginatext ) ;;
2421 break;}
2422 case 185:
2423 #line 539 "./yaccsrc.y"
2424 { yyval = yyvsp[-2] ;
2425 yyval->p[0] = yyvsp[-1] ; ;
2426 break;}
2427 case 186:
2428 #line 543 "./yaccsrc.y"
2429 { exiterror( ERR_SYMBOL_EXPECTED, 1, __reginatext ) ;;
2430 break;}
2431 case 187:
2432 #line 544 "./yaccsrc.y"
2433 { yyval = yyvsp[-2] ;
2434 yyval->p[0] = yyvsp[-1] ; ;
2435 break;}
2436 case 188:
2437 #line 548 "./yaccsrc.y"
2438 { yyval = yyvsp[-2] ;
2439 yyval->p[0] = yyvsp[-1] ; ;
2440 break;}
2441 case 189:
2442 #line 553 "./yaccsrc.y"
2443 { yyval = yyvsp[-5] ;
2444 yyval->p[0] = yyvsp[-4] ;
2445 yyval->p[1] = yyvsp[0] ; ;
2446 break;}
2447 case 190:
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] ; ;
2453 break;}
2454 case 191:
2455 #line 562 "./yaccsrc.y"
2456 { exiterror( ERR_INCOMPLETE_STRUCT, 4 ) ;;
2457 break;}
2458 case 192:
2459 #line 564 "./yaccsrc.y"
2460 { exiterror( ERR_INCOMPLETE_STRUCT, 3 ) ;;
2461 break;}
2462 case 193:
2463 #line 565 "./yaccsrc.y"
2464 { exiterror( ERR_INCOMPLETE_STRUCT, 0 ) ;;
2465 break;}
2466 case 194:
2467 #line 566 "./yaccsrc.y"
2468 { exiterror( ERR_THEN_EXPECTED, 1, parser_data.if_linenr, __reginatext ) ; ;
2469 break;}
2470 case 195:
2471 #line 569 "./yaccsrc.y"
2472 { exiterror( ERR_THEN_UNEXPECTED, 1 ) ; ;
2473 break;}
2474 case 196:
2475 #line 572 "./yaccsrc.y"
2476 { exiterror( ERR_THEN_UNEXPECTED, 2 ) ; ;
2477 break;}
2478 case 197:
2479 #line 575 "./yaccsrc.y"
2480 { yyval = yyvsp[-2] ;
2481 yyval->p[0] = yyvsp[-1] ; ;
2482 break;}
2483 case 198:
2484 #line 580 "./yaccsrc.y"
2485 { yyval = yyvsp[-2] ;
2486 yyval->name = (streng *) yyvsp[-1] ; ;
2487 break;}
2488 case 199:
2489 #line 582 "./yaccsrc.y"
2490 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2491 break;}
2492 case 201:
2493 #line 584 "./yaccsrc.y"
2494 { yyval = yyvsp[-1] ; ;
2495 break;}
2496 case 202:
2497 #line 587 "./yaccsrc.y"
2498 { yyval = yyvsp[-1] ;
2499 newlabel( (const tsd_t *)parser_data.TSD,
2500 &parser_data,
2501 yyvsp[-1] ) ; ;
2502 break;}
2503 case 203:
2504 #line 593 "./yaccsrc.y"
2505 { yyval = yyvsp[0] ;
2506 yyval->name = Str_cre_TSD(parser_data.TSD,retvalue) ; ;
2507 break;}
2508 case 204:
2509 #line 597 "./yaccsrc.y"
2510 { yyval = yyvsp[-2] ;
2511 yyval->name = (streng *) yyvsp[-1] ; ;
2512 break;}
2513 case 205:
2514 #line 599 "./yaccsrc.y"
2515 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2516 break;}
2517 case 207:
2518 #line 601 "./yaccsrc.y"
2519 { yyval = yyvsp[-1] ; ;
2520 break;}
2521 case 208:
2522 #line 604 "./yaccsrc.y"
2523 { yyval = yyvsp[-1] ; ;
2524 break;}
2525 case 209:
2526 #line 605 "./yaccsrc.y"
2527 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2528 break;}
2529 case 211:
2530 #line 609 "./yaccsrc.y"
2531 { yyval = yyvsp[-3] ;
2532 yyval->type = X_NUM_D ;
2533 yyval->p[0] = yyvsp[-1] ; ;
2534 break;}
2535 case 212:
2536 #line 612 "./yaccsrc.y"
2537 { yyval = yyvsp[-2]; yyval->type = X_NUM_DDEF ; ;
2538 break;}
2539 case 213:
2540 #line 613 "./yaccsrc.y"
2541 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2542 break;}
2543 case 215:
2544 #line 616 "./yaccsrc.y"
2545 { yyval = yyvsp[-3] ;
2546 yyval->type = X_NUM_F ;
2547 yyval->p[0] = yyvsp[-1] ; ;
2548 break;}
2549 case 216:
2550 #line 619 "./yaccsrc.y"
2551 { /* NOTE! This clashes ANSI! */
2552 yyval = yyvsp[-2] ; yyval->type=X_NUM_FRMDEF ;;
2553 break;}
2554 case 217:
2555 #line 621 "./yaccsrc.y"
2556 { yyval = yyvsp[-4] ; yyval->type=X_NUM_V ;
2557 yyval->p[0] = yyvsp[-1] ; ;
2558 break;}
2559 case 218:
2560 #line 623 "./yaccsrc.y"
2561 { exiterror( ERR_INV_SUBKEYWORD, 11, "ENGINEERING SCIENTIFIC", __reginatext ) ;;
2562 break;}
2563 case 220:
2564 #line 625 "./yaccsrc.y"
2565 { yyval = yyvsp[-2]; yyval->type = X_NUM_FDEF ;;
2566 break;}
2567 case 221:
2568 #line 626 "./yaccsrc.y"
2569 { yyval = yyvsp[-3] ;
2570 yyval->type = X_NUM_FUZZ ;
2571 yyval->p[0] = yyvsp[-1] ; ;
2572 break;}
2573 case 222:
2574 #line 629 "./yaccsrc.y"
2575 { exiterror( ERR_INV_SUBKEYWORD, 15, "DIGITS FORM FUZZ", __reginatext ) ;;
2576 break;}
2577 case 224:
2578 #line 633 "./yaccsrc.y"
2579 { yyval = makenode(X_NUM_SCI,0) ; ;
2580 break;}
2581 case 225:
2582 #line 634 "./yaccsrc.y"
2583 { yyval = makenode(X_NUM_ENG,0) ; ;
2584 break;}
2585 case 226:
2586 #line 637 "./yaccsrc.y"
2587 { (yyval=yyvsp[-2])->p[0]=yyvsp[-1] ; ;
2588 break;}
2589 case 227:
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] ; ;
2595 break;}
2596 case 228:
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] ; ;
2602 break;}
2603 case 229:
2604 #line 650 "./yaccsrc.y"
2605 { yyval = yyvsp[-3] ;
2606 yyval->type = X_PARSE_ARG ;
2607 yyval->p[0] = yyvsp[-1] ; ;
2608 break;}
2609 case 230:
2610 #line 654 "./yaccsrc.y"
2611 { yyval = yyvsp[-4] ;
2612 yyval->type = X_PARSE_ARG_U ;
2613 yyval->p[0] = yyvsp[-1] ; ;
2614 break;}
2615 case 231:
2616 #line 657 "./yaccsrc.y"
2617 { exiterror( ERR_INV_SUBKEYWORD, 13, "ARG EXTERNAL LINEIN PULL SOURCE UPPER VAR VALUE VERSION", __reginatext ) ;;
2618 break;}
2619 case 232:
2620 #line 658 "./yaccsrc.y"
2621 { exiterror( ERR_INV_SUBKEYWORD, 12, "ARG EXTERNAL LINEIN PULL SOURCE UPPER VAR VALUE VERSION", __reginatext ) ;;
2622 break;}
2623 case 234:
2624 #line 662 "./yaccsrc.y"
2625 { yyval = yyvsp[-2] ; yyval->next = yyvsp[0] ; ;
2626 break;}
2627 case 235:
2628 #line 663 "./yaccsrc.y"
2629 { yyval = yyvsp[0] ; ;
2630 break;}
2631 case 236:
2632 #line 666 "./yaccsrc.y"
2633 { yyval = makenode(X_PARSE_EXT,0) ; ;
2634 break;}
2635 case 237:
2636 #line 667 "./yaccsrc.y"
2637 { yyval = makenode(X_PARSE_EXT,0) ; ;
2638 break;}
2639 case 238:
2640 #line 668 "./yaccsrc.y"
2641 { yyval = makenode(X_PARSE_VER,0) ; ;
2642 break;}
2643 case 239:
2644 #line 669 "./yaccsrc.y"
2645 { yyval = makenode(X_PARSE_PULL,0) ; ;
2646 break;}
2647 case 240:
2648 #line 670 "./yaccsrc.y"
2649 { yyval = makenode(X_PARSE_SRC,0) ; ;
2650 break;}
2651 case 241:
2652 #line 671 "./yaccsrc.y"
2653 { yyval = makenode(X_PARSE_VAR,0) ;
2654 yyval->name = (streng *) yyvsp[0] ; ;
2655 break;}
2656 case 242:
2657 #line 673 "./yaccsrc.y"
2658 { yyval = makenode(X_PARSE_VAL,1,yyvsp[-1]) ; ;
2659 break;}
2660 case 243:
2661 #line 674 "./yaccsrc.y"
2662 { exiterror( ERR_INVALID_TEMPLATE, 3 ) ;;
2663 break;}
2664 case 244:
2665 #line 677 "./yaccsrc.y"
2666 { yyval = yyvsp[-1] ; ;
2667 break;}
2668 case 245:
2669 #line 678 "./yaccsrc.y"
2670 { exiterror( ERR_INV_SUBKEYWORD, 17, __reginatext ) ;;
2671 break;}
2672 case 247:
2673 #line 680 "./yaccsrc.y"
2674 { exiterror( ERR_SYMBOL_EXPECTED, 1, __reginatext ) ;;
2675 break;}
2676 case 249:
2677 #line 682 "./yaccsrc.y"
2678 { exiterror( ERR_SYMBOL_EXPECTED, 1, __reginatext ) ;;
2679 break;}
2680 case 251:
2681 #line 684 "./yaccsrc.y"
2682 { yyval = yyvsp[-3] ;
2683 yyval->p[0] = yyvsp[-1] ; ;
2684 break;}
2685 case 252:
2686 #line 688 "./yaccsrc.y"
2687 { yyval = yyvsp[-2] ;
2688 yyval->p[0] = yyvsp[-1] ; ;
2689 break;}
2690 case 253:
2691 #line 692 "./yaccsrc.y"
2692 { yyval = yyvsp[-2] ;
2693 yyval->p[0] = yyvsp[-1] ; ;
2694 break;}
2695 case 254:
2696 #line 696 "./yaccsrc.y"
2697 { yyval = yyvsp[-2] ;
2698 yyval->p[0] = yyvsp[-1] ; ;
2699 break;}
2700 case 255:
2701 #line 700 "./yaccsrc.y"
2702 { yyval = yyvsp[-2] ;
2703 yyval->p[0] = yyvsp[-1] ; ;
2704 break;}
2705 case 256:
2706 #line 704 "./yaccsrc.y"
2707 { yyval = yyvsp[-2] ;
2708 yyval->p[0] = yyvsp[-1] ; ;
2709 break;}
2710 case 257:
2711 #line 708 "./yaccsrc.y"
2712 { exiterror( ERR_UNMATCHED_END, 0 ) ;;
2713 break;}
2714 case 258:
2715 #line 709 "./yaccsrc.y"
2716 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2717 break;}
2718 case 260:
2719 #line 714 "./yaccsrc.y"
2720 { yyval = yyvsp[-5] ;
2721 yyval->p[0] = yyvsp[-3] ;
2722 yyval->p[1] = yyvsp[-2] ; ;
2723 break;}
2724 case 261:
2725 #line 717 "./yaccsrc.y"
2726 { exiterror( ERR_WHEN_EXPECTED, 0 ) ;;
2727 break;}
2728 case 262:
2729 #line 719 "./yaccsrc.y"
2730 { exiterror( ERR_WHEN_EXPECTED, 0 ) ;;
2731 break;}
2732 case 263:
2733 #line 720 "./yaccsrc.y"
2734 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2735 break;}
2736 case 264:
2737 #line 721 "./yaccsrc.y"
2738 { exiterror( ERR_THEN_UNEXPECTED, 0 ) ;;
2739 break;}
2740 case 265:
2741 #line 723 "./yaccsrc.y"
2742 { exiterror( ERR_INCOMPLETE_STRUCT, 0 ) ;;
2743 break;}
2744 case 266:
2745 #line 726 "./yaccsrc.y"
2746 { yyval->next = yyvsp[0] ; ;
2747 break;}
2748 case 267:
2749 #line 727 "./yaccsrc.y"
2750 { yyval = yyvsp[0] ; ;
2751 break;}
2752 case 268:
2753 #line 728 "./yaccsrc.y"
2754 { exiterror( ERR_WHEN_EXPECTED, 0 ) ;;
2755 break;}
2756 case 269:
2757 #line 732 "./yaccsrc.y"
2758 { yyval = yyvsp[-5] ;
2759 yyval->p[0] = yyvsp[-4] ;
2760 yyval->p[1] = yyvsp[0] ; ;
2761 break;}
2762 case 270:
2763 #line 736 "./yaccsrc.y"
2764 { exiterror( ERR_THEN_UNEXPECTED, 0 ) ;;
2765 break;}
2766 case 271:
2767 #line 738 "./yaccsrc.y"
2768 { exiterror( ERR_THEN_EXPECTED, 2, parser_data.when_linenr, __reginatext ) ; ;
2769 break;}
2770 case 272:
2771 #line 739 "./yaccsrc.y"
2772 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
2773 break;}
2774 case 275:
2775 #line 746 "./yaccsrc.y"
2776 { exiterror( ERR_WHEN_UNEXPECTED, 0 ) ;;
2777 break;}
2778 case 276:
2779 #line 749 "./yaccsrc.y"
2781 yyval = yyvsp[-2] ;
2782 yyval->p[0] = yyvsp[0] ; ;
2783 break;}
2784 case 277:
2785 #line 752 "./yaccsrc.y"
2786 { yyval = makenode(X_NO_OTHERWISE,0) ;
2787 yyval->lineno = parser_data.tline ;
2788 yyval->charnr = parser_data.tstart ; ;
2789 break;}
2790 case 278:
2791 #line 758 "./yaccsrc.y"
2792 { yyval = yyvsp[-3] ;
2793 yyval->type = X_SIG_VAL ;
2794 yyval->p[0] = yyvsp[-1] ; ;
2795 break;}
2796 case 279:
2797 #line 761 "./yaccsrc.y"
2798 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2799 break;}
2800 case 281:
2801 #line 763 "./yaccsrc.y"
2802 { yyval = yyvsp[-2] ;
2803 yyval->name = (streng *)yyvsp[-1] ; ;
2804 break;}
2805 case 282:
2806 #line 765 "./yaccsrc.y"
2807 { exiterror( ERR_INV_SUBKEYWORD, 3, "ERROR FAILURE HALT NOTREADY NOVALUE SYNTAX LOSTDIGITS", __reginatext ) ;;
2808 break;}
2809 case 284:
2810 #line 767 "./yaccsrc.y"
2811 { exiterror( ERR_INV_SUBKEYWORD, 4, "ERROR FAILURE HALT NOTREADY NOVALUE SYNTAX LOSTDIGITS", __reginatext ) ;;
2812 break;}
2813 case 286:
2814 #line 769 "./yaccsrc.y"
2815 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2816 break;}
2817 case 288:
2818 #line 771 "./yaccsrc.y"
2819 { exiterror( ERR_STRING_EXPECTED, 3, __reginatext ) ;;
2820 break;}
2821 case 290:
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] ; ;
2828 break;}
2829 case 291:
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] ; ;
2836 break;}
2837 case 292:
2838 #line 785 "./yaccsrc.y"
2839 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2840 break;}
2841 case 294:
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] ; ;
2847 break;}
2848 case 295:
2849 #line 793 "./yaccsrc.y"
2850 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue);;
2851 break;}
2852 case 296:
2853 #line 794 "./yaccsrc.y"
2854 { exiterror( ERR_STRING_EXPECTED, 3, __reginatext ) ;;
2855 break;}
2856 case 297:
2857 #line 797 "./yaccsrc.y"
2858 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
2859 break;}
2860 case 298:
2861 #line 798 "./yaccsrc.y"
2862 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
2863 break;}
2864 case 299:
2865 #line 799 "./yaccsrc.y"
2866 { exiterror( ERR_STRING_EXPECTED, 0 ) ;;
2867 break;}
2868 case 300:
2869 #line 802 "./yaccsrc.y"
2870 { yyval = makenode(X_ON,0) ; ;
2871 break;}
2872 case 301:
2873 #line 805 "./yaccsrc.y"
2874 { yyval = makenode(X_OFF,0) ; ;
2875 break;}
2876 case 302:
2877 #line 808 "./yaccsrc.y"
2878 { yyval = makenode(X_S_ERROR,0) ; ;
2879 break;}
2880 case 303:
2881 #line 809 "./yaccsrc.y"
2882 { yyval = makenode(X_S_HALT,0) ; ;
2883 break;}
2884 case 304:
2885 #line 810 "./yaccsrc.y"
2886 { yyval = makenode(X_S_NOTREADY,0) ; ;
2887 break;}
2888 case 305:
2889 #line 811 "./yaccsrc.y"
2890 { yyval = makenode(X_S_FAILURE,0) ; ;
2891 break;}
2892 case 306:
2893 #line 814 "./yaccsrc.y"
2894 { yyval = yyvsp[0] ; ;
2895 break;}
2896 case 307:
2897 #line 815 "./yaccsrc.y"
2898 { yyval = makenode(X_S_NOVALUE,0) ; ;
2899 break;}
2900 case 308:
2901 #line 816 "./yaccsrc.y"
2902 { yyval = makenode(X_S_SYNTAX,0) ; ;
2903 break;}
2904 case 309:
2905 #line 817 "./yaccsrc.y"
2906 { yyval = makenode(X_S_LOSTDIGITS,0) ; ;
2907 break;}
2908 case 310:
2909 #line 819 "./yaccsrc.y"
2910 { yyval = yyvsp[-3] ;
2911 yyval->p[0] = yyvsp[-1] ; ;
2912 break;}
2913 case 311:
2914 #line 821 "./yaccsrc.y"
2915 { yyval = yyvsp[-2] ;
2916 yyval->p[0] = yyvsp[-1] ; ;
2917 break;}
2918 case 312:
2919 #line 823 "./yaccsrc.y"
2920 { exiterror( ERR_EXTRA_DATA, 1, __reginatext ) ;;
2921 break;}
2922 case 314:
2923 #line 825 "./yaccsrc.y"
2924 { yyval = yyvsp[-2] ;
2925 yyval->name = (streng *) yyvsp[-1] ; ;
2926 break;}
2927 case 315:
2928 #line 829 "./yaccsrc.y"
2929 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
2930 break;}
2931 case 316:
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 ; ;
2937 break;}
2938 case 317:
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 ); ;
2944 break;}
2945 case 318:
2946 #line 846 "./yaccsrc.y"
2947 { yyval = yyvsp[-1] ; ;
2948 break;}
2949 case 319:
2950 #line 847 "./yaccsrc.y"
2951 { yyval = makenode(X_LOG_NOT,1,yyvsp[0]) ; ;
2952 break;}
2953 case 320:
2954 #line 848 "./yaccsrc.y"
2955 { exiterror( ERR_INVALID_EXPRESSION, 1, "NOT" ) ;;
2956 break;}
2957 case 321:
2958 #line 849 "./yaccsrc.y"
2959 { yyval = makenode(X_PLUSS,2,yyvsp[-2],yyvsp[0]) ; ;
2960 break;}
2961 case 322:
2962 #line 850 "./yaccsrc.y"
2963 { yyval = makenode(X_EQUAL,2,yyvsp[-2],yyvsp[0]) ;
2964 transform( yyval ) ; ;
2965 break;}
2966 case 323:
2967 #line 852 "./yaccsrc.y"
2968 { exiterror( ERR_INVALID_EXPRESSION, 1, "=" ) ;;
2969 break;}
2970 case 324:
2971 #line 853 "./yaccsrc.y"
2972 { yyval = makenode(X_MINUS,2,yyvsp[-2],yyvsp[0]) ; ;
2973 break;}
2974 case 325:
2975 #line 854 "./yaccsrc.y"
2976 { yyval = makenode(X_MULT,2,yyvsp[-2],yyvsp[0]) ; ;
2977 break;}
2978 case 326:
2979 #line 855 "./yaccsrc.y"
2980 { exiterror( ERR_INVALID_EXPRESSION, 1, "*" ) ;;
2981 break;}
2982 case 327:
2983 #line 856 "./yaccsrc.y"
2984 { yyval = makenode(X_DEVIDE,2,yyvsp[-2],yyvsp[0]) ; ;
2985 break;}
2986 case 328:
2987 #line 857 "./yaccsrc.y"
2988 { exiterror( ERR_INVALID_EXPRESSION, 1, "/" ) ;;
2989 break;}
2990 case 329:
2991 #line 858 "./yaccsrc.y"
2992 { yyval = makenode(X_INTDIV,2,yyvsp[-2],yyvsp[0]) ; ;
2993 break;}
2994 case 330:
2995 #line 859 "./yaccsrc.y"
2996 { exiterror( ERR_INVALID_EXPRESSION, 1, "%" ) ;;
2997 break;}
2998 case 331:
2999 #line 860 "./yaccsrc.y"
3000 { yyval = makenode(X_LOG_OR,2,yyvsp[-2],yyvsp[0]) ; ;
3001 break;}
3002 case 332:
3003 #line 861 "./yaccsrc.y"
3004 { exiterror( ERR_INVALID_EXPRESSION, 1, "|" ) ;;
3005 break;}
3006 case 333:
3007 #line 862 "./yaccsrc.y"
3008 { yyval = makenode(X_LOG_AND,2,yyvsp[-2],yyvsp[0]) ; ;
3009 break;}
3010 case 334:
3011 #line 863 "./yaccsrc.y"
3012 { exiterror( ERR_INVALID_EXPRESSION, 1, "&" ) ;;
3013 break;}
3014 case 335:
3015 #line 864 "./yaccsrc.y"
3016 { yyval = makenode(X_LOG_XOR,2,yyvsp[-2],yyvsp[0]) ; ;
3017 break;}
3018 case 336:
3019 #line 865 "./yaccsrc.y"
3020 { exiterror( ERR_INVALID_EXPRESSION, 1, "&&" ) ;;
3021 break;}
3022 case 337:
3023 #line 866 "./yaccsrc.y"
3024 { yyval = makenode(X_EXP,2,yyvsp[-2],yyvsp[0]) ; ;
3025 break;}
3026 case 338:
3027 #line 867 "./yaccsrc.y"
3028 { exiterror( ERR_INVALID_EXPRESSION, 1, "**" ) ;;
3029 break;}
3030 case 339:
3031 #line 868 "./yaccsrc.y"
3032 { yyval = makenode(X_SPACE,2,yyvsp[-2],yyvsp[0]) ; ;
3033 break;}
3034 case 340:
3035 #line 869 "./yaccsrc.y"
3036 { exiterror( ERR_INVALID_EXPRESSION, 1, " " ) ;;
3037 break;}
3038 case 341:
3039 #line 870 "./yaccsrc.y"
3040 { yyval = makenode(X_GTE,2,yyvsp[-2],yyvsp[0]) ;
3041 transform( yyval ) ; ;
3042 break;}
3043 case 342:
3044 #line 872 "./yaccsrc.y"
3045 { exiterror( ERR_INVALID_EXPRESSION, 1, ">=" ) ;;
3046 break;}
3047 case 343:
3048 #line 873 "./yaccsrc.y"
3049 { yyval = makenode(X_LTE,2,yyvsp[-2],yyvsp[0]) ;
3050 transform( yyval ) ; ;
3051 break;}
3052 case 344:
3053 #line 875 "./yaccsrc.y"
3054 { exiterror( ERR_INVALID_EXPRESSION, 1, ">" ) ;;
3055 break;}
3056 case 345:
3057 #line 876 "./yaccsrc.y"
3058 { yyval = makenode(X_GT,2,yyvsp[-2],yyvsp[0]) ;
3059 transform( yyval ) ; ;
3060 break;}
3061 case 346:
3062 #line 878 "./yaccsrc.y"
3063 { yyval = makenode(X_MODULUS,2,yyvsp[-2],yyvsp[0]) ; ;
3064 break;}
3065 case 347:
3066 #line 879 "./yaccsrc.y"
3067 { exiterror( ERR_INVALID_EXPRESSION, 1, "//" ) ;;
3068 break;}
3069 case 348:
3070 #line 880 "./yaccsrc.y"
3071 { yyval = makenode(X_LT,2,yyvsp[-2],yyvsp[0]) ;
3072 transform( yyval ) ; ;
3073 break;}
3074 case 349:
3075 #line 882 "./yaccsrc.y"
3076 { exiterror( ERR_INVALID_EXPRESSION, 1, "<" ) ;;
3077 break;}
3078 case 350:
3079 #line 883 "./yaccsrc.y"
3080 { yyval = makenode(X_DIFF,2,yyvsp[-2],yyvsp[0]) ;
3081 transform( yyval ) ; ;
3082 break;}
3083 case 351:
3084 #line 885 "./yaccsrc.y"
3085 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
3086 break;}
3087 case 352:
3088 #line 886 "./yaccsrc.y"
3089 { yyval = makenode(X_S_EQUAL,2,yyvsp[-2],yyvsp[0]) ; ;
3090 break;}
3091 case 353:
3092 #line 887 "./yaccsrc.y"
3093 { exiterror( ERR_INVALID_EXPRESSION, 1, "==" ) ;;
3094 break;}
3095 case 354:
3096 #line 888 "./yaccsrc.y"
3097 { yyval = makenode(X_S_DIFF,2,yyvsp[-2],yyvsp[0]) ; ;
3098 break;}
3099 case 355:
3100 #line 889 "./yaccsrc.y"
3101 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
3102 break;}
3103 case 356:
3104 #line 890 "./yaccsrc.y"
3105 { yyval = makenode(X_S_GT,2,yyvsp[-2],yyvsp[0]) ; ;
3106 break;}
3107 case 357:
3108 #line 891 "./yaccsrc.y"
3109 { exiterror( ERR_INVALID_EXPRESSION, 1, ">>" ) ;;
3110 break;}
3111 case 358:
3112 #line 892 "./yaccsrc.y"
3113 { yyval = makenode(X_S_LT,2,yyvsp[-2],yyvsp[0]) ; ;
3114 break;}
3115 case 359:
3116 #line 893 "./yaccsrc.y"
3117 { exiterror( ERR_INVALID_EXPRESSION, 1, "<<" ) ;;
3118 break;}
3119 case 360:
3120 #line 894 "./yaccsrc.y"
3121 { yyval = makenode(X_S_NGT,2,yyvsp[-2],yyvsp[0]) ; ;
3122 break;}
3123 case 361:
3124 #line 895 "./yaccsrc.y"
3125 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
3126 break;}
3127 case 362:
3128 #line 896 "./yaccsrc.y"
3129 { yyval = makenode(X_S_NLT,2,yyvsp[-2],yyvsp[0]) ; ;
3130 break;}
3131 case 363:
3132 #line 897 "./yaccsrc.y"
3133 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
3134 break;}
3135 case 364:
3136 #line 898 "./yaccsrc.y"
3137 { yyval = makenode(X_S_GTE,2,yyvsp[-2],yyvsp[0]) ; ;
3138 break;}
3139 case 365:
3140 #line 899 "./yaccsrc.y"
3141 { exiterror( ERR_INVALID_EXPRESSION, 1, ">>=" ) ;;
3142 break;}
3143 case 366:
3144 #line 900 "./yaccsrc.y"
3145 { yyval = makenode(X_S_LTE,2,yyvsp[-2],yyvsp[0]) ; ;
3146 break;}
3147 case 367:
3148 #line 901 "./yaccsrc.y"
3149 { exiterror( ERR_INVALID_EXPRESSION, 1, "<<=" ) ;;
3150 break;}
3151 case 368:
3152 #line 902 "./yaccsrc.y"
3153 { yyval = yyvsp[0] ; ;
3154 break;}
3155 case 369:
3156 #line 903 "./yaccsrc.y"
3157 { yyval = makenode(X_STRING,0) ;
3158 yyval->name = Str_cre_TSD(parser_data.TSD,retvalue) ; ;
3159 break;}
3160 case 370:
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); ;
3166 break;}
3167 case 371:
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); ;
3173 break;}
3174 case 372:
3175 #line 913 "./yaccsrc.y"
3176 { yyval = makenode(X_STRING,0) ;
3177 yyval->name = Str_cre_TSD(parser_data.TSD,retvalue) ; ;
3178 break;}
3179 case 373:
3180 #line 915 "./yaccsrc.y"
3181 { yyval = yyvsp[0] ; ;
3182 break;}
3183 case 374:
3184 #line 916 "./yaccsrc.y"
3185 { yyval = makenode(X_U_PLUSS,1,yyvsp[0]) ; ;
3186 break;}
3187 case 375:
3188 #line 917 "./yaccsrc.y"
3189 { yyval = makenode(X_U_MINUS,1,yyvsp[0]) ; ;
3190 break;}
3191 case 376:
3192 #line 918 "./yaccsrc.y"
3193 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
3194 break;}
3195 case 377:
3196 #line 919 "./yaccsrc.y"
3197 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
3198 break;}
3199 case 378:
3200 #line 920 "./yaccsrc.y"
3201 { yyval = makenode(X_CONCAT,2,yyvsp[-2],yyvsp[0]) ; ;
3202 break;}
3203 case 379:
3204 #line 921 "./yaccsrc.y"
3205 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
3206 break;}
3207 case 380:
3208 #line 922 "./yaccsrc.y"
3209 { yyval = makenode(X_CONCAT,2,yyvsp[-2],yyvsp[-1]) ; ;
3210 break;}
3211 case 381:
3212 #line 923 "./yaccsrc.y"
3213 { exiterror( ERR_INVALID_EXPRESSION, 0 ) ;;
3214 break;}
3215 case 382:
3216 #line 926 "./yaccsrc.y"
3217 { yyval = (nodeptr)create_head( (const char *)retvalue ) ; ;
3218 break;}
3219 case 383:
3220 #line 930 "./yaccsrc.y"
3221 { yyval = makenode(X_EX_FUNC,1,yyvsp[-1]) ;
3222 yyval->name = (streng *)yyvsp[-2] ; ;
3223 break;}
3224 case 384:
3225 #line 932 "./yaccsrc.y"
3226 { yyval = makenode(X_IN_FUNC,1,yyvsp[-1]) ;
3227 yyval->name = (streng *)yyvsp[-2] ; ;
3228 break;}
3229 case 385:
3230 #line 936 "./yaccsrc.y"
3231 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
3232 break;}
3233 case 386:
3234 #line 939 "./yaccsrc.y"
3235 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
3236 break;}
3237 case 387:
3238 #line 942 "./yaccsrc.y"
3239 { yyval =makenode(X_TPL_SOLID,3,yyvsp[-2],yyvsp[-1],yyvsp[0]);;
3240 break;}
3241 case 388:
3242 #line 943 "./yaccsrc.y"
3243 { yyval =makenode(X_TPL_SOLID,1,yyvsp[0]) ; ;
3244 break;}
3245 case 389:
3246 #line 944 "./yaccsrc.y"
3247 { exiterror( ERR_INVALID_TEMPLATE, 1, __reginatext ) ;;
3248 break;}
3249 case 391:
3250 #line 948 "./yaccsrc.y"
3251 { yyval = makenode(X_NEG_OFFS,0) ;
3252 yyval->name = (streng *) yyvsp[0] ; ;
3253 break;}
3254 case 392:
3255 #line 950 "./yaccsrc.y"
3256 { yyval = makenode(X_POS_OFFS,0) ;
3257 yyval->name = (streng *) yyvsp[0] ; ;
3258 break;}
3259 case 393:
3260 #line 952 "./yaccsrc.y"
3261 { yyval = makenode(X_ABS_OFFS,0) ;
3262 yyval->name = (streng *) yyvsp[0] ; ;
3263 break;}
3264 case 394:
3265 #line 954 "./yaccsrc.y"
3266 { yyval = makenode(X_ABS_OFFS,0) ;
3267 yyval->name = (streng *) yyvsp[0] ; ;
3268 break;}
3269 case 395:
3270 #line 956 "./yaccsrc.y"
3271 { yyval = makenode(X_TPL_VAR,0) ;
3272 yyval->p[0] = yyvsp[-1] ; ;
3273 break;}
3274 case 396:
3275 #line 958 "./yaccsrc.y"
3276 { yyval = makenode(X_NEG_OFFS,0) ;
3277 yyval->p[0] = yyvsp[-1] ; ;
3278 break;}
3279 case 397:
3280 #line 960 "./yaccsrc.y"
3281 { yyval = makenode(X_POS_OFFS,0) ;
3282 yyval->p[0] = yyvsp[-1] ; ;
3283 break;}
3284 case 398:
3285 #line 962 "./yaccsrc.y"
3286 { yyval = makenode(X_ABS_OFFS,0) ;
3287 yyval->p[0] = yyvsp[-1] ; ;
3288 break;}
3289 case 399:
3290 #line 964 "./yaccsrc.y"
3291 { yyval = makenode(X_TPL_MVE,0) ;
3292 yyval->name = (streng *) yyvsp[0] ; ;
3293 break;}
3294 case 400:
3295 #line 968 "./yaccsrc.y"
3296 { yyval = (nodeptr)Str_cre_TSD(parser_data.TSD,retvalue) ; ;
3297 break;}
3298 case 401:
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 ) ;
3305 else
3306 exiterror( ERR_INVALID_TEMPLATE, 0 ) ;;
3307 break;}
3308 case 402:
3309 #line 978 "./yaccsrc.y"
3310 { yyval = (nodeptr) Str_cre_TSD(parser_data.TSD,retvalue) ; ;
3311 break;}
3312 case 403:
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 ; ;
3318 break;}
3319 case 404:
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 ; ;
3325 break;}
3326 case 405:
3327 #line 989 "./yaccsrc.y"
3328 { yyval = makenode(X_TPL_POINT,1,yyvsp[0]) ; ;
3329 break;}
3330 case 406:
3331 #line 990 "./yaccsrc.y"
3332 { yyval = makenode(X_TPL_SYMBOL,1,yyvsp[0]) ;
3333 yyval->p[1] = yyvsp[-1] ; ;
3334 break;}
3335 case 407:
3336 #line 992 "./yaccsrc.y"
3337 { yyval = NULL ; ;
3338 break;}
3339 case 408:
3340 #line 995 "./yaccsrc.y"
3341 { yyval = makenode(X_EXPRLIST,2,yyvsp[-2],yyvsp[0]) ;
3342 checkconst( yyval ) ; ;
3343 break;}
3344 case 409:
3345 #line 998 "./yaccsrc.y"
3346 { yyval = makenode(X_EXPRLIST,1,yyvsp[0]) ;
3347 checkconst( yyval ) ; ;
3348 break;}
3349 case 410:
3350 #line 1002 "./yaccsrc.y"
3351 { yyval = yyvsp[0] ; ;
3352 break;}
3353 case 411:
3354 #line 1003 "./yaccsrc.y"
3355 { yyval = NULL ; ;
3356 break;}
3357 case 412:
3358 #line 1006 "./yaccsrc.y"
3359 { yyval = makenode(X_SIM_SYMBOL,1,yyvsp[0]) ;
3360 yyval->name = (streng *) yyvsp[-1] ; ;
3361 break;}
3362 case 413:
3363 #line 1008 "./yaccsrc.y"
3364 { yyval = makenode(X_SIM_SYMBOL,0) ;
3365 yyval->name = (streng *) yyvsp[0] ; ;
3366 break;}
3367 case 414:
3368 #line 1010 "./yaccsrc.y"
3369 { yyval = makenode(X_IND_SYMBOL,1,yyvsp[0]) ;
3370 yyval->name = (streng *) yyvsp[-2] ; ;
3371 break;}
3372 case 415:
3373 #line 1012 "./yaccsrc.y"
3374 { yyval = makenode(X_IND_SYMBOL,0) ;
3375 yyval->name = (streng *) yyvsp[-1] ; ;
3376 break;}
3377 case 416:
3378 #line 1016 "./yaccsrc.y"
3379 { yyval = (treenode *) Str_cre_TSD(parser_data.TSD,retvalue);;
3380 break;}
3381 case 417:
3382 #line 1019 "./yaccsrc.y"
3383 { yyval = (treenode *) Str_cre_TSD(parser_data.TSD,retvalue);;
3384 break;}
3385 case 418:
3386 #line 1020 "./yaccsrc.y"
3387 { exiterror( ERR_SYMBOL_EXPECTED, 1, __reginatext ) ;;
3388 break;}
3390 /* the action file gets copied in in place of this dollarsign */
3391 #line 543 "/usr/lib/bison.simple"
3393 yyvsp -= yylen;
3394 yyssp -= yylen;
3395 #ifdef YYLSP_NEEDED
3396 yylsp -= yylen;
3397 #endif
3399 #if YYDEBUG != 0
3400 if (yydebug)
3402 short *ssp1 = yyss - 1;
3403 fprintf (stderr, "state stack now");
3404 while (ssp1 != yyssp)
3405 fprintf (stderr, " %d", *++ssp1);
3406 fprintf (stderr, "\n");
3408 #endif
3410 *++yyvsp = yyval;
3412 #ifdef YYLSP_NEEDED
3413 yylsp++;
3414 if (yylen == 0)
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;
3420 yylsp->text = 0;
3422 else
3424 yylsp->last_line = (yylsp+yylen-1)->last_line;
3425 yylsp->last_column = (yylsp+yylen-1)->last_column;
3427 #endif
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. */
3434 yyn = yyr1[yyn];
3436 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
3437 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3438 yystate = yytable[yystate];
3439 else
3440 yystate = yydefgoto[yyn - YYNTBASE];
3442 goto yynewstate;
3444 yyerrlab: /* here on detecting error */
3446 if (! yyerrstatus)
3447 /* If not already recovering from an error, report this error. */
3449 ++yynerrs;
3451 #ifdef YYERROR_VERBOSE
3452 yyn = yypact[yystate];
3454 if (yyn > YYFLAG && yyn < YYLAST)
3456 int size = 0;
3457 char *msg;
3458 int x, count;
3460 count = 0;
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);
3467 if (msg != 0)
3469 strcpy(msg, "parse error");
3471 if (count < 5)
3473 count = 0;
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]);
3480 strcat(msg, "'");
3481 count++;
3484 yyerror(msg);
3485 free(msg);
3487 else
3488 yyerror ("parse error; also virtual memory exceeded");
3490 else
3491 #endif /* YYERROR_VERBOSE */
3492 yyerror("parse error");
3495 goto yyerrlab1;
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)
3504 YYABORT;
3506 #if YYDEBUG != 0
3507 if (yydebug)
3508 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
3509 #endif
3511 yychar = YYEMPTY;
3514 /* Else will try to reuse lookahead token
3515 after shifting the error token. */
3517 yyerrstatus = 3; /* Each real token shifted decrements this */
3519 goto yyerrhandle;
3521 yyerrdefault: /* current state does not do anything special for the error token. */
3523 #if 0
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;
3528 #endif
3530 yyerrpop: /* pop the current state because it cannot handle the error token */
3532 if (yyssp == yyss) YYABORT;
3533 yyvsp--;
3534 yystate = *--yyssp;
3535 #ifdef YYLSP_NEEDED
3536 yylsp--;
3537 #endif
3539 #if YYDEBUG != 0
3540 if (yydebug)
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");
3548 #endif
3550 yyerrhandle:
3552 yyn = yypact[yystate];
3553 if (yyn == YYFLAG)
3554 goto yyerrdefault;
3556 yyn += YYTERROR;
3557 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
3558 goto yyerrdefault;
3560 yyn = yytable[yyn];
3561 if (yyn < 0)
3563 if (yyn == YYFLAG)
3564 goto yyerrpop;
3565 yyn = -yyn;
3566 goto yyreduce;
3568 else if (yyn == 0)
3569 goto yyerrpop;
3571 if (yyn == YYFINAL)
3572 YYACCEPT;
3574 #if YYDEBUG != 0
3575 if (yydebug)
3576 fprintf(stderr, "Shifting error token, ");
3577 #endif
3579 *++yyvsp = yylval;
3580 #ifdef YYLSP_NEEDED
3581 *++yylsp = yylloc;
3582 #endif
3584 yystate = yyn;
3585 goto yynewstate;
3587 yyacceptlab:
3588 /* YYACCEPT comes here. */
3589 if (yyfree_stacks)
3591 free (yyss);
3592 free (yyvs);
3593 #ifdef YYLSP_NEEDED
3594 free (yyls);
3595 #endif
3597 return 0;
3599 yyabortlab:
3600 /* YYABORT comes here. */
3601 if (yyfree_stacks)
3603 free (yyss);
3604 free (yyvs);
3605 #ifdef YYLSP_NEEDED
3606 free (yyls);
3607 #endif
3609 return 1;
3611 #line 1023 "./yaccsrc.y"
3614 #if 0
3615 static void checkin( nodeptr ptr )
3617 nodeptr *new ;
3618 tsd_t *TSD = parser_data.TSD;
3620 if (!narray)
3622 narray = MallocTSD( sizeof(nodeptr)* 100 ) ;
3623 narmax = 100 ;
3624 narptr = 0 ;
3627 if (narptr==narmax)
3629 new = MallocTSD( sizeof(nodeptr)*narmax*3 ) ;
3630 memcpy( new, narray, sizeof(nodeptr)*narmax ) ;
3631 narmax *= 3 ;
3632 FreeTSD( narray ) ;
3633 narray = new ;
3636 narray[narptr++] = ptr ;
3638 #endif
3640 static nodeptr makenode( int type, int numb, ... )
3642 nodeptr thisleave ;
3643 va_list argptr ;
3644 int i ;
3646 assert(numb <= sizeof(thisleave->p)/sizeof(thisleave->p[0]));
3647 #ifdef REXXDEBUG
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) ;
3660 va_end( argptr ) ;
3662 return( thisleave ) ;
3665 static char *getdokeyword( int type )
3667 char *ptr;
3668 switch( 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;
3675 return ptr;
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) ) ;
3701 return ;
3705 void newlabel( const tsd_t *TSD, internal_parser_type *ipt, nodeptr this )
3707 labelboxptr new ;
3709 assert( this ) ;
3711 new = MallocTSD(sizeof(labelbox)) ;
3713 new->next = NULL ;
3714 new->entry = this ;
3715 if (ipt->first_label == NULL)
3717 ipt->first_label = new ;
3718 ipt->last_label = new ; /* must be NULL, too */
3720 else
3722 ipt->last_label->next = new ;
3723 ipt->last_label = new ;
3725 ipt->numlabels++;
3728 static nodeptr create_tail( const char *name )
3730 const char *cptr ;
3731 nodeptr node ;
3732 int constant ;
3733 streng *tname ;
3734 tsd_t *TSD = parser_data.TSD;
3736 if (!*name)
3738 node = makenode( X_CTAIL_SYMBOL, 0 ) ;
3739 node->name = Str_make_TSD( parser_data.TSD, 0) ;
3740 return node ;
3743 cptr = name ;
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 ) ;
3750 if (*cptr)
3752 node->p[0] = create_tail( ++cptr ) ;
3753 if (constant && node->p[0]->type==X_CTAIL_SYMBOL)
3755 streng *first, *second ;
3756 nodeptr tptr ;
3758 first = node->name ;
3759 second = node->p[0]->name ;
3760 node->name = NULL;
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 ;
3771 tptr = node->p[0] ;
3772 node->p[0] = tptr->p[0] ;
3773 RejectNode(tptr);
3777 return node ;
3780 static nodeptr create_head( const char *name )
3782 const char *cptr ;
3783 nodeptr node ;
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=='.')) ;
3789 if (*cptr)
3791 if (*(++cptr))
3792 node->p[0] = create_tail( cptr ) ;
3793 else
3794 node->p[0] = NULL ;
3796 node->type = (node->p[0]) ? X_HEAD_SYMBOL : X_STEM_SYMBOL ;
3799 return node ;
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;
3811 switch(this->type)
3813 case X_PLUSS:
3814 case X_MINUS:
3815 case X_MULT:
3816 case X_U_PLUSS:
3817 case X_U_MINUS:
3818 case X_DEVIDE:
3819 case X_INTDIV:
3820 case X_MODULUS:
3821 case X_EQUAL:
3822 case X_DIFF:
3823 case X_GTE:
3824 case X_GT:
3825 case X_LTE:
3826 case X_LT:
3827 case X_SEQUAL:
3828 case X_SDIFF:
3829 case X_SGTE:
3830 case X_SGT:
3831 case X_SLTE:
3832 case X_SLT:
3833 case X_NEQUAL:
3834 case X_NDIFF:
3835 case X_NGTE:
3836 case X_NGT:
3837 case X_NLTE:
3838 case X_NLT:
3839 return IS_A_NUMBER ;
3842 case X_SIM_SYMBOL:
3843 return 3 ;
3845 case X_HEAD_SYMBOL:
3846 return 4 ;
3848 case X_STRING:
3849 case X_CON_SYMBOL:
3851 if (this->u.number)
3852 return IS_A_NUMBER ;
3854 this->u.number = is_a_descr( TSD, this->name ) ;
3855 if (this->u.number)
3857 streng *stmp = str_norm( TSD, this->u.number, NULL ) ;
3858 if (Str_cmp(stmp,this->name))
3860 Free_stringTSD( stmp ) ;
3861 return IS_UNKNOWN ;
3863 Free_stringTSD( stmp ) ;
3865 return (this->u.number) ? IS_A_NUMBER : IS_NO_NUMBER ;
3868 return IS_UNKNOWN ;
3873 static void transform( nodeptr this )
3875 int left, rght, type ;
3877 left = gettypeof( this->p[0] ) ;
3878 rght = gettypeof( this->p[1] ) ;
3879 type = this->type ;
3881 if (left==1 && rght==1)
3883 if (type==X_EQUAL)
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)
3898 if (type==X_EQUAL)
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 ;
3911 else
3913 type = this->p[0]->type ;
3914 if (left==1 && (type==X_STRING || type==X_CON_SYMBOL))
3915 this->u.flags.lnum = 1 ;
3916 else if (left==3)
3917 this->u.flags.lsvar = 1 ;
3918 else if (left==4)
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 ;
3924 else if (rght==3)
3925 this->u.flags.rsvar = 1 ;
3926 else if (rght==4)
3927 this->u.flags.rcvar = 1 ;
3932 static int is_const( cnodeptr this )
3934 if (!this)
3935 return 1 ;
3937 switch (this->type)
3939 case X_STRING:
3940 case X_CON_SYMBOL:
3941 return 1 ;
3943 case X_U_PLUSS:
3944 case X_U_MINUS:
3945 return is_const( this->p[0] ) ;
3947 case X_PLUSS:
3948 case X_MINUS:
3949 case X_MULT:
3950 /* case X_DEVIDE: Bug 20000807-41821 */
3951 case X_INTDIV:
3952 case X_MODULUS:
3953 case X_EQUAL:
3954 case X_DIFF:
3955 case X_GTE:
3956 case X_GT:
3957 case X_LTE:
3958 case X_LT:
3959 case X_SEQUAL:
3960 case X_SDIFF:
3961 case X_SGTE:
3962 case X_SGT:
3963 case X_SLTE:
3964 case X_SLT:
3965 case X_NEQUAL:
3966 case X_NDIFF:
3967 case X_NGTE:
3968 case X_NGT:
3969 case X_NLTE:
3970 case X_NLT:
3971 case X_SPACE:
3972 case X_CONCAT:
3973 return is_const( this->p[0] ) && is_const( this->p[1] ) ;
3975 return 0 ;
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]))
3986 if (this->p[0])
3987 this->u.strng = evaluate( TSD, this->p[0], NULL ) ;
3988 else
3989 this->u.strng = NULL ;
3991 this->type = X_CEXPRLIST ;