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