Annotation of embedaddon/ntp/ntpd/ntp_parser.c, revision 1.1.1.1

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>