ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/branches/8.2.x/src/conf_parser.c
Revision: 2129
Committed: Wed May 29 13:12:15 2013 UTC (13 years, 1 month ago) by michael
Content type: text/x-csrc
Original Path: ircd-hybrid/trunk/src/conf_parser.c
File size: 222163 byte(s)
Log Message:
- conf_parser.l, conf_parser.y: style corrections

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

Properties

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