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