ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid-7.2/src/y.tab.c
Revision: 441
Committed: Sat Feb 11 23:12:56 2006 UTC (19 years, 6 months ago) by michael
Content type: text/x-csrc
File size: 233645 byte(s)
Log Message:
- rebuilt y.tab.c

File Contents

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

Properties

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