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