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