ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1946
Committed: Sun May 5 10:21:40 2013 UTC (13 years, 3 months ago) by michael
Content type: text/x-csrc
File size: 219559 byte(s)
Log Message:
- Removed channel::quiet_on_ban configuration option. This feature is
  now enabled by default

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

Properties

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