File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / ntpd / ntp_parser.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 1 month ago) by misho
Branches: ntp, MAIN
CVS tags: v4_2_6p5p0, v4_2_6p5, HEAD
ntp 4.2.6p5

    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>