ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 7252
Committed: Thu Feb 4 17:25:09 2016 UTC (9 years, 6 months ago) by michael
Content type: text/x-csrc
File size: 218277 byte(s)
Log Message:
- Re-create parser files

File Contents

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

Properties

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