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