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