#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_Age = 258,
T_All = 259,
T_Allan = 260,
T_Auth = 261,
T_Autokey = 262,
T_Automax = 263,
T_Average = 264,
T_Bclient = 265,
T_Beacon = 266,
T_Bias = 267,
T_Broadcast = 268,
T_Broadcastclient = 269,
T_Broadcastdelay = 270,
T_Burst = 271,
T_Calibrate = 272,
T_Calldelay = 273,
T_Ceiling = 274,
T_Clockstats = 275,
T_Cohort = 276,
T_ControlKey = 277,
T_Crypto = 278,
T_Cryptostats = 279,
T_Day = 280,
T_Default = 281,
T_Digest = 282,
T_Disable = 283,
T_Discard = 284,
T_Dispersion = 285,
T_Double = 286,
T_Driftfile = 287,
T_Drop = 288,
T_Enable = 289,
T_End = 290,
T_False = 291,
T_File = 292,
T_Filegen = 293,
T_Flag1 = 294,
T_Flag2 = 295,
T_Flag3 = 296,
T_Flag4 = 297,
T_Flake = 298,
T_Floor = 299,
T_Freq = 300,
T_Fudge = 301,
T_Host = 302,
T_Huffpuff = 303,
T_Iburst = 304,
T_Ident = 305,
T_Ignore = 306,
T_Includefile = 307,
T_Integer = 308,
T_Interface = 309,
T_Ipv4 = 310,
T_Ipv4_flag = 311,
T_Ipv6 = 312,
T_Ipv6_flag = 313,
T_Kernel = 314,
T_Key = 315,
T_Keys = 316,
T_Keysdir = 317,
T_Kod = 318,
T_Mssntp = 319,
T_Leapfile = 320,
T_Limited = 321,
T_Link = 322,
T_Listen = 323,
T_Logconfig = 324,
T_Logfile = 325,
T_Loopstats = 326,
T_Lowpriotrap = 327,
T_Manycastclient = 328,
T_Manycastserver = 329,
T_Mask = 330,
T_Maxclock = 331,
T_Maxdist = 332,
T_Maxpoll = 333,
T_Minclock = 334,
T_Mindist = 335,
T_Minimum = 336,
T_Minpoll = 337,
T_Minsane = 338,
T_Mode = 339,
T_Monitor = 340,
T_Month = 341,
T_Multicastclient = 342,
T_Nic = 343,
T_Nolink = 344,
T_Nomodify = 345,
T_None = 346,
T_Nopeer = 347,
T_Noquery = 348,
T_Noselect = 349,
T_Noserve = 350,
T_Notrap = 351,
T_Notrust = 352,
T_Ntp = 353,
T_Ntpport = 354,
T_NtpSignDsocket = 355,
T_Orphan = 356,
T_Panic = 357,
T_Peer = 358,
T_Peerstats = 359,
T_Phone = 360,
T_Pid = 361,
T_Pidfile = 362,
T_Pool = 363,
T_Port = 364,
T_Preempt = 365,
T_Prefer = 366,
T_Protostats = 367,
T_Pw = 368,
T_Qos = 369,
T_Randfile = 370,
T_Rawstats = 371,
T_Refid = 372,
T_Requestkey = 373,
T_Restrict = 374,
T_Revoke = 375,
T_Saveconfigdir = 376,
T_Server = 377,
T_Setvar = 378,
T_Sign = 379,
T_Statistics = 380,
T_Stats = 381,
T_Statsdir = 382,
T_Step = 383,
T_Stepout = 384,
T_Stratum = 385,
T_String = 386,
T_Sysstats = 387,
T_Tick = 388,
T_Time1 = 389,
T_Time2 = 390,
T_Timingstats = 391,
T_Tinker = 392,
T_Tos = 393,
T_Trap = 394,
T_True = 395,
T_Trustedkey = 396,
T_Ttl = 397,
T_Type = 398,
T_Unconfig = 399,
T_Unpeer = 400,
T_Version = 401,
T_WanderThreshold = 402,
T_Week = 403,
T_Wildcard = 404,
T_Xleave = 405,
T_Year = 406,
T_Flag = 407,
T_Void = 408,
T_EOC = 409,
T_Simulate = 410,
T_Beep_Delay = 411,
T_Sim_Duration = 412,
T_Server_Offset = 413,
T_Duration = 414,
T_Freq_Offset = 415,
T_Wander = 416,
T_Jitter = 417,
T_Prop_Delay = 418,
T_Proc_Delay = 419
};
#endif
#define T_Age 258
#define T_All 259
#define T_Allan 260
#define T_Auth 261
#define T_Autokey 262
#define T_Automax 263
#define T_Average 264
#define T_Bclient 265
#define T_Beacon 266
#define T_Bias 267
#define T_Broadcast 268
#define T_Broadcastclient 269
#define T_Broadcastdelay 270
#define T_Burst 271
#define T_Calibrate 272
#define T_Calldelay 273
#define T_Ceiling 274
#define T_Clockstats 275
#define T_Cohort 276
#define T_ControlKey 277
#define T_Crypto 278
#define T_Cryptostats 279
#define T_Day 280
#define T_Default 281
#define T_Digest 282
#define T_Disable 283
#define T_Discard 284
#define T_Dispersion 285
#define T_Double 286
#define T_Driftfile 287
#define T_Drop 288
#define T_Enable 289
#define T_End 290
#define T_False 291
#define T_File 292
#define T_Filegen 293
#define T_Flag1 294
#define T_Flag2 295
#define T_Flag3 296
#define T_Flag4 297
#define T_Flake 298
#define T_Floor 299
#define T_Freq 300
#define T_Fudge 301
#define T_Host 302
#define T_Huffpuff 303
#define T_Iburst 304
#define T_Ident 305
#define T_Ignore 306
#define T_Includefile 307
#define T_Integer 308
#define T_Interface 309
#define T_Ipv4 310
#define T_Ipv4_flag 311
#define T_Ipv6 312
#define T_Ipv6_flag 313
#define T_Kernel 314
#define T_Key 315
#define T_Keys 316
#define T_Keysdir 317
#define T_Kod 318
#define T_Mssntp 319
#define T_Leapfile 320
#define T_Limited 321
#define T_Link 322
#define T_Listen 323
#define T_Logconfig 324
#define T_Logfile 325
#define T_Loopstats 326
#define T_Lowpriotrap 327
#define T_Manycastclient 328
#define T_Manycastserver 329
#define T_Mask 330
#define T_Maxclock 331
#define T_Maxdist 332
#define T_Maxpoll 333
#define T_Minclock 334
#define T_Mindist 335
#define T_Minimum 336
#define T_Minpoll 337
#define T_Minsane 338
#define T_Mode 339
#define T_Monitor 340
#define T_Month 341
#define T_Multicastclient 342
#define T_Nic 343
#define T_Nolink 344
#define T_Nomodify 345
#define T_None 346
#define T_Nopeer 347
#define T_Noquery 348
#define T_Noselect 349
#define T_Noserve 350
#define T_Notrap 351
#define T_Notrust 352
#define T_Ntp 353
#define T_Ntpport 354
#define T_NtpSignDsocket 355
#define T_Orphan 356
#define T_Panic 357
#define T_Peer 358
#define T_Peerstats 359
#define T_Phone 360
#define T_Pid 361
#define T_Pidfile 362
#define T_Pool 363
#define T_Port 364
#define T_Preempt 365
#define T_Prefer 366
#define T_Protostats 367
#define T_Pw 368
#define T_Qos 369
#define T_Randfile 370
#define T_Rawstats 371
#define T_Refid 372
#define T_Requestkey 373
#define T_Restrict 374
#define T_Revoke 375
#define T_Saveconfigdir 376
#define T_Server 377
#define T_Setvar 378
#define T_Sign 379
#define T_Statistics 380
#define T_Stats 381
#define T_Statsdir 382
#define T_Step 383
#define T_Stepout 384
#define T_Stratum 385
#define T_String 386
#define T_Sysstats 387
#define T_Tick 388
#define T_Time1 389
#define T_Time2 390
#define T_Timingstats 391
#define T_Tinker 392
#define T_Tos 393
#define T_Trap 394
#define T_True 395
#define T_Trustedkey 396
#define T_Ttl 397
#define T_Type 398
#define T_Unconfig 399
#define T_Unpeer 400
#define T_Version 401
#define T_WanderThreshold 402
#define T_Week 403
#define T_Wildcard 404
#define T_Xleave 405
#define T_Year 406
#define T_Flag 407
#define T_Void 408
#define T_EOC 409
#define T_Simulate 410
#define T_Beep_Delay 411
#define T_Sim_Duration 412
#define T_Server_Offset 413
#define T_Duration 414
#define T_Freq_Offset 415
#define T_Wander 416
#define T_Jitter 417
#define T_Prop_Delay 418
#define T_Proc_Delay 419
#line 11 "ntp_parser.y"
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include "ntpd.h"
#include "ntp_machine.h"
#include "ntp.h"
#include "ntp_stdlib.h"
#include "ntp_filegen.h"
#include "ntp_data_structures.h"
#include "ntp_scanner.h"
#include "ntp_config.h"
#include "ntp_crypto.h"
#include "ntpsim.h"
struct FILE_INFO *ip_file;
#define YYMALLOC emalloc
#define YYFREE free
#define YYERROR_VERBOSE
#define YYMAXDEPTH 1000
void yyerror (char *msg);
extern int input_from_file;
#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 50 "ntp_parser.y"
{
char *String;
double Double;
int Integer;
void *VoidPtr;
queue *Queue;
struct attr_val *Attr_val;
struct address_node *Address_node;
struct setvar_node *Set_var;
server_info *Sim_server;
script_info *Sim_script;
}
#line 472 "ntp_parser.c"
YYSTYPE;
# define yystype YYSTYPE
# define YYSTYPE_IS_DECLARED 1
# define YYSTYPE_IS_TRIVIAL 1
#endif
#line 485 "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 173
#define YYLAST 684
#define YYNTOKENS 168
#define YYNNTS 68
#define YYNRULES 245
#define YYNSTATES 384
#define YYUNDEFTOK 2
#define YYMAXUTOK 419
#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,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 165, 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, 166, 2, 167, 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
};
#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,
44, 47, 49, 51, 53, 55, 57, 59, 62, 65,
67, 70, 72, 74, 77, 79, 81, 84, 87, 90,
92, 94, 96, 98, 100, 103, 106, 109, 112, 114,
116, 118, 121, 124, 127, 130, 133, 136, 139, 142,
145, 148, 151, 153, 154, 157, 159, 162, 165, 168,
171, 174, 177, 180, 183, 186, 188, 191, 194, 197,
200, 203, 206, 209, 212, 215, 218, 221, 224, 228,
231, 233, 235, 237, 239, 241, 243, 245, 247, 249,
252, 254, 257, 260, 262, 264, 266, 268, 270, 272,
274, 276, 278, 280, 282, 285, 289, 293, 298, 303,
309, 310, 313, 315, 317, 319, 321, 323, 325, 327,
329, 331, 333, 335, 337, 339, 341, 344, 346, 349,
352, 355, 359, 362, 364, 367, 370, 373, 376, 379,
382, 385, 388, 391, 394, 397, 399, 401, 403, 405,
407, 409, 411, 413, 416, 419, 421, 424, 427, 430,
433, 436, 439, 442, 444, 448, 450, 453, 456, 459,
462, 465, 468, 471, 474, 477, 480, 483, 486, 490,
493, 496, 498, 501, 502, 507, 511, 514, 516, 519,
522, 525, 527, 529, 533, 537, 539, 541, 543, 545,
547, 549, 551, 553, 555, 558, 560, 563, 565, 568,
570, 572, 574, 576, 578, 580, 586, 588, 592, 595,
599, 603, 606, 608, 614, 619, 623, 626, 628, 635,
639, 642, 646, 650, 654, 658
};
static const yytype_int16 yyrhs[] =
{
169, 0, -1, 170, -1, 170, 171, 154, -1, 171,
154, -1, 1, 154, -1, -1, 172, -1, 178, -1,
180, -1, 181, -1, 188, -1, 194, -1, 185, -1,
199, -1, 202, -1, 205, -1, 208, -1, 224, -1,
173, 174, 176, -1, 173, 174, -1, 122, -1, 108,
-1, 103, -1, 13, -1, 73, -1, 175, -1, 56,
131, -1, 58, 131, -1, 131, -1, 176, 177, -1,
177, -1, 7, -1, 12, 223, -1, 16, -1, 49,
-1, 60, 53, -1, 82, 53, -1, 78, 53, -1,
94, -1, 110, -1, 111, -1, 140, -1, 150, -1,
142, 53, -1, 84, 53, -1, 146, 53, -1, 179,
174, -1, 144, -1, 145, -1, 14, -1, 74, 221,
-1, 87, 221, -1, 8, 53, -1, 22, 53, -1,
23, 182, -1, 61, 131, -1, 62, 131, -1, 118,
53, -1, 120, 53, -1, 141, 219, -1, 100, 131,
-1, 183, -1, -1, 183, 184, -1, 184, -1, 47,
131, -1, 50, 131, -1, 113, 131, -1, 115, 131,
-1, 124, 131, -1, 27, 131, -1, 120, 53, -1,
138, 186, -1, 186, 187, -1, 187, -1, 19, 53,
-1, 44, 53, -1, 21, 222, -1, 101, 53, -1,
80, 223, -1, 77, 223, -1, 79, 223, -1, 76,
223, -1, 83, 53, -1, 11, 53, -1, 125, 189,
-1, 127, 131, -1, 38, 190, 191, -1, 189, 190,
-1, 190, -1, 20, -1, 24, -1, 71, -1, 104,
-1, 116, -1, 132, -1, 136, -1, 112, -1, 191,
192, -1, 192, -1, 37, 131, -1, 143, 193, -1,
67, -1, 89, -1, 34, -1, 28, -1, 91, -1,
106, -1, 25, -1, 148, -1, 86, -1, 151, -1,
3, -1, 29, 197, -1, 119, 174, 195, -1, 119,
26, 195, -1, 119, 56, 26, 195, -1, 119, 58,
26, 195, -1, 119, 175, 75, 175, 195, -1, -1,
195, 196, -1, 43, -1, 51, -1, 63, -1, 64,
-1, 66, -1, 72, -1, 90, -1, 92, -1, 93,
-1, 95, -1, 96, -1, 97, -1, 99, -1, 146,
-1, 197, 198, -1, 198, -1, 9, 53, -1, 81,
53, -1, 85, 53, -1, 46, 174, 200, -1, 200,
201, -1, 201, -1, 134, 223, -1, 135, 223, -1,
130, 53, -1, 117, 131, -1, 39, 222, -1, 40,
222, -1, 41, 222, -1, 42, 222, -1, 34, 203,
-1, 28, 203, -1, 203, 204, -1, 204, -1, 6,
-1, 10, -1, 17, -1, 59, -1, 85, -1, 98,
-1, 126, -1, 137, 206, -1, 206, 207, -1, 207,
-1, 5, 223, -1, 30, 223, -1, 45, 223, -1,
48, 223, -1, 102, 223, -1, 128, 223, -1, 129,
223, -1, 215, -1, 52, 131, 171, -1, 35, -1,
15, 223, -1, 18, 53, -1, 133, 223, -1, 32,
209, -1, 65, 131, -1, 107, 131, -1, 70, 131,
-1, 69, 213, -1, 105, 220, -1, 121, 131, -1,
123, 210, -1, 139, 175, -1, 139, 175, 211, -1,
142, 219, -1, 114, 131, -1, 131, -1, 131, 31,
-1, -1, 131, 165, 131, 26, -1, 131, 165, 131,
-1, 211, 212, -1, 212, -1, 109, 53, -1, 54,
175, -1, 213, 214, -1, 214, -1, 131, -1, 216,
218, 217, -1, 216, 218, 131, -1, 54, -1, 88,
-1, 4, -1, 55, -1, 57, -1, 149, -1, 68,
-1, 51, -1, 33, -1, 219, 53, -1, 53, -1,
220, 131, -1, 131, -1, 221, 174, -1, 174, -1,
53, -1, 140, -1, 36, -1, 53, -1, 31, -1,
225, 166, 226, 228, 167, -1, 155, -1, 226, 227,
154, -1, 227, 154, -1, 156, 165, 223, -1, 157,
165, 223, -1, 228, 229, -1, 229, -1, 231, 166,
230, 232, 167, -1, 158, 165, 223, 154, -1, 122,
165, 174, -1, 232, 233, -1, 233, -1, 159, 165,
223, 166, 234, 167, -1, 234, 235, 154, -1, 235,
154, -1, 160, 165, 223, -1, 161, 165, 223, -1,
162, 165, 223, -1, 163, 165, 223, -1, 164, 165,
223, -1
};
static const yytype_uint16 yyrline[] =
{
0, 296, 296, 300, 301, 302, 316, 317, 318, 319,
320, 321, 322, 323, 324, 325, 326, 327, 328, 336,
342, 351, 352, 353, 354, 355, 359, 360, 361, 365,
369, 370, 374, 375, 376, 377, 378, 379, 380, 381,
382, 383, 384, 385, 386, 387, 388, 397, 405, 406,
416, 418, 420, 431, 433, 435, 440, 442, 444, 446,
448, 450, 455, 457, 461, 468, 478, 480, 482, 484,
486, 488, 490, 507, 512, 513, 517, 519, 521, 523,
525, 527, 529, 531, 533, 535, 545, 547, 556, 564,
565, 569, 570, 571, 572, 573, 574, 575, 576, 580,
587, 597, 607, 616, 625, 634, 635, 639, 640, 641,
642, 643, 644, 645, 654, 658, 663, 668, 681, 694,
703, 704, 709, 710, 711, 712, 713, 714, 715, 716,
717, 718, 719, 720, 721, 722, 726, 728, 733, 734,
735, 743, 748, 750, 755, 756, 757, 758, 759, 760,
761, 762, 770, 772, 777, 784, 794, 795, 796, 797,
798, 799, 800, 816, 820, 821, 825, 826, 827, 828,
829, 830, 831, 840, 841, 857, 863, 865, 867, 869,
871, 874, 876, 887, 889, 891, 901, 903, 905, 907,
909, 914, 916, 920, 924, 926, 931, 933, 937, 938,
942, 943, 947, 962, 967, 975, 976, 980, 981, 982,
983, 987, 988, 989, 999, 1000, 1004, 1005, 1009, 1010,
1014, 1023, 1024, 1028, 1029, 1038, 1053, 1057, 1058, 1062,
1063, 1067, 1068, 1072, 1077, 1081, 1085, 1086, 1090, 1095,
1096, 1100, 1102, 1104, 1106, 1108
};
#endif
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
static const char *const yytname[] =
{
"$end", "error", "$undefined", "T_Age", "T_All", "T_Allan", "T_Auth",
"T_Autokey", "T_Automax", "T_Average", "T_Bclient", "T_Beacon", "T_Bias",
"T_Broadcast", "T_Broadcastclient", "T_Broadcastdelay", "T_Burst",
"T_Calibrate", "T_Calldelay", "T_Ceiling", "T_Clockstats", "T_Cohort",
"T_ControlKey", "T_Crypto", "T_Cryptostats", "T_Day", "T_Default",
"T_Digest", "T_Disable", "T_Discard", "T_Dispersion", "T_Double",
"T_Driftfile", "T_Drop", "T_Enable", "T_End", "T_False", "T_File",
"T_Filegen", "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_Includefile", "T_Integer", "T_Interface",
"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_Limited",
"T_Link", "T_Listen", "T_Logconfig", "T_Logfile", "T_Loopstats",
"T_Lowpriotrap", "T_Manycastclient", "T_Manycastserver", "T_Mask",
"T_Maxclock", "T_Maxdist", "T_Maxpoll", "T_Minclock", "T_Mindist",
"T_Minimum", "T_Minpoll", "T_Minsane", "T_Mode", "T_Monitor", "T_Month",
"T_Multicastclient", "T_Nic", "T_Nolink", "T_Nomodify", "T_None",
"T_Nopeer", "T_Noquery", "T_Noselect", "T_Noserve", "T_Notrap",
"T_Notrust", "T_Ntp", "T_Ntpport", "T_NtpSignDsocket", "T_Orphan",
"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_Qos", "T_Randfile", "T_Rawstats", "T_Refid", "T_Requestkey",
"T_Restrict", "T_Revoke", "T_Saveconfigdir", "T_Server", "T_Setvar",
"T_Sign", "T_Statistics", "T_Stats", "T_Statsdir", "T_Step", "T_Stepout",
"T_Stratum", "T_String", "T_Sysstats", "T_Tick", "T_Time1", "T_Time2",
"T_Timingstats", "T_Tinker", "T_Tos", "T_Trap", "T_True", "T_Trustedkey",
"T_Ttl", "T_Type", "T_Unconfig", "T_Unpeer", "T_Version",
"T_WanderThreshold", "T_Week", "T_Wildcard", "T_Xleave", "T_Year",
"T_Flag", "T_Void", "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", "option_list",
"option", "unpeer_command", "unpeer_keyword", "other_mode_command",
"authentication_command", "crypto_command_line", "crypto_command_list",
"crypto_command", "orphan_mode_command", "tos_option_list", "tos_option",
"monitoring_command", "stats_list", "stat", "filegen_option_list",
"filegen_option", "filegen_type", "access_control_command",
"ac_flag_list", "access_control_flag", "discard_option_list",
"discard_option", "fudge_command", "fudge_factor_list", "fudge_factor",
"system_option_command", "system_option_list", "system_option",
"tinker_command", "tinker_option_list", "tinker_option",
"miscellaneous_command", "drift_parm", "variable_assign",
"trap_option_list", "trap_option", "log_config_list",
"log_config_command", "interface_command", "interface_nic",
"nic_rule_class", "nic_rule_action", "integer_list", "string_list",
"address_list", "boolean", "number", "simulate_command",
"sim_conf_start", "sim_init_statement_list", "sim_init_statement",
"sim_server_list", "sim_server", "sim_server_offset", "sim_server_name",
"sim_act_list", "sim_act", "sim_act_stmt_list", "sim_act_stmt", 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, 61, 123, 125
};
# endif
static const yytype_uint8 yyr1[] =
{
0, 168, 169, 170, 170, 170, 171, 171, 171, 171,
171, 171, 171, 171, 171, 171, 171, 171, 171, 172,
172, 173, 173, 173, 173, 173, 174, 174, 174, 175,
176, 176, 177, 177, 177, 177, 177, 177, 177, 177,
177, 177, 177, 177, 177, 177, 177, 178, 179, 179,
180, 180, 180, 181, 181, 181, 181, 181, 181, 181,
181, 181, 182, 182, 183, 183, 184, 184, 184, 184,
184, 184, 184, 185, 186, 186, 187, 187, 187, 187,
187, 187, 187, 187, 187, 187, 188, 188, 188, 189,
189, 190, 190, 190, 190, 190, 190, 190, 190, 191,
191, 192, 192, 192, 192, 192, 192, 193, 193, 193,
193, 193, 193, 193, 194, 194, 194, 194, 194, 194,
195, 195, 196, 196, 196, 196, 196, 196, 196, 196,
196, 196, 196, 196, 196, 196, 197, 197, 198, 198,
198, 199, 200, 200, 201, 201, 201, 201, 201, 201,
201, 201, 202, 202, 203, 203, 204, 204, 204, 204,
204, 204, 204, 205, 206, 206, 207, 207, 207, 207,
207, 207, 207, 208, 208, 208, 208, 208, 208, 208,
208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
208, 209, 209, 209, 210, 210, 211, 211, 212, 212,
213, 213, 214, 215, 215, 216, 216, 217, 217, 217,
217, 218, 218, 218, 219, 219, 220, 220, 221, 221,
222, 222, 222, 223, 223, 224, 225, 226, 226, 227,
227, 228, 228, 229, 230, 231, 232, 232, 233, 234,
234, 235, 235, 235, 235, 235
};
static const yytype_uint8 yyr2[] =
{
0, 2, 1, 3, 2, 2, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
2, 1, 1, 1, 1, 1, 1, 2, 2, 1,
2, 1, 1, 2, 1, 1, 2, 2, 2, 1,
1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
1, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 1, 0, 2, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 3, 3, 4, 4, 5,
0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 2, 1, 2, 2,
2, 3, 2, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
1, 1, 1, 2, 2, 1, 2, 2, 2, 2,
2, 2, 2, 1, 3, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 3, 2,
2, 1, 2, 0, 4, 3, 2, 1, 2, 2,
2, 1, 1, 3, 3, 1, 1, 1, 1, 1,
1, 1, 1, 1, 2, 1, 2, 1, 2, 1,
1, 1, 1, 1, 1, 5, 1, 3, 2, 3,
3, 2, 1, 5, 4, 3, 2, 1, 6, 3,
2, 3, 3, 3, 3, 3
};
static const yytype_uint8 yydefact[] =
{
0, 0, 0, 24, 50, 0, 0, 0, 63, 0,
0, 193, 0, 175, 0, 0, 0, 205, 0, 0,
0, 0, 0, 25, 0, 0, 206, 0, 23, 0,
0, 22, 0, 0, 0, 0, 0, 21, 0, 0,
0, 0, 0, 0, 0, 0, 0, 48, 49, 226,
0, 2, 0, 7, 0, 8, 0, 9, 10, 13,
11, 12, 14, 15, 16, 17, 173, 0, 18, 0,
5, 53, 224, 223, 176, 177, 54, 0, 0, 0,
0, 0, 0, 0, 55, 62, 65, 156, 157, 158,
159, 160, 161, 162, 153, 155, 0, 0, 0, 114,
137, 191, 179, 152, 91, 92, 93, 94, 98, 95,
96, 97, 0, 0, 0, 29, 0, 26, 6, 56,
57, 180, 202, 183, 201, 182, 219, 51, 52, 61,
217, 184, 181, 190, 58, 120, 0, 0, 120, 26,
59, 185, 0, 186, 86, 90, 87, 178, 0, 0,
0, 0, 0, 0, 0, 163, 165, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 73, 75, 187,
215, 60, 189, 1, 0, 4, 20, 47, 213, 212,
211, 0, 0, 71, 66, 67, 68, 69, 72, 70,
64, 154, 138, 139, 140, 136, 192, 106, 105, 0,
103, 104, 0, 88, 100, 27, 28, 0, 0, 0,
0, 0, 0, 0, 0, 141, 143, 174, 200, 218,
216, 116, 120, 120, 115, 0, 0, 89, 166, 167,
168, 169, 170, 171, 172, 164, 85, 76, 222, 220,
221, 78, 77, 83, 81, 82, 80, 84, 79, 74,
0, 0, 188, 197, 214, 3, 32, 0, 34, 35,
0, 0, 0, 0, 39, 40, 41, 42, 0, 0,
43, 19, 31, 207, 208, 209, 204, 210, 203, 0,
0, 0, 0, 101, 113, 109, 111, 107, 108, 110,
112, 102, 99, 148, 149, 150, 151, 147, 146, 144,
145, 142, 122, 123, 124, 125, 126, 127, 128, 129,
130, 131, 132, 133, 134, 135, 121, 117, 118, 120,
195, 199, 198, 196, 33, 36, 38, 37, 45, 44,
46, 30, 0, 0, 0, 0, 0, 232, 0, 228,
119, 194, 229, 230, 0, 227, 225, 231, 0, 235,
0, 0, 0, 0, 0, 237, 0, 0, 233, 236,
234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 238, 0, 240, 241, 242,
243, 244, 245, 239
};
static const yytype_int16 yydefgoto[] =
{
-1, 50, 51, 52, 53, 54, 126, 117, 271, 272,
55, 56, 57, 58, 84, 85, 86, 59, 167, 168,
60, 144, 112, 203, 204, 291, 61, 221, 316, 99,
100, 62, 215, 216, 63, 94, 95, 64, 155, 156,
65, 102, 143, 252, 253, 123, 124, 66, 67, 278,
181, 171, 131, 127, 241, 74, 68, 69, 281, 282,
336, 337, 351, 338, 354, 355, 368, 369
};
#define YYPACT_NINF -137
static const yytype_int16 yypact[] =
{
124, -119, -17, -137, -137, -16, -14, 6, -21, 3,
-2, -93, 3, -137, 144, -15, -83, -137, -70, -67,
-66, -57, -56, -137, -15, -15, -137, -55, -137, -53,
-51, -137, -50, 29, -7, 31, -42, -137, -40, 144,
-38, -16, 12, 496, -35, 32, 32, -137, -137, -137,
90, 290, -52, -137, -15, -137, -15, -137, -137, -137,
-137, -137, -137, -137, -137, -137, -137, -23, -137, -69,
-137, -137, -137, -137, -137, -137, -137, -27, -26, -4,
2, 4, 45, 5, -137, -21, -137, -137, -137, -137,
-137, -137, -137, -137, 3, -137, 53, 91, 92, -2,
-137, 112, -137, 3, -137, -137, -137, -137, -137, -137,
-137, -137, -12, 18, 19, -137, 160, -137, 425, -137,
-137, -137, -137, -57, -137, -137, -137, -15, -15, -137,
-137, 20, -137, -137, -137, -137, -5, -3, -137, 79,
-137, -137, 0, -137, 144, -137, -137, -137, -16, -16,
-16, -16, -16, -16, -16, 12, -137, 102, 108, -6,
110, -16, -16, -16, -16, 113, 114, 496, -137, -46,
-137, 116, 116, -137, 17, -137, 477, -137, -137, -137,
-137, -1, -124, -137, -137, -137, -137, -137, -137, -137,
-137, -137, -137, -137, -137, -137, -137, -137, -137, 44,
-137, -137, 9, -12, -137, -137, -137, -6, -6, -6,
-6, 46, 121, -16, -16, 160, -137, -137, -137, -137,
-137, 538, -137, -137, 538, -35, 56, -137, -137, -137,
-137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-35, 131, -46, -137, -137, -137, -137, -16, -137, -137,
135, 137, 138, 142, -137, -137, -137, -137, 143, 155,
-137, 477, -137, -137, -137, -137, -137, -137, -137, 48,
49, -104, 55, -137, -137, -137, -137, -137, -137, -137,
-137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-137, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-137, -137, -137, -137, -137, -137, -137, 538, 538, -137,
184, -137, -137, -137, -137, -137, -137, -137, -137, -137,
-137, -137, -16, -16, 54, 64, -95, -137, 57, -137,
538, -137, -137, -137, -15, -137, -137, -137, 62, -137,
60, 63, -16, 61, -109, -137, 67, -16, -137, -137,
-137, 68, 43, 65, 70, 71, 72, 74, -94, 86,
-16, -16, -16, -16, -16, -137, 87, -137, -137, -137,
-137, -137, -137, -137
};
static const yytype_int16 yypgoto[] =
{
-137, -137, -137, -47, -137, -137, -10, -33, -137, -43,
-137, -137, -137, -137, -137, -137, 148, -137, -137, 83,
-137, -137, -25, -137, 50, -137, -137, -136, -137, -137,
153, -137, -137, 39, -137, 243, -63, -137, -137, 103,
-137, -137, -137, -137, 7, -137, 141, -137, -137, -137,
-137, 221, -137, 245, -28, -41, -137, -137, -137, -9,
-137, -65, -137, -137, -137, -81, -137, -87
};
#define YYTABLE_NINF -7
static const yytype_int16 yytable[] =
{
147, 139, 224, 273, 174, 116, 77, 96, 250, 87,
178, 169, 284, 88, 145, 72, 197, 148, 334, 135,
89, 222, 198, 223, 138, 199, 78, 334, 179, 79,
238, 191, 279, 280, 285, 70, 71, 73, 101, 75,
191, 113, 149, 114, 176, 180, 177, 239, 118, 136,
353, 137, 279, 280, 274, 200, 275, 150, 358, 76,
151, 119, 90, 251, 120, 121, 363, 364, 365, 366,
367, 217, 346, 375, 122, 125, 129, 201, 130, 97,
132, 133, 134, 98, 140, 170, 317, 318, 91, 141,
173, 142, 80, 146, 81, 286, 115, 182, 188, 82,
287, 92, 175, 83, 183, 184, 192, 228, 229, 230,
231, 232, 233, 234, 152, 288, 115, 219, 219, 227,
243, 244, 245, 246, 115, 1, 205, 185, 206, 93,
276, 202, 2, 186, 240, 187, 189, 3, 4, 5,
153, 154, 6, 196, 193, 194, 7, 8, 277, 205,
206, 220, 9, 10, 225, 236, 11, 289, 12, 13,
290, 237, 14, 242, 104, 226, 247, 248, 105, 254,
15, 255, 299, 300, 298, 283, 16, 297, 17, 293,
294, 295, 296, 340, 322, 18, 19, 320, 325, 20,
326, 327, 319, 21, 22, 328, 329, 23, 24, 207,
208, 209, 210, 363, 364, 365, 366, 367, 330, 339,
341, 25, 26, 332, 333, 106, 324, 321, 345, 344,
350, 360, 353, 348, 27, 352, 357, 28, 331, 29,
370, 30, 31, 190, 362, 371, 372, 373, 32, 374,
377, 383, 33, 34, 35, 36, 37, 38, 107, 39,
249, 40, 195, 292, 301, 103, 108, 41, 235, 323,
109, 42, 43, 44, 218, 45, 46, 172, 47, 48,
128, 347, 335, 359, 0, 0, 110, 211, -6, 49,
111, 376, 0, 0, 0, 0, 0, 0, 0, 0,
212, 342, 343, 0, 213, 214, 0, 0, 2, 0,
0, 0, 0, 3, 4, 5, 0, 0, 6, 0,
0, 356, 7, 8, 0, 0, 361, 0, 9, 10,
0, 0, 11, 0, 12, 13, 0, 0, 14, 378,
379, 380, 381, 382, 349, 0, 15, 0, 0, 0,
0, 0, 16, 0, 17, 0, 0, 0, 0, 0,
0, 18, 19, 0, 0, 20, 0, 0, 0, 21,
22, 0, 0, 23, 24, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 25, 26, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
27, 0, 0, 28, 0, 29, 0, 30, 31, 0,
0, 0, 0, 0, 32, 0, 0, 0, 33, 34,
35, 36, 37, 38, 0, 39, 0, 40, 0, 0,
0, 0, 0, 41, 0, 0, 0, 42, 43, 44,
0, 45, 46, 2, 47, 48, 0, 0, 3, 4,
5, 0, 0, 6, -6, 49, 0, 7, 8, 0,
0, 0, 0, 9, 10, 0, 0, 11, 0, 12,
13, 0, 0, 14, 0, 0, 0, 0, 0, 0,
0, 15, 0, 0, 0, 0, 0, 16, 0, 17,
0, 0, 0, 0, 256, 0, 18, 19, 0, 257,
20, 0, 0, 258, 21, 22, 0, 0, 23, 24,
0, 0, 0, 0, 0, 0, 0, 157, 0, 0,
0, 0, 25, 26, 0, 158, 0, 159, 0, 0,
0, 0, 0, 0, 0, 27, 259, 0, 28, 0,
29, 0, 30, 31, 0, 0, 0, 260, 0, 32,
160, 0, 0, 33, 34, 35, 36, 37, 38, 0,
39, 0, 40, 0, 0, 261, 0, 0, 41, 262,
0, 263, 42, 43, 44, 0, 45, 46, 0, 47,
48, 264, 161, 162, 0, 163, 164, 0, 0, 165,
49, 302, 0, 0, 0, 0, 0, 265, 266, 303,
0, 0, 0, 0, 0, 0, 0, 166, 0, 0,
0, 304, 305, 0, 306, 0, 0, 0, 0, 0,
307, 0, 0, 0, 0, 0, 0, 267, 0, 268,
0, 0, 0, 269, 0, 0, 0, 270, 308, 0,
309, 310, 0, 311, 312, 313, 0, 314, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 315
};
static const yytype_int16 yycheck[] =
{
41, 34, 138, 4, 51, 15, 27, 9, 54, 6,
33, 44, 3, 10, 39, 31, 28, 5, 122, 26,
17, 26, 34, 26, 34, 37, 47, 122, 51, 50,
36, 94, 156, 157, 25, 154, 53, 53, 131, 53,
103, 56, 30, 58, 54, 68, 56, 53, 131, 56,
159, 58, 156, 157, 55, 67, 57, 45, 167, 53,
48, 131, 59, 109, 131, 131, 160, 161, 162, 163,
164, 118, 167, 167, 131, 131, 131, 89, 131, 81,
131, 131, 53, 85, 53, 53, 222, 223, 85, 131,
0, 131, 113, 131, 115, 86, 131, 166, 53, 120,
91, 98, 154, 124, 131, 131, 53, 148, 149, 150,
151, 152, 153, 154, 102, 106, 131, 127, 128, 144,
161, 162, 163, 164, 131, 1, 131, 131, 131, 126,
131, 143, 8, 131, 140, 131, 131, 13, 14, 15,
128, 129, 18, 31, 53, 53, 22, 23, 149, 131,
131, 131, 28, 29, 75, 53, 32, 148, 34, 35,
151, 53, 38, 53, 20, 165, 53, 53, 24, 53,
46, 154, 213, 214, 53, 131, 52, 131, 54, 207,
208, 209, 210, 319, 53, 61, 62, 131, 53, 65,
53, 53, 225, 69, 70, 53, 53, 73, 74, 39,
40, 41, 42, 160, 161, 162, 163, 164, 53, 154,
26, 87, 88, 165, 165, 71, 257, 250, 154, 165,
158, 154, 159, 166, 100, 165, 165, 103, 271, 105,
165, 107, 108, 85, 166, 165, 165, 165, 114, 165,
154, 154, 118, 119, 120, 121, 122, 123, 104, 125,
167, 127, 99, 203, 215, 12, 112, 133, 155, 252,
116, 137, 138, 139, 123, 141, 142, 46, 144, 145,
25, 336, 281, 354, -1, -1, 132, 117, 154, 155,
136, 368, -1, -1, -1, -1, -1, -1, -1, -1,
130, 332, 333, -1, 134, 135, -1, -1, 8, -1,
-1, -1, -1, 13, 14, 15, -1, -1, 18, -1,
-1, 352, 22, 23, -1, -1, 357, -1, 28, 29,
-1, -1, 32, -1, 34, 35, -1, -1, 38, 370,
371, 372, 373, 374, 344, -1, 46, -1, -1, -1,
-1, -1, 52, -1, 54, -1, -1, -1, -1, -1,
-1, 61, 62, -1, -1, 65, -1, -1, -1, 69,
70, -1, -1, 73, 74, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 87, 88, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
100, -1, -1, 103, -1, 105, -1, 107, 108, -1,
-1, -1, -1, -1, 114, -1, -1, -1, 118, 119,
120, 121, 122, 123, -1, 125, -1, 127, -1, -1,
-1, -1, -1, 133, -1, -1, -1, 137, 138, 139,
-1, 141, 142, 8, 144, 145, -1, -1, 13, 14,
15, -1, -1, 18, 154, 155, -1, 22, 23, -1,
-1, -1, -1, 28, 29, -1, -1, 32, -1, 34,
35, -1, -1, 38, -1, -1, -1, -1, -1, -1,
-1, 46, -1, -1, -1, -1, -1, 52, -1, 54,
-1, -1, -1, -1, 7, -1, 61, 62, -1, 12,
65, -1, -1, 16, 69, 70, -1, -1, 73, 74,
-1, -1, -1, -1, -1, -1, -1, 11, -1, -1,
-1, -1, 87, 88, -1, 19, -1, 21, -1, -1,
-1, -1, -1, -1, -1, 100, 49, -1, 103, -1,
105, -1, 107, 108, -1, -1, -1, 60, -1, 114,
44, -1, -1, 118, 119, 120, 121, 122, 123, -1,
125, -1, 127, -1, -1, 78, -1, -1, 133, 82,
-1, 84, 137, 138, 139, -1, 141, 142, -1, 144,
145, 94, 76, 77, -1, 79, 80, -1, -1, 83,
155, 43, -1, -1, -1, -1, -1, 110, 111, 51,
-1, -1, -1, -1, -1, -1, -1, 101, -1, -1,
-1, 63, 64, -1, 66, -1, -1, -1, -1, -1,
72, -1, -1, -1, -1, -1, -1, 140, -1, 142,
-1, -1, -1, 146, -1, -1, -1, 150, 90, -1,
92, 93, -1, 95, 96, 97, -1, 99, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 146
};
static const yytype_uint8 yystos[] =
{
0, 1, 8, 13, 14, 15, 18, 22, 23, 28,
29, 32, 34, 35, 38, 46, 52, 54, 61, 62,
65, 69, 70, 73, 74, 87, 88, 100, 103, 105,
107, 108, 114, 118, 119, 120, 121, 122, 123, 125,
127, 133, 137, 138, 139, 141, 142, 144, 145, 155,
169, 170, 171, 172, 173, 178, 179, 180, 181, 185,
188, 194, 199, 202, 205, 208, 215, 216, 224, 225,
154, 53, 31, 53, 223, 53, 53, 27, 47, 50,
113, 115, 120, 124, 182, 183, 184, 6, 10, 17,
59, 85, 98, 126, 203, 204, 9, 81, 85, 197,
198, 131, 209, 203, 20, 24, 71, 104, 112, 116,
132, 136, 190, 56, 58, 131, 174, 175, 131, 131,
131, 131, 131, 213, 214, 131, 174, 221, 221, 131,
131, 220, 131, 131, 53, 26, 56, 58, 174, 175,
53, 131, 131, 210, 189, 190, 131, 223, 5, 30,
45, 48, 102, 128, 129, 206, 207, 11, 19, 21,
44, 76, 77, 79, 80, 83, 101, 186, 187, 175,
53, 219, 219, 0, 171, 154, 174, 174, 33, 51,
68, 218, 166, 131, 131, 131, 131, 131, 53, 131,
184, 204, 53, 53, 53, 198, 31, 28, 34, 37,
67, 89, 143, 191, 192, 131, 131, 39, 40, 41,
42, 117, 130, 134, 135, 200, 201, 171, 214, 174,
131, 195, 26, 26, 195, 75, 165, 190, 223, 223,
223, 223, 223, 223, 223, 207, 53, 53, 36, 53,
140, 222, 53, 223, 223, 223, 223, 53, 53, 187,
54, 109, 211, 212, 53, 154, 7, 12, 16, 49,
60, 78, 82, 84, 94, 110, 111, 140, 142, 146,
150, 176, 177, 4, 55, 57, 131, 149, 217, 156,
157, 226, 227, 131, 3, 25, 86, 91, 106, 148,
151, 193, 192, 222, 222, 222, 222, 131, 53, 223,
223, 201, 43, 51, 63, 64, 66, 72, 90, 92,
93, 95, 96, 97, 99, 146, 196, 195, 195, 175,
131, 175, 53, 212, 223, 53, 53, 53, 53, 53,
53, 177, 165, 165, 122, 227, 228, 229, 231, 154,
195, 26, 223, 223, 165, 154, 167, 229, 166, 174,
158, 230, 165, 159, 232, 233, 223, 165, 167, 233,
154, 223, 166, 160, 161, 162, 163, 164, 234, 235,
165, 165, 165, 165, 165, 167, 235, 154, 223, 223,
223, 223, 223, 154
};
#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 303 "ntp_parser.y"
{
msyslog(LOG_ERR,
"syntax error in %s line %d, column %d",
ip_file->fname,
ip_file->err_line_no,
ip_file->err_col_no);
;}
break;
case 19:
#line 337 "ntp_parser.y"
{
struct peer_node *my_node = create_peer_node((yyvsp[(1) - (3)].Integer), (yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue));
if (my_node)
enqueue(cfgt.peers, my_node);
;}
break;
case 20:
#line 343 "ntp_parser.y"
{
struct peer_node *my_node = create_peer_node((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Address_node), NULL);
if (my_node)
enqueue(cfgt.peers, my_node);
;}
break;
case 27:
#line 360 "ntp_parser.y"
{ (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), AF_INET); ;}
break;
case 28:
#line 361 "ntp_parser.y"
{ (yyval.Address_node) = create_address_node((yyvsp[(2) - (2)].String), AF_INET6); ;}
break;
case 29:
#line 365 "ntp_parser.y"
{ (yyval.Address_node) = create_address_node((yyvsp[(1) - (1)].String), 0); ;}
break;
case 30:
#line 369 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); ;}
break;
case 31:
#line 370 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); ;}
break;
case 32:
#line 374 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 33:
#line 375 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 34:
#line 376 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 35:
#line 377 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 36:
#line 378 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 37:
#line 379 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 38:
#line 380 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 39:
#line 381 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 40:
#line 382 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 41:
#line 383 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 42:
#line 384 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 43:
#line 385 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 44:
#line 386 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 45:
#line 387 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 46:
#line 388 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 47:
#line 398 "ntp_parser.y"
{
struct unpeer_node *my_node = create_unpeer_node((yyvsp[(2) - (2)].Address_node));
if (my_node)
enqueue(cfgt.unpeers, my_node);
;}
break;
case 50:
#line 417 "ntp_parser.y"
{ cfgt.broadcastclient = 1; ;}
break;
case 51:
#line 419 "ntp_parser.y"
{ append_queue(cfgt.manycastserver, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 52:
#line 421 "ntp_parser.y"
{ append_queue(cfgt.multicastclient, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 53:
#line 432 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer))); ;}
break;
case 54:
#line 434 "ntp_parser.y"
{ cfgt.auth.control_key = (yyvsp[(2) - (2)].Integer); ;}
break;
case 55:
#line 436 "ntp_parser.y"
{
cfgt.auth.cryptosw++;
append_queue(cfgt.auth.crypto_cmd_list, (yyvsp[(2) - (2)].Queue));
;}
break;
case 56:
#line 441 "ntp_parser.y"
{ cfgt.auth.keys = (yyvsp[(2) - (2)].String); ;}
break;
case 57:
#line 443 "ntp_parser.y"
{ cfgt.auth.keysdir = (yyvsp[(2) - (2)].String); ;}
break;
case 58:
#line 445 "ntp_parser.y"
{ cfgt.auth.request_key = (yyvsp[(2) - (2)].Integer); ;}
break;
case 59:
#line 447 "ntp_parser.y"
{ cfgt.auth.revoke = (yyvsp[(2) - (2)].Integer); ;}
break;
case 60:
#line 449 "ntp_parser.y"
{ cfgt.auth.trusted_key_list = (yyvsp[(2) - (2)].Queue); ;}
break;
case 61:
#line 451 "ntp_parser.y"
{ cfgt.auth.ntp_signd_socket = (yyvsp[(2) - (2)].String); ;}
break;
case 63:
#line 457 "ntp_parser.y"
{ (yyval.Queue) = create_queue(); ;}
break;
case 64:
#line 462 "ntp_parser.y"
{
if ((yyvsp[(2) - (2)].Attr_val) != NULL)
(yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val));
else
(yyval.Queue) = (yyvsp[(1) - (2)].Queue);
;}
break;
case 65:
#line 469 "ntp_parser.y"
{
if ((yyvsp[(1) - (1)].Attr_val) != NULL)
(yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val));
else
(yyval.Queue) = create_queue();
;}
break;
case 66:
#line 479 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); ;}
break;
case 67:
#line 481 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); ;}
break;
case 68:
#line 483 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); ;}
break;
case 69:
#line 485 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); ;}
break;
case 70:
#line 487 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); ;}
break;
case 71:
#line 489 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); ;}
break;
case 72:
#line 491 "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 73:
#line 508 "ntp_parser.y"
{ append_queue(cfgt.orphan_cmds,(yyvsp[(2) - (2)].Queue)); ;}
break;
case 74:
#line 512 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); ;}
break;
case 75:
#line 513 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); ;}
break;
case 76:
#line 518 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); ;}
break;
case 77:
#line 520 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); ;}
break;
case 78:
#line 522 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); ;}
break;
case 79:
#line 524 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); ;}
break;
case 80:
#line 526 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 81:
#line 528 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 82:
#line 530 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 83:
#line 532 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 84:
#line 534 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); ;}
break;
case 85:
#line 536 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (double)(yyvsp[(2) - (2)].Integer)); ;}
break;
case 86:
#line 546 "ntp_parser.y"
{ append_queue(cfgt.stats_list, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 87:
#line 548 "ntp_parser.y"
{
if (input_from_file)
cfgt.stats_dir = (yyvsp[(2) - (2)].String);
else {
free((yyvsp[(2) - (2)].String));
yyerror("statsdir remote configuration ignored");
}
;}
break;
case 88:
#line 557 "ntp_parser.y"
{
enqueue(cfgt.filegen_opts,
create_filegen_node((yyvsp[(2) - (3)].Integer), (yyvsp[(3) - (3)].Queue)));
;}
break;
case 89:
#line 564 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); ;}
break;
case 90:
#line 565 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue(create_ival((yyvsp[(1) - (1)].Integer))); ;}
break;
case 99:
#line 581 "ntp_parser.y"
{
if ((yyvsp[(2) - (2)].Attr_val) != NULL)
(yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val));
else
(yyval.Queue) = (yyvsp[(1) - (2)].Queue);
;}
break;
case 100:
#line 588 "ntp_parser.y"
{
if ((yyvsp[(1) - (1)].Attr_val) != NULL)
(yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val));
else
(yyval.Queue) = create_queue();
;}
break;
case 101:
#line 598 "ntp_parser.y"
{
if (input_from_file)
(yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String));
else {
(yyval.Attr_val) = NULL;
free((yyvsp[(2) - (2)].String));
yyerror("filegen file remote configuration ignored");
}
;}
break;
case 102:
#line 608 "ntp_parser.y"
{
if (input_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 configuration ignored");
}
;}
break;
case 103:
#line 617 "ntp_parser.y"
{
if (input_from_file)
(yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
else {
(yyval.Attr_val) = NULL;
yyerror("filegen link remote configuration ignored");
}
;}
break;
case 104:
#line 626 "ntp_parser.y"
{
if (input_from_file)
(yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
else {
(yyval.Attr_val) = NULL;
yyerror("filegen nolink remote configuration ignored");
}
;}
break;
case 105:
#line 634 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 106:
#line 635 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 114:
#line 655 "ntp_parser.y"
{
append_queue(cfgt.discard_opts, (yyvsp[(2) - (2)].Queue));
;}
break;
case 115:
#line 659 "ntp_parser.y"
{
enqueue(cfgt.restrict_opts,
create_restrict_node((yyvsp[(2) - (3)].Address_node), NULL, (yyvsp[(3) - (3)].Queue), ip_file->line_no));
;}
break;
case 116:
#line 664 "ntp_parser.y"
{
enqueue(cfgt.restrict_opts,
create_restrict_node(NULL, NULL, (yyvsp[(3) - (3)].Queue), ip_file->line_no));
;}
break;
case 117:
#line 669 "ntp_parser.y"
{
enqueue(cfgt.restrict_opts,
create_restrict_node(
create_address_node(
estrdup("0.0.0.0"),
AF_INET),
create_address_node(
estrdup("255.255.255.255"),
AF_INET),
(yyvsp[(4) - (4)].Queue),
ip_file->line_no));
;}
break;
case 118:
#line 682 "ntp_parser.y"
{
enqueue(cfgt.restrict_opts,
create_restrict_node(
create_address_node(
estrdup("::"),
AF_INET6),
create_address_node(
estrdup("ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"),
AF_INET6),
(yyvsp[(4) - (4)].Queue),
ip_file->line_no));
;}
break;
case 119:
#line 695 "ntp_parser.y"
{
enqueue(cfgt.restrict_opts,
create_restrict_node((yyvsp[(2) - (5)].Address_node), (yyvsp[(4) - (5)].Address_node), (yyvsp[(5) - (5)].Queue), ip_file->line_no));
;}
break;
case 120:
#line 703 "ntp_parser.y"
{ (yyval.Queue) = create_queue(); ;}
break;
case 121:
#line 705 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); ;}
break;
case 136:
#line 727 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); ;}
break;
case 137:
#line 729 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); ;}
break;
case 138:
#line 733 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 139:
#line 734 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 140:
#line 735 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 141:
#line 744 "ntp_parser.y"
{ enqueue(cfgt.fudge, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); ;}
break;
case 142:
#line 749 "ntp_parser.y"
{ enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); ;}
break;
case 143:
#line 751 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); ;}
break;
case 144:
#line 755 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 145:
#line 756 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 146:
#line 757 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 147:
#line 758 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)); ;}
break;
case 148:
#line 759 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 149:
#line 760 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 150:
#line 761 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 151:
#line 762 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 152:
#line 771 "ntp_parser.y"
{ append_queue(cfgt.enable_opts, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 153:
#line 773 "ntp_parser.y"
{ append_queue(cfgt.disable_opts, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 154:
#line 778 "ntp_parser.y"
{
if ((yyvsp[(2) - (2)].Attr_val) != NULL)
(yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val));
else
(yyval.Queue) = (yyvsp[(1) - (2)].Queue);
;}
break;
case 155:
#line 785 "ntp_parser.y"
{
if ((yyvsp[(1) - (1)].Attr_val) != NULL)
(yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val));
else
(yyval.Queue) = create_queue();
;}
break;
case 156:
#line 794 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 157:
#line 795 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 158:
#line 796 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 159:
#line 797 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 160:
#line 798 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 161:
#line 799 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer)); ;}
break;
case 162:
#line 801 "ntp_parser.y"
{
if (input_from_file)
(yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[(1) - (1)].Integer));
else {
(yyval.Attr_val) = NULL;
yyerror("enable/disable stats remote configuration ignored");
}
;}
break;
case 163:
#line 816 "ntp_parser.y"
{ append_queue(cfgt.tinker, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 164:
#line 820 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); ;}
break;
case 165:
#line 821 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); ;}
break;
case 166:
#line 825 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 167:
#line 826 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 168:
#line 827 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 169:
#line 828 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 170:
#line 829 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 171:
#line 830 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 172:
#line 831 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double)); ;}
break;
case 174:
#line 842 "ntp_parser.y"
{
if (curr_include_level >= MAXINCLUDELEVEL) {
fprintf(stderr, "getconfig: Maximum include file level exceeded.\n");
msyslog(LOG_ERR, "getconfig: Maximum include file level exceeded.");
}
else {
fp[curr_include_level + 1] = F_OPEN(FindConfig((yyvsp[(2) - (3)].String)), "r");
if (fp[curr_include_level + 1] == NULL) {
fprintf(stderr, "getconfig: Couldn't open <%s>\n", FindConfig((yyvsp[(2) - (3)].String)));
msyslog(LOG_ERR, "getconfig: Couldn't open <%s>", FindConfig((yyvsp[(2) - (3)].String)));
}
else
ip_file = fp[++curr_include_level];
}
;}
break;
case 175:
#line 858 "ntp_parser.y"
{
while (curr_include_level != -1)
FCLOSE(fp[curr_include_level--]);
;}
break;
case 176:
#line 864 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double))); ;}
break;
case 177:
#line 866 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer))); ;}
break;
case 178:
#line 868 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_dval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Double))); ;}
break;
case 179:
#line 870 "ntp_parser.y"
{ ;}
break;
case 180:
#line 872 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String))); ;}
break;
case 181:
#line 875 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String))); ;}
break;
case 182:
#line 877 "ntp_parser.y"
{
if (input_from_file)
enqueue(cfgt.vars,
create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)));
else {
free((yyvsp[(2) - (2)].String));
yyerror("logfile remote configuration ignored");
}
;}
break;
case 183:
#line 888 "ntp_parser.y"
{ append_queue(cfgt.logconfig, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 184:
#line 890 "ntp_parser.y"
{ append_queue(cfgt.phone, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 185:
#line 892 "ntp_parser.y"
{
if (input_from_file)
enqueue(cfgt.vars,
create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String)));
else {
free((yyvsp[(2) - (2)].String));
yyerror("saveconfigdir remote configuration ignored");
}
;}
break;
case 186:
#line 902 "ntp_parser.y"
{ enqueue(cfgt.setvar, (yyvsp[(2) - (2)].Set_var)); ;}
break;
case 187:
#line 904 "ntp_parser.y"
{ enqueue(cfgt.trap, create_addr_opts_node((yyvsp[(2) - (2)].Address_node), NULL)); ;}
break;
case 188:
#line 906 "ntp_parser.y"
{ enqueue(cfgt.trap, create_addr_opts_node((yyvsp[(2) - (3)].Address_node), (yyvsp[(3) - (3)].Queue))); ;}
break;
case 189:
#line 908 "ntp_parser.y"
{ append_queue(cfgt.ttl, (yyvsp[(2) - (2)].Queue)); ;}
break;
case 190:
#line 910 "ntp_parser.y"
{ enqueue(cfgt.qos, create_attr_sval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].String))); ;}
break;
case 191:
#line 915 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (1)].String))); ;}
break;
case 192:
#line 917 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_dval(T_WanderThreshold, (yyvsp[(2) - (2)].Double)));
enqueue(cfgt.vars, create_attr_sval(T_Driftfile, (yyvsp[(1) - (2)].String))); ;}
break;
case 193:
#line 920 "ntp_parser.y"
{ enqueue(cfgt.vars, create_attr_sval(T_Driftfile, "\0")); ;}
break;
case 194:
#line 925 "ntp_parser.y"
{ (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (4)].String), (yyvsp[(3) - (4)].String), (yyvsp[(4) - (4)].Integer)); ;}
break;
case 195:
#line 927 "ntp_parser.y"
{ (yyval.Set_var) = create_setvar_node((yyvsp[(1) - (3)].String), (yyvsp[(3) - (3)].String), 0); ;}
break;
case 196:
#line 932 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); ;}
break;
case 197:
#line 933 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); ;}
break;
case 198:
#line 937 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_ival((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Integer)); ;}
break;
case 199:
#line 938 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_pval((yyvsp[(1) - (2)].Integer), (yyvsp[(2) - (2)].Address_node)); ;}
break;
case 200:
#line 942 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Attr_val)); ;}
break;
case 201:
#line 943 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Attr_val)); ;}
break;
case 202:
#line 948 "ntp_parser.y"
{
char prefix = (yyvsp[(1) - (1)].String)[0];
char *type = (yyvsp[(1) - (1)].String) + 1;
if (prefix != '+' && prefix != '-' && prefix != '=') {
yyerror("Logconfig prefix is not '+', '-' or '='\n");
}
else
(yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
YYFREE((yyvsp[(1) - (1)].String));
;}
break;
case 203:
#line 963 "ntp_parser.y"
{
enqueue(cfgt.nic_rules,
create_nic_rule_node((yyvsp[(3) - (3)].Integer), NULL, (yyvsp[(2) - (3)].Integer)));
;}
break;
case 204:
#line 968 "ntp_parser.y"
{
enqueue(cfgt.nic_rules,
create_nic_rule_node(0, (yyvsp[(3) - (3)].String), (yyvsp[(2) - (3)].Integer)));
;}
break;
case 214:
#line 999 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_ival((yyvsp[(2) - (2)].Integer))); ;}
break;
case 215:
#line 1000 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue(create_ival((yyvsp[(1) - (1)].Integer))); ;}
break;
case 216:
#line 1004 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), create_pval((yyvsp[(2) - (2)].String))); ;}
break;
case 217:
#line 1005 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue(create_pval((yyvsp[(1) - (1)].String))); ;}
break;
case 218:
#line 1009 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Address_node)); ;}
break;
case 219:
#line 1010 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Address_node)); ;}
break;
case 220:
#line 1015 "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 221:
#line 1023 "ntp_parser.y"
{ (yyval.Integer) = 1; ;}
break;
case 222:
#line 1024 "ntp_parser.y"
{ (yyval.Integer) = 0; ;}
break;
case 223:
#line 1028 "ntp_parser.y"
{ (yyval.Double) = (double)(yyvsp[(1) - (1)].Integer); ;}
break;
case 225:
#line 1039 "ntp_parser.y"
{
cfgt.sim_details = create_sim_node((yyvsp[(3) - (5)].Queue), (yyvsp[(4) - (5)].Queue));
old_config_style = 1;
;}
break;
case 226:
#line 1053 "ntp_parser.y"
{ old_config_style = 0; ;}
break;
case 227:
#line 1057 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); ;}
break;
case 228:
#line 1058 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); ;}
break;
case 229:
#line 1062 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); ;}
break;
case 230:
#line 1063 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); ;}
break;
case 231:
#line 1067 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_server)); ;}
break;
case 232:
#line 1068 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_server)); ;}
break;
case 233:
#line 1073 "ntp_parser.y"
{ (yyval.Sim_server) = create_sim_server((yyvsp[(1) - (5)].Address_node), (yyvsp[(3) - (5)].Double), (yyvsp[(4) - (5)].Queue)); ;}
break;
case 234:
#line 1077 "ntp_parser.y"
{ (yyval.Double) = (yyvsp[(3) - (4)].Double); ;}
break;
case 235:
#line 1081 "ntp_parser.y"
{ (yyval.Address_node) = (yyvsp[(3) - (3)].Address_node); ;}
break;
case 236:
#line 1085 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (2)].Queue), (yyvsp[(2) - (2)].Sim_script)); ;}
break;
case 237:
#line 1086 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (1)].Sim_script)); ;}
break;
case 238:
#line 1091 "ntp_parser.y"
{ (yyval.Sim_script) = create_sim_script_info((yyvsp[(3) - (6)].Double), (yyvsp[(5) - (6)].Queue)); ;}
break;
case 239:
#line 1095 "ntp_parser.y"
{ (yyval.Queue) = enqueue((yyvsp[(1) - (3)].Queue), (yyvsp[(2) - (3)].Attr_val)); ;}
break;
case 240:
#line 1096 "ntp_parser.y"
{ (yyval.Queue) = enqueue_in_new_queue((yyvsp[(1) - (2)].Attr_val)); ;}
break;
case 241:
#line 1101 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); ;}
break;
case 242:
#line 1103 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); ;}
break;
case 243:
#line 1105 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); ;}
break;
case 244:
#line 1107 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); ;}
break;
case 245:
#line 1109 "ntp_parser.y"
{ (yyval.Attr_val) = create_attr_dval((yyvsp[(1) - (3)].Integer), (yyvsp[(3) - (3)].Double)); ;}
break;
#line 3266 "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 1113 "ntp_parser.y"
void yyerror (char *msg)
{
int retval;
ip_file->err_line_no = ip_file->prev_token_line_no;
ip_file->err_col_no = ip_file->prev_token_col_no;
msyslog(LOG_ERR,
"line %d column %d %s",
ip_file->err_line_no,
ip_file->err_col_no,
msg);
if (!input_from_file) {
retval = snprintf(remote_config.err_msg + remote_config.err_pos,
MAXLINE - remote_config.err_pos,
"column %d %s",
ip_file->err_col_no, msg);
if (retval > 0)
remote_config.err_pos += retval;
++remote_config.no_errors;
}
}
const char *
token_name(
int token
)
{
return yytname[YYTRANSLATE(token)];
}