#define YYBISON 1
#define YYBISON_VERSION "2.3"
#define YYSKELETON_NAME "yacc.c"
#define YYPURE 0
#define YYLSP_NEEDED 0
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
enum yytokentype {
T_Abbrev = 258,
T_Age = 259,
T_All = 260,
T_Allan = 261,
T_Allpeers = 262,
T_Auth = 263,
T_Autokey = 264,
T_Automax = 265,
T_Average = 266,
T_Bclient = 267,
T_Bcpollbstep = 268,
T_Beacon = 269,
T_Broadcast = 270,
T_Broadcastclient = 271,
T_Broadcastdelay = 272,
T_Burst = 273,
T_Calibrate = 274,
T_Ceiling = 275,
T_Clockstats = 276,
T_Cohort = 277,
T_ControlKey = 278,
T_Crypto = 279,
T_Cryptostats = 280,
T_Ctl = 281,
T_Day = 282,
T_Default = 283,
T_Digest = 284,
T_Disable = 285,
T_Discard = 286,
T_Dispersion = 287,
T_Double = 288,
T_Driftfile = 289,
T_Drop = 290,
T_Dscp = 291,
T_Ellipsis = 292,
T_Enable = 293,
T_End = 294,
T_False = 295,
T_File = 296,
T_Filegen = 297,
T_Filenum = 298,
T_Flag1 = 299,
T_Flag2 = 300,
T_Flag3 = 301,
T_Flag4 = 302,
T_Flake = 303,
T_Floor = 304,
T_Freq = 305,
T_Fudge = 306,
T_Host = 307,
T_Huffpuff = 308,
T_Iburst = 309,
T_Ident = 310,
T_Ignore = 311,
T_Incalloc = 312,
T_Incmem = 313,
T_Initalloc = 314,
T_Initmem = 315,
T_Includefile = 316,
T_Integer = 317,
T_Interface = 318,
T_Intrange = 319,
T_Io = 320,
T_Ipv4 = 321,
T_Ipv4_flag = 322,
T_Ipv6 = 323,
T_Ipv6_flag = 324,
T_Kernel = 325,
T_Key = 326,
T_Keys = 327,
T_Keysdir = 328,
T_Kod = 329,
T_Mssntp = 330,
T_Leapfile = 331,
T_Leapsmearinterval = 332,
T_Limited = 333,
T_Link = 334,
T_Listen = 335,
T_Logconfig = 336,
T_Logfile = 337,
T_Loopstats = 338,
T_Lowpriotrap = 339,
T_Manycastclient = 340,
T_Manycastserver = 341,
T_Mask = 342,
T_Maxage = 343,
T_Maxclock = 344,
T_Maxdepth = 345,
T_Maxdist = 346,
T_Maxmem = 347,
T_Maxpoll = 348,
T_Mdnstries = 349,
T_Mem = 350,
T_Memlock = 351,
T_Minclock = 352,
T_Mindepth = 353,
T_Mindist = 354,
T_Minimum = 355,
T_Minpoll = 356,
T_Minsane = 357,
T_Mode = 358,
T_Mode7 = 359,
T_Monitor = 360,
T_Month = 361,
T_Mru = 362,
T_Multicastclient = 363,
T_Nic = 364,
T_Nolink = 365,
T_Nomodify = 366,
T_Nomrulist = 367,
T_None = 368,
T_Nonvolatile = 369,
T_Nopeer = 370,
T_Noquery = 371,
T_Noselect = 372,
T_Noserve = 373,
T_Notrap = 374,
T_Notrust = 375,
T_Ntp = 376,
T_Ntpport = 377,
T_NtpSignDsocket = 378,
T_Orphan = 379,
T_Orphanwait = 380,
T_PCEdigest = 381,
T_Panic = 382,
T_Peer = 383,
T_Peerstats = 384,
T_Phone = 385,
T_Pid = 386,
T_Pidfile = 387,
T_Pool = 388,
T_Port = 389,
T_Preempt = 390,
T_Prefer = 391,
T_Protostats = 392,
T_Pw = 393,
T_Randfile = 394,
T_Rawstats = 395,
T_Refid = 396,
T_Requestkey = 397,
T_Reset = 398,
T_Restrict = 399,
T_Revoke = 400,
T_Rlimit = 401,
T_Saveconfigdir = 402,
T_Server = 403,
T_Setvar = 404,
T_Source = 405,
T_Stacksize = 406,
T_Statistics = 407,
T_Stats = 408,
T_Statsdir = 409,
T_Step = 410,
T_Stepback = 411,
T_Stepfwd = 412,
T_Stepout = 413,
T_Stratum = 414,
T_String = 415,
T_Sys = 416,
T_Sysstats = 417,
T_Tick = 418,
T_Time1 = 419,
T_Time2 = 420,
T_Timer = 421,
T_Timingstats = 422,
T_Tinker = 423,
T_Tos = 424,
T_Trap = 425,
T_True = 426,
T_Trustedkey = 427,
T_Ttl = 428,
T_Type = 429,
T_U_int = 430,
T_UEcrypto = 431,
T_UEcryptonak = 432,
T_UEdigest = 433,
T_Unconfig = 434,
T_Unpeer = 435,
T_Version = 436,
T_WanderThreshold = 437,
T_Week = 438,
T_Wildcard = 439,
T_Xleave = 440,
T_Year = 441,
T_Flag = 442,
T_EOC = 443,
T_Simulate = 444,
T_Beep_Delay = 445,
T_Sim_Duration = 446,
T_Server_Offset = 447,
T_Duration = 448,
T_Freq_Offset = 449,
T_Wander = 450,
T_Jitter = 451,
T_Prop_Delay = 452,
T_Proc_Delay = 453
};
#endif
#define T_Abbrev 258
#define T_Age 259
#define T_All 260
#define T_Allan 261
#define T_Allpeers 262
#define T_Auth 263
#define T_Autokey 264
#define T_Automax 265
#define T_Average 266
#define T_Bclient 267
#define T_Bcpollbstep 268
#define T_Beacon 269
#define T_Broadcast 270
#define T_Broadcastclient 271
#define T_Broadcastdelay 272
#define T_Burst 273
#define T_Calibrate 274
#define T_Ceiling 275
#define T_Clockstats 276
#define T_Cohort 277
#define T_ControlKey 278
#define T_Crypto 279
#define T_Cryptostats 280
#define T_Ctl 281
#define T_Day 282
#define T_Default 283
#define T_Digest 284
#define T_Disable 285
#define T_Discard 286
#define T_Dispersion 287
#define T_Double 288
#define T_Driftfile 289
#define T_Drop 290
#define T_Dscp 291
#define T_Ellipsis 292
#define T_Enable 293
#define T_End 294
#define T_False 295
#define T_File 296
#define T_Filegen 297
#define T_Filenum 298
#define T_Flag1 299
#define T_Flag2 300
#define T_Flag3 301
#define T_Flag4 302
#define T_Flake 303
#define T_Floor 304
#define T_Freq 305
#define T_Fudge 306
#define T_Host 307
#define T_Huffpuff 308
#define T_Iburst 309
#define T_Ident 310
#define T_Ignore 311
#define T_Incalloc 312
#define T_Incmem 313
#define T_Initalloc 314
#define T_Initmem 315
#define T_Includefile 316
#define T_Integer 317
#define T_Interface 318
#define T_Intrange 319
#define T_Io 320
#define T_Ipv4 321
#define T_Ipv4_flag 322
#define T_Ipv6 323
#define T_Ipv6_flag 324
#define T_Kernel 325
#define T_Key 326
#define T_Keys 327
#define T_Keysdir 328
#define T_Kod 329
#define T_Mssntp 330
#define T_Leapfile 331
#define T_Leapsmearinterval 332
#define T_Limited 333
#define T_Link 334
#define T_Listen 335
#define T_Logconfig 336
#define T_Logfile 337
#define T_Loopstats 338
#define T_Lowpriotrap 339
#define T_Manycastclient 340
#define T_Manycastserver 341
#define T_Mask 342
#define T_Maxage 343
#define T_Maxclock 344
#define T_Maxdepth 345
#define T_Maxdist 346
#define T_Maxmem 347
#define T_Maxpoll 348
#define T_Mdnstries 349
#define T_Mem 350
#define T_Memlock 351
#define T_Minclock 352
#define T_Mindepth 353
#define T_Mindist 354
#define T_Minimum 355
#define T_Minpoll 356
#define T_Minsane 357
#define T_Mode 358
#define T_Mode7 359
#define T_Monitor 360
#define T_Month 361
#define T_Mru 362
#define T_Multicastclient 363
#define T_Nic 364
#define T_Nolink 365
#define T_Nomodify 366
#define T_Nomrulist 367
#define T_None 368
#define T_Nonvolatile 369
#define T_Nopeer 370
#define T_Noquery 371
#define T_Noselect 372
#define T_Noserve 373
#define T_Notrap 374
#define T_Notrust 375
#define T_Ntp 376
#define T_Ntpport 377
#define T_NtpSignDsocket 378
#define T_Orphan 379
#define T_Orphanwait 380
#define T_PCEdigest 381
#define T_Panic 382
#define T_Peer 383
#define T_Peerstats 384
#define T_Phone 385
#define T_Pid 386
#define T_Pidfile 387
#define T_Pool 388
#define T_Port 389
#define T_Preempt 390
#define T_Prefer 391
#define T_Protostats 392
#define T_Pw 393
#define T_Randfile 394
#define T_Rawstats 395
#define T_Refid 396
#define T_Requestkey 397
#define T_Reset 398
#define T_Restrict 399
#define T_Revoke 400
#define T_Rlimit 401
#define T_Saveconfigdir 402
#define T_Server 403
#define T_Setvar 404
#define T_Source 405
#define T_Stacksize 406
#define T_Statistics 407
#define T_Stats 408
#define T_Statsdir 409
#define T_Step 410
#define T_Stepback 411
#define T_Stepfwd 412
#define T_Stepout 413
#define T_Stratum 414
#define T_String 415
#define T_Sys 416
#define T_Sysstats 417
#define T_Tick 418
#define T_Time1 419
#define T_Time2 420
#define T_Timer 421
#define T_Timingstats 422
#define T_Tinker 423
#define T_Tos 424
#define T_Trap 425
#define T_True 426
#define T_Trustedkey 427
#define T_Ttl 428
#define T_Type 429
#define T_U_int 430
#define T_UEcrypto 431
#define T_UEcryptonak 432
#define T_UEdigest 433
#define T_Unconfig 434
#define T_Unpeer 435
#define T_Version 436
#define T_WanderThreshold 437
#define T_Week 438
#define T_Wildcard 439
#define T_Xleave 440
#define T_Year 441
#define T_Flag 442
#define T_EOC 443
#define T_Simulate 444
#define T_Beep_Delay 445
#define T_Sim_Duration 446
#define T_Server_Offset 447
#define T_Duration 448
#define T_Freq_Offset 449
#define T_Wander 450
#define T_Jitter 451
#define T_Prop_Delay 452
#define T_Proc_Delay 453
#line 11 "ntp_parser.y"
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "ntp.h"
#include "ntpd.h"
#include "ntp_machine.h"
#include "ntp_stdlib.h"
#include "ntp_filegen.h"
#include "ntp_scanner.h"
#include "ntp_config.h"
#include "ntp_crypto.h"
#include "ntpsim.h"
#define YYMALLOC emalloc
#define YYFREE free
#define YYERROR_VERBOSE
#define YYMAXDEPTH 1000
void yyerror(const char *msg);
#ifdef SIM
# define ONLY_SIM(a) (a)
#else
# define ONLY_SIM(a) NULL
#endif
#ifndef YYDEBUG
# define YYDEBUG 1
#endif
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif
#ifndef YYTOKEN_TABLE
# define YYTOKEN_TABLE 1
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union YYSTYPE
#line 51 "ntp_parser.y"
{
char * String;
double Double;
int Integer;
unsigned U_int;
gen_fifo * Generic_fifo;
attr_val * Attr_val;
attr_val_fifo * Attr_val_fifo;
int_fifo * Int_fifo;
string_fifo * String_fifo;
address_node * Address_node;
address_fifo * Address_fifo;
setvar_node * Set_var;
server_info * Sim_server;
server_info_fifo * Sim_server_fifo;
script_info * Sim_script;
script_info_fifo * Sim_script_fifo;
}
#line 545 "ntp_parser.c"
YYSTYPE;
# define yystype YYSTYPE
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
#line 558 "ntp_parser.c"
#ifdef short
# undef short
#endif
#ifdef YYTYPE_UINT8
typedef YYTYPE_UINT8 yytype_uint8;
#else
typedef unsigned char yytype_uint8;
#endif
#ifdef YYTYPE_INT8
typedef YYTYPE_INT8 yytype_int8;
#elif (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
typedef signed char yytype_int8;
#else
typedef short int yytype_int8;
#endif
#ifdef YYTYPE_UINT16
typedef YYTYPE_UINT16 yytype_uint16;
#else
typedef unsigned short int yytype_uint16;
#endif
#ifdef YYTYPE_INT16
typedef YYTYPE_INT16 yytype_int16;
#else
typedef short int yytype_int16;
#endif
#ifndef YYSIZE_T
# ifdef __SIZE_TYPE__
# define YYSIZE_T __SIZE_TYPE__
# elif defined size_t
# define YYSIZE_T size_t
# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stddef.h>
# define YYSIZE_T size_t
# else
# define YYSIZE_T unsigned int
# endif
#endif
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h>
# define YY_(msgid) dgettext ("bison-runtime", msgid)
# endif
# endif
# ifndef YY_
# define YY_(msgid) msgid
# endif
#endif
#if ! defined lint || defined __GNUC__
# define YYUSE(e) ((void) (e))
#else
# define YYUSE(e)
#endif
#ifndef lint
# define YYID(n) (n)
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static int
YYID (int i)
#else
static int
YYID (i)
int i;
#endif
{
return i;
}
#endif
#if ! defined yyoverflow || YYERROR_VERBOSE
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# elif defined __BUILTIN_VA_ARG_INCR
# include <alloca.h>
# elif defined _AIX
# define YYSTACK_ALLOC __alloca
# elif defined _MSC_VER
# include <malloc.h>
# define alloca _alloca
# else
# define YYSTACK_ALLOC alloca
# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
# include <stdlib.h>
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
# define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM 4032
# endif
# else
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
# ifndef YYSTACK_ALLOC_MAXIMUM
# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
# endif
# if (defined __cplusplus && ! defined _STDLIB_H \
&& ! ((defined YYMALLOC || defined malloc) \
&& (defined YYFREE || defined free)))
# include <stdlib.h>
# ifndef _STDLIB_H
# define _STDLIB_H 1
# endif
# endif
# ifndef YYMALLOC
# define YYMALLOC malloc
# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void *malloc (YYSIZE_T);
# endif
# endif
# ifndef YYFREE
# define YYFREE free
# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
void free (void *);
# endif
# endif
# endif
#endif
#if (! defined yyoverflow \
&& (! defined __cplusplus \
|| (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
union yyalloc
{
yytype_int16 yyss;
YYSTYPE yyvs;
};
# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
# define YYSTACK_BYTES(N) \
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
# ifndef YYCOPY
# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (YYID (0))
# endif
# endif
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (YYID (0))
#endif
#define YYFINAL 215
#define YYLAST 654
#define YYNTOKENS 204
#define YYNNTS 105
#define YYNRULES 318
#define YYNSTATES 424
#define YYUNDEFTOK 2
#define YYMAXUTOK 453
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200, 201, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 199, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 202, 2, 203, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
195, 196, 197, 198
};
#if YYDEBUG
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 5, 9, 12, 15, 16, 18, 20,
22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
42, 46, 48, 50, 52, 54, 56, 58, 61, 63,
65, 67, 68, 71, 73, 75, 77, 79, 81, 83,
85, 87, 89, 91, 93, 95, 98, 101, 103, 105,
107, 109, 111, 113, 116, 118, 121, 123, 125, 127,
130, 133, 136, 139, 142, 145, 148, 151, 154, 157,
160, 163, 164, 167, 170, 173, 175, 177, 179, 181,
183, 186, 189, 191, 194, 197, 200, 202, 204, 206,
208, 210, 212, 214, 216, 218, 220, 222, 225, 228,
232, 235, 237, 239, 241, 243, 245, 247, 249, 251,
253, 254, 257, 260, 263, 265, 267, 269, 271, 273,
275, 277, 279, 281, 283, 285, 287, 289, 292, 295,
299, 305, 309, 314, 319, 323, 324, 327, 329, 331,
333, 335, 337, 339, 341, 343, 345, 347, 349, 351,
353, 355, 357, 360, 362, 365, 367, 369, 371, 374,
376, 379, 381, 383, 385, 387, 389, 391, 393, 395,
399, 402, 404, 407, 410, 413, 416, 419, 421, 423,
425, 427, 429, 431, 434, 437, 439, 442, 444, 446,
448, 451, 454, 457, 459, 461, 463, 465, 467, 469,
471, 473, 475, 477, 479, 481, 483, 485, 487, 490,
493, 495, 498, 500, 502, 504, 506, 508, 510, 512,
514, 516, 518, 520, 522, 525, 528, 531, 534, 538,
540, 543, 546, 549, 552, 556, 559, 561, 563, 565,
567, 569, 571, 573, 575, 577, 579, 581, 584, 585,
590, 592, 593, 594, 597, 600, 603, 606, 608, 610,
614, 618, 620, 622, 624, 626, 628, 630, 632, 634,
636, 639, 642, 644, 646, 648, 650, 652, 654, 656,
658, 661, 663, 666, 668, 670, 672, 678, 681, 683,
686, 688, 690, 692, 694, 696, 698, 704, 706, 710,
713, 717, 719, 721, 724, 726, 732, 737, 741, 744,
746, 753, 757, 760, 764, 766, 768, 770, 772
};
static const yytype_int16 yyrhs[] =
{
205, 0, -1, 206, -1, 206, 207, 188, -1, 207,
188, -1, 1, 188, -1, -1, 208, -1, 221, -1,
223, -1, 224, -1, 233, -1, 241, -1, 228, -1,
250, -1, 255, -1, 259, -1, 264, -1, 268, -1,
295, -1, 209, 210, 213, -1, 148, -1, 133, -1,
128, -1, 15, -1, 85, -1, 211, -1, 212, 160,
-1, 160, -1, 67, -1, 69, -1, -1, 213, 214,
-1, 215, -1, 217, -1, 219, -1, 216, -1, 9,
-1, 18, -1, 54, -1, 117, -1, 135, -1, 136,
-1, 171, -1, 185, -1, 218, 62, -1, 218, 175,
-1, 71, -1, 101, -1, 93, -1, 173, -1, 103,
-1, 181, -1, 220, 160, -1, 55, -1, 222, 210,
-1, 179, -1, 180, -1, 16, -1, 86, 292, -1,
108, 292, -1, 94, 62, -1, 10, 62, -1, 23,
62, -1, 24, 225, -1, 72, 160, -1, 73, 160,
-1, 142, 62, -1, 145, 62, -1, 172, 288, -1,
123, 160, -1, -1, 225, 226, -1, 227, 160, -1,
145, 62, -1, 52, -1, 55, -1, 138, -1, 139,
-1, 29, -1, 169, 229, -1, 229, 230, -1, 230,
-1, 231, 62, -1, 232, 294, -1, 22, 293, -1,
13, -1, 20, -1, 49, -1, 124, -1, 125, -1,
102, -1, 14, -1, 99, -1, 91, -1, 97, -1,
89, -1, 152, 234, -1, 154, 160, -1, 42, 235,
236, -1, 234, 235, -1, 235, -1, 21, -1, 25,
-1, 83, -1, 129, -1, 140, -1, 162, -1, 167,
-1, 137, -1, -1, 236, 237, -1, 41, 160, -1,
174, 240, -1, 238, -1, 239, -1, 79, -1, 110,
-1, 38, -1, 30, -1, 113, -1, 131, -1, 27,
-1, 183, -1, 106, -1, 186, -1, 4, -1, 31,
244, -1, 107, 247, -1, 144, 210, 242, -1, 144,
211, 87, 211, 242, -1, 144, 28, 242, -1, 144,
67, 28, 242, -1, 144, 69, 28, 242, -1, 144,
150, 242, -1, -1, 242, 243, -1, 48, -1, 56,
-1, 74, -1, 75, -1, 78, -1, 84, -1, 111,
-1, 112, -1, 115, -1, 116, -1, 118, -1, 119,
-1, 120, -1, 122, -1, 181, -1, 244, 245, -1,
245, -1, 246, 62, -1, 11, -1, 100, -1, 105,
-1, 247, 248, -1, 248, -1, 249, 62, -1, 57,
-1, 58, -1, 59, -1, 60, -1, 88, -1, 90,
-1, 92, -1, 98, -1, 51, 210, 251, -1, 251,
252, -1, 252, -1, 253, 294, -1, 254, 293, -1,
159, 62, -1, 3, 160, -1, 141, 160, -1, 164,
-1, 165, -1, 44, -1, 45, -1, 46, -1, 47,
-1, 146, 256, -1, 256, 257, -1, 257, -1, 258,
62, -1, 96, -1, 151, -1, 43, -1, 38, 260,
-1, 30, 260, -1, 260, 261, -1, 261, -1, 262,
-1, 263, -1, 8, -1, 12, -1, 19, -1, 70,
-1, 105, -1, 121, -1, 104, -1, 126, -1, 153,
-1, 176, -1, 177, -1, 178, -1, 168, 265, -1,
265, 266, -1, 266, -1, 267, 294, -1, 6, -1,
32, -1, 50, -1, 53, -1, 127, -1, 155, -1,
156, -1, 157, -1, 158, -1, 163, -1, 280, -1,
284, -1, 269, 294, -1, 270, 62, -1, 271, 160,
-1, 272, 160, -1, 61, 160, 207, -1, 39, -1,
34, 273, -1, 81, 278, -1, 130, 291, -1, 149,
274, -1, 170, 211, 276, -1, 173, 287, -1, 17,
-1, 114, -1, 163, -1, 36, -1, 77, -1, 55,
-1, 76, -1, 82, -1, 132, -1, 147, -1, 160,
-1, 160, 33, -1, -1, 160, 199, 160, 275, -1,
28, -1, -1, -1, 276, 277, -1, 134, 62, -1,
63, 211, -1, 278, 279, -1, 279, -1, 160, -1,
281, 283, 282, -1, 281, 283, 160, -1, 63, -1,
109, -1, 5, -1, 66, -1, 68, -1, 184, -1,
80, -1, 56, -1, 35, -1, 143, 285, -1, 285,
286, -1, 286, -1, 7, -1, 8, -1, 26, -1,
65, -1, 95, -1, 161, -1, 166, -1, 287, 62,
-1, 62, -1, 288, 289, -1, 289, -1, 62, -1,
290, -1, 200, 62, 37, 62, 201, -1, 291, 160,
-1, 160, -1, 292, 210, -1, 210, -1, 62, -1,
171, -1, 40, -1, 62, -1, 33, -1, 296, 202,
297, 300, 203, -1, 189, -1, 297, 298, 188, -1,
298, 188, -1, 299, 199, 294, -1, 190, -1, 191,
-1, 300, 301, -1, 301, -1, 303, 202, 302, 304,
203, -1, 192, 199, 294, 188, -1, 148, 199, 210,
-1, 304, 305, -1, 305, -1, 193, 199, 294, 202,
306, 203, -1, 306, 307, 188, -1, 307, 188, -1,
308, 199, 294, -1, 194, -1, 195, -1, 196, -1,
197, -1, 198, -1
};
static const yytype_uint16 yyrline[] =
{
0, 371, 371, 375, 376, 377, 392, 393, 394, 395,
396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
413, 423, 424, 425, 426, 427, 431, 432, 437, 442,
444, 450, 451, 459, 460, 461, 465, 470, 471, 472,
473, 474, 475, 476, 477, 481, 483, 488, 489, 490,
491, 492, 493, 497, 502, 511, 521, 522, 532, 534,
536, 538, 549, 556, 558, 563, 565, 567, 569, 571,
580, 586, 587, 595, 597, 609, 610, 611, 612, 613,
622, 627, 632, 640, 642, 644, 649, 650, 651, 652,
653, 654, 655, 656, 657, 661, 662, 671, 673, 682,
692, 697, 705, 706, 707, 708, 709, 710, 711, 712,
717, 718, 726, 736, 745, 760, 765, 766, 770, 771,
775, 776, 777, 778, 779, 780, 781, 790, 794, 798,
806, 814, 822, 837, 852, 865, 866, 874, 875, 876,
877, 878, 879, 880, 881, 882, 883, 884, 885, 886,
887, 888, 892, 897, 905, 910, 911, 912, 916, 921,
929, 934, 935, 936, 937, 938, 939, 940, 941, 949,
959, 964, 972, 974, 976, 985, 987, 992, 993, 997,
998, 999, 1000, 1008, 1013, 1018, 1026, 1031, 1032, 1033,
1042, 1044, 1049, 1054, 1062, 1064, 1081, 1082, 1083, 1084,
1085, 1086, 1090, 1091, 1092, 1093, 1094, 1095, 1103, 1108,
1113, 1121, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133,
1134, 1135, 1144, 1145, 1146, 1153, 1160, 1167, 1183, 1202,
1204, 1206, 1208, 1210, 1212, 1219, 1224, 1225, 1226, 1230,
1234, 1243, 1244, 1248, 1249, 1250, 1254, 1265, 1279, 1291,
1296, 1298, 1303, 1304, 1312, 1314, 1322, 1327, 1335, 1360,
1367, 1377, 1378, 1382, 1383, 1384, 1385, 1389, 1390, 1391,
1395, 1400, 1405, 1413, 1414, 1415, 1416, 1417, 1418, 1419,
1429, 1434, 1442, 1447, 1455, 1457, 1461, 1466, 1471, 1479,
1484, 1492, 1501, 1502, 1506, 1507, 1516, 1534, 1538, 1543,
1551, 1556, 1557, 1561, 1566, 1574, 1579, 1584, 1589, 1594,
1602, 1607, 1612, 1620, 1625, 1626, 1627, 1628, 1629
};
#endif
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
static const char *const yytname[] =
{
"$end", "error", "$undefined", "T_Abbrev", "T_Age", "T_All", "T_Allan",
"T_Allpeers", "T_Auth", "T_Autokey", "T_Automax", "T_Average",
"T_Bclient", "T_Bcpollbstep", "T_Beacon", "T_Broadcast",
"T_Broadcastclient", "T_Broadcastdelay", "T_Burst", "T_Calibrate",
"T_Ceiling", "T_Clockstats", "T_Cohort", "T_ControlKey", "T_Crypto",
"T_Cryptostats", "T_Ctl", "T_Day", "T_Default", "T_Digest", "T_Disable",
"T_Discard", "T_Dispersion", "T_Double", "T_Driftfile", "T_Drop",
"T_Dscp", "T_Ellipsis", "T_Enable", "T_End", "T_False", "T_File",
"T_Filegen", "T_Filenum", "T_Flag1", "T_Flag2", "T_Flag3", "T_Flag4",
"T_Flake", "T_Floor", "T_Freq", "T_Fudge", "T_Host", "T_Huffpuff",
"T_Iburst", "T_Ident", "T_Ignore", "T_Incalloc", "T_Incmem",
"T_Initalloc", "T_Initmem", "T_Includefile", "T_Integer", "T_Interface",
"T_Intrange", "T_Io", "T_Ipv4", "T_Ipv4_flag", "T_Ipv6", "T_Ipv6_flag",
"T_Kernel", "T_Key", "T_Keys", "T_Keysdir", "T_Kod", "T_Mssntp",
"T_Leapfile", "T_Leapsmearinterval", "T_Limited", "T_Link", "T_Listen",
"T_Logconfig", "T_Logfile", "T_Loopstats", "T_Lowpriotrap",
"T_Manycastclient", "T_Manycastserver", "T_Mask", "T_Maxage",
"T_Maxclock", "T_Maxdepth", "T_Maxdist", "T_Maxmem", "T_Maxpoll",
"T_Mdnstries", "T_Mem", "T_Memlock", "T_Minclock", "T_Mindepth",
"T_Mindist", "T_Minimum", "T_Minpoll", "T_Minsane", "T_Mode", "T_Mode7",
"T_Monitor", "T_Month", "T_Mru", "T_Multicastclient", "T_Nic",
"T_Nolink", "T_Nomodify", "T_Nomrulist", "T_None", "T_Nonvolatile",
"T_Nopeer", "T_Noquery", "T_Noselect", "T_Noserve", "T_Notrap",
"T_Notrust", "T_Ntp", "T_Ntpport", "T_NtpSignDsocket", "T_Orphan",
"T_Orphanwait", "T_PCEdigest", "T_Panic", "T_Peer", "T_Peerstats",
"T_Phone", "T_Pid", "T_Pidfile", "T_Pool", "T_Port", "T_Preempt",
"T_Prefer", "T_Protostats", "T_Pw", "T_Randfile", "T_Rawstats",
"T_Refid", "T_Requestkey", "T_Reset", "T_Restrict", "T_Revoke",
"T_Rlimit", "T_Saveconfigdir", "T_Server", "T_Setvar", "T_Source",
"T_Stacksize", "T_Statistics", "T_Stats", "T_Statsdir", "T_Step",
"T_Stepback", "T_Stepfwd", "T_Stepout", "T_Stratum", "T_String", "T_Sys",
"T_Sysstats", "T_Tick", "T_Time1", "T_Time2", "T_Timer", "T_Timingstats",
"T_Tinker", "T_Tos", "T_Trap", "T_True", "T_Trustedkey", "T_Ttl",
"T_Type", "T_U_int", "T_UEcrypto", "T_UEcryptonak", "T_UEdigest",
"T_Unconfig", "T_Unpeer", "T_Version", "T_WanderThreshold", "T_Week",
"T_Wildcard", "T_Xleave", "T_Year", "T_Flag", "T_EOC", "T_Simulate",
"T_Beep_Delay", "T_Sim_Duration", "T_Server_Offset", "T_Duration",
"T_Freq_Offset", "T_Wander", "T_Jitter", "T_Prop_Delay", "T_Proc_Delay",
"'='", "'('", "')'", "'{'", "'}'", "$accept", "configuration",
"command_list", "command", "server_command", "client_type", "address",
"ip_address", "address_fam", "option_list", "option", "option_flag",
"option_flag_keyword", "option_int", "option_int_keyword", "option_str",
"option_str_keyword", "unpeer_command", "unpeer_keyword",
"other_mode_command", "authentication_command", "crypto_command_list",
"crypto_command", "crypto_str_keyword", "orphan_mode_command",
"tos_option_list", "tos_option", "tos_option_int_keyword",
"tos_option_dbl_keyword", "monitoring_command", "stats_list", "stat",
"filegen_option_list", "filegen_option", "link_nolink", "enable_disable",
"filegen_type", "access_control_command", "ac_flag_list",
"access_control_flag", "discard_option_list", "discard_option",
"discard_option_keyword", "mru_option_list", "mru_option",
"mru_option_keyword", "fudge_command", "fudge_factor_list",
"fudge_factor", "fudge_factor_dbl_keyword", "fudge_factor_bool_keyword",
"rlimit_command", "rlimit_option_list", "rlimit_option",
"rlimit_option_keyword", "system_option_command", "system_option_list",
"system_option", "system_option_flag_keyword",
"system_option_local_flag_keyword", "tinker_command",
"tinker_option_list", "tinker_option", "tinker_option_keyword",
"miscellaneous_command", "misc_cmd_dbl_keyword", "misc_cmd_int_keyword",
"misc_cmd_str_keyword", "misc_cmd_str_lcl_keyword", "drift_parm",
"variable_assign", "t_default_or_zero", "trap_option_list",
"trap_option", "log_config_list", "log_config_command",
"interface_command", "interface_nic", "nic_rule_class",
"nic_rule_action", "reset_command", "counter_set_list",
"counter_set_keyword", "integer_list", "integer_list_range",
"integer_list_range_elt", "integer_range", "string_list", "address_list",
"boolean", "number", "simulate_command", "sim_conf_start",
"sim_init_statement_list", "sim_init_statement", "sim_init_keyword",
"sim_server_list", "sim_server", "sim_server_offset", "sim_server_name",
"sim_act_list", "sim_act", "sim_act_stmt_list", "sim_act_stmt",
"sim_act_keyword", 0
};
#endif
# ifdef YYPRINT
static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
445, 446, 447, 448, 449, 450, 451, 452, 453, 61,
40, 41, 123, 125
};
# endif
static const yytype_uint16 yyr1[] =
{
0, 204, 205, 206, 206, 206, 207, 207, 207, 207,
207, 207, 207, 207, 207, 207, 207, 207, 207, 207,
208, 209, 209, 209, 209, 209, 210, 210, 211, 212,
212, 213, 213, 214, 214, 214, 215, 216, 216, 216,
216, 216, 216, 216, 216, 217, 217, 218, 218, 218,
218, 218, 218, 219, 220, 221, 222, 222, 223, 223,
223, 223, 224, 224, 224, 224, 224, 224, 224, 224,
224, 225, 225, 226, 226, 227, 227, 227, 227, 227,
228, 229, 229, 230, 230, 230, 231, 231, 231, 231,
231, 231, 231, 232, 232, 232, 232, 233, 233, 233,
234, 234, 235, 235, 235, 235, 235, 235, 235, 235,
236, 236, 237, 237, 237, 237, 238, 238, 239, 239,
240, 240, 240, 240, 240, 240, 240, 241, 241, 241,
241, 241, 241, 241, 241, 242, 242, 243, 243, 243,
243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
243, 243, 244, 244, 245, 246, 246, 246, 247, 247,
248, 249, 249, 249, 249, 249, 249, 249, 249, 250,
251, 251, 252, 252, 252, 252, 252, 253, 253, 254,
254, 254, 254, 255, 256, 256, 257, 258, 258, 258,
259, 259, 260, 260, 261, 261, 262, 262, 262, 262,
262, 262, 263, 263, 263, 263, 263, 263, 264, 265,
265, 266, 267, 267, 267, 267, 267, 267, 267, 267,
267, 267, 268, 268, 268, 268, 268, 268, 268, 268,
268, 268, 268, 268, 268, 268, 269, 269, 269, 270,
270, 271, 271, 272, 272, 272, 273, 273, 273, 274,
275, 275, 276, 276, 277, 277, 278, 278, 279, 280,
280, 281, 281, 282, 282, 282, 282, 283, 283, 283,
284, 285, 285, 286, 286, 286, 286, 286, 286, 286,
287, 287, 288, 288, 289, 289, 290, 291, 291, 292,
292, 293, 293, 293, 294, 294, 295, 296, 297, 297,
298, 299, 299, 300, 300, 301, 302, 303, 304, 304,
305, 306, 306, 307, 308, 308, 308, 308, 308
};
static const yytype_uint8 yyr2[] =
{
0, 2, 1, 3, 2, 2, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
3, 1, 1, 1, 1, 1, 1, 2, 1, 1,
1, 0, 2, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
1, 1, 1, 2, 1, 2, 1, 1, 1, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 0, 2, 2, 2, 1, 1, 1, 1, 1,
2, 2, 1, 2, 2, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 3,
2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
0, 2, 2, 2, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 3,
5, 3, 4, 4, 3, 0, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 2, 1, 2, 1, 1, 1, 2, 1,
2, 1, 1, 1, 1, 1, 1, 1, 1, 3,
2, 1, 2, 2, 2, 2, 2, 1, 1, 1,
1, 1, 1, 2, 2, 1, 2, 1, 1, 1,
2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 2, 2, 2, 3, 1,
2, 2, 2, 2, 3, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 0, 4,
1, 0, 0, 2, 2, 2, 2, 1, 1, 3,
3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
2, 1, 2, 1, 1, 1, 5, 2, 1, 2,
1, 1, 1, 1, 1, 1, 5, 1, 3, 2,
3, 1, 1, 2, 1, 5, 4, 3, 2, 1,
6, 3, 2, 3, 1, 1, 1, 1, 1
};
static const yytype_uint16 yydefact[] =
{
0, 0, 0, 24, 58, 236, 0, 71, 0, 0,
248, 239, 0, 229, 0, 0, 241, 0, 261, 0,
0, 242, 240, 0, 243, 25, 0, 0, 0, 0,
262, 237, 0, 23, 0, 244, 22, 0, 0, 0,
0, 0, 245, 21, 0, 0, 0, 238, 0, 0,
0, 0, 0, 56, 57, 297, 0, 2, 0, 7,
0, 8, 0, 9, 10, 13, 11, 12, 14, 15,
16, 17, 18, 0, 0, 0, 0, 222, 0, 223,
19, 0, 5, 62, 63, 64, 196, 197, 198, 199,
202, 200, 201, 203, 204, 205, 206, 207, 191, 193,
194, 195, 155, 156, 157, 127, 153, 0, 246, 230,
190, 102, 103, 104, 105, 109, 106, 107, 108, 110,
29, 30, 28, 0, 26, 0, 6, 65, 66, 258,
231, 257, 290, 59, 61, 161, 162, 163, 164, 165,
166, 167, 168, 128, 159, 0, 60, 70, 288, 232,
67, 273, 274, 275, 276, 277, 278, 279, 270, 272,
135, 29, 30, 135, 135, 26, 68, 189, 187, 188,
183, 185, 0, 0, 233, 97, 101, 98, 212, 213,
214, 215, 216, 217, 218, 219, 220, 221, 208, 210,
0, 86, 87, 88, 0, 89, 90, 96, 91, 95,
92, 93, 94, 80, 82, 0, 0, 252, 284, 0,
69, 283, 285, 281, 235, 1, 0, 4, 31, 55,
295, 294, 224, 225, 226, 227, 269, 268, 267, 0,
0, 79, 75, 76, 77, 78, 0, 72, 0, 192,
152, 154, 247, 99, 0, 179, 180, 181, 182, 0,
0, 177, 178, 169, 171, 0, 0, 27, 228, 256,
289, 158, 160, 287, 271, 131, 135, 135, 134, 129,
0, 184, 186, 0, 100, 209, 211, 293, 291, 292,
85, 81, 83, 84, 234, 0, 282, 280, 3, 20,
263, 264, 265, 260, 266, 259, 301, 302, 0, 0,
0, 74, 73, 119, 118, 0, 116, 117, 0, 111,
114, 115, 175, 176, 174, 170, 172, 173, 137, 138,
139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
149, 150, 151, 136, 132, 133, 135, 251, 0, 0,
253, 0, 37, 38, 39, 54, 47, 49, 48, 51,
40, 41, 42, 43, 50, 52, 44, 32, 33, 36,
34, 0, 35, 0, 0, 0, 0, 304, 0, 299,
0, 112, 126, 122, 124, 120, 121, 123, 125, 113,
130, 250, 249, 255, 254, 0, 45, 46, 53, 0,
298, 296, 303, 0, 300, 286, 307, 0, 0, 0,
0, 0, 309, 0, 0, 305, 308, 306, 0, 0,
314, 315, 316, 317, 318, 0, 0, 0, 310, 0,
312, 0, 311, 313
};
static const yytype_int16 yydefgoto[] =
{
-1, 56, 57, 58, 59, 60, 132, 124, 125, 289,
357, 358, 359, 360, 361, 362, 363, 61, 62, 63,
64, 85, 237, 238, 65, 203, 204, 205, 206, 66,
175, 119, 243, 309, 310, 311, 379, 67, 265, 333,
105, 106, 107, 143, 144, 145, 68, 253, 254, 255,
256, 69, 170, 171, 172, 70, 98, 99, 100, 101,
71, 188, 189, 190, 72, 73, 74, 75, 76, 109,
174, 382, 284, 340, 130, 131, 77, 78, 295, 229,
79, 158, 159, 214, 210, 211, 212, 149, 133, 280,
222, 80, 81, 298, 299, 300, 366, 367, 398, 368,
401, 402, 415, 416, 417
};
#define YYPACT_NINF -189
static const yytype_int16 yypact[] =
{
18, -177, -45, -189, -189, -189, -40, -189, 32, 5,
-129, -189, 32, -189, 204, -44, -189, -117, -189, -110,
-101, -189, -189, -97, -189, -189, -44, -4, 495, -44,
-189, -189, -96, -189, -94, -189, -189, 8, 54, 258,
10, -28, -189, -189, -89, 204, -86, -189, 270, 529,
-85, -56, 14, -189, -189, -189, 83, 207, -95, -189,
-44, -189, -44, -189, -189, -189, -189, -189, -189, -189,
-189, -189, -189, -7, 24, -73, -68, -189, -3, -189,
-189, -106, -189, -189, -189, 313, -189, -189, -189, -189,
-189, -189, -189, -189, -189, -189, -189, -189, 32, -189,
-189, -189, -189, -189, -189, 5, -189, 35, 65, -189,
32, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-189, -189, -189, 110, -189, -59, 368, -189, -189, -189,
-97, -189, -189, -44, -189, -189, -189, -189, -189, -189,
-189, -189, -189, 495, -189, 44, -44, -189, -189, -51,
-189, -189, -189, -189, -189, -189, -189, -189, 54, -189,
-189, 86, 89, -189, -189, 33, -189, -189, -189, -189,
-28, -189, 49, -75, -189, 204, -189, -189, -189, -189,
-189, -189, -189, -189, -189, -189, -189, -189, 270, -189,
-7, -189, -189, -189, -33, -189, -189, -189, -189, -189,
-189, -189, -189, 529, -189, 66, -7, -189, -189, 67,
-56, -189, -189, -189, 68, -189, -53, -189, -189, -189,
-189, -189, -189, -189, -189, -189, -189, -189, -189, 16,
-153, -189, -189, -189, -189, -189, 77, -189, -18, -189,
-189, -189, -189, 226, -13, -189, -189, -189, -189, -8,
97, -189, -189, 110, -189, -7, -33, -189, -189, -189,
-189, -189, -189, -189, -189, 449, -189, -189, 449, 449,
-85, -189, -189, 11, -189, -189, -189, -189, -189, -189,
-189, -189, -189, -189, -49, 108, -189, -189, -189, 125,
-189, -189, -189, -189, -189, -189, -189, -189, -102, -20,
-30, -189, -189, -189, -189, 13, -189, -189, 9, -189,
-189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-189, -189, -189, -189, 449, 449, -189, 146, -85, 113,
-189, 116, -189, -189, -189, -189, -189, -189, -189, -189,
-189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-189, -54, -189, 23, -10, 6, -138, -189, -9, -189,
-7, -189, -189, -189, -189, -189, -189, -189, -189, -189,
449, -189, -189, -189, -189, -17, -189, -189, -189, -44,
-189, -189, -189, 20, -189, -189, -189, 0, 21, -7,
22, -173, -189, 25, -7, -189, -189, -189, 17, 7,
-189, -189, -189, -189, -189, 217, 39, 36, -189, 46,
-189, -7, -189, -189
};
static const yytype_int16 yypgoto[] =
{
-189, -189, -189, -48, -189, -189, -15, -38, -189, -189,
-189, -189, -189, -189, -189, -189, -189, -189, -189, -189,
-189, -189, -189, -189, -189, -189, 37, -189, -189, -189,
-189, -42, -189, -189, -189, -189, -189, -189, -159, -189,
-189, 131, -189, -189, 96, -189, -189, -189, -6, -189,
-189, -189, -189, 74, -189, -189, 236, -71, -189, -189,
-189, -189, 62, -189, -189, -189, -189, -189, -189, -189,
-189, -189, -189, -189, -189, 122, -189, -189, -189, -189,
-189, -189, 95, -189, -189, 45, -189, -189, 225, 1,
-188, -189, -189, -189, -39, -189, -189, -103, -189, -189,
-189, -136, -189, -149, -189
};
#define YYTABLE_NINF -7
static const yytype_int16 yytable[] =
{
123, 165, 276, 176, 268, 269, 208, 277, 386, 216,
364, 82, 207, 372, 338, 167, 102, 83, 283, 1,
400, 290, 84, 120, 164, 121, 220, 239, 2, 278,
405, 108, 226, 3, 4, 5, 373, 296, 297, 239,
86, 6, 7, 126, 87, 218, 364, 219, 8, 9,
127, 88, 10, 227, 11, 221, 12, 13, 134, 128,
14, 151, 152, 129, 147, 391, 148, 316, 168, 15,
150, 173, 166, 16, 177, 122, 213, 228, 258, 17,
153, 18, 291, 215, 292, 339, 223, 224, 296, 297,
19, 20, 225, 217, 21, 22, 230, 241, 242, 23,
24, 257, 89, 25, 26, 103, 262, 334, 335, 263,
104, 272, 27, 244, 266, 374, 122, 267, 260, 154,
270, 387, 375, 169, 273, 28, 29, 30, 282, 285,
287, 260, 31, 274, 342, 288, 90, 91, 279, 301,
376, 32, 302, 343, 209, 341, 33, 312, 34, 155,
35, 36, 313, 92, 245, 246, 247, 248, 93, 314,
37, 38, 39, 40, 41, 42, 43, 44, 369, 370,
45, 337, 46, 371, 381, 384, 293, 380, 385, 344,
345, 47, 394, 388, 395, 94, 48, 49, 50, 389,
51, 52, 377, 393, 390, 378, 346, 53, 54, 399,
294, 410, 411, 412, 413, 414, -6, 55, 95, 96,
97, 403, 397, 407, 400, 156, 408, 2, 347, 409,
157, 404, 3, 4, 5, 111, 348, 420, 349, 112,
6, 7, 336, 423, 422, 421, 240, 8, 9, 261,
281, 10, 350, 11, 271, 12, 13, 315, 110, 14,
275, 249, 259, 264, 146, 286, 303, 317, 15, 365,
351, 352, 16, 392, 304, 406, 419, 305, 17, 250,
18, 0, 0, 0, 251, 252, 178, 0, 0, 19,
20, 0, 0, 21, 22, 0, 160, 113, 23, 24,
0, 0, 25, 26, 0, 0, 353, 0, 354, 0,
383, 27, 179, 0, 0, 306, 355, 0, 0, 0,
356, 0, 0, 0, 28, 29, 30, 0, 0, 0,
180, 31, 0, 181, 0, 161, 0, 162, 0, 0,
32, 0, 0, 114, 0, 33, 307, 34, 0, 35,
36, 115, 231, 0, 116, 0, 0, 0, 0, 37,
38, 39, 40, 41, 42, 43, 44, 0, 0, 45,
0, 46, 0, 0, 0, 232, 117, 0, 233, 0,
47, 118, 0, 0, 396, 48, 49, 50, 2, 51,
52, 0, 0, 3, 4, 5, 53, 54, 0, 0,
0, 6, 7, 0, 0, -6, 55, 182, 8, 9,
308, 0, 10, 0, 11, 0, 12, 13, 163, 0,
14, 410, 411, 412, 413, 414, 0, 0, 122, 15,
418, 0, 0, 16, 0, 183, 184, 185, 186, 17,
0, 18, 0, 187, 0, 0, 0, 0, 0, 0,
19, 20, 0, 0, 21, 22, 0, 0, 0, 23,
24, 234, 235, 25, 26, 0, 0, 0, 236, 0,
0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 28, 29, 30, 0, 0,
0, 0, 31, 0, 0, 0, 0, 0, 0, 0,
0, 32, 0, 0, 0, 0, 33, 318, 34, 0,
35, 36, 0, 0, 0, 319, 0, 0, 0, 0,
37, 38, 39, 40, 41, 42, 43, 44, 0, 0,
45, 0, 46, 320, 321, 0, 0, 322, 0, 0,
0, 47, 0, 323, 0, 0, 48, 49, 50, 0,
51, 52, 191, 192, 0, 0, 0, 53, 54, 193,
0, 194, 135, 136, 137, 138, 0, 55, 0, 0,
324, 325, 0, 0, 326, 327, 0, 328, 329, 330,
0, 331, 0, 0, 0, 0, 0, 0, 195, 0,
0, 0, 0, 139, 0, 140, 0, 141, 0, 0,
0, 0, 0, 142, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
197, 0, 0, 0, 0, 0, 198, 0, 199, 0,
332, 200, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 201, 202
};
static const yytype_int16 yycheck[] =
{
15, 39, 190, 45, 163, 164, 62, 40, 62, 57,
148, 188, 50, 4, 63, 43, 11, 62, 206, 1,
193, 5, 62, 67, 39, 69, 33, 98, 10, 62,
203, 160, 35, 15, 16, 17, 27, 190, 191, 110,
8, 23, 24, 160, 12, 60, 148, 62, 30, 31,
160, 19, 34, 56, 36, 62, 38, 39, 62, 160,
42, 7, 8, 160, 160, 203, 160, 255, 96, 51,
62, 160, 62, 55, 160, 160, 62, 80, 126, 61,
26, 63, 66, 0, 68, 134, 62, 160, 190, 191,
72, 73, 160, 188, 76, 77, 202, 62, 33, 81,
82, 160, 70, 85, 86, 100, 62, 266, 267, 160,
105, 62, 94, 3, 28, 106, 160, 28, 133, 65,
87, 175, 113, 151, 199, 107, 108, 109, 62, 62,
62, 146, 114, 175, 9, 188, 104, 105, 171, 62,
131, 123, 160, 18, 200, 37, 128, 160, 130, 95,
132, 133, 160, 121, 44, 45, 46, 47, 126, 62,
142, 143, 144, 145, 146, 147, 148, 149, 188, 199,
152, 160, 154, 160, 28, 62, 160, 336, 62, 54,
55, 163, 370, 160, 201, 153, 168, 169, 170, 199,
172, 173, 183, 202, 188, 186, 71, 179, 180, 199,
184, 194, 195, 196, 197, 198, 188, 189, 176, 177,
178, 399, 192, 188, 193, 161, 404, 10, 93, 202,
166, 199, 15, 16, 17, 21, 101, 188, 103, 25,
23, 24, 270, 421, 188, 199, 105, 30, 31, 143,
203, 34, 117, 36, 170, 38, 39, 253, 12, 42,
188, 141, 130, 158, 29, 210, 30, 256, 51, 298,
135, 136, 55, 366, 38, 401, 415, 41, 61, 159,
63, -1, -1, -1, 164, 165, 6, -1, -1, 72,
73, -1, -1, 76, 77, -1, 28, 83, 81, 82,
-1, -1, 85, 86, -1, -1, 171, -1, 173, -1,
338, 94, 32, -1, -1, 79, 181, -1, -1, -1,
185, -1, -1, -1, 107, 108, 109, -1, -1, -1,
50, 114, -1, 53, -1, 67, -1, 69, -1, -1,
123, -1, -1, 129, -1, 128, 110, 130, -1, 132,
133, 137, 29, -1, 140, -1, -1, -1, -1, 142,
143, 144, 145, 146, 147, 148, 149, -1, -1, 152,
-1, 154, -1, -1, -1, 52, 162, -1, 55, -1,
163, 167, -1, -1, 389, 168, 169, 170, 10, 172,
173, -1, -1, 15, 16, 17, 179, 180, -1, -1,
-1, 23, 24, -1, -1, 188, 189, 127, 30, 31,
174, -1, 34, -1, 36, -1, 38, 39, 150, -1,
42, 194, 195, 196, 197, 198, -1, -1, 160, 51,
203, -1, -1, 55, -1, 155, 156, 157, 158, 61,
-1, 63, -1, 163, -1, -1, -1, -1, -1, -1,
72, 73, -1, -1, 76, 77, -1, -1, -1, 81,
82, 138, 139, 85, 86, -1, -1, -1, 145, -1,
-1, -1, 94, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 107, 108, 109, -1, -1,
-1, -1, 114, -1, -1, -1, -1, -1, -1, -1,
-1, 123, -1, -1, -1, -1, 128, 48, 130, -1,
132, 133, -1, -1, -1, 56, -1, -1, -1, -1,
142, 143, 144, 145, 146, 147, 148, 149, -1, -1,
152, -1, 154, 74, 75, -1, -1, 78, -1, -1,
-1, 163, -1, 84, -1, -1, 168, 169, 170, -1,
172, 173, 13, 14, -1, -1, -1, 179, 180, 20,
-1, 22, 57, 58, 59, 60, -1, 189, -1, -1,
111, 112, -1, -1, 115, 116, -1, 118, 119, 120,
-1, 122, -1, -1, -1, -1, -1, -1, 49, -1,
-1, -1, -1, 88, -1, 90, -1, 92, -1, -1,
-1, -1, -1, 98, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 89, -1,
91, -1, -1, -1, -1, -1, 97, -1, 99, -1,
181, 102, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, 124, 125
};
static const yytype_uint16 yystos[] =
{
0, 1, 10, 15, 16, 17, 23, 24, 30, 31,
34, 36, 38, 39, 42, 51, 55, 61, 63, 72,
73, 76, 77, 81, 82, 85, 86, 94, 107, 108,
109, 114, 123, 128, 130, 132, 133, 142, 143, 144,
145, 146, 147, 148, 149, 152, 154, 163, 168, 169,
170, 172, 173, 179, 180, 189, 205, 206, 207, 208,
209, 221, 222, 223, 224, 228, 233, 241, 250, 255,
259, 264, 268, 269, 270, 271, 272, 280, 281, 284,
295, 296, 188, 62, 62, 225, 8, 12, 19, 70,
104, 105, 121, 126, 153, 176, 177, 178, 260, 261,
262, 263, 11, 100, 105, 244, 245, 246, 160, 273,
260, 21, 25, 83, 129, 137, 140, 162, 167, 235,
67, 69, 160, 210, 211, 212, 160, 160, 160, 160,
278, 279, 210, 292, 62, 57, 58, 59, 60, 88,
90, 92, 98, 247, 248, 249, 292, 160, 160, 291,
62, 7, 8, 26, 65, 95, 161, 166, 285, 286,
28, 67, 69, 150, 210, 211, 62, 43, 96, 151,
256, 257, 258, 160, 274, 234, 235, 160, 6, 32,
50, 53, 127, 155, 156, 157, 158, 163, 265, 266,
267, 13, 14, 20, 22, 49, 89, 91, 97, 99,
102, 124, 125, 229, 230, 231, 232, 211, 62, 200,
288, 289, 290, 62, 287, 0, 207, 188, 210, 210,
33, 62, 294, 62, 160, 160, 35, 56, 80, 283,
202, 29, 52, 55, 138, 139, 145, 226, 227, 261,
245, 62, 33, 236, 3, 44, 45, 46, 47, 141,
159, 164, 165, 251, 252, 253, 254, 160, 207, 279,
210, 248, 62, 160, 286, 242, 28, 28, 242, 242,
87, 257, 62, 199, 235, 266, 294, 40, 62, 171,
293, 230, 62, 294, 276, 62, 289, 62, 188, 213,
5, 66, 68, 160, 184, 282, 190, 191, 297, 298,
299, 62, 160, 30, 38, 41, 79, 110, 174, 237,
238, 239, 160, 160, 62, 252, 294, 293, 48, 56,
74, 75, 78, 84, 111, 112, 115, 116, 118, 119,
120, 122, 181, 243, 242, 242, 211, 160, 63, 134,
277, 37, 9, 18, 54, 55, 71, 93, 101, 103,
117, 135, 136, 171, 173, 181, 185, 214, 215, 216,
217, 218, 219, 220, 148, 298, 300, 301, 303, 188,
199, 160, 4, 27, 106, 113, 131, 183, 186, 240,
242, 28, 275, 211, 62, 62, 62, 175, 160, 199,
188, 203, 301, 202, 294, 201, 210, 192, 302, 199,
193, 304, 305, 294, 199, 203, 305, 188, 294, 202,
194, 195, 196, 197, 198, 306, 307, 308, 203, 307,
188, 199, 188, 294
};
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrorlab
#define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
{ \
yychar = (Token); \
yylval = (Value); \
yytoken = YYTRANSLATE (yychar); \
YYPOPSTACK (1); \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (YYID (0))
#define YYTERROR 1
#define YYERRCODE 256
#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
do \
if (YYID (N)) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (YYID (0))
#endif
#ifndef YY_LOCATION_PRINT
# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
(Loc).last_line, (Loc).last_column)
# else
# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
# endif
#endif
#ifdef YYLEX_PARAM
# define YYLEX yylex (YYLEX_PARAM)
#else
# define YYLEX yylex ()
#endif
#if YYDEBUG
# ifndef YYFPRINTF
# include <stdio.h>
# define YYFPRINTF fprintf
# endif
# define YYDPRINTF(Args) \
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (YYID (0))
# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
do { \
if (yydebug) \
{ \
YYFPRINTF (stderr, "%s ", Title); \
yy_symbol_print (stderr, \
Type, Value); \
YYFPRINTF (stderr, "\n"); \
} \
} while (YYID (0))
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_value_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{
if (!yyvaluep)
return;
# ifdef YYPRINT
if (yytype < YYNTOKENS)
YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
# else
YYUSE (yyoutput);
# endif
switch (yytype)
{
default:
break;
}
}
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
#else
static void
yy_symbol_print (yyoutput, yytype, yyvaluep)
FILE *yyoutput;
int yytype;
YYSTYPE const * const yyvaluep;
#endif
{
if (yytype < YYNTOKENS)
YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
else
YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
yy_symbol_value_print (yyoutput, yytype, yyvaluep);
YYFPRINTF (yyoutput, ")");
}
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
yytype_int16 *bottom;
yytype_int16 *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
for (; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
# define YY_STACK_PRINT(Bottom, Top) \
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
} while (YYID (0))
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
yy_reduce_print (yyvsp, yyrule)
YYSTYPE *yyvsp;
int yyrule;
#endif
{
int yynrhs = yyr2[yyrule];
int yyi;
unsigned long int yylno = yyrline[yyrule];
YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
yyrule - 1, yylno);
for (yyi = 0; yyi < yynrhs; yyi++)
{
fprintf (stderr, " $%d = ", yyi + 1);
yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
&(yyvsp[(yyi + 1) - (yynrhs)])
);
fprintf (stderr, "\n");
}
}
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
yy_reduce_print (yyvsp, Rule); \
} while (YYID (0))
int yydebug;
#else
# define YYDPRINTF(Args)
# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif
#ifndef YYINITDEPTH
# define YYINITDEPTH 200
#endif
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
#if YYERROR_VERBOSE
# ifndef yystrlen
# if defined __GLIBC__ && defined _STRING_H
# define yystrlen strlen
# else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
yystrlen (const char *yystr)
#else
static YYSIZE_T
yystrlen (yystr)
const char *yystr;
#endif
{
YYSIZE_T yylen;
for (yylen = 0; yystr[yylen]; yylen++)
continue;
return yylen;
}
# endif
# endif
# ifndef yystpcpy
# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
# define yystpcpy stpcpy
# else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static char *
yystpcpy (char *yydest, const char *yysrc)
#else
static char *
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
#endif
{
char *yyd = yydest;
const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0')
continue;
return yyd - 1;
}
# endif
# endif
# ifndef yytnamerr
static YYSIZE_T
yytnamerr (char *yyres, const char *yystr)
{
if (*yystr == '"')
{
YYSIZE_T yyn = 0;
char const *yyp = yystr;
for (;;)
switch (*++yyp)
{
case '\'':
case ',':
goto do_not_strip_quotes;
case '\\':
if (*++yyp != '\\')
goto do_not_strip_quotes;
default:
if (yyres)
yyres[yyn] = *yyp;
yyn++;
break;
case '"':
if (yyres)
yyres[yyn] = '\0';
return yyn;
}
do_not_strip_quotes: ;
}
if (! yyres)
return yystrlen (yystr);
return yystpcpy (yyres, yystr) - yyres;
}
# endif
static YYSIZE_T
yysyntax_error (char *yyresult, int yystate, int yychar)
{
int yyn = yypact[yystate];
if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
return 0;
else
{
int yytype = YYTRANSLATE (yychar);
YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
YYSIZE_T yysize = yysize0;
YYSIZE_T yysize1;
int yysize_overflow = 0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
int yyx;
# if 0
YY_("syntax error, unexpected %s");
YY_("syntax error, unexpected %s, expecting %s");
YY_("syntax error, unexpected %s, expecting %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s");
YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
# endif
char *yyfmt;
char const *yyf;
static char const yyunexpected[] = "syntax error, unexpected %s";
static char const yyexpecting[] = ", expecting %s";
static char const yyor[] = " or %s";
char yyformat[sizeof yyunexpected
+ sizeof yyexpecting - 1
+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
* (sizeof yyor - 1))];
char const *yyprefix = yyexpecting;
int yyxbegin = yyn < 0 ? -yyn : 0;
int yychecklim = YYLAST - yyn + 1;
int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
int yycount = 1;
yyarg[0] = yytname[yytype];
yyfmt = yystpcpy (yyformat, yyunexpected);
for (yyx = yyxbegin; yyx < yyxend; ++yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
{
yycount = 1;
yysize = yysize0;
yyformat[sizeof yyunexpected - 1] = '\0';
break;
}
yyarg[yycount++] = yytname[yyx];
yysize1 = yysize + yytnamerr (0, yytname[yyx]);
yysize_overflow |= (yysize1 < yysize);
yysize = yysize1;
yyfmt = yystpcpy (yyfmt, yyprefix);
yyprefix = yyor;
}
yyf = YY_(yyformat);
yysize1 = yysize + yystrlen (yyf);
yysize_overflow |= (yysize1 < yysize);
yysize = yysize1;
if (yysize_overflow)
return YYSIZE_MAXIMUM;
if (yyresult)
{
char *yyp = yyresult;
int yyi = 0;
while ((*yyp = *yyf) != '\0')
{
if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
{
yyp += yytnamerr (yyp, yyarg[yyi++]);
yyf += 2;
}
else
{
yyp++;
yyf++;
}
}
}
return yysize;
}
}
#endif
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
static void
yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
yydestruct (yymsg, yytype, yyvaluep)
const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
{
YYUSE (yyvaluep);
if (!yymsg)
yymsg = "Deleting";
YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
default:
break;
}
}
#ifdef YYPARSE_PARAM
#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
#else
int yyparse ();
#endif
#else
#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
#endif
#endif
int yychar;
YYSTYPE yylval;
int yynerrs;
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
#endif
#else
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
int
yyparse ()
#endif
#endif
{
int yystate;
int yyn;
int yyresult;
int yyerrstatus;
int yytoken = 0;
#if YYERROR_VERBOSE
char yymsgbuf[128];
char *yymsg = yymsgbuf;
YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
#endif
yytype_int16 yyssa[YYINITDEPTH];
yytype_int16 *yyss = yyssa;
yytype_int16 *yyssp;
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
YYSTYPE *yyvsp;
#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
YYSIZE_T yystacksize = YYINITDEPTH;
YYSTYPE yyval;
int yylen = 0;
YYDPRINTF ((stderr, "Starting parse\n"));
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY;
yyssp = yyss;
yyvsp = yyvs;
goto yysetstate;
yynewstate:
yyssp++;
yysetstate:
*yyssp = yystate;
if (yyss + yystacksize - 1 <= yyssp)
{
YYSIZE_T yysize = yyssp - yyss + 1;
#ifdef yyoverflow
{
YYSTYPE *yyvs1 = yyvs;
yytype_int16 *yyss1 = yyss;
yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yystacksize);
yyss = yyss1;
yyvs = yyvs1;
}
#else
# ifndef YYSTACK_RELOCATE
goto yyexhaustedlab;
# else
if (YYMAXDEPTH <= yystacksize)
goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
{
yytype_int16 *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
# endif
#endif
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
YYDPRINTF ((stderr, "Entering state %d\n", yystate));
goto yybackup;
yybackup:
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
yychar = YYLEX;
}
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
else
{
yytoken = YYTRANSLATE (yychar);
YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
yyn += yytoken;
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
goto yydefault;
yyn = yytable[yyn];
if (yyn <= 0)
{
if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
if (yyn == YYFINAL)
YYACCEPT;
if (yyerrstatus)
yyerrstatus--;
YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
if (yychar != YYEOF)
yychar = YYEMPTY;
yystate = yyn;
*++yyvsp = yylval;
goto yynewstate;
yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
goto yyreduce;
yyreduce:
yylen = yyr2[yyn];
yyval = yyvsp[1-yylen];
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
case 5:
#line 378 "ntp_parser.y"
{
struct FILE_INFO * ip_ctx = lex_current();
msyslog(LOG_ERR,
"syntax error in %s line %d, column %d",
ip_ctx->fname,
ip_ctx->errpos.nline,
ip_ctx->errpos.ncol);
}
break;
case 20:
#line 414 "ntp_parser.y"
{
peer_node *my_node;
my_node = create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
APPEND_G_FIFO(cfgt.peers, my_node);
}
break;
case 27:
#line 433 "ntp_parser.y"
{ (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), (yyvsp[(1) - (2)].Integer)); }
break;
case 28:
#line 438 "ntp_parser.y"
{ (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), AF_UNSPEC); }
break;
case 29:
#line 443 "ntp_parser.y"
{ (yyval.Integer) = AF_INET; }
break;
case 30:
#line 445 "ntp_parser.y"
{ (yyval.Integer) = AF_INET6; }
break;
case 31:
#line 450 "ntp_parser.y"
{ (yyval.Attr_val_fifo) = NULL; }
break;
case 32:
#line 452 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 36:
#line 466 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
break;
case 45:
#line 482 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
break;
case 46:
#line 484 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_uval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
break;
case 53:
#line 498 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
break;
case 55:
#line 512 "ntp_parser.y"
{
unpeer_node *my_node;
my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node));
if (my_node)
APPEND_G_FIFO(cfgt.unpeers, my_node);
}
break;
case 58:
#line 533 "ntp_parser.y"
{ cfgt.broadcastclient = 1; }
break;
case 59:
#line 535 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[(2) - (2)].Address_fifo)); }
break;
case 60:
#line 537 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[(2) - (2)].Address_fifo)); }
break;
case 61:
#line 539 "ntp_parser.y"
{ cfgt.mdnstries = (yyvsp[(2) - (2)].Integer); }
break;
case 62:
#line 550 "ntp_parser.y"
{
attr_val *atrv;
atrv = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
APPEND_G_FIFO(cfgt.vars, atrv);
}
break;
case 63:
#line 557 "ntp_parser.y"
{ cfgt.auth.control_key = (yyvsp[(2) - (2)].Integer); }
break;
case 64:
#line 559 "ntp_parser.y"
{
cfgt.auth.cryptosw++;
CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Attr_val_fifo));
}
break;
case 65:
#line 564 "ntp_parser.y"
{ cfgt.auth.keys = (yyvsp[(2) - (2)].String); }
break;
case 66:
#line 566 "ntp_parser.y"
{ cfgt.auth.keysdir = (yyvsp[(2) - (2)].String); }
break;
case 67:
#line 568 "ntp_parser.y"
{ cfgt.auth.request_key = (yyvsp[(2) - (2)].Integer); }
break;
case 68:
#line 570 "ntp_parser.y"
{ cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); }
break;
case 69:
#line 572 "ntp_parser.y"
{
cfgt.auth.trusted_key_list = (yyvsp[(2) - (2)].Attr_val_fifo);
}
break;
case 70:
#line 581 "ntp_parser.y"
{ cfgt.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); }
break;
case 71:
#line 586 "ntp_parser.y"
{ (yyval.Attr_val_fifo) = NULL; }
break;
case 72:
#line 588 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 73:
#line 596 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
break;
case 74:
#line 598 "ntp_parser.y"
{
(yyval.Attr_val) = NULL;
cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer);
msyslog(LOG_WARNING,
"'crypto revoke %d' is deprecated, "
"please use 'revoke %d' instead.",
cfgt.auth.revoke, cfgt.auth.revoke);
}
break;
case 80:
#line 623 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[(2) - (2)].Attr_val_fifo)); }
break;
case 81:
#line 628 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 82:
#line 633 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 83:
#line 641 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
break;
case 84:
#line 643 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
break;
case 85:
#line 645 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); }
break;
case 97:
#line 672 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[(2) - (2)].Int_fifo)); }
break;
case 98:
#line 674 "ntp_parser.y"
{
if (lex_from_file()) {
cfgt.stats_dir = (yyvsp[(2) - (2)].String);
} else {
YYFREE((yyvsp[(2) - (2)].String));
yyerror("statsdir remote configuration ignored");
}
}
break;
case 99:
#line 683 "ntp_parser.y"
{
filegen_node *fgn;
fgn = create_filegen_node((yyvsp[(2) - (3)].Integer), (yyvsp[(3) - (3)].Attr_val_fifo));
APPEND_G_FIFO(cfgt.filegen_opts, fgn);
}
break;
case 100:
#line 693 "ntp_parser.y"
{
(yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
}
break;
case 101:
#line 698 "ntp_parser.y"
{
(yyval.Int_fifo) = NULL;
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
}
break;
case 110:
#line 717 "ntp_parser.y"
{ (yyval.Attr_val_fifo) = NULL; }
break;
case 111:
#line 719 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 112:
#line 727 "ntp_parser.y"
{
if (lex_from_file()) {
(yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
} else {
(yyval.Attr_val) = NULL;
YYFREE((yyvsp[(2) - (2)].String));
yyerror("filegen file remote config ignored");
}
}
break;
case 113:
#line 737 "ntp_parser.y"
{
if (lex_from_file()) {
(yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
} else {
(yyval.Attr_val) = NULL;
yyerror("filegen type remote config ignored");
}
}
break;
case 114:
#line 746 "ntp_parser.y"
{
const char *err;
if (lex_from_file()) {
(yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
} else {
(yyval.Attr_val) = NULL;
if (T_Link == (yyvsp[(1) - (1)].Integer))
err = "filegen link remote config ignored";
else
err = "filegen nolink remote config ignored";
yyerror(err);
}
}
break;
case 115:
#line 761 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
break;
case 127:
#line 791 "ntp_parser.y"
{
CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[(2) - (2)].Attr_val_fifo));
}
break;
case 128:
#line 795 "ntp_parser.y"
{
CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[(2) - (2)].Attr_val_fifo));
}
break;
case 129:
#line 799 "ntp_parser.y"
{
restrict_node *rn;
rn = create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Int_fifo),
lex_current()->curpos.nline);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
break;
case 130:
#line 807 "ntp_parser.y"
{
restrict_node *rn;
rn = create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Int_fifo),
lex_current()->curpos.nline);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
break;
case 131:
#line 815 "ntp_parser.y"
{
restrict_node *rn;
rn = create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Int_fifo),
lex_current()->curpos.nline);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
break;
case 132:
#line 823 "ntp_parser.y"
{
restrict_node *rn;
rn = create_restrict_node(
create_address_node(
estrdup("0.0.0.0"),
AF_INET),
create_address_node(
estrdup("0.0.0.0"),
AF_INET),
(yyvsp[(4) - (4)].Int_fifo),
lex_current()->curpos.nline);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
break;
case 133:
#line 838 "ntp_parser.y"
{
restrict_node *rn;
rn = create_restrict_node(
create_address_node(
estrdup("::"),
AF_INET6),
create_address_node(
estrdup("::"),
AF_INET6),
(yyvsp[(4) - (4)].Int_fifo),
lex_current()->curpos.nline);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
break;
case 134:
#line 853 "ntp_parser.y"
{
restrict_node * rn;
APPEND_G_FIFO((yyvsp[(3) - (3)].Int_fifo), create_int_node((yyvsp[(2) - (3)].Integer)));
rn = create_restrict_node(
NULL, NULL, (yyvsp[(3) - (3)].Int_fifo), lex_current()->curpos.nline);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
break;
case 135:
#line 865 "ntp_parser.y"
{ (yyval.Int_fifo) = NULL; }
break;
case 136:
#line 867 "ntp_parser.y"
{
(yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
}
break;
case 152:
#line 893 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 153:
#line 898 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 154:
#line 906 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
break;
case 158:
#line 917 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 159:
#line 922 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 160:
#line 930 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
break;
case 169:
#line 950 "ntp_parser.y"
{
addr_opts_node *aon;
aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
APPEND_G_FIFO(cfgt.fudge, aon);
}
break;
case 170:
#line 960 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 171:
#line 965 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 172:
#line 973 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
break;
case 173:
#line 975 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
break;
case 174:
#line 977 "ntp_parser.y"
{
if ((yyvsp[(2) - (2)].Integer) >= 0 && (yyvsp[(2) - (2)].Integer) <= 16) {
(yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
} else {
(yyval.Attr_val) = NULL;
yyerror("fudge factor: stratum value not in [0..16], ignored");
}
}
break;
case 175:
#line 986 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
break;
case 176:
#line 988 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); }
break;
case 183:
#line 1009 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[(2) - (2)].Attr_val_fifo)); }
break;
case 184:
#line 1014 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 185:
#line 1019 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 186:
#line 1027 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
break;
case 190:
#line 1043 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); }
break;
case 191:
#line 1045 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[(2) - (2)].Attr_val_fifo)); }
break;
case 192:
#line 1050 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 193:
#line 1055 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 194:
#line 1063 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); }
break;
case 195:
#line 1065 "ntp_parser.y"
{
if (lex_from_file()) {
(yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
} else {
char err_str[128];
(yyval.Attr_val) = NULL;
snprintf(err_str, sizeof(err_str),
"enable/disable %s remote configuration ignored",
keyword((yyvsp[(1) - (1)].Integer)));
yyerror(err_str);
}
}
break;
case 208:
#line 1104 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[(2) - (2)].Attr_val_fifo)); }
break;
case 209:
#line 1109 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 210:
#line 1114 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 211:
#line 1122 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); }
break;
case 224:
#line 1147 "ntp_parser.y"
{
attr_val *av;
av = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double));
APPEND_G_FIFO(cfgt.vars, av);
}
break;
case 225:
#line 1154 "ntp_parser.y"
{
attr_val *av;
av = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer));
APPEND_G_FIFO(cfgt.vars, av);
}
break;
case 226:
#line 1161 "ntp_parser.y"
{
attr_val *av;
av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
APPEND_G_FIFO(cfgt.vars, av);
}
break;
case 227:
#line 1168 "ntp_parser.y"
{
char error_text[64];
attr_val *av;
if (lex_from_file()) {
av = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
APPEND_G_FIFO(cfgt.vars, av);
} else {
YYFREE((yyvsp[(2) - (2)].String));
snprintf(error_text, sizeof(error_text),
"%s remote config ignored",
keyword((yyvsp[(1) - (2)].Integer)));
yyerror(error_text);
}
}
break;
case 228:
#line 1184 "ntp_parser.y"
{
if (!lex_from_file()) {
YYFREE((yyvsp[(2) - (3)].String));
yyerror("remote includefile ignored");
break;
}
if (lex_level() > MAXINCLUDELEVEL) {
fprintf(stderr, "getconfig: Maximum include file level exceeded.\n");
msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded.");
} else {
const char * path = FindConfig((yyvsp[(2) - (3)].String));
if (!lex_push_file(path, "r")) {
fprintf(stderr, "getconfig: Couldn't open <%s>\n", path);
msyslog(LOG_ERR, "getconfig: Couldn't open <%s>", path);
}
}
YYFREE((yyvsp[(2) - (3)].String));
}
break;
case 229:
#line 1203 "ntp_parser.y"
{ lex_flush_stack(); }
break;
case 230:
#line 1205 "ntp_parser.y"
{ }
break;
case 231:
#line 1207 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[(2) - (2)].Attr_val_fifo)); }
break;
case 232:
#line 1209 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.phone, (yyvsp[(2) - (2)].String_fifo)); }
break;
case 233:
#line 1211 "ntp_parser.y"
{ APPEND_G_FIFO(cfgt.setvar, (yyvsp[(2) - (2)].Set_var)); }
break;
case 234:
#line 1213 "ntp_parser.y"
{
addr_opts_node *aon;
aon = create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Attr_val_fifo));
APPEND_G_FIFO(cfgt.trap, aon);
}
break;
case 235:
#line 1220 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[(2) - (2)].Attr_val_fifo)); }
break;
case 240:
#line 1235 "ntp_parser.y"
{
#ifndef LEAP_SMEAR
yyerror("Built without LEAP_SMEAR support.");
#endif
}
break;
case 246:
#line 1255 "ntp_parser.y"
{
if (lex_from_file()) {
attr_val *av;
av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String));
APPEND_G_FIFO(cfgt.vars, av);
} else {
YYFREE((yyvsp[(1) - (1)].String));
yyerror("driftfile remote configuration ignored");
}
}
break;
case 247:
#line 1266 "ntp_parser.y"
{
if (lex_from_file()) {
attr_val *av;
av = create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String));
APPEND_G_FIFO(cfgt.vars, av);
av = create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double));
APPEND_G_FIFO(cfgt.vars, av);
} else {
YYFREE((yyvsp[(1) - (2)].String));
yyerror("driftfile remote configuration ignored");
}
}
break;
case 248:
#line 1279 "ntp_parser.y"
{
if (lex_from_file()) {
attr_val *av;
av = create_attr_sval(T_Driftfile, estrdup(""));
APPEND_G_FIFO(cfgt.vars, av);
} else {
yyerror("driftfile remote configuration ignored");
}
}
break;
case 249:
#line 1292 "ntp_parser.y"
{ (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), (yyvsp[(4) - (4)].Integer)); }
break;
case 251:
#line 1298 "ntp_parser.y"
{ (yyval.Integer) = 0; }
break;
case 252:
#line 1303 "ntp_parser.y"
{ (yyval.Attr_val_fifo) = NULL; }
break;
case 253:
#line 1305 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 254:
#line 1313 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); }
break;
case 255:
#line 1315 "ntp_parser.y"
{
(yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), estrdup((yyvsp[(2) - (2)].Address_node)->address));
destroy_address_node((yyvsp[(2) - (2)].Address_node));
}
break;
case 256:
#line 1323 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 257:
#line 1328 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 258:
#line 1336 "ntp_parser.y"
{
char prefix;
char * type;
switch ((yyvsp[(1) - (1)].String)[0]) {
case '+':
case '-':
case '=':
prefix = (yyvsp[(1) - (1)].String)[0];
type = (yyvsp[(1) - (1)].String) + 1;
break;
default:
prefix = '=';
type = (yyvsp[(1) - (1)].String);
}
(yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
YYFREE((yyvsp[(1) - (1)].String));
}
break;
case 259:
#line 1361 "ntp_parser.y"
{
nic_rule_node *nrn;
nrn = create_nic_rule_node((yyvsp[(3) - (3)].Integer), NULL, (yyvsp[(2) - (3)].Integer));
APPEND_G_FIFO(cfgt.nic_rules, nrn);
}
break;
case 260:
#line 1368 "ntp_parser.y"
{
nic_rule_node *nrn;
nrn = create_nic_rule_node(0, (yyvsp[(3) - (3)].String), (yyvsp[(2) - (3)].Integer));
APPEND_G_FIFO(cfgt.nic_rules, nrn);
}
break;
case 270:
#line 1396 "ntp_parser.y"
{ CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[(2) - (2)].Int_fifo)); }
break;
case 271:
#line 1401 "ntp_parser.y"
{
(yyval.Int_fifo) = (yyvsp[(1) - (2)].Int_fifo);
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
}
break;
case 272:
#line 1406 "ntp_parser.y"
{
(yyval.Int_fifo) = NULL;
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
}
break;
case 280:
#line 1430 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(2) - (2)].Integer)));
}
break;
case 281:
#line 1435 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[(1) - (1)].Integer)));
}
break;
case 282:
#line 1443 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (2)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (2)].Attr_val));
}
break;
case 283:
#line 1448 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (1)].Attr_val));
}
break;
case 284:
#line 1456 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival('i', (yyvsp[(1) - (1)].Integer)); }
break;
case 286:
#line 1462 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[(2) - (5)].Integer), (yyvsp[(4) - (5)].Integer)); }
break;
case 287:
#line 1467 "ntp_parser.y"
{
(yyval.String_fifo) = (yyvsp[(1) - (2)].String_fifo);
APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(2) - (2)].String)));
}
break;
case 288:
#line 1472 "ntp_parser.y"
{
(yyval.String_fifo) = NULL;
APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[(1) - (1)].String)));
}
break;
case 289:
#line 1480 "ntp_parser.y"
{
(yyval.Address_fifo) = (yyvsp[(1) - (2)].Address_fifo);
APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(2) - (2)].Address_node));
}
break;
case 290:
#line 1485 "ntp_parser.y"
{
(yyval.Address_fifo) = NULL;
APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[(1) - (1)].Address_node));
}
break;
case 291:
#line 1493 "ntp_parser.y"
{
if ((yyvsp[(1) - (1)].Integer) != 0 && (yyvsp[(1) - (1)].Integer) != 1) {
yyerror("Integer value is not boolean (0 or 1). Assuming 1");
(yyval.Integer) = 1;
} else {
(yyval.Integer) = (yyvsp[(1) - (1)].Integer);
}
}
break;
case 292:
#line 1501 "ntp_parser.y"
{ (yyval.Integer) = 1; }
break;
case 293:
#line 1502 "ntp_parser.y"
{ (yyval.Integer) = 0; }
break;
case 294:
#line 1506 "ntp_parser.y"
{ (yyval.Double) = (double)(yyvsp[(1) - (1)].Integer); }
break;
case 296:
#line 1517 "ntp_parser.y"
{
sim_node *sn;
sn = create_sim_node((yyvsp[(3) - (5)].Attr_val_fifo), (yyvsp[(4) - (5)].Sim_server_fifo));
APPEND_G_FIFO(cfgt.sim_details, sn);
old_config_style = 1;
}
break;
case 297:
#line 1534 "ntp_parser.y"
{ old_config_style = 0; }
break;
case 298:
#line 1539 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val));
}
break;
case 299:
#line 1544 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val));
}
break;
case 300:
#line 1552 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
break;
case 303:
#line 1562 "ntp_parser.y"
{
(yyval.Sim_server_fifo) = (yyvsp[(1) - (2)].Sim_server_fifo);
APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(2) - (2)].Sim_server));
}
break;
case 304:
#line 1567 "ntp_parser.y"
{
(yyval.Sim_server_fifo) = NULL;
APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[(1) - (1)].Sim_server));
}
break;
case 305:
#line 1575 "ntp_parser.y"
{ (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Sim_script_fifo))); }
break;
case 306:
#line 1580 "ntp_parser.y"
{ (yyval.Double) = (yyvsp[(3) - (4)].Double); }
break;
case 307:
#line 1585 "ntp_parser.y"
{ (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); }
break;
case 308:
#line 1590 "ntp_parser.y"
{
(yyval.Sim_script_fifo) = (yyvsp[(1) - (2)].Sim_script_fifo);
APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(2) - (2)].Sim_script));
}
break;
case 309:
#line 1595 "ntp_parser.y"
{
(yyval.Sim_script_fifo) = NULL;
APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[(1) - (1)].Sim_script));
}
break;
case 310:
#line 1603 "ntp_parser.y"
{ (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Attr_val_fifo))); }
break;
case 311:
#line 1608 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = (yyvsp[(1) - (3)].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(2) - (3)].Attr_val));
}
break;
case 312:
#line 1613 "ntp_parser.y"
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[(1) - (2)].Attr_val));
}
break;
case 313:
#line 1621 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); }
break;
#line 3465 "ntp_parser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
YYPOPSTACK (yylen);
yylen = 0;
YY_STACK_PRINT (yyss, yyssp);
*++yyvsp = yyval;
yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
yyerrlab:
if (!yyerrstatus)
{
++yynerrs;
#if ! YYERROR_VERBOSE
yyerror (YY_("syntax error"));
#else
{
YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
{
YYSIZE_T yyalloc = 2 * yysize;
if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
yyalloc = YYSTACK_ALLOC_MAXIMUM;
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
yymsg = (char *) YYSTACK_ALLOC (yyalloc);
if (yymsg)
yymsg_alloc = yyalloc;
else
{
yymsg = yymsgbuf;
yymsg_alloc = sizeof yymsgbuf;
}
}
if (0 < yysize && yysize <= yymsg_alloc)
{
(void) yysyntax_error (yymsg, yystate, yychar);
yyerror (yymsg);
}
else
{
yyerror (YY_("syntax error"));
if (yysize != 0)
goto yyexhaustedlab;
}
}
#endif
}
if (yyerrstatus == 3)
{
if (yychar <= YYEOF)
{
if (yychar == YYEOF)
YYABORT;
}
else
{
yydestruct ("Error: discarding",
yytoken, &yylval);
yychar = YYEMPTY;
}
}
goto yyerrlab1;
yyerrorlab:
if ( 0)
goto yyerrorlab;
YYPOPSTACK (yylen);
yylen = 0;
YY_STACK_PRINT (yyss, yyssp);
yystate = *yyssp;
goto yyerrlab1;
yyerrlab1:
yyerrstatus = 3;
for (;;)
{
yyn = yypact[yystate];
if (yyn != YYPACT_NINF)
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
{
yyn = yytable[yyn];
if (0 < yyn)
break;
}
}
if (yyssp == yyss)
YYABORT;
yydestruct ("Error: popping",
yystos[yystate], yyvsp);
YYPOPSTACK (1);
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
}
if (yyn == YYFINAL)
YYACCEPT;
*++yyvsp = yylval;
YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
yyacceptlab:
yyresult = 0;
goto yyreturn;
yyabortlab:
yyresult = 1;
goto yyreturn;
#ifndef yyoverflow
yyexhaustedlab:
yyerror (YY_("memory exhausted"));
yyresult = 2;
#endif
yyreturn:
if (yychar != YYEOF && yychar != YYEMPTY)
yydestruct ("Cleanup: discarding lookahead",
yytoken, &yylval);
YYPOPSTACK (yylen);
YY_STACK_PRINT (yyss, yyssp);
while (yyssp != yyss)
{
yydestruct ("Cleanup: popping",
yystos[*yyssp], yyvsp);
YYPOPSTACK (1);
}
#ifndef yyoverflow
if (yyss != yyssa)
YYSTACK_FREE (yyss);
#endif
#if YYERROR_VERBOSE
if (yymsg != yymsgbuf)
YYSTACK_FREE (yymsg);
#endif
return YYID (yyresult);
}
#line 1632 "ntp_parser.y"
void
yyerror(
const char *msg
)
{
int retval;
struct FILE_INFO * ip_ctx;
ip_ctx = lex_current();
ip_ctx->errpos = ip_ctx->tokpos;
msyslog(LOG_ERR, "line %d column %d %s",
ip_ctx->errpos.nline, ip_ctx->errpos.ncol, msg);
if (!lex_from_file()) {
retval = snprintf(remote_config.err_msg + remote_config.err_pos,
MAXLINE - remote_config.err_pos,
"column %d %s",
ip_ctx->errpos.ncol, msg);
if (retval > 0)
remote_config.err_pos += retval;
++remote_config.no_errors;
}
}
const char *
token_name(
int token
)
{
return yytname[YYTRANSLATE(token)];
}
#if 0
int main(int argc, char *argv[])
{
ip_file = FOPEN(argv[1], "r");
if (!ip_file)
fprintf(stderr, "ERROR!! Could not open file: %s\n", argv[1]);
yyparse();
return 0;
}
#endif