xref: /freebsd/contrib/ntp/ntpd/ntp_parser.c (revision abac203368a6069d3d557a71a60a843707694d65)
1 /* A Bison parser, made by GNU Bison 3.0.2.  */
2 
3 /* Bison implementation for Yacc-like parsers in C
4 
5    Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6 
7    This program is free software: you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation, either version 3 of the License, or
10    (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19 
20 /* As a special exception, you may create a larger work that contains
21    part or all of the Bison parser skeleton and distribute that work
22    under terms of your choice, so long as that work isn't itself a
23    parser generator using the skeleton or a modified version thereof
24    as a parser skeleton.  Alternatively, if you modify or redistribute
25    the parser skeleton itself, you may (at your option) remove this
26    special exception, which will cause the skeleton and the resulting
27    Bison output files to be licensed under the GNU General Public
28    License without this special exception.
29 
30    This special exception was added by the Free Software Foundation in
31    version 2.2 of Bison.  */
32 
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34    simplifying the original so-called "semantic" parser.  */
35 
36 /* All symbols defined below should begin with yy or YY, to avoid
37    infringing on user name space.  This should be done even for local
38    variables, as they might otherwise be expanded by user macros.
39    There are some unavoidable exceptions within include files to
40    define necessary library symbols; they are noted "INFRINGES ON
41    USER NAME SPACE" below.  */
42 
43 /* Identify Bison output.  */
44 #define YYBISON 1
45 
46 /* Bison version.  */
47 #define YYBISON_VERSION "3.0.2"
48 
49 /* Skeleton name.  */
50 #define YYSKELETON_NAME "yacc.c"
51 
52 /* Pure parsers.  */
53 #define YYPURE 0
54 
55 /* Push parsers.  */
56 #define YYPUSH 0
57 
58 /* Pull parsers.  */
59 #define YYPULL 1
60 
61 
62 
63 
64 /* Copy the first part of user declarations.  */
65 #line 11 "../../ntpd/ntp_parser.y" /* yacc.c:339  */
66 
67   #ifdef HAVE_CONFIG_H
68   # include <config.h>
69   #endif
70 
71   #include "ntp.h"
72   #include "ntpd.h"
73   #include "ntp_machine.h"
74   #include "ntp_stdlib.h"
75   #include "ntp_filegen.h"
76   #include "ntp_scanner.h"
77   #include "ntp_config.h"
78   #include "ntp_crypto.h"
79 
80   #include "ntpsim.h"		/* HMS: Do we really want this all the time? */
81 				/* SK: It might be a good idea to always
82 				   include the simulator code. That way
83 				   someone can use the same configuration file
84 				   for both the simulator and the daemon
85 				*/
86 
87   #define YYMALLOC	emalloc
88   #define YYFREE	free
89   #define YYERROR_VERBOSE
90   #define YYMAXDEPTH	1000	/* stop the madness sooner */
91   void yyerror(const char *msg);
92 
93   #ifdef SIM
94   #  define ONLY_SIM(a)	(a)
95   #else
96   #  define ONLY_SIM(a)	NULL
97   #endif
98 
99 #line 100 "../../ntpd/ntp_parser.c" /* yacc.c:339  */
100 
101 # ifndef YY_NULLPTR
102 #  if defined __cplusplus && 201103L <= __cplusplus
103 #   define YY_NULLPTR nullptr
104 #  else
105 #   define YY_NULLPTR 0
106 #  endif
107 # endif
108 
109 /* Enabling verbose error messages.  */
110 #ifdef YYERROR_VERBOSE
111 # undef YYERROR_VERBOSE
112 # define YYERROR_VERBOSE 1
113 #else
114 # define YYERROR_VERBOSE 0
115 #endif
116 
117 /* In a future release of Bison, this section will be replaced
118    by #include "y.tab.h".  */
119 #ifndef YY_YY__NTPD_NTP_PARSER_H_INCLUDED
120 # define YY_YY__NTPD_NTP_PARSER_H_INCLUDED
121 /* Debug traces.  */
122 #ifndef YYDEBUG
123 # define YYDEBUG 1
124 #endif
125 #if YYDEBUG
126 extern int yydebug;
127 #endif
128 
129 /* Token type.  */
130 #ifndef YYTOKENTYPE
131 # define YYTOKENTYPE
132   enum yytokentype
133   {
134     T_Abbrev = 258,
135     T_Age = 259,
136     T_All = 260,
137     T_Allan = 261,
138     T_Allpeers = 262,
139     T_Auth = 263,
140     T_Autokey = 264,
141     T_Automax = 265,
142     T_Average = 266,
143     T_Bclient = 267,
144     T_Beacon = 268,
145     T_Broadcast = 269,
146     T_Broadcastclient = 270,
147     T_Broadcastdelay = 271,
148     T_Burst = 272,
149     T_Calibrate = 273,
150     T_Ceiling = 274,
151     T_Clockstats = 275,
152     T_Cohort = 276,
153     T_ControlKey = 277,
154     T_Crypto = 278,
155     T_Cryptostats = 279,
156     T_Ctl = 280,
157     T_Day = 281,
158     T_Default = 282,
159     T_Digest = 283,
160     T_Disable = 284,
161     T_Discard = 285,
162     T_Dispersion = 286,
163     T_Double = 287,
164     T_Driftfile = 288,
165     T_Drop = 289,
166     T_Dscp = 290,
167     T_Ellipsis = 291,
168     T_Enable = 292,
169     T_End = 293,
170     T_False = 294,
171     T_File = 295,
172     T_Filegen = 296,
173     T_Filenum = 297,
174     T_Flag1 = 298,
175     T_Flag2 = 299,
176     T_Flag3 = 300,
177     T_Flag4 = 301,
178     T_Flake = 302,
179     T_Floor = 303,
180     T_Freq = 304,
181     T_Fudge = 305,
182     T_Host = 306,
183     T_Huffpuff = 307,
184     T_Iburst = 308,
185     T_Ident = 309,
186     T_Ignore = 310,
187     T_Incalloc = 311,
188     T_Incmem = 312,
189     T_Initalloc = 313,
190     T_Initmem = 314,
191     T_Includefile = 315,
192     T_Integer = 316,
193     T_Interface = 317,
194     T_Intrange = 318,
195     T_Io = 319,
196     T_Ipv4 = 320,
197     T_Ipv4_flag = 321,
198     T_Ipv6 = 322,
199     T_Ipv6_flag = 323,
200     T_Kernel = 324,
201     T_Key = 325,
202     T_Keys = 326,
203     T_Keysdir = 327,
204     T_Kod = 328,
205     T_Mssntp = 329,
206     T_Leapfile = 330,
207     T_Leapsmearinterval = 331,
208     T_Limited = 332,
209     T_Link = 333,
210     T_Listen = 334,
211     T_Logconfig = 335,
212     T_Logfile = 336,
213     T_Loopstats = 337,
214     T_Lowpriotrap = 338,
215     T_Manycastclient = 339,
216     T_Manycastserver = 340,
217     T_Mask = 341,
218     T_Maxage = 342,
219     T_Maxclock = 343,
220     T_Maxdepth = 344,
221     T_Maxdist = 345,
222     T_Maxmem = 346,
223     T_Maxpoll = 347,
224     T_Mdnstries = 348,
225     T_Mem = 349,
226     T_Memlock = 350,
227     T_Minclock = 351,
228     T_Mindepth = 352,
229     T_Mindist = 353,
230     T_Minimum = 354,
231     T_Minpoll = 355,
232     T_Minsane = 356,
233     T_Mode = 357,
234     T_Mode7 = 358,
235     T_Monitor = 359,
236     T_Month = 360,
237     T_Mru = 361,
238     T_Multicastclient = 362,
239     T_Nic = 363,
240     T_Nolink = 364,
241     T_Nomodify = 365,
242     T_Nomrulist = 366,
243     T_None = 367,
244     T_Nonvolatile = 368,
245     T_Nopeer = 369,
246     T_Noquery = 370,
247     T_Noselect = 371,
248     T_Noserve = 372,
249     T_Notrap = 373,
250     T_Notrust = 374,
251     T_Ntp = 375,
252     T_Ntpport = 376,
253     T_NtpSignDsocket = 377,
254     T_Orphan = 378,
255     T_Orphanwait = 379,
256     T_Panic = 380,
257     T_Peer = 381,
258     T_Peerstats = 382,
259     T_Phone = 383,
260     T_Pid = 384,
261     T_Pidfile = 385,
262     T_Pool = 386,
263     T_Port = 387,
264     T_Preempt = 388,
265     T_Prefer = 389,
266     T_Protostats = 390,
267     T_Pw = 391,
268     T_Randfile = 392,
269     T_Rawstats = 393,
270     T_Refid = 394,
271     T_Requestkey = 395,
272     T_Reset = 396,
273     T_Restrict = 397,
274     T_Revoke = 398,
275     T_Rlimit = 399,
276     T_Saveconfigdir = 400,
277     T_Server = 401,
278     T_Setvar = 402,
279     T_Source = 403,
280     T_Stacksize = 404,
281     T_Statistics = 405,
282     T_Stats = 406,
283     T_Statsdir = 407,
284     T_Step = 408,
285     T_Stepback = 409,
286     T_Stepfwd = 410,
287     T_Stepout = 411,
288     T_Stratum = 412,
289     T_String = 413,
290     T_Sys = 414,
291     T_Sysstats = 415,
292     T_Tick = 416,
293     T_Time1 = 417,
294     T_Time2 = 418,
295     T_Timer = 419,
296     T_Timingstats = 420,
297     T_Tinker = 421,
298     T_Tos = 422,
299     T_Trap = 423,
300     T_True = 424,
301     T_Trustedkey = 425,
302     T_Ttl = 426,
303     T_Type = 427,
304     T_U_int = 428,
305     T_Unconfig = 429,
306     T_Unpeer = 430,
307     T_Version = 431,
308     T_WanderThreshold = 432,
309     T_Week = 433,
310     T_Wildcard = 434,
311     T_Xleave = 435,
312     T_Year = 436,
313     T_Flag = 437,
314     T_EOC = 438,
315     T_Simulate = 439,
316     T_Beep_Delay = 440,
317     T_Sim_Duration = 441,
318     T_Server_Offset = 442,
319     T_Duration = 443,
320     T_Freq_Offset = 444,
321     T_Wander = 445,
322     T_Jitter = 446,
323     T_Prop_Delay = 447,
324     T_Proc_Delay = 448
325   };
326 #endif
327 /* Tokens.  */
328 #define T_Abbrev 258
329 #define T_Age 259
330 #define T_All 260
331 #define T_Allan 261
332 #define T_Allpeers 262
333 #define T_Auth 263
334 #define T_Autokey 264
335 #define T_Automax 265
336 #define T_Average 266
337 #define T_Bclient 267
338 #define T_Beacon 268
339 #define T_Broadcast 269
340 #define T_Broadcastclient 270
341 #define T_Broadcastdelay 271
342 #define T_Burst 272
343 #define T_Calibrate 273
344 #define T_Ceiling 274
345 #define T_Clockstats 275
346 #define T_Cohort 276
347 #define T_ControlKey 277
348 #define T_Crypto 278
349 #define T_Cryptostats 279
350 #define T_Ctl 280
351 #define T_Day 281
352 #define T_Default 282
353 #define T_Digest 283
354 #define T_Disable 284
355 #define T_Discard 285
356 #define T_Dispersion 286
357 #define T_Double 287
358 #define T_Driftfile 288
359 #define T_Drop 289
360 #define T_Dscp 290
361 #define T_Ellipsis 291
362 #define T_Enable 292
363 #define T_End 293
364 #define T_False 294
365 #define T_File 295
366 #define T_Filegen 296
367 #define T_Filenum 297
368 #define T_Flag1 298
369 #define T_Flag2 299
370 #define T_Flag3 300
371 #define T_Flag4 301
372 #define T_Flake 302
373 #define T_Floor 303
374 #define T_Freq 304
375 #define T_Fudge 305
376 #define T_Host 306
377 #define T_Huffpuff 307
378 #define T_Iburst 308
379 #define T_Ident 309
380 #define T_Ignore 310
381 #define T_Incalloc 311
382 #define T_Incmem 312
383 #define T_Initalloc 313
384 #define T_Initmem 314
385 #define T_Includefile 315
386 #define T_Integer 316
387 #define T_Interface 317
388 #define T_Intrange 318
389 #define T_Io 319
390 #define T_Ipv4 320
391 #define T_Ipv4_flag 321
392 #define T_Ipv6 322
393 #define T_Ipv6_flag 323
394 #define T_Kernel 324
395 #define T_Key 325
396 #define T_Keys 326
397 #define T_Keysdir 327
398 #define T_Kod 328
399 #define T_Mssntp 329
400 #define T_Leapfile 330
401 #define T_Leapsmearinterval 331
402 #define T_Limited 332
403 #define T_Link 333
404 #define T_Listen 334
405 #define T_Logconfig 335
406 #define T_Logfile 336
407 #define T_Loopstats 337
408 #define T_Lowpriotrap 338
409 #define T_Manycastclient 339
410 #define T_Manycastserver 340
411 #define T_Mask 341
412 #define T_Maxage 342
413 #define T_Maxclock 343
414 #define T_Maxdepth 344
415 #define T_Maxdist 345
416 #define T_Maxmem 346
417 #define T_Maxpoll 347
418 #define T_Mdnstries 348
419 #define T_Mem 349
420 #define T_Memlock 350
421 #define T_Minclock 351
422 #define T_Mindepth 352
423 #define T_Mindist 353
424 #define T_Minimum 354
425 #define T_Minpoll 355
426 #define T_Minsane 356
427 #define T_Mode 357
428 #define T_Mode7 358
429 #define T_Monitor 359
430 #define T_Month 360
431 #define T_Mru 361
432 #define T_Multicastclient 362
433 #define T_Nic 363
434 #define T_Nolink 364
435 #define T_Nomodify 365
436 #define T_Nomrulist 366
437 #define T_None 367
438 #define T_Nonvolatile 368
439 #define T_Nopeer 369
440 #define T_Noquery 370
441 #define T_Noselect 371
442 #define T_Noserve 372
443 #define T_Notrap 373
444 #define T_Notrust 374
445 #define T_Ntp 375
446 #define T_Ntpport 376
447 #define T_NtpSignDsocket 377
448 #define T_Orphan 378
449 #define T_Orphanwait 379
450 #define T_Panic 380
451 #define T_Peer 381
452 #define T_Peerstats 382
453 #define T_Phone 383
454 #define T_Pid 384
455 #define T_Pidfile 385
456 #define T_Pool 386
457 #define T_Port 387
458 #define T_Preempt 388
459 #define T_Prefer 389
460 #define T_Protostats 390
461 #define T_Pw 391
462 #define T_Randfile 392
463 #define T_Rawstats 393
464 #define T_Refid 394
465 #define T_Requestkey 395
466 #define T_Reset 396
467 #define T_Restrict 397
468 #define T_Revoke 398
469 #define T_Rlimit 399
470 #define T_Saveconfigdir 400
471 #define T_Server 401
472 #define T_Setvar 402
473 #define T_Source 403
474 #define T_Stacksize 404
475 #define T_Statistics 405
476 #define T_Stats 406
477 #define T_Statsdir 407
478 #define T_Step 408
479 #define T_Stepback 409
480 #define T_Stepfwd 410
481 #define T_Stepout 411
482 #define T_Stratum 412
483 #define T_String 413
484 #define T_Sys 414
485 #define T_Sysstats 415
486 #define T_Tick 416
487 #define T_Time1 417
488 #define T_Time2 418
489 #define T_Timer 419
490 #define T_Timingstats 420
491 #define T_Tinker 421
492 #define T_Tos 422
493 #define T_Trap 423
494 #define T_True 424
495 #define T_Trustedkey 425
496 #define T_Ttl 426
497 #define T_Type 427
498 #define T_U_int 428
499 #define T_Unconfig 429
500 #define T_Unpeer 430
501 #define T_Version 431
502 #define T_WanderThreshold 432
503 #define T_Week 433
504 #define T_Wildcard 434
505 #define T_Xleave 435
506 #define T_Year 436
507 #define T_Flag 437
508 #define T_EOC 438
509 #define T_Simulate 439
510 #define T_Beep_Delay 440
511 #define T_Sim_Duration 441
512 #define T_Server_Offset 442
513 #define T_Duration 443
514 #define T_Freq_Offset 444
515 #define T_Wander 445
516 #define T_Jitter 446
517 #define T_Prop_Delay 447
518 #define T_Proc_Delay 448
519 
520 /* Value type.  */
521 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
522 typedef union YYSTYPE YYSTYPE;
523 union YYSTYPE
524 {
525 #line 51 "../../ntpd/ntp_parser.y" /* yacc.c:355  */
526 
527 	char *			String;
528 	double			Double;
529 	int			Integer;
530 	unsigned		U_int;
531 	gen_fifo *		Generic_fifo;
532 	attr_val *		Attr_val;
533 	attr_val_fifo *		Attr_val_fifo;
534 	int_fifo *		Int_fifo;
535 	string_fifo *		String_fifo;
536 	address_node *		Address_node;
537 	address_fifo *		Address_fifo;
538 	setvar_node *		Set_var;
539 	server_info *		Sim_server;
540 	server_info_fifo *	Sim_server_fifo;
541 	script_info *		Sim_script;
542 	script_info_fifo *	Sim_script_fifo;
543 
544 #line 545 "../../ntpd/ntp_parser.c" /* yacc.c:355  */
545 };
546 # define YYSTYPE_IS_TRIVIAL 1
547 # define YYSTYPE_IS_DECLARED 1
548 #endif
549 
550 
551 extern YYSTYPE yylval;
552 
553 int yyparse (void);
554 
555 #endif /* !YY_YY__NTPD_NTP_PARSER_H_INCLUDED  */
556 
557 /* Copy the second part of user declarations.  */
558 
559 #line 560 "../../ntpd/ntp_parser.c" /* yacc.c:358  */
560 
561 #ifdef short
562 # undef short
563 #endif
564 
565 #ifdef YYTYPE_UINT8
566 typedef YYTYPE_UINT8 yytype_uint8;
567 #else
568 typedef unsigned char yytype_uint8;
569 #endif
570 
571 #ifdef YYTYPE_INT8
572 typedef YYTYPE_INT8 yytype_int8;
573 #else
574 typedef signed char yytype_int8;
575 #endif
576 
577 #ifdef YYTYPE_UINT16
578 typedef YYTYPE_UINT16 yytype_uint16;
579 #else
580 typedef unsigned short int yytype_uint16;
581 #endif
582 
583 #ifdef YYTYPE_INT16
584 typedef YYTYPE_INT16 yytype_int16;
585 #else
586 typedef short int yytype_int16;
587 #endif
588 
589 #ifndef YYSIZE_T
590 # ifdef __SIZE_TYPE__
591 #  define YYSIZE_T __SIZE_TYPE__
592 # elif defined size_t
593 #  define YYSIZE_T size_t
594 # elif ! defined YYSIZE_T
595 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
596 #  define YYSIZE_T size_t
597 # else
598 #  define YYSIZE_T unsigned int
599 # endif
600 #endif
601 
602 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
603 
604 #ifndef YY_
605 # if defined YYENABLE_NLS && YYENABLE_NLS
606 #  if ENABLE_NLS
607 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
608 #   define YY_(Msgid) dgettext ("bison-runtime", Msgid)
609 #  endif
610 # endif
611 # ifndef YY_
612 #  define YY_(Msgid) Msgid
613 # endif
614 #endif
615 
616 #ifndef YY_ATTRIBUTE
617 # if (defined __GNUC__                                               \
618       && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \
619      || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
620 #  define YY_ATTRIBUTE(Spec) __attribute__(Spec)
621 # else
622 #  define YY_ATTRIBUTE(Spec) /* empty */
623 # endif
624 #endif
625 
626 #ifndef YY_ATTRIBUTE_PURE
627 # define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
628 #endif
629 
630 #ifndef YY_ATTRIBUTE_UNUSED
631 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
632 #endif
633 
634 #if !defined _Noreturn \
635      && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
636 # if defined _MSC_VER && 1200 <= _MSC_VER
637 #  define _Noreturn __declspec (noreturn)
638 # else
639 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
640 # endif
641 #endif
642 
643 /* Suppress unused-variable warnings by "using" E.  */
644 #if ! defined lint || defined __GNUC__
645 # define YYUSE(E) ((void) (E))
646 #else
647 # define YYUSE(E) /* empty */
648 #endif
649 
650 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
651 /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
652 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
653     _Pragma ("GCC diagnostic push") \
654     _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
655     _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
656 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
657     _Pragma ("GCC diagnostic pop")
658 #else
659 # define YY_INITIAL_VALUE(Value) Value
660 #endif
661 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
662 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
663 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
664 #endif
665 #ifndef YY_INITIAL_VALUE
666 # define YY_INITIAL_VALUE(Value) /* Nothing. */
667 #endif
668 
669 
670 #if ! defined yyoverflow || YYERROR_VERBOSE
671 
672 /* The parser invokes alloca or malloc; define the necessary symbols.  */
673 
674 # ifdef YYSTACK_USE_ALLOCA
675 #  if YYSTACK_USE_ALLOCA
676 #   ifdef __GNUC__
677 #    define YYSTACK_ALLOC __builtin_alloca
678 #   elif defined __BUILTIN_VA_ARG_INCR
679 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
680 #   elif defined _AIX
681 #    define YYSTACK_ALLOC __alloca
682 #   elif defined _MSC_VER
683 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
684 #    define alloca _alloca
685 #   else
686 #    define YYSTACK_ALLOC alloca
687 #    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
688 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
689       /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
690 #     ifndef EXIT_SUCCESS
691 #      define EXIT_SUCCESS 0
692 #     endif
693 #    endif
694 #   endif
695 #  endif
696 # endif
697 
698 # ifdef YYSTACK_ALLOC
699    /* Pacify GCC's 'empty if-body' warning.  */
700 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
701 #  ifndef YYSTACK_ALLOC_MAXIMUM
702     /* The OS might guarantee only one guard page at the bottom of the stack,
703        and a page size can be as small as 4096 bytes.  So we cannot safely
704        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
705        to allow for a few compiler-allocated temporary stack slots.  */
706 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
707 #  endif
708 # else
709 #  define YYSTACK_ALLOC YYMALLOC
710 #  define YYSTACK_FREE YYFREE
711 #  ifndef YYSTACK_ALLOC_MAXIMUM
712 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
713 #  endif
714 #  if (defined __cplusplus && ! defined EXIT_SUCCESS \
715        && ! ((defined YYMALLOC || defined malloc) \
716              && (defined YYFREE || defined free)))
717 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
718 #   ifndef EXIT_SUCCESS
719 #    define EXIT_SUCCESS 0
720 #   endif
721 #  endif
722 #  ifndef YYMALLOC
723 #   define YYMALLOC malloc
724 #   if ! defined malloc && ! defined EXIT_SUCCESS
725 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
726 #   endif
727 #  endif
728 #  ifndef YYFREE
729 #   define YYFREE free
730 #   if ! defined free && ! defined EXIT_SUCCESS
731 void free (void *); /* INFRINGES ON USER NAME SPACE */
732 #   endif
733 #  endif
734 # endif
735 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
736 
737 
738 #if (! defined yyoverflow \
739      && (! defined __cplusplus \
740          || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
741 
742 /* A type that is properly aligned for any stack member.  */
743 union yyalloc
744 {
745   yytype_int16 yyss_alloc;
746   YYSTYPE yyvs_alloc;
747 };
748 
749 /* The size of the maximum gap between one aligned stack and the next.  */
750 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
751 
752 /* The size of an array large to enough to hold all stacks, each with
753    N elements.  */
754 # define YYSTACK_BYTES(N) \
755      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
756       + YYSTACK_GAP_MAXIMUM)
757 
758 # define YYCOPY_NEEDED 1
759 
760 /* Relocate STACK from its old location to the new one.  The
761    local variables YYSIZE and YYSTACKSIZE give the old and new number of
762    elements in the stack, and YYPTR gives the new location of the
763    stack.  Advance YYPTR to a properly aligned location for the next
764    stack.  */
765 # define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \
766     do                                                                  \
767       {                                                                 \
768         YYSIZE_T yynewbytes;                                            \
769         YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
770         Stack = &yyptr->Stack_alloc;                                    \
771         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
772         yyptr += yynewbytes / sizeof (*yyptr);                          \
773       }                                                                 \
774     while (0)
775 
776 #endif
777 
778 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
779 /* Copy COUNT objects from SRC to DST.  The source and destination do
780    not overlap.  */
781 # ifndef YYCOPY
782 #  if defined __GNUC__ && 1 < __GNUC__
783 #   define YYCOPY(Dst, Src, Count) \
784       __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
785 #  else
786 #   define YYCOPY(Dst, Src, Count)              \
787       do                                        \
788         {                                       \
789           YYSIZE_T yyi;                         \
790           for (yyi = 0; yyi < (Count); yyi++)   \
791             (Dst)[yyi] = (Src)[yyi];            \
792         }                                       \
793       while (0)
794 #  endif
795 # endif
796 #endif /* !YYCOPY_NEEDED */
797 
798 /* YYFINAL -- State number of the termination state.  */
799 #define YYFINAL  210
800 /* YYLAST -- Last index in YYTABLE.  */
801 #define YYLAST   647
802 
803 /* YYNTOKENS -- Number of terminals.  */
804 #define YYNTOKENS  199
805 /* YYNNTS -- Number of nonterminals.  */
806 #define YYNNTS  105
807 /* YYNRULES -- Number of rules.  */
808 #define YYNRULES  313
809 /* YYNSTATES -- Number of states.  */
810 #define YYNSTATES  419
811 
812 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
813    by yylex, with out-of-bounds checking.  */
814 #define YYUNDEFTOK  2
815 #define YYMAXUTOK   448
816 
817 #define YYTRANSLATE(YYX)                                                \
818   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
819 
820 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
821    as returned by yylex, without out-of-bounds checking.  */
822 static const yytype_uint8 yytranslate[] =
823 {
824        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
825        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
826        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
827        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
828      195,   196,     2,     2,     2,     2,     2,     2,     2,     2,
829        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
830        2,   194,     2,     2,     2,     2,     2,     2,     2,     2,
831        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
832        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
833        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
834        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
835        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
836        2,     2,     2,   197,     2,   198,     2,     2,     2,     2,
837        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
838        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
839        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
840        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
841        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
842        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
843        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
844        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
845        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
846        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
847        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
848        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
849        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
850        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
851       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
852       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
853       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
854       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
855       55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
856       65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
857       75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
858       85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
859       95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
860      105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
861      115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
862      125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
863      135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
864      145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
865      155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
866      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
867      175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
868      185,   186,   187,   188,   189,   190,   191,   192,   193
869 };
870 
871 #if YYDEBUG
872   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
873 static const yytype_uint16 yyrline[] =
874 {
875        0,   366,   366,   370,   371,   372,   387,   388,   389,   390,
876      391,   392,   393,   394,   395,   396,   397,   398,   399,   400,
877      408,   418,   419,   420,   421,   422,   426,   427,   432,   437,
878      439,   445,   446,   454,   455,   456,   460,   465,   466,   467,
879      468,   469,   470,   471,   472,   476,   478,   483,   484,   485,
880      486,   487,   488,   492,   497,   506,   516,   517,   527,   529,
881      531,   533,   544,   551,   553,   558,   560,   562,   564,   566,
882      575,   581,   582,   590,   592,   604,   605,   606,   607,   608,
883      617,   622,   627,   635,   637,   639,   644,   645,   646,   647,
884      648,   649,   653,   654,   655,   656,   665,   667,   676,   686,
885      691,   699,   700,   701,   702,   703,   704,   705,   706,   711,
886      712,   720,   730,   739,   754,   759,   760,   764,   765,   769,
887      770,   771,   772,   773,   774,   775,   784,   788,   792,   800,
888      808,   816,   831,   846,   859,   860,   868,   869,   870,   871,
889      872,   873,   874,   875,   876,   877,   878,   879,   880,   881,
890      882,   886,   891,   899,   904,   905,   906,   910,   915,   923,
891      928,   929,   930,   931,   932,   933,   934,   935,   943,   953,
892      958,   966,   968,   970,   979,   981,   986,   987,   991,   992,
893      993,   994,  1002,  1007,  1012,  1020,  1025,  1026,  1027,  1036,
894     1038,  1043,  1048,  1056,  1058,  1075,  1076,  1077,  1078,  1079,
895     1080,  1084,  1085,  1093,  1098,  1103,  1111,  1116,  1117,  1118,
896     1119,  1120,  1121,  1122,  1123,  1124,  1125,  1134,  1135,  1136,
897     1143,  1150,  1157,  1173,  1192,  1194,  1196,  1198,  1200,  1202,
898     1209,  1214,  1215,  1216,  1220,  1224,  1233,  1234,  1238,  1239,
899     1240,  1244,  1255,  1269,  1281,  1286,  1288,  1293,  1294,  1302,
900     1304,  1312,  1317,  1325,  1350,  1357,  1367,  1368,  1372,  1373,
901     1374,  1375,  1379,  1380,  1381,  1385,  1390,  1395,  1403,  1404,
902     1405,  1406,  1407,  1408,  1409,  1419,  1424,  1432,  1437,  1445,
903     1447,  1451,  1456,  1461,  1469,  1474,  1482,  1491,  1492,  1496,
904     1497,  1506,  1524,  1528,  1533,  1541,  1546,  1547,  1551,  1556,
905     1564,  1569,  1574,  1579,  1584,  1592,  1597,  1602,  1610,  1615,
906     1616,  1617,  1618,  1619
907 };
908 #endif
909 
910 #if YYDEBUG || YYERROR_VERBOSE || 1
911 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
912    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
913 static const char *const yytname[] =
914 {
915   "$end", "error", "$undefined", "T_Abbrev", "T_Age", "T_All", "T_Allan",
916   "T_Allpeers", "T_Auth", "T_Autokey", "T_Automax", "T_Average",
917   "T_Bclient", "T_Beacon", "T_Broadcast", "T_Broadcastclient",
918   "T_Broadcastdelay", "T_Burst", "T_Calibrate", "T_Ceiling",
919   "T_Clockstats", "T_Cohort", "T_ControlKey", "T_Crypto", "T_Cryptostats",
920   "T_Ctl", "T_Day", "T_Default", "T_Digest", "T_Disable", "T_Discard",
921   "T_Dispersion", "T_Double", "T_Driftfile", "T_Drop", "T_Dscp",
922   "T_Ellipsis", "T_Enable", "T_End", "T_False", "T_File", "T_Filegen",
923   "T_Filenum", "T_Flag1", "T_Flag2", "T_Flag3", "T_Flag4", "T_Flake",
924   "T_Floor", "T_Freq", "T_Fudge", "T_Host", "T_Huffpuff", "T_Iburst",
925   "T_Ident", "T_Ignore", "T_Incalloc", "T_Incmem", "T_Initalloc",
926   "T_Initmem", "T_Includefile", "T_Integer", "T_Interface", "T_Intrange",
927   "T_Io", "T_Ipv4", "T_Ipv4_flag", "T_Ipv6", "T_Ipv6_flag", "T_Kernel",
928   "T_Key", "T_Keys", "T_Keysdir", "T_Kod", "T_Mssntp", "T_Leapfile",
929   "T_Leapsmearinterval", "T_Limited", "T_Link", "T_Listen", "T_Logconfig",
930   "T_Logfile", "T_Loopstats", "T_Lowpriotrap", "T_Manycastclient",
931   "T_Manycastserver", "T_Mask", "T_Maxage", "T_Maxclock", "T_Maxdepth",
932   "T_Maxdist", "T_Maxmem", "T_Maxpoll", "T_Mdnstries", "T_Mem",
933   "T_Memlock", "T_Minclock", "T_Mindepth", "T_Mindist", "T_Minimum",
934   "T_Minpoll", "T_Minsane", "T_Mode", "T_Mode7", "T_Monitor", "T_Month",
935   "T_Mru", "T_Multicastclient", "T_Nic", "T_Nolink", "T_Nomodify",
936   "T_Nomrulist", "T_None", "T_Nonvolatile", "T_Nopeer", "T_Noquery",
937   "T_Noselect", "T_Noserve", "T_Notrap", "T_Notrust", "T_Ntp", "T_Ntpport",
938   "T_NtpSignDsocket", "T_Orphan", "T_Orphanwait", "T_Panic", "T_Peer",
939   "T_Peerstats", "T_Phone", "T_Pid", "T_Pidfile", "T_Pool", "T_Port",
940   "T_Preempt", "T_Prefer", "T_Protostats", "T_Pw", "T_Randfile",
941   "T_Rawstats", "T_Refid", "T_Requestkey", "T_Reset", "T_Restrict",
942   "T_Revoke", "T_Rlimit", "T_Saveconfigdir", "T_Server", "T_Setvar",
943   "T_Source", "T_Stacksize", "T_Statistics", "T_Stats", "T_Statsdir",
944   "T_Step", "T_Stepback", "T_Stepfwd", "T_Stepout", "T_Stratum",
945   "T_String", "T_Sys", "T_Sysstats", "T_Tick", "T_Time1", "T_Time2",
946   "T_Timer", "T_Timingstats", "T_Tinker", "T_Tos", "T_Trap", "T_True",
947   "T_Trustedkey", "T_Ttl", "T_Type", "T_U_int", "T_Unconfig", "T_Unpeer",
948   "T_Version", "T_WanderThreshold", "T_Week", "T_Wildcard", "T_Xleave",
949   "T_Year", "T_Flag", "T_EOC", "T_Simulate", "T_Beep_Delay",
950   "T_Sim_Duration", "T_Server_Offset", "T_Duration", "T_Freq_Offset",
951   "T_Wander", "T_Jitter", "T_Prop_Delay", "T_Proc_Delay", "'='", "'('",
952   "')'", "'{'", "'}'", "$accept", "configuration", "command_list",
953   "command", "server_command", "client_type", "address", "ip_address",
954   "address_fam", "option_list", "option", "option_flag",
955   "option_flag_keyword", "option_int", "option_int_keyword", "option_str",
956   "option_str_keyword", "unpeer_command", "unpeer_keyword",
957   "other_mode_command", "authentication_command", "crypto_command_list",
958   "crypto_command", "crypto_str_keyword", "orphan_mode_command",
959   "tos_option_list", "tos_option", "tos_option_int_keyword",
960   "tos_option_dbl_keyword", "monitoring_command", "stats_list", "stat",
961   "filegen_option_list", "filegen_option", "link_nolink", "enable_disable",
962   "filegen_type", "access_control_command", "ac_flag_list",
963   "access_control_flag", "discard_option_list", "discard_option",
964   "discard_option_keyword", "mru_option_list", "mru_option",
965   "mru_option_keyword", "fudge_command", "fudge_factor_list",
966   "fudge_factor", "fudge_factor_dbl_keyword", "fudge_factor_bool_keyword",
967   "rlimit_command", "rlimit_option_list", "rlimit_option",
968   "rlimit_option_keyword", "system_option_command", "system_option_list",
969   "system_option", "system_option_flag_keyword",
970   "system_option_local_flag_keyword", "tinker_command",
971   "tinker_option_list", "tinker_option", "tinker_option_keyword",
972   "miscellaneous_command", "misc_cmd_dbl_keyword", "misc_cmd_int_keyword",
973   "misc_cmd_str_keyword", "misc_cmd_str_lcl_keyword", "drift_parm",
974   "variable_assign", "t_default_or_zero", "trap_option_list",
975   "trap_option", "log_config_list", "log_config_command",
976   "interface_command", "interface_nic", "nic_rule_class",
977   "nic_rule_action", "reset_command", "counter_set_list",
978   "counter_set_keyword", "integer_list", "integer_list_range",
979   "integer_list_range_elt", "integer_range", "string_list", "address_list",
980   "boolean", "number", "simulate_command", "sim_conf_start",
981   "sim_init_statement_list", "sim_init_statement", "sim_init_keyword",
982   "sim_server_list", "sim_server", "sim_server_offset", "sim_server_name",
983   "sim_act_list", "sim_act", "sim_act_stmt_list", "sim_act_stmt",
984   "sim_act_keyword", YY_NULLPTR
985 };
986 #endif
987 
988 # ifdef YYPRINT
989 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
990    (internal) symbol number NUM (which must be that of a token).  */
991 static const yytype_uint16 yytoknum[] =
992 {
993        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
994      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
995      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
996      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
997      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
998      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
999      315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
1000      325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
1001      335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
1002      345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
1003      355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
1004      365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
1005      375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
1006      385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
1007      395,   396,   397,   398,   399,   400,   401,   402,   403,   404,
1008      405,   406,   407,   408,   409,   410,   411,   412,   413,   414,
1009      415,   416,   417,   418,   419,   420,   421,   422,   423,   424,
1010      425,   426,   427,   428,   429,   430,   431,   432,   433,   434,
1011      435,   436,   437,   438,   439,   440,   441,   442,   443,   444,
1012      445,   446,   447,   448,    61,    40,    41,   123,   125
1013 };
1014 # endif
1015 
1016 #define YYPACT_NINF -185
1017 
1018 #define yypact_value_is_default(Yystate) \
1019   (!!((Yystate) == (-185)))
1020 
1021 #define YYTABLE_NINF -7
1022 
1023 #define yytable_value_is_error(Yytable_value) \
1024   0
1025 
1026   /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1027      STATE-NUM.  */
1028 static const yytype_int16 yypact[] =
1029 {
1030       78,  -169,   -34,  -185,  -185,  -185,   -29,  -185,    17,    43,
1031     -124,  -185,    17,  -185,    -5,   -27,  -185,  -121,  -185,  -112,
1032     -110,  -185,  -185,  -100,  -185,  -185,   -27,     0,   116,   -27,
1033     -185,  -185,   -91,  -185,   -89,  -185,  -185,    11,    35,    30,
1034       13,    31,  -185,  -185,   -83,    -5,   -78,  -185,   186,   523,
1035      -76,   -56,    15,  -185,  -185,  -185,    83,   244,   -99,  -185,
1036      -27,  -185,   -27,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
1037     -185,  -185,  -185,   -12,    24,   -71,   -69,  -185,   -11,  -185,
1038     -185,  -107,  -185,  -185,  -185,     8,  -185,  -185,  -185,  -185,
1039     -185,  -185,  -185,  -185,    17,  -185,  -185,  -185,  -185,  -185,
1040     -185,    43,  -185,    34,    59,  -185,    17,  -185,  -185,  -185,
1041     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,     7,
1042     -185,   -61,   407,  -185,  -185,  -185,  -100,  -185,  -185,   -27,
1043     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,   116,
1044     -185,    44,   -27,  -185,  -185,   -52,  -185,  -185,  -185,  -185,
1045     -185,  -185,  -185,  -185,    35,  -185,  -185,    85,    96,  -185,
1046     -185,    39,  -185,  -185,  -185,  -185,    31,  -185,    75,   -46,
1047     -185,    -5,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
1048     -185,  -185,  -185,  -185,   186,  -185,   -12,  -185,  -185,   -35,
1049     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,   523,  -185,
1050       82,   -12,  -185,  -185,    91,   -56,  -185,  -185,  -185,   100,
1051     -185,   -26,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
1052     -185,  -185,  -185,  -185,    -2,  -130,  -185,  -185,  -185,  -185,
1053     -185,   105,  -185,     9,  -185,  -185,  -185,  -185,    -7,    18,
1054     -185,  -185,  -185,  -185,    25,   121,  -185,  -185,     7,  -185,
1055      -12,   -35,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
1056      391,  -185,  -185,   391,   391,   -76,  -185,  -185,    29,  -185,
1057     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,   -51,
1058      153,  -185,  -185,  -185,   464,  -185,  -185,  -185,  -185,  -185,
1059     -185,  -185,  -185,   -82,    14,     1,  -185,  -185,  -185,  -185,
1060       38,  -185,  -185,    12,  -185,  -185,  -185,  -185,  -185,  -185,
1061     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
1062     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,   391,
1063      391,  -185,   171,   -76,   140,  -185,   141,  -185,  -185,  -185,
1064     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
1065     -185,  -185,  -185,  -185,  -185,  -185,   -55,  -185,    53,    20,
1066       33,  -128,  -185,    32,  -185,   -12,  -185,  -185,  -185,  -185,
1067     -185,  -185,  -185,  -185,  -185,   391,  -185,  -185,  -185,  -185,
1068       16,  -185,  -185,  -185,   -27,  -185,  -185,  -185,    46,  -185,
1069     -185,  -185,    37,    48,   -12,    40,  -167,  -185,    54,   -12,
1070     -185,  -185,  -185,    45,    79,  -185,  -185,  -185,  -185,  -185,
1071       98,    57,    47,  -185,    60,  -185,   -12,  -185,  -185
1072 };
1073 
1074   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1075      Performed when YYTABLE does not specify something else to do.  Zero
1076      means the default is an error.  */
1077 static const yytype_uint16 yydefact[] =
1078 {
1079        0,     0,     0,    24,    58,   231,     0,    71,     0,     0,
1080      243,   234,     0,   224,     0,     0,   236,     0,   256,     0,
1081        0,   237,   235,     0,   238,    25,     0,     0,     0,     0,
1082      257,   232,     0,    23,     0,   239,    22,     0,     0,     0,
1083        0,     0,   240,    21,     0,     0,     0,   233,     0,     0,
1084        0,     0,     0,    56,    57,   292,     0,     2,     0,     7,
1085        0,     8,     0,     9,    10,    13,    11,    12,    14,    15,
1086       16,    17,    18,     0,     0,     0,     0,   217,     0,   218,
1087       19,     0,     5,    62,    63,    64,   195,   196,   197,   198,
1088      201,   199,   200,   202,   190,   192,   193,   194,   154,   155,
1089      156,   126,   152,     0,   241,   225,   189,   101,   102,   103,
1090      104,   108,   105,   106,   107,   109,    29,    30,    28,     0,
1091       26,     0,     6,    65,    66,   253,   226,   252,   285,    59,
1092       61,   160,   161,   162,   163,   164,   165,   166,   167,   127,
1093      158,     0,    60,    70,   283,   227,    67,   268,   269,   270,
1094      271,   272,   273,   274,   265,   267,   134,    29,    30,   134,
1095      134,    26,    68,   188,   186,   187,   182,   184,     0,     0,
1096      228,    96,   100,    97,   207,   208,   209,   210,   211,   212,
1097      213,   214,   215,   216,   203,   205,     0,    91,    86,     0,
1098       87,    95,    93,    94,    92,    90,    88,    89,    80,    82,
1099        0,     0,   247,   279,     0,    69,   278,   280,   276,   230,
1100        1,     0,     4,    31,    55,   290,   289,   219,   220,   221,
1101      222,   264,   263,   262,     0,     0,    79,    75,    76,    77,
1102       78,     0,    72,     0,   191,   151,   153,   242,    98,     0,
1103      178,   179,   180,   181,     0,     0,   176,   177,   168,   170,
1104        0,     0,    27,   223,   251,   284,   157,   159,   282,   266,
1105      130,   134,   134,   133,   128,     0,   183,   185,     0,    99,
1106      204,   206,   288,   286,   287,    85,    81,    83,    84,   229,
1107        0,   277,   275,     3,    20,   258,   259,   260,   255,   261,
1108      254,   296,   297,     0,     0,     0,    74,    73,   118,   117,
1109        0,   115,   116,     0,   110,   113,   114,   174,   175,   173,
1110      169,   171,   172,   136,   137,   138,   139,   140,   141,   142,
1111      143,   144,   145,   146,   147,   148,   149,   150,   135,   131,
1112      132,   134,   246,     0,     0,   248,     0,    37,    38,    39,
1113       54,    47,    49,    48,    51,    40,    41,    42,    43,    50,
1114       52,    44,    32,    33,    36,    34,     0,    35,     0,     0,
1115        0,     0,   299,     0,   294,     0,   111,   125,   121,   123,
1116      119,   120,   122,   124,   112,   129,   245,   244,   250,   249,
1117        0,    45,    46,    53,     0,   293,   291,   298,     0,   295,
1118      281,   302,     0,     0,     0,     0,     0,   304,     0,     0,
1119      300,   303,   301,     0,     0,   309,   310,   311,   312,   313,
1120        0,     0,     0,   305,     0,   307,     0,   306,   308
1121 };
1122 
1123   /* YYPGOTO[NTERM-NUM].  */
1124 static const yytype_int16 yypgoto[] =
1125 {
1126     -185,  -185,  -185,   -44,  -185,  -185,   -15,   -38,  -185,  -185,
1127     -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
1128     -185,  -185,  -185,  -185,  -185,  -185,    28,  -185,  -185,  -185,
1129     -185,   -36,  -185,  -185,  -185,  -185,  -185,  -185,  -152,  -185,
1130     -185,   146,  -185,  -185,   111,  -185,  -185,  -185,     3,  -185,
1131     -185,  -185,  -185,    89,  -185,  -185,   245,   -66,  -185,  -185,
1132     -185,  -185,    72,  -185,  -185,  -185,  -185,  -185,  -185,  -185,
1133     -185,  -185,  -185,  -185,  -185,   137,  -185,  -185,  -185,  -185,
1134     -185,  -185,   110,  -185,  -185,    70,  -185,  -185,   236,    27,
1135     -184,  -185,  -185,  -185,   -17,  -185,  -185,   -81,  -185,  -185,
1136     -185,  -113,  -185,  -126,  -185
1137 };
1138 
1139   /* YYDEFGOTO[NTERM-NUM].  */
1140 static const yytype_int16 yydefgoto[] =
1141 {
1142       -1,    56,    57,    58,    59,    60,   128,   120,   121,   284,
1143      352,   353,   354,   355,   356,   357,   358,    61,    62,    63,
1144       64,    85,   232,   233,    65,   198,   199,   200,   201,    66,
1145      171,   115,   238,   304,   305,   306,   374,    67,   260,   328,
1146      101,   102,   103,   139,   140,   141,    68,   248,   249,   250,
1147      251,    69,   166,   167,   168,    70,    94,    95,    96,    97,
1148       71,   184,   185,   186,    72,    73,    74,    75,    76,   105,
1149      170,   377,   279,   335,   126,   127,    77,    78,   290,   224,
1150       79,   154,   155,   209,   205,   206,   207,   145,   129,   275,
1151      217,    80,    81,   293,   294,   295,   361,   362,   393,   363,
1152      396,   397,   410,   411,   412
1153 };
1154 
1155   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
1156      positive, shift that token.  If negative, reduce the rule whose
1157      number is the opposite.  If YYTABLE_NINF, syntax error.  */
1158 static const yytype_int16 yytable[] =
1159 {
1160      119,   161,   271,   285,   272,   203,   381,   263,   264,   172,
1161      239,   333,   202,   211,    82,   107,   367,   278,   359,   108,
1162      215,   395,   298,   221,   160,    86,   273,    83,   234,    87,
1163      299,   400,    84,   300,   104,    88,   226,   122,   368,   116,
1164      234,   117,   147,   148,   222,   213,   123,   214,   124,   216,
1165      240,   241,   242,   243,    98,   291,   292,   156,   125,   227,
1166      149,   130,   228,   286,   359,   287,   311,   143,   223,   144,
1167      386,   301,   146,   163,   162,   169,   208,   109,   253,     1,
1168      173,   334,   118,   210,   212,   218,    89,   219,     2,   220,
1169      225,   237,     3,     4,     5,   236,   157,   252,   158,   150,
1170        6,     7,   302,   291,   292,   257,   258,     8,     9,   329,
1171      330,    10,   261,    11,   255,    12,    13,   369,   382,    14,
1172       90,    91,   110,   262,   370,   265,   164,   255,    15,   151,
1173      111,   118,    16,   112,   274,   269,   267,    92,    17,   204,
1174       18,   371,    99,   277,   229,   230,   244,   100,   268,    19,
1175       20,   231,   280,    21,    22,   113,   288,   283,    23,    24,
1176      114,   282,    25,    26,   245,   303,   296,   297,    93,   246,
1177      247,    27,   131,   132,   133,   134,   307,   289,   159,   375,
1178      165,   389,   309,   308,    28,    29,    30,   332,   118,   336,
1179      372,    31,   174,   373,   152,   365,   366,   364,   376,   153,
1180       32,   379,   380,   135,    33,   136,    34,   137,    35,    36,
1181      398,   383,   390,   138,   384,   403,   385,   175,    37,    38,
1182       39,    40,    41,    42,    43,    44,   276,   331,    45,   388,
1183       46,   394,   418,   392,   399,   176,   395,   402,   177,    47,
1184      415,   416,   404,   417,    48,    49,    50,   235,    51,    52,
1185      256,   310,    53,    54,     2,   266,   270,   106,     3,     4,
1186        5,    -6,    55,   254,   259,   142,     6,     7,   405,   406,
1187      407,   408,   409,     8,     9,   281,   360,    10,   312,    11,
1188      387,    12,    13,   401,   414,    14,     0,   405,   406,   407,
1189      408,   409,     0,     0,    15,   378,   413,     0,    16,     0,
1190        0,     0,     0,     0,    17,     0,    18,     0,     0,     0,
1191        0,   178,     0,     0,     0,    19,    20,     0,     0,    21,
1192       22,     0,     0,     0,    23,    24,     0,     0,    25,    26,
1193        0,     0,     0,     0,     0,     0,     0,    27,     0,   179,
1194      180,   181,   182,     0,     0,     0,     0,   183,     0,     0,
1195       28,    29,    30,     0,     0,     0,     0,    31,     0,     0,
1196        0,     0,     0,     0,     0,     0,    32,     0,     0,   391,
1197       33,     0,    34,     0,    35,    36,     0,     0,     0,     0,
1198        0,     0,     0,     0,    37,    38,    39,    40,    41,    42,
1199       43,    44,     0,     0,    45,     0,    46,     0,     0,     0,
1200        0,     0,     0,     0,     0,    47,     0,     0,     0,     0,
1201       48,    49,    50,     0,    51,    52,     0,     2,    53,    54,
1202        0,     3,     4,     5,     0,     0,     0,    -6,    55,     6,
1203        7,     0,     0,     0,     0,     0,     8,     9,   313,     0,
1204       10,     0,    11,     0,    12,    13,   314,     0,    14,     0,
1205        0,     0,     0,     0,     0,     0,     0,    15,     0,     0,
1206        0,    16,     0,     0,   315,   316,     0,    17,   317,    18,
1207        0,     0,     0,   337,   318,     0,     0,     0,    19,    20,
1208        0,   338,    21,    22,     0,     0,     0,    23,    24,     0,
1209        0,    25,    26,     0,     0,     0,     0,     0,     0,     0,
1210       27,   319,   320,     0,     0,   321,   322,     0,   323,   324,
1211      325,     0,   326,    28,    29,    30,     0,   339,   340,     0,
1212       31,     0,     0,     0,     0,     0,     0,     0,     0,    32,
1213        0,     0,     0,    33,   341,    34,   187,    35,    36,     0,
1214        0,     0,   188,     0,   189,     0,     0,    37,    38,    39,
1215       40,    41,    42,    43,    44,     0,   342,    45,     0,    46,
1216        0,     0,     0,     0,   343,     0,   344,   327,    47,     0,
1217        0,   190,     0,    48,    49,    50,     0,    51,    52,     0,
1218      345,    53,    54,     0,     0,     0,     0,     0,     0,     0,
1219        0,    55,     0,     0,     0,     0,     0,   346,   347,     0,
1220        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1221        0,   191,     0,   192,     0,     0,     0,     0,     0,   193,
1222        0,   194,     0,     0,   195,     0,     0,     0,     0,     0,
1223        0,     0,     0,   348,     0,   349,     0,     0,     0,     0,
1224      350,     0,     0,     0,   351,     0,   196,   197
1225 };
1226 
1227 static const yytype_int16 yycheck[] =
1228 {
1229       15,    39,   186,     5,    39,    61,    61,   159,   160,    45,
1230        3,    62,    50,    57,   183,    20,     4,   201,   146,    24,
1231       32,   188,    29,    34,    39,     8,    61,    61,    94,    12,
1232       37,   198,    61,    40,   158,    18,    28,   158,    26,    66,
1233      106,    68,     7,     8,    55,    60,   158,    62,   158,    61,
1234       43,    44,    45,    46,    11,   185,   186,    27,   158,    51,
1235       25,    61,    54,    65,   146,    67,   250,   158,    79,   158,
1236      198,    78,    61,    42,    61,   158,    61,    82,   122,     1,
1237      158,   132,   158,     0,   183,    61,    69,   158,    10,   158,
1238      197,    32,    14,    15,    16,    61,    66,   158,    68,    64,
1239       22,    23,   109,   185,   186,    61,   158,    29,    30,   261,
1240      262,    33,    27,    35,   129,    37,    38,   105,   173,    41,
1241      103,   104,   127,    27,   112,    86,    95,   142,    50,    94,
1242      135,   158,    54,   138,   169,   171,    61,   120,    60,   195,
1243       62,   129,    99,    61,   136,   137,   139,   104,   194,    71,
1244       72,   143,    61,    75,    76,   160,   158,   183,    80,    81,
1245      165,    61,    84,    85,   157,   172,    61,   158,   151,   162,
1246      163,    93,    56,    57,    58,    59,   158,   179,   148,   331,
1247      149,   365,    61,   158,   106,   107,   108,   158,   158,    36,
1248      178,   113,     6,   181,   159,   194,   158,   183,    27,   164,
1249      122,    61,    61,    87,   126,    89,   128,    91,   130,   131,
1250      394,   158,   196,    97,   194,   399,   183,    31,   140,   141,
1251      142,   143,   144,   145,   146,   147,   198,   265,   150,   197,
1252      152,   194,   416,   187,   194,    49,   188,   183,    52,   161,
1253      183,   194,   197,   183,   166,   167,   168,   101,   170,   171,
1254      139,   248,   174,   175,    10,   166,   184,    12,    14,    15,
1255       16,   183,   184,   126,   154,    29,    22,    23,   189,   190,
1256      191,   192,   193,    29,    30,   205,   293,    33,   251,    35,
1257      361,    37,    38,   396,   410,    41,    -1,   189,   190,   191,
1258      192,   193,    -1,    -1,    50,   333,   198,    -1,    54,    -1,
1259       -1,    -1,    -1,    -1,    60,    -1,    62,    -1,    -1,    -1,
1260       -1,   125,    -1,    -1,    -1,    71,    72,    -1,    -1,    75,
1261       76,    -1,    -1,    -1,    80,    81,    -1,    -1,    84,    85,
1262       -1,    -1,    -1,    -1,    -1,    -1,    -1,    93,    -1,   153,
1263      154,   155,   156,    -1,    -1,    -1,    -1,   161,    -1,    -1,
1264      106,   107,   108,    -1,    -1,    -1,    -1,   113,    -1,    -1,
1265       -1,    -1,    -1,    -1,    -1,    -1,   122,    -1,    -1,   384,
1266      126,    -1,   128,    -1,   130,   131,    -1,    -1,    -1,    -1,
1267       -1,    -1,    -1,    -1,   140,   141,   142,   143,   144,   145,
1268      146,   147,    -1,    -1,   150,    -1,   152,    -1,    -1,    -1,
1269       -1,    -1,    -1,    -1,    -1,   161,    -1,    -1,    -1,    -1,
1270      166,   167,   168,    -1,   170,   171,    -1,    10,   174,   175,
1271       -1,    14,    15,    16,    -1,    -1,    -1,   183,   184,    22,
1272       23,    -1,    -1,    -1,    -1,    -1,    29,    30,    47,    -1,
1273       33,    -1,    35,    -1,    37,    38,    55,    -1,    41,    -1,
1274       -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,
1275       -1,    54,    -1,    -1,    73,    74,    -1,    60,    77,    62,
1276       -1,    -1,    -1,     9,    83,    -1,    -1,    -1,    71,    72,
1277       -1,    17,    75,    76,    -1,    -1,    -1,    80,    81,    -1,
1278       -1,    84,    85,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1279       93,   110,   111,    -1,    -1,   114,   115,    -1,   117,   118,
1280      119,    -1,   121,   106,   107,   108,    -1,    53,    54,    -1,
1281      113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   122,
1282       -1,    -1,    -1,   126,    70,   128,    13,   130,   131,    -1,
1283       -1,    -1,    19,    -1,    21,    -1,    -1,   140,   141,   142,
1284      143,   144,   145,   146,   147,    -1,    92,   150,    -1,   152,
1285       -1,    -1,    -1,    -1,   100,    -1,   102,   176,   161,    -1,
1286       -1,    48,    -1,   166,   167,   168,    -1,   170,   171,    -1,
1287      116,   174,   175,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1288       -1,   184,    -1,    -1,    -1,    -1,    -1,   133,   134,    -1,
1289       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1290       -1,    88,    -1,    90,    -1,    -1,    -1,    -1,    -1,    96,
1291       -1,    98,    -1,    -1,   101,    -1,    -1,    -1,    -1,    -1,
1292       -1,    -1,    -1,   169,    -1,   171,    -1,    -1,    -1,    -1,
1293      176,    -1,    -1,    -1,   180,    -1,   123,   124
1294 };
1295 
1296   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1297      symbol of state STATE-NUM.  */
1298 static const yytype_uint16 yystos[] =
1299 {
1300        0,     1,    10,    14,    15,    16,    22,    23,    29,    30,
1301       33,    35,    37,    38,    41,    50,    54,    60,    62,    71,
1302       72,    75,    76,    80,    81,    84,    85,    93,   106,   107,
1303      108,   113,   122,   126,   128,   130,   131,   140,   141,   142,
1304      143,   144,   145,   146,   147,   150,   152,   161,   166,   167,
1305      168,   170,   171,   174,   175,   184,   200,   201,   202,   203,
1306      204,   216,   217,   218,   219,   223,   228,   236,   245,   250,
1307      254,   259,   263,   264,   265,   266,   267,   275,   276,   279,
1308      290,   291,   183,    61,    61,   220,     8,    12,    18,    69,
1309      103,   104,   120,   151,   255,   256,   257,   258,    11,    99,
1310      104,   239,   240,   241,   158,   268,   255,    20,    24,    82,
1311      127,   135,   138,   160,   165,   230,    66,    68,   158,   205,
1312      206,   207,   158,   158,   158,   158,   273,   274,   205,   287,
1313       61,    56,    57,    58,    59,    87,    89,    91,    97,   242,
1314      243,   244,   287,   158,   158,   286,    61,     7,     8,    25,
1315       64,    94,   159,   164,   280,   281,    27,    66,    68,   148,
1316      205,   206,    61,    42,    95,   149,   251,   252,   253,   158,
1317      269,   229,   230,   158,     6,    31,    49,    52,   125,   153,
1318      154,   155,   156,   161,   260,   261,   262,    13,    19,    21,
1319       48,    88,    90,    96,    98,   101,   123,   124,   224,   225,
1320      226,   227,   206,    61,   195,   283,   284,   285,    61,   282,
1321        0,   202,   183,   205,   205,    32,    61,   289,    61,   158,
1322      158,    34,    55,    79,   278,   197,    28,    51,    54,   136,
1323      137,   143,   221,   222,   256,   240,    61,    32,   231,     3,
1324       43,    44,    45,    46,   139,   157,   162,   163,   246,   247,
1325      248,   249,   158,   202,   274,   205,   243,    61,   158,   281,
1326      237,    27,    27,   237,   237,    86,   252,    61,   194,   230,
1327      261,   289,    39,    61,   169,   288,   225,    61,   289,   271,
1328       61,   284,    61,   183,   208,     5,    65,    67,   158,   179,
1329      277,   185,   186,   292,   293,   294,    61,   158,    29,    37,
1330       40,    78,   109,   172,   232,   233,   234,   158,   158,    61,
1331      247,   289,   288,    47,    55,    73,    74,    77,    83,   110,
1332      111,   114,   115,   117,   118,   119,   121,   176,   238,   237,
1333      237,   206,   158,    62,   132,   272,    36,     9,    17,    53,
1334       54,    70,    92,   100,   102,   116,   133,   134,   169,   171,
1335      176,   180,   209,   210,   211,   212,   213,   214,   215,   146,
1336      293,   295,   296,   298,   183,   194,   158,     4,    26,   105,
1337      112,   129,   178,   181,   235,   237,    27,   270,   206,    61,
1338       61,    61,   173,   158,   194,   183,   198,   296,   197,   289,
1339      196,   205,   187,   297,   194,   188,   299,   300,   289,   194,
1340      198,   300,   183,   289,   197,   189,   190,   191,   192,   193,
1341      301,   302,   303,   198,   302,   183,   194,   183,   289
1342 };
1343 
1344   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
1345 static const yytype_uint16 yyr1[] =
1346 {
1347        0,   199,   200,   201,   201,   201,   202,   202,   202,   202,
1348      202,   202,   202,   202,   202,   202,   202,   202,   202,   202,
1349      203,   204,   204,   204,   204,   204,   205,   205,   206,   207,
1350      207,   208,   208,   209,   209,   209,   210,   211,   211,   211,
1351      211,   211,   211,   211,   211,   212,   212,   213,   213,   213,
1352      213,   213,   213,   214,   215,   216,   217,   217,   218,   218,
1353      218,   218,   219,   219,   219,   219,   219,   219,   219,   219,
1354      219,   220,   220,   221,   221,   222,   222,   222,   222,   222,
1355      223,   224,   224,   225,   225,   225,   226,   226,   226,   226,
1356      226,   226,   227,   227,   227,   227,   228,   228,   228,   229,
1357      229,   230,   230,   230,   230,   230,   230,   230,   230,   231,
1358      231,   232,   232,   232,   232,   233,   233,   234,   234,   235,
1359      235,   235,   235,   235,   235,   235,   236,   236,   236,   236,
1360      236,   236,   236,   236,   237,   237,   238,   238,   238,   238,
1361      238,   238,   238,   238,   238,   238,   238,   238,   238,   238,
1362      238,   239,   239,   240,   241,   241,   241,   242,   242,   243,
1363      244,   244,   244,   244,   244,   244,   244,   244,   245,   246,
1364      246,   247,   247,   247,   247,   247,   248,   248,   249,   249,
1365      249,   249,   250,   251,   251,   252,   253,   253,   253,   254,
1366      254,   255,   255,   256,   256,   257,   257,   257,   257,   257,
1367      257,   258,   258,   259,   260,   260,   261,   262,   262,   262,
1368      262,   262,   262,   262,   262,   262,   262,   263,   263,   263,
1369      263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
1370      263,   264,   264,   264,   265,   265,   266,   266,   267,   267,
1371      267,   268,   268,   268,   269,   270,   270,   271,   271,   272,
1372      272,   273,   273,   274,   275,   275,   276,   276,   277,   277,
1373      277,   277,   278,   278,   278,   279,   280,   280,   281,   281,
1374      281,   281,   281,   281,   281,   282,   282,   283,   283,   284,
1375      284,   285,   286,   286,   287,   287,   288,   288,   288,   289,
1376      289,   290,   291,   292,   292,   293,   294,   294,   295,   295,
1377      296,   297,   298,   299,   299,   300,   301,   301,   302,   303,
1378      303,   303,   303,   303
1379 };
1380 
1381   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
1382 static const yytype_uint8 yyr2[] =
1383 {
1384        0,     2,     1,     3,     2,     2,     0,     1,     1,     1,
1385        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1386        3,     1,     1,     1,     1,     1,     1,     2,     1,     1,
1387        1,     0,     2,     1,     1,     1,     1,     1,     1,     1,
1388        1,     1,     1,     1,     1,     2,     2,     1,     1,     1,
1389        1,     1,     1,     2,     1,     2,     1,     1,     1,     2,
1390        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
1391        2,     0,     2,     2,     2,     1,     1,     1,     1,     1,
1392        2,     2,     1,     2,     2,     2,     1,     1,     1,     1,
1393        1,     1,     1,     1,     1,     1,     2,     2,     3,     2,
1394        1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
1395        2,     2,     2,     1,     1,     1,     1,     1,     1,     1,
1396        1,     1,     1,     1,     1,     1,     2,     2,     3,     5,
1397        3,     4,     4,     3,     0,     2,     1,     1,     1,     1,
1398        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1399        1,     2,     1,     2,     1,     1,     1,     2,     1,     2,
1400        1,     1,     1,     1,     1,     1,     1,     1,     3,     2,
1401        1,     2,     2,     2,     2,     2,     1,     1,     1,     1,
1402        1,     1,     2,     2,     1,     2,     1,     1,     1,     2,
1403        2,     2,     1,     1,     1,     1,     1,     1,     1,     1,
1404        1,     1,     1,     2,     2,     1,     2,     1,     1,     1,
1405        1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
1406        2,     2,     2,     3,     1,     2,     2,     2,     2,     3,
1407        2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
1408        1,     1,     2,     0,     4,     1,     0,     0,     2,     2,
1409        2,     2,     1,     1,     3,     3,     1,     1,     1,     1,
1410        1,     1,     1,     1,     1,     2,     2,     1,     1,     1,
1411        1,     1,     1,     1,     1,     2,     1,     2,     1,     1,
1412        1,     5,     2,     1,     2,     1,     1,     1,     1,     1,
1413        1,     5,     1,     3,     2,     3,     1,     1,     2,     1,
1414        5,     4,     3,     2,     1,     6,     3,     2,     3,     1,
1415        1,     1,     1,     1
1416 };
1417 
1418 
1419 #define yyerrok         (yyerrstatus = 0)
1420 #define yyclearin       (yychar = YYEMPTY)
1421 #define YYEMPTY         (-2)
1422 #define YYEOF           0
1423 
1424 #define YYACCEPT        goto yyacceptlab
1425 #define YYABORT         goto yyabortlab
1426 #define YYERROR         goto yyerrorlab
1427 
1428 
1429 #define YYRECOVERING()  (!!yyerrstatus)
1430 
1431 #define YYBACKUP(Token, Value)                                  \
1432 do                                                              \
1433   if (yychar == YYEMPTY)                                        \
1434     {                                                           \
1435       yychar = (Token);                                         \
1436       yylval = (Value);                                         \
1437       YYPOPSTACK (yylen);                                       \
1438       yystate = *yyssp;                                         \
1439       goto yybackup;                                            \
1440     }                                                           \
1441   else                                                          \
1442     {                                                           \
1443       yyerror (YY_("syntax error: cannot back up")); \
1444       YYERROR;                                                  \
1445     }                                                           \
1446 while (0)
1447 
1448 /* Error token number */
1449 #define YYTERROR        1
1450 #define YYERRCODE       256
1451 
1452 
1453 
1454 /* Enable debugging if requested.  */
1455 #if YYDEBUG
1456 
1457 # ifndef YYFPRINTF
1458 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1459 #  define YYFPRINTF fprintf
1460 # endif
1461 
1462 # define YYDPRINTF(Args)                        \
1463 do {                                            \
1464   if (yydebug)                                  \
1465     YYFPRINTF Args;                             \
1466 } while (0)
1467 
1468 /* This macro is provided for backward compatibility. */
1469 #ifndef YY_LOCATION_PRINT
1470 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
1471 #endif
1472 
1473 
1474 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
1475 do {                                                                      \
1476   if (yydebug)                                                            \
1477     {                                                                     \
1478       YYFPRINTF (stderr, "%s ", Title);                                   \
1479       yy_symbol_print (stderr,                                            \
1480                   Type, Value); \
1481       YYFPRINTF (stderr, "\n");                                           \
1482     }                                                                     \
1483 } while (0)
1484 
1485 
1486 /*----------------------------------------.
1487 | Print this symbol's value on YYOUTPUT.  |
1488 `----------------------------------------*/
1489 
1490 static void
1491 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1492 {
1493   FILE *yyo = yyoutput;
1494   YYUSE (yyo);
1495   if (!yyvaluep)
1496     return;
1497 # ifdef YYPRINT
1498   if (yytype < YYNTOKENS)
1499     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1500 # endif
1501   YYUSE (yytype);
1502 }
1503 
1504 
1505 /*--------------------------------.
1506 | Print this symbol on YYOUTPUT.  |
1507 `--------------------------------*/
1508 
1509 static void
1510 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1511 {
1512   YYFPRINTF (yyoutput, "%s %s (",
1513              yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1514 
1515   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1516   YYFPRINTF (yyoutput, ")");
1517 }
1518 
1519 /*------------------------------------------------------------------.
1520 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
1521 | TOP (included).                                                   |
1522 `------------------------------------------------------------------*/
1523 
1524 static void
1525 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1526 {
1527   YYFPRINTF (stderr, "Stack now");
1528   for (; yybottom <= yytop; yybottom++)
1529     {
1530       int yybot = *yybottom;
1531       YYFPRINTF (stderr, " %d", yybot);
1532     }
1533   YYFPRINTF (stderr, "\n");
1534 }
1535 
1536 # define YY_STACK_PRINT(Bottom, Top)                            \
1537 do {                                                            \
1538   if (yydebug)                                                  \
1539     yy_stack_print ((Bottom), (Top));                           \
1540 } while (0)
1541 
1542 
1543 /*------------------------------------------------.
1544 | Report that the YYRULE is going to be reduced.  |
1545 `------------------------------------------------*/
1546 
1547 static void
1548 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1549 {
1550   unsigned long int yylno = yyrline[yyrule];
1551   int yynrhs = yyr2[yyrule];
1552   int yyi;
1553   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1554              yyrule - 1, yylno);
1555   /* The symbols being reduced.  */
1556   for (yyi = 0; yyi < yynrhs; yyi++)
1557     {
1558       YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1559       yy_symbol_print (stderr,
1560                        yystos[yyssp[yyi + 1 - yynrhs]],
1561                        &(yyvsp[(yyi + 1) - (yynrhs)])
1562                                               );
1563       YYFPRINTF (stderr, "\n");
1564     }
1565 }
1566 
1567 # define YY_REDUCE_PRINT(Rule)          \
1568 do {                                    \
1569   if (yydebug)                          \
1570     yy_reduce_print (yyssp, yyvsp, Rule); \
1571 } while (0)
1572 
1573 /* Nonzero means print parse trace.  It is left uninitialized so that
1574    multiple parsers can coexist.  */
1575 int yydebug;
1576 #else /* !YYDEBUG */
1577 # define YYDPRINTF(Args)
1578 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
1579 # define YY_STACK_PRINT(Bottom, Top)
1580 # define YY_REDUCE_PRINT(Rule)
1581 #endif /* !YYDEBUG */
1582 
1583 
1584 /* YYINITDEPTH -- initial size of the parser's stacks.  */
1585 #ifndef YYINITDEPTH
1586 # define YYINITDEPTH 200
1587 #endif
1588 
1589 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1590    if the built-in stack extension method is used).
1591 
1592    Do not make this value too large; the results are undefined if
1593    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
1594    evaluated with infinite-precision integer arithmetic.  */
1595 
1596 #ifndef YYMAXDEPTH
1597 # define YYMAXDEPTH 10000
1598 #endif
1599 
1600 
1601 #if YYERROR_VERBOSE
1602 
1603 # ifndef yystrlen
1604 #  if defined __GLIBC__ && defined _STRING_H
1605 #   define yystrlen strlen
1606 #  else
1607 /* Return the length of YYSTR.  */
1608 static YYSIZE_T
1609 yystrlen (const char *yystr)
1610 {
1611   YYSIZE_T yylen;
1612   for (yylen = 0; yystr[yylen]; yylen++)
1613     continue;
1614   return yylen;
1615 }
1616 #  endif
1617 # endif
1618 
1619 # ifndef yystpcpy
1620 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
1621 #   define yystpcpy stpcpy
1622 #  else
1623 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1624    YYDEST.  */
1625 static char *
1626 yystpcpy (char *yydest, const char *yysrc)
1627 {
1628   char *yyd = yydest;
1629   const char *yys = yysrc;
1630 
1631   while ((*yyd++ = *yys++) != '\0')
1632     continue;
1633 
1634   return yyd - 1;
1635 }
1636 #  endif
1637 # endif
1638 
1639 # ifndef yytnamerr
1640 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
1641    quotes and backslashes, so that it's suitable for yyerror.  The
1642    heuristic is that double-quoting is unnecessary unless the string
1643    contains an apostrophe, a comma, or backslash (other than
1644    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
1645    null, do not copy; instead, return the length of what the result
1646    would have been.  */
1647 static YYSIZE_T
1648 yytnamerr (char *yyres, const char *yystr)
1649 {
1650   if (*yystr == '"')
1651     {
1652       YYSIZE_T yyn = 0;
1653       char const *yyp = yystr;
1654 
1655       for (;;)
1656         switch (*++yyp)
1657           {
1658           case '\'':
1659           case ',':
1660             goto do_not_strip_quotes;
1661 
1662           case '\\':
1663             if (*++yyp != '\\')
1664               goto do_not_strip_quotes;
1665             /* Fall through.  */
1666           default:
1667             if (yyres)
1668               yyres[yyn] = *yyp;
1669             yyn++;
1670             break;
1671 
1672           case '"':
1673             if (yyres)
1674               yyres[yyn] = '\0';
1675             return yyn;
1676           }
1677     do_not_strip_quotes: ;
1678     }
1679 
1680   if (! yyres)
1681     return yystrlen (yystr);
1682 
1683   return yystpcpy (yyres, yystr) - yyres;
1684 }
1685 # endif
1686 
1687 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
1688    about the unexpected token YYTOKEN for the state stack whose top is
1689    YYSSP.
1690 
1691    Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
1692    not large enough to hold the message.  In that case, also set
1693    *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
1694    required number of bytes is too large to store.  */
1695 static int
1696 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1697                 yytype_int16 *yyssp, int yytoken)
1698 {
1699   YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1700   YYSIZE_T yysize = yysize0;
1701   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1702   /* Internationalized format string. */
1703   const char *yyformat = YY_NULLPTR;
1704   /* Arguments of yyformat. */
1705   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1706   /* Number of reported tokens (one for the "unexpected", one per
1707      "expected"). */
1708   int yycount = 0;
1709 
1710   /* There are many possibilities here to consider:
1711      - If this state is a consistent state with a default action, then
1712        the only way this function was invoked is if the default action
1713        is an error action.  In that case, don't check for expected
1714        tokens because there are none.
1715      - The only way there can be no lookahead present (in yychar) is if
1716        this state is a consistent state with a default action.  Thus,
1717        detecting the absence of a lookahead is sufficient to determine
1718        that there is no unexpected or expected token to report.  In that
1719        case, just report a simple "syntax error".
1720      - Don't assume there isn't a lookahead just because this state is a
1721        consistent state with a default action.  There might have been a
1722        previous inconsistent state, consistent state with a non-default
1723        action, or user semantic action that manipulated yychar.
1724      - Of course, the expected token list depends on states to have
1725        correct lookahead information, and it depends on the parser not
1726        to perform extra reductions after fetching a lookahead from the
1727        scanner and before detecting a syntax error.  Thus, state merging
1728        (from LALR or IELR) and default reductions corrupt the expected
1729        token list.  However, the list is correct for canonical LR with
1730        one exception: it will still contain any token that will not be
1731        accepted due to an error action in a later state.
1732   */
1733   if (yytoken != YYEMPTY)
1734     {
1735       int yyn = yypact[*yyssp];
1736       yyarg[yycount++] = yytname[yytoken];
1737       if (!yypact_value_is_default (yyn))
1738         {
1739           /* Start YYX at -YYN if negative to avoid negative indexes in
1740              YYCHECK.  In other words, skip the first -YYN actions for
1741              this state because they are default actions.  */
1742           int yyxbegin = yyn < 0 ? -yyn : 0;
1743           /* Stay within bounds of both yycheck and yytname.  */
1744           int yychecklim = YYLAST - yyn + 1;
1745           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
1746           int yyx;
1747 
1748           for (yyx = yyxbegin; yyx < yyxend; ++yyx)
1749             if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
1750                 && !yytable_value_is_error (yytable[yyx + yyn]))
1751               {
1752                 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
1753                   {
1754                     yycount = 1;
1755                     yysize = yysize0;
1756                     break;
1757                   }
1758                 yyarg[yycount++] = yytname[yyx];
1759                 {
1760                   YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1761                   if (! (yysize <= yysize1
1762                          && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1763                     return 2;
1764                   yysize = yysize1;
1765                 }
1766               }
1767         }
1768     }
1769 
1770   switch (yycount)
1771     {
1772 # define YYCASE_(N, S)                      \
1773       case N:                               \
1774         yyformat = S;                       \
1775       break
1776       YYCASE_(0, YY_("syntax error"));
1777       YYCASE_(1, YY_("syntax error, unexpected %s"));
1778       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
1779       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
1780       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
1781       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
1782 # undef YYCASE_
1783     }
1784 
1785   {
1786     YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1787     if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1788       return 2;
1789     yysize = yysize1;
1790   }
1791 
1792   if (*yymsg_alloc < yysize)
1793     {
1794       *yymsg_alloc = 2 * yysize;
1795       if (! (yysize <= *yymsg_alloc
1796              && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
1797         *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
1798       return 1;
1799     }
1800 
1801   /* Avoid sprintf, as that infringes on the user's name space.
1802      Don't have undefined behavior even if the translation
1803      produced a string with the wrong number of "%s"s.  */
1804   {
1805     char *yyp = *yymsg;
1806     int yyi = 0;
1807     while ((*yyp = *yyformat) != '\0')
1808       if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
1809         {
1810           yyp += yytnamerr (yyp, yyarg[yyi++]);
1811           yyformat += 2;
1812         }
1813       else
1814         {
1815           yyp++;
1816           yyformat++;
1817         }
1818   }
1819   return 0;
1820 }
1821 #endif /* YYERROR_VERBOSE */
1822 
1823 /*-----------------------------------------------.
1824 | Release the memory associated to this symbol.  |
1825 `-----------------------------------------------*/
1826 
1827 static void
1828 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1829 {
1830   YYUSE (yyvaluep);
1831   if (!yymsg)
1832     yymsg = "Deleting";
1833   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1834 
1835   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1836   YYUSE (yytype);
1837   YY_IGNORE_MAYBE_UNINITIALIZED_END
1838 }
1839 
1840 
1841 
1842 
1843 /* The lookahead symbol.  */
1844 int yychar;
1845 
1846 /* The semantic value of the lookahead symbol.  */
1847 YYSTYPE yylval;
1848 /* Number of syntax errors so far.  */
1849 int yynerrs;
1850 
1851 
1852 /*----------.
1853 | yyparse.  |
1854 `----------*/
1855 
1856 int
1857 yyparse (void)
1858 {
1859     int yystate;
1860     /* Number of tokens to shift before error messages enabled.  */
1861     int yyerrstatus;
1862 
1863     /* The stacks and their tools:
1864        'yyss': related to states.
1865        'yyvs': related to semantic values.
1866 
1867        Refer to the stacks through separate pointers, to allow yyoverflow
1868        to reallocate them elsewhere.  */
1869 
1870     /* The state stack.  */
1871     yytype_int16 yyssa[YYINITDEPTH];
1872     yytype_int16 *yyss;
1873     yytype_int16 *yyssp;
1874 
1875     /* The semantic value stack.  */
1876     YYSTYPE yyvsa[YYINITDEPTH];
1877     YYSTYPE *yyvs;
1878     YYSTYPE *yyvsp;
1879 
1880     YYSIZE_T yystacksize;
1881 
1882   int yyn;
1883   int yyresult;
1884   /* Lookahead token as an internal (translated) token number.  */
1885   int yytoken = 0;
1886   /* The variables used to return semantic value and location from the
1887      action routines.  */
1888   YYSTYPE yyval;
1889 
1890 #if YYERROR_VERBOSE
1891   /* Buffer for error messages, and its allocated size.  */
1892   char yymsgbuf[128];
1893   char *yymsg = yymsgbuf;
1894   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1895 #endif
1896 
1897 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
1898 
1899   /* The number of symbols on the RHS of the reduced rule.
1900      Keep to zero when no symbol should be popped.  */
1901   int yylen = 0;
1902 
1903   yyssp = yyss = yyssa;
1904   yyvsp = yyvs = yyvsa;
1905   yystacksize = YYINITDEPTH;
1906 
1907   YYDPRINTF ((stderr, "Starting parse\n"));
1908 
1909   yystate = 0;
1910   yyerrstatus = 0;
1911   yynerrs = 0;
1912   yychar = YYEMPTY; /* Cause a token to be read.  */
1913   goto yysetstate;
1914 
1915 /*------------------------------------------------------------.
1916 | yynewstate -- Push a new state, which is found in yystate.  |
1917 `------------------------------------------------------------*/
1918  yynewstate:
1919   /* In all cases, when you get here, the value and location stacks
1920      have just been pushed.  So pushing a state here evens the stacks.  */
1921   yyssp++;
1922 
1923  yysetstate:
1924   *yyssp = yystate;
1925 
1926   if (yyss + yystacksize - 1 <= yyssp)
1927     {
1928       /* Get the current used size of the three stacks, in elements.  */
1929       YYSIZE_T yysize = yyssp - yyss + 1;
1930 
1931 #ifdef yyoverflow
1932       {
1933         /* Give user a chance to reallocate the stack.  Use copies of
1934            these so that the &'s don't force the real ones into
1935            memory.  */
1936         YYSTYPE *yyvs1 = yyvs;
1937         yytype_int16 *yyss1 = yyss;
1938 
1939         /* Each stack pointer address is followed by the size of the
1940            data in use in that stack, in bytes.  This used to be a
1941            conditional around just the two extra args, but that might
1942            be undefined if yyoverflow is a macro.  */
1943         yyoverflow (YY_("memory exhausted"),
1944                     &yyss1, yysize * sizeof (*yyssp),
1945                     &yyvs1, yysize * sizeof (*yyvsp),
1946                     &yystacksize);
1947 
1948         yyss = yyss1;
1949         yyvs = yyvs1;
1950       }
1951 #else /* no yyoverflow */
1952 # ifndef YYSTACK_RELOCATE
1953       goto yyexhaustedlab;
1954 # else
1955       /* Extend the stack our own way.  */
1956       if (YYMAXDEPTH <= yystacksize)
1957         goto yyexhaustedlab;
1958       yystacksize *= 2;
1959       if (YYMAXDEPTH < yystacksize)
1960         yystacksize = YYMAXDEPTH;
1961 
1962       {
1963         yytype_int16 *yyss1 = yyss;
1964         union yyalloc *yyptr =
1965           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1966         if (! yyptr)
1967           goto yyexhaustedlab;
1968         YYSTACK_RELOCATE (yyss_alloc, yyss);
1969         YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1970 #  undef YYSTACK_RELOCATE
1971         if (yyss1 != yyssa)
1972           YYSTACK_FREE (yyss1);
1973       }
1974 # endif
1975 #endif /* no yyoverflow */
1976 
1977       yyssp = yyss + yysize - 1;
1978       yyvsp = yyvs + yysize - 1;
1979 
1980       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1981                   (unsigned long int) yystacksize));
1982 
1983       if (yyss + yystacksize - 1 <= yyssp)
1984         YYABORT;
1985     }
1986 
1987   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1988 
1989   if (yystate == YYFINAL)
1990     YYACCEPT;
1991 
1992   goto yybackup;
1993 
1994 /*-----------.
1995 | yybackup.  |
1996 `-----------*/
1997 yybackup:
1998 
1999   /* Do appropriate processing given the current state.  Read a
2000      lookahead token if we need one and don't already have one.  */
2001 
2002   /* First try to decide what to do without reference to lookahead token.  */
2003   yyn = yypact[yystate];
2004   if (yypact_value_is_default (yyn))
2005     goto yydefault;
2006 
2007   /* Not known => get a lookahead token if don't already have one.  */
2008 
2009   /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
2010   if (yychar == YYEMPTY)
2011     {
2012       YYDPRINTF ((stderr, "Reading a token: "));
2013       yychar = yylex ();
2014     }
2015 
2016   if (yychar <= YYEOF)
2017     {
2018       yychar = yytoken = YYEOF;
2019       YYDPRINTF ((stderr, "Now at end of input.\n"));
2020     }
2021   else
2022     {
2023       yytoken = YYTRANSLATE (yychar);
2024       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
2025     }
2026 
2027   /* If the proper action on seeing token YYTOKEN is to reduce or to
2028      detect an error, take that action.  */
2029   yyn += yytoken;
2030   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
2031     goto yydefault;
2032   yyn = yytable[yyn];
2033   if (yyn <= 0)
2034     {
2035       if (yytable_value_is_error (yyn))
2036         goto yyerrlab;
2037       yyn = -yyn;
2038       goto yyreduce;
2039     }
2040 
2041   /* Count tokens shifted since error; after three, turn off error
2042      status.  */
2043   if (yyerrstatus)
2044     yyerrstatus--;
2045 
2046   /* Shift the lookahead token.  */
2047   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
2048 
2049   /* Discard the shifted token.  */
2050   yychar = YYEMPTY;
2051 
2052   yystate = yyn;
2053   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2054   *++yyvsp = yylval;
2055   YY_IGNORE_MAYBE_UNINITIALIZED_END
2056 
2057   goto yynewstate;
2058 
2059 
2060 /*-----------------------------------------------------------.
2061 | yydefault -- do the default action for the current state.  |
2062 `-----------------------------------------------------------*/
2063 yydefault:
2064   yyn = yydefact[yystate];
2065   if (yyn == 0)
2066     goto yyerrlab;
2067   goto yyreduce;
2068 
2069 
2070 /*-----------------------------.
2071 | yyreduce -- Do a reduction.  |
2072 `-----------------------------*/
2073 yyreduce:
2074   /* yyn is the number of a rule to reduce with.  */
2075   yylen = yyr2[yyn];
2076 
2077   /* If YYLEN is nonzero, implement the default value of the action:
2078      '$$ = $1'.
2079 
2080      Otherwise, the following line sets YYVAL to garbage.
2081      This behavior is undocumented and Bison
2082      users should not rely upon it.  Assigning to YYVAL
2083      unconditionally makes the parser a bit smaller, and it avoids a
2084      GCC warning that YYVAL may be used uninitialized.  */
2085   yyval = yyvsp[1-yylen];
2086 
2087 
2088   YY_REDUCE_PRINT (yyn);
2089   switch (yyn)
2090     {
2091         case 5:
2092 #line 373 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2093     {
2094 			/* I will need to incorporate much more fine grained
2095 			 * error messages. The following should suffice for
2096 			 * the time being.
2097 			 */
2098 			struct FILE_INFO * ip_ctx = lex_current();
2099 			msyslog(LOG_ERR,
2100 				"syntax error in %s line %d, column %d",
2101 				ip_ctx->fname,
2102 				ip_ctx->errpos.nline,
2103 				ip_ctx->errpos.ncol);
2104 		}
2105 #line 2106 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2106     break;
2107 
2108   case 20:
2109 #line 409 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2110     {
2111 			peer_node *my_node;
2112 
2113 			my_node = create_peer_node((yyvsp[-2].Integer), (yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
2114 			APPEND_G_FIFO(cfgt.peers, my_node);
2115 		}
2116 #line 2117 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2117     break;
2118 
2119   case 27:
2120 #line 428 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2121     { (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); }
2122 #line 2123 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2123     break;
2124 
2125   case 28:
2126 #line 433 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2127     { (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); }
2128 #line 2129 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2129     break;
2130 
2131   case 29:
2132 #line 438 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2133     { (yyval.Integer) = AF_INET; }
2134 #line 2135 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2135     break;
2136 
2137   case 30:
2138 #line 440 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2139     { (yyval.Integer) = AF_INET6; }
2140 #line 2141 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2141     break;
2142 
2143   case 31:
2144 #line 445 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2145     { (yyval.Attr_val_fifo) = NULL; }
2146 #line 2147 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2147     break;
2148 
2149   case 32:
2150 #line 447 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2151     {
2152 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2153 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2154 		}
2155 #line 2156 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2156     break;
2157 
2158   case 36:
2159 #line 461 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2160     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
2161 #line 2162 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2162     break;
2163 
2164   case 45:
2165 #line 477 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2166     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
2167 #line 2168 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2168     break;
2169 
2170   case 46:
2171 #line 479 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2172     { (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
2173 #line 2174 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2174     break;
2175 
2176   case 53:
2177 #line 493 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2178     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
2179 #line 2180 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2180     break;
2181 
2182   case 55:
2183 #line 507 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2184     {
2185 			unpeer_node *my_node;
2186 
2187 			my_node = create_unpeer_node((yyvsp[0].Address_node));
2188 			if (my_node)
2189 				APPEND_G_FIFO(cfgt.unpeers, my_node);
2190 		}
2191 #line 2192 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2192     break;
2193 
2194   case 58:
2195 #line 528 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2196     { cfgt.broadcastclient = 1; }
2197 #line 2198 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2198     break;
2199 
2200   case 59:
2201 #line 530 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2202     { CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); }
2203 #line 2204 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2204     break;
2205 
2206   case 60:
2207 #line 532 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2208     { CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); }
2209 #line 2210 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2210     break;
2211 
2212   case 61:
2213 #line 534 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2214     { cfgt.mdnstries = (yyvsp[0].Integer); }
2215 #line 2216 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2216     break;
2217 
2218   case 62:
2219 #line 545 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2220     {
2221 			attr_val *atrv;
2222 
2223 			atrv = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
2224 			APPEND_G_FIFO(cfgt.vars, atrv);
2225 		}
2226 #line 2227 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2227     break;
2228 
2229   case 63:
2230 #line 552 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2231     { cfgt.auth.control_key = (yyvsp[0].Integer); }
2232 #line 2233 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2233     break;
2234 
2235   case 64:
2236 #line 554 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2237     {
2238 			cfgt.auth.cryptosw++;
2239 			CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo));
2240 		}
2241 #line 2242 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2242     break;
2243 
2244   case 65:
2245 #line 559 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2246     { cfgt.auth.keys = (yyvsp[0].String); }
2247 #line 2248 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2248     break;
2249 
2250   case 66:
2251 #line 561 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2252     { cfgt.auth.keysdir = (yyvsp[0].String); }
2253 #line 2254 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2254     break;
2255 
2256   case 67:
2257 #line 563 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2258     { cfgt.auth.request_key = (yyvsp[0].Integer); }
2259 #line 2260 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2260     break;
2261 
2262   case 68:
2263 #line 565 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2264     { cfgt.auth.revoke = (yyvsp[0].Integer); }
2265 #line 2266 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2266     break;
2267 
2268   case 69:
2269 #line 567 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2270     {
2271 			cfgt.auth.trusted_key_list = (yyvsp[0].Attr_val_fifo);
2272 
2273 			// if (!cfgt.auth.trusted_key_list)
2274 			// 	cfgt.auth.trusted_key_list = $2;
2275 			// else
2276 			// 	LINK_SLIST(cfgt.auth.trusted_key_list, $2, link);
2277 		}
2278 #line 2279 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2279     break;
2280 
2281   case 70:
2282 #line 576 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2283     { cfgt.auth.ntp_signd_socket = (yyvsp[0].String); }
2284 #line 2285 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2285     break;
2286 
2287   case 71:
2288 #line 581 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2289     { (yyval.Attr_val_fifo) = NULL; }
2290 #line 2291 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2291     break;
2292 
2293   case 72:
2294 #line 583 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2295     {
2296 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2297 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2298 		}
2299 #line 2300 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2300     break;
2301 
2302   case 73:
2303 #line 591 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2304     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
2305 #line 2306 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2306     break;
2307 
2308   case 74:
2309 #line 593 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2310     {
2311 			(yyval.Attr_val) = NULL;
2312 			cfgt.auth.revoke = (yyvsp[0].Integer);
2313 			msyslog(LOG_WARNING,
2314 				"'crypto revoke %d' is deprecated, "
2315 				"please use 'revoke %d' instead.",
2316 				cfgt.auth.revoke, cfgt.auth.revoke);
2317 		}
2318 #line 2319 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2319     break;
2320 
2321   case 80:
2322 #line 618 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2323     { CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); }
2324 #line 2325 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2325     break;
2326 
2327   case 81:
2328 #line 623 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2329     {
2330 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2331 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2332 		}
2333 #line 2334 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2334     break;
2335 
2336   case 82:
2337 #line 628 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2338     {
2339 			(yyval.Attr_val_fifo) = NULL;
2340 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2341 		}
2342 #line 2343 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2343     break;
2344 
2345   case 83:
2346 #line 636 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2347     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
2348 #line 2349 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2349     break;
2350 
2351   case 84:
2352 #line 638 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2353     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
2354 #line 2355 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2355     break;
2356 
2357   case 85:
2358 #line 640 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2359     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
2360 #line 2361 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2361     break;
2362 
2363   case 96:
2364 #line 666 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2365     { CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); }
2366 #line 2367 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2367     break;
2368 
2369   case 97:
2370 #line 668 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2371     {
2372 			if (lex_from_file()) {
2373 				cfgt.stats_dir = (yyvsp[0].String);
2374 			} else {
2375 				YYFREE((yyvsp[0].String));
2376 				yyerror("statsdir remote configuration ignored");
2377 			}
2378 		}
2379 #line 2380 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2380     break;
2381 
2382   case 98:
2383 #line 677 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2384     {
2385 			filegen_node *fgn;
2386 
2387 			fgn = create_filegen_node((yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo));
2388 			APPEND_G_FIFO(cfgt.filegen_opts, fgn);
2389 		}
2390 #line 2391 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2391     break;
2392 
2393   case 99:
2394 #line 687 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2395     {
2396 			(yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
2397 			APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
2398 		}
2399 #line 2400 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2400     break;
2401 
2402   case 100:
2403 #line 692 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2404     {
2405 			(yyval.Int_fifo) = NULL;
2406 			APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
2407 		}
2408 #line 2409 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2409     break;
2410 
2411   case 109:
2412 #line 711 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2413     { (yyval.Attr_val_fifo) = NULL; }
2414 #line 2415 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2415     break;
2416 
2417   case 110:
2418 #line 713 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2419     {
2420 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2421 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2422 		}
2423 #line 2424 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2424     break;
2425 
2426   case 111:
2427 #line 721 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2428     {
2429 			if (lex_from_file()) {
2430 				(yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
2431 			} else {
2432 				(yyval.Attr_val) = NULL;
2433 				YYFREE((yyvsp[0].String));
2434 				yyerror("filegen file remote config ignored");
2435 			}
2436 		}
2437 #line 2438 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2438     break;
2439 
2440   case 112:
2441 #line 731 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2442     {
2443 			if (lex_from_file()) {
2444 				(yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
2445 			} else {
2446 				(yyval.Attr_val) = NULL;
2447 				yyerror("filegen type remote config ignored");
2448 			}
2449 		}
2450 #line 2451 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2451     break;
2452 
2453   case 113:
2454 #line 740 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2455     {
2456 			const char *err;
2457 
2458 			if (lex_from_file()) {
2459 				(yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
2460 			} else {
2461 				(yyval.Attr_val) = NULL;
2462 				if (T_Link == (yyvsp[0].Integer))
2463 					err = "filegen link remote config ignored";
2464 				else
2465 					err = "filegen nolink remote config ignored";
2466 				yyerror(err);
2467 			}
2468 		}
2469 #line 2470 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2470     break;
2471 
2472   case 114:
2473 #line 755 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2474     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
2475 #line 2476 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2476     break;
2477 
2478   case 126:
2479 #line 785 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2480     {
2481 			CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo));
2482 		}
2483 #line 2484 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2484     break;
2485 
2486   case 127:
2487 #line 789 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2488     {
2489 			CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo));
2490 		}
2491 #line 2492 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2492     break;
2493 
2494   case 128:
2495 #line 793 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2496     {
2497 			restrict_node *rn;
2498 
2499 			rn = create_restrict_node((yyvsp[-1].Address_node), NULL, (yyvsp[0].Int_fifo),
2500 						  lex_current()->curpos.nline);
2501 			APPEND_G_FIFO(cfgt.restrict_opts, rn);
2502 		}
2503 #line 2504 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2504     break;
2505 
2506   case 129:
2507 #line 801 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2508     {
2509 			restrict_node *rn;
2510 
2511 			rn = create_restrict_node((yyvsp[-3].Address_node), (yyvsp[-1].Address_node), (yyvsp[0].Int_fifo),
2512 						  lex_current()->curpos.nline);
2513 			APPEND_G_FIFO(cfgt.restrict_opts, rn);
2514 		}
2515 #line 2516 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2516     break;
2517 
2518   case 130:
2519 #line 809 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2520     {
2521 			restrict_node *rn;
2522 
2523 			rn = create_restrict_node(NULL, NULL, (yyvsp[0].Int_fifo),
2524 						  lex_current()->curpos.nline);
2525 			APPEND_G_FIFO(cfgt.restrict_opts, rn);
2526 		}
2527 #line 2528 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2528     break;
2529 
2530   case 131:
2531 #line 817 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2532     {
2533 			restrict_node *rn;
2534 
2535 			rn = create_restrict_node(
2536 				create_address_node(
2537 					estrdup("0.0.0.0"),
2538 					AF_INET),
2539 				create_address_node(
2540 					estrdup("0.0.0.0"),
2541 					AF_INET),
2542 				(yyvsp[0].Int_fifo),
2543 				lex_current()->curpos.nline);
2544 			APPEND_G_FIFO(cfgt.restrict_opts, rn);
2545 		}
2546 #line 2547 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2547     break;
2548 
2549   case 132:
2550 #line 832 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2551     {
2552 			restrict_node *rn;
2553 
2554 			rn = create_restrict_node(
2555 				create_address_node(
2556 					estrdup("::"),
2557 					AF_INET6),
2558 				create_address_node(
2559 					estrdup("::"),
2560 					AF_INET6),
2561 				(yyvsp[0].Int_fifo),
2562 				lex_current()->curpos.nline);
2563 			APPEND_G_FIFO(cfgt.restrict_opts, rn);
2564 		}
2565 #line 2566 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2566     break;
2567 
2568   case 133:
2569 #line 847 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2570     {
2571 			restrict_node *	rn;
2572 
2573 			APPEND_G_FIFO((yyvsp[0].Int_fifo), create_int_node((yyvsp[-1].Integer)));
2574 			rn = create_restrict_node(
2575 				NULL, NULL, (yyvsp[0].Int_fifo), lex_current()->curpos.nline);
2576 			APPEND_G_FIFO(cfgt.restrict_opts, rn);
2577 		}
2578 #line 2579 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2579     break;
2580 
2581   case 134:
2582 #line 859 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2583     { (yyval.Int_fifo) = NULL; }
2584 #line 2585 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2585     break;
2586 
2587   case 135:
2588 #line 861 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2589     {
2590 			(yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
2591 			APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
2592 		}
2593 #line 2594 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2594     break;
2595 
2596   case 151:
2597 #line 887 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2598     {
2599 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2600 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2601 		}
2602 #line 2603 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2603     break;
2604 
2605   case 152:
2606 #line 892 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2607     {
2608 			(yyval.Attr_val_fifo) = NULL;
2609 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2610 		}
2611 #line 2612 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2612     break;
2613 
2614   case 153:
2615 #line 900 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2616     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
2617 #line 2618 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2618     break;
2619 
2620   case 157:
2621 #line 911 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2622     {
2623 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2624 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2625 		}
2626 #line 2627 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2627     break;
2628 
2629   case 158:
2630 #line 916 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2631     {
2632 			(yyval.Attr_val_fifo) = NULL;
2633 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2634 		}
2635 #line 2636 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2636     break;
2637 
2638   case 159:
2639 #line 924 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2640     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
2641 #line 2642 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2642     break;
2643 
2644   case 168:
2645 #line 944 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2646     {
2647 			addr_opts_node *aon;
2648 
2649 			aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
2650 			APPEND_G_FIFO(cfgt.fudge, aon);
2651 		}
2652 #line 2653 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2653     break;
2654 
2655   case 169:
2656 #line 954 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2657     {
2658 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2659 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2660 		}
2661 #line 2662 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2662     break;
2663 
2664   case 170:
2665 #line 959 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2666     {
2667 			(yyval.Attr_val_fifo) = NULL;
2668 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2669 		}
2670 #line 2671 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2671     break;
2672 
2673   case 171:
2674 #line 967 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2675     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
2676 #line 2677 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2677     break;
2678 
2679   case 172:
2680 #line 969 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2681     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
2682 #line 2683 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2683     break;
2684 
2685   case 173:
2686 #line 971 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2687     {
2688 			if ((yyvsp[0].Integer) >= 0 && (yyvsp[0].Integer) <= 16) {
2689 				(yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
2690 			} else {
2691 				(yyval.Attr_val) = NULL;
2692 				yyerror("fudge factor: stratum value not in [0..16], ignored");
2693 			}
2694 		}
2695 #line 2696 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2696     break;
2697 
2698   case 174:
2699 #line 980 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2700     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
2701 #line 2702 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2702     break;
2703 
2704   case 175:
2705 #line 982 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2706     { (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
2707 #line 2708 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2708     break;
2709 
2710   case 182:
2711 #line 1003 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2712     { CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); }
2713 #line 2714 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2714     break;
2715 
2716   case 183:
2717 #line 1008 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2718     {
2719 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2720 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2721 		}
2722 #line 2723 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2723     break;
2724 
2725   case 184:
2726 #line 1013 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2727     {
2728 			(yyval.Attr_val_fifo) = NULL;
2729 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2730 		}
2731 #line 2732 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2732     break;
2733 
2734   case 185:
2735 #line 1021 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2736     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
2737 #line 2738 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2738     break;
2739 
2740   case 189:
2741 #line 1037 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2742     { CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); }
2743 #line 2744 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2744     break;
2745 
2746   case 190:
2747 #line 1039 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2748     { CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); }
2749 #line 2750 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2750     break;
2751 
2752   case 191:
2753 #line 1044 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2754     {
2755 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2756 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2757 		}
2758 #line 2759 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2759     break;
2760 
2761   case 192:
2762 #line 1049 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2763     {
2764 			(yyval.Attr_val_fifo) = NULL;
2765 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2766 		}
2767 #line 2768 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2768     break;
2769 
2770   case 193:
2771 #line 1057 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2772     { (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
2773 #line 2774 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2774     break;
2775 
2776   case 194:
2777 #line 1059 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2778     {
2779 			if (lex_from_file()) {
2780 				(yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
2781 			} else {
2782 				char err_str[128];
2783 
2784 				(yyval.Attr_val) = NULL;
2785 				snprintf(err_str, sizeof(err_str),
2786 					 "enable/disable %s remote configuration ignored",
2787 					 keyword((yyvsp[0].Integer)));
2788 				yyerror(err_str);
2789 			}
2790 		}
2791 #line 2792 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2792     break;
2793 
2794   case 203:
2795 #line 1094 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2796     { CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); }
2797 #line 2798 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2798     break;
2799 
2800   case 204:
2801 #line 1099 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2802     {
2803 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
2804 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2805 		}
2806 #line 2807 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2807     break;
2808 
2809   case 205:
2810 #line 1104 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2811     {
2812 			(yyval.Attr_val_fifo) = NULL;
2813 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
2814 		}
2815 #line 2816 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2816     break;
2817 
2818   case 206:
2819 #line 1112 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2820     { (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
2821 #line 2822 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2822     break;
2823 
2824   case 219:
2825 #line 1137 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2826     {
2827 			attr_val *av;
2828 
2829 			av = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double));
2830 			APPEND_G_FIFO(cfgt.vars, av);
2831 		}
2832 #line 2833 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2833     break;
2834 
2835   case 220:
2836 #line 1144 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2837     {
2838 			attr_val *av;
2839 
2840 			av = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
2841 			APPEND_G_FIFO(cfgt.vars, av);
2842 		}
2843 #line 2844 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2844     break;
2845 
2846   case 221:
2847 #line 1151 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2848     {
2849 			attr_val *av;
2850 
2851 			av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
2852 			APPEND_G_FIFO(cfgt.vars, av);
2853 		}
2854 #line 2855 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2855     break;
2856 
2857   case 222:
2858 #line 1158 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2859     {
2860 			char error_text[64];
2861 			attr_val *av;
2862 
2863 			if (lex_from_file()) {
2864 				av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
2865 				APPEND_G_FIFO(cfgt.vars, av);
2866 			} else {
2867 				YYFREE((yyvsp[0].String));
2868 				snprintf(error_text, sizeof(error_text),
2869 					 "%s remote config ignored",
2870 					 keyword((yyvsp[-1].Integer)));
2871 				yyerror(error_text);
2872 			}
2873 		}
2874 #line 2875 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2875     break;
2876 
2877   case 223:
2878 #line 1174 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2879     {
2880 			if (!lex_from_file()) {
2881 				YYFREE((yyvsp[-1].String)); /* avoid leak */
2882 				yyerror("remote includefile ignored");
2883 				break;
2884 			}
2885 			if (lex_level() > MAXINCLUDELEVEL) {
2886 				fprintf(stderr, "getconfig: Maximum include file level exceeded.\n");
2887 				msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded.");
2888 			} else {
2889 				const char * path = FindConfig((yyvsp[-1].String)); /* might return $2! */
2890 				if (!lex_push_file(path, "r")) {
2891 					fprintf(stderr, "getconfig: Couldn't open <%s>\n", path);
2892 					msyslog(LOG_ERR, "getconfig: Couldn't open <%s>", path);
2893 				}
2894 			}
2895 			YYFREE((yyvsp[-1].String)); /* avoid leak */
2896 		}
2897 #line 2898 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2898     break;
2899 
2900   case 224:
2901 #line 1193 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2902     { lex_flush_stack(); }
2903 #line 2904 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2904     break;
2905 
2906   case 225:
2907 #line 1195 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2908     { /* see drift_parm below for actions */ }
2909 #line 2910 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2910     break;
2911 
2912   case 226:
2913 #line 1197 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2914     { CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); }
2915 #line 2916 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2916     break;
2917 
2918   case 227:
2919 #line 1199 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2920     { CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); }
2921 #line 2922 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2922     break;
2923 
2924   case 228:
2925 #line 1201 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2926     { APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); }
2927 #line 2928 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2928     break;
2929 
2930   case 229:
2931 #line 1203 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2932     {
2933 			addr_opts_node *aon;
2934 
2935 			aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
2936 			APPEND_G_FIFO(cfgt.trap, aon);
2937 		}
2938 #line 2939 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2939     break;
2940 
2941   case 230:
2942 #line 1210 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2943     { CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); }
2944 #line 2945 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2945     break;
2946 
2947   case 235:
2948 #line 1225 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2949     {
2950 #ifndef LEAP_SMEAR
2951 			yyerror("Built without LEAP_SMEAR support.");
2952 #endif
2953 		}
2954 #line 2955 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2955     break;
2956 
2957   case 241:
2958 #line 1245 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2959     {
2960 			if (lex_from_file()) {
2961 				attr_val *av;
2962 				av = create_attr_sval(T_Driftfile, (yyvsp[0].String));
2963 				APPEND_G_FIFO(cfgt.vars, av);
2964 			} else {
2965 				YYFREE((yyvsp[0].String));
2966 				yyerror("driftfile remote configuration ignored");
2967 			}
2968 		}
2969 #line 2970 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2970     break;
2971 
2972   case 242:
2973 #line 1256 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2974     {
2975 			if (lex_from_file()) {
2976 				attr_val *av;
2977 				av = create_attr_sval(T_Driftfile, (yyvsp[-1].String));
2978 				APPEND_G_FIFO(cfgt.vars, av);
2979 				av = create_attr_dval(T_WanderThreshold, (yyvsp[0].Double));
2980 				APPEND_G_FIFO(cfgt.vars, av);
2981 			} else {
2982 				YYFREE((yyvsp[-1].String));
2983 				yyerror("driftfile remote configuration ignored");
2984 			}
2985 		}
2986 #line 2987 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
2987     break;
2988 
2989   case 243:
2990 #line 1269 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
2991     {
2992 			if (lex_from_file()) {
2993 				attr_val *av;
2994 				av = create_attr_sval(T_Driftfile, estrdup(""));
2995 				APPEND_G_FIFO(cfgt.vars, av);
2996 			} else {
2997 				yyerror("driftfile remote configuration ignored");
2998 			}
2999 		}
3000 #line 3001 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3001     break;
3002 
3003   case 244:
3004 #line 1282 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3005     { (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); }
3006 #line 3007 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3007     break;
3008 
3009   case 246:
3010 #line 1288 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3011     { (yyval.Integer) = 0; }
3012 #line 3013 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3013     break;
3014 
3015   case 247:
3016 #line 1293 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3017     { (yyval.Attr_val_fifo) = NULL; }
3018 #line 3019 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3019     break;
3020 
3021   case 248:
3022 #line 1295 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3023     {
3024 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
3025 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
3026 		}
3027 #line 3028 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3028     break;
3029 
3030   case 249:
3031 #line 1303 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3032     { (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
3033 #line 3034 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3034     break;
3035 
3036   case 250:
3037 #line 1305 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3038     {
3039 			(yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), estrdup((yyvsp[0].Address_node)->address));
3040 			destroy_address_node((yyvsp[0].Address_node));
3041 		}
3042 #line 3043 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3043     break;
3044 
3045   case 251:
3046 #line 1313 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3047     {
3048 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
3049 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
3050 		}
3051 #line 3052 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3052     break;
3053 
3054   case 252:
3055 #line 1318 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3056     {
3057 			(yyval.Attr_val_fifo) = NULL;
3058 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
3059 		}
3060 #line 3061 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3061     break;
3062 
3063   case 253:
3064 #line 1326 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3065     {
3066 			char	prefix;
3067 			char *	type;
3068 
3069 			switch ((yyvsp[0].String)[0]) {
3070 
3071 			case '+':
3072 			case '-':
3073 			case '=':
3074 				prefix = (yyvsp[0].String)[0];
3075 				type = (yyvsp[0].String) + 1;
3076 				break;
3077 
3078 			default:
3079 				prefix = '=';
3080 				type = (yyvsp[0].String);
3081 			}
3082 
3083 			(yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
3084 			YYFREE((yyvsp[0].String));
3085 		}
3086 #line 3087 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3087     break;
3088 
3089   case 254:
3090 #line 1351 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3091     {
3092 			nic_rule_node *nrn;
3093 
3094 			nrn = create_nic_rule_node((yyvsp[0].Integer), NULL, (yyvsp[-1].Integer));
3095 			APPEND_G_FIFO(cfgt.nic_rules, nrn);
3096 		}
3097 #line 3098 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3098     break;
3099 
3100   case 255:
3101 #line 1358 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3102     {
3103 			nic_rule_node *nrn;
3104 
3105 			nrn = create_nic_rule_node(0, (yyvsp[0].String), (yyvsp[-1].Integer));
3106 			APPEND_G_FIFO(cfgt.nic_rules, nrn);
3107 		}
3108 #line 3109 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3109     break;
3110 
3111   case 265:
3112 #line 1386 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3113     { CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); }
3114 #line 3115 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3115     break;
3116 
3117   case 266:
3118 #line 1391 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3119     {
3120 			(yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
3121 			APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
3122 		}
3123 #line 3124 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3124     break;
3125 
3126   case 267:
3127 #line 1396 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3128     {
3129 			(yyval.Int_fifo) = NULL;
3130 			APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
3131 		}
3132 #line 3133 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3133     break;
3134 
3135   case 275:
3136 #line 1420 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3137     {
3138 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
3139 			APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
3140 		}
3141 #line 3142 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3142     break;
3143 
3144   case 276:
3145 #line 1425 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3146     {
3147 			(yyval.Attr_val_fifo) = NULL;
3148 			APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
3149 		}
3150 #line 3151 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3151     break;
3152 
3153   case 277:
3154 #line 1433 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3155     {
3156 			(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
3157 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
3158 		}
3159 #line 3160 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3160     break;
3161 
3162   case 278:
3163 #line 1438 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3164     {
3165 			(yyval.Attr_val_fifo) = NULL;
3166 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
3167 		}
3168 #line 3169 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3169     break;
3170 
3171   case 279:
3172 #line 1446 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3173     { (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); }
3174 #line 3175 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3175     break;
3176 
3177   case 281:
3178 #line 1452 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3179     { (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); }
3180 #line 3181 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3181     break;
3182 
3183   case 282:
3184 #line 1457 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3185     {
3186 			(yyval.String_fifo) = (yyvsp[-1].String_fifo);
3187 			APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
3188 		}
3189 #line 3190 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3190     break;
3191 
3192   case 283:
3193 #line 1462 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3194     {
3195 			(yyval.String_fifo) = NULL;
3196 			APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
3197 		}
3198 #line 3199 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3199     break;
3200 
3201   case 284:
3202 #line 1470 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3203     {
3204 			(yyval.Address_fifo) = (yyvsp[-1].Address_fifo);
3205 			APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
3206 		}
3207 #line 3208 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3208     break;
3209 
3210   case 285:
3211 #line 1475 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3212     {
3213 			(yyval.Address_fifo) = NULL;
3214 			APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
3215 		}
3216 #line 3217 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3217     break;
3218 
3219   case 286:
3220 #line 1483 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3221     {
3222 			if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) {
3223 				yyerror("Integer value is not boolean (0 or 1). Assuming 1");
3224 				(yyval.Integer) = 1;
3225 			} else {
3226 				(yyval.Integer) = (yyvsp[0].Integer);
3227 			}
3228 		}
3229 #line 3230 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3230     break;
3231 
3232   case 287:
3233 #line 1491 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3234     { (yyval.Integer) = 1; }
3235 #line 3236 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3236     break;
3237 
3238   case 288:
3239 #line 1492 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3240     { (yyval.Integer) = 0; }
3241 #line 3242 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3242     break;
3243 
3244   case 289:
3245 #line 1496 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3246     { (yyval.Double) = (double)(yyvsp[0].Integer); }
3247 #line 3248 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3248     break;
3249 
3250   case 291:
3251 #line 1507 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3252     {
3253 			sim_node *sn;
3254 
3255 			sn =  create_sim_node((yyvsp[-2].Attr_val_fifo), (yyvsp[-1].Sim_server_fifo));
3256 			APPEND_G_FIFO(cfgt.sim_details, sn);
3257 
3258 			/* Revert from ; to \n for end-of-command */
3259 			old_config_style = 1;
3260 		}
3261 #line 3262 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3262     break;
3263 
3264   case 292:
3265 #line 1524 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3266     { old_config_style = 0; }
3267 #line 3268 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3268     break;
3269 
3270   case 293:
3271 #line 1529 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3272     {
3273 			(yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
3274 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
3275 		}
3276 #line 3277 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3277     break;
3278 
3279   case 294:
3280 #line 1534 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3281     {
3282 			(yyval.Attr_val_fifo) = NULL;
3283 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
3284 		}
3285 #line 3286 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3286     break;
3287 
3288   case 295:
3289 #line 1542 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3290     { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
3291 #line 3292 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3292     break;
3293 
3294   case 298:
3295 #line 1552 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3296     {
3297 			(yyval.Sim_server_fifo) = (yyvsp[-1].Sim_server_fifo);
3298 			APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
3299 		}
3300 #line 3301 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3301     break;
3302 
3303   case 299:
3304 #line 1557 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3305     {
3306 			(yyval.Sim_server_fifo) = NULL;
3307 			APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
3308 		}
3309 #line 3310 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3310     break;
3311 
3312   case 300:
3313 #line 1565 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3314     { (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[-4].Address_node), (yyvsp[-2].Double), (yyvsp[-1].Sim_script_fifo))); }
3315 #line 3316 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3316     break;
3317 
3318   case 301:
3319 #line 1570 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3320     { (yyval.Double) = (yyvsp[-1].Double); }
3321 #line 3322 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3322     break;
3323 
3324   case 302:
3325 #line 1575 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3326     { (yyval.Address_node) = (yyvsp[0].Address_node); }
3327 #line 3328 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3328     break;
3329 
3330   case 303:
3331 #line 1580 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3332     {
3333 			(yyval.Sim_script_fifo) = (yyvsp[-1].Sim_script_fifo);
3334 			APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
3335 		}
3336 #line 3337 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3337     break;
3338 
3339   case 304:
3340 #line 1585 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3341     {
3342 			(yyval.Sim_script_fifo) = NULL;
3343 			APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
3344 		}
3345 #line 3346 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3346     break;
3347 
3348   case 305:
3349 #line 1593 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3350     { (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); }
3351 #line 3352 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3352     break;
3353 
3354   case 306:
3355 #line 1598 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3356     {
3357 			(yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
3358 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
3359 		}
3360 #line 3361 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3361     break;
3362 
3363   case 307:
3364 #line 1603 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3365     {
3366 			(yyval.Attr_val_fifo) = NULL;
3367 			APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
3368 		}
3369 #line 3370 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3370     break;
3371 
3372   case 308:
3373 #line 1611 "../../ntpd/ntp_parser.y" /* yacc.c:1646  */
3374     { (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
3375 #line 3376 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3376     break;
3377 
3378 
3379 #line 3380 "../../ntpd/ntp_parser.c" /* yacc.c:1646  */
3380       default: break;
3381     }
3382   /* User semantic actions sometimes alter yychar, and that requires
3383      that yytoken be updated with the new translation.  We take the
3384      approach of translating immediately before every use of yytoken.
3385      One alternative is translating here after every semantic action,
3386      but that translation would be missed if the semantic action invokes
3387      YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3388      if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
3389      incorrect destructor might then be invoked immediately.  In the
3390      case of YYERROR or YYBACKUP, subsequent parser actions might lead
3391      to an incorrect destructor call or verbose syntax error message
3392      before the lookahead is translated.  */
3393   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
3394 
3395   YYPOPSTACK (yylen);
3396   yylen = 0;
3397   YY_STACK_PRINT (yyss, yyssp);
3398 
3399   *++yyvsp = yyval;
3400 
3401   /* Now 'shift' the result of the reduction.  Determine what state
3402      that goes to, based on the state we popped back to and the rule
3403      number reduced by.  */
3404 
3405   yyn = yyr1[yyn];
3406 
3407   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
3408   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
3409     yystate = yytable[yystate];
3410   else
3411     yystate = yydefgoto[yyn - YYNTOKENS];
3412 
3413   goto yynewstate;
3414 
3415 
3416 /*--------------------------------------.
3417 | yyerrlab -- here on detecting error.  |
3418 `--------------------------------------*/
3419 yyerrlab:
3420   /* Make sure we have latest lookahead translation.  See comments at
3421      user semantic actions for why this is necessary.  */
3422   yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
3423 
3424   /* If not already recovering from an error, report this error.  */
3425   if (!yyerrstatus)
3426     {
3427       ++yynerrs;
3428 #if ! YYERROR_VERBOSE
3429       yyerror (YY_("syntax error"));
3430 #else
3431 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
3432                                         yyssp, yytoken)
3433       {
3434         char const *yymsgp = YY_("syntax error");
3435         int yysyntax_error_status;
3436         yysyntax_error_status = YYSYNTAX_ERROR;
3437         if (yysyntax_error_status == 0)
3438           yymsgp = yymsg;
3439         else if (yysyntax_error_status == 1)
3440           {
3441             if (yymsg != yymsgbuf)
3442               YYSTACK_FREE (yymsg);
3443             yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
3444             if (!yymsg)
3445               {
3446                 yymsg = yymsgbuf;
3447                 yymsg_alloc = sizeof yymsgbuf;
3448                 yysyntax_error_status = 2;
3449               }
3450             else
3451               {
3452                 yysyntax_error_status = YYSYNTAX_ERROR;
3453                 yymsgp = yymsg;
3454               }
3455           }
3456         yyerror (yymsgp);
3457         if (yysyntax_error_status == 2)
3458           goto yyexhaustedlab;
3459       }
3460 # undef YYSYNTAX_ERROR
3461 #endif
3462     }
3463 
3464 
3465 
3466   if (yyerrstatus == 3)
3467     {
3468       /* If just tried and failed to reuse lookahead token after an
3469          error, discard it.  */
3470 
3471       if (yychar <= YYEOF)
3472         {
3473           /* Return failure if at end of input.  */
3474           if (yychar == YYEOF)
3475             YYABORT;
3476         }
3477       else
3478         {
3479           yydestruct ("Error: discarding",
3480                       yytoken, &yylval);
3481           yychar = YYEMPTY;
3482         }
3483     }
3484 
3485   /* Else will try to reuse lookahead token after shifting the error
3486      token.  */
3487   goto yyerrlab1;
3488 
3489 
3490 /*---------------------------------------------------.
3491 | yyerrorlab -- error raised explicitly by YYERROR.  |
3492 `---------------------------------------------------*/
3493 yyerrorlab:
3494 
3495   /* Pacify compilers like GCC when the user code never invokes
3496      YYERROR and the label yyerrorlab therefore never appears in user
3497      code.  */
3498   if (/*CONSTCOND*/ 0)
3499      goto yyerrorlab;
3500 
3501   /* Do not reclaim the symbols of the rule whose action triggered
3502      this YYERROR.  */
3503   YYPOPSTACK (yylen);
3504   yylen = 0;
3505   YY_STACK_PRINT (yyss, yyssp);
3506   yystate = *yyssp;
3507   goto yyerrlab1;
3508 
3509 
3510 /*-------------------------------------------------------------.
3511 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
3512 `-------------------------------------------------------------*/
3513 yyerrlab1:
3514   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
3515 
3516   for (;;)
3517     {
3518       yyn = yypact[yystate];
3519       if (!yypact_value_is_default (yyn))
3520         {
3521           yyn += YYTERROR;
3522           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
3523             {
3524               yyn = yytable[yyn];
3525               if (0 < yyn)
3526                 break;
3527             }
3528         }
3529 
3530       /* Pop the current state because it cannot handle the error token.  */
3531       if (yyssp == yyss)
3532         YYABORT;
3533 
3534 
3535       yydestruct ("Error: popping",
3536                   yystos[yystate], yyvsp);
3537       YYPOPSTACK (1);
3538       yystate = *yyssp;
3539       YY_STACK_PRINT (yyss, yyssp);
3540     }
3541 
3542   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3543   *++yyvsp = yylval;
3544   YY_IGNORE_MAYBE_UNINITIALIZED_END
3545 
3546 
3547   /* Shift the error token.  */
3548   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
3549 
3550   yystate = yyn;
3551   goto yynewstate;
3552 
3553 
3554 /*-------------------------------------.
3555 | yyacceptlab -- YYACCEPT comes here.  |
3556 `-------------------------------------*/
3557 yyacceptlab:
3558   yyresult = 0;
3559   goto yyreturn;
3560 
3561 /*-----------------------------------.
3562 | yyabortlab -- YYABORT comes here.  |
3563 `-----------------------------------*/
3564 yyabortlab:
3565   yyresult = 1;
3566   goto yyreturn;
3567 
3568 #if !defined yyoverflow || YYERROR_VERBOSE
3569 /*-------------------------------------------------.
3570 | yyexhaustedlab -- memory exhaustion comes here.  |
3571 `-------------------------------------------------*/
3572 yyexhaustedlab:
3573   yyerror (YY_("memory exhausted"));
3574   yyresult = 2;
3575   /* Fall through.  */
3576 #endif
3577 
3578 yyreturn:
3579   if (yychar != YYEMPTY)
3580     {
3581       /* Make sure we have latest lookahead translation.  See comments at
3582          user semantic actions for why this is necessary.  */
3583       yytoken = YYTRANSLATE (yychar);
3584       yydestruct ("Cleanup: discarding lookahead",
3585                   yytoken, &yylval);
3586     }
3587   /* Do not reclaim the symbols of the rule whose action triggered
3588      this YYABORT or YYACCEPT.  */
3589   YYPOPSTACK (yylen);
3590   YY_STACK_PRINT (yyss, yyssp);
3591   while (yyssp != yyss)
3592     {
3593       yydestruct ("Cleanup: popping",
3594                   yystos[*yyssp], yyvsp);
3595       YYPOPSTACK (1);
3596     }
3597 #ifndef yyoverflow
3598   if (yyss != yyssa)
3599     YYSTACK_FREE (yyss);
3600 #endif
3601 #if YYERROR_VERBOSE
3602   if (yymsg != yymsgbuf)
3603     YYSTACK_FREE (yymsg);
3604 #endif
3605   return yyresult;
3606 }
3607 #line 1622 "../../ntpd/ntp_parser.y" /* yacc.c:1906  */
3608 
3609 
3610 void
3611 yyerror(
3612 	const char *msg
3613 	)
3614 {
3615 	int retval;
3616 	struct FILE_INFO * ip_ctx;
3617 
3618 	ip_ctx = lex_current();
3619 	ip_ctx->errpos = ip_ctx->tokpos;
3620 
3621 	msyslog(LOG_ERR, "line %d column %d %s",
3622 		ip_ctx->errpos.nline, ip_ctx->errpos.ncol, msg);
3623 	if (!lex_from_file()) {
3624 		/* Save the error message in the correct buffer */
3625 		retval = snprintf(remote_config.err_msg + remote_config.err_pos,
3626 				  MAXLINE - remote_config.err_pos,
3627 				  "column %d %s",
3628 				  ip_ctx->errpos.ncol, msg);
3629 
3630 		/* Increment the value of err_pos */
3631 		if (retval > 0)
3632 			remote_config.err_pos += retval;
3633 
3634 		/* Increment the number of errors */
3635 		++remote_config.no_errors;
3636 	}
3637 }
3638 
3639 
3640 /*
3641  * token_name - convert T_ token integers to text
3642  *		example: token_name(T_Server) returns "T_Server"
3643  */
3644 const char *
3645 token_name(
3646 	int token
3647 	)
3648 {
3649 	return yytname[YYTRANSLATE(token)];
3650 }
3651 
3652 
3653 /* Initial Testing function -- ignore */
3654 #if 0
3655 int main(int argc, char *argv[])
3656 {
3657 	ip_file = FOPEN(argv[1], "r");
3658 	if (!ip_file)
3659 		fprintf(stderr, "ERROR!! Could not open file: %s\n", argv[1]);
3660 	yyparse();
3661 	return 0;
3662 }
3663 #endif
3664 
3665