ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 1981
Committed: Wed May 8 20:20:27 2013 UTC (12 years, 3 months ago) by michael
Content type: text/x-csrc
File size: 220878 byte(s)
Log Message:
- regenerate parser/lexer

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

Properties

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