xref: /freebsd/contrib/ntp/ntpd/ntp_parser.c (revision 7937bfbc0ca53fe7cdd0d54414f9296e273a518e)
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
137 extern 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
586 union 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 };
610 typedef union YYSTYPE YYSTYPE;
611 # define YYSTYPE_IS_TRIVIAL 1
612 # define YYSTYPE_IS_DECLARED 1
613 #endif
614 
615 
616 extern YYSTYPE yylval;
617 
618 
619 int yyparse (void);
620 
621 
622 #endif /* !YY_YY_NTP_PARSER_H_INCLUDED  */
623 /* Symbol kind.  */
624 enum 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 };
966 typedef 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__
993 typedef __INT_LEAST8_TYPE__ yytype_int8;
994 #elif defined YY_STDINT_H
995 typedef int_least8_t yytype_int8;
996 #else
997 typedef signed char yytype_int8;
998 #endif
999 
1000 #ifdef __INT_LEAST16_MAX__
1001 typedef __INT_LEAST16_TYPE__ yytype_int16;
1002 #elif defined YY_STDINT_H
1003 typedef int_least16_t yytype_int16;
1004 #else
1005 typedef 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__
1021 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
1022 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
1023        && UINT_LEAST8_MAX <= INT_MAX)
1024 typedef uint_least8_t yytype_uint8;
1025 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
1026 typedef unsigned char yytype_uint8;
1027 #else
1028 typedef short yytype_uint8;
1029 #endif
1030 
1031 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
1032 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
1033 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
1034        && UINT_LEAST16_MAX <= INT_MAX)
1035 typedef uint_least16_t yytype_uint16;
1036 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
1037 typedef unsigned short yytype_uint16;
1038 #else
1039 typedef 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). */
1081 typedef yytype_int16 yy_state_t;
1082 
1083 /* State numbers in computations.  */
1084 typedef 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
1217 void *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
1223 void 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.  */
1234 union 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.  */
1316 static 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.  */
1370 static 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.  */
1416 static 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.  */
1420 static 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 
1501 static const char *
1502 yysymbol_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.  */
1520 static 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.  */
1574 static 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].  */
1626 static 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].  */
1643 static 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.  */
1662 static 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 
1738 static 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.  */
1816 static 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.  */
1868 static 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.  */
1908 static 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 
1948 enum { 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)                        \
1992 do {                                            \
1993   if (yydebug)                                  \
1994     YYFPRINTF Args;                             \
1995 } while (0)
1996 
1997 
1998 
1999 
2000 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)                    \
2001 do {                                                                      \
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 
2016 static void
2017 yy_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 
2034 static void
2035 yy_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 
2050 static void
2051 yy_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)                            \
2063 do {                                                            \
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 
2073 static void
2074 yy_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)          \
2094 do {                                    \
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.  */
2101 int 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 
2135 static void
2136 yydestruct (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.  */
2151 int yychar;
2152 
2153 /* The semantic value of the lookahead symbol.  */
2154 YYSTYPE yylval;
2155 /* Number of syntax errors so far.  */
2156 int yynerrs;
2157 
2158 
2159 
2160 
2161 /*----------.
2162 | yyparse.  |
2163 `----------*/
2164 
2165 int
2166 yyparse (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 `------------------------------------------------------------*/
2215 yynewstate:
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 `--------------------------------------------------------------------*/
2224 yysetstate:
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 `-----------*/
2305 yybackup:
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 `-----------------------------------------------------------*/
2379 yydefault:
2380   yyn = yydefact[yystate];
2381   if (yyn == 0)
2382     goto yyerrlab;
2383   goto yyreduce;
2384 
2385 
2386 /*-----------------------------.
2387 | yyreduce -- do a reduction.  |
2388 `-----------------------------*/
2389 yyreduce:
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 `--------------------------------------*/
3954 yyerrlab:
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 `---------------------------------------------------*/
3992 yyerrorlab:
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 `-------------------------------------------------------------*/
4011 yyerrlab1:
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 `-------------------------------------*/
4056 yyacceptlab:
4057   yyresult = 0;
4058   goto yyreturnlab;
4059 
4060 
4061 /*-----------------------------------.
4062 | yyabortlab -- YYABORT comes here.  |
4063 `-----------------------------------*/
4064 yyabortlab:
4065   yyresult = 1;
4066   goto yyreturnlab;
4067 
4068 
4069 /*-----------------------------------------------------------.
4070 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
4071 `-----------------------------------------------------------*/
4072 yyexhaustedlab:
4073   yyerror (YY_("memory exhausted"));
4074   yyresult = 2;
4075   goto yyreturnlab;
4076 
4077 
4078 /*----------------------------------------------------------.
4079 | yyreturnlab -- parsing is finished, clean up and return.  |
4080 `----------------------------------------------------------*/
4081 yyreturnlab:
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 
4111 void
4112 yyerror(
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  */
4145 const char *
4146 token_name(
4147 	int token
4148 	)
4149 {
4150 	return yytname[YYTRANSLATE(token)];
4151 }
4152 
4153 
4154 /* Initial Testing function -- ignore */
4155 #if 0
4156 int 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