ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 2283
Committed: Tue Jun 18 19:13:20 2013 UTC (12 years, 2 months ago) by michael
Content type: text/x-csrc
File size: 227552 byte(s)
Log Message:
- Added generall::cycle_on_host_change configuration option as requested
  by Adam <adam@anope.org>

File Contents

# Content
1 /* A Bison parser, made by GNU Bison 2.7.12-4996. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc.
6
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20 /* As a special exception, you may create a larger work that contains
21 part or all of the Bison parser skeleton and distribute that work
22 under terms of your choice, so long as that work isn't itself a
23 parser generator using the skeleton or a modified version thereof
24 as a parser skeleton. Alternatively, if you modify or redistribute
25 the parser skeleton itself, you may (at your option) remove this
26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.
29
30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */
32
33 /* C LALR(1) parser skeleton written by Richard Stallman, by
34 simplifying the original so-called "semantic" parser. */
35
36 /* All symbols defined below should begin with yy or YY, to avoid
37 infringing on user name space. This should be done even for local
38 variables, as they might otherwise be expanded by user macros.
39 There are some unavoidable exceptions within include files to
40 define necessary library symbols; they are noted "INFRINGES ON
41 USER NAME SPACE" below. */
42
43 /* Identify Bison output. */
44 #define YYBISON 1
45
46 /* Bison version. */
47 #define YYBISON_VERSION "2.7.12-4996"
48
49 /* Skeleton name. */
50 #define YYSKELETON_NAME "yacc.c"
51
52 /* Pure parsers. */
53 #define YYPURE 0
54
55 /* Push parsers. */
56 #define YYPUSH 0
57
58 /* Pull parsers. */
59 #define YYPULL 1
60
61
62
63
64 /* Copy the first part of user declarations. */
65 /* Line 371 of yacc.c */
66 #line 25 "conf_parser.y"
67
68
69 #define YY_NO_UNPUT
70 #include <sys/types.h>
71 #include <string.h>
72
73 #include "config.h"
74 #include "stdinc.h"
75 #include "ircd.h"
76 #include "list.h"
77 #include "conf.h"
78 #include "conf_class.h"
79 #include "event.h"
80 #include "log.h"
81 #include "client.h" /* for UMODE_ALL only */
82 #include "irc_string.h"
83 #include "memory.h"
84 #include "modules.h"
85 #include "s_serv.h"
86 #include "hostmask.h"
87 #include "send.h"
88 #include "listener.h"
89 #include "resv.h"
90 #include "numeric.h"
91 #include "s_user.h"
92 #include "motd.h"
93
94 #ifdef HAVE_LIBCRYPTO
95 #include <openssl/rsa.h>
96 #include <openssl/bio.h>
97 #include <openssl/pem.h>
98 #include <openssl/dh.h>
99 #endif
100
101 #include "rsa.h"
102
103 int yylex(void);
104
105 static struct
106 {
107 struct {
108 dlink_list list;
109 } mask,
110 leaf,
111 hub;
112
113 struct {
114 char buf[IRCD_BUFSIZE];
115 } name,
116 user,
117 host,
118 addr,
119 bind,
120 file,
121 ciph,
122 cert,
123 rpass,
124 spass,
125 class;
126
127 struct {
128 unsigned int value;
129 } flags,
130 modes,
131 size,
132 type,
133 port,
134 aftype,
135 ping_freq,
136 max_perip,
137 con_freq,
138 min_idle,
139 max_idle,
140 max_total,
141 max_global,
142 max_local,
143 max_ident,
144 max_sendq,
145 max_recvq,
146 cidr_bitlen_ipv4,
147 cidr_bitlen_ipv6,
148 number_per_cidr;
149 } block_state;
150
151 static void
152 reset_block_state(void)
153 {
154 dlink_node *ptr = NULL, *ptr_next = NULL;
155
156 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.mask.list.head)
157 {
158 MyFree(ptr->data);
159 dlinkDelete(ptr, &block_state.mask.list);
160 free_dlink_node(ptr);
161 }
162
163 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.leaf.list.head)
164 {
165 MyFree(ptr->data);
166 dlinkDelete(ptr, &block_state.leaf.list);
167 free_dlink_node(ptr);
168 }
169
170 DLINK_FOREACH_SAFE(ptr, ptr_next, block_state.hub.list.head)
171 {
172 MyFree(ptr->data);
173 dlinkDelete(ptr, &block_state.hub.list);
174 free_dlink_node(ptr);
175 }
176
177 memset(&block_state, 0, sizeof(block_state));
178 }
179
180
181 /* Line 371 of yacc.c */
182 #line 183 "conf_parser.c"
183
184 # ifndef YY_NULL
185 # if defined __cplusplus && 201103L <= __cplusplus
186 # define YY_NULL nullptr
187 # else
188 # define YY_NULL 0
189 # endif
190 # endif
191
192 /* Enabling verbose error messages. */
193 #ifdef YYERROR_VERBOSE
194 # undef YYERROR_VERBOSE
195 # define YYERROR_VERBOSE 1
196 #else
197 # define YYERROR_VERBOSE 0
198 #endif
199
200 /* In a future release of Bison, this section will be replaced
201 by #include "y.tab.h". */
202 #ifndef YY_YY_CONF_PARSER_H_INCLUDED
203 # define YY_YY_CONF_PARSER_H_INCLUDED
204 /* Enabling traces. */
205 #ifndef YYDEBUG
206 # define YYDEBUG 0
207 #endif
208 #if YYDEBUG
209 extern int yydebug;
210 #endif
211
212 /* Tokens. */
213 #ifndef YYTOKENTYPE
214 # define YYTOKENTYPE
215 /* Put the tokens into the symbol table, so that GDB and other debuggers
216 know about them. */
217 enum yytokentype {
218 ACCEPT_PASSWORD = 258,
219 ADMIN = 259,
220 AFTYPE = 260,
221 ANTI_NICK_FLOOD = 261,
222 ANTI_SPAM_EXIT_MESSAGE_TIME = 262,
223 AUTOCONN = 263,
224 BYTES = 264,
225 KBYTES = 265,
226 MBYTES = 266,
227 CALLER_ID_WAIT = 267,
228 CAN_FLOOD = 268,
229 CHANNEL = 269,
230 CIDR_BITLEN_IPV4 = 270,
231 CIDR_BITLEN_IPV6 = 271,
232 CLASS = 272,
233 CONNECT = 273,
234 CONNECTFREQ = 274,
235 CYCLE_ON_HOST_CHANGE = 275,
236 DEFAULT_FLOODCOUNT = 276,
237 DEFAULT_SPLIT_SERVER_COUNT = 277,
238 DEFAULT_SPLIT_USER_COUNT = 278,
239 DENY = 279,
240 DESCRIPTION = 280,
241 DIE = 281,
242 DISABLE_AUTH = 282,
243 DISABLE_FAKE_CHANNELS = 283,
244 DISABLE_REMOTE_COMMANDS = 284,
245 DOTS_IN_IDENT = 285,
246 EGDPOOL_PATH = 286,
247 EMAIL = 287,
248 ENCRYPTED = 288,
249 EXCEED_LIMIT = 289,
250 EXEMPT = 290,
251 FAILED_OPER_NOTICE = 291,
252 FLATTEN_LINKS = 292,
253 GECOS = 293,
254 GENERAL = 294,
255 GLINE = 295,
256 GLINE_DURATION = 296,
257 GLINE_ENABLE = 297,
258 GLINE_EXEMPT = 298,
259 GLINE_MIN_CIDR = 299,
260 GLINE_MIN_CIDR6 = 300,
261 GLINE_REQUEST_DURATION = 301,
262 GLOBAL_KILL = 302,
263 HAVENT_READ_CONF = 303,
264 HIDDEN = 304,
265 HIDDEN_NAME = 305,
266 HIDE_IDLE_FROM_OPERS = 306,
267 HIDE_SERVER_IPS = 307,
268 HIDE_SERVERS = 308,
269 HIDE_SERVICES = 309,
270 HIDE_SPOOF_IPS = 310,
271 HOST = 311,
272 HUB = 312,
273 HUB_MASK = 313,
274 IGNORE_BOGUS_TS = 314,
275 INVISIBLE_ON_CONNECT = 315,
276 IP = 316,
277 IRCD_AUTH = 317,
278 IRCD_FLAGS = 318,
279 IRCD_SID = 319,
280 JOIN_FLOOD_COUNT = 320,
281 JOIN_FLOOD_TIME = 321,
282 KILL = 322,
283 KILL_CHASE_TIME_LIMIT = 323,
284 KLINE = 324,
285 KLINE_EXEMPT = 325,
286 KNOCK_DELAY = 326,
287 KNOCK_DELAY_CHANNEL = 327,
288 LEAF_MASK = 328,
289 LINKS_DELAY = 329,
290 LISTEN = 330,
291 MASK = 331,
292 MAX_ACCEPT = 332,
293 MAX_BANS = 333,
294 MAX_CHANS_PER_OPER = 334,
295 MAX_CHANS_PER_USER = 335,
296 MAX_GLOBAL = 336,
297 MAX_IDENT = 337,
298 MAX_IDLE = 338,
299 MAX_LOCAL = 339,
300 MAX_NICK_CHANGES = 340,
301 MAX_NICK_LENGTH = 341,
302 MAX_NICK_TIME = 342,
303 MAX_NUMBER = 343,
304 MAX_TARGETS = 344,
305 MAX_TOPIC_LENGTH = 345,
306 MAX_WATCH = 346,
307 MIN_IDLE = 347,
308 MIN_NONWILDCARD = 348,
309 MIN_NONWILDCARD_SIMPLE = 349,
310 MODULE = 350,
311 MODULES = 351,
312 MOTD = 352,
313 NAME = 353,
314 NEED_IDENT = 354,
315 NEED_PASSWORD = 355,
316 NETWORK_DESC = 356,
317 NETWORK_NAME = 357,
318 NICK = 358,
319 NO_CREATE_ON_SPLIT = 359,
320 NO_JOIN_ON_SPLIT = 360,
321 NO_OPER_FLOOD = 361,
322 NO_TILDE = 362,
323 NUMBER = 363,
324 NUMBER_PER_CIDR = 364,
325 NUMBER_PER_IP = 365,
326 OPER_ONLY_UMODES = 366,
327 OPER_PASS_RESV = 367,
328 OPER_UMODES = 368,
329 OPERATOR = 369,
330 OPERS_BYPASS_CALLERID = 370,
331 PACE_WAIT = 371,
332 PACE_WAIT_SIMPLE = 372,
333 PASSWORD = 373,
334 PATH = 374,
335 PING_COOKIE = 375,
336 PING_TIME = 376,
337 PORT = 377,
338 QSTRING = 378,
339 RANDOM_IDLE = 379,
340 REASON = 380,
341 REDIRPORT = 381,
342 REDIRSERV = 382,
343 REHASH = 383,
344 REMOTE = 384,
345 REMOTEBAN = 385,
346 RESV = 386,
347 RESV_EXEMPT = 387,
348 RSA_PRIVATE_KEY_FILE = 388,
349 RSA_PUBLIC_KEY_FILE = 389,
350 SECONDS = 390,
351 MINUTES = 391,
352 HOURS = 392,
353 DAYS = 393,
354 WEEKS = 394,
355 MONTHS = 395,
356 YEARS = 396,
357 SEND_PASSWORD = 397,
358 SENDQ = 398,
359 SERVERHIDE = 399,
360 SERVERINFO = 400,
361 SHORT_MOTD = 401,
362 SPOOF = 402,
363 SPOOF_NOTICE = 403,
364 SQUIT = 404,
365 SSL_CERTIFICATE_FILE = 405,
366 SSL_CERTIFICATE_FINGERPRINT = 406,
367 SSL_CONNECTION_REQUIRED = 407,
368 SSL_DH_PARAM_FILE = 408,
369 STATS_E_DISABLED = 409,
370 STATS_I_OPER_ONLY = 410,
371 STATS_K_OPER_ONLY = 411,
372 STATS_O_OPER_ONLY = 412,
373 STATS_P_OPER_ONLY = 413,
374 STATS_U_OPER_ONLY = 414,
375 T_ALL = 415,
376 T_BOTS = 416,
377 T_CALLERID = 417,
378 T_CCONN = 418,
379 T_CLUSTER = 419,
380 T_DEAF = 420,
381 T_DEBUG = 421,
382 T_DLINE = 422,
383 T_EXTERNAL = 423,
384 T_FARCONNECT = 424,
385 T_FILE = 425,
386 T_FULL = 426,
387 T_GLOBOPS = 427,
388 T_INVISIBLE = 428,
389 T_IPV4 = 429,
390 T_IPV6 = 430,
391 T_LOCOPS = 431,
392 T_LOG = 432,
393 T_MAX_CLIENTS = 433,
394 T_NCHANGE = 434,
395 T_NONONREG = 435,
396 T_OPERWALL = 436,
397 T_RECVQ = 437,
398 T_REJ = 438,
399 T_RESTART = 439,
400 T_SERVER = 440,
401 T_SERVICE = 441,
402 T_SERVICES_NAME = 442,
403 T_SERVNOTICE = 443,
404 T_SET = 444,
405 T_SHARED = 445,
406 T_SIZE = 446,
407 T_SKILL = 447,
408 T_SOFTCALLERID = 448,
409 T_SPY = 449,
410 T_SSL = 450,
411 T_SSL_CIPHER_LIST = 451,
412 T_SSL_CLIENT_METHOD = 452,
413 T_SSL_SERVER_METHOD = 453,
414 T_SSLV3 = 454,
415 T_TLSV1 = 455,
416 T_UMODES = 456,
417 T_UNAUTH = 457,
418 T_UNDLINE = 458,
419 T_UNLIMITED = 459,
420 T_UNRESV = 460,
421 T_UNXLINE = 461,
422 T_WALLOP = 462,
423 T_WALLOPS = 463,
424 T_WEBIRC = 464,
425 TBOOL = 465,
426 THROTTLE_TIME = 466,
427 TKLINE_EXPIRE_NOTICES = 467,
428 TMASKED = 468,
429 TRUE_NO_OPER_FLOOD = 469,
430 TS_MAX_DELTA = 470,
431 TS_WARN_DELTA = 471,
432 TWODOTS = 472,
433 TYPE = 473,
434 UNKLINE = 474,
435 USE_EGD = 475,
436 USE_LOGGING = 476,
437 USER = 477,
438 VHOST = 478,
439 VHOST6 = 479,
440 WARN_NO_NLINE = 480,
441 XLINE = 481
442 };
443 #endif
444 /* Tokens. */
445 #define ACCEPT_PASSWORD 258
446 #define ADMIN 259
447 #define AFTYPE 260
448 #define ANTI_NICK_FLOOD 261
449 #define ANTI_SPAM_EXIT_MESSAGE_TIME 262
450 #define AUTOCONN 263
451 #define BYTES 264
452 #define KBYTES 265
453 #define MBYTES 266
454 #define CALLER_ID_WAIT 267
455 #define CAN_FLOOD 268
456 #define CHANNEL 269
457 #define CIDR_BITLEN_IPV4 270
458 #define CIDR_BITLEN_IPV6 271
459 #define CLASS 272
460 #define CONNECT 273
461 #define CONNECTFREQ 274
462 #define CYCLE_ON_HOST_CHANGE 275
463 #define DEFAULT_FLOODCOUNT 276
464 #define DEFAULT_SPLIT_SERVER_COUNT 277
465 #define DEFAULT_SPLIT_USER_COUNT 278
466 #define DENY 279
467 #define DESCRIPTION 280
468 #define DIE 281
469 #define DISABLE_AUTH 282
470 #define DISABLE_FAKE_CHANNELS 283
471 #define DISABLE_REMOTE_COMMANDS 284
472 #define DOTS_IN_IDENT 285
473 #define EGDPOOL_PATH 286
474 #define EMAIL 287
475 #define ENCRYPTED 288
476 #define EXCEED_LIMIT 289
477 #define EXEMPT 290
478 #define FAILED_OPER_NOTICE 291
479 #define FLATTEN_LINKS 292
480 #define GECOS 293
481 #define GENERAL 294
482 #define GLINE 295
483 #define GLINE_DURATION 296
484 #define GLINE_ENABLE 297
485 #define GLINE_EXEMPT 298
486 #define GLINE_MIN_CIDR 299
487 #define GLINE_MIN_CIDR6 300
488 #define GLINE_REQUEST_DURATION 301
489 #define GLOBAL_KILL 302
490 #define HAVENT_READ_CONF 303
491 #define HIDDEN 304
492 #define HIDDEN_NAME 305
493 #define HIDE_IDLE_FROM_OPERS 306
494 #define HIDE_SERVER_IPS 307
495 #define HIDE_SERVERS 308
496 #define HIDE_SERVICES 309
497 #define HIDE_SPOOF_IPS 310
498 #define HOST 311
499 #define HUB 312
500 #define HUB_MASK 313
501 #define IGNORE_BOGUS_TS 314
502 #define INVISIBLE_ON_CONNECT 315
503 #define IP 316
504 #define IRCD_AUTH 317
505 #define IRCD_FLAGS 318
506 #define IRCD_SID 319
507 #define JOIN_FLOOD_COUNT 320
508 #define JOIN_FLOOD_TIME 321
509 #define KILL 322
510 #define KILL_CHASE_TIME_LIMIT 323
511 #define KLINE 324
512 #define KLINE_EXEMPT 325
513 #define KNOCK_DELAY 326
514 #define KNOCK_DELAY_CHANNEL 327
515 #define LEAF_MASK 328
516 #define LINKS_DELAY 329
517 #define LISTEN 330
518 #define MASK 331
519 #define MAX_ACCEPT 332
520 #define MAX_BANS 333
521 #define MAX_CHANS_PER_OPER 334
522 #define MAX_CHANS_PER_USER 335
523 #define MAX_GLOBAL 336
524 #define MAX_IDENT 337
525 #define MAX_IDLE 338
526 #define MAX_LOCAL 339
527 #define MAX_NICK_CHANGES 340
528 #define MAX_NICK_LENGTH 341
529 #define MAX_NICK_TIME 342
530 #define MAX_NUMBER 343
531 #define MAX_TARGETS 344
532 #define MAX_TOPIC_LENGTH 345
533 #define MAX_WATCH 346
534 #define MIN_IDLE 347
535 #define MIN_NONWILDCARD 348
536 #define MIN_NONWILDCARD_SIMPLE 349
537 #define MODULE 350
538 #define MODULES 351
539 #define MOTD 352
540 #define NAME 353
541 #define NEED_IDENT 354
542 #define NEED_PASSWORD 355
543 #define NETWORK_DESC 356
544 #define NETWORK_NAME 357
545 #define NICK 358
546 #define NO_CREATE_ON_SPLIT 359
547 #define NO_JOIN_ON_SPLIT 360
548 #define NO_OPER_FLOOD 361
549 #define NO_TILDE 362
550 #define NUMBER 363
551 #define NUMBER_PER_CIDR 364
552 #define NUMBER_PER_IP 365
553 #define OPER_ONLY_UMODES 366
554 #define OPER_PASS_RESV 367
555 #define OPER_UMODES 368
556 #define OPERATOR 369
557 #define OPERS_BYPASS_CALLERID 370
558 #define PACE_WAIT 371
559 #define PACE_WAIT_SIMPLE 372
560 #define PASSWORD 373
561 #define PATH 374
562 #define PING_COOKIE 375
563 #define PING_TIME 376
564 #define PORT 377
565 #define QSTRING 378
566 #define RANDOM_IDLE 379
567 #define REASON 380
568 #define REDIRPORT 381
569 #define REDIRSERV 382
570 #define REHASH 383
571 #define REMOTE 384
572 #define REMOTEBAN 385
573 #define RESV 386
574 #define RESV_EXEMPT 387
575 #define RSA_PRIVATE_KEY_FILE 388
576 #define RSA_PUBLIC_KEY_FILE 389
577 #define SECONDS 390
578 #define MINUTES 391
579 #define HOURS 392
580 #define DAYS 393
581 #define WEEKS 394
582 #define MONTHS 395
583 #define YEARS 396
584 #define SEND_PASSWORD 397
585 #define SENDQ 398
586 #define SERVERHIDE 399
587 #define SERVERINFO 400
588 #define SHORT_MOTD 401
589 #define SPOOF 402
590 #define SPOOF_NOTICE 403
591 #define SQUIT 404
592 #define SSL_CERTIFICATE_FILE 405
593 #define SSL_CERTIFICATE_FINGERPRINT 406
594 #define SSL_CONNECTION_REQUIRED 407
595 #define SSL_DH_PARAM_FILE 408
596 #define STATS_E_DISABLED 409
597 #define STATS_I_OPER_ONLY 410
598 #define STATS_K_OPER_ONLY 411
599 #define STATS_O_OPER_ONLY 412
600 #define STATS_P_OPER_ONLY 413
601 #define STATS_U_OPER_ONLY 414
602 #define T_ALL 415
603 #define T_BOTS 416
604 #define T_CALLERID 417
605 #define T_CCONN 418
606 #define T_CLUSTER 419
607 #define T_DEAF 420
608 #define T_DEBUG 421
609 #define T_DLINE 422
610 #define T_EXTERNAL 423
611 #define T_FARCONNECT 424
612 #define T_FILE 425
613 #define T_FULL 426
614 #define T_GLOBOPS 427
615 #define T_INVISIBLE 428
616 #define T_IPV4 429
617 #define T_IPV6 430
618 #define T_LOCOPS 431
619 #define T_LOG 432
620 #define T_MAX_CLIENTS 433
621 #define T_NCHANGE 434
622 #define T_NONONREG 435
623 #define T_OPERWALL 436
624 #define T_RECVQ 437
625 #define T_REJ 438
626 #define T_RESTART 439
627 #define T_SERVER 440
628 #define T_SERVICE 441
629 #define T_SERVICES_NAME 442
630 #define T_SERVNOTICE 443
631 #define T_SET 444
632 #define T_SHARED 445
633 #define T_SIZE 446
634 #define T_SKILL 447
635 #define T_SOFTCALLERID 448
636 #define T_SPY 449
637 #define T_SSL 450
638 #define T_SSL_CIPHER_LIST 451
639 #define T_SSL_CLIENT_METHOD 452
640 #define T_SSL_SERVER_METHOD 453
641 #define T_SSLV3 454
642 #define T_TLSV1 455
643 #define T_UMODES 456
644 #define T_UNAUTH 457
645 #define T_UNDLINE 458
646 #define T_UNLIMITED 459
647 #define T_UNRESV 460
648 #define T_UNXLINE 461
649 #define T_WALLOP 462
650 #define T_WALLOPS 463
651 #define T_WEBIRC 464
652 #define TBOOL 465
653 #define THROTTLE_TIME 466
654 #define TKLINE_EXPIRE_NOTICES 467
655 #define TMASKED 468
656 #define TRUE_NO_OPER_FLOOD 469
657 #define TS_MAX_DELTA 470
658 #define TS_WARN_DELTA 471
659 #define TWODOTS 472
660 #define TYPE 473
661 #define UNKLINE 474
662 #define USE_EGD 475
663 #define USE_LOGGING 476
664 #define USER 477
665 #define VHOST 478
666 #define VHOST6 479
667 #define WARN_NO_NLINE 480
668 #define XLINE 481
669
670
671
672 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
673 typedef union YYSTYPE
674 {
675 /* Line 387 of yacc.c */
676 #line 140 "conf_parser.y"
677
678 int number;
679 char *string;
680
681
682 /* Line 387 of yacc.c */
683 #line 684 "conf_parser.c"
684 } YYSTYPE;
685 # define YYSTYPE_IS_TRIVIAL 1
686 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
687 # define YYSTYPE_IS_DECLARED 1
688 #endif
689
690 extern YYSTYPE yylval;
691
692 #ifdef YYPARSE_PARAM
693 #if defined __STDC__ || defined __cplusplus
694 int yyparse (void *YYPARSE_PARAM);
695 #else
696 int yyparse ();
697 #endif
698 #else /* ! YYPARSE_PARAM */
699 #if defined __STDC__ || defined __cplusplus
700 int yyparse (void);
701 #else
702 int yyparse ();
703 #endif
704 #endif /* ! YYPARSE_PARAM */
705
706 #endif /* !YY_YY_CONF_PARSER_H_INCLUDED */
707
708 /* Copy the second part of user declarations. */
709
710 /* Line 390 of yacc.c */
711 #line 712 "conf_parser.c"
712
713 #ifdef short
714 # undef short
715 #endif
716
717 #ifdef YYTYPE_UINT8
718 typedef YYTYPE_UINT8 yytype_uint8;
719 #else
720 typedef unsigned char yytype_uint8;
721 #endif
722
723 #ifdef YYTYPE_INT8
724 typedef YYTYPE_INT8 yytype_int8;
725 #elif (defined __STDC__ || defined __C99__FUNC__ \
726 || defined __cplusplus || defined _MSC_VER)
727 typedef signed char yytype_int8;
728 #else
729 typedef short int yytype_int8;
730 #endif
731
732 #ifdef YYTYPE_UINT16
733 typedef YYTYPE_UINT16 yytype_uint16;
734 #else
735 typedef unsigned short int yytype_uint16;
736 #endif
737
738 #ifdef YYTYPE_INT16
739 typedef YYTYPE_INT16 yytype_int16;
740 #else
741 typedef short int yytype_int16;
742 #endif
743
744 #ifndef YYSIZE_T
745 # ifdef __SIZE_TYPE__
746 # define YYSIZE_T __SIZE_TYPE__
747 # elif defined size_t
748 # define YYSIZE_T size_t
749 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
750 || defined __cplusplus || defined _MSC_VER)
751 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
752 # define YYSIZE_T size_t
753 # else
754 # define YYSIZE_T unsigned int
755 # endif
756 #endif
757
758 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
759
760 #ifndef YY_
761 # if defined YYENABLE_NLS && YYENABLE_NLS
762 # if ENABLE_NLS
763 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
764 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
765 # endif
766 # endif
767 # ifndef YY_
768 # define YY_(Msgid) Msgid
769 # endif
770 #endif
771
772 #ifndef __attribute__
773 /* This feature is available in gcc versions 2.5 and later. */
774 # if (! defined __GNUC__ || __GNUC__ < 2 \
775 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
776 # define __attribute__(Spec) /* empty */
777 # endif
778 #endif
779
780 /* Suppress unused-variable warnings by "using" E. */
781 #if ! defined lint || defined __GNUC__
782 # define YYUSE(E) ((void) (E))
783 #else
784 # define YYUSE(E) /* empty */
785 #endif
786
787
788 /* Identity function, used to suppress warnings about constant conditions. */
789 #ifndef lint
790 # define YYID(N) (N)
791 #else
792 #if (defined __STDC__ || defined __C99__FUNC__ \
793 || defined __cplusplus || defined _MSC_VER)
794 static int
795 YYID (int yyi)
796 #else
797 static int
798 YYID (yyi)
799 int yyi;
800 #endif
801 {
802 return yyi;
803 }
804 #endif
805
806 #if ! defined yyoverflow || YYERROR_VERBOSE
807
808 /* The parser invokes alloca or malloc; define the necessary symbols. */
809
810 # ifdef YYSTACK_USE_ALLOCA
811 # if YYSTACK_USE_ALLOCA
812 # ifdef __GNUC__
813 # define YYSTACK_ALLOC __builtin_alloca
814 # elif defined __BUILTIN_VA_ARG_INCR
815 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
816 # elif defined _AIX
817 # define YYSTACK_ALLOC __alloca
818 # elif defined _MSC_VER
819 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
820 # define alloca _alloca
821 # else
822 # define YYSTACK_ALLOC alloca
823 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
824 || defined __cplusplus || defined _MSC_VER)
825 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
826 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
827 # ifndef EXIT_SUCCESS
828 # define EXIT_SUCCESS 0
829 # endif
830 # endif
831 # endif
832 # endif
833 # endif
834
835 # ifdef YYSTACK_ALLOC
836 /* Pacify GCC's `empty if-body' warning. */
837 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
838 # ifndef YYSTACK_ALLOC_MAXIMUM
839 /* The OS might guarantee only one guard page at the bottom of the stack,
840 and a page size can be as small as 4096 bytes. So we cannot safely
841 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
842 to allow for a few compiler-allocated temporary stack slots. */
843 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
844 # endif
845 # else
846 # define YYSTACK_ALLOC YYMALLOC
847 # define YYSTACK_FREE YYFREE
848 # ifndef YYSTACK_ALLOC_MAXIMUM
849 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
850 # endif
851 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
852 && ! ((defined YYMALLOC || defined malloc) \
853 && (defined YYFREE || defined free)))
854 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
855 # ifndef EXIT_SUCCESS
856 # define EXIT_SUCCESS 0
857 # endif
858 # endif
859 # ifndef YYMALLOC
860 # define YYMALLOC malloc
861 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
862 || defined __cplusplus || defined _MSC_VER)
863 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
864 # endif
865 # endif
866 # ifndef YYFREE
867 # define YYFREE free
868 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
869 || defined __cplusplus || defined _MSC_VER)
870 void free (void *); /* INFRINGES ON USER NAME SPACE */
871 # endif
872 # endif
873 # endif
874 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
875
876
877 #if (! defined yyoverflow \
878 && (! defined __cplusplus \
879 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
880
881 /* A type that is properly aligned for any stack member. */
882 union yyalloc
883 {
884 yytype_int16 yyss_alloc;
885 YYSTYPE yyvs_alloc;
886 };
887
888 /* The size of the maximum gap between one aligned stack and the next. */
889 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
890
891 /* The size of an array large to enough to hold all stacks, each with
892 N elements. */
893 # define YYSTACK_BYTES(N) \
894 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
895 + YYSTACK_GAP_MAXIMUM)
896
897 # define YYCOPY_NEEDED 1
898
899 /* Relocate STACK from its old location to the new one. The
900 local variables YYSIZE and YYSTACKSIZE give the old and new number of
901 elements in the stack, and YYPTR gives the new location of the
902 stack. Advance YYPTR to a properly aligned location for the next
903 stack. */
904 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
905 do \
906 { \
907 YYSIZE_T yynewbytes; \
908 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
909 Stack = &yyptr->Stack_alloc; \
910 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
911 yyptr += yynewbytes / sizeof (*yyptr); \
912 } \
913 while (YYID (0))
914
915 #endif
916
917 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
918 /* Copy COUNT objects from SRC to DST. The source and destination do
919 not overlap. */
920 # ifndef YYCOPY
921 # if defined __GNUC__ && 1 < __GNUC__
922 # define YYCOPY(Dst, Src, Count) \
923 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
924 # else
925 # define YYCOPY(Dst, Src, Count) \
926 do \
927 { \
928 YYSIZE_T yyi; \
929 for (yyi = 0; yyi < (Count); yyi++) \
930 (Dst)[yyi] = (Src)[yyi]; \
931 } \
932 while (YYID (0))
933 # endif
934 # endif
935 #endif /* !YYCOPY_NEEDED */
936
937 /* YYFINAL -- State number of the termination state. */
938 #define YYFINAL 2
939 /* YYLAST -- Last index in YYTABLE. */
940 #define YYLAST 1274
941
942 /* YYNTOKENS -- Number of terminals. */
943 #define YYNTOKENS 233
944 /* YYNNTS -- Number of nonterminals. */
945 #define YYNNTS 291
946 /* YYNRULES -- Number of rules. */
947 #define YYNRULES 654
948 /* YYNRULES -- Number of states. */
949 #define YYNSTATES 1285
950
951 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
952 #define YYUNDEFTOK 2
953 #define YYMAXUTOK 481
954
955 #define YYTRANSLATE(YYX) \
956 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
957
958 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
959 static const yytype_uint8 yytranslate[] =
960 {
961 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
962 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
963 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
964 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
965 2, 2, 2, 2, 231, 2, 2, 2, 2, 2,
966 2, 2, 2, 2, 2, 2, 2, 2, 232, 227,
967 2, 230, 2, 2, 2, 2, 2, 2, 2, 2,
968 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
969 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
970 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
971 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
972 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
973 2, 2, 2, 229, 2, 228, 2, 2, 2, 2,
974 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
975 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
976 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
977 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
978 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
979 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
980 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
981 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
983 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
984 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
985 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
986 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
987 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
988 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
989 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
990 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
991 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
992 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
993 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
994 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
995 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
996 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
997 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
998 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
999 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1000 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1001 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1002 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1003 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1004 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1005 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1006 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1007 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1008 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1009 225, 226
1010 };
1011
1012 #if YYDEBUG
1013 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
1014 YYRHS. */
1015 static const yytype_uint16 yyprhs[] =
1016 {
1017 0, 0, 3, 4, 7, 9, 11, 13, 15, 17,
1018 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
1019 39, 41, 43, 45, 47, 49, 52, 55, 56, 58,
1020 61, 65, 69, 73, 77, 81, 85, 89, 90, 92,
1021 95, 99, 103, 107, 113, 116, 118, 120, 122, 125,
1022 130, 135, 141, 144, 146, 148, 150, 152, 154, 156,
1023 158, 160, 162, 164, 166, 168, 170, 172, 174, 176,
1024 178, 180, 183, 188, 193, 197, 199, 201, 203, 207,
1025 209, 211, 213, 218, 223, 228, 233, 238, 243, 248,
1026 253, 258, 263, 268, 273, 278, 283, 288, 294, 297,
1027 299, 301, 303, 305, 308, 313, 318, 323, 324, 331,
1028 334, 336, 338, 340, 343, 348, 353, 359, 362, 364,
1029 366, 368, 371, 376, 377, 384, 387, 389, 391, 393,
1030 395, 398, 403, 408, 413, 414, 420, 424, 426, 428,
1031 430, 432, 434, 436, 438, 440, 441, 448, 451, 453,
1032 455, 457, 459, 461, 463, 465, 467, 469, 471, 473,
1033 476, 481, 486, 491, 496, 501, 506, 511, 516, 517,
1034 523, 527, 529, 531, 533, 535, 537, 539, 541, 543,
1035 545, 547, 549, 551, 553, 555, 557, 559, 561, 563,
1036 565, 567, 569, 571, 572, 578, 582, 584, 588, 590,
1037 594, 596, 600, 602, 604, 606, 608, 610, 612, 614,
1038 616, 618, 620, 622, 624, 626, 628, 630, 632, 634,
1039 636, 637, 644, 647, 649, 651, 653, 655, 657, 659,
1040 661, 663, 665, 667, 669, 671, 673, 675, 677, 679,
1041 681, 684, 689, 694, 699, 704, 709, 714, 719, 724,
1042 729, 734, 739, 744, 749, 754, 759, 760, 766, 770,
1043 772, 774, 776, 777, 784, 785, 791, 795, 797, 799,
1044 801, 803, 806, 808, 810, 812, 814, 816, 819, 820,
1045 826, 830, 832, 834, 838, 843, 848, 849, 856, 859,
1046 861, 863, 865, 867, 869, 871, 873, 875, 877, 880,
1047 885, 890, 895, 900, 901, 907, 911, 913, 915, 917,
1048 919, 921, 923, 925, 927, 929, 931, 933, 938, 943,
1049 948, 949, 956, 959, 961, 963, 965, 967, 970, 975,
1050 980, 985, 991, 994, 996, 998, 1000, 1005, 1006, 1013,
1051 1016, 1018, 1020, 1022, 1024, 1027, 1032, 1037, 1038, 1044,
1052 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066,
1053 1068, 1070, 1071, 1078, 1081, 1083, 1085, 1087, 1090, 1095,
1054 1096, 1102, 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120,
1055 1122, 1124, 1126, 1128, 1129, 1136, 1139, 1141, 1143, 1145,
1056 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, 1163, 1165,
1057 1167, 1169, 1172, 1177, 1182, 1187, 1192, 1197, 1202, 1207,
1058 1212, 1217, 1218, 1224, 1228, 1230, 1232, 1234, 1239, 1244,
1059 1249, 1254, 1259, 1260, 1267, 1270, 1272, 1274, 1276, 1278,
1060 1283, 1288, 1289, 1296, 1299, 1301, 1303, 1305, 1307, 1312,
1061 1317, 1323, 1326, 1328, 1330, 1332, 1337, 1338, 1345, 1348,
1062 1350, 1352, 1354, 1356, 1361, 1366, 1372, 1375, 1377, 1379,
1063 1381, 1383, 1385, 1387, 1389, 1391, 1393, 1395, 1397, 1399,
1064 1401, 1403, 1405, 1407, 1409, 1411, 1413, 1415, 1417, 1419,
1065 1421, 1423, 1425, 1427, 1429, 1431, 1433, 1435, 1437, 1439,
1066 1441, 1443, 1445, 1447, 1449, 1451, 1453, 1455, 1457, 1459,
1067 1461, 1463, 1465, 1467, 1469, 1471, 1473, 1475, 1477, 1482,
1068 1487, 1492, 1497, 1502, 1507, 1512, 1517, 1522, 1527, 1532,
1069 1537, 1542, 1547, 1552, 1557, 1562, 1567, 1572, 1577, 1582,
1070 1587, 1592, 1597, 1602, 1607, 1612, 1617, 1622, 1627, 1632,
1071 1637, 1642, 1647, 1652, 1657, 1662, 1667, 1672, 1677, 1682,
1072 1687, 1692, 1697, 1702, 1707, 1708, 1714, 1718, 1720, 1722,
1073 1724, 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1742,
1074 1744, 1746, 1748, 1750, 1752, 1754, 1756, 1758, 1760, 1762,
1075 1763, 1769, 1773, 1775, 1777, 1779, 1781, 1783, 1785, 1787,
1076 1789, 1791, 1793, 1795, 1797, 1799, 1801, 1803, 1805, 1807,
1077 1809, 1811, 1813, 1815, 1817, 1822, 1827, 1832, 1838, 1841,
1078 1843, 1845, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861,
1079 1863, 1865, 1867, 1869, 1874, 1879, 1884, 1889, 1894, 1899,
1080 1904, 1909, 1914, 1919, 1924, 1929, 1935, 1938, 1940, 1942,
1081 1944, 1946, 1948, 1950, 1952, 1954, 1956, 1958, 1963, 1968,
1082 1973, 1978, 1983, 1988, 1993
1083 };
1084
1085 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
1086 static const yytype_int16 yyrhs[] =
1087 {
1088 234, 0, -1, -1, 234, 235, -1, 269, -1, 281,
1089 -1, 295, -1, 498, -1, 315, -1, 338, -1, 352,
1090 -1, 245, -1, 513, -1, 367, -1, 374, -1, 378,
1091 -1, 388, -1, 397, -1, 418, -1, 424, -1, 430,
1092 -1, 440, -1, 434, -1, 240, -1, 275, -1, 1,
1093 227, -1, 1, 228, -1, -1, 237, -1, 108, 236,
1094 -1, 108, 135, 236, -1, 108, 136, 236, -1, 108,
1095 137, 236, -1, 108, 138, 236, -1, 108, 139, 236,
1096 -1, 108, 140, 236, -1, 108, 141, 236, -1, -1,
1097 239, -1, 108, 238, -1, 108, 9, 238, -1, 108,
1098 10, 238, -1, 108, 11, 238, -1, 96, 229, 241,
1099 228, 227, -1, 241, 242, -1, 242, -1, 243, -1,
1100 244, -1, 1, 227, -1, 95, 230, 123, 227, -1,
1101 119, 230, 123, 227, -1, 145, 229, 246, 228, 227,
1102 -1, 246, 247, -1, 247, -1, 258, -1, 263, -1,
1103 268, -1, 260, -1, 261, -1, 262, -1, 265, -1,
1104 266, -1, 267, -1, 256, -1, 255, -1, 264, -1,
1105 259, -1, 254, -1, 248, -1, 249, -1, 257, -1,
1106 1, 227, -1, 197, 230, 250, 227, -1, 198, 230,
1107 252, 227, -1, 250, 231, 251, -1, 251, -1, 199,
1108 -1, 200, -1, 252, 231, 253, -1, 253, -1, 199,
1109 -1, 200, -1, 150, 230, 123, 227, -1, 133, 230,
1110 123, 227, -1, 153, 230, 123, 227, -1, 196, 230,
1111 123, 227, -1, 98, 230, 123, 227, -1, 64, 230,
1112 123, 227, -1, 25, 230, 123, 227, -1, 102, 230,
1113 123, 227, -1, 101, 230, 123, 227, -1, 223, 230,
1114 123, 227, -1, 224, 230, 123, 227, -1, 178, 230,
1115 108, 227, -1, 86, 230, 108, 227, -1, 90, 230,
1116 108, 227, -1, 57, 230, 210, 227, -1, 4, 229,
1117 270, 228, 227, -1, 270, 271, -1, 271, -1, 272,
1118 -1, 274, -1, 273, -1, 1, 227, -1, 98, 230,
1119 123, 227, -1, 32, 230, 123, 227, -1, 25, 230,
1120 123, 227, -1, -1, 97, 276, 229, 277, 228, 227,
1121 -1, 277, 278, -1, 278, -1, 279, -1, 280, -1,
1122 1, 227, -1, 76, 230, 123, 227, -1, 170, 230,
1123 123, 227, -1, 177, 229, 282, 228, 227, -1, 282,
1124 283, -1, 283, -1, 284, -1, 285, -1, 1, 227,
1125 -1, 221, 230, 210, 227, -1, -1, 286, 170, 229,
1126 287, 228, 227, -1, 287, 288, -1, 288, -1, 289,
1127 -1, 291, -1, 290, -1, 1, 227, -1, 98, 230,
1128 123, 227, -1, 191, 230, 239, 227, -1, 191, 230,
1129 204, 227, -1, -1, 218, 292, 230, 293, 227, -1,
1130 293, 231, 294, -1, 294, -1, 222, -1, 114, -1,
1131 40, -1, 167, -1, 69, -1, 67, -1, 166, -1,
1132 -1, 114, 296, 229, 297, 228, 227, -1, 297, 298,
1133 -1, 298, -1, 299, -1, 300, -1, 301, -1, 307,
1134 -1, 306, -1, 302, -1, 303, -1, 304, -1, 305,
1135 -1, 311, -1, 1, 227, -1, 98, 230, 123, 227,
1136 -1, 222, 230, 123, 227, -1, 118, 230, 123, 227,
1137 -1, 33, 230, 210, 227, -1, 134, 230, 123, 227,
1138 -1, 151, 230, 123, 227, -1, 152, 230, 210, 227,
1139 -1, 17, 230, 123, 227, -1, -1, 201, 308, 230,
1140 309, 227, -1, 309, 231, 310, -1, 310, -1, 161,
1141 -1, 163, -1, 165, -1, 166, -1, 171, -1, 49,
1142 -1, 192, -1, 179, -1, 183, -1, 202, -1, 194,
1143 -1, 168, -1, 181, -1, 188, -1, 173, -1, 207,
1144 -1, 193, -1, 162, -1, 176, -1, 180, -1, 169,
1145 -1, -1, 63, 312, 230, 313, 227, -1, 313, 231,
1146 314, -1, 314, -1, 67, 232, 129, -1, 67, -1,
1147 18, 232, 129, -1, 18, -1, 149, 232, 129, -1,
1148 149, -1, 69, -1, 219, -1, 167, -1, 203, -1,
1149 226, -1, 40, -1, 26, -1, 184, -1, 128, -1,
1150 4, -1, 181, -1, 172, -1, 208, -1, 176, -1,
1151 130, -1, 189, -1, 95, -1, -1, 17, 316, 229,
1152 317, 228, 227, -1, 317, 318, -1, 318, -1, 319,
1153 -1, 329, -1, 330, -1, 320, -1, 331, -1, 321,
1154 -1, 322, -1, 323, -1, 324, -1, 325, -1, 326,
1155 -1, 327, -1, 328, -1, 332, -1, 333, -1, 334,
1156 -1, 1, 227, -1, 98, 230, 123, 227, -1, 121,
1157 230, 237, 227, -1, 110, 230, 108, 227, -1, 19,
1158 230, 237, 227, -1, 88, 230, 108, 227, -1, 81,
1159 230, 108, 227, -1, 84, 230, 108, 227, -1, 82,
1160 230, 108, 227, -1, 143, 230, 239, 227, -1, 182,
1161 230, 239, 227, -1, 15, 230, 108, 227, -1, 16,
1162 230, 108, 227, -1, 109, 230, 108, 227, -1, 92,
1163 230, 237, 227, -1, 83, 230, 237, 227, -1, -1,
1164 63, 335, 230, 336, 227, -1, 336, 231, 337, -1,
1165 337, -1, 124, -1, 51, -1, -1, 75, 339, 229,
1166 344, 228, 227, -1, -1, 63, 341, 230, 342, 227,
1167 -1, 342, 231, 343, -1, 343, -1, 195, -1, 49,
1168 -1, 185, -1, 344, 345, -1, 345, -1, 346, -1,
1169 340, -1, 350, -1, 351, -1, 1, 227, -1, -1,
1170 122, 230, 348, 347, 227, -1, 348, 231, 349, -1,
1171 349, -1, 108, -1, 108, 217, 108, -1, 61, 230,
1172 123, 227, -1, 56, 230, 123, 227, -1, -1, 62,
1173 353, 229, 354, 228, 227, -1, 354, 355, -1, 355,
1174 -1, 356, -1, 357, -1, 358, -1, 360, -1, 364,
1175 -1, 365, -1, 366, -1, 359, -1, 1, 227, -1,
1176 222, 230, 123, 227, -1, 118, 230, 123, 227, -1,
1177 17, 230, 123, 227, -1, 33, 230, 210, 227, -1,
1178 -1, 63, 361, 230, 362, 227, -1, 362, 231, 363,
1179 -1, 363, -1, 148, -1, 34, -1, 70, -1, 99,
1180 -1, 13, -1, 107, -1, 43, -1, 132, -1, 209,
1181 -1, 100, -1, 147, 230, 123, 227, -1, 127, 230,
1182 123, 227, -1, 126, 230, 108, 227, -1, -1, 131,
1183 368, 229, 369, 228, 227, -1, 369, 370, -1, 370,
1184 -1, 371, -1, 372, -1, 373, -1, 1, 227, -1,
1185 76, 230, 123, 227, -1, 125, 230, 123, 227, -1,
1186 35, 230, 123, 227, -1, 186, 229, 375, 228, 227,
1187 -1, 375, 376, -1, 376, -1, 377, -1, 1, -1,
1188 98, 230, 123, 227, -1, -1, 190, 379, 229, 380,
1189 228, 227, -1, 380, 381, -1, 381, -1, 382, -1,
1190 383, -1, 384, -1, 1, 227, -1, 98, 230, 123,
1191 227, -1, 222, 230, 123, 227, -1, -1, 218, 385,
1192 230, 386, 227, -1, 386, 231, 387, -1, 387, -1,
1193 69, -1, 219, -1, 167, -1, 203, -1, 226, -1,
1194 206, -1, 131, -1, 205, -1, 176, -1, 160, -1,
1195 -1, 164, 389, 229, 390, 228, 227, -1, 390, 391,
1196 -1, 391, -1, 392, -1, 393, -1, 1, 227, -1,
1197 98, 230, 123, 227, -1, -1, 218, 394, 230, 395,
1198 227, -1, 395, 231, 396, -1, 396, -1, 69, -1,
1199 219, -1, 167, -1, 203, -1, 226, -1, 206, -1,
1200 131, -1, 205, -1, 176, -1, 160, -1, -1, 18,
1201 398, 229, 399, 228, 227, -1, 399, 400, -1, 400,
1202 -1, 401, -1, 402, -1, 403, -1, 404, -1, 405,
1203 -1, 406, -1, 408, -1, 407, -1, 417, -1, 409,
1204 -1, 414, -1, 415, -1, 416, -1, 413, -1, 1,
1205 227, -1, 98, 230, 123, 227, -1, 56, 230, 123,
1206 227, -1, 223, 230, 123, 227, -1, 142, 230, 123,
1207 227, -1, 3, 230, 123, 227, -1, 151, 230, 123,
1208 227, -1, 122, 230, 108, 227, -1, 5, 230, 174,
1209 227, -1, 5, 230, 175, 227, -1, -1, 63, 410,
1210 230, 411, 227, -1, 411, 231, 412, -1, 412, -1,
1211 8, -1, 195, -1, 33, 230, 210, 227, -1, 58,
1212 230, 123, 227, -1, 73, 230, 123, 227, -1, 17,
1213 230, 123, 227, -1, 196, 230, 123, 227, -1, -1,
1214 67, 419, 229, 420, 228, 227, -1, 420, 421, -1,
1215 421, -1, 422, -1, 423, -1, 1, -1, 222, 230,
1216 123, 227, -1, 125, 230, 123, 227, -1, -1, 24,
1217 425, 229, 426, 228, 227, -1, 426, 427, -1, 427,
1218 -1, 428, -1, 429, -1, 1, -1, 61, 230, 123,
1219 227, -1, 125, 230, 123, 227, -1, 35, 229, 431,
1220 228, 227, -1, 431, 432, -1, 432, -1, 433, -1,
1221 1, -1, 61, 230, 123, 227, -1, -1, 38, 435,
1222 229, 436, 228, 227, -1, 436, 437, -1, 437, -1,
1223 438, -1, 439, -1, 1, -1, 98, 230, 123, 227,
1224 -1, 125, 230, 123, 227, -1, 39, 229, 441, 228,
1225 227, -1, 441, 442, -1, 442, -1, 452, -1, 453,
1226 -1, 454, -1, 455, -1, 456, -1, 457, -1, 458,
1227 -1, 459, -1, 460, -1, 461, -1, 451, -1, 463,
1228 -1, 464, -1, 479, -1, 466, -1, 469, -1, 471,
1229 -1, 470, -1, 474, -1, 467, -1, 468, -1, 475,
1230 -1, 476, -1, 477, -1, 478, -1, 491, -1, 480,
1231 -1, 481, -1, 482, -1, 487, -1, 472, -1, 473,
1232 -1, 497, -1, 495, -1, 496, -1, 486, -1, 462,
1233 -1, 484, -1, 485, -1, 450, -1, 445, -1, 446,
1234 -1, 447, -1, 448, -1, 449, -1, 465, -1, 443,
1235 -1, 483, -1, 444, -1, 1, -1, 91, 230, 108,
1236 227, -1, 20, 230, 210, 227, -1, 42, 230, 210,
1237 227, -1, 41, 230, 237, 227, -1, 46, 230, 237,
1238 227, -1, 44, 230, 108, 227, -1, 45, 230, 108,
1239 227, -1, 212, 230, 210, 227, -1, 68, 230, 237,
1240 227, -1, 55, 230, 210, 227, -1, 59, 230, 210,
1241 227, -1, 36, 230, 210, 227, -1, 6, 230, 210,
1242 227, -1, 87, 230, 237, 227, -1, 85, 230, 108,
1243 227, -1, 77, 230, 108, 227, -1, 7, 230, 237,
1244 227, -1, 216, 230, 237, 227, -1, 215, 230, 237,
1245 227, -1, 48, 230, 108, 227, -1, 60, 230, 210,
1246 227, -1, 225, 230, 210, 227, -1, 154, 230, 210,
1247 227, -1, 157, 230, 210, 227, -1, 158, 230, 210,
1248 227, -1, 159, 230, 210, 227, -1, 156, 230, 210,
1249 227, -1, 156, 230, 213, 227, -1, 155, 230, 210,
1250 227, -1, 155, 230, 213, 227, -1, 116, 230, 237,
1251 227, -1, 12, 230, 237, 227, -1, 115, 230, 210,
1252 227, -1, 117, 230, 237, 227, -1, 146, 230, 210,
1253 227, -1, 106, 230, 210, 227, -1, 214, 230, 210,
1254 227, -1, 112, 230, 210, 227, -1, 30, 230, 108,
1255 227, -1, 89, 230, 108, 227, -1, 220, 230, 210,
1256 227, -1, 31, 230, 123, 227, -1, 187, 230, 123,
1257 227, -1, 120, 230, 210, 227, -1, 27, 230, 210,
1258 227, -1, 211, 230, 237, 227, -1, -1, 113, 488,
1259 230, 489, 227, -1, 489, 231, 490, -1, 490, -1,
1260 161, -1, 163, -1, 165, -1, 166, -1, 171, -1,
1261 49, -1, 192, -1, 179, -1, 183, -1, 202, -1,
1262 194, -1, 168, -1, 181, -1, 188, -1, 173, -1,
1263 207, -1, 193, -1, 162, -1, 176, -1, 180, -1,
1264 169, -1, -1, 111, 492, 230, 493, 227, -1, 493,
1265 231, 494, -1, 494, -1, 161, -1, 163, -1, 165,
1266 -1, 166, -1, 171, -1, 192, -1, 49, -1, 179,
1267 -1, 183, -1, 202, -1, 194, -1, 168, -1, 181,
1268 -1, 188, -1, 173, -1, 207, -1, 193, -1, 162,
1269 -1, 176, -1, 180, -1, 169, -1, 93, 230, 108,
1270 227, -1, 94, 230, 108, 227, -1, 21, 230, 108,
1271 227, -1, 14, 229, 499, 228, 227, -1, 499, 500,
1272 -1, 500, -1, 506, -1, 502, -1, 503, -1, 504,
1273 -1, 505, -1, 507, -1, 508, -1, 509, -1, 510,
1274 -1, 511, -1, 512, -1, 501, -1, 1, -1, 28,
1275 230, 210, 227, -1, 71, 230, 237, 227, -1, 72,
1276 230, 237, 227, -1, 80, 230, 108, 227, -1, 79,
1277 230, 108, 227, -1, 78, 230, 108, 227, -1, 23,
1278 230, 108, 227, -1, 22, 230, 108, 227, -1, 104,
1279 230, 210, 227, -1, 105, 230, 210, 227, -1, 65,
1280 230, 108, 227, -1, 66, 230, 237, 227, -1, 144,
1281 229, 514, 228, 227, -1, 514, 515, -1, 515, -1,
1282 516, -1, 517, -1, 518, -1, 519, -1, 521, -1,
1283 522, -1, 520, -1, 523, -1, 1, -1, 37, 230,
1284 210, 227, -1, 29, 230, 210, 227, -1, 53, 230,
1285 210, 227, -1, 54, 230, 210, 227, -1, 50, 230,
1286 123, 227, -1, 74, 230, 237, 227, -1, 49, 230,
1287 210, 227, -1, 52, 230, 210, 227, -1
1288 };
1289
1290 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
1291 static const yytype_uint16 yyrline[] =
1292 {
1293 0, 370, 370, 371, 374, 375, 376, 377, 378, 379,
1294 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
1295 390, 391, 392, 393, 394, 395, 396, 400, 400, 401,
1296 405, 409, 413, 417, 421, 425, 429, 435, 435, 436,
1297 437, 438, 439, 446, 449, 449, 450, 450, 450, 452,
1298 458, 465, 467, 467, 468, 468, 469, 469, 470, 470,
1299 471, 471, 472, 472, 473, 473, 474, 474, 475, 475,
1300 476, 477, 480, 481, 483, 483, 484, 490, 498, 498,
1301 499, 505, 513, 555, 614, 642, 650, 665, 680, 689,
1302 703, 712, 740, 770, 795, 817, 839, 848, 850, 850,
1303 851, 851, 852, 852, 854, 863, 872, 885, 884, 902,
1304 902, 903, 903, 903, 905, 911, 920, 921, 921, 923,
1305 923, 924, 926, 933, 933, 946, 947, 949, 949, 950,
1306 950, 952, 960, 963, 969, 968, 974, 974, 975, 979,
1307 983, 987, 991, 995, 999, 1010, 1009, 1089, 1089, 1090,
1308 1090, 1090, 1091, 1091, 1091, 1092, 1092, 1093, 1094, 1094,
1309 1096, 1102, 1108, 1114, 1125, 1131, 1137, 1148, 1155, 1154,
1310 1160, 1160, 1161, 1165, 1169, 1173, 1177, 1181, 1185, 1189,
1311 1193, 1197, 1201, 1205, 1209, 1213, 1217, 1221, 1225, 1229,
1312 1233, 1237, 1241, 1248, 1247, 1253, 1253, 1254, 1258, 1262,
1313 1266, 1270, 1274, 1278, 1282, 1286, 1290, 1294, 1298, 1302,
1314 1306, 1310, 1314, 1318, 1322, 1326, 1330, 1334, 1338, 1342,
1315 1353, 1352, 1413, 1413, 1414, 1415, 1415, 1416, 1417, 1418,
1316 1419, 1420, 1421, 1422, 1423, 1424, 1424, 1425, 1426, 1427,
1317 1428, 1430, 1436, 1442, 1448, 1454, 1460, 1466, 1472, 1478,
1318 1484, 1491, 1497, 1503, 1509, 1518, 1528, 1527, 1533, 1533,
1319 1534, 1538, 1549, 1548, 1555, 1554, 1559, 1559, 1560, 1564,
1320 1568, 1574, 1574, 1575, 1575, 1575, 1575, 1575, 1577, 1577,
1321 1579, 1579, 1581, 1595, 1615, 1621, 1631, 1630, 1672, 1672,
1322 1673, 1673, 1673, 1673, 1674, 1674, 1674, 1675, 1675, 1677,
1323 1683, 1689, 1695, 1707, 1706, 1712, 1712, 1713, 1717, 1721,
1324 1725, 1729, 1733, 1737, 1741, 1745, 1749, 1755, 1769, 1778,
1325 1792, 1791, 1806, 1806, 1807, 1807, 1807, 1807, 1809, 1815,
1326 1821, 1831, 1833, 1833, 1834, 1834, 1836, 1852, 1851, 1876,
1327 1876, 1877, 1877, 1877, 1877, 1879, 1885, 1905, 1904, 1910,
1328 1910, 1911, 1915, 1919, 1923, 1927, 1931, 1935, 1939, 1943,
1329 1947, 1957, 1956, 1977, 1977, 1978, 1978, 1978, 1980, 1987,
1330 1986, 1992, 1992, 1993, 1997, 2001, 2005, 2009, 2013, 2017,
1331 2021, 2025, 2029, 2039, 2038, 2109, 2109, 2110, 2110, 2110,
1332 2111, 2111, 2112, 2113, 2113, 2113, 2114, 2114, 2114, 2115,
1333 2115, 2116, 2118, 2124, 2130, 2136, 2149, 2162, 2168, 2174,
1334 2178, 2187, 2186, 2191, 2191, 2192, 2196, 2202, 2213, 2219,
1335 2225, 2231, 2247, 2246, 2272, 2272, 2273, 2273, 2273, 2275,
1336 2295, 2305, 2304, 2331, 2331, 2332, 2332, 2332, 2334, 2340,
1337 2349, 2351, 2351, 2352, 2352, 2354, 2372, 2371, 2394, 2394,
1338 2395, 2395, 2395, 2397, 2403, 2412, 2415, 2415, 2416, 2416,
1339 2417, 2417, 2418, 2418, 2419, 2419, 2420, 2420, 2421, 2422,
1340 2423, 2423, 2424, 2424, 2425, 2425, 2426, 2426, 2427, 2428,
1341 2428, 2429, 2429, 2430, 2430, 2431, 2431, 2432, 2432, 2433,
1342 2433, 2434, 2434, 2435, 2435, 2436, 2437, 2438, 2438, 2439,
1343 2439, 2440, 2441, 2442, 2443, 2443, 2444, 2445, 2448, 2453,
1344 2459, 2465, 2471, 2477, 2482, 2487, 2492, 2497, 2502, 2507,
1345 2512, 2517, 2522, 2527, 2532, 2537, 2542, 2548, 2559, 2564,
1346 2569, 2574, 2579, 2584, 2589, 2592, 2597, 2600, 2605, 2610,
1347 2615, 2620, 2625, 2630, 2635, 2640, 2645, 2650, 2655, 2660,
1348 2669, 2678, 2683, 2688, 2694, 2693, 2698, 2698, 2699, 2702,
1349 2705, 2708, 2711, 2714, 2717, 2720, 2723, 2726, 2729, 2732,
1350 2735, 2738, 2741, 2744, 2747, 2750, 2753, 2756, 2759, 2765,
1351 2764, 2769, 2769, 2770, 2773, 2776, 2779, 2782, 2785, 2788,
1352 2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815, 2818,
1353 2821, 2824, 2827, 2830, 2835, 2840, 2845, 2854, 2857, 2857,
1354 2858, 2859, 2859, 2860, 2860, 2861, 2862, 2863, 2864, 2865,
1355 2865, 2866, 2866, 2868, 2873, 2878, 2883, 2888, 2893, 2898,
1356 2903, 2908, 2913, 2918, 2923, 2931, 2934, 2934, 2935, 2935,
1357 2936, 2937, 2938, 2939, 2939, 2940, 2941, 2943, 2949, 2955,
1358 2961, 2967, 2976, 2990, 2996
1359 };
1360 #endif
1361
1362 #if YYDEBUG || YYERROR_VERBOSE || 0
1363 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
1364 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1365 static const char *const yytname[] =
1366 {
1367 "$end", "error", "$undefined", "ACCEPT_PASSWORD", "ADMIN", "AFTYPE",
1368 "ANTI_NICK_FLOOD", "ANTI_SPAM_EXIT_MESSAGE_TIME", "AUTOCONN", "BYTES",
1369 "KBYTES", "MBYTES", "CALLER_ID_WAIT", "CAN_FLOOD", "CHANNEL",
1370 "CIDR_BITLEN_IPV4", "CIDR_BITLEN_IPV6", "CLASS", "CONNECT",
1371 "CONNECTFREQ", "CYCLE_ON_HOST_CHANGE", "DEFAULT_FLOODCOUNT",
1372 "DEFAULT_SPLIT_SERVER_COUNT", "DEFAULT_SPLIT_USER_COUNT", "DENY",
1373 "DESCRIPTION", "DIE", "DISABLE_AUTH", "DISABLE_FAKE_CHANNELS",
1374 "DISABLE_REMOTE_COMMANDS", "DOTS_IN_IDENT", "EGDPOOL_PATH", "EMAIL",
1375 "ENCRYPTED", "EXCEED_LIMIT", "EXEMPT", "FAILED_OPER_NOTICE",
1376 "FLATTEN_LINKS", "GECOS", "GENERAL", "GLINE", "GLINE_DURATION",
1377 "GLINE_ENABLE", "GLINE_EXEMPT", "GLINE_MIN_CIDR", "GLINE_MIN_CIDR6",
1378 "GLINE_REQUEST_DURATION", "GLOBAL_KILL", "HAVENT_READ_CONF", "HIDDEN",
1379 "HIDDEN_NAME", "HIDE_IDLE_FROM_OPERS", "HIDE_SERVER_IPS", "HIDE_SERVERS",
1380 "HIDE_SERVICES", "HIDE_SPOOF_IPS", "HOST", "HUB", "HUB_MASK",
1381 "IGNORE_BOGUS_TS", "INVISIBLE_ON_CONNECT", "IP", "IRCD_AUTH",
1382 "IRCD_FLAGS", "IRCD_SID", "JOIN_FLOOD_COUNT", "JOIN_FLOOD_TIME", "KILL",
1383 "KILL_CHASE_TIME_LIMIT", "KLINE", "KLINE_EXEMPT", "KNOCK_DELAY",
1384 "KNOCK_DELAY_CHANNEL", "LEAF_MASK", "LINKS_DELAY", "LISTEN", "MASK",
1385 "MAX_ACCEPT", "MAX_BANS", "MAX_CHANS_PER_OPER", "MAX_CHANS_PER_USER",
1386 "MAX_GLOBAL", "MAX_IDENT", "MAX_IDLE", "MAX_LOCAL", "MAX_NICK_CHANGES",
1387 "MAX_NICK_LENGTH", "MAX_NICK_TIME", "MAX_NUMBER", "MAX_TARGETS",
1388 "MAX_TOPIC_LENGTH", "MAX_WATCH", "MIN_IDLE", "MIN_NONWILDCARD",
1389 "MIN_NONWILDCARD_SIMPLE", "MODULE", "MODULES", "MOTD", "NAME",
1390 "NEED_IDENT", "NEED_PASSWORD", "NETWORK_DESC", "NETWORK_NAME", "NICK",
1391 "NO_CREATE_ON_SPLIT", "NO_JOIN_ON_SPLIT", "NO_OPER_FLOOD", "NO_TILDE",
1392 "NUMBER", "NUMBER_PER_CIDR", "NUMBER_PER_IP", "OPER_ONLY_UMODES",
1393 "OPER_PASS_RESV", "OPER_UMODES", "OPERATOR", "OPERS_BYPASS_CALLERID",
1394 "PACE_WAIT", "PACE_WAIT_SIMPLE", "PASSWORD", "PATH", "PING_COOKIE",
1395 "PING_TIME", "PORT", "QSTRING", "RANDOM_IDLE", "REASON", "REDIRPORT",
1396 "REDIRSERV", "REHASH", "REMOTE", "REMOTEBAN", "RESV", "RESV_EXEMPT",
1397 "RSA_PRIVATE_KEY_FILE", "RSA_PUBLIC_KEY_FILE", "SECONDS", "MINUTES",
1398 "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SEND_PASSWORD", "SENDQ",
1399 "SERVERHIDE", "SERVERINFO", "SHORT_MOTD", "SPOOF", "SPOOF_NOTICE",
1400 "SQUIT", "SSL_CERTIFICATE_FILE", "SSL_CERTIFICATE_FINGERPRINT",
1401 "SSL_CONNECTION_REQUIRED", "SSL_DH_PARAM_FILE", "STATS_E_DISABLED",
1402 "STATS_I_OPER_ONLY", "STATS_K_OPER_ONLY", "STATS_O_OPER_ONLY",
1403 "STATS_P_OPER_ONLY", "STATS_U_OPER_ONLY", "T_ALL", "T_BOTS",
1404 "T_CALLERID", "T_CCONN", "T_CLUSTER", "T_DEAF", "T_DEBUG", "T_DLINE",
1405 "T_EXTERNAL", "T_FARCONNECT", "T_FILE", "T_FULL", "T_GLOBOPS",
1406 "T_INVISIBLE", "T_IPV4", "T_IPV6", "T_LOCOPS", "T_LOG", "T_MAX_CLIENTS",
1407 "T_NCHANGE", "T_NONONREG", "T_OPERWALL", "T_RECVQ", "T_REJ", "T_RESTART",
1408 "T_SERVER", "T_SERVICE", "T_SERVICES_NAME", "T_SERVNOTICE", "T_SET",
1409 "T_SHARED", "T_SIZE", "T_SKILL", "T_SOFTCALLERID", "T_SPY", "T_SSL",
1410 "T_SSL_CIPHER_LIST", "T_SSL_CLIENT_METHOD", "T_SSL_SERVER_METHOD",
1411 "T_SSLV3", "T_TLSV1", "T_UMODES", "T_UNAUTH", "T_UNDLINE", "T_UNLIMITED",
1412 "T_UNRESV", "T_UNXLINE", "T_WALLOP", "T_WALLOPS", "T_WEBIRC", "TBOOL",
1413 "THROTTLE_TIME", "TKLINE_EXPIRE_NOTICES", "TMASKED",
1414 "TRUE_NO_OPER_FLOOD", "TS_MAX_DELTA", "TS_WARN_DELTA", "TWODOTS", "TYPE",
1415 "UNKLINE", "USE_EGD", "USE_LOGGING", "USER", "VHOST", "VHOST6",
1416 "WARN_NO_NLINE", "XLINE", "';'", "'}'", "'{'", "'='", "','", "':'",
1417 "$accept", "conf", "conf_item", "timespec_", "timespec", "sizespec_",
1418 "sizespec", "modules_entry", "modules_items", "modules_item",
1419 "modules_module", "modules_path", "serverinfo_entry", "serverinfo_items",
1420 "serverinfo_item", "serverinfo_ssl_client_method",
1421 "serverinfo_ssl_server_method", "client_method_types",
1422 "client_method_type_item", "server_method_types",
1423 "server_method_type_item", "serverinfo_ssl_certificate_file",
1424 "serverinfo_rsa_private_key_file", "serverinfo_ssl_dh_param_file",
1425 "serverinfo_ssl_cipher_list", "serverinfo_name", "serverinfo_sid",
1426 "serverinfo_description", "serverinfo_network_name",
1427 "serverinfo_network_desc", "serverinfo_vhost", "serverinfo_vhost6",
1428 "serverinfo_max_clients", "serverinfo_max_nick_length",
1429 "serverinfo_max_topic_length", "serverinfo_hub", "admin_entry",
1430 "admin_items", "admin_item", "admin_name", "admin_email",
1431 "admin_description", "motd_entry", "$@1", "motd_items", "motd_item",
1432 "motd_mask", "motd_file", "logging_entry", "logging_items",
1433 "logging_item", "logging_use_logging", "logging_file_entry", "$@2",
1434 "logging_file_items", "logging_file_item", "logging_file_name",
1435 "logging_file_size", "logging_file_type", "$@3",
1436 "logging_file_type_items", "logging_file_type_item", "oper_entry", "$@4",
1437 "oper_items", "oper_item", "oper_name", "oper_user", "oper_password",
1438 "oper_encrypted", "oper_rsa_public_key_file",
1439 "oper_ssl_certificate_fingerprint", "oper_ssl_connection_required",
1440 "oper_class", "oper_umodes", "$@5", "oper_umodes_items",
1441 "oper_umodes_item", "oper_flags", "$@6", "oper_flags_items",
1442 "oper_flags_item", "class_entry", "$@7", "class_items", "class_item",
1443 "class_name", "class_ping_time", "class_number_per_ip",
1444 "class_connectfreq", "class_max_number", "class_max_global",
1445 "class_max_local", "class_max_ident", "class_sendq", "class_recvq",
1446 "class_cidr_bitlen_ipv4", "class_cidr_bitlen_ipv6",
1447 "class_number_per_cidr", "class_min_idle", "class_max_idle",
1448 "class_flags", "$@8", "class_flags_items", "class_flags_item",
1449 "listen_entry", "$@9", "listen_flags", "$@10", "listen_flags_items",
1450 "listen_flags_item", "listen_items", "listen_item", "listen_port",
1451 "$@11", "port_items", "port_item", "listen_address", "listen_host",
1452 "auth_entry", "$@12", "auth_items", "auth_item", "auth_user",
1453 "auth_passwd", "auth_class", "auth_encrypted", "auth_flags", "$@13",
1454 "auth_flags_items", "auth_flags_item", "auth_spoof", "auth_redir_serv",
1455 "auth_redir_port", "resv_entry", "$@14", "resv_items", "resv_item",
1456 "resv_mask", "resv_reason", "resv_exempt", "service_entry",
1457 "service_items", "service_item", "service_name", "shared_entry", "$@15",
1458 "shared_items", "shared_item", "shared_name", "shared_user",
1459 "shared_type", "$@16", "shared_types", "shared_type_item",
1460 "cluster_entry", "$@17", "cluster_items", "cluster_item", "cluster_name",
1461 "cluster_type", "$@18", "cluster_types", "cluster_type_item",
1462 "connect_entry", "$@19", "connect_items", "connect_item", "connect_name",
1463 "connect_host", "connect_vhost", "connect_send_password",
1464 "connect_accept_password", "connect_ssl_certificate_fingerprint",
1465 "connect_port", "connect_aftype", "connect_flags", "$@20",
1466 "connect_flags_items", "connect_flags_item", "connect_encrypted",
1467 "connect_hub_mask", "connect_leaf_mask", "connect_class",
1468 "connect_ssl_cipher_list", "kill_entry", "$@21", "kill_items",
1469 "kill_item", "kill_user", "kill_reason", "deny_entry", "$@22",
1470 "deny_items", "deny_item", "deny_ip", "deny_reason", "exempt_entry",
1471 "exempt_items", "exempt_item", "exempt_ip", "gecos_entry", "$@23",
1472 "gecos_items", "gecos_item", "gecos_name", "gecos_reason",
1473 "general_entry", "general_items", "general_item", "general_max_watch",
1474 "general_cycle_on_host_change", "general_gline_enable",
1475 "general_gline_duration", "general_gline_request_duration",
1476 "general_gline_min_cidr", "general_gline_min_cidr6",
1477 "general_tkline_expire_notices", "general_kill_chase_time_limit",
1478 "general_hide_spoof_ips", "general_ignore_bogus_ts",
1479 "general_failed_oper_notice", "general_anti_nick_flood",
1480 "general_max_nick_time", "general_max_nick_changes",
1481 "general_max_accept", "general_anti_spam_exit_message_time",
1482 "general_ts_warn_delta", "general_ts_max_delta",
1483 "general_havent_read_conf", "general_invisible_on_connect",
1484 "general_warn_no_nline", "general_stats_e_disabled",
1485 "general_stats_o_oper_only", "general_stats_P_oper_only",
1486 "general_stats_u_oper_only", "general_stats_k_oper_only",
1487 "general_stats_i_oper_only", "general_pace_wait",
1488 "general_caller_id_wait", "general_opers_bypass_callerid",
1489 "general_pace_wait_simple", "general_short_motd",
1490 "general_no_oper_flood", "general_true_no_oper_flood",
1491 "general_oper_pass_resv", "general_dots_in_ident", "general_max_targets",
1492 "general_use_egd", "general_egdpool_path", "general_services_name",
1493 "general_ping_cookie", "general_disable_auth", "general_throttle_time",
1494 "general_oper_umodes", "$@24", "umode_oitems", "umode_oitem",
1495 "general_oper_only_umodes", "$@25", "umode_items", "umode_item",
1496 "general_min_nonwildcard", "general_min_nonwildcard_simple",
1497 "general_default_floodcount", "channel_entry", "channel_items",
1498 "channel_item", "channel_disable_fake_channels", "channel_knock_delay",
1499 "channel_knock_delay_channel", "channel_max_chans_per_user",
1500 "channel_max_chans_per_oper", "channel_max_bans",
1501 "channel_default_split_user_count", "channel_default_split_server_count",
1502 "channel_no_create_on_split", "channel_no_join_on_split",
1503 "channel_jflood_count", "channel_jflood_time", "serverhide_entry",
1504 "serverhide_items", "serverhide_item", "serverhide_flatten_links",
1505 "serverhide_disable_remote_commands", "serverhide_hide_servers",
1506 "serverhide_hide_services", "serverhide_hidden_name",
1507 "serverhide_links_delay", "serverhide_hidden",
1508 "serverhide_hide_server_ips", YY_NULL
1509 };
1510 #endif
1511
1512 # ifdef YYPRINT
1513 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
1514 token YYLEX-NUM. */
1515 static const yytype_uint16 yytoknum[] =
1516 {
1517 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1518 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1519 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1520 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1521 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1522 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1523 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1524 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1525 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1526 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1527 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
1528 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
1529 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
1530 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
1531 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
1532 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
1533 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
1534 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
1535 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
1536 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1537 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1538 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1539 475, 476, 477, 478, 479, 480, 481, 59, 125, 123,
1540 61, 44, 58
1541 };
1542 # endif
1543
1544 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
1545 static const yytype_uint16 yyr1[] =
1546 {
1547 0, 233, 234, 234, 235, 235, 235, 235, 235, 235,
1548 235, 235, 235, 235, 235, 235, 235, 235, 235, 235,
1549 235, 235, 235, 235, 235, 235, 235, 236, 236, 237,
1550 237, 237, 237, 237, 237, 237, 237, 238, 238, 239,
1551 239, 239, 239, 240, 241, 241, 242, 242, 242, 243,
1552 244, 245, 246, 246, 247, 247, 247, 247, 247, 247,
1553 247, 247, 247, 247, 247, 247, 247, 247, 247, 247,
1554 247, 247, 248, 249, 250, 250, 251, 251, 252, 252,
1555 253, 253, 254, 255, 256, 257, 258, 259, 260, 261,
1556 262, 263, 264, 265, 266, 267, 268, 269, 270, 270,
1557 271, 271, 271, 271, 272, 273, 274, 276, 275, 277,
1558 277, 278, 278, 278, 279, 280, 281, 282, 282, 283,
1559 283, 283, 284, 286, 285, 287, 287, 288, 288, 288,
1560 288, 289, 290, 290, 292, 291, 293, 293, 294, 294,
1561 294, 294, 294, 294, 294, 296, 295, 297, 297, 298,
1562 298, 298, 298, 298, 298, 298, 298, 298, 298, 298,
1563 299, 300, 301, 302, 303, 304, 305, 306, 308, 307,
1564 309, 309, 310, 310, 310, 310, 310, 310, 310, 310,
1565 310, 310, 310, 310, 310, 310, 310, 310, 310, 310,
1566 310, 310, 310, 312, 311, 313, 313, 314, 314, 314,
1567 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1568 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1569 316, 315, 317, 317, 318, 318, 318, 318, 318, 318,
1570 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
1571 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
1572 328, 329, 330, 331, 332, 333, 335, 334, 336, 336,
1573 337, 337, 339, 338, 341, 340, 342, 342, 343, 343,
1574 343, 344, 344, 345, 345, 345, 345, 345, 347, 346,
1575 348, 348, 349, 349, 350, 351, 353, 352, 354, 354,
1576 355, 355, 355, 355, 355, 355, 355, 355, 355, 356,
1577 357, 358, 359, 361, 360, 362, 362, 363, 363, 363,
1578 363, 363, 363, 363, 363, 363, 363, 364, 365, 366,
1579 368, 367, 369, 369, 370, 370, 370, 370, 371, 372,
1580 373, 374, 375, 375, 376, 376, 377, 379, 378, 380,
1581 380, 381, 381, 381, 381, 382, 383, 385, 384, 386,
1582 386, 387, 387, 387, 387, 387, 387, 387, 387, 387,
1583 387, 389, 388, 390, 390, 391, 391, 391, 392, 394,
1584 393, 395, 395, 396, 396, 396, 396, 396, 396, 396,
1585 396, 396, 396, 398, 397, 399, 399, 400, 400, 400,
1586 400, 400, 400, 400, 400, 400, 400, 400, 400, 400,
1587 400, 400, 401, 402, 403, 404, 405, 406, 407, 408,
1588 408, 410, 409, 411, 411, 412, 412, 413, 414, 415,
1589 416, 417, 419, 418, 420, 420, 421, 421, 421, 422,
1590 423, 425, 424, 426, 426, 427, 427, 427, 428, 429,
1591 430, 431, 431, 432, 432, 433, 435, 434, 436, 436,
1592 437, 437, 437, 438, 439, 440, 441, 441, 442, 442,
1593 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
1594 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
1595 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
1596 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
1597 442, 442, 442, 442, 442, 442, 442, 442, 443, 444,
1598 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
1599 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1600 465, 466, 467, 468, 469, 469, 470, 470, 471, 472,
1601 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
1602 483, 484, 485, 486, 488, 487, 489, 489, 490, 490,
1603 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
1604 490, 490, 490, 490, 490, 490, 490, 490, 490, 492,
1605 491, 493, 493, 494, 494, 494, 494, 494, 494, 494,
1606 494, 494, 494, 494, 494, 494, 494, 494, 494, 494,
1607 494, 494, 494, 494, 495, 496, 497, 498, 499, 499,
1608 500, 500, 500, 500, 500, 500, 500, 500, 500, 500,
1609 500, 500, 500, 501, 502, 503, 504, 505, 506, 507,
1610 508, 509, 510, 511, 512, 513, 514, 514, 515, 515,
1611 515, 515, 515, 515, 515, 515, 515, 516, 517, 518,
1612 519, 520, 521, 522, 523
1613 };
1614
1615 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1616 static const yytype_uint8 yyr2[] =
1617 {
1618 0, 2, 0, 2, 1, 1, 1, 1, 1, 1,
1619 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1620 1, 1, 1, 1, 1, 2, 2, 0, 1, 2,
1621 3, 3, 3, 3, 3, 3, 3, 0, 1, 2,
1622 3, 3, 3, 5, 2, 1, 1, 1, 2, 4,
1623 4, 5, 2, 1, 1, 1, 1, 1, 1, 1,
1624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1625 1, 2, 4, 4, 3, 1, 1, 1, 3, 1,
1626 1, 1, 4, 4, 4, 4, 4, 4, 4, 4,
1627 4, 4, 4, 4, 4, 4, 4, 5, 2, 1,
1628 1, 1, 1, 2, 4, 4, 4, 0, 6, 2,
1629 1, 1, 1, 2, 4, 4, 5, 2, 1, 1,
1630 1, 2, 4, 0, 6, 2, 1, 1, 1, 1,
1631 2, 4, 4, 4, 0, 5, 3, 1, 1, 1,
1632 1, 1, 1, 1, 1, 0, 6, 2, 1, 1,
1633 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
1634 4, 4, 4, 4, 4, 4, 4, 4, 0, 5,
1635 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1636 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1637 1, 1, 1, 0, 5, 3, 1, 3, 1, 3,
1638 1, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1639 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1640 0, 6, 2, 1, 1, 1, 1, 1, 1, 1,
1641 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1642 2, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1643 4, 4, 4, 4, 4, 4, 0, 5, 3, 1,
1644 1, 1, 0, 6, 0, 5, 3, 1, 1, 1,
1645 1, 2, 1, 1, 1, 1, 1, 2, 0, 5,
1646 3, 1, 1, 3, 4, 4, 0, 6, 2, 1,
1647 1, 1, 1, 1, 1, 1, 1, 1, 2, 4,
1648 4, 4, 4, 0, 5, 3, 1, 1, 1, 1,
1649 1, 1, 1, 1, 1, 1, 1, 4, 4, 4,
1650 0, 6, 2, 1, 1, 1, 1, 2, 4, 4,
1651 4, 5, 2, 1, 1, 1, 4, 0, 6, 2,
1652 1, 1, 1, 1, 2, 4, 4, 0, 5, 3,
1653 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1654 1, 0, 6, 2, 1, 1, 1, 2, 4, 0,
1655 5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1656 1, 1, 1, 0, 6, 2, 1, 1, 1, 1,
1657 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1658 1, 2, 4, 4, 4, 4, 4, 4, 4, 4,
1659 4, 0, 5, 3, 1, 1, 1, 4, 4, 4,
1660 4, 4, 0, 6, 2, 1, 1, 1, 1, 4,
1661 4, 0, 6, 2, 1, 1, 1, 1, 4, 4,
1662 5, 2, 1, 1, 1, 4, 0, 6, 2, 1,
1663 1, 1, 1, 4, 4, 5, 2, 1, 1, 1,
1664 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1665 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1666 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1667 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1668 1, 1, 1, 1, 1, 1, 1, 1, 4, 4,
1669 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1670 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1671 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1672 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
1673 4, 4, 4, 4, 0, 5, 3, 1, 1, 1,
1674 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1675 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1676 5, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1677 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1678 1, 1, 1, 1, 4, 4, 4, 5, 2, 1,
1679 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1680 1, 1, 1, 4, 4, 4, 4, 4, 4, 4,
1681 4, 4, 4, 4, 4, 5, 2, 1, 1, 1,
1682 1, 1, 1, 1, 1, 1, 1, 4, 4, 4,
1683 4, 4, 4, 4, 4
1684 };
1685
1686 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
1687 Performed when YYTABLE doesn't specify something else to do. Zero
1688 means the default is an error. */
1689 static const yytype_uint16 yydefact[] =
1690 {
1691 2, 0, 1, 0, 0, 0, 220, 383, 431, 0,
1692 446, 0, 286, 422, 262, 0, 107, 145, 320, 0,
1693 0, 361, 0, 0, 337, 3, 23, 11, 4, 24,
1694 5, 6, 8, 9, 10, 13, 14, 15, 16, 17,
1695 18, 19, 20, 22, 21, 7, 12, 25, 26, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698 0, 0, 0, 0, 0, 99, 100, 102, 101, 622,
1699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700 0, 0, 0, 609, 621, 611, 612, 613, 614, 610,
1701 615, 616, 617, 618, 619, 620, 0, 0, 0, 444,
1702 0, 0, 442, 443, 0, 507, 0, 0, 0, 0,
1703 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1704 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705 0, 0, 0, 579, 0, 554, 0, 0, 0, 0,
1706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707 0, 0, 0, 0, 0, 0, 457, 504, 506, 498,
1708 499, 500, 501, 502, 497, 468, 458, 459, 460, 461,
1709 462, 463, 464, 465, 466, 467, 494, 469, 470, 503,
1710 472, 477, 478, 473, 475, 474, 488, 489, 476, 479,
1711 480, 481, 482, 471, 484, 485, 486, 505, 495, 496,
1712 493, 487, 483, 491, 492, 490, 0, 0, 0, 0,
1713 0, 0, 0, 45, 46, 47, 0, 0, 0, 646,
1714 0, 0, 0, 0, 0, 0, 0, 0, 0, 637,
1715 638, 639, 640, 641, 644, 642, 643, 645, 0, 0,
1716 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717 0, 0, 0, 0, 0, 0, 0, 53, 68, 69,
1718 67, 64, 63, 70, 54, 66, 57, 58, 59, 55,
1719 65, 60, 61, 62, 56, 0, 0, 0, 0, 118,
1720 119, 120, 0, 335, 0, 0, 333, 334, 0, 103,
1721 0, 0, 0, 0, 98, 0, 0, 0, 0, 0,
1722 0, 0, 0, 0, 0, 0, 0, 0, 608, 0,
1723 0, 0, 0, 256, 0, 0, 0, 0, 0, 0,
1724 0, 0, 0, 0, 0, 0, 0, 223, 224, 227,
1725 229, 230, 231, 232, 233, 234, 235, 236, 225, 226,
1726 228, 237, 238, 239, 0, 0, 0, 0, 0, 0,
1727 0, 411, 0, 0, 0, 0, 0, 0, 0, 0,
1728 386, 387, 388, 389, 390, 391, 392, 394, 393, 396,
1729 400, 397, 398, 399, 395, 437, 0, 0, 0, 434,
1730 435, 436, 0, 0, 441, 452, 0, 0, 0, 449,
1731 450, 451, 0, 0, 0, 0, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736 0, 0, 456, 0, 0, 0, 303, 0, 0, 0,
1737 0, 0, 0, 289, 290, 291, 292, 297, 293, 294,
1738 295, 296, 428, 0, 0, 0, 425, 426, 427, 0,
1739 0, 0, 264, 0, 274, 0, 272, 273, 275, 276,
1740 48, 0, 0, 0, 44, 0, 0, 0, 0, 110,
1741 111, 112, 0, 0, 0, 193, 0, 0, 0, 0,
1742 0, 168, 0, 0, 148, 149, 150, 151, 154, 155,
1743 156, 157, 153, 152, 158, 0, 0, 0, 0, 0,
1744 323, 324, 325, 326, 0, 0, 0, 0, 0, 0,
1745 0, 0, 0, 636, 71, 0, 0, 0, 0, 0,
1746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747 0, 0, 0, 52, 0, 0, 369, 0, 364, 365,
1748 366, 121, 0, 0, 117, 0, 0, 0, 332, 0,
1749 0, 347, 0, 0, 340, 341, 342, 343, 0, 0,
1750 0, 97, 0, 0, 0, 0, 27, 0, 0, 0,
1751 0, 0, 0, 0, 0, 607, 240, 0, 0, 0,
1752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753 0, 0, 0, 0, 222, 401, 0, 0, 0, 0,
1754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755 0, 385, 0, 0, 0, 433, 0, 440, 0, 0,
1756 0, 448, 0, 0, 0, 0, 0, 0, 0, 0,
1757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1760 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761 0, 0, 0, 455, 298, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 288, 0, 0, 0, 424, 277,
1763 0, 0, 0, 0, 0, 271, 0, 0, 43, 113,
1764 0, 0, 0, 109, 159, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 147, 327, 0, 0,
1766 0, 0, 322, 0, 0, 0, 0, 0, 0, 0,
1767 0, 635, 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 76, 77, 0, 75, 80,
1769 81, 0, 79, 0, 0, 51, 367, 0, 0, 0,
1770 363, 0, 116, 0, 0, 331, 344, 0, 0, 0,
1771 0, 339, 106, 105, 104, 630, 629, 623, 633, 27,
1772 27, 27, 27, 27, 27, 27, 29, 28, 634, 624,
1773 625, 628, 627, 626, 631, 632, 0, 0, 0, 0,
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775 37, 0, 0, 221, 0, 0, 0, 0, 0, 0,
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 384,
1777 0, 0, 432, 445, 0, 0, 447, 520, 524, 539,
1778 509, 606, 552, 546, 549, 519, 511, 510, 513, 514,
1779 512, 527, 517, 518, 528, 516, 523, 522, 521, 547,
1780 508, 604, 605, 543, 589, 583, 600, 584, 585, 586,
1781 594, 603, 587, 597, 601, 590, 602, 595, 591, 596,
1782 588, 599, 593, 592, 598, 0, 582, 545, 563, 558,
1783 575, 559, 560, 561, 569, 578, 562, 572, 576, 565,
1784 577, 570, 566, 571, 564, 574, 568, 567, 573, 0,
1785 557, 540, 538, 541, 551, 542, 530, 536, 537, 534,
1786 535, 531, 532, 533, 550, 553, 515, 544, 526, 525,
1787 548, 529, 0, 0, 0, 0, 0, 0, 0, 0,
1788 287, 0, 0, 423, 0, 0, 0, 282, 278, 281,
1789 263, 49, 50, 0, 0, 108, 0, 0, 0, 0,
1790 0, 0, 0, 0, 0, 0, 146, 0, 0, 0,
1791 321, 648, 647, 653, 651, 654, 649, 650, 652, 88,
1792 96, 87, 94, 95, 86, 90, 89, 83, 82, 84,
1793 93, 85, 72, 0, 73, 0, 91, 92, 0, 0,
1794 362, 122, 0, 0, 0, 134, 0, 126, 127, 129,
1795 128, 336, 0, 0, 0, 338, 30, 31, 32, 33,
1796 34, 35, 36, 251, 252, 244, 261, 260, 0, 259,
1797 246, 248, 255, 247, 245, 254, 241, 253, 243, 242,
1798 37, 37, 37, 39, 38, 249, 250, 406, 409, 410,
1799 420, 417, 403, 418, 415, 416, 0, 414, 419, 402,
1800 408, 405, 407, 421, 404, 438, 439, 453, 454, 580,
1801 0, 555, 0, 301, 302, 311, 308, 313, 309, 310,
1802 316, 312, 314, 307, 315, 0, 306, 300, 319, 318,
1803 317, 299, 430, 429, 285, 284, 269, 270, 268, 0,
1804 267, 0, 0, 0, 114, 115, 167, 163, 212, 200,
1805 209, 208, 198, 203, 219, 211, 217, 202, 205, 214,
1806 216, 213, 210, 218, 206, 215, 204, 207, 0, 196,
1807 160, 162, 164, 165, 166, 177, 172, 189, 173, 174,
1808 175, 183, 192, 176, 186, 190, 179, 191, 184, 180,
1809 185, 178, 188, 182, 181, 187, 0, 171, 161, 330,
1810 328, 329, 74, 78, 368, 373, 379, 382, 375, 381,
1811 376, 380, 378, 374, 377, 0, 372, 130, 0, 0,
1812 0, 0, 125, 345, 351, 357, 360, 353, 359, 354,
1813 358, 356, 352, 355, 0, 350, 346, 257, 0, 40,
1814 41, 42, 412, 0, 581, 556, 304, 0, 265, 0,
1815 283, 280, 279, 0, 0, 0, 194, 0, 169, 0,
1816 370, 0, 0, 0, 0, 0, 124, 348, 0, 258,
1817 413, 305, 266, 199, 197, 201, 195, 170, 371, 131,
1818 133, 132, 140, 143, 142, 139, 144, 141, 138, 0,
1819 137, 349, 135, 0, 136
1820 };
1821
1822 /* YYDEFGOTO[NTERM-NUM]. */
1823 static const yytype_int16 yydefgoto[] =
1824 {
1825 -1, 1, 25, 816, 817, 1073, 1074, 26, 222, 223,
1826 224, 225, 27, 266, 267, 268, 269, 777, 778, 781,
1827 782, 270, 271, 272, 273, 274, 275, 276, 277, 278,
1828 279, 280, 281, 282, 283, 284, 28, 74, 75, 76,
1829 77, 78, 29, 61, 498, 499, 500, 501, 30, 288,
1830 289, 290, 291, 292, 1036, 1037, 1038, 1039, 1040, 1210,
1831 1279, 1280, 31, 62, 513, 514, 515, 516, 517, 518,
1832 519, 520, 521, 522, 523, 743, 1186, 1187, 524, 737,
1833 1158, 1159, 32, 51, 336, 337, 338, 339, 340, 341,
1834 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
1835 352, 353, 610, 1058, 1059, 33, 59, 484, 722, 1129,
1836 1130, 485, 486, 487, 1133, 978, 979, 488, 489, 34,
1837 57, 462, 463, 464, 465, 466, 467, 468, 707, 1115,
1838 1116, 469, 470, 471, 35, 63, 529, 530, 531, 532,
1839 533, 36, 295, 296, 297, 37, 69, 583, 584, 585,
1840 586, 587, 798, 1224, 1225, 38, 66, 567, 568, 569,
1841 570, 788, 1205, 1206, 39, 52, 369, 370, 371, 372,
1842 373, 374, 375, 376, 377, 378, 379, 632, 1086, 1087,
1843 380, 381, 382, 383, 384, 40, 58, 475, 476, 477,
1844 478, 41, 53, 388, 389, 390, 391, 42, 111, 112,
1845 113, 43, 55, 398, 399, 400, 401, 44, 165, 166,
1846 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
1847 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
1848 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
1849 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
1850 207, 208, 209, 210, 211, 431, 939, 940, 212, 429,
1851 915, 916, 213, 214, 215, 45, 92, 93, 94, 95,
1852 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
1853 46, 238, 239, 240, 241, 242, 243, 244, 245, 246,
1854 247
1855 };
1856
1857 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
1858 STATE-NUM. */
1859 #define YYPACT_NINF -755
1860 static const yytype_int16 yypact[] =
1861 {
1862 -755, 716, -755, -198, -223, -208, -755, -755, -755, -186,
1863 -755, -184, -755, -755, -755, -179, -755, -755, -755, -168,
1864 -154, -755, -146, -123, -755, -755, -755, -755, -755, -755,
1865 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1866 -755, -755, -755, -755, -755, -755, -755, -755, -755, 282,
1867 923, -84, -59, -46, 130, -45, 414, -39, -26, -19,
1868 79, -18, -11, 21, 503, 408, 40, 39, 53, 41,
1869 -14, -1, 64, 66, 7, -755, -755, -755, -755, -755,
1870 81, 82, 96, 100, 102, 104, 105, 117, 119, 121,
1871 127, 128, 13, -755, -755, -755, -755, -755, -755, -755,
1872 -755, -755, -755, -755, -755, -755, 706, 577, 61, -755,
1873 131, 10, -755, -755, 36, -755, 132, 133, 135, 139,
1874 141, 142, 143, 144, 146, 148, 151, 153, 157, 158,
1875 160, 162, 164, 165, 166, 168, 170, 180, 182, 183,
1876 187, 188, 189, -755, 192, -755, 193, 195, 197, 198,
1877 199, 200, 201, 202, 206, 207, 208, 209, 212, 213,
1878 216, 217, 219, 221, 222, 108, -755, -755, -755, -755,
1879 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1880 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1881 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1882 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1883 -755, -755, -755, -755, -755, -755, 353, 8, 292, 29,
1884 223, 227, 24, -755, -755, -755, 22, 546, 47, -755,
1885 231, 236, 237, 240, 246, 248, 251, 253, 15, -755,
1886 -755, -755, -755, -755, -755, -755, -755, -755, 60, 254,
1887 255, 257, 259, 260, 262, 263, 265, 266, 272, 288,
1888 291, 293, 294, 303, 305, 306, 9, -755, -755, -755,
1889 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1890 -755, -755, -755, -755, -755, 4, 65, 307, 19, -755,
1891 -755, -755, 155, -755, 308, 23, -755, -755, 62, -755,
1892 215, 352, 365, 270, -755, 252, 431, 333, 436, 437,
1893 437, 437, 438, 440, 443, 349, 355, 335, -755, 339,
1894 337, 344, 346, -755, 351, 354, 357, 359, 360, 362,
1895 366, 367, 368, 369, 370, 372, 258, -755, -755, -755,
1896 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1897 -755, -755, -755, -755, 356, 373, 377, 378, 381, 382,
1898 383, -755, 384, 385, 386, 387, 388, 390, 391, 326,
1899 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1900 -755, -755, -755, -755, -755, -755, 392, 393, 69, -755,
1901 -755, -755, 462, 397, -755, -755, 406, 407, 48, -755,
1902 -755, -755, 417, 437, 437, 428, 487, 432, 533, 520,
1903 435, 437, 439, 538, 539, 437, 540, 441, 445, 446,
1904 437, 545, 549, 437, 550, 551, 552, 553, 452, 433,
1905 455, 442, 456, 437, 437, 457, 458, 459, 58, 95,
1906 460, 461, 464, 554, 437, 466, 468, 437, 437, 469,
1907 471, 463, -755, 465, 453, 454, -755, 472, 473, 474,
1908 476, 480, 163, -755, -755, -755, -755, -755, -755, -755,
1909 -755, -755, -755, 481, 482, 50, -755, -755, -755, 467,
1910 484, 485, -755, 488, -755, 25, -755, -755, -755, -755,
1911 -755, 559, 562, 496, -755, 497, 499, 501, 18, -755,
1912 -755, -755, 508, 506, 507, -755, 509, 511, 512, 514,
1913 515, -755, 516, 14, -755, -755, -755, -755, -755, -755,
1914 -755, -755, -755, -755, -755, 521, 519, 523, 526, 11,
1915 -755, -755, -755, -755, 477, 478, 479, 563, 483, 528,
1916 547, 437, 531, -755, -755, 572, 555, 603, 651, 652,
1917 638, 639, 641, 643, 644, 647, 663, 649, -99, -42,
1918 653, 654, 548, -755, 557, 544, -755, 73, -755, -755,
1919 -755, -755, 569, 558, -755, 564, 657, 570, -755, 574,
1920 556, -755, 566, 27, -755, -755, -755, -755, 575, 576,
1921 578, -755, 579, 580, 582, 583, 267, 584, 587, 590,
1922 591, 592, 593, 597, 605, -755, -755, 673, 674, 437,
1923 604, 734, 736, 437, 737, 738, 437, 727, 747, 749,
1924 437, 751, 751, 636, -755, -755, 750, 129, 752, 667,
1925 755, 758, 640, 762, 764, 781, 767, 769, 771, 775,
1926 672, -755, 777, 778, 676, -755, 677, -755, 790, 793,
1927 693, -755, 694, 696, 701, 704, 705, 708, 709, 710,
1928 714, 715, 717, 722, 723, 725, 728, 729, 730, 731,
1929 732, 733, 735, 739, 740, 741, 742, 743, 744, 660,
1930 745, 703, 748, 753, 754, 756, 757, 759, 760, 770,
1931 772, 773, 780, 782, 783, 784, 785, 788, 789, 791,
1932 792, 794, 795, -755, -755, 807, 763, 713, 810, 853,
1933 841, 842, 851, 796, -755, 854, 855, 797, -755, -755,
1934 856, 859, 761, 868, 798, -755, 799, 802, -755, -755,
1935 862, 873, 803, -755, -755, 875, 804, 774, 882, 885,
1936 894, 897, 821, 805, 909, 806, -755, -755, 911, 913,
1937 914, 811, -755, 812, 813, 814, 815, 816, 817, 818,
1938 819, -755, 820, 822, 823, 824, 825, 826, 827, 828,
1939 829, 830, 831, 832, 833, -755, -755, -209, -755, -755,
1940 -755, -189, -755, 834, 835, -755, -755, 925, 836, 837,
1941 -755, 838, -755, 26, 840, -755, -755, 940, 839, 945,
1942 843, -755, -755, -755, -755, -755, -755, -755, -755, 437,
1943 437, 437, 437, 437, 437, 437, -755, -755, -755, -755,
1944 -755, -755, -755, -755, -755, -755, 844, 845, 846, -34,
1945 847, 848, 849, 850, 852, 857, 858, 860, 861, 863,
1946 289, 864, 865, -755, 866, 867, 869, 870, 871, 872,
1947 874, 5, 876, 877, 878, 879, 880, 881, 883, -755,
1948 884, 886, -755, -755, 887, 888, -755, -755, -755, -755,
1949 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1950 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1951 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1952 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1953 -755, -755, -755, -755, -755, -174, -755, -755, -755, -755,
1954 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1955 -755, -755, -755, -755, -755, -755, -755, -755, -755, -172,
1956 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1957 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1958 -755, -755, 889, 890, 245, 891, 892, 893, 895, 896,
1959 -755, 898, 899, -755, 900, 901, -16, 904, 902, -755,
1960 -755, -755, -755, 903, 905, -755, 907, 908, 524, 910,
1961 912, 915, 916, 917, 746, 918, -755, 919, 920, 921,
1962 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1963 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1964 -755, -755, -755, -99, -755, -42, -755, -755, 922, 632,
1965 -755, -755, 924, 906, 926, -755, 57, -755, -755, -755,
1966 -755, -755, 927, 787, 928, -755, -755, -755, -755, -755,
1967 -755, -755, -755, -755, -755, -755, -755, -755, -171, -755,
1968 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1969 751, 751, 751, -755, -755, -755, -755, -755, -755, -755,
1970 -755, -755, -755, -755, -755, -755, -155, -755, -755, -755,
1971 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1972 660, -755, 703, -755, -755, -755, -755, -755, -755, -755,
1973 -755, -755, -755, -755, -755, -50, -755, -755, -755, -755,
1974 -755, -755, -755, -755, -755, -755, -755, -755, -755, -49,
1975 -755, 970, 868, 930, -755, -755, -755, -755, -755, 929,
1976 -755, -755, 931, -755, -755, -755, -755, 932, -755, -755,
1977 -755, -755, -755, -755, -755, -755, -755, -755, -23, -755,
1978 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1979 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1980 -755, -755, -755, -755, -755, -755, -15, -755, -755, -755,
1981 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1982 -755, -755, -755, -755, -755, 0, -755, -755, 957, -101,
1983 935, 933, -755, -755, -755, -755, -755, -755, -755, -755,
1984 -755, -755, -755, -755, 30, -755, -755, -755, -34, -755,
1985 -755, -755, -755, 5, -755, -755, -755, 245, -755, -16,
1986 -755, -755, -755, 952, 953, 954, -755, 524, -755, 746,
1987 -755, 632, 939, 941, 942, 297, -755, -755, 787, -755,
1988 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1989 -755, -755, -755, -755, -755, -755, -755, -755, -755, 55,
1990 -755, -755, -755, 297, -755
1991 };
1992
1993 /* YYPGOTO[NTERM-NUM]. */
1994 static const yytype_int16 yypgoto[] =
1995 {
1996 -755, -755, -755, -298, -307, -754, -621, -755, -755, 936,
1997 -755, -755, -755, -755, 934, -755, -755, -755, 63, -755,
1998 70, -755, -755, -755, -755, -755, -755, -755, -755, -755,
1999 -755, -755, -755, -755, -755, -755, -755, -755, 1015, -755,
2000 -755, -755, -755, -755, -755, 602, -755, -755, -755, -755,
2001 937, -755, -755, -755, -755, 76, -755, -755, -755, -755,
2002 -755, -181, -755, -755, -755, 596, -755, -755, -755, -755,
2003 -755, -755, -755, -755, -755, -755, -755, -125, -755, -755,
2004 -755, -118, -755, -755, -755, 938, -755, -755, -755, -755,
2005 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
2006 -755, -755, -755, -755, -97, -755, -755, -755, -755, -755,
2007 -98, -755, 655, -755, -755, -755, 6, -755, -755, -755,
2008 -755, -755, 688, -755, -755, -755, -755, -755, -755, -755,
2009 -85, -755, -755, -755, -755, -755, -755, 624, -755, -755,
2010 -755, -755, -755, 943, -755, -755, -755, -755, 588, -755,
2011 -755, -755, -755, -755, -96, -755, -755, -755, 600, -755,
2012 -755, -755, -755, -92, -755, -755, -755, 801, -755, -755,
2013 -755, -755, -755, -755, -755, -755, -755, -755, -755, -61,
2014 -755, -755, -755, -755, -755, -755, -755, -755, 698, -755,
2015 -755, -755, -755, -755, 786, -755, -755, -755, -755, 1064,
2016 -755, -755, -755, -755, 779, -755, -755, -755, -755, 1011,
2017 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
2018 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
2019 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
2020 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
2021 -755, -755, -755, -755, -755, -755, -755, 77, -755, -755,
2022 -755, 78, -755, -755, -755, -755, -755, 1088, -755, -755,
2023 -755, -755, -755, -755, -755, -755, -755, -755, -755, -755,
2024 -755, -755, 944, -755, -755, -755, -755, -755, -755, -755,
2025 -755
2026 };
2027
2028 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
2029 positive, shift that token. If negative, reduce the rule which
2030 number is the opposite. If YYTABLE_NINF, syntax error. */
2031 #define YYTABLE_NINF -124
2032 static const yytype_int16 yytable[] =
2033 {
2034 841, 842, 597, 598, 599, 564, 49, 840, 70, 472,
2035 248, 109, 525, 1084, 79, 502, 229, 1056, 1022, 495,
2036 286, 50, 1023, 495, 293, 219, 479, 1032, 579, 47,
2037 48, 503, 71, 1126, 249, 80, 81, 395, 1024, 72,
2038 286, 82, 1025, 54, 230, 56, 526, 504, 525, 395,
2039 60, 472, 231, 1099, 293, 1101, 1227, 1100, 1032, 1102,
2040 1228, 64, 385, 579, 232, 233, 250, 234, 235, 236,
2041 385, 110, 1232, 251, 564, 65, 1233, 505, 83, 84,
2042 219, 480, 526, 67, 85, 86, 481, 527, 482, 237,
2043 1057, 87, 88, 89, 496, 252, 653, 654, 496, 253,
2044 775, 776, 565, 1253, 661, 73, 68, 254, 665, 115,
2045 255, 256, 506, 670, 116, 117, 673, 90, 91, 220,
2046 118, 294, 386, 527, 1033, 580, 683, 684, 119, 120,
2047 386, 109, 507, 473, 396, 121, 528, 696, 122, 123,
2048 699, 700, 257, 221, 124, 106, 396, 483, 508, 125,
2049 126, 294, 127, 128, 129, 1033, 130, 779, 780, 258,
2050 580, 397, 259, 131, 453, 509, 510, 132, 133, 1127,
2051 107, 565, 528, 397, 220, 473, 134, 1236, 1238, 1128,
2052 454, 1237, 1239, 108, 114, 135, 387, 260, 497, -123,
2053 216, 110, 497, 136, 387, 137, 455, 138, 221, 139,
2054 1085, 140, 141, 217, 1246, 261, 262, 263, 1247, -123,
2055 218, 226, 1248, 299, 142, 511, 1249, 1034, 227, 143,
2056 144, 145, 566, 146, 147, 148, 456, 1250, 149, 300,
2057 474, 1251, 264, 265, 760, 303, 512, 562, 393, 751,
2058 287, 317, 745, 542, 1035, 581, 732, 573, 1034, 582,
2059 228, 577, 493, 724, 150, 800, 490, 1257, 1105, 319,
2060 287, 1258, 151, 152, 153, 154, 155, 156, 688, 285,
2061 298, 689, 474, 320, 321, 1035, 650, 322, 717, 1106,
2062 581, 457, 1282, 70, 582, 1211, 1283, 544, 1107, 458,
2063 459, 566, 571, 479, 301, 157, 302, 644, 1070, 1071,
2064 1072, 789, 828, 845, 846, 690, 832, 71, 691, 835,
2065 460, 305, 306, 839, 72, 1108, 1229, 1230, 1231, 158,
2066 159, 323, 160, 161, 162, 575, 307, 354, 163, 355,
2067 308, 356, 309, 164, 310, 311, 451, 1272, 588, 324,
2068 325, 326, 327, 357, 1109, 1110, 328, 312, 480, 313,
2069 329, 314, 1111, 481, 453, 482, 330, 315, 316, 358,
2070 592, 392, 402, 403, 1273, 404, 1274, 331, 332, 405,
2071 454, 406, 407, 408, 409, 596, 410, 1112, 411, 333,
2072 73, 412, 359, 413, 360, 461, 455, 414, 415, 361,
2073 416, 713, 417, 1113, 418, 419, 420, 840, 421, 362,
2074 422, 334, 809, 810, 811, 812, 813, 814, 815, 248,
2075 423, 1275, 424, 425, 483, 115, 456, 426, 427, 428,
2076 116, 117, 430, 432, 363, 433, 118, 434, 435, 436,
2077 437, 438, 439, 249, 119, 120, 440, 441, 442, 443,
2078 335, 121, 444, 445, 122, 123, 446, 447, 364, 448,
2079 124, 449, 450, 491, 1114, 125, 126, 492, 127, 128,
2080 129, 534, 130, 1276, 1277, 250, 535, 536, 365, 131,
2081 537, 457, 251, 132, 133, 589, 538, 366, 539, 458,
2082 459, 540, 134, 541, 545, 546, 623, 547, 590, 548,
2083 549, 135, 550, 551, 252, 552, 553, 591, 253, 136,
2084 460, 137, 554, 138, 229, 139, 254, 140, 141, 255,
2085 256, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 555, 1278,
2086 142, 556, 367, 557, 558, 143, 144, 145, 1138, 146,
2087 147, 148, 230, 559, 149, 560, 561, 572, 576, 593,
2088 231, 257, 1139, 594, 595, 596, 600, 502, 601, 368,
2089 1140, 602, 232, 233, 640, 234, 235, 236, 258, 603,
2090 150, 259, 605, 503, 1141, 604, 606, 607, 151, 152,
2091 153, 154, 155, 156, 608, 461, 609, 237, 354, 504,
2092 355, 611, 356, 625, 612, 646, 260, 613, 1254, 614,
2093 615, 1142, 616, 1143, 357, 656, 617, 618, 619, 620,
2094 621, 157, 622, 626, 261, 262, 263, 627, 628, 505,
2095 358, 629, 630, 631, 633, 634, 635, 636, 637, 1144,
2096 638, 639, 642, 643, 647, 158, 159, 652, 160, 161,
2097 162, 264, 265, 359, 163, 360, 648, 649, 655, 164,
2098 361, 658, 657, 659, 506, 660, 663, 664, 666, 662,
2099 362, 667, 1145, 671, 1146, 668, 669, 672, 674, 675,
2100 676, 677, 678, 679, 507, 680, 682, 685, 686, 687,
2101 692, 693, 681, 1147, 694, 363, 697, 695, 698, 701,
2102 508, 702, 726, 705, 706, 727, 756, 753, 754, 755,
2103 703, 1148, 704, 757, 719, 762, 1149, 509, 510, 364,
2104 1150, 1195, 708, 709, 710, 1151, 711, 319, 1152, 894,
2105 712, 715, 716, 1153, 720, 721, 2, 3, 723, 365,
2106 4, 320, 321, 728, 729, 322, 764, 1154, 366, 730,
2107 5, 731, 1155, 6, 7, 734, 735, 736, 758, 738,
2108 8, 739, 740, 1156, 741, 742, 744, 511, 747, 748,
2109 1157, 9, 918, 749, 10, 11, 750, 759, 761, 765,
2110 766, 767, 768, 1196, 769, 763, 770, 771, 512, 323,
2111 772, 773, 774, 367, 787, 785, 783, 784, 12, 791,
2112 794, 826, 827, 13, 786, 792, 797, 324, 325, 326,
2113 327, 14, 1197, 793, 328, 1165, 799, 795, 329, 1198,
2114 368, 796, 802, 803, 330, 804, 805, 806, 1199, 807,
2115 808, 818, 15, 16, 819, 331, 332, 820, 821, 822,
2116 823, 895, 896, 897, 824, 898, 899, 333, 900, 901,
2117 17, 902, 825, 903, 829, 1200, 904, 1201, 1202, 905,
2118 906, 907, 830, 908, 831, 833, 834, 18, 909, 334,
2119 836, 1203, 910, 911, 912, 837, 1214, 838, 1204, 840,
2120 19, 20, 913, 843, 919, 920, 921, 914, 922, 923,
2121 851, 924, 925, 844, 926, 847, 927, 848, 849, 928,
2122 21, 850, 929, 930, 931, 852, 932, 853, 335, 854,
2123 855, 933, 856, 22, 857, 934, 935, 936, 858, 859,
2124 860, 861, 23, 862, 863, 937, 24, 1166, 1167, 1168,
2125 938, 1169, 1170, 864, 1171, 1172, 865, 1173, 1215, 1174,
2126 866, 867, 1175, 868, 79, 1176, 1177, 1178, 869, 1179,
2127 962, 870, 871, 965, 1180, 872, 873, 874, 1181, 1182,
2128 1183, 875, 876, 964, 877, 80, 81, 1216, 1184, 878,
2129 879, 82, 880, 1185, 1217, 881, 882, 883, 884, 885,
2130 886, 966, 887, 1218, 967, 968, 888, 889, 890, 891,
2131 892, 893, 917, 963, 969, 941, 977, 971, 972, 974,
2132 942, 943, 975, 944, 945, 983, 946, 947, 83, 84,
2133 1219, 976, 1220, 1221, 85, 86, 984, 948, 986, 949,
2134 950, 87, 88, 89, 988, 989, 1222, 951, 990, 952,
2135 953, 954, 955, 1223, 987, 956, 957, 991, 958, 959,
2136 992, 960, 961, 970, 973, 980, 981, 90, 91, 982,
2137 985, 993, 995, 996, 997, 994, 998, 999, 1000, 1001,
2138 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1028, 1010,
2139 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
2140 1021, 1026, 1027, 1042, 1030, 1031, 1029, 1041, 1044, 1043,
2141 1045, 1053, 1054, 1055, 1060, 1061, 1062, 1063, 1240, 1064,
2142 1252, 1263, 1264, 1265, 1065, 1066, 1192, 1067, 1068, 304,
2143 1069, 1075, 1076, 1077, 1078, 1193, 1079, 1080, 1081, 1082,
2144 733, 1083, 1284, 1088, 1089, 1090, 1091, 1092, 1093, 746,
2145 1094, 1095, 1212, 1096, 1097, 1098, 1103, 1104, 1117, 1118,
2146 1119, 1131, 1120, 1121, 1267, 1122, 1123, 1124, 1125, 1266,
2147 1134, 1259, 1135, 1132, 1136, 1137, 1208, 1160, 1241, 1161,
2148 725, 1262, 1162, 1163, 1164, 1188, 1189, 1190, 1191, 1194,
2149 714, 1207, 1261, 752, 1213, 1226, 1209, 1242, 494, 1268,
2150 1256, 1243, 1281, 1244, 1245, 1255, 1269, 790, 1270, 1271,
2151 641, 801, 1260, 718, 645, 394, 452, 651, 1234, 1235,
2152 318, 0, 543, 0, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2154 563, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2156 0, 0, 0, 0, 0, 574, 0, 0, 0, 0,
2157 0, 0, 0, 0, 0, 0, 0, 0, 578, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2161 0, 0, 0, 0, 624
2162 };
2163
2164 #define yypact_value_is_default(Yystate) \
2165 (!!((Yystate) == (-755)))
2166
2167 #define yytable_value_is_error(Yytable_value) \
2168 YYID (0)
2169
2170 static const yytype_int16 yycheck[] =
2171 {
2172 621, 622, 309, 310, 311, 1, 229, 108, 1, 1,
2173 1, 1, 1, 8, 1, 1, 1, 51, 227, 1,
2174 1, 229, 231, 1, 1, 1, 1, 1, 1, 227,
2175 228, 17, 25, 49, 25, 22, 23, 1, 227, 32,
2176 1, 28, 231, 229, 29, 229, 35, 33, 1, 1,
2177 229, 1, 37, 227, 1, 227, 227, 231, 1, 231,
2178 231, 229, 1, 1, 49, 50, 57, 52, 53, 54,
2179 1, 61, 227, 64, 1, 229, 231, 63, 65, 66,
2180 1, 56, 35, 229, 71, 72, 61, 76, 63, 74,
2181 124, 78, 79, 80, 76, 86, 403, 404, 76, 90,
2182 199, 200, 98, 204, 411, 98, 229, 98, 415, 1,
2183 101, 102, 98, 420, 6, 7, 423, 104, 105, 95,
2184 12, 98, 61, 76, 98, 98, 433, 434, 20, 21,
2185 61, 1, 118, 125, 98, 27, 125, 444, 30, 31,
2186 447, 448, 133, 119, 36, 229, 98, 122, 134, 41,
2187 42, 98, 44, 45, 46, 98, 48, 199, 200, 150,
2188 98, 125, 153, 55, 1, 151, 152, 59, 60, 185,
2189 229, 98, 125, 125, 95, 125, 68, 227, 227, 195,
2190 17, 231, 231, 229, 229, 77, 125, 178, 170, 170,
2191 229, 61, 170, 85, 125, 87, 33, 89, 119, 91,
2192 195, 93, 94, 229, 227, 196, 197, 198, 231, 170,
2193 229, 229, 227, 227, 106, 201, 231, 191, 229, 111,
2194 112, 113, 218, 115, 116, 117, 63, 227, 120, 230,
2195 222, 231, 223, 224, 541, 228, 222, 228, 228, 228,
2196 221, 228, 228, 228, 218, 218, 228, 228, 191, 222,
2197 229, 228, 228, 228, 146, 228, 227, 227, 13, 1,
2198 221, 231, 154, 155, 156, 157, 158, 159, 210, 229,
2199 229, 213, 222, 15, 16, 218, 228, 19, 228, 34,
2200 218, 118, 227, 1, 222, 228, 231, 227, 43, 126,
2201 127, 218, 227, 1, 230, 187, 230, 228, 9, 10,
2202 11, 228, 609, 174, 175, 210, 613, 25, 213, 616,
2203 147, 230, 230, 620, 32, 70, 1070, 1071, 1072, 211,
2204 212, 63, 214, 215, 216, 170, 230, 1, 220, 3,
2205 230, 5, 230, 225, 230, 230, 228, 40, 123, 81,
2206 82, 83, 84, 17, 99, 100, 88, 230, 56, 230,
2207 92, 230, 107, 61, 1, 63, 98, 230, 230, 33,
2208 108, 230, 230, 230, 67, 230, 69, 109, 110, 230,
2209 17, 230, 230, 230, 230, 108, 230, 132, 230, 121,
2210 98, 230, 56, 230, 58, 222, 33, 230, 230, 63,
2211 230, 228, 230, 148, 230, 230, 230, 108, 230, 73,
2212 230, 143, 135, 136, 137, 138, 139, 140, 141, 1,
2213 230, 114, 230, 230, 122, 1, 63, 230, 230, 230,
2214 6, 7, 230, 230, 98, 230, 12, 230, 230, 230,
2215 230, 230, 230, 25, 20, 21, 230, 230, 230, 230,
2216 182, 27, 230, 230, 30, 31, 230, 230, 122, 230,
2217 36, 230, 230, 230, 209, 41, 42, 230, 44, 45,
2218 46, 230, 48, 166, 167, 57, 230, 230, 142, 55,
2219 230, 118, 64, 59, 60, 123, 230, 151, 230, 126,
2220 127, 230, 68, 230, 230, 230, 228, 230, 123, 230,
2221 230, 77, 230, 230, 86, 230, 230, 227, 90, 85,
2222 147, 87, 230, 89, 1, 91, 98, 93, 94, 101,
2223 102, 809, 810, 811, 812, 813, 814, 815, 230, 222,
2224 106, 230, 196, 230, 230, 111, 112, 113, 4, 115,
2225 116, 117, 29, 230, 120, 230, 230, 230, 230, 108,
2226 37, 133, 18, 210, 108, 108, 108, 1, 108, 223,
2227 26, 108, 49, 50, 228, 52, 53, 54, 150, 210,
2228 146, 153, 227, 17, 40, 210, 227, 230, 154, 155,
2229 156, 157, 158, 159, 230, 222, 230, 74, 1, 33,
2230 3, 230, 5, 227, 230, 123, 178, 230, 1209, 230,
2231 230, 67, 230, 69, 17, 108, 230, 230, 230, 230,
2232 230, 187, 230, 230, 196, 197, 198, 230, 230, 63,
2233 33, 230, 230, 230, 230, 230, 230, 230, 230, 95,
2234 230, 230, 230, 230, 227, 211, 212, 210, 214, 215,
2235 216, 223, 224, 56, 220, 58, 230, 230, 210, 225,
2236 63, 108, 210, 123, 98, 210, 108, 108, 108, 210,
2237 73, 210, 128, 108, 130, 210, 210, 108, 108, 108,
2238 108, 108, 210, 230, 118, 210, 210, 210, 210, 210,
2239 210, 210, 230, 149, 210, 98, 210, 123, 210, 210,
2240 134, 210, 123, 230, 230, 123, 123, 210, 210, 210,
2241 227, 167, 227, 210, 227, 123, 172, 151, 152, 122,
2242 176, 69, 230, 230, 230, 181, 230, 1, 184, 49,
2243 230, 230, 230, 189, 230, 230, 0, 1, 230, 142,
2244 4, 15, 16, 227, 227, 19, 123, 203, 151, 230,
2245 14, 230, 208, 17, 18, 227, 230, 230, 210, 230,
2246 24, 230, 230, 219, 230, 230, 230, 201, 227, 230,
2247 226, 35, 49, 230, 38, 39, 230, 210, 227, 108,
2248 108, 123, 123, 131, 123, 210, 123, 123, 222, 63,
2249 123, 108, 123, 196, 230, 227, 123, 123, 62, 210,
2250 123, 108, 108, 67, 227, 227, 230, 81, 82, 83,
2251 84, 75, 160, 229, 88, 49, 230, 227, 92, 167,
2252 223, 227, 227, 227, 98, 227, 227, 227, 176, 227,
2253 227, 227, 96, 97, 227, 109, 110, 227, 227, 227,
2254 227, 161, 162, 163, 227, 165, 166, 121, 168, 169,
2255 114, 171, 227, 173, 230, 203, 176, 205, 206, 179,
2256 180, 181, 108, 183, 108, 108, 108, 131, 188, 143,
2257 123, 219, 192, 193, 194, 108, 69, 108, 226, 108,
2258 144, 145, 202, 227, 161, 162, 163, 207, 165, 166,
2259 230, 168, 169, 123, 171, 123, 173, 210, 123, 176,
2260 164, 123, 179, 180, 181, 123, 183, 123, 182, 108,
2261 123, 188, 123, 177, 123, 192, 193, 194, 123, 227,
2262 123, 123, 186, 227, 227, 202, 190, 161, 162, 163,
2263 207, 165, 166, 123, 168, 169, 123, 171, 131, 173,
2264 227, 227, 176, 227, 1, 179, 180, 181, 227, 183,
2265 123, 227, 227, 123, 188, 227, 227, 227, 192, 193,
2266 194, 227, 227, 230, 227, 22, 23, 160, 202, 227,
2267 227, 28, 227, 207, 167, 227, 227, 227, 227, 227,
2268 227, 108, 227, 176, 123, 123, 227, 227, 227, 227,
2269 227, 227, 227, 210, 123, 227, 108, 123, 123, 123,
2270 227, 227, 123, 227, 227, 123, 227, 227, 65, 66,
2271 203, 230, 205, 206, 71, 72, 123, 227, 123, 227,
2272 227, 78, 79, 80, 230, 123, 219, 227, 123, 227,
2273 227, 227, 227, 226, 210, 227, 227, 123, 227, 227,
2274 123, 227, 227, 227, 227, 227, 227, 104, 105, 227,
2275 227, 210, 123, 227, 123, 230, 123, 123, 227, 227,
2276 227, 227, 227, 227, 227, 227, 227, 227, 123, 227,
2277 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2278 227, 227, 227, 123, 227, 227, 230, 227, 123, 230,
2279 227, 227, 227, 227, 227, 227, 227, 227, 108, 227,
2280 123, 129, 129, 129, 227, 227, 1023, 227, 227, 74,
2281 227, 227, 227, 227, 227, 1025, 227, 227, 227, 227,
2282 498, 227, 1283, 227, 227, 227, 227, 227, 227, 513,
2283 227, 227, 1036, 227, 227, 227, 227, 227, 227, 227,
2284 227, 217, 227, 227, 1249, 227, 227, 227, 227, 1247,
2285 227, 1228, 227, 231, 227, 227, 230, 227, 1132, 227,
2286 485, 1239, 227, 227, 227, 227, 227, 227, 227, 227,
2287 462, 227, 1237, 529, 227, 227, 230, 227, 222, 1251,
2288 227, 232, 1258, 232, 232, 230, 227, 567, 227, 227,
2289 369, 583, 1233, 475, 388, 111, 165, 398, 1100, 1102,
2290 92, -1, 238, -1, -1, -1, -1, -1, -1, -1,
2291 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2292 266, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2293 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2294 -1, -1, -1, -1, -1, 288, -1, -1, -1, -1,
2295 -1, -1, -1, -1, -1, -1, -1, -1, 295, -1,
2296 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2297 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2298 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2299 -1, -1, -1, -1, 336
2300 };
2301
2302 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2303 symbol of state STATE-NUM. */
2304 static const yytype_uint16 yystos[] =
2305 {
2306 0, 234, 0, 1, 4, 14, 17, 18, 24, 35,
2307 38, 39, 62, 67, 75, 96, 97, 114, 131, 144,
2308 145, 164, 177, 186, 190, 235, 240, 245, 269, 275,
2309 281, 295, 315, 338, 352, 367, 374, 378, 388, 397,
2310 418, 424, 430, 434, 440, 498, 513, 227, 228, 229,
2311 229, 316, 398, 425, 229, 435, 229, 353, 419, 339,
2312 229, 276, 296, 368, 229, 229, 389, 229, 229, 379,
2313 1, 25, 32, 98, 270, 271, 272, 273, 274, 1,
2314 22, 23, 28, 65, 66, 71, 72, 78, 79, 80,
2315 104, 105, 499, 500, 501, 502, 503, 504, 505, 506,
2316 507, 508, 509, 510, 511, 512, 229, 229, 229, 1,
2317 61, 431, 432, 433, 229, 1, 6, 7, 12, 20,
2318 21, 27, 30, 31, 36, 41, 42, 44, 45, 46,
2319 48, 55, 59, 60, 68, 77, 85, 87, 89, 91,
2320 93, 94, 106, 111, 112, 113, 115, 116, 117, 120,
2321 146, 154, 155, 156, 157, 158, 159, 187, 211, 212,
2322 214, 215, 216, 220, 225, 441, 442, 443, 444, 445,
2323 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
2324 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
2325 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
2326 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
2327 486, 487, 491, 495, 496, 497, 229, 229, 229, 1,
2328 95, 119, 241, 242, 243, 244, 229, 229, 229, 1,
2329 29, 37, 49, 50, 52, 53, 54, 74, 514, 515,
2330 516, 517, 518, 519, 520, 521, 522, 523, 1, 25,
2331 57, 64, 86, 90, 98, 101, 102, 133, 150, 153,
2332 178, 196, 197, 198, 223, 224, 246, 247, 248, 249,
2333 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
2334 264, 265, 266, 267, 268, 229, 1, 221, 282, 283,
2335 284, 285, 286, 1, 98, 375, 376, 377, 229, 227,
2336 230, 230, 230, 228, 271, 230, 230, 230, 230, 230,
2337 230, 230, 230, 230, 230, 230, 230, 228, 500, 1,
2338 15, 16, 19, 63, 81, 82, 83, 84, 88, 92,
2339 98, 109, 110, 121, 143, 182, 317, 318, 319, 320,
2340 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
2341 331, 332, 333, 334, 1, 3, 5, 17, 33, 56,
2342 58, 63, 73, 98, 122, 142, 151, 196, 223, 399,
2343 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
2344 413, 414, 415, 416, 417, 1, 61, 125, 426, 427,
2345 428, 429, 230, 228, 432, 1, 98, 125, 436, 437,
2346 438, 439, 230, 230, 230, 230, 230, 230, 230, 230,
2347 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
2348 230, 230, 230, 230, 230, 230, 230, 230, 230, 492,
2349 230, 488, 230, 230, 230, 230, 230, 230, 230, 230,
2350 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
2351 230, 228, 442, 1, 17, 33, 63, 118, 126, 127,
2352 147, 222, 354, 355, 356, 357, 358, 359, 360, 364,
2353 365, 366, 1, 125, 222, 420, 421, 422, 423, 1,
2354 56, 61, 63, 122, 340, 344, 345, 346, 350, 351,
2355 227, 230, 230, 228, 242, 1, 76, 170, 277, 278,
2356 279, 280, 1, 17, 33, 63, 98, 118, 134, 151,
2357 152, 201, 222, 297, 298, 299, 300, 301, 302, 303,
2358 304, 305, 306, 307, 311, 1, 35, 76, 125, 369,
2359 370, 371, 372, 373, 230, 230, 230, 230, 230, 230,
2360 230, 230, 228, 515, 227, 230, 230, 230, 230, 230,
2361 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
2362 230, 230, 228, 247, 1, 98, 218, 390, 391, 392,
2363 393, 227, 230, 228, 283, 170, 230, 228, 376, 1,
2364 98, 218, 222, 380, 381, 382, 383, 384, 123, 123,
2365 123, 227, 108, 108, 210, 108, 108, 237, 237, 237,
2366 108, 108, 108, 210, 210, 227, 227, 230, 230, 230,
2367 335, 230, 230, 230, 230, 230, 230, 230, 230, 230,
2368 230, 230, 230, 228, 318, 227, 230, 230, 230, 230,
2369 230, 230, 410, 230, 230, 230, 230, 230, 230, 230,
2370 228, 400, 230, 230, 228, 427, 123, 227, 230, 230,
2371 228, 437, 210, 237, 237, 210, 108, 210, 108, 123,
2372 210, 237, 210, 108, 108, 237, 108, 210, 210, 210,
2373 237, 108, 108, 237, 108, 108, 108, 108, 210, 230,
2374 210, 230, 210, 237, 237, 210, 210, 210, 210, 213,
2375 210, 213, 210, 210, 210, 123, 237, 210, 210, 237,
2376 237, 210, 210, 227, 227, 230, 230, 361, 230, 230,
2377 230, 230, 230, 228, 355, 230, 230, 228, 421, 227,
2378 230, 230, 341, 230, 228, 345, 123, 123, 227, 227,
2379 230, 230, 228, 278, 227, 230, 230, 312, 230, 230,
2380 230, 230, 230, 308, 230, 228, 298, 227, 230, 230,
2381 230, 228, 370, 210, 210, 210, 123, 210, 210, 210,
2382 237, 227, 123, 210, 123, 108, 108, 123, 123, 123,
2383 123, 123, 123, 108, 123, 199, 200, 250, 251, 199,
2384 200, 252, 253, 123, 123, 227, 227, 230, 394, 228,
2385 391, 210, 227, 229, 123, 227, 227, 230, 385, 230,
2386 228, 381, 227, 227, 227, 227, 227, 227, 227, 135,
2387 136, 137, 138, 139, 140, 141, 236, 237, 227, 227,
2388 227, 227, 227, 227, 227, 227, 108, 108, 237, 230,
2389 108, 108, 237, 108, 108, 237, 123, 108, 108, 237,
2390 108, 239, 239, 227, 123, 174, 175, 123, 210, 123,
2391 123, 230, 123, 123, 108, 123, 123, 123, 123, 227,
2392 123, 123, 227, 227, 123, 123, 227, 227, 227, 227,
2393 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2394 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2395 227, 227, 227, 227, 49, 161, 162, 163, 165, 166,
2396 168, 169, 171, 173, 176, 179, 180, 181, 183, 188,
2397 192, 193, 194, 202, 207, 493, 494, 227, 49, 161,
2398 162, 163, 165, 166, 168, 169, 171, 173, 176, 179,
2399 180, 181, 183, 188, 192, 193, 194, 202, 207, 489,
2400 490, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2401 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2402 227, 227, 123, 210, 230, 123, 108, 123, 123, 123,
2403 227, 123, 123, 227, 123, 123, 230, 108, 348, 349,
2404 227, 227, 227, 123, 123, 227, 123, 210, 230, 123,
2405 123, 123, 123, 210, 230, 123, 227, 123, 123, 123,
2406 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2407 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2408 227, 227, 227, 231, 227, 231, 227, 227, 123, 230,
2409 227, 227, 1, 98, 191, 218, 287, 288, 289, 290,
2410 291, 227, 123, 230, 123, 227, 236, 236, 236, 236,
2411 236, 236, 236, 227, 227, 227, 51, 124, 336, 337,
2412 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2413 9, 10, 11, 238, 239, 227, 227, 227, 227, 227,
2414 227, 227, 227, 227, 8, 195, 411, 412, 227, 227,
2415 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2416 231, 227, 231, 227, 227, 13, 34, 43, 70, 99,
2417 100, 107, 132, 148, 209, 362, 363, 227, 227, 227,
2418 227, 227, 227, 227, 227, 227, 49, 185, 195, 342,
2419 343, 217, 231, 347, 227, 227, 227, 227, 4, 18,
2420 26, 40, 67, 69, 95, 128, 130, 149, 167, 172,
2421 176, 181, 184, 189, 203, 208, 219, 226, 313, 314,
2422 227, 227, 227, 227, 227, 49, 161, 162, 163, 165,
2423 166, 168, 169, 171, 173, 176, 179, 180, 181, 183,
2424 188, 192, 193, 194, 202, 207, 309, 310, 227, 227,
2425 227, 227, 251, 253, 227, 69, 131, 160, 167, 176,
2426 203, 205, 206, 219, 226, 395, 396, 227, 230, 230,
2427 292, 228, 288, 227, 69, 131, 160, 167, 176, 203,
2428 205, 206, 219, 226, 386, 387, 227, 227, 231, 238,
2429 238, 238, 227, 231, 494, 490, 227, 231, 227, 231,
2430 108, 349, 227, 232, 232, 232, 227, 231, 227, 231,
2431 227, 231, 123, 204, 239, 230, 227, 227, 231, 337,
2432 412, 363, 343, 129, 129, 129, 314, 310, 396, 227,
2433 227, 227, 40, 67, 69, 114, 166, 167, 222, 293,
2434 294, 387, 227, 231, 294
2435 };
2436
2437 #define yyerrok (yyerrstatus = 0)
2438 #define yyclearin (yychar = YYEMPTY)
2439 #define YYEMPTY (-2)
2440 #define YYEOF 0
2441
2442 #define YYACCEPT goto yyacceptlab
2443 #define YYABORT goto yyabortlab
2444 #define YYERROR goto yyerrorlab
2445
2446
2447 /* Like YYERROR except do call yyerror. This remains here temporarily
2448 to ease the transition to the new meaning of YYERROR, for GCC.
2449 Once GCC version 2 has supplanted version 1, this can go. However,
2450 YYFAIL appears to be in use. Nevertheless, it is formally deprecated
2451 in Bison 2.4.2's NEWS entry, where a plan to phase it out is
2452 discussed. */
2453
2454 #define YYFAIL goto yyerrlab
2455 #if defined YYFAIL
2456 /* This is here to suppress warnings from the GCC cpp's
2457 -Wunused-macros. Normally we don't worry about that warning, but
2458 some users do, and we want to make it easy for users to remove
2459 YYFAIL uses, which will produce warnings from Bison 2.5. */
2460 #endif
2461
2462 #define YYRECOVERING() (!!yyerrstatus)
2463
2464 #define YYBACKUP(Token, Value) \
2465 do \
2466 if (yychar == YYEMPTY) \
2467 { \
2468 yychar = (Token); \
2469 yylval = (Value); \
2470 YYPOPSTACK (yylen); \
2471 yystate = *yyssp; \
2472 goto yybackup; \
2473 } \
2474 else \
2475 { \
2476 yyerror (YY_("syntax error: cannot back up")); \
2477 YYERROR; \
2478 } \
2479 while (YYID (0))
2480
2481 /* Error token number */
2482 #define YYTERROR 1
2483 #define YYERRCODE 256
2484
2485
2486 /* This macro is provided for backward compatibility. */
2487 #ifndef YY_LOCATION_PRINT
2488 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2489 #endif
2490
2491
2492 /* YYLEX -- calling `yylex' with the right arguments. */
2493 #ifdef YYLEX_PARAM
2494 # define YYLEX yylex (YYLEX_PARAM)
2495 #else
2496 # define YYLEX yylex ()
2497 #endif
2498
2499 /* Enable debugging if requested. */
2500 #if YYDEBUG
2501
2502 # ifndef YYFPRINTF
2503 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2504 # define YYFPRINTF fprintf
2505 # endif
2506
2507 # define YYDPRINTF(Args) \
2508 do { \
2509 if (yydebug) \
2510 YYFPRINTF Args; \
2511 } while (YYID (0))
2512
2513 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2514 do { \
2515 if (yydebug) \
2516 { \
2517 YYFPRINTF (stderr, "%s ", Title); \
2518 yy_symbol_print (stderr, \
2519 Type, Value); \
2520 YYFPRINTF (stderr, "\n"); \
2521 } \
2522 } while (YYID (0))
2523
2524
2525 /*--------------------------------.
2526 | Print this symbol on YYOUTPUT. |
2527 `--------------------------------*/
2528
2529 /*ARGSUSED*/
2530 #if (defined __STDC__ || defined __C99__FUNC__ \
2531 || defined __cplusplus || defined _MSC_VER)
2532 static void
2533 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2534 #else
2535 static void
2536 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
2537 FILE *yyoutput;
2538 int yytype;
2539 YYSTYPE const * const yyvaluep;
2540 #endif
2541 {
2542 FILE *yyo = yyoutput;
2543 YYUSE (yyo);
2544 if (!yyvaluep)
2545 return;
2546 # ifdef YYPRINT
2547 if (yytype < YYNTOKENS)
2548 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
2549 # else
2550 YYUSE (yyoutput);
2551 # endif
2552 YYUSE (yytype);
2553 }
2554
2555
2556 /*--------------------------------.
2557 | Print this symbol on YYOUTPUT. |
2558 `--------------------------------*/
2559
2560 #if (defined __STDC__ || defined __C99__FUNC__ \
2561 || defined __cplusplus || defined _MSC_VER)
2562 static void
2563 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
2564 #else
2565 static void
2566 yy_symbol_print (yyoutput, yytype, yyvaluep)
2567 FILE *yyoutput;
2568 int yytype;
2569 YYSTYPE const * const yyvaluep;
2570 #endif
2571 {
2572 if (yytype < YYNTOKENS)
2573 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
2574 else
2575 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
2576
2577 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
2578 YYFPRINTF (yyoutput, ")");
2579 }
2580
2581 /*------------------------------------------------------------------.
2582 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2583 | TOP (included). |
2584 `------------------------------------------------------------------*/
2585
2586 #if (defined __STDC__ || defined __C99__FUNC__ \
2587 || defined __cplusplus || defined _MSC_VER)
2588 static void
2589 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2590 #else
2591 static void
2592 yy_stack_print (yybottom, yytop)
2593 yytype_int16 *yybottom;
2594 yytype_int16 *yytop;
2595 #endif
2596 {
2597 YYFPRINTF (stderr, "Stack now");
2598 for (; yybottom <= yytop; yybottom++)
2599 {
2600 int yybot = *yybottom;
2601 YYFPRINTF (stderr, " %d", yybot);
2602 }
2603 YYFPRINTF (stderr, "\n");
2604 }
2605
2606 # define YY_STACK_PRINT(Bottom, Top) \
2607 do { \
2608 if (yydebug) \
2609 yy_stack_print ((Bottom), (Top)); \
2610 } while (YYID (0))
2611
2612
2613 /*------------------------------------------------.
2614 | Report that the YYRULE is going to be reduced. |
2615 `------------------------------------------------*/
2616
2617 #if (defined __STDC__ || defined __C99__FUNC__ \
2618 || defined __cplusplus || defined _MSC_VER)
2619 static void
2620 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
2621 #else
2622 static void
2623 yy_reduce_print (yyvsp, yyrule)
2624 YYSTYPE *yyvsp;
2625 int yyrule;
2626 #endif
2627 {
2628 int yynrhs = yyr2[yyrule];
2629 int yyi;
2630 unsigned long int yylno = yyrline[yyrule];
2631 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2632 yyrule - 1, yylno);
2633 /* The symbols being reduced. */
2634 for (yyi = 0; yyi < yynrhs; yyi++)
2635 {
2636 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2637 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
2638 &(yyvsp[(yyi + 1) - (yynrhs)])
2639 );
2640 YYFPRINTF (stderr, "\n");
2641 }
2642 }
2643
2644 # define YY_REDUCE_PRINT(Rule) \
2645 do { \
2646 if (yydebug) \
2647 yy_reduce_print (yyvsp, Rule); \
2648 } while (YYID (0))
2649
2650 /* Nonzero means print parse trace. It is left uninitialized so that
2651 multiple parsers can coexist. */
2652 int yydebug;
2653 #else /* !YYDEBUG */
2654 # define YYDPRINTF(Args)
2655 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2656 # define YY_STACK_PRINT(Bottom, Top)
2657 # define YY_REDUCE_PRINT(Rule)
2658 #endif /* !YYDEBUG */
2659
2660
2661 /* YYINITDEPTH -- initial size of the parser's stacks. */
2662 #ifndef YYINITDEPTH
2663 # define YYINITDEPTH 200
2664 #endif
2665
2666 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2667 if the built-in stack extension method is used).
2668
2669 Do not make this value too large; the results are undefined if
2670 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2671 evaluated with infinite-precision integer arithmetic. */
2672
2673 #ifndef YYMAXDEPTH
2674 # define YYMAXDEPTH 10000
2675 #endif
2676
2677
2678 #if YYERROR_VERBOSE
2679
2680 # ifndef yystrlen
2681 # if defined __GLIBC__ && defined _STRING_H
2682 # define yystrlen strlen
2683 # else
2684 /* Return the length of YYSTR. */
2685 #if (defined __STDC__ || defined __C99__FUNC__ \
2686 || defined __cplusplus || defined _MSC_VER)
2687 static YYSIZE_T
2688 yystrlen (const char *yystr)
2689 #else
2690 static YYSIZE_T
2691 yystrlen (yystr)
2692 const char *yystr;
2693 #endif
2694 {
2695 YYSIZE_T yylen;
2696 for (yylen = 0; yystr[yylen]; yylen++)
2697 continue;
2698 return yylen;
2699 }
2700 # endif
2701 # endif
2702
2703 # ifndef yystpcpy
2704 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2705 # define yystpcpy stpcpy
2706 # else
2707 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2708 YYDEST. */
2709 #if (defined __STDC__ || defined __C99__FUNC__ \
2710 || defined __cplusplus || defined _MSC_VER)
2711 static char *
2712 yystpcpy (char *yydest, const char *yysrc)
2713 #else
2714 static char *
2715 yystpcpy (yydest, yysrc)
2716 char *yydest;
2717 const char *yysrc;
2718 #endif
2719 {
2720 char *yyd = yydest;
2721 const char *yys = yysrc;
2722
2723 while ((*yyd++ = *yys++) != '\0')
2724 continue;
2725
2726 return yyd - 1;
2727 }
2728 # endif
2729 # endif
2730
2731 # ifndef yytnamerr
2732 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2733 quotes and backslashes, so that it's suitable for yyerror. The
2734 heuristic is that double-quoting is unnecessary unless the string
2735 contains an apostrophe, a comma, or backslash (other than
2736 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2737 null, do not copy; instead, return the length of what the result
2738 would have been. */
2739 static YYSIZE_T
2740 yytnamerr (char *yyres, const char *yystr)
2741 {
2742 if (*yystr == '"')
2743 {
2744 YYSIZE_T yyn = 0;
2745 char const *yyp = yystr;
2746
2747 for (;;)
2748 switch (*++yyp)
2749 {
2750 case '\'':
2751 case ',':
2752 goto do_not_strip_quotes;
2753
2754 case '\\':
2755 if (*++yyp != '\\')
2756 goto do_not_strip_quotes;
2757 /* Fall through. */
2758 default:
2759 if (yyres)
2760 yyres[yyn] = *yyp;
2761 yyn++;
2762 break;
2763
2764 case '"':
2765 if (yyres)
2766 yyres[yyn] = '\0';
2767 return yyn;
2768 }
2769 do_not_strip_quotes: ;
2770 }
2771
2772 if (! yyres)
2773 return yystrlen (yystr);
2774
2775 return yystpcpy (yyres, yystr) - yyres;
2776 }
2777 # endif
2778
2779 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2780 about the unexpected token YYTOKEN for the state stack whose top is
2781 YYSSP.
2782
2783 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
2784 not large enough to hold the message. In that case, also set
2785 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
2786 required number of bytes is too large to store. */
2787 static int
2788 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
2789 yytype_int16 *yyssp, int yytoken)
2790 {
2791 YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
2792 YYSIZE_T yysize = yysize0;
2793 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
2794 /* Internationalized format string. */
2795 const char *yyformat = YY_NULL;
2796 /* Arguments of yyformat. */
2797 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
2798 /* Number of reported tokens (one for the "unexpected", one per
2799 "expected"). */
2800 int yycount = 0;
2801
2802 /* There are many possibilities here to consider:
2803 - Assume YYFAIL is not used. It's too flawed to consider. See
2804 <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
2805 for details. YYERROR is fine as it does not invoke this
2806 function.
2807 - If this state is a consistent state with a default action, then
2808 the only way this function was invoked is if the default action
2809 is an error action. In that case, don't check for expected
2810 tokens because there are none.
2811 - The only way there can be no lookahead present (in yychar) is if
2812 this state is a consistent state with a default action. Thus,
2813 detecting the absence of a lookahead is sufficient to determine
2814 that there is no unexpected or expected token to report. In that
2815 case, just report a simple "syntax error".
2816 - Don't assume there isn't a lookahead just because this state is a
2817 consistent state with a default action. There might have been a
2818 previous inconsistent state, consistent state with a non-default
2819 action, or user semantic action that manipulated yychar.
2820 - Of course, the expected token list depends on states to have
2821 correct lookahead information, and it depends on the parser not
2822 to perform extra reductions after fetching a lookahead from the
2823 scanner and before detecting a syntax error. Thus, state merging
2824 (from LALR or IELR) and default reductions corrupt the expected
2825 token list. However, the list is correct for canonical LR with
2826 one exception: it will still contain any token that will not be
2827 accepted due to an error action in a later state.
2828 */
2829 if (yytoken != YYEMPTY)
2830 {
2831 int yyn = yypact[*yyssp];
2832 yyarg[yycount++] = yytname[yytoken];
2833 if (!yypact_value_is_default (yyn))
2834 {
2835 /* Start YYX at -YYN if negative to avoid negative indexes in
2836 YYCHECK. In other words, skip the first -YYN actions for
2837 this state because they are default actions. */
2838 int yyxbegin = yyn < 0 ? -yyn : 0;
2839 /* Stay within bounds of both yycheck and yytname. */
2840 int yychecklim = YYLAST - yyn + 1;
2841 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2842 int yyx;
2843
2844 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2845 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
2846 && !yytable_value_is_error (yytable[yyx + yyn]))
2847 {
2848 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
2849 {
2850 yycount = 1;
2851 yysize = yysize0;
2852 break;
2853 }
2854 yyarg[yycount++] = yytname[yyx];
2855 {
2856 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
2857 if (! (yysize <= yysize1
2858 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2859 return 2;
2860 yysize = yysize1;
2861 }
2862 }
2863 }
2864 }
2865
2866 switch (yycount)
2867 {
2868 # define YYCASE_(N, S) \
2869 case N: \
2870 yyformat = S; \
2871 break
2872 YYCASE_(0, YY_("syntax error"));
2873 YYCASE_(1, YY_("syntax error, unexpected %s"));
2874 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2875 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2876 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2877 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2878 # undef YYCASE_
2879 }
2880
2881 {
2882 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
2883 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
2884 return 2;
2885 yysize = yysize1;
2886 }
2887
2888 if (*yymsg_alloc < yysize)
2889 {
2890 *yymsg_alloc = 2 * yysize;
2891 if (! (yysize <= *yymsg_alloc
2892 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2893 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2894 return 1;
2895 }
2896
2897 /* Avoid sprintf, as that infringes on the user's name space.
2898 Don't have undefined behavior even if the translation
2899 produced a string with the wrong number of "%s"s. */
2900 {
2901 char *yyp = *yymsg;
2902 int yyi = 0;
2903 while ((*yyp = *yyformat) != '\0')
2904 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2905 {
2906 yyp += yytnamerr (yyp, yyarg[yyi++]);
2907 yyformat += 2;
2908 }
2909 else
2910 {
2911 yyp++;
2912 yyformat++;
2913 }
2914 }
2915 return 0;
2916 }
2917 #endif /* YYERROR_VERBOSE */
2918
2919 /*-----------------------------------------------.
2920 | Release the memory associated to this symbol. |
2921 `-----------------------------------------------*/
2922
2923 /*ARGSUSED*/
2924 #if (defined __STDC__ || defined __C99__FUNC__ \
2925 || defined __cplusplus || defined _MSC_VER)
2926 static void
2927 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
2928 #else
2929 static void
2930 yydestruct (yymsg, yytype, yyvaluep)
2931 const char *yymsg;
2932 int yytype;
2933 YYSTYPE *yyvaluep;
2934 #endif
2935 {
2936 YYUSE (yyvaluep);
2937
2938 if (!yymsg)
2939 yymsg = "Deleting";
2940 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
2941
2942 YYUSE (yytype);
2943 }
2944
2945
2946
2947
2948 /* The lookahead symbol. */
2949 int yychar;
2950
2951
2952 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2953 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2954 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
2955 #endif
2956 #ifndef YY_INITIAL_VALUE
2957 # define YY_INITIAL_VALUE(Value) /* Nothing. */
2958 #endif
2959
2960 /* The semantic value of the lookahead symbol. */
2961 YYSTYPE yylval YY_INITIAL_VALUE(yyval_default);
2962
2963 /* Number of syntax errors so far. */
2964 int yynerrs;
2965
2966
2967 /*----------.
2968 | yyparse. |
2969 `----------*/
2970
2971 #ifdef YYPARSE_PARAM
2972 #if (defined __STDC__ || defined __C99__FUNC__ \
2973 || defined __cplusplus || defined _MSC_VER)
2974 int
2975 yyparse (void *YYPARSE_PARAM)
2976 #else
2977 int
2978 yyparse (YYPARSE_PARAM)
2979 void *YYPARSE_PARAM;
2980 #endif
2981 #else /* ! YYPARSE_PARAM */
2982 #if (defined __STDC__ || defined __C99__FUNC__ \
2983 || defined __cplusplus || defined _MSC_VER)
2984 int
2985 yyparse (void)
2986 #else
2987 int
2988 yyparse ()
2989
2990 #endif
2991 #endif
2992 {
2993 int yystate;
2994 /* Number of tokens to shift before error messages enabled. */
2995 int yyerrstatus;
2996
2997 /* The stacks and their tools:
2998 `yyss': related to states.
2999 `yyvs': related to semantic values.
3000
3001 Refer to the stacks through separate pointers, to allow yyoverflow
3002 to reallocate them elsewhere. */
3003
3004 /* The state stack. */
3005 yytype_int16 yyssa[YYINITDEPTH];
3006 yytype_int16 *yyss;
3007 yytype_int16 *yyssp;
3008
3009 /* The semantic value stack. */
3010 YYSTYPE yyvsa[YYINITDEPTH];
3011 YYSTYPE *yyvs;
3012 YYSTYPE *yyvsp;
3013
3014 YYSIZE_T yystacksize;
3015
3016 int yyn;
3017 int yyresult;
3018 /* Lookahead token as an internal (translated) token number. */
3019 int yytoken = 0;
3020 /* The variables used to return semantic value and location from the
3021 action routines. */
3022 YYSTYPE yyval;
3023
3024 #if YYERROR_VERBOSE
3025 /* Buffer for error messages, and its allocated size. */
3026 char yymsgbuf[128];
3027 char *yymsg = yymsgbuf;
3028 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3029 #endif
3030
3031 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3032
3033 /* The number of symbols on the RHS of the reduced rule.
3034 Keep to zero when no symbol should be popped. */
3035 int yylen = 0;
3036
3037 yyssp = yyss = yyssa;
3038 yyvsp = yyvs = yyvsa;
3039 yystacksize = YYINITDEPTH;
3040
3041 YYDPRINTF ((stderr, "Starting parse\n"));
3042
3043 yystate = 0;
3044 yyerrstatus = 0;
3045 yynerrs = 0;
3046 yychar = YYEMPTY; /* Cause a token to be read. */
3047 goto yysetstate;
3048
3049 /*------------------------------------------------------------.
3050 | yynewstate -- Push a new state, which is found in yystate. |
3051 `------------------------------------------------------------*/
3052 yynewstate:
3053 /* In all cases, when you get here, the value and location stacks
3054 have just been pushed. So pushing a state here evens the stacks. */
3055 yyssp++;
3056
3057 yysetstate:
3058 *yyssp = yystate;
3059
3060 if (yyss + yystacksize - 1 <= yyssp)
3061 {
3062 /* Get the current used size of the three stacks, in elements. */
3063 YYSIZE_T yysize = yyssp - yyss + 1;
3064
3065 #ifdef yyoverflow
3066 {
3067 /* Give user a chance to reallocate the stack. Use copies of
3068 these so that the &'s don't force the real ones into
3069 memory. */
3070 YYSTYPE *yyvs1 = yyvs;
3071 yytype_int16 *yyss1 = yyss;
3072
3073 /* Each stack pointer address is followed by the size of the
3074 data in use in that stack, in bytes. This used to be a
3075 conditional around just the two extra args, but that might
3076 be undefined if yyoverflow is a macro. */
3077 yyoverflow (YY_("memory exhausted"),
3078 &yyss1, yysize * sizeof (*yyssp),
3079 &yyvs1, yysize * sizeof (*yyvsp),
3080 &yystacksize);
3081
3082 yyss = yyss1;
3083 yyvs = yyvs1;
3084 }
3085 #else /* no yyoverflow */
3086 # ifndef YYSTACK_RELOCATE
3087 goto yyexhaustedlab;
3088 # else
3089 /* Extend the stack our own way. */
3090 if (YYMAXDEPTH <= yystacksize)
3091 goto yyexhaustedlab;
3092 yystacksize *= 2;
3093 if (YYMAXDEPTH < yystacksize)
3094 yystacksize = YYMAXDEPTH;
3095
3096 {
3097 yytype_int16 *yyss1 = yyss;
3098 union yyalloc *yyptr =
3099 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3100 if (! yyptr)
3101 goto yyexhaustedlab;
3102 YYSTACK_RELOCATE (yyss_alloc, yyss);
3103 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3104 # undef YYSTACK_RELOCATE
3105 if (yyss1 != yyssa)
3106 YYSTACK_FREE (yyss1);
3107 }
3108 # endif
3109 #endif /* no yyoverflow */
3110
3111 yyssp = yyss + yysize - 1;
3112 yyvsp = yyvs + yysize - 1;
3113
3114 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3115 (unsigned long int) yystacksize));
3116
3117 if (yyss + yystacksize - 1 <= yyssp)
3118 YYABORT;
3119 }
3120
3121 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3122
3123 if (yystate == YYFINAL)
3124 YYACCEPT;
3125
3126 goto yybackup;
3127
3128 /*-----------.
3129 | yybackup. |
3130 `-----------*/
3131 yybackup:
3132
3133 /* Do appropriate processing given the current state. Read a
3134 lookahead token if we need one and don't already have one. */
3135
3136 /* First try to decide what to do without reference to lookahead token. */
3137 yyn = yypact[yystate];
3138 if (yypact_value_is_default (yyn))
3139 goto yydefault;
3140
3141 /* Not known => get a lookahead token if don't already have one. */
3142
3143 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3144 if (yychar == YYEMPTY)
3145 {
3146 YYDPRINTF ((stderr, "Reading a token: "));
3147 yychar = YYLEX;
3148 }
3149
3150 if (yychar <= YYEOF)
3151 {
3152 yychar = yytoken = YYEOF;
3153 YYDPRINTF ((stderr, "Now at end of input.\n"));
3154 }
3155 else
3156 {
3157 yytoken = YYTRANSLATE (yychar);
3158 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3159 }
3160
3161 /* If the proper action on seeing token YYTOKEN is to reduce or to
3162 detect an error, take that action. */
3163 yyn += yytoken;
3164 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3165 goto yydefault;
3166 yyn = yytable[yyn];
3167 if (yyn <= 0)
3168 {
3169 if (yytable_value_is_error (yyn))
3170 goto yyerrlab;
3171 yyn = -yyn;
3172 goto yyreduce;
3173 }
3174
3175 /* Count tokens shifted since error; after three, turn off error
3176 status. */
3177 if (yyerrstatus)
3178 yyerrstatus--;
3179
3180 /* Shift the lookahead token. */
3181 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3182
3183 /* Discard the shifted token. */
3184 yychar = YYEMPTY;
3185
3186 yystate = yyn;
3187 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3188 *++yyvsp = yylval;
3189 YY_IGNORE_MAYBE_UNINITIALIZED_END
3190
3191 goto yynewstate;
3192
3193
3194 /*-----------------------------------------------------------.
3195 | yydefault -- do the default action for the current state. |
3196 `-----------------------------------------------------------*/
3197 yydefault:
3198 yyn = yydefact[yystate];
3199 if (yyn == 0)
3200 goto yyerrlab;
3201 goto yyreduce;
3202
3203
3204 /*-----------------------------.
3205 | yyreduce -- Do a reduction. |
3206 `-----------------------------*/
3207 yyreduce:
3208 /* yyn is the number of a rule to reduce with. */
3209 yylen = yyr2[yyn];
3210
3211 /* If YYLEN is nonzero, implement the default value of the action:
3212 `$$ = $1'.
3213
3214 Otherwise, the following line sets YYVAL to garbage.
3215 This behavior is undocumented and Bison
3216 users should not rely upon it. Assigning to YYVAL
3217 unconditionally makes the parser a bit smaller, and it avoids a
3218 GCC warning that YYVAL may be used uninitialized. */
3219 yyval = yyvsp[1-yylen];
3220
3221
3222 YY_REDUCE_PRINT (yyn);
3223 switch (yyn)
3224 {
3225 case 27:
3226 /* Line 1787 of yacc.c */
3227 #line 400 "conf_parser.y"
3228 { (yyval.number) = 0; }
3229 break;
3230
3231 case 29:
3232 /* Line 1787 of yacc.c */
3233 #line 402 "conf_parser.y"
3234 {
3235 (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number);
3236 }
3237 break;
3238
3239 case 30:
3240 /* Line 1787 of yacc.c */
3241 #line 406 "conf_parser.y"
3242 {
3243 (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number);
3244 }
3245 break;
3246
3247 case 31:
3248 /* Line 1787 of yacc.c */
3249 #line 410 "conf_parser.y"
3250 {
3251 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 + (yyvsp[(3) - (3)].number);
3252 }
3253 break;
3254
3255 case 32:
3256 /* Line 1787 of yacc.c */
3257 #line 414 "conf_parser.y"
3258 {
3259 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 + (yyvsp[(3) - (3)].number);
3260 }
3261 break;
3262
3263 case 33:
3264 /* Line 1787 of yacc.c */
3265 #line 418 "conf_parser.y"
3266 {
3267 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 + (yyvsp[(3) - (3)].number);
3268 }
3269 break;
3270
3271 case 34:
3272 /* Line 1787 of yacc.c */
3273 #line 422 "conf_parser.y"
3274 {
3275 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 + (yyvsp[(3) - (3)].number);
3276 }
3277 break;
3278
3279 case 35:
3280 /* Line 1787 of yacc.c */
3281 #line 426 "conf_parser.y"
3282 {
3283 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[(3) - (3)].number);
3284 }
3285 break;
3286
3287 case 36:
3288 /* Line 1787 of yacc.c */
3289 #line 430 "conf_parser.y"
3290 {
3291 (yyval.number) = (yyvsp[(1) - (3)].number) * 60 * 60 * 24 * 365 + (yyvsp[(3) - (3)].number);
3292 }
3293 break;
3294
3295 case 37:
3296 /* Line 1787 of yacc.c */
3297 #line 435 "conf_parser.y"
3298 { (yyval.number) = 0; }
3299 break;
3300
3301 case 39:
3302 /* Line 1787 of yacc.c */
3303 #line 436 "conf_parser.y"
3304 { (yyval.number) = (yyvsp[(1) - (2)].number) + (yyvsp[(2) - (2)].number); }
3305 break;
3306
3307 case 40:
3308 /* Line 1787 of yacc.c */
3309 #line 437 "conf_parser.y"
3310 { (yyval.number) = (yyvsp[(1) - (3)].number) + (yyvsp[(3) - (3)].number); }
3311 break;
3312
3313 case 41:
3314 /* Line 1787 of yacc.c */
3315 #line 438 "conf_parser.y"
3316 { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 + (yyvsp[(3) - (3)].number); }
3317 break;
3318
3319 case 42:
3320 /* Line 1787 of yacc.c */
3321 #line 439 "conf_parser.y"
3322 { (yyval.number) = (yyvsp[(1) - (3)].number) * 1024 * 1024 + (yyvsp[(3) - (3)].number); }
3323 break;
3324
3325 case 49:
3326 /* Line 1787 of yacc.c */
3327 #line 453 "conf_parser.y"
3328 {
3329 if (conf_parser_ctx.pass == 2)
3330 add_conf_module(libio_basename(yylval.string));
3331 }
3332 break;
3333
3334 case 50:
3335 /* Line 1787 of yacc.c */
3336 #line 459 "conf_parser.y"
3337 {
3338 if (conf_parser_ctx.pass == 2)
3339 mod_add_path(yylval.string);
3340 }
3341 break;
3342
3343 case 76:
3344 /* Line 1787 of yacc.c */
3345 #line 485 "conf_parser.y"
3346 {
3347 #ifdef HAVE_LIBCRYPTO
3348 if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3349 SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_SSLv3);
3350 #endif
3351 }
3352 break;
3353
3354 case 77:
3355 /* Line 1787 of yacc.c */
3356 #line 491 "conf_parser.y"
3357 {
3358 #ifdef HAVE_LIBCRYPTO
3359 if (conf_parser_ctx.pass == 2 && ServerInfo.client_ctx)
3360 SSL_CTX_clear_options(ServerInfo.client_ctx, SSL_OP_NO_TLSv1);
3361 #endif
3362 }
3363 break;
3364
3365 case 80:
3366 /* Line 1787 of yacc.c */
3367 #line 500 "conf_parser.y"
3368 {
3369 #ifdef HAVE_LIBCRYPTO
3370 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3371 SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_SSLv3);
3372 #endif
3373 }
3374 break;
3375
3376 case 81:
3377 /* Line 1787 of yacc.c */
3378 #line 506 "conf_parser.y"
3379 {
3380 #ifdef HAVE_LIBCRYPTO
3381 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3382 SSL_CTX_clear_options(ServerInfo.server_ctx, SSL_OP_NO_TLSv1);
3383 #endif
3384 }
3385 break;
3386
3387 case 82:
3388 /* Line 1787 of yacc.c */
3389 #line 514 "conf_parser.y"
3390 {
3391 #ifdef HAVE_LIBCRYPTO
3392 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3393 {
3394 if (!ServerInfo.rsa_private_key_file)
3395 {
3396 conf_error_report("No rsa_private_key_file specified, SSL disabled");
3397 break;
3398 }
3399
3400 if (SSL_CTX_use_certificate_file(ServerInfo.server_ctx, yylval.string,
3401 SSL_FILETYPE_PEM) <= 0 ||
3402 SSL_CTX_use_certificate_file(ServerInfo.client_ctx, yylval.string,
3403 SSL_FILETYPE_PEM) <= 0)
3404 {
3405 report_crypto_errors();
3406 conf_error_report("Could not open/read certificate file");
3407 break;
3408 }
3409
3410 if (SSL_CTX_use_PrivateKey_file(ServerInfo.server_ctx, ServerInfo.rsa_private_key_file,
3411 SSL_FILETYPE_PEM) <= 0 ||
3412 SSL_CTX_use_PrivateKey_file(ServerInfo.client_ctx, ServerInfo.rsa_private_key_file,
3413 SSL_FILETYPE_PEM) <= 0)
3414 {
3415 report_crypto_errors();
3416 conf_error_report("Could not read RSA private key");
3417 break;
3418 }
3419
3420 if (!SSL_CTX_check_private_key(ServerInfo.server_ctx) ||
3421 !SSL_CTX_check_private_key(ServerInfo.client_ctx))
3422 {
3423 report_crypto_errors();
3424 conf_error_report("Could not read RSA private key");
3425 break;
3426 }
3427 }
3428 #endif
3429 }
3430 break;
3431
3432 case 83:
3433 /* Line 1787 of yacc.c */
3434 #line 556 "conf_parser.y"
3435 {
3436 #ifdef HAVE_LIBCRYPTO
3437 BIO *file = NULL;
3438
3439 if (conf_parser_ctx.pass != 1)
3440 break;
3441
3442 if (ServerInfo.rsa_private_key)
3443 {
3444 RSA_free(ServerInfo.rsa_private_key);
3445 ServerInfo.rsa_private_key = NULL;
3446 }
3447
3448 if (ServerInfo.rsa_private_key_file)
3449 {
3450 MyFree(ServerInfo.rsa_private_key_file);
3451 ServerInfo.rsa_private_key_file = NULL;
3452 }
3453
3454 ServerInfo.rsa_private_key_file = xstrdup(yylval.string);
3455
3456 if ((file = BIO_new_file(yylval.string, "r")) == NULL)
3457 {
3458 conf_error_report("File open failed, ignoring");
3459 break;
3460 }
3461
3462 ServerInfo.rsa_private_key = PEM_read_bio_RSAPrivateKey(file, NULL, 0, NULL);
3463
3464 BIO_set_close(file, BIO_CLOSE);
3465 BIO_free(file);
3466
3467 if (ServerInfo.rsa_private_key == NULL)
3468 {
3469 conf_error_report("Couldn't extract key, ignoring");
3470 break;
3471 }
3472
3473 if (!RSA_check_key(ServerInfo.rsa_private_key))
3474 {
3475 RSA_free(ServerInfo.rsa_private_key);
3476 ServerInfo.rsa_private_key = NULL;
3477
3478 conf_error_report("Invalid key, ignoring");
3479 break;
3480 }
3481
3482 /* require 2048 bit (256 byte) key */
3483 if (RSA_size(ServerInfo.rsa_private_key) != 256)
3484 {
3485 RSA_free(ServerInfo.rsa_private_key);
3486 ServerInfo.rsa_private_key = NULL;
3487
3488 conf_error_report("Not a 2048 bit key, ignoring");
3489 }
3490 #endif
3491 }
3492 break;
3493
3494 case 84:
3495 /* Line 1787 of yacc.c */
3496 #line 615 "conf_parser.y"
3497 {
3498 /* TBD - XXX: error reporting */
3499 #ifdef HAVE_LIBCRYPTO
3500 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3501 {
3502 BIO *file = BIO_new_file(yylval.string, "r");
3503
3504 if (file)
3505 {
3506 DH *dh = PEM_read_bio_DHparams(file, NULL, NULL, NULL);
3507
3508 BIO_free(file);
3509
3510 if (dh)
3511 {
3512 if (DH_size(dh) < 128)
3513 conf_error_report("Ignoring serverinfo::ssl_dh_param_file -- need at least a 1024 bit DH prime size");
3514 else
3515 SSL_CTX_set_tmp_dh(ServerInfo.server_ctx, dh);
3516
3517 DH_free(dh);
3518 }
3519 }
3520 }
3521 #endif
3522 }
3523 break;
3524
3525 case 85:
3526 /* Line 1787 of yacc.c */
3527 #line 643 "conf_parser.y"
3528 {
3529 #ifdef HAVE_LIBCRYPTO
3530 if (conf_parser_ctx.pass == 2 && ServerInfo.server_ctx)
3531 SSL_CTX_set_cipher_list(ServerInfo.server_ctx, yylval.string);
3532 #endif
3533 }
3534 break;
3535
3536 case 86:
3537 /* Line 1787 of yacc.c */
3538 #line 651 "conf_parser.y"
3539 {
3540 /* this isn't rehashable */
3541 if (conf_parser_ctx.pass == 2 && !ServerInfo.name)
3542 {
3543 if (valid_servname(yylval.string))
3544 ServerInfo.name = xstrdup(yylval.string);
3545 else
3546 {
3547 conf_error_report("Ignoring serverinfo::name -- invalid name. Aborting.");
3548 exit(0);
3549 }
3550 }
3551 }
3552 break;
3553
3554 case 87:
3555 /* Line 1787 of yacc.c */
3556 #line 666 "conf_parser.y"
3557 {
3558 /* this isn't rehashable */
3559 if (conf_parser_ctx.pass == 2 && !ServerInfo.sid)
3560 {
3561 if (valid_sid(yylval.string))
3562 ServerInfo.sid = xstrdup(yylval.string);
3563 else
3564 {
3565 conf_error_report("Ignoring serverinfo::sid -- invalid SID. Aborting.");
3566 exit(0);
3567 }
3568 }
3569 }
3570 break;
3571
3572 case 88:
3573 /* Line 1787 of yacc.c */
3574 #line 681 "conf_parser.y"
3575 {
3576 if (conf_parser_ctx.pass == 2)
3577 {
3578 MyFree(ServerInfo.description);
3579 ServerInfo.description = xstrdup(yylval.string);
3580 }
3581 }
3582 break;
3583
3584 case 89:
3585 /* Line 1787 of yacc.c */
3586 #line 690 "conf_parser.y"
3587 {
3588 if (conf_parser_ctx.pass == 2)
3589 {
3590 char *p;
3591
3592 if ((p = strchr(yylval.string, ' ')) != NULL)
3593 p = '\0';
3594
3595 MyFree(ServerInfo.network_name);
3596 ServerInfo.network_name = xstrdup(yylval.string);
3597 }
3598 }
3599 break;
3600
3601 case 90:
3602 /* Line 1787 of yacc.c */
3603 #line 704 "conf_parser.y"
3604 {
3605 if (conf_parser_ctx.pass != 2)
3606 break;
3607
3608 MyFree(ServerInfo.network_desc);
3609 ServerInfo.network_desc = xstrdup(yylval.string);
3610 }
3611 break;
3612
3613 case 91:
3614 /* Line 1787 of yacc.c */
3615 #line 713 "conf_parser.y"
3616 {
3617 if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3618 {
3619 struct addrinfo hints, *res;
3620
3621 memset(&hints, 0, sizeof(hints));
3622
3623 hints.ai_family = AF_UNSPEC;
3624 hints.ai_socktype = SOCK_STREAM;
3625 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
3626
3627 if (getaddrinfo(yylval.string, NULL, &hints, &res))
3628 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", yylval.string);
3629 else
3630 {
3631 assert(res != NULL);
3632
3633 memcpy(&ServerInfo.ip, res->ai_addr, res->ai_addrlen);
3634 ServerInfo.ip.ss.ss_family = res->ai_family;
3635 ServerInfo.ip.ss_len = res->ai_addrlen;
3636 freeaddrinfo(res);
3637
3638 ServerInfo.specific_ipv4_vhost = 1;
3639 }
3640 }
3641 }
3642 break;
3643
3644 case 92:
3645 /* Line 1787 of yacc.c */
3646 #line 741 "conf_parser.y"
3647 {
3648 #ifdef IPV6
3649 if (conf_parser_ctx.pass == 2 && *yylval.string != '*')
3650 {
3651 struct addrinfo hints, *res;
3652
3653 memset(&hints, 0, sizeof(hints));
3654
3655 hints.ai_family = AF_UNSPEC;
3656 hints.ai_socktype = SOCK_STREAM;
3657 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
3658
3659 if (getaddrinfo(yylval.string, NULL, &hints, &res))
3660 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost6(%s)", yylval.string);
3661 else
3662 {
3663 assert(res != NULL);
3664
3665 memcpy(&ServerInfo.ip6, res->ai_addr, res->ai_addrlen);
3666 ServerInfo.ip6.ss.ss_family = res->ai_family;
3667 ServerInfo.ip6.ss_len = res->ai_addrlen;
3668 freeaddrinfo(res);
3669
3670 ServerInfo.specific_ipv6_vhost = 1;
3671 }
3672 }
3673 #endif
3674 }
3675 break;
3676
3677 case 93:
3678 /* Line 1787 of yacc.c */
3679 #line 771 "conf_parser.y"
3680 {
3681 if (conf_parser_ctx.pass != 2)
3682 break;
3683
3684 if ((yyvsp[(3) - (4)].number) < MAXCLIENTS_MIN)
3685 {
3686 char buf[IRCD_BUFSIZE];
3687
3688 snprintf(buf, sizeof(buf), "MAXCLIENTS too low, setting to %d", MAXCLIENTS_MIN);
3689 conf_error_report(buf);
3690 ServerInfo.max_clients = MAXCLIENTS_MIN;
3691 }
3692 else if ((yyvsp[(3) - (4)].number) > MAXCLIENTS_MAX)
3693 {
3694 char buf[IRCD_BUFSIZE];
3695
3696 snprintf(buf, sizeof(buf), "MAXCLIENTS too high, setting to %d", MAXCLIENTS_MAX);
3697 conf_error_report(buf);
3698 ServerInfo.max_clients = MAXCLIENTS_MAX;
3699 }
3700 else
3701 ServerInfo.max_clients = (yyvsp[(3) - (4)].number);
3702 }
3703 break;
3704
3705 case 94:
3706 /* Line 1787 of yacc.c */
3707 #line 796 "conf_parser.y"
3708 {
3709 if (conf_parser_ctx.pass != 2)
3710 break;
3711
3712 if ((yyvsp[(3) - (4)].number) < 9)
3713 {
3714 conf_error_report("max_nick_length too low, setting to 9");
3715 ServerInfo.max_nick_length = 9;
3716 }
3717 else if ((yyvsp[(3) - (4)].number) > NICKLEN)
3718 {
3719 char buf[IRCD_BUFSIZE];
3720
3721 snprintf(buf, sizeof(buf), "max_nick_length too high, setting to %d", NICKLEN);
3722 conf_error_report(buf);
3723 ServerInfo.max_nick_length = NICKLEN;
3724 }
3725 else
3726 ServerInfo.max_nick_length = (yyvsp[(3) - (4)].number);
3727 }
3728 break;
3729
3730 case 95:
3731 /* Line 1787 of yacc.c */
3732 #line 818 "conf_parser.y"
3733 {
3734 if (conf_parser_ctx.pass != 2)
3735 break;
3736
3737 if ((yyvsp[(3) - (4)].number) < 80)
3738 {
3739 conf_error_report("max_topic_length too low, setting to 80");
3740 ServerInfo.max_topic_length = 80;
3741 }
3742 else if ((yyvsp[(3) - (4)].number) > TOPICLEN)
3743 {
3744 char buf[IRCD_BUFSIZE];
3745
3746 snprintf(buf, sizeof(buf), "max_topic_length too high, setting to %d", TOPICLEN);
3747 conf_error_report(buf);
3748 ServerInfo.max_topic_length = TOPICLEN;
3749 }
3750 else
3751 ServerInfo.max_topic_length = (yyvsp[(3) - (4)].number);
3752 }
3753 break;
3754
3755 case 96:
3756 /* Line 1787 of yacc.c */
3757 #line 840 "conf_parser.y"
3758 {
3759 if (conf_parser_ctx.pass == 2)
3760 ServerInfo.hub = yylval.number;
3761 }
3762 break;
3763
3764 case 104:
3765 /* Line 1787 of yacc.c */
3766 #line 855 "conf_parser.y"
3767 {
3768 if (conf_parser_ctx.pass != 2)
3769 break;
3770
3771 MyFree(AdminInfo.name);
3772 AdminInfo.name = xstrdup(yylval.string);
3773 }
3774 break;
3775
3776 case 105:
3777 /* Line 1787 of yacc.c */
3778 #line 864 "conf_parser.y"
3779 {
3780 if (conf_parser_ctx.pass != 2)
3781 break;
3782
3783 MyFree(AdminInfo.email);
3784 AdminInfo.email = xstrdup(yylval.string);
3785 }
3786 break;
3787
3788 case 106:
3789 /* Line 1787 of yacc.c */
3790 #line 873 "conf_parser.y"
3791 {
3792 if (conf_parser_ctx.pass != 2)
3793 break;
3794
3795 MyFree(AdminInfo.description);
3796 AdminInfo.description = xstrdup(yylval.string);
3797 }
3798 break;
3799
3800 case 107:
3801 /* Line 1787 of yacc.c */
3802 #line 885 "conf_parser.y"
3803 {
3804 if (conf_parser_ctx.pass == 2)
3805 reset_block_state();
3806 }
3807 break;
3808
3809 case 108:
3810 /* Line 1787 of yacc.c */
3811 #line 889 "conf_parser.y"
3812 {
3813 dlink_node *ptr = NULL;
3814
3815 if (conf_parser_ctx.pass != 2)
3816 break;
3817
3818 if (!block_state.file.buf[0])
3819 break;
3820
3821 DLINK_FOREACH(ptr, block_state.mask.list.head)
3822 motd_add(ptr->data, block_state.file.buf);
3823 }
3824 break;
3825
3826 case 114:
3827 /* Line 1787 of yacc.c */
3828 #line 906 "conf_parser.y"
3829 {
3830 if (conf_parser_ctx.pass == 2)
3831 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
3832 }
3833 break;
3834
3835 case 115:
3836 /* Line 1787 of yacc.c */
3837 #line 912 "conf_parser.y"
3838 {
3839 if (conf_parser_ctx.pass == 2)
3840 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3841 }
3842 break;
3843
3844 case 122:
3845 /* Line 1787 of yacc.c */
3846 #line 927 "conf_parser.y"
3847 {
3848 if (conf_parser_ctx.pass == 2)
3849 ConfigLoggingEntry.use_logging = yylval.number;
3850 }
3851 break;
3852
3853 case 123:
3854 /* Line 1787 of yacc.c */
3855 #line 933 "conf_parser.y"
3856 {
3857 if (conf_parser_ctx.pass == 2)
3858 reset_block_state();
3859 }
3860 break;
3861
3862 case 124:
3863 /* Line 1787 of yacc.c */
3864 #line 937 "conf_parser.y"
3865 {
3866 if (conf_parser_ctx.pass != 2)
3867 break;
3868
3869 if (block_state.type.value && block_state.file.buf[0])
3870 log_set_file(block_state.type.value, block_state.size.value,
3871 block_state.file.buf);
3872 }
3873 break;
3874
3875 case 131:
3876 /* Line 1787 of yacc.c */
3877 #line 953 "conf_parser.y"
3878 {
3879 if (conf_parser_ctx.pass != 2)
3880 break;
3881
3882 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
3883 }
3884 break;
3885
3886 case 132:
3887 /* Line 1787 of yacc.c */
3888 #line 961 "conf_parser.y"
3889 {
3890 block_state.size.value = (yyvsp[(3) - (4)].number);
3891 }
3892 break;
3893
3894 case 133:
3895 /* Line 1787 of yacc.c */
3896 #line 964 "conf_parser.y"
3897 {
3898 block_state.size.value = 0;
3899 }
3900 break;
3901
3902 case 134:
3903 /* Line 1787 of yacc.c */
3904 #line 969 "conf_parser.y"
3905 {
3906 if (conf_parser_ctx.pass == 2)
3907 block_state.type.value = 0;
3908 }
3909 break;
3910
3911 case 138:
3912 /* Line 1787 of yacc.c */
3913 #line 976 "conf_parser.y"
3914 {
3915 if (conf_parser_ctx.pass == 2)
3916 block_state.type.value = LOG_TYPE_USER;
3917 }
3918 break;
3919
3920 case 139:
3921 /* Line 1787 of yacc.c */
3922 #line 980 "conf_parser.y"
3923 {
3924 if (conf_parser_ctx.pass == 2)
3925 block_state.type.value = LOG_TYPE_OPER;
3926 }
3927 break;
3928
3929 case 140:
3930 /* Line 1787 of yacc.c */
3931 #line 984 "conf_parser.y"
3932 {
3933 if (conf_parser_ctx.pass == 2)
3934 block_state.type.value = LOG_TYPE_GLINE;
3935 }
3936 break;
3937
3938 case 141:
3939 /* Line 1787 of yacc.c */
3940 #line 988 "conf_parser.y"
3941 {
3942 if (conf_parser_ctx.pass == 2)
3943 block_state.type.value = LOG_TYPE_DLINE;
3944 }
3945 break;
3946
3947 case 142:
3948 /* Line 1787 of yacc.c */
3949 #line 992 "conf_parser.y"
3950 {
3951 if (conf_parser_ctx.pass == 2)
3952 block_state.type.value = LOG_TYPE_KLINE;
3953 }
3954 break;
3955
3956 case 143:
3957 /* Line 1787 of yacc.c */
3958 #line 996 "conf_parser.y"
3959 {
3960 if (conf_parser_ctx.pass == 2)
3961 block_state.type.value = LOG_TYPE_KILL;
3962 }
3963 break;
3964
3965 case 144:
3966 /* Line 1787 of yacc.c */
3967 #line 1000 "conf_parser.y"
3968 {
3969 if (conf_parser_ctx.pass == 2)
3970 block_state.type.value = LOG_TYPE_DEBUG;
3971 }
3972 break;
3973
3974 case 145:
3975 /* Line 1787 of yacc.c */
3976 #line 1010 "conf_parser.y"
3977 {
3978 if (conf_parser_ctx.pass != 2)
3979 break;
3980
3981 reset_block_state();
3982 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
3983 }
3984 break;
3985
3986 case 146:
3987 /* Line 1787 of yacc.c */
3988 #line 1017 "conf_parser.y"
3989 {
3990 dlink_node *ptr = NULL;
3991
3992 if (conf_parser_ctx.pass != 2)
3993 break;
3994
3995 if (!block_state.name.buf[0])
3996 break;
3997 #ifdef HAVE_LIBCRYPTO
3998 if (!block_state.file.buf[0] &&
3999 !block_state.rpass.buf[0])
4000 break;
4001 #else
4002 if (!block_state.rpass.buf[0])
4003 break;
4004 #endif
4005
4006 DLINK_FOREACH(ptr, block_state.mask.list.head)
4007 {
4008 struct MaskItem *conf = NULL;
4009 struct split_nuh_item nuh;
4010
4011 nuh.nuhmask = ptr->data;
4012 nuh.nickptr = NULL;
4013 nuh.userptr = block_state.user.buf;
4014 nuh.hostptr = block_state.host.buf;
4015 nuh.nicksize = 0;
4016 nuh.usersize = sizeof(block_state.user.buf);
4017 nuh.hostsize = sizeof(block_state.host.buf);
4018 split_nuh(&nuh);
4019
4020 conf = conf_make(CONF_OPER);
4021 conf->name = xstrdup(block_state.name.buf);
4022 conf->user = xstrdup(block_state.user.buf);
4023 conf->host = xstrdup(block_state.host.buf);
4024
4025 if (block_state.cert.buf[0])
4026 conf->certfp = xstrdup(block_state.cert.buf);
4027
4028 if (block_state.rpass.buf[0])
4029 conf->passwd = xstrdup(block_state.rpass.buf);
4030
4031 conf->flags = block_state.flags.value;
4032 conf->modes = block_state.modes.value;
4033 conf->port = block_state.port.value;
4034 conf->htype = parse_netmask(conf->host, &conf->addr, &conf->bits);
4035
4036 conf_add_class_to_conf(conf, block_state.class.buf);
4037
4038 #ifdef HAVE_LIBCRYPTO
4039 if (block_state.file.buf[0])
4040 {
4041 BIO *file = NULL;
4042 RSA *pkey = NULL;
4043
4044 if ((file = BIO_new_file(block_state.file.buf, "r")) == NULL)
4045 {
4046 conf_error_report("Ignoring rsa_public_key_file -- file doesn't exist");
4047 break;
4048 }
4049
4050 if ((pkey = PEM_read_bio_RSA_PUBKEY(file, NULL, 0, NULL)) == NULL)
4051 conf_error_report("Ignoring rsa_public_key_file -- Key invalid; check key syntax.");
4052
4053 conf->rsa_public_key = pkey;
4054 BIO_set_close(file, BIO_CLOSE);
4055 BIO_free(file);
4056 }
4057 #endif /* HAVE_LIBCRYPTO */
4058 }
4059 }
4060 break;
4061
4062 case 160:
4063 /* Line 1787 of yacc.c */
4064 #line 1097 "conf_parser.y"
4065 {
4066 if (conf_parser_ctx.pass == 2)
4067 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
4068 }
4069 break;
4070
4071 case 161:
4072 /* Line 1787 of yacc.c */
4073 #line 1103 "conf_parser.y"
4074 {
4075 if (conf_parser_ctx.pass == 2)
4076 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4077 }
4078 break;
4079
4080 case 162:
4081 /* Line 1787 of yacc.c */
4082 #line 1109 "conf_parser.y"
4083 {
4084 if (conf_parser_ctx.pass == 2)
4085 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4086 }
4087 break;
4088
4089 case 163:
4090 /* Line 1787 of yacc.c */
4091 #line 1115 "conf_parser.y"
4092 {
4093 if (conf_parser_ctx.pass != 2)
4094 break;
4095
4096 if (yylval.number)
4097 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4098 else
4099 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4100 }
4101 break;
4102
4103 case 164:
4104 /* Line 1787 of yacc.c */
4105 #line 1126 "conf_parser.y"
4106 {
4107 if (conf_parser_ctx.pass == 2)
4108 strlcpy(block_state.file.buf, yylval.string, sizeof(block_state.file.buf));
4109 }
4110 break;
4111
4112 case 165:
4113 /* Line 1787 of yacc.c */
4114 #line 1132 "conf_parser.y"
4115 {
4116 if (conf_parser_ctx.pass == 2)
4117 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
4118 }
4119 break;
4120
4121 case 166:
4122 /* Line 1787 of yacc.c */
4123 #line 1138 "conf_parser.y"
4124 {
4125 if (conf_parser_ctx.pass != 2)
4126 break;
4127
4128 if (yylval.number)
4129 block_state.flags.value |= CONF_FLAGS_SSL;
4130 else
4131 block_state.flags.value &= ~CONF_FLAGS_SSL;
4132 }
4133 break;
4134
4135 case 167:
4136 /* Line 1787 of yacc.c */
4137 #line 1149 "conf_parser.y"
4138 {
4139 if (conf_parser_ctx.pass == 2)
4140 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4141 }
4142 break;
4143
4144 case 168:
4145 /* Line 1787 of yacc.c */
4146 #line 1155 "conf_parser.y"
4147 {
4148 if (conf_parser_ctx.pass == 2)
4149 block_state.modes.value = 0;
4150 }
4151 break;
4152
4153 case 172:
4154 /* Line 1787 of yacc.c */
4155 #line 1162 "conf_parser.y"
4156 {
4157 if (conf_parser_ctx.pass == 2)
4158 block_state.modes.value |= UMODE_BOTS;
4159 }
4160 break;
4161
4162 case 173:
4163 /* Line 1787 of yacc.c */
4164 #line 1166 "conf_parser.y"
4165 {
4166 if (conf_parser_ctx.pass == 2)
4167 block_state.modes.value |= UMODE_CCONN;
4168 }
4169 break;
4170
4171 case 174:
4172 /* Line 1787 of yacc.c */
4173 #line 1170 "conf_parser.y"
4174 {
4175 if (conf_parser_ctx.pass == 2)
4176 block_state.modes.value |= UMODE_DEAF;
4177 }
4178 break;
4179
4180 case 175:
4181 /* Line 1787 of yacc.c */
4182 #line 1174 "conf_parser.y"
4183 {
4184 if (conf_parser_ctx.pass == 2)
4185 block_state.modes.value |= UMODE_DEBUG;
4186 }
4187 break;
4188
4189 case 176:
4190 /* Line 1787 of yacc.c */
4191 #line 1178 "conf_parser.y"
4192 {
4193 if (conf_parser_ctx.pass == 2)
4194 block_state.modes.value |= UMODE_FULL;
4195 }
4196 break;
4197
4198 case 177:
4199 /* Line 1787 of yacc.c */
4200 #line 1182 "conf_parser.y"
4201 {
4202 if (conf_parser_ctx.pass == 2)
4203 block_state.modes.value |= UMODE_HIDDEN;
4204 }
4205 break;
4206
4207 case 178:
4208 /* Line 1787 of yacc.c */
4209 #line 1186 "conf_parser.y"
4210 {
4211 if (conf_parser_ctx.pass == 2)
4212 block_state.modes.value |= UMODE_SKILL;
4213 }
4214 break;
4215
4216 case 179:
4217 /* Line 1787 of yacc.c */
4218 #line 1190 "conf_parser.y"
4219 {
4220 if (conf_parser_ctx.pass == 2)
4221 block_state.modes.value |= UMODE_NCHANGE;
4222 }
4223 break;
4224
4225 case 180:
4226 /* Line 1787 of yacc.c */
4227 #line 1194 "conf_parser.y"
4228 {
4229 if (conf_parser_ctx.pass == 2)
4230 block_state.modes.value |= UMODE_REJ;
4231 }
4232 break;
4233
4234 case 181:
4235 /* Line 1787 of yacc.c */
4236 #line 1198 "conf_parser.y"
4237 {
4238 if (conf_parser_ctx.pass == 2)
4239 block_state.modes.value |= UMODE_UNAUTH;
4240 }
4241 break;
4242
4243 case 182:
4244 /* Line 1787 of yacc.c */
4245 #line 1202 "conf_parser.y"
4246 {
4247 if (conf_parser_ctx.pass == 2)
4248 block_state.modes.value |= UMODE_SPY;
4249 }
4250 break;
4251
4252 case 183:
4253 /* Line 1787 of yacc.c */
4254 #line 1206 "conf_parser.y"
4255 {
4256 if (conf_parser_ctx.pass == 2)
4257 block_state.modes.value |= UMODE_EXTERNAL;
4258 }
4259 break;
4260
4261 case 184:
4262 /* Line 1787 of yacc.c */
4263 #line 1210 "conf_parser.y"
4264 {
4265 if (conf_parser_ctx.pass == 2)
4266 block_state.modes.value |= UMODE_OPERWALL;
4267 }
4268 break;
4269
4270 case 185:
4271 /* Line 1787 of yacc.c */
4272 #line 1214 "conf_parser.y"
4273 {
4274 if (conf_parser_ctx.pass == 2)
4275 block_state.modes.value |= UMODE_SERVNOTICE;
4276 }
4277 break;
4278
4279 case 186:
4280 /* Line 1787 of yacc.c */
4281 #line 1218 "conf_parser.y"
4282 {
4283 if (conf_parser_ctx.pass == 2)
4284 block_state.modes.value |= UMODE_INVISIBLE;
4285 }
4286 break;
4287
4288 case 187:
4289 /* Line 1787 of yacc.c */
4290 #line 1222 "conf_parser.y"
4291 {
4292 if (conf_parser_ctx.pass == 2)
4293 block_state.modes.value |= UMODE_WALLOP;
4294 }
4295 break;
4296
4297 case 188:
4298 /* Line 1787 of yacc.c */
4299 #line 1226 "conf_parser.y"
4300 {
4301 if (conf_parser_ctx.pass == 2)
4302 block_state.modes.value |= UMODE_SOFTCALLERID;
4303 }
4304 break;
4305
4306 case 189:
4307 /* Line 1787 of yacc.c */
4308 #line 1230 "conf_parser.y"
4309 {
4310 if (conf_parser_ctx.pass == 2)
4311 block_state.modes.value |= UMODE_CALLERID;
4312 }
4313 break;
4314
4315 case 190:
4316 /* Line 1787 of yacc.c */
4317 #line 1234 "conf_parser.y"
4318 {
4319 if (conf_parser_ctx.pass == 2)
4320 block_state.modes.value |= UMODE_LOCOPS;
4321 }
4322 break;
4323
4324 case 191:
4325 /* Line 1787 of yacc.c */
4326 #line 1238 "conf_parser.y"
4327 {
4328 if (conf_parser_ctx.pass == 2)
4329 block_state.modes.value |= UMODE_REGONLY;
4330 }
4331 break;
4332
4333 case 192:
4334 /* Line 1787 of yacc.c */
4335 #line 1242 "conf_parser.y"
4336 {
4337 if (conf_parser_ctx.pass == 2)
4338 block_state.modes.value |= UMODE_FARCONNECT;
4339 }
4340 break;
4341
4342 case 193:
4343 /* Line 1787 of yacc.c */
4344 #line 1248 "conf_parser.y"
4345 {
4346 if (conf_parser_ctx.pass == 2)
4347 block_state.port.value = 0;
4348 }
4349 break;
4350
4351 case 197:
4352 /* Line 1787 of yacc.c */
4353 #line 1255 "conf_parser.y"
4354 {
4355 if (conf_parser_ctx.pass == 2)
4356 block_state.port.value |= OPER_FLAG_KILL_REMOTE;
4357 }
4358 break;
4359
4360 case 198:
4361 /* Line 1787 of yacc.c */
4362 #line 1259 "conf_parser.y"
4363 {
4364 if (conf_parser_ctx.pass == 2)
4365 block_state.port.value |= OPER_FLAG_KILL;
4366 }
4367 break;
4368
4369 case 199:
4370 /* Line 1787 of yacc.c */
4371 #line 1263 "conf_parser.y"
4372 {
4373 if (conf_parser_ctx.pass == 2)
4374 block_state.port.value |= OPER_FLAG_CONNECT_REMOTE;
4375 }
4376 break;
4377
4378 case 200:
4379 /* Line 1787 of yacc.c */
4380 #line 1267 "conf_parser.y"
4381 {
4382 if (conf_parser_ctx.pass == 2)
4383 block_state.port.value |= OPER_FLAG_CONNECT;
4384 }
4385 break;
4386
4387 case 201:
4388 /* Line 1787 of yacc.c */
4389 #line 1271 "conf_parser.y"
4390 {
4391 if (conf_parser_ctx.pass == 2)
4392 block_state.port.value |= OPER_FLAG_SQUIT_REMOTE;
4393 }
4394 break;
4395
4396 case 202:
4397 /* Line 1787 of yacc.c */
4398 #line 1275 "conf_parser.y"
4399 {
4400 if (conf_parser_ctx.pass == 2)
4401 block_state.port.value |= OPER_FLAG_SQUIT;
4402 }
4403 break;
4404
4405 case 203:
4406 /* Line 1787 of yacc.c */
4407 #line 1279 "conf_parser.y"
4408 {
4409 if (conf_parser_ctx.pass == 2)
4410 block_state.port.value |= OPER_FLAG_K;
4411 }
4412 break;
4413
4414 case 204:
4415 /* Line 1787 of yacc.c */
4416 #line 1283 "conf_parser.y"
4417 {
4418 if (conf_parser_ctx.pass == 2)
4419 block_state.port.value |= OPER_FLAG_UNKLINE;
4420 }
4421 break;
4422
4423 case 205:
4424 /* Line 1787 of yacc.c */
4425 #line 1287 "conf_parser.y"
4426 {
4427 if (conf_parser_ctx.pass == 2)
4428 block_state.port.value |= OPER_FLAG_DLINE;
4429 }
4430 break;
4431
4432 case 206:
4433 /* Line 1787 of yacc.c */
4434 #line 1291 "conf_parser.y"
4435 {
4436 if (conf_parser_ctx.pass == 2)
4437 block_state.port.value |= OPER_FLAG_UNDLINE;
4438 }
4439 break;
4440
4441 case 207:
4442 /* Line 1787 of yacc.c */
4443 #line 1295 "conf_parser.y"
4444 {
4445 if (conf_parser_ctx.pass == 2)
4446 block_state.port.value |= OPER_FLAG_X;
4447 }
4448 break;
4449
4450 case 208:
4451 /* Line 1787 of yacc.c */
4452 #line 1299 "conf_parser.y"
4453 {
4454 if (conf_parser_ctx.pass == 2)
4455 block_state.port.value |= OPER_FLAG_GLINE;
4456 }
4457 break;
4458
4459 case 209:
4460 /* Line 1787 of yacc.c */
4461 #line 1303 "conf_parser.y"
4462 {
4463 if (conf_parser_ctx.pass == 2)
4464 block_state.port.value |= OPER_FLAG_DIE;
4465 }
4466 break;
4467
4468 case 210:
4469 /* Line 1787 of yacc.c */
4470 #line 1307 "conf_parser.y"
4471 {
4472 if (conf_parser_ctx.pass == 2)
4473 block_state.port.value |= OPER_FLAG_RESTART;
4474 }
4475 break;
4476
4477 case 211:
4478 /* Line 1787 of yacc.c */
4479 #line 1311 "conf_parser.y"
4480 {
4481 if (conf_parser_ctx.pass == 2)
4482 block_state.port.value |= OPER_FLAG_REHASH;
4483 }
4484 break;
4485
4486 case 212:
4487 /* Line 1787 of yacc.c */
4488 #line 1315 "conf_parser.y"
4489 {
4490 if (conf_parser_ctx.pass == 2)
4491 block_state.port.value |= OPER_FLAG_ADMIN;
4492 }
4493 break;
4494
4495 case 213:
4496 /* Line 1787 of yacc.c */
4497 #line 1319 "conf_parser.y"
4498 {
4499 if (conf_parser_ctx.pass == 2)
4500 block_state.port.value |= OPER_FLAG_OPERWALL;
4501 }
4502 break;
4503
4504 case 214:
4505 /* Line 1787 of yacc.c */
4506 #line 1323 "conf_parser.y"
4507 {
4508 if (conf_parser_ctx.pass == 2)
4509 block_state.port.value |= OPER_FLAG_GLOBOPS;
4510 }
4511 break;
4512
4513 case 215:
4514 /* Line 1787 of yacc.c */
4515 #line 1327 "conf_parser.y"
4516 {
4517 if (conf_parser_ctx.pass == 2)
4518 block_state.port.value |= OPER_FLAG_WALLOPS;
4519 }
4520 break;
4521
4522 case 216:
4523 /* Line 1787 of yacc.c */
4524 #line 1331 "conf_parser.y"
4525 {
4526 if (conf_parser_ctx.pass == 2)
4527 block_state.port.value |= OPER_FLAG_LOCOPS;
4528 }
4529 break;
4530
4531 case 217:
4532 /* Line 1787 of yacc.c */
4533 #line 1335 "conf_parser.y"
4534 {
4535 if (conf_parser_ctx.pass == 2)
4536 block_state.port.value |= OPER_FLAG_REMOTEBAN;
4537 }
4538 break;
4539
4540 case 218:
4541 /* Line 1787 of yacc.c */
4542 #line 1339 "conf_parser.y"
4543 {
4544 if (conf_parser_ctx.pass == 2)
4545 block_state.port.value |= OPER_FLAG_SET;
4546 }
4547 break;
4548
4549 case 219:
4550 /* Line 1787 of yacc.c */
4551 #line 1343 "conf_parser.y"
4552 {
4553 if (conf_parser_ctx.pass == 2)
4554 block_state.port.value |= OPER_FLAG_MODULE;
4555 }
4556 break;
4557
4558 case 220:
4559 /* Line 1787 of yacc.c */
4560 #line 1353 "conf_parser.y"
4561 {
4562 if (conf_parser_ctx.pass != 1)
4563 break;
4564
4565 reset_block_state();
4566
4567 block_state.ping_freq.value = DEFAULT_PINGFREQUENCY;
4568 block_state.con_freq.value = DEFAULT_CONNECTFREQUENCY;
4569 block_state.max_total.value = MAXIMUM_LINKS_DEFAULT;
4570 block_state.max_sendq.value = DEFAULT_SENDQ;
4571 block_state.max_recvq.value = DEFAULT_RECVQ;
4572 }
4573 break;
4574
4575 case 221:
4576 /* Line 1787 of yacc.c */
4577 #line 1365 "conf_parser.y"
4578 {
4579 struct ClassItem *class = NULL;
4580
4581 if (conf_parser_ctx.pass != 1)
4582 break;
4583
4584 if (!block_state.class.buf[0])
4585 break;
4586
4587 if (!(class = class_find(block_state.class.buf, 0)))
4588 class = class_make();
4589
4590 class->active = 1;
4591 MyFree(class->name);
4592 class->name = xstrdup(block_state.class.buf);
4593 class->ping_freq = block_state.ping_freq.value;
4594 class->max_perip = block_state.max_perip.value;
4595 class->con_freq = block_state.con_freq.value;
4596 class->max_total = block_state.max_total.value;
4597 class->max_global = block_state.max_global.value;
4598 class->max_local = block_state.max_local.value;
4599 class->max_ident = block_state.max_ident.value;
4600 class->max_sendq = block_state.max_sendq.value;
4601 class->max_recvq = block_state.max_recvq.value;
4602
4603 if (block_state.min_idle.value > block_state.max_idle.value)
4604 {
4605 block_state.min_idle.value = 0;
4606 block_state.max_idle.value = 0;
4607 block_state.flags.value &= ~CLASS_FLAGS_FAKE_IDLE;
4608 }
4609
4610 class->flags = block_state.flags.value;
4611 class->min_idle = block_state.min_idle.value;
4612 class->max_idle = block_state.max_idle.value;
4613
4614 if (class->number_per_cidr && block_state.number_per_cidr.value)
4615 if ((class->cidr_bitlen_ipv4 && block_state.cidr_bitlen_ipv4.value) ||
4616 (class->cidr_bitlen_ipv6 && block_state.cidr_bitlen_ipv6.value))
4617 if ((class->cidr_bitlen_ipv4 != block_state.cidr_bitlen_ipv4.value) ||
4618 (class->cidr_bitlen_ipv6 != block_state.cidr_bitlen_ipv6.value))
4619 rebuild_cidr_list(class);
4620
4621 class->cidr_bitlen_ipv4 = block_state.cidr_bitlen_ipv4.value;
4622 class->cidr_bitlen_ipv6 = block_state.cidr_bitlen_ipv6.value;
4623 class->number_per_cidr = block_state.number_per_cidr.value;
4624 }
4625 break;
4626
4627 case 241:
4628 /* Line 1787 of yacc.c */
4629 #line 1431 "conf_parser.y"
4630 {
4631 if (conf_parser_ctx.pass == 1)
4632 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4633 }
4634 break;
4635
4636 case 242:
4637 /* Line 1787 of yacc.c */
4638 #line 1437 "conf_parser.y"
4639 {
4640 if (conf_parser_ctx.pass == 1)
4641 block_state.ping_freq.value = (yyvsp[(3) - (4)].number);
4642 }
4643 break;
4644
4645 case 243:
4646 /* Line 1787 of yacc.c */
4647 #line 1443 "conf_parser.y"
4648 {
4649 if (conf_parser_ctx.pass == 1)
4650 block_state.max_perip.value = (yyvsp[(3) - (4)].number);
4651 }
4652 break;
4653
4654 case 244:
4655 /* Line 1787 of yacc.c */
4656 #line 1449 "conf_parser.y"
4657 {
4658 if (conf_parser_ctx.pass == 1)
4659 block_state.con_freq.value = (yyvsp[(3) - (4)].number);
4660 }
4661 break;
4662
4663 case 245:
4664 /* Line 1787 of yacc.c */
4665 #line 1455 "conf_parser.y"
4666 {
4667 if (conf_parser_ctx.pass == 1)
4668 block_state.max_total.value = (yyvsp[(3) - (4)].number);
4669 }
4670 break;
4671
4672 case 246:
4673 /* Line 1787 of yacc.c */
4674 #line 1461 "conf_parser.y"
4675 {
4676 if (conf_parser_ctx.pass == 1)
4677 block_state.max_global.value = (yyvsp[(3) - (4)].number);
4678 }
4679 break;
4680
4681 case 247:
4682 /* Line 1787 of yacc.c */
4683 #line 1467 "conf_parser.y"
4684 {
4685 if (conf_parser_ctx.pass == 1)
4686 block_state.max_local.value = (yyvsp[(3) - (4)].number);
4687 }
4688 break;
4689
4690 case 248:
4691 /* Line 1787 of yacc.c */
4692 #line 1473 "conf_parser.y"
4693 {
4694 if (conf_parser_ctx.pass == 1)
4695 block_state.max_ident.value = (yyvsp[(3) - (4)].number);
4696 }
4697 break;
4698
4699 case 249:
4700 /* Line 1787 of yacc.c */
4701 #line 1479 "conf_parser.y"
4702 {
4703 if (conf_parser_ctx.pass == 1)
4704 block_state.max_sendq.value = (yyvsp[(3) - (4)].number);
4705 }
4706 break;
4707
4708 case 250:
4709 /* Line 1787 of yacc.c */
4710 #line 1485 "conf_parser.y"
4711 {
4712 if (conf_parser_ctx.pass == 1)
4713 if ((yyvsp[(3) - (4)].number) >= CLIENT_FLOOD_MIN && (yyvsp[(3) - (4)].number) <= CLIENT_FLOOD_MAX)
4714 block_state.max_recvq.value = (yyvsp[(3) - (4)].number);
4715 }
4716 break;
4717
4718 case 251:
4719 /* Line 1787 of yacc.c */
4720 #line 1492 "conf_parser.y"
4721 {
4722 if (conf_parser_ctx.pass == 1)
4723 block_state.cidr_bitlen_ipv4.value = (yyvsp[(3) - (4)].number) > 32 ? 32 : (yyvsp[(3) - (4)].number);
4724 }
4725 break;
4726
4727 case 252:
4728 /* Line 1787 of yacc.c */
4729 #line 1498 "conf_parser.y"
4730 {
4731 if (conf_parser_ctx.pass == 1)
4732 block_state.cidr_bitlen_ipv6.value = (yyvsp[(3) - (4)].number) > 128 ? 128 : (yyvsp[(3) - (4)].number);
4733 }
4734 break;
4735
4736 case 253:
4737 /* Line 1787 of yacc.c */
4738 #line 1504 "conf_parser.y"
4739 {
4740 if (conf_parser_ctx.pass == 1)
4741 block_state.number_per_cidr.value = (yyvsp[(3) - (4)].number);
4742 }
4743 break;
4744
4745 case 254:
4746 /* Line 1787 of yacc.c */
4747 #line 1510 "conf_parser.y"
4748 {
4749 if (conf_parser_ctx.pass != 1)
4750 break;
4751
4752 block_state.min_idle.value = (yyvsp[(3) - (4)].number);
4753 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4754 }
4755 break;
4756
4757 case 255:
4758 /* Line 1787 of yacc.c */
4759 #line 1519 "conf_parser.y"
4760 {
4761 if (conf_parser_ctx.pass != 1)
4762 break;
4763
4764 block_state.max_idle.value = (yyvsp[(3) - (4)].number);
4765 block_state.flags.value |= CLASS_FLAGS_FAKE_IDLE;
4766 }
4767 break;
4768
4769 case 256:
4770 /* Line 1787 of yacc.c */
4771 #line 1528 "conf_parser.y"
4772 {
4773 if (conf_parser_ctx.pass == 1)
4774 block_state.flags.value &= CLASS_FLAGS_FAKE_IDLE;
4775 }
4776 break;
4777
4778 case 260:
4779 /* Line 1787 of yacc.c */
4780 #line 1535 "conf_parser.y"
4781 {
4782 if (conf_parser_ctx.pass == 1)
4783 block_state.flags.value |= CLASS_FLAGS_RANDOM_IDLE;
4784 }
4785 break;
4786
4787 case 261:
4788 /* Line 1787 of yacc.c */
4789 #line 1539 "conf_parser.y"
4790 {
4791 if (conf_parser_ctx.pass == 1)
4792 block_state.flags.value |= CLASS_FLAGS_HIDE_IDLE_FROM_OPERS;
4793 }
4794 break;
4795
4796 case 262:
4797 /* Line 1787 of yacc.c */
4798 #line 1549 "conf_parser.y"
4799 {
4800 if (conf_parser_ctx.pass == 2)
4801 reset_block_state();
4802 }
4803 break;
4804
4805 case 264:
4806 /* Line 1787 of yacc.c */
4807 #line 1555 "conf_parser.y"
4808 {
4809 block_state.flags.value = 0;
4810 }
4811 break;
4812
4813 case 268:
4814 /* Line 1787 of yacc.c */
4815 #line 1561 "conf_parser.y"
4816 {
4817 if (conf_parser_ctx.pass == 2)
4818 block_state.flags.value |= LISTENER_SSL;
4819 }
4820 break;
4821
4822 case 269:
4823 /* Line 1787 of yacc.c */
4824 #line 1565 "conf_parser.y"
4825 {
4826 if (conf_parser_ctx.pass == 2)
4827 block_state.flags.value |= LISTENER_HIDDEN;
4828 }
4829 break;
4830
4831 case 270:
4832 /* Line 1787 of yacc.c */
4833 #line 1569 "conf_parser.y"
4834 {
4835 if (conf_parser_ctx.pass == 2)
4836 block_state.flags.value |= LISTENER_SERVER;
4837 }
4838 break;
4839
4840 case 278:
4841 /* Line 1787 of yacc.c */
4842 #line 1577 "conf_parser.y"
4843 { block_state.flags.value = 0; }
4844 break;
4845
4846 case 282:
4847 /* Line 1787 of yacc.c */
4848 #line 1582 "conf_parser.y"
4849 {
4850 if (conf_parser_ctx.pass == 2)
4851 {
4852 if (block_state.flags.value & LISTENER_SSL)
4853 #ifdef HAVE_LIBCRYPTO
4854 if (!ServerInfo.server_ctx)
4855 #endif
4856 {
4857 conf_error_report("SSL not available - port closed");
4858 break;
4859 }
4860 add_listener((yyvsp[(1) - (1)].number), block_state.addr.buf, block_state.flags.value);
4861 }
4862 }
4863 break;
4864
4865 case 283:
4866 /* Line 1787 of yacc.c */
4867 #line 1596 "conf_parser.y"
4868 {
4869 if (conf_parser_ctx.pass == 2)
4870 {
4871 int i;
4872
4873 if (block_state.flags.value & LISTENER_SSL)
4874 #ifdef HAVE_LIBCRYPTO
4875 if (!ServerInfo.server_ctx)
4876 #endif
4877 {
4878 conf_error_report("SSL not available - port closed");
4879 break;
4880 }
4881
4882 for (i = (yyvsp[(1) - (3)].number); i <= (yyvsp[(3) - (3)].number); ++i)
4883 add_listener(i, block_state.addr.buf, block_state.flags.value);
4884 }
4885 }
4886 break;
4887
4888 case 284:
4889 /* Line 1787 of yacc.c */
4890 #line 1616 "conf_parser.y"
4891 {
4892 if (conf_parser_ctx.pass == 2)
4893 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4894 }
4895 break;
4896
4897 case 285:
4898 /* Line 1787 of yacc.c */
4899 #line 1622 "conf_parser.y"
4900 {
4901 if (conf_parser_ctx.pass == 2)
4902 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
4903 }
4904 break;
4905
4906 case 286:
4907 /* Line 1787 of yacc.c */
4908 #line 1631 "conf_parser.y"
4909 {
4910 if (conf_parser_ctx.pass == 2)
4911 reset_block_state();
4912 }
4913 break;
4914
4915 case 287:
4916 /* Line 1787 of yacc.c */
4917 #line 1635 "conf_parser.y"
4918 {
4919 dlink_node *ptr = NULL;
4920
4921 if (conf_parser_ctx.pass != 2)
4922 break;
4923
4924 DLINK_FOREACH(ptr, block_state.mask.list.head)
4925 {
4926 struct MaskItem *conf = NULL;
4927 struct split_nuh_item nuh;
4928
4929 nuh.nuhmask = ptr->data;
4930 nuh.nickptr = NULL;
4931 nuh.userptr = block_state.user.buf;
4932 nuh.hostptr = block_state.host.buf;
4933 nuh.nicksize = 0;
4934 nuh.usersize = sizeof(block_state.user.buf);
4935 nuh.hostsize = sizeof(block_state.host.buf);
4936 split_nuh(&nuh);
4937
4938 conf = conf_make(CONF_CLIENT);
4939 conf->user = xstrdup(block_state.user.buf);
4940 conf->host = xstrdup(block_state.host.buf);
4941
4942 if (block_state.rpass.buf[0])
4943 conf->passwd = xstrdup(block_state.rpass.buf);
4944 if (block_state.name.buf[0])
4945 conf->name = xstrdup(block_state.name.buf);
4946
4947 conf->flags = block_state.flags.value;
4948 conf->port = block_state.port.value;
4949
4950 conf_add_class_to_conf(conf, block_state.class.buf);
4951 add_conf_by_address(CONF_CLIENT, conf);
4952 }
4953 }
4954 break;
4955
4956 case 299:
4957 /* Line 1787 of yacc.c */
4958 #line 1678 "conf_parser.y"
4959 {
4960 if (conf_parser_ctx.pass == 2)
4961 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
4962 }
4963 break;
4964
4965 case 300:
4966 /* Line 1787 of yacc.c */
4967 #line 1684 "conf_parser.y"
4968 {
4969 if (conf_parser_ctx.pass == 2)
4970 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
4971 }
4972 break;
4973
4974 case 301:
4975 /* Line 1787 of yacc.c */
4976 #line 1690 "conf_parser.y"
4977 {
4978 if (conf_parser_ctx.pass == 2)
4979 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
4980 }
4981 break;
4982
4983 case 302:
4984 /* Line 1787 of yacc.c */
4985 #line 1696 "conf_parser.y"
4986 {
4987 if (conf_parser_ctx.pass == 2)
4988 {
4989 if (yylval.number)
4990 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
4991 else
4992 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
4993 }
4994 }
4995 break;
4996
4997 case 303:
4998 /* Line 1787 of yacc.c */
4999 #line 1707 "conf_parser.y"
5000 {
5001 if (conf_parser_ctx.pass == 2)
5002 block_state.flags.value &= (CONF_FLAGS_ENCRYPTED | CONF_FLAGS_SPOOF_IP);
5003 }
5004 break;
5005
5006 case 307:
5007 /* Line 1787 of yacc.c */
5008 #line 1714 "conf_parser.y"
5009 {
5010 if (conf_parser_ctx.pass == 2)
5011 block_state.flags.value |= CONF_FLAGS_SPOOF_NOTICE;
5012 }
5013 break;
5014
5015 case 308:
5016 /* Line 1787 of yacc.c */
5017 #line 1718 "conf_parser.y"
5018 {
5019 if (conf_parser_ctx.pass == 2)
5020 block_state.flags.value |= CONF_FLAGS_NOLIMIT;
5021 }
5022 break;
5023
5024 case 309:
5025 /* Line 1787 of yacc.c */
5026 #line 1722 "conf_parser.y"
5027 {
5028 if (conf_parser_ctx.pass == 2)
5029 block_state.flags.value |= CONF_FLAGS_EXEMPTKLINE;
5030 }
5031 break;
5032
5033 case 310:
5034 /* Line 1787 of yacc.c */
5035 #line 1726 "conf_parser.y"
5036 {
5037 if (conf_parser_ctx.pass == 2)
5038 block_state.flags.value |= CONF_FLAGS_NEED_IDENTD;
5039 }
5040 break;
5041
5042 case 311:
5043 /* Line 1787 of yacc.c */
5044 #line 1730 "conf_parser.y"
5045 {
5046 if (conf_parser_ctx.pass == 2)
5047 block_state.flags.value |= CONF_FLAGS_CAN_FLOOD;
5048 }
5049 break;
5050
5051 case 312:
5052 /* Line 1787 of yacc.c */
5053 #line 1734 "conf_parser.y"
5054 {
5055 if (conf_parser_ctx.pass == 2)
5056 block_state.flags.value |= CONF_FLAGS_NO_TILDE;
5057 }
5058 break;
5059
5060 case 313:
5061 /* Line 1787 of yacc.c */
5062 #line 1738 "conf_parser.y"
5063 {
5064 if (conf_parser_ctx.pass == 2)
5065 block_state.flags.value |= CONF_FLAGS_EXEMPTGLINE;
5066 }
5067 break;
5068
5069 case 314:
5070 /* Line 1787 of yacc.c */
5071 #line 1742 "conf_parser.y"
5072 {
5073 if (conf_parser_ctx.pass == 2)
5074 block_state.flags.value |= CONF_FLAGS_EXEMPTRESV;
5075 }
5076 break;
5077
5078 case 315:
5079 /* Line 1787 of yacc.c */
5080 #line 1746 "conf_parser.y"
5081 {
5082 if (conf_parser_ctx.pass == 2)
5083 block_state.flags.value |= CONF_FLAGS_WEBIRC;
5084 }
5085 break;
5086
5087 case 316:
5088 /* Line 1787 of yacc.c */
5089 #line 1750 "conf_parser.y"
5090 {
5091 if (conf_parser_ctx.pass == 2)
5092 block_state.flags.value |= CONF_FLAGS_NEED_PASSWORD;
5093 }
5094 break;
5095
5096 case 317:
5097 /* Line 1787 of yacc.c */
5098 #line 1756 "conf_parser.y"
5099 {
5100 if (conf_parser_ctx.pass != 2)
5101 break;
5102
5103 if (strlen(yylval.string) <= HOSTLEN && valid_hostname(yylval.string))
5104 {
5105 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5106 block_state.flags.value |= CONF_FLAGS_SPOOF_IP;
5107 }
5108 else
5109 ilog(LOG_TYPE_IRCD, "Spoof either is too long or contains invalid characters. Ignoring it.");
5110 }
5111 break;
5112
5113 case 318:
5114 /* Line 1787 of yacc.c */
5115 #line 1770 "conf_parser.y"
5116 {
5117 if (conf_parser_ctx.pass != 2)
5118 break;
5119
5120 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5121 block_state.flags.value |= CONF_FLAGS_REDIR;
5122 }
5123 break;
5124
5125 case 319:
5126 /* Line 1787 of yacc.c */
5127 #line 1779 "conf_parser.y"
5128 {
5129 if (conf_parser_ctx.pass != 2)
5130 break;
5131
5132 block_state.flags.value |= CONF_FLAGS_REDIR;
5133 block_state.port.value = (yyvsp[(3) - (4)].number);
5134 }
5135 break;
5136
5137 case 320:
5138 /* Line 1787 of yacc.c */
5139 #line 1792 "conf_parser.y"
5140 {
5141 if (conf_parser_ctx.pass != 2)
5142 break;
5143
5144 reset_block_state();
5145 strlcpy(block_state.rpass.buf, CONF_NOREASON, sizeof(block_state.rpass.buf));
5146 }
5147 break;
5148
5149 case 321:
5150 /* Line 1787 of yacc.c */
5151 #line 1799 "conf_parser.y"
5152 {
5153 if (conf_parser_ctx.pass != 2)
5154 break;
5155
5156 create_resv(block_state.name.buf, block_state.rpass.buf, &block_state.mask.list);
5157 }
5158 break;
5159
5160 case 328:
5161 /* Line 1787 of yacc.c */
5162 #line 1810 "conf_parser.y"
5163 {
5164 if (conf_parser_ctx.pass == 2)
5165 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5166 }
5167 break;
5168
5169 case 329:
5170 /* Line 1787 of yacc.c */
5171 #line 1816 "conf_parser.y"
5172 {
5173 if (conf_parser_ctx.pass == 2)
5174 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5175 }
5176 break;
5177
5178 case 330:
5179 /* Line 1787 of yacc.c */
5180 #line 1822 "conf_parser.y"
5181 {
5182 if (conf_parser_ctx.pass == 2)
5183 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.mask.list);
5184 }
5185 break;
5186
5187 case 336:
5188 /* Line 1787 of yacc.c */
5189 #line 1837 "conf_parser.y"
5190 {
5191 if (conf_parser_ctx.pass != 2)
5192 break;
5193
5194 if (valid_servname(yylval.string))
5195 {
5196 struct MaskItem *conf = conf_make(CONF_SERVICE);
5197 conf->name = xstrdup(yylval.string);
5198 }
5199 }
5200 break;
5201
5202 case 337:
5203 /* Line 1787 of yacc.c */
5204 #line 1852 "conf_parser.y"
5205 {
5206 if (conf_parser_ctx.pass != 2)
5207 break;
5208
5209 reset_block_state();
5210
5211 strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5212 strlcpy(block_state.user.buf, "*", sizeof(block_state.user.buf));
5213 strlcpy(block_state.host.buf, "*", sizeof(block_state.host.buf));
5214 block_state.flags.value = SHARED_ALL;
5215 }
5216 break;
5217
5218 case 338:
5219 /* Line 1787 of yacc.c */
5220 #line 1863 "conf_parser.y"
5221 {
5222 struct MaskItem *conf = NULL;
5223
5224 if (conf_parser_ctx.pass != 2)
5225 break;
5226
5227 conf = conf_make(CONF_ULINE);
5228 conf->flags = block_state.flags.value;
5229 conf->name = xstrdup(block_state.name.buf);
5230 conf->user = xstrdup(block_state.user.buf);
5231 conf->host = xstrdup(block_state.host.buf);
5232 }
5233 break;
5234
5235 case 345:
5236 /* Line 1787 of yacc.c */
5237 #line 1880 "conf_parser.y"
5238 {
5239 if (conf_parser_ctx.pass == 2)
5240 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5241 }
5242 break;
5243
5244 case 346:
5245 /* Line 1787 of yacc.c */
5246 #line 1886 "conf_parser.y"
5247 {
5248 if (conf_parser_ctx.pass == 2)
5249 {
5250 struct split_nuh_item nuh;
5251
5252 nuh.nuhmask = yylval.string;
5253 nuh.nickptr = NULL;
5254 nuh.userptr = block_state.user.buf;
5255 nuh.hostptr = block_state.host.buf;
5256
5257 nuh.nicksize = 0;
5258 nuh.usersize = sizeof(block_state.user.buf);
5259 nuh.hostsize = sizeof(block_state.host.buf);
5260
5261 split_nuh(&nuh);
5262 }
5263 }
5264 break;
5265
5266 case 347:
5267 /* Line 1787 of yacc.c */
5268 #line 1905 "conf_parser.y"
5269 {
5270 if (conf_parser_ctx.pass == 2)
5271 block_state.flags.value = 0;
5272 }
5273 break;
5274
5275 case 351:
5276 /* Line 1787 of yacc.c */
5277 #line 1912 "conf_parser.y"
5278 {
5279 if (conf_parser_ctx.pass == 2)
5280 block_state.flags.value |= SHARED_KLINE;
5281 }
5282 break;
5283
5284 case 352:
5285 /* Line 1787 of yacc.c */
5286 #line 1916 "conf_parser.y"
5287 {
5288 if (conf_parser_ctx.pass == 2)
5289 block_state.flags.value |= SHARED_UNKLINE;
5290 }
5291 break;
5292
5293 case 353:
5294 /* Line 1787 of yacc.c */
5295 #line 1920 "conf_parser.y"
5296 {
5297 if (conf_parser_ctx.pass == 2)
5298 block_state.flags.value |= SHARED_DLINE;
5299 }
5300 break;
5301
5302 case 354:
5303 /* Line 1787 of yacc.c */
5304 #line 1924 "conf_parser.y"
5305 {
5306 if (conf_parser_ctx.pass == 2)
5307 block_state.flags.value |= SHARED_UNDLINE;
5308 }
5309 break;
5310
5311 case 355:
5312 /* Line 1787 of yacc.c */
5313 #line 1928 "conf_parser.y"
5314 {
5315 if (conf_parser_ctx.pass == 2)
5316 block_state.flags.value |= SHARED_XLINE;
5317 }
5318 break;
5319
5320 case 356:
5321 /* Line 1787 of yacc.c */
5322 #line 1932 "conf_parser.y"
5323 {
5324 if (conf_parser_ctx.pass == 2)
5325 block_state.flags.value |= SHARED_UNXLINE;
5326 }
5327 break;
5328
5329 case 357:
5330 /* Line 1787 of yacc.c */
5331 #line 1936 "conf_parser.y"
5332 {
5333 if (conf_parser_ctx.pass == 2)
5334 block_state.flags.value |= SHARED_RESV;
5335 }
5336 break;
5337
5338 case 358:
5339 /* Line 1787 of yacc.c */
5340 #line 1940 "conf_parser.y"
5341 {
5342 if (conf_parser_ctx.pass == 2)
5343 block_state.flags.value |= SHARED_UNRESV;
5344 }
5345 break;
5346
5347 case 359:
5348 /* Line 1787 of yacc.c */
5349 #line 1944 "conf_parser.y"
5350 {
5351 if (conf_parser_ctx.pass == 2)
5352 block_state.flags.value |= SHARED_LOCOPS;
5353 }
5354 break;
5355
5356 case 360:
5357 /* Line 1787 of yacc.c */
5358 #line 1948 "conf_parser.y"
5359 {
5360 if (conf_parser_ctx.pass == 2)
5361 block_state.flags.value = SHARED_ALL;
5362 }
5363 break;
5364
5365 case 361:
5366 /* Line 1787 of yacc.c */
5367 #line 1957 "conf_parser.y"
5368 {
5369 if (conf_parser_ctx.pass != 2)
5370 break;
5371
5372 reset_block_state();
5373
5374 strlcpy(block_state.name.buf, "*", sizeof(block_state.name.buf));
5375 block_state.flags.value = SHARED_ALL;
5376 }
5377 break;
5378
5379 case 362:
5380 /* Line 1787 of yacc.c */
5381 #line 1966 "conf_parser.y"
5382 {
5383 struct MaskItem *conf = NULL;
5384
5385 if (conf_parser_ctx.pass != 2)
5386 break;
5387
5388 conf = conf_make(CONF_CLUSTER);
5389 conf->flags = block_state.flags.value;
5390 conf->name = xstrdup(block_state.name.buf);
5391 }
5392 break;
5393
5394 case 368:
5395 /* Line 1787 of yacc.c */
5396 #line 1981 "conf_parser.y"
5397 {
5398 if (conf_parser_ctx.pass == 2)
5399 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5400 }
5401 break;
5402
5403 case 369:
5404 /* Line 1787 of yacc.c */
5405 #line 1987 "conf_parser.y"
5406 {
5407 if (conf_parser_ctx.pass == 2)
5408 block_state.flags.value = 0;
5409 }
5410 break;
5411
5412 case 373:
5413 /* Line 1787 of yacc.c */
5414 #line 1994 "conf_parser.y"
5415 {
5416 if (conf_parser_ctx.pass == 2)
5417 block_state.flags.value |= SHARED_KLINE;
5418 }
5419 break;
5420
5421 case 374:
5422 /* Line 1787 of yacc.c */
5423 #line 1998 "conf_parser.y"
5424 {
5425 if (conf_parser_ctx.pass == 2)
5426 block_state.flags.value |= SHARED_UNKLINE;
5427 }
5428 break;
5429
5430 case 375:
5431 /* Line 1787 of yacc.c */
5432 #line 2002 "conf_parser.y"
5433 {
5434 if (conf_parser_ctx.pass == 2)
5435 block_state.flags.value |= SHARED_DLINE;
5436 }
5437 break;
5438
5439 case 376:
5440 /* Line 1787 of yacc.c */
5441 #line 2006 "conf_parser.y"
5442 {
5443 if (conf_parser_ctx.pass == 2)
5444 block_state.flags.value |= SHARED_UNDLINE;
5445 }
5446 break;
5447
5448 case 377:
5449 /* Line 1787 of yacc.c */
5450 #line 2010 "conf_parser.y"
5451 {
5452 if (conf_parser_ctx.pass == 2)
5453 block_state.flags.value |= SHARED_XLINE;
5454 }
5455 break;
5456
5457 case 378:
5458 /* Line 1787 of yacc.c */
5459 #line 2014 "conf_parser.y"
5460 {
5461 if (conf_parser_ctx.pass == 2)
5462 block_state.flags.value |= SHARED_UNXLINE;
5463 }
5464 break;
5465
5466 case 379:
5467 /* Line 1787 of yacc.c */
5468 #line 2018 "conf_parser.y"
5469 {
5470 if (conf_parser_ctx.pass == 2)
5471 block_state.flags.value |= SHARED_RESV;
5472 }
5473 break;
5474
5475 case 380:
5476 /* Line 1787 of yacc.c */
5477 #line 2022 "conf_parser.y"
5478 {
5479 if (conf_parser_ctx.pass == 2)
5480 block_state.flags.value |= SHARED_UNRESV;
5481 }
5482 break;
5483
5484 case 381:
5485 /* Line 1787 of yacc.c */
5486 #line 2026 "conf_parser.y"
5487 {
5488 if (conf_parser_ctx.pass == 2)
5489 block_state.flags.value |= SHARED_LOCOPS;
5490 }
5491 break;
5492
5493 case 382:
5494 /* Line 1787 of yacc.c */
5495 #line 2030 "conf_parser.y"
5496 {
5497 if (conf_parser_ctx.pass == 2)
5498 block_state.flags.value = SHARED_ALL;
5499 }
5500 break;
5501
5502 case 383:
5503 /* Line 1787 of yacc.c */
5504 #line 2039 "conf_parser.y"
5505 {
5506
5507 if (conf_parser_ctx.pass != 2)
5508 break;
5509
5510 reset_block_state();
5511 block_state.port.value = PORTNUM;
5512 }
5513 break;
5514
5515 case 384:
5516 /* Line 1787 of yacc.c */
5517 #line 2047 "conf_parser.y"
5518 {
5519 struct MaskItem *conf = NULL;
5520 struct addrinfo hints, *res;
5521
5522 if (conf_parser_ctx.pass != 2)
5523 break;
5524
5525 if (!block_state.name.buf[0] ||
5526 !block_state.host.buf[0])
5527 break;
5528
5529 if (!block_state.rpass.buf[0] ||
5530 !block_state.spass.buf[0])
5531 break;
5532
5533 if (has_wildcards(block_state.name.buf) ||
5534 has_wildcards(block_state.host.buf))
5535 break;
5536
5537 conf = conf_make(CONF_SERVER);
5538 conf->port = block_state.port.value;
5539 conf->flags = block_state.flags.value;
5540 conf->aftype = block_state.aftype.value;
5541 conf->host = xstrdup(block_state.host.buf);
5542 conf->name = xstrdup(block_state.name.buf);
5543 conf->passwd = xstrdup(block_state.rpass.buf);
5544 conf->spasswd = xstrdup(block_state.spass.buf);
5545
5546 if (block_state.cert.buf[0])
5547 conf->certfp = xstrdup(block_state.cert.buf);
5548
5549 if (block_state.ciph.buf[0])
5550 conf->cipher_list = xstrdup(block_state.ciph.buf);
5551
5552 dlinkMoveList(&block_state.leaf.list, &conf->leaf_list);
5553 dlinkMoveList(&block_state.hub.list, &conf->hub_list);
5554
5555 if (block_state.bind.buf[0])
5556 {
5557 memset(&hints, 0, sizeof(hints));
5558
5559 hints.ai_family = AF_UNSPEC;
5560 hints.ai_socktype = SOCK_STREAM;
5561 hints.ai_flags = AI_PASSIVE | AI_NUMERICHOST;
5562
5563 if (getaddrinfo(block_state.bind.buf, NULL, &hints, &res))
5564 ilog(LOG_TYPE_IRCD, "Invalid netmask for server vhost(%s)", block_state.bind.buf);
5565 else
5566 {
5567 assert(res != NULL);
5568
5569 memcpy(&conf->bind, res->ai_addr, res->ai_addrlen);
5570 conf->bind.ss.ss_family = res->ai_family;
5571 conf->bind.ss_len = res->ai_addrlen;
5572 freeaddrinfo(res);
5573 }
5574 }
5575
5576 conf_add_class_to_conf(conf, block_state.class.buf);
5577 lookup_confhost(conf);
5578 }
5579 break;
5580
5581 case 402:
5582 /* Line 1787 of yacc.c */
5583 #line 2119 "conf_parser.y"
5584 {
5585 if (conf_parser_ctx.pass == 2)
5586 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5587 }
5588 break;
5589
5590 case 403:
5591 /* Line 1787 of yacc.c */
5592 #line 2125 "conf_parser.y"
5593 {
5594 if (conf_parser_ctx.pass == 2)
5595 strlcpy(block_state.host.buf, yylval.string, sizeof(block_state.host.buf));
5596 }
5597 break;
5598
5599 case 404:
5600 /* Line 1787 of yacc.c */
5601 #line 2131 "conf_parser.y"
5602 {
5603 if (conf_parser_ctx.pass == 2)
5604 strlcpy(block_state.bind.buf, yylval.string, sizeof(block_state.bind.buf));
5605 }
5606 break;
5607
5608 case 405:
5609 /* Line 1787 of yacc.c */
5610 #line 2137 "conf_parser.y"
5611 {
5612 if (conf_parser_ctx.pass != 2)
5613 break;
5614
5615 if ((yyvsp[(3) - (4)].string)[0] == ':')
5616 conf_error_report("Server passwords cannot begin with a colon");
5617 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5618 conf_error_report("Server passwords cannot contain spaces");
5619 else
5620 strlcpy(block_state.spass.buf, yylval.string, sizeof(block_state.spass.buf));
5621 }
5622 break;
5623
5624 case 406:
5625 /* Line 1787 of yacc.c */
5626 #line 2150 "conf_parser.y"
5627 {
5628 if (conf_parser_ctx.pass != 2)
5629 break;
5630
5631 if ((yyvsp[(3) - (4)].string)[0] == ':')
5632 conf_error_report("Server passwords cannot begin with a colon");
5633 else if (strchr((yyvsp[(3) - (4)].string), ' ') != NULL)
5634 conf_error_report("Server passwords cannot contain spaces");
5635 else
5636 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5637 }
5638 break;
5639
5640 case 407:
5641 /* Line 1787 of yacc.c */
5642 #line 2163 "conf_parser.y"
5643 {
5644 if (conf_parser_ctx.pass == 2)
5645 strlcpy(block_state.cert.buf, yylval.string, sizeof(block_state.cert.buf));
5646 }
5647 break;
5648
5649 case 408:
5650 /* Line 1787 of yacc.c */
5651 #line 2169 "conf_parser.y"
5652 {
5653 if (conf_parser_ctx.pass == 2)
5654 block_state.port.value = (yyvsp[(3) - (4)].number);
5655 }
5656 break;
5657
5658 case 409:
5659 /* Line 1787 of yacc.c */
5660 #line 2175 "conf_parser.y"
5661 {
5662 if (conf_parser_ctx.pass == 2)
5663 block_state.aftype.value = AF_INET;
5664 }
5665 break;
5666
5667 case 410:
5668 /* Line 1787 of yacc.c */
5669 #line 2179 "conf_parser.y"
5670 {
5671 #ifdef IPV6
5672 if (conf_parser_ctx.pass == 2)
5673 block_state.aftype.value = AF_INET6;
5674 #endif
5675 }
5676 break;
5677
5678 case 411:
5679 /* Line 1787 of yacc.c */
5680 #line 2187 "conf_parser.y"
5681 {
5682 block_state.flags.value &= CONF_FLAGS_ENCRYPTED;
5683 }
5684 break;
5685
5686 case 415:
5687 /* Line 1787 of yacc.c */
5688 #line 2193 "conf_parser.y"
5689 {
5690 if (conf_parser_ctx.pass == 2)
5691 block_state.flags.value |= CONF_FLAGS_ALLOW_AUTO_CONN;
5692 }
5693 break;
5694
5695 case 416:
5696 /* Line 1787 of yacc.c */
5697 #line 2197 "conf_parser.y"
5698 {
5699 if (conf_parser_ctx.pass == 2)
5700 block_state.flags.value |= CONF_FLAGS_SSL;
5701 }
5702 break;
5703
5704 case 417:
5705 /* Line 1787 of yacc.c */
5706 #line 2203 "conf_parser.y"
5707 {
5708 if (conf_parser_ctx.pass == 2)
5709 {
5710 if (yylval.number)
5711 block_state.flags.value |= CONF_FLAGS_ENCRYPTED;
5712 else
5713 block_state.flags.value &= ~CONF_FLAGS_ENCRYPTED;
5714 }
5715 }
5716 break;
5717
5718 case 418:
5719 /* Line 1787 of yacc.c */
5720 #line 2214 "conf_parser.y"
5721 {
5722 if (conf_parser_ctx.pass == 2)
5723 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.hub.list);
5724 }
5725 break;
5726
5727 case 419:
5728 /* Line 1787 of yacc.c */
5729 #line 2220 "conf_parser.y"
5730 {
5731 if (conf_parser_ctx.pass == 2)
5732 dlinkAdd(xstrdup(yylval.string), make_dlink_node(), &block_state.leaf.list);
5733 }
5734 break;
5735
5736 case 420:
5737 /* Line 1787 of yacc.c */
5738 #line 2226 "conf_parser.y"
5739 {
5740 if (conf_parser_ctx.pass == 2)
5741 strlcpy(block_state.class.buf, yylval.string, sizeof(block_state.class.buf));
5742 }
5743 break;
5744
5745 case 421:
5746 /* Line 1787 of yacc.c */
5747 #line 2232 "conf_parser.y"
5748 {
5749 #ifdef HAVE_LIBCRYPTO
5750 if (conf_parser_ctx.pass == 2)
5751 strlcpy(block_state.ciph.buf, yylval.string, sizeof(block_state.ciph.buf));
5752 #else
5753 if (conf_parser_ctx.pass == 2)
5754 conf_error_report("Ignoring connect::ciphers -- no OpenSSL support");
5755 #endif
5756 }
5757 break;
5758
5759 case 422:
5760 /* Line 1787 of yacc.c */
5761 #line 2247 "conf_parser.y"
5762 {
5763 if (conf_parser_ctx.pass == 2)
5764 reset_block_state();
5765 }
5766 break;
5767
5768 case 423:
5769 /* Line 1787 of yacc.c */
5770 #line 2251 "conf_parser.y"
5771 {
5772 struct MaskItem *conf = NULL;
5773
5774 if (conf_parser_ctx.pass != 2)
5775 break;
5776
5777 if (!block_state.user.buf[0] ||
5778 !block_state.host.buf[0])
5779 break;
5780
5781 conf = conf_make(CONF_KLINE);
5782 conf->user = xstrdup(block_state.user.buf);
5783 conf->host = xstrdup(block_state.host.buf);
5784
5785 if (block_state.rpass.buf[0])
5786 conf->reason = xstrdup(block_state.rpass.buf);
5787 else
5788 conf->reason = xstrdup(CONF_NOREASON);
5789 add_conf_by_address(CONF_KLINE, conf);
5790 }
5791 break;
5792
5793 case 429:
5794 /* Line 1787 of yacc.c */
5795 #line 2276 "conf_parser.y"
5796 {
5797
5798 if (conf_parser_ctx.pass == 2)
5799 {
5800 struct split_nuh_item nuh;
5801
5802 nuh.nuhmask = yylval.string;
5803 nuh.nickptr = NULL;
5804 nuh.userptr = block_state.user.buf;
5805 nuh.hostptr = block_state.host.buf;
5806
5807 nuh.nicksize = 0;
5808 nuh.usersize = sizeof(block_state.user.buf);
5809 nuh.hostsize = sizeof(block_state.host.buf);
5810
5811 split_nuh(&nuh);
5812 }
5813 }
5814 break;
5815
5816 case 430:
5817 /* Line 1787 of yacc.c */
5818 #line 2296 "conf_parser.y"
5819 {
5820 if (conf_parser_ctx.pass == 2)
5821 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5822 }
5823 break;
5824
5825 case 431:
5826 /* Line 1787 of yacc.c */
5827 #line 2305 "conf_parser.y"
5828 {
5829 if (conf_parser_ctx.pass == 2)
5830 reset_block_state();
5831 }
5832 break;
5833
5834 case 432:
5835 /* Line 1787 of yacc.c */
5836 #line 2309 "conf_parser.y"
5837 {
5838 struct MaskItem *conf = NULL;
5839
5840 if (conf_parser_ctx.pass != 2)
5841 break;
5842
5843 if (!block_state.addr.buf[0])
5844 break;
5845
5846 if (parse_netmask(block_state.addr.buf, NULL, NULL) != HM_HOST)
5847 {
5848 conf = conf_make(CONF_DLINE);
5849 conf->host = xstrdup(block_state.addr.buf);
5850
5851 if (block_state.rpass.buf[0])
5852 conf->reason = xstrdup(block_state.rpass.buf);
5853 else
5854 conf->reason = xstrdup(CONF_NOREASON);
5855 add_conf_by_address(CONF_DLINE, conf);
5856 }
5857 }
5858 break;
5859
5860 case 438:
5861 /* Line 1787 of yacc.c */
5862 #line 2335 "conf_parser.y"
5863 {
5864 if (conf_parser_ctx.pass == 2)
5865 strlcpy(block_state.addr.buf, yylval.string, sizeof(block_state.addr.buf));
5866 }
5867 break;
5868
5869 case 439:
5870 /* Line 1787 of yacc.c */
5871 #line 2341 "conf_parser.y"
5872 {
5873 if (conf_parser_ctx.pass == 2)
5874 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5875 }
5876 break;
5877
5878 case 445:
5879 /* Line 1787 of yacc.c */
5880 #line 2355 "conf_parser.y"
5881 {
5882 if (conf_parser_ctx.pass == 2)
5883 {
5884 if (yylval.string[0] && parse_netmask(yylval.string, NULL, NULL) != HM_HOST)
5885 {
5886 struct MaskItem *conf = conf_make(CONF_EXEMPT);
5887 conf->host = xstrdup(yylval.string);
5888
5889 add_conf_by_address(CONF_EXEMPT, conf);
5890 }
5891 }
5892 }
5893 break;
5894
5895 case 446:
5896 /* Line 1787 of yacc.c */
5897 #line 2372 "conf_parser.y"
5898 {
5899 if (conf_parser_ctx.pass == 2)
5900 reset_block_state();
5901 }
5902 break;
5903
5904 case 447:
5905 /* Line 1787 of yacc.c */
5906 #line 2376 "conf_parser.y"
5907 {
5908 struct MaskItem *conf = NULL;
5909
5910 if (conf_parser_ctx.pass != 2)
5911 break;
5912
5913 if (!block_state.name.buf[0])
5914 break;
5915
5916 conf = conf_make(CONF_XLINE);
5917 conf->name = xstrdup(block_state.name.buf);
5918
5919 if (block_state.rpass.buf[0])
5920 conf->reason = xstrdup(block_state.rpass.buf);
5921 else
5922 conf->reason = xstrdup(CONF_NOREASON);
5923 }
5924 break;
5925
5926 case 453:
5927 /* Line 1787 of yacc.c */
5928 #line 2398 "conf_parser.y"
5929 {
5930 if (conf_parser_ctx.pass == 2)
5931 strlcpy(block_state.name.buf, yylval.string, sizeof(block_state.name.buf));
5932 }
5933 break;
5934
5935 case 454:
5936 /* Line 1787 of yacc.c */
5937 #line 2404 "conf_parser.y"
5938 {
5939 if (conf_parser_ctx.pass == 2)
5940 strlcpy(block_state.rpass.buf, yylval.string, sizeof(block_state.rpass.buf));
5941 }
5942 break;
5943
5944 case 508:
5945 /* Line 1787 of yacc.c */
5946 #line 2449 "conf_parser.y"
5947 {
5948 ConfigFileEntry.max_watch = (yyvsp[(3) - (4)].number);
5949 }
5950 break;
5951
5952 case 509:
5953 /* Line 1787 of yacc.c */
5954 #line 2454 "conf_parser.y"
5955 {
5956 if (conf_parser_ctx.pass == 2)
5957 ConfigFileEntry.cycle_on_host_change = yylval.number;
5958 }
5959 break;
5960
5961 case 510:
5962 /* Line 1787 of yacc.c */
5963 #line 2460 "conf_parser.y"
5964 {
5965 if (conf_parser_ctx.pass == 2)
5966 ConfigFileEntry.glines = yylval.number;
5967 }
5968 break;
5969
5970 case 511:
5971 /* Line 1787 of yacc.c */
5972 #line 2466 "conf_parser.y"
5973 {
5974 if (conf_parser_ctx.pass == 2)
5975 ConfigFileEntry.gline_time = (yyvsp[(3) - (4)].number);
5976 }
5977 break;
5978
5979 case 512:
5980 /* Line 1787 of yacc.c */
5981 #line 2472 "conf_parser.y"
5982 {
5983 if (conf_parser_ctx.pass == 2)
5984 ConfigFileEntry.gline_request_time = (yyvsp[(3) - (4)].number);
5985 }
5986 break;
5987
5988 case 513:
5989 /* Line 1787 of yacc.c */
5990 #line 2478 "conf_parser.y"
5991 {
5992 ConfigFileEntry.gline_min_cidr = (yyvsp[(3) - (4)].number);
5993 }
5994 break;
5995
5996 case 514:
5997 /* Line 1787 of yacc.c */
5998 #line 2483 "conf_parser.y"
5999 {
6000 ConfigFileEntry.gline_min_cidr6 = (yyvsp[(3) - (4)].number);
6001 }
6002 break;
6003
6004 case 515:
6005 /* Line 1787 of yacc.c */
6006 #line 2488 "conf_parser.y"
6007 {
6008 ConfigFileEntry.tkline_expire_notices = yylval.number;
6009 }
6010 break;
6011
6012 case 516:
6013 /* Line 1787 of yacc.c */
6014 #line 2493 "conf_parser.y"
6015 {
6016 ConfigFileEntry.kill_chase_time_limit = (yyvsp[(3) - (4)].number);
6017 }
6018 break;
6019
6020 case 517:
6021 /* Line 1787 of yacc.c */
6022 #line 2498 "conf_parser.y"
6023 {
6024 ConfigFileEntry.hide_spoof_ips = yylval.number;
6025 }
6026 break;
6027
6028 case 518:
6029 /* Line 1787 of yacc.c */
6030 #line 2503 "conf_parser.y"
6031 {
6032 ConfigFileEntry.ignore_bogus_ts = yylval.number;
6033 }
6034 break;
6035
6036 case 519:
6037 /* Line 1787 of yacc.c */
6038 #line 2508 "conf_parser.y"
6039 {
6040 ConfigFileEntry.failed_oper_notice = yylval.number;
6041 }
6042 break;
6043
6044 case 520:
6045 /* Line 1787 of yacc.c */
6046 #line 2513 "conf_parser.y"
6047 {
6048 ConfigFileEntry.anti_nick_flood = yylval.number;
6049 }
6050 break;
6051
6052 case 521:
6053 /* Line 1787 of yacc.c */
6054 #line 2518 "conf_parser.y"
6055 {
6056 ConfigFileEntry.max_nick_time = (yyvsp[(3) - (4)].number);
6057 }
6058 break;
6059
6060 case 522:
6061 /* Line 1787 of yacc.c */
6062 #line 2523 "conf_parser.y"
6063 {
6064 ConfigFileEntry.max_nick_changes = (yyvsp[(3) - (4)].number);
6065 }
6066 break;
6067
6068 case 523:
6069 /* Line 1787 of yacc.c */
6070 #line 2528 "conf_parser.y"
6071 {
6072 ConfigFileEntry.max_accept = (yyvsp[(3) - (4)].number);
6073 }
6074 break;
6075
6076 case 524:
6077 /* Line 1787 of yacc.c */
6078 #line 2533 "conf_parser.y"
6079 {
6080 ConfigFileEntry.anti_spam_exit_message_time = (yyvsp[(3) - (4)].number);
6081 }
6082 break;
6083
6084 case 525:
6085 /* Line 1787 of yacc.c */
6086 #line 2538 "conf_parser.y"
6087 {
6088 ConfigFileEntry.ts_warn_delta = (yyvsp[(3) - (4)].number);
6089 }
6090 break;
6091
6092 case 526:
6093 /* Line 1787 of yacc.c */
6094 #line 2543 "conf_parser.y"
6095 {
6096 if (conf_parser_ctx.pass == 2)
6097 ConfigFileEntry.ts_max_delta = (yyvsp[(3) - (4)].number);
6098 }
6099 break;
6100
6101 case 527:
6102 /* Line 1787 of yacc.c */
6103 #line 2549 "conf_parser.y"
6104 {
6105 if (((yyvsp[(3) - (4)].number) > 0) && conf_parser_ctx.pass == 1)
6106 {
6107 ilog(LOG_TYPE_IRCD, "You haven't read your config file properly.");
6108 ilog(LOG_TYPE_IRCD, "There is a line in the example conf that will kill your server if not removed.");
6109 ilog(LOG_TYPE_IRCD, "Consider actually reading/editing the conf file, and removing this line.");
6110 exit(0);
6111 }
6112 }
6113 break;
6114
6115 case 528:
6116 /* Line 1787 of yacc.c */
6117 #line 2560 "conf_parser.y"
6118 {
6119 ConfigFileEntry.invisible_on_connect = yylval.number;
6120 }
6121 break;
6122
6123 case 529:
6124 /* Line 1787 of yacc.c */
6125 #line 2565 "conf_parser.y"
6126 {
6127 ConfigFileEntry.warn_no_nline = yylval.number;
6128 }
6129 break;
6130
6131 case 530:
6132 /* Line 1787 of yacc.c */
6133 #line 2570 "conf_parser.y"
6134 {
6135 ConfigFileEntry.stats_e_disabled = yylval.number;
6136 }
6137 break;
6138
6139 case 531:
6140 /* Line 1787 of yacc.c */
6141 #line 2575 "conf_parser.y"
6142 {
6143 ConfigFileEntry.stats_o_oper_only = yylval.number;
6144 }
6145 break;
6146
6147 case 532:
6148 /* Line 1787 of yacc.c */
6149 #line 2580 "conf_parser.y"
6150 {
6151 ConfigFileEntry.stats_P_oper_only = yylval.number;
6152 }
6153 break;
6154
6155 case 533:
6156 /* Line 1787 of yacc.c */
6157 #line 2585 "conf_parser.y"
6158 {
6159 ConfigFileEntry.stats_u_oper_only = yylval.number;
6160 }
6161 break;
6162
6163 case 534:
6164 /* Line 1787 of yacc.c */
6165 #line 2590 "conf_parser.y"
6166 {
6167 ConfigFileEntry.stats_k_oper_only = 2 * yylval.number;
6168 }
6169 break;
6170
6171 case 535:
6172 /* Line 1787 of yacc.c */
6173 #line 2593 "conf_parser.y"
6174 {
6175 ConfigFileEntry.stats_k_oper_only = 1;
6176 }
6177 break;
6178
6179 case 536:
6180 /* Line 1787 of yacc.c */
6181 #line 2598 "conf_parser.y"
6182 {
6183 ConfigFileEntry.stats_i_oper_only = 2 * yylval.number;
6184 }
6185 break;
6186
6187 case 537:
6188 /* Line 1787 of yacc.c */
6189 #line 2601 "conf_parser.y"
6190 {
6191 ConfigFileEntry.stats_i_oper_only = 1;
6192 }
6193 break;
6194
6195 case 538:
6196 /* Line 1787 of yacc.c */
6197 #line 2606 "conf_parser.y"
6198 {
6199 ConfigFileEntry.pace_wait = (yyvsp[(3) - (4)].number);
6200 }
6201 break;
6202
6203 case 539:
6204 /* Line 1787 of yacc.c */
6205 #line 2611 "conf_parser.y"
6206 {
6207 ConfigFileEntry.caller_id_wait = (yyvsp[(3) - (4)].number);
6208 }
6209 break;
6210
6211 case 540:
6212 /* Line 1787 of yacc.c */
6213 #line 2616 "conf_parser.y"
6214 {
6215 ConfigFileEntry.opers_bypass_callerid = yylval.number;
6216 }
6217 break;
6218
6219 case 541:
6220 /* Line 1787 of yacc.c */
6221 #line 2621 "conf_parser.y"
6222 {
6223 ConfigFileEntry.pace_wait_simple = (yyvsp[(3) - (4)].number);
6224 }
6225 break;
6226
6227 case 542:
6228 /* Line 1787 of yacc.c */
6229 #line 2626 "conf_parser.y"
6230 {
6231 ConfigFileEntry.short_motd = yylval.number;
6232 }
6233 break;
6234
6235 case 543:
6236 /* Line 1787 of yacc.c */
6237 #line 2631 "conf_parser.y"
6238 {
6239 ConfigFileEntry.no_oper_flood = yylval.number;
6240 }
6241 break;
6242
6243 case 544:
6244 /* Line 1787 of yacc.c */
6245 #line 2636 "conf_parser.y"
6246 {
6247 ConfigFileEntry.true_no_oper_flood = yylval.number;
6248 }
6249 break;
6250
6251 case 545:
6252 /* Line 1787 of yacc.c */
6253 #line 2641 "conf_parser.y"
6254 {
6255 ConfigFileEntry.oper_pass_resv = yylval.number;
6256 }
6257 break;
6258
6259 case 546:
6260 /* Line 1787 of yacc.c */
6261 #line 2646 "conf_parser.y"
6262 {
6263 ConfigFileEntry.dots_in_ident = (yyvsp[(3) - (4)].number);
6264 }
6265 break;
6266
6267 case 547:
6268 /* Line 1787 of yacc.c */
6269 #line 2651 "conf_parser.y"
6270 {
6271 ConfigFileEntry.max_targets = (yyvsp[(3) - (4)].number);
6272 }
6273 break;
6274
6275 case 548:
6276 /* Line 1787 of yacc.c */
6277 #line 2656 "conf_parser.y"
6278 {
6279 ConfigFileEntry.use_egd = yylval.number;
6280 }
6281 break;
6282
6283 case 549:
6284 /* Line 1787 of yacc.c */
6285 #line 2661 "conf_parser.y"
6286 {
6287 if (conf_parser_ctx.pass == 2)
6288 {
6289 MyFree(ConfigFileEntry.egdpool_path);
6290 ConfigFileEntry.egdpool_path = xstrdup(yylval.string);
6291 }
6292 }
6293 break;
6294
6295 case 550:
6296 /* Line 1787 of yacc.c */
6297 #line 2670 "conf_parser.y"
6298 {
6299 if (conf_parser_ctx.pass == 2 && valid_servname(yylval.string))
6300 {
6301 MyFree(ConfigFileEntry.service_name);
6302 ConfigFileEntry.service_name = xstrdup(yylval.string);
6303 }
6304 }
6305 break;
6306
6307 case 551:
6308 /* Line 1787 of yacc.c */
6309 #line 2679 "conf_parser.y"
6310 {
6311 ConfigFileEntry.ping_cookie = yylval.number;
6312 }
6313 break;
6314
6315 case 552:
6316 /* Line 1787 of yacc.c */
6317 #line 2684 "conf_parser.y"
6318 {
6319 ConfigFileEntry.disable_auth = yylval.number;
6320 }
6321 break;
6322
6323 case 553:
6324 /* Line 1787 of yacc.c */
6325 #line 2689 "conf_parser.y"
6326 {
6327 ConfigFileEntry.throttle_time = yylval.number;
6328 }
6329 break;
6330
6331 case 554:
6332 /* Line 1787 of yacc.c */
6333 #line 2694 "conf_parser.y"
6334 {
6335 ConfigFileEntry.oper_umodes = 0;
6336 }
6337 break;
6338
6339 case 558:
6340 /* Line 1787 of yacc.c */
6341 #line 2700 "conf_parser.y"
6342 {
6343 ConfigFileEntry.oper_umodes |= UMODE_BOTS;
6344 }
6345 break;
6346
6347 case 559:
6348 /* Line 1787 of yacc.c */
6349 #line 2703 "conf_parser.y"
6350 {
6351 ConfigFileEntry.oper_umodes |= UMODE_CCONN;
6352 }
6353 break;
6354
6355 case 560:
6356 /* Line 1787 of yacc.c */
6357 #line 2706 "conf_parser.y"
6358 {
6359 ConfigFileEntry.oper_umodes |= UMODE_DEAF;
6360 }
6361 break;
6362
6363 case 561:
6364 /* Line 1787 of yacc.c */
6365 #line 2709 "conf_parser.y"
6366 {
6367 ConfigFileEntry.oper_umodes |= UMODE_DEBUG;
6368 }
6369 break;
6370
6371 case 562:
6372 /* Line 1787 of yacc.c */
6373 #line 2712 "conf_parser.y"
6374 {
6375 ConfigFileEntry.oper_umodes |= UMODE_FULL;
6376 }
6377 break;
6378
6379 case 563:
6380 /* Line 1787 of yacc.c */
6381 #line 2715 "conf_parser.y"
6382 {
6383 ConfigFileEntry.oper_umodes |= UMODE_HIDDEN;
6384 }
6385 break;
6386
6387 case 564:
6388 /* Line 1787 of yacc.c */
6389 #line 2718 "conf_parser.y"
6390 {
6391 ConfigFileEntry.oper_umodes |= UMODE_SKILL;
6392 }
6393 break;
6394
6395 case 565:
6396 /* Line 1787 of yacc.c */
6397 #line 2721 "conf_parser.y"
6398 {
6399 ConfigFileEntry.oper_umodes |= UMODE_NCHANGE;
6400 }
6401 break;
6402
6403 case 566:
6404 /* Line 1787 of yacc.c */
6405 #line 2724 "conf_parser.y"
6406 {
6407 ConfigFileEntry.oper_umodes |= UMODE_REJ;
6408 }
6409 break;
6410
6411 case 567:
6412 /* Line 1787 of yacc.c */
6413 #line 2727 "conf_parser.y"
6414 {
6415 ConfigFileEntry.oper_umodes |= UMODE_UNAUTH;
6416 }
6417 break;
6418
6419 case 568:
6420 /* Line 1787 of yacc.c */
6421 #line 2730 "conf_parser.y"
6422 {
6423 ConfigFileEntry.oper_umodes |= UMODE_SPY;
6424 }
6425 break;
6426
6427 case 569:
6428 /* Line 1787 of yacc.c */
6429 #line 2733 "conf_parser.y"
6430 {
6431 ConfigFileEntry.oper_umodes |= UMODE_EXTERNAL;
6432 }
6433 break;
6434
6435 case 570:
6436 /* Line 1787 of yacc.c */
6437 #line 2736 "conf_parser.y"
6438 {
6439 ConfigFileEntry.oper_umodes |= UMODE_OPERWALL;
6440 }
6441 break;
6442
6443 case 571:
6444 /* Line 1787 of yacc.c */
6445 #line 2739 "conf_parser.y"
6446 {
6447 ConfigFileEntry.oper_umodes |= UMODE_SERVNOTICE;
6448 }
6449 break;
6450
6451 case 572:
6452 /* Line 1787 of yacc.c */
6453 #line 2742 "conf_parser.y"
6454 {
6455 ConfigFileEntry.oper_umodes |= UMODE_INVISIBLE;
6456 }
6457 break;
6458
6459 case 573:
6460 /* Line 1787 of yacc.c */
6461 #line 2745 "conf_parser.y"
6462 {
6463 ConfigFileEntry.oper_umodes |= UMODE_WALLOP;
6464 }
6465 break;
6466
6467 case 574:
6468 /* Line 1787 of yacc.c */
6469 #line 2748 "conf_parser.y"
6470 {
6471 ConfigFileEntry.oper_umodes |= UMODE_SOFTCALLERID;
6472 }
6473 break;
6474
6475 case 575:
6476 /* Line 1787 of yacc.c */
6477 #line 2751 "conf_parser.y"
6478 {
6479 ConfigFileEntry.oper_umodes |= UMODE_CALLERID;
6480 }
6481 break;
6482
6483 case 576:
6484 /* Line 1787 of yacc.c */
6485 #line 2754 "conf_parser.y"
6486 {
6487 ConfigFileEntry.oper_umodes |= UMODE_LOCOPS;
6488 }
6489 break;
6490
6491 case 577:
6492 /* Line 1787 of yacc.c */
6493 #line 2757 "conf_parser.y"
6494 {
6495 ConfigFileEntry.oper_umodes |= UMODE_REGONLY;
6496 }
6497 break;
6498
6499 case 578:
6500 /* Line 1787 of yacc.c */
6501 #line 2760 "conf_parser.y"
6502 {
6503 ConfigFileEntry.oper_umodes |= UMODE_FARCONNECT;
6504 }
6505 break;
6506
6507 case 579:
6508 /* Line 1787 of yacc.c */
6509 #line 2765 "conf_parser.y"
6510 {
6511 ConfigFileEntry.oper_only_umodes = 0;
6512 }
6513 break;
6514
6515 case 583:
6516 /* Line 1787 of yacc.c */
6517 #line 2771 "conf_parser.y"
6518 {
6519 ConfigFileEntry.oper_only_umodes |= UMODE_BOTS;
6520 }
6521 break;
6522
6523 case 584:
6524 /* Line 1787 of yacc.c */
6525 #line 2774 "conf_parser.y"
6526 {
6527 ConfigFileEntry.oper_only_umodes |= UMODE_CCONN;
6528 }
6529 break;
6530
6531 case 585:
6532 /* Line 1787 of yacc.c */
6533 #line 2777 "conf_parser.y"
6534 {
6535 ConfigFileEntry.oper_only_umodes |= UMODE_DEAF;
6536 }
6537 break;
6538
6539 case 586:
6540 /* Line 1787 of yacc.c */
6541 #line 2780 "conf_parser.y"
6542 {
6543 ConfigFileEntry.oper_only_umodes |= UMODE_DEBUG;
6544 }
6545 break;
6546
6547 case 587:
6548 /* Line 1787 of yacc.c */
6549 #line 2783 "conf_parser.y"
6550 {
6551 ConfigFileEntry.oper_only_umodes |= UMODE_FULL;
6552 }
6553 break;
6554
6555 case 588:
6556 /* Line 1787 of yacc.c */
6557 #line 2786 "conf_parser.y"
6558 {
6559 ConfigFileEntry.oper_only_umodes |= UMODE_SKILL;
6560 }
6561 break;
6562
6563 case 589:
6564 /* Line 1787 of yacc.c */
6565 #line 2789 "conf_parser.y"
6566 {
6567 ConfigFileEntry.oper_only_umodes |= UMODE_HIDDEN;
6568 }
6569 break;
6570
6571 case 590:
6572 /* Line 1787 of yacc.c */
6573 #line 2792 "conf_parser.y"
6574 {
6575 ConfigFileEntry.oper_only_umodes |= UMODE_NCHANGE;
6576 }
6577 break;
6578
6579 case 591:
6580 /* Line 1787 of yacc.c */
6581 #line 2795 "conf_parser.y"
6582 {
6583 ConfigFileEntry.oper_only_umodes |= UMODE_REJ;
6584 }
6585 break;
6586
6587 case 592:
6588 /* Line 1787 of yacc.c */
6589 #line 2798 "conf_parser.y"
6590 {
6591 ConfigFileEntry.oper_only_umodes |= UMODE_UNAUTH;
6592 }
6593 break;
6594
6595 case 593:
6596 /* Line 1787 of yacc.c */
6597 #line 2801 "conf_parser.y"
6598 {
6599 ConfigFileEntry.oper_only_umodes |= UMODE_SPY;
6600 }
6601 break;
6602
6603 case 594:
6604 /* Line 1787 of yacc.c */
6605 #line 2804 "conf_parser.y"
6606 {
6607 ConfigFileEntry.oper_only_umodes |= UMODE_EXTERNAL;
6608 }
6609 break;
6610
6611 case 595:
6612 /* Line 1787 of yacc.c */
6613 #line 2807 "conf_parser.y"
6614 {
6615 ConfigFileEntry.oper_only_umodes |= UMODE_OPERWALL;
6616 }
6617 break;
6618
6619 case 596:
6620 /* Line 1787 of yacc.c */
6621 #line 2810 "conf_parser.y"
6622 {
6623 ConfigFileEntry.oper_only_umodes |= UMODE_SERVNOTICE;
6624 }
6625 break;
6626
6627 case 597:
6628 /* Line 1787 of yacc.c */
6629 #line 2813 "conf_parser.y"
6630 {
6631 ConfigFileEntry.oper_only_umodes |= UMODE_INVISIBLE;
6632 }
6633 break;
6634
6635 case 598:
6636 /* Line 1787 of yacc.c */
6637 #line 2816 "conf_parser.y"
6638 {
6639 ConfigFileEntry.oper_only_umodes |= UMODE_WALLOP;
6640 }
6641 break;
6642
6643 case 599:
6644 /* Line 1787 of yacc.c */
6645 #line 2819 "conf_parser.y"
6646 {
6647 ConfigFileEntry.oper_only_umodes |= UMODE_SOFTCALLERID;
6648 }
6649 break;
6650
6651 case 600:
6652 /* Line 1787 of yacc.c */
6653 #line 2822 "conf_parser.y"
6654 {
6655 ConfigFileEntry.oper_only_umodes |= UMODE_CALLERID;
6656 }
6657 break;
6658
6659 case 601:
6660 /* Line 1787 of yacc.c */
6661 #line 2825 "conf_parser.y"
6662 {
6663 ConfigFileEntry.oper_only_umodes |= UMODE_LOCOPS;
6664 }
6665 break;
6666
6667 case 602:
6668 /* Line 1787 of yacc.c */
6669 #line 2828 "conf_parser.y"
6670 {
6671 ConfigFileEntry.oper_only_umodes |= UMODE_REGONLY;
6672 }
6673 break;
6674
6675 case 603:
6676 /* Line 1787 of yacc.c */
6677 #line 2831 "conf_parser.y"
6678 {
6679 ConfigFileEntry.oper_only_umodes |= UMODE_FARCONNECT;
6680 }
6681 break;
6682
6683 case 604:
6684 /* Line 1787 of yacc.c */
6685 #line 2836 "conf_parser.y"
6686 {
6687 ConfigFileEntry.min_nonwildcard = (yyvsp[(3) - (4)].number);
6688 }
6689 break;
6690
6691 case 605:
6692 /* Line 1787 of yacc.c */
6693 #line 2841 "conf_parser.y"
6694 {
6695 ConfigFileEntry.min_nonwildcard_simple = (yyvsp[(3) - (4)].number);
6696 }
6697 break;
6698
6699 case 606:
6700 /* Line 1787 of yacc.c */
6701 #line 2846 "conf_parser.y"
6702 {
6703 ConfigFileEntry.default_floodcount = (yyvsp[(3) - (4)].number);
6704 }
6705 break;
6706
6707 case 623:
6708 /* Line 1787 of yacc.c */
6709 #line 2869 "conf_parser.y"
6710 {
6711 ConfigChannel.disable_fake_channels = yylval.number;
6712 }
6713 break;
6714
6715 case 624:
6716 /* Line 1787 of yacc.c */
6717 #line 2874 "conf_parser.y"
6718 {
6719 ConfigChannel.knock_delay = (yyvsp[(3) - (4)].number);
6720 }
6721 break;
6722
6723 case 625:
6724 /* Line 1787 of yacc.c */
6725 #line 2879 "conf_parser.y"
6726 {
6727 ConfigChannel.knock_delay_channel = (yyvsp[(3) - (4)].number);
6728 }
6729 break;
6730
6731 case 626:
6732 /* Line 1787 of yacc.c */
6733 #line 2884 "conf_parser.y"
6734 {
6735 ConfigChannel.max_chans_per_user = (yyvsp[(3) - (4)].number);
6736 }
6737 break;
6738
6739 case 627:
6740 /* Line 1787 of yacc.c */
6741 #line 2889 "conf_parser.y"
6742 {
6743 ConfigChannel.max_chans_per_oper = (yyvsp[(3) - (4)].number);
6744 }
6745 break;
6746
6747 case 628:
6748 /* Line 1787 of yacc.c */
6749 #line 2894 "conf_parser.y"
6750 {
6751 ConfigChannel.max_bans = (yyvsp[(3) - (4)].number);
6752 }
6753 break;
6754
6755 case 629:
6756 /* Line 1787 of yacc.c */
6757 #line 2899 "conf_parser.y"
6758 {
6759 ConfigChannel.default_split_user_count = (yyvsp[(3) - (4)].number);
6760 }
6761 break;
6762
6763 case 630:
6764 /* Line 1787 of yacc.c */
6765 #line 2904 "conf_parser.y"
6766 {
6767 ConfigChannel.default_split_server_count = (yyvsp[(3) - (4)].number);
6768 }
6769 break;
6770
6771 case 631:
6772 /* Line 1787 of yacc.c */
6773 #line 2909 "conf_parser.y"
6774 {
6775 ConfigChannel.no_create_on_split = yylval.number;
6776 }
6777 break;
6778
6779 case 632:
6780 /* Line 1787 of yacc.c */
6781 #line 2914 "conf_parser.y"
6782 {
6783 ConfigChannel.no_join_on_split = yylval.number;
6784 }
6785 break;
6786
6787 case 633:
6788 /* Line 1787 of yacc.c */
6789 #line 2919 "conf_parser.y"
6790 {
6791 GlobalSetOptions.joinfloodcount = yylval.number;
6792 }
6793 break;
6794
6795 case 634:
6796 /* Line 1787 of yacc.c */
6797 #line 2924 "conf_parser.y"
6798 {
6799 GlobalSetOptions.joinfloodtime = yylval.number;
6800 }
6801 break;
6802
6803 case 647:
6804 /* Line 1787 of yacc.c */
6805 #line 2944 "conf_parser.y"
6806 {
6807 if (conf_parser_ctx.pass == 2)
6808 ConfigServerHide.flatten_links = yylval.number;
6809 }
6810 break;
6811
6812 case 648:
6813 /* Line 1787 of yacc.c */
6814 #line 2950 "conf_parser.y"
6815 {
6816 if (conf_parser_ctx.pass == 2)
6817 ConfigServerHide.disable_remote_commands = yylval.number;
6818 }
6819 break;
6820
6821 case 649:
6822 /* Line 1787 of yacc.c */
6823 #line 2956 "conf_parser.y"
6824 {
6825 if (conf_parser_ctx.pass == 2)
6826 ConfigServerHide.hide_servers = yylval.number;
6827 }
6828 break;
6829
6830 case 650:
6831 /* Line 1787 of yacc.c */
6832 #line 2962 "conf_parser.y"
6833 {
6834 if (conf_parser_ctx.pass == 2)
6835 ConfigServerHide.hide_services = yylval.number;
6836 }
6837 break;
6838
6839 case 651:
6840 /* Line 1787 of yacc.c */
6841 #line 2968 "conf_parser.y"
6842 {
6843 if (conf_parser_ctx.pass == 2)
6844 {
6845 MyFree(ConfigServerHide.hidden_name);
6846 ConfigServerHide.hidden_name = xstrdup(yylval.string);
6847 }
6848 }
6849 break;
6850
6851 case 652:
6852 /* Line 1787 of yacc.c */
6853 #line 2977 "conf_parser.y"
6854 {
6855 if (conf_parser_ctx.pass == 2)
6856 {
6857 if (((yyvsp[(3) - (4)].number) > 0) && ConfigServerHide.links_disabled == 1)
6858 {
6859 eventAddIsh("write_links_file", write_links_file, NULL, (yyvsp[(3) - (4)].number));
6860 ConfigServerHide.links_disabled = 0;
6861 }
6862
6863 ConfigServerHide.links_delay = (yyvsp[(3) - (4)].number);
6864 }
6865 }
6866 break;
6867
6868 case 653:
6869 /* Line 1787 of yacc.c */
6870 #line 2991 "conf_parser.y"
6871 {
6872 if (conf_parser_ctx.pass == 2)
6873 ConfigServerHide.hidden = yylval.number;
6874 }
6875 break;
6876
6877 case 654:
6878 /* Line 1787 of yacc.c */
6879 #line 2997 "conf_parser.y"
6880 {
6881 if (conf_parser_ctx.pass == 2)
6882 ConfigServerHide.hide_server_ips = yylval.number;
6883 }
6884 break;
6885
6886
6887 /* Line 1787 of yacc.c */
6888 #line 6889 "conf_parser.c"
6889 default: break;
6890 }
6891 /* User semantic actions sometimes alter yychar, and that requires
6892 that yytoken be updated with the new translation. We take the
6893 approach of translating immediately before every use of yytoken.
6894 One alternative is translating here after every semantic action,
6895 but that translation would be missed if the semantic action invokes
6896 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6897 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6898 incorrect destructor might then be invoked immediately. In the
6899 case of YYERROR or YYBACKUP, subsequent parser actions might lead
6900 to an incorrect destructor call or verbose syntax error message
6901 before the lookahead is translated. */
6902 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6903
6904 YYPOPSTACK (yylen);
6905 yylen = 0;
6906 YY_STACK_PRINT (yyss, yyssp);
6907
6908 *++yyvsp = yyval;
6909
6910 /* Now `shift' the result of the reduction. Determine what state
6911 that goes to, based on the state we popped back to and the rule
6912 number reduced by. */
6913
6914 yyn = yyr1[yyn];
6915
6916 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
6917 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
6918 yystate = yytable[yystate];
6919 else
6920 yystate = yydefgoto[yyn - YYNTOKENS];
6921
6922 goto yynewstate;
6923
6924
6925 /*------------------------------------.
6926 | yyerrlab -- here on detecting error |
6927 `------------------------------------*/
6928 yyerrlab:
6929 /* Make sure we have latest lookahead translation. See comments at
6930 user semantic actions for why this is necessary. */
6931 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6932
6933 /* If not already recovering from an error, report this error. */
6934 if (!yyerrstatus)
6935 {
6936 ++yynerrs;
6937 #if ! YYERROR_VERBOSE
6938 yyerror (YY_("syntax error"));
6939 #else
6940 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6941 yyssp, yytoken)
6942 {
6943 char const *yymsgp = YY_("syntax error");
6944 int yysyntax_error_status;
6945 yysyntax_error_status = YYSYNTAX_ERROR;
6946 if (yysyntax_error_status == 0)
6947 yymsgp = yymsg;
6948 else if (yysyntax_error_status == 1)
6949 {
6950 if (yymsg != yymsgbuf)
6951 YYSTACK_FREE (yymsg);
6952 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6953 if (!yymsg)
6954 {
6955 yymsg = yymsgbuf;
6956 yymsg_alloc = sizeof yymsgbuf;
6957 yysyntax_error_status = 2;
6958 }
6959 else
6960 {
6961 yysyntax_error_status = YYSYNTAX_ERROR;
6962 yymsgp = yymsg;
6963 }
6964 }
6965 yyerror (yymsgp);
6966 if (yysyntax_error_status == 2)
6967 goto yyexhaustedlab;
6968 }
6969 # undef YYSYNTAX_ERROR
6970 #endif
6971 }
6972
6973
6974
6975 if (yyerrstatus == 3)
6976 {
6977 /* If just tried and failed to reuse lookahead token after an
6978 error, discard it. */
6979
6980 if (yychar <= YYEOF)
6981 {
6982 /* Return failure if at end of input. */
6983 if (yychar == YYEOF)
6984 YYABORT;
6985 }
6986 else
6987 {
6988 yydestruct ("Error: discarding",
6989 yytoken, &yylval);
6990 yychar = YYEMPTY;
6991 }
6992 }
6993
6994 /* Else will try to reuse lookahead token after shifting the error
6995 token. */
6996 goto yyerrlab1;
6997
6998
6999 /*---------------------------------------------------.
7000 | yyerrorlab -- error raised explicitly by YYERROR. |
7001 `---------------------------------------------------*/
7002 yyerrorlab:
7003
7004 /* Pacify compilers like GCC when the user code never invokes
7005 YYERROR and the label yyerrorlab therefore never appears in user
7006 code. */
7007 if (/*CONSTCOND*/ 0)
7008 goto yyerrorlab;
7009
7010 /* Do not reclaim the symbols of the rule which action triggered
7011 this YYERROR. */
7012 YYPOPSTACK (yylen);
7013 yylen = 0;
7014 YY_STACK_PRINT (yyss, yyssp);
7015 yystate = *yyssp;
7016 goto yyerrlab1;
7017
7018
7019 /*-------------------------------------------------------------.
7020 | yyerrlab1 -- common code for both syntax error and YYERROR. |
7021 `-------------------------------------------------------------*/
7022 yyerrlab1:
7023 yyerrstatus = 3; /* Each real token shifted decrements this. */
7024
7025 for (;;)
7026 {
7027 yyn = yypact[yystate];
7028 if (!yypact_value_is_default (yyn))
7029 {
7030 yyn += YYTERROR;
7031 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
7032 {
7033 yyn = yytable[yyn];
7034 if (0 < yyn)
7035 break;
7036 }
7037 }
7038
7039 /* Pop the current state because it cannot handle the error token. */
7040 if (yyssp == yyss)
7041 YYABORT;
7042
7043
7044 yydestruct ("Error: popping",
7045 yystos[yystate], yyvsp);
7046 YYPOPSTACK (1);
7047 yystate = *yyssp;
7048 YY_STACK_PRINT (yyss, yyssp);
7049 }
7050
7051 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
7052 *++yyvsp = yylval;
7053 YY_IGNORE_MAYBE_UNINITIALIZED_END
7054
7055
7056 /* Shift the error token. */
7057 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
7058
7059 yystate = yyn;
7060 goto yynewstate;
7061
7062
7063 /*-------------------------------------.
7064 | yyacceptlab -- YYACCEPT comes here. |
7065 `-------------------------------------*/
7066 yyacceptlab:
7067 yyresult = 0;
7068 goto yyreturn;
7069
7070 /*-----------------------------------.
7071 | yyabortlab -- YYABORT comes here. |
7072 `-----------------------------------*/
7073 yyabortlab:
7074 yyresult = 1;
7075 goto yyreturn;
7076
7077 #if !defined yyoverflow || YYERROR_VERBOSE
7078 /*-------------------------------------------------.
7079 | yyexhaustedlab -- memory exhaustion comes here. |
7080 `-------------------------------------------------*/
7081 yyexhaustedlab:
7082 yyerror (YY_("memory exhausted"));
7083 yyresult = 2;
7084 /* Fall through. */
7085 #endif
7086
7087 yyreturn:
7088 if (yychar != YYEMPTY)
7089 {
7090 /* Make sure we have latest lookahead translation. See comments at
7091 user semantic actions for why this is necessary. */
7092 yytoken = YYTRANSLATE (yychar);
7093 yydestruct ("Cleanup: discarding lookahead",
7094 yytoken, &yylval);
7095 }
7096 /* Do not reclaim the symbols of the rule which action triggered
7097 this YYABORT or YYACCEPT. */
7098 YYPOPSTACK (yylen);
7099 YY_STACK_PRINT (yyss, yyssp);
7100 while (yyssp != yyss)
7101 {
7102 yydestruct ("Cleanup: popping",
7103 yystos[*yyssp], yyvsp);
7104 YYPOPSTACK (1);
7105 }
7106 #ifndef yyoverflow
7107 if (yyss != yyssa)
7108 YYSTACK_FREE (yyss);
7109 #endif
7110 #if YYERROR_VERBOSE
7111 if (yymsg != yymsgbuf)
7112 YYSTACK_FREE (yymsg);
7113 #endif
7114 /* Make sure YYID is used. */
7115 return YYID (yyresult);
7116 }
7117
7118

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision