ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/trunk/src/conf_parser.c
Revision: 9586
Committed: Sat Aug 29 14:00:43 2020 UTC (6 years, 1 month ago) by michael
Content type: text/x-csrc
File size: 218024 byte(s)
Log Message:
- Added 'client' option to listener::flags

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

Properties

Name Value
svn:eol-style native