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