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