ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 9566
Committed: Sat Aug 15 11:58:21 2020 UTC (5 years ago) by michael
Content type: text/x-csrc
File size: 217981 byte(s)
Log Message:
- Removed MAXIMUM_LINKS_DEFAULT

File Contents

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

Properties

Name Value
svn:eol-style native