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