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