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