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