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