ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/hopm/trunk/src/config-parser.c
(Generate patch)

Comparing hopm/trunk/src/config-parser.c (file contents):
Revision 5429 by michael, Wed Jan 28 13:53:00 2015 UTC vs.
Revision 9502 by michael, Sun Jul 5 05:43:05 2020 UTC

# Line 1 | Line 1
1 < /* A Bison parser, made by GNU Bison 3.0.4.  */
1 > /* A Bison parser, made by GNU Bison 3.3.2.  */
2  
3   /* Bison implementation for Yacc-like parsers in C
4  
5 <   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
5 >   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
6 >   Inc.
7  
8     This program is free software: you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by
# Line 40 | Line 41
41     define necessary library symbols; they are noted "INFRINGES ON
42     USER NAME SPACE" below.  */
43  
44 + /* Undocumented macros, especially those whose name start with YY_,
45 +   are private implementation details.  Do not rely on them.  */
46 +
47   /* Identify Bison output.  */
48   #define YYBISON 1
49  
50   /* Bison version.  */
51 < #define YYBISON_VERSION "3.0.4"
51 > #define YYBISON_VERSION "3.3.2"
52  
53   /* Skeleton name.  */
54   #define YYSKELETON_NAME "yacc.c"
# Line 61 | Line 65
65  
66  
67  
68 < /* Copy the first part of user declarations.  */
69 < #line 21 "config-parser.y" /* yacc.c:339  */
68 > /* First part of user prologue.  */
69 > #line 21 "config-parser.y" /* yacc.c:337  */
70  
67 #include <stdio.h>
71   #include <string.h>
72  
73   #include "memory.h"
# Line 72 | Line 75
75  
76   int yylex(void);
77  
78 < int yydebug=0;
76 < void *tmp;        /* Variable to temporarily hold nodes before insertion to list */
77 <
78 > static void *tmp;  /* Variable to temporarily hold nodes before insertion to list */
79  
79 #line 80 "config-parser.c" /* yacc.c:339  */
80  
81 + #line 82 "config-parser.c" /* yacc.c:337  */
82   # ifndef YY_NULLPTR
83 < #  if defined __cplusplus && 201103L <= __cplusplus
84 < #   define YY_NULLPTR nullptr
83 > #  if defined __cplusplus
84 > #   if 201103L <= __cplusplus
85 > #    define YY_NULLPTR nullptr
86 > #   else
87 > #    define YY_NULLPTR 0
88 > #   endif
89   #  else
90 < #   define YY_NULLPTR 0
90 > #   define YY_NULLPTR ((void*)0)
91   #  endif
92   # endif
93  
# Line 111 | Line 116 | extern int yydebug;
116   # define YYTOKENTYPE
117    enum yytokentype
118    {
119 <    AWAY = 258,
120 <    BAN_UNKNOWN = 259,
121 <    BLACKLIST = 260,
122 <    BYTES = 261,
123 <    KBYTES = 262,
124 <    MBYTES = 263,
125 <    CHANNEL = 264,
126 <    CONNREGEX = 265,
127 <    DNS_FDLIMIT = 266,
128 <    DNSBL_FROM = 267,
129 <    DNSBL_TO = 268,
130 <    EXEMPT = 269,
131 <    FD = 270,
132 <    INVITE = 271,
133 <    IRC = 272,
134 <    KLINE = 273,
135 <    KEY = 274,
136 <    MASK = 275,
137 <    MAX_READ = 276,
138 <    MODE = 277,
139 <    NAME = 278,
140 <    NEGCACHE = 279,
141 <    NEGCACHE_REBUILD = 280,
142 <    NICK = 281,
143 <    NICKSERV = 282,
144 <    NOTICE = 283,
145 <    OPER = 284,
146 <    OPM = 285,
147 <    OPTIONS = 286,
148 <    PASSWORD = 287,
149 <    PERFORM = 288,
150 <    PIDFILE = 289,
151 <    PORT = 290,
152 <    PROTOCOL = 291,
153 <    READTIMEOUT = 292,
154 <    REALNAME = 293,
155 <    REPLY = 294,
156 <    SCANLOG = 295,
157 <    SCANNER = 296,
158 <    SECONDS = 297,
159 <    MINUTES = 298,
160 <    HOURS = 299,
161 <    DAYS = 300,
162 <    WEEKS = 301,
163 <    MONTHS = 302,
164 <    YEARS = 303,
165 <    SENDMAIL = 304,
166 <    SERVER = 305,
167 <    TARGET_IP = 306,
168 <    TARGET_PORT = 307,
169 <    TARGET_STRING = 308,
170 <    TIMEOUT = 309,
171 <    TYPE = 310,
172 <    USERNAME = 311,
173 <    USER = 312,
174 <    VHOST = 313,
175 <    NUMBER = 314,
176 <    STRING = 315,
177 <    PROTOCOLTYPE = 316
119 >    ADDRESS_FAMILY = 258,
120 >    AWAY = 259,
121 >    BAN_UNKNOWN = 260,
122 >    BLACKLIST = 261,
123 >    BYTES = 262,
124 >    KBYTES = 263,
125 >    MBYTES = 264,
126 >    CHANNEL = 265,
127 >    COMMAND_INTERVAL = 266,
128 >    COMMAND_QUEUE_SIZE = 267,
129 >    COMMAND_TIMEOUT = 268,
130 >    CONNREGEX = 269,
131 >    DNS_FDLIMIT = 270,
132 >    DNS_TIMEOUT = 271,
133 >    DNSBL_FROM = 272,
134 >    DNSBL_TO = 273,
135 >    EXEMPT = 274,
136 >    FD = 275,
137 >    INVITE = 276,
138 >    IPV4 = 277,
139 >    IPV6 = 278,
140 >    IRC = 279,
141 >    KLINE = 280,
142 >    KEY = 281,
143 >    MASK = 282,
144 >    MAX_READ = 283,
145 >    MODE = 284,
146 >    NAME = 285,
147 >    NEGCACHE = 286,
148 >    NEGCACHE_REBUILD = 287,
149 >    NICK = 288,
150 >    NICKSERV = 289,
151 >    NOTICE = 290,
152 >    OPER = 291,
153 >    OPM = 292,
154 >    OPTIONS = 293,
155 >    PASSWORD = 294,
156 >    PERFORM = 295,
157 >    PIDFILE = 296,
158 >    PORT = 297,
159 >    PROTOCOL = 298,
160 >    READTIMEOUT = 299,
161 >    REALNAME = 300,
162 >    RECONNECTINTERVAL = 301,
163 >    REPLY = 302,
164 >    SCANLOG = 303,
165 >    SCANNER = 304,
166 >    SECONDS = 305,
167 >    MINUTES = 306,
168 >    HOURS = 307,
169 >    DAYS = 308,
170 >    WEEKS = 309,
171 >    MONTHS = 310,
172 >    YEARS = 311,
173 >    SENDMAIL = 312,
174 >    SERVER = 313,
175 >    TARGET_IP = 314,
176 >    TARGET_PORT = 315,
177 >    TARGET_STRING = 316,
178 >    TIMEOUT = 317,
179 >    TLS = 318,
180 >    TLS_HOSTNAME_VERIFICATION = 319,
181 >    TYPE = 320,
182 >    USERNAME = 321,
183 >    USER = 322,
184 >    VHOST = 323,
185 >    NUMBER = 324,
186 >    STRING = 325,
187 >    PROTOCOLTYPE = 326
188    };
189   #endif
190   /* Tokens.  */
191 < #define AWAY 258
192 < #define BAN_UNKNOWN 259
193 < #define BLACKLIST 260
194 < #define BYTES 261
195 < #define KBYTES 262
196 < #define MBYTES 263
197 < #define CHANNEL 264
198 < #define CONNREGEX 265
199 < #define DNS_FDLIMIT 266
200 < #define DNSBL_FROM 267
201 < #define DNSBL_TO 268
202 < #define EXEMPT 269
203 < #define FD 270
204 < #define INVITE 271
205 < #define IRC 272
206 < #define KLINE 273
207 < #define KEY 274
208 < #define MASK 275
209 < #define MAX_READ 276
210 < #define MODE 277
211 < #define NAME 278
212 < #define NEGCACHE 279
213 < #define NEGCACHE_REBUILD 280
214 < #define NICK 281
215 < #define NICKSERV 282
216 < #define NOTICE 283
217 < #define OPER 284
218 < #define OPM 285
219 < #define OPTIONS 286
220 < #define PASSWORD 287
221 < #define PERFORM 288
222 < #define PIDFILE 289
223 < #define PORT 290
224 < #define PROTOCOL 291
225 < #define READTIMEOUT 292
226 < #define REALNAME 293
227 < #define REPLY 294
228 < #define SCANLOG 295
229 < #define SCANNER 296
230 < #define SECONDS 297
231 < #define MINUTES 298
232 < #define HOURS 299
233 < #define DAYS 300
234 < #define WEEKS 301
235 < #define MONTHS 302
236 < #define YEARS 303
237 < #define SENDMAIL 304
238 < #define SERVER 305
239 < #define TARGET_IP 306
240 < #define TARGET_PORT 307
241 < #define TARGET_STRING 308
242 < #define TIMEOUT 309
243 < #define TYPE 310
244 < #define USERNAME 311
245 < #define USER 312
246 < #define VHOST 313
247 < #define NUMBER 314
248 < #define STRING 315
249 < #define PROTOCOLTYPE 316
191 > #define ADDRESS_FAMILY 258
192 > #define AWAY 259
193 > #define BAN_UNKNOWN 260
194 > #define BLACKLIST 261
195 > #define BYTES 262
196 > #define KBYTES 263
197 > #define MBYTES 264
198 > #define CHANNEL 265
199 > #define COMMAND_INTERVAL 266
200 > #define COMMAND_QUEUE_SIZE 267
201 > #define COMMAND_TIMEOUT 268
202 > #define CONNREGEX 269
203 > #define DNS_FDLIMIT 270
204 > #define DNS_TIMEOUT 271
205 > #define DNSBL_FROM 272
206 > #define DNSBL_TO 273
207 > #define EXEMPT 274
208 > #define FD 275
209 > #define INVITE 276
210 > #define IPV4 277
211 > #define IPV6 278
212 > #define IRC 279
213 > #define KLINE 280
214 > #define KEY 281
215 > #define MASK 282
216 > #define MAX_READ 283
217 > #define MODE 284
218 > #define NAME 285
219 > #define NEGCACHE 286
220 > #define NEGCACHE_REBUILD 287
221 > #define NICK 288
222 > #define NICKSERV 289
223 > #define NOTICE 290
224 > #define OPER 291
225 > #define OPM 292
226 > #define OPTIONS 293
227 > #define PASSWORD 294
228 > #define PERFORM 295
229 > #define PIDFILE 296
230 > #define PORT 297
231 > #define PROTOCOL 298
232 > #define READTIMEOUT 299
233 > #define REALNAME 300
234 > #define RECONNECTINTERVAL 301
235 > #define REPLY 302
236 > #define SCANLOG 303
237 > #define SCANNER 304
238 > #define SECONDS 305
239 > #define MINUTES 306
240 > #define HOURS 307
241 > #define DAYS 308
242 > #define WEEKS 309
243 > #define MONTHS 310
244 > #define YEARS 311
245 > #define SENDMAIL 312
246 > #define SERVER 313
247 > #define TARGET_IP 314
248 > #define TARGET_PORT 315
249 > #define TARGET_STRING 316
250 > #define TIMEOUT 317
251 > #define TLS 318
252 > #define TLS_HOSTNAME_VERIFICATION 319
253 > #define TYPE 320
254 > #define USERNAME 321
255 > #define USER 322
256 > #define VHOST 323
257 > #define NUMBER 324
258 > #define STRING 325
259 > #define PROTOCOLTYPE 326
260  
261   /* Value type.  */
262   #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
263  
264   union YYSTYPE
265   {
266 < #line 85 "config-parser.y" /* yacc.c:355  */
266 > #line 93 "config-parser.y" /* yacc.c:352  */
267  
268 <        int number;
269 <        char *string;
268 >  int number;
269 >  char *string;
270  
271 < #line 247 "config-parser.c" /* yacc.c:355  */
271 > #line 272 "config-parser.c" /* yacc.c:352  */
272   };
273  
274   typedef union YYSTYPE YYSTYPE;
# Line 258 | Line 283 | int yyparse (void);
283  
284   #endif /* !YY_YY_CONFIG_PARSER_H_INCLUDED  */
285  
261 /* Copy the second part of user declarations.  */
286  
263 #line 264 "config-parser.c" /* yacc.c:358  */
287  
288   #ifdef short
289   # undef short
# Line 281 | Line 304 | typedef signed char yytype_int8;
304   #ifdef YYTYPE_UINT16
305   typedef YYTYPE_UINT16 yytype_uint16;
306   #else
307 < typedef unsigned short int yytype_uint16;
307 > typedef unsigned short yytype_uint16;
308   #endif
309  
310   #ifdef YYTYPE_INT16
311   typedef YYTYPE_INT16 yytype_int16;
312   #else
313 < typedef short int yytype_int16;
313 > typedef short yytype_int16;
314   #endif
315  
316   #ifndef YYSIZE_T
# Line 299 | Line 322 | typedef short int yytype_int16;
322   #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
323   #  define YYSIZE_T size_t
324   # else
325 < #  define YYSIZE_T unsigned int
325 > #  define YYSIZE_T unsigned
326   # endif
327   #endif
328  
# Line 335 | Line 358 | typedef short int yytype_int16;
358   # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
359   #endif
360  
338 #if !defined _Noreturn \
339     && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
340 # if defined _MSC_VER && 1200 <= _MSC_VER
341 #  define _Noreturn __declspec (noreturn)
342 # else
343 #  define _Noreturn YY_ATTRIBUTE ((__noreturn__))
344 # endif
345 #endif
346
361   /* Suppress unused-variable warnings by "using" E.  */
362   #if ! defined lint || defined __GNUC__
363   # define YYUSE(E) ((void) (E))
# Line 351 | Line 365 | typedef short int yytype_int16;
365   # define YYUSE(E) /* empty */
366   #endif
367  
368 < #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
368 > #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
369   /* Suppress an incorrect diagnostic about yylval being uninitialized.  */
370   # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
371      _Pragma ("GCC diagnostic push") \
# Line 502 | Line 516 | union yyalloc
516   /* YYFINAL -- State number of the termination state.  */
517   #define YYFINAL  2
518   /* YYLAST -- Last index in YYTABLE.  */
519 < #define YYLAST   314
519 > #define YYLAST   355
520  
521   /* YYNTOKENS -- Number of terminals.  */
522 < #define YYNTOKENS  67
522 > #define YYNTOKENS  78
523   /* YYNNTS -- Number of nonterminals.  */
524 < #define YYNNTS  81
524 > #define YYNNTS  92
525   /* YYNRULES -- Number of rules.  */
526 < #define YYNRULES  153
526 > #define YYNRULES  174
527   /* YYNSTATES -- Number of states.  */
528 < #define YYNSTATES  334
528 > #define YYNSTATES  380
529  
516 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
517   by yylex, with out-of-bounds checking.  */
530   #define YYUNDEFTOK  2
531 < #define YYMAXUTOK   316
531 > #define YYMAXUTOK   326
532  
533 + /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
534 +   as returned by yylex, with out-of-bounds checking.  */
535   #define YYTRANSLATE(YYX)                                                \
536 <  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
536 >  ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
537  
538   /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
539 <   as returned by yylex, without out-of-bounds checking.  */
539 >   as returned by yylex.  */
540   static const yytype_uint8 yytranslate[] =
541   {
542         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
543         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
544         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
545         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
546 +       2,     2,     2,     2,    77,     2,     2,     2,     2,     2,
547 +       2,     2,     2,     2,     2,     2,     2,     2,    76,    74,
548 +       2,    75,     2,     2,     2,     2,     2,     2,     2,     2,
549         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
533       2,     2,     2,     2,     2,     2,     2,     2,    66,    64,
534       2,    65,     2,     2,     2,     2,     2,     2,     2,     2,
550         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
551         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
552         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
553         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
554 <       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
540 <       2,     2,     2,    62,     2,    63,     2,     2,     2,     2,
554 >       2,     2,     2,    72,     2,    73,     2,     2,     2,     2,
555         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
556         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
557         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
# Line 556 | Line 570 | static const yytype_uint8 yytranslate[]
570        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
571        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
572        45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
573 <      55,    56,    57,    58,    59,    60,    61
573 >      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
574 >      65,    66,    67,    68,    69,    70,    71
575   };
576  
577   #if YYDEBUG
578    /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
579   static const yytype_uint16 yyrline[] =
580   {
581 <       0,   100,   100,   101,   104,   105,   106,   107,   108,   109,
582 <     111,   111,   112,   113,   114,   115,   116,   117,   118,   119,
583 <     122,   122,   123,   124,   125,   126,   131,   133,   134,   136,
584 <     137,   138,   139,   140,   141,   143,   148,   153,   159,   164,
585 <     172,   174,   175,   177,   178,   179,   180,   181,   182,   183,
586 <     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
587 <     194,   196,   202,   208,   214,   220,   226,   232,   238,   246,
588 <     254,   259,   264,   270,   276,   282,   288,   298,   298,   315,
589 <     316,   318,   319,   320,   322,   330,   338,   349,   349,   365,
590 <     366,   368,   369,   370,   372,   382,   395,   395,   440,   441,
591 <     443,   444,   445,   446,   447,   448,   449,   450,   451,   452,
592 <     454,   461,   468,   475,   491,   497,   503,   509,   515,   534,
593 <     536,   537,   539,   540,   541,   542,   543,   545,   551,   557,
594 <     566,   566,   585,   586,   588,   589,   590,   591,   592,   593,
595 <     595,   602,   609,   620,   626,   628,   629,   631,   649,   651,
596 <     652,   654,   655,   657
581 >       0,   108,   108,   109,   112,   113,   114,   115,   116,   117,
582 >     119,   119,   120,   121,   122,   123,   124,   125,   126,   127,
583 >     130,   130,   131,   132,   133,   134,   139,   141,   142,   144,
584 >     145,   146,   147,   148,   149,   150,   151,   152,   153,   155,
585 >     160,   165,   171,   176,   181,   187,   192,   197,   204,   206,
586 >     207,   209,   210,   211,   212,   213,   214,   215,   216,   217,
587 >     218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
588 >     228,   229,   231,   237,   243,   249,   255,   261,   267,   273,
589 >     278,   283,   288,   293,   298,   303,   308,   314,   320,   326,
590 >     332,   341,   341,   354,   355,   357,   358,   359,   361,   369,
591 >     377,   388,   388,   398,   399,   401,   402,   403,   405,   412,
592 >     422,   422,   457,   458,   460,   461,   462,   463,   464,   465,
593 >     466,   467,   468,   469,   471,   479,   487,   495,   508,   515,
594 >     522,   529,   536,   552,   554,   555,   557,   558,   559,   560,
595 >     561,   563,   569,   575,   584,   584,   600,   601,   603,   604,
596 >     605,   606,   607,   608,   609,   611,   620,   619,   627,   627,
597 >     628,   633,   640,   648,   660,   667,   669,   670,   672,   686,
598 >     688,   689,   691,   692,   694
599   };
600   #endif
601  
# Line 587 | Line 604 | static const yytype_uint16 yyrline[] =
604     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
605   static const char *const yytname[] =
606   {
607 <  "$end", "error", "$undefined", "AWAY", "BAN_UNKNOWN", "BLACKLIST",
608 <  "BYTES", "KBYTES", "MBYTES", "CHANNEL", "CONNREGEX", "DNS_FDLIMIT",
609 <  "DNSBL_FROM", "DNSBL_TO", "EXEMPT", "FD", "INVITE", "IRC", "KLINE",
610 <  "KEY", "MASK", "MAX_READ", "MODE", "NAME", "NEGCACHE",
611 <  "NEGCACHE_REBUILD", "NICK", "NICKSERV", "NOTICE", "OPER", "OPM",
612 <  "OPTIONS", "PASSWORD", "PERFORM", "PIDFILE", "PORT", "PROTOCOL",
613 <  "READTIMEOUT", "REALNAME", "REPLY", "SCANLOG", "SCANNER", "SECONDS",
614 <  "MINUTES", "HOURS", "DAYS", "WEEKS", "MONTHS", "YEARS", "SENDMAIL",
615 <  "SERVER", "TARGET_IP", "TARGET_PORT", "TARGET_STRING", "TIMEOUT", "TYPE",
607 >  "$end", "error", "$undefined", "ADDRESS_FAMILY", "AWAY", "BAN_UNKNOWN",
608 >  "BLACKLIST", "BYTES", "KBYTES", "MBYTES", "CHANNEL", "COMMAND_INTERVAL",
609 >  "COMMAND_QUEUE_SIZE", "COMMAND_TIMEOUT", "CONNREGEX", "DNS_FDLIMIT",
610 >  "DNS_TIMEOUT", "DNSBL_FROM", "DNSBL_TO", "EXEMPT", "FD", "INVITE",
611 >  "IPV4", "IPV6", "IRC", "KLINE", "KEY", "MASK", "MAX_READ", "MODE",
612 >  "NAME", "NEGCACHE", "NEGCACHE_REBUILD", "NICK", "NICKSERV", "NOTICE",
613 >  "OPER", "OPM", "OPTIONS", "PASSWORD", "PERFORM", "PIDFILE", "PORT",
614 >  "PROTOCOL", "READTIMEOUT", "REALNAME", "RECONNECTINTERVAL", "REPLY",
615 >  "SCANLOG", "SCANNER", "SECONDS", "MINUTES", "HOURS", "DAYS", "WEEKS",
616 >  "MONTHS", "YEARS", "SENDMAIL", "SERVER", "TARGET_IP", "TARGET_PORT",
617 >  "TARGET_STRING", "TIMEOUT", "TLS", "TLS_HOSTNAME_VERIFICATION", "TYPE",
618    "USERNAME", "USER", "VHOST", "NUMBER", "STRING", "PROTOCOLTYPE", "'{'",
619 <  "'}'", "';'", "'='", "':'", "$accept", "config", "config_items",
619 >  "'}'", "';'", "'='", "':'", "','", "$accept", "config", "config_items",
620    "timespec_", "timespec", "sizespec_", "sizespec", "options_entry",
621    "options_items", "options_item", "options_negcache",
622    "options_negcache_rebuild", "options_pidfile", "options_dns_fdlimit",
623 <  "options_scanlog", "irc_entry", "irc_items", "irc_item", "irc_away",
624 <  "irc_kline", "irc_mode", "irc_nick", "irc_nickserv", "irc_oper",
625 <  "irc_password", "irc_perform", "irc_notice", "irc_port",
626 <  "irc_readtimeout", "irc_realname", "irc_server", "irc_username",
627 <  "irc_vhost", "irc_connregex", "channel_entry", "$@1", "channel_items",
628 <  "channel_item", "channel_name", "channel_key", "channel_invite",
629 <  "user_entry", "$@2", "user_items", "user_item", "user_mask",
630 <  "user_scanner", "scanner_entry", "$@3", "scanner_items", "scanner_item",
631 <  "scanner_name", "scanner_vhost", "scanner_target_ip",
623 >  "options_dns_timeout", "options_scanlog", "options_command_queue_size",
624 >  "options_command_interval", "options_command_timeout", "irc_entry",
625 >  "irc_items", "irc_item", "irc_away", "irc_kline", "irc_mode", "irc_nick",
626 >  "irc_nickserv", "irc_oper", "irc_password", "irc_perform", "irc_notice",
627 >  "irc_port", "irc_tls", "irc_tls_hostname_verification",
628 >  "irc_readtimeout", "irc_reconnectinterval", "irc_realname", "irc_server",
629 >  "irc_username", "irc_vhost", "irc_connregex", "channel_entry", "$@1",
630 >  "channel_items", "channel_item", "channel_name", "channel_key",
631 >  "channel_invite", "user_entry", "$@2", "user_items", "user_item",
632 >  "user_mask", "user_scanner", "scanner_entry", "$@3", "scanner_items",
633 >  "scanner_item", "scanner_name", "scanner_vhost", "scanner_target_ip",
634    "scanner_target_string", "scanner_fd", "scanner_target_port",
635    "scanner_timeout", "scanner_max_read", "scanner_protocol", "opm_entry",
636    "opm_items", "opm_item", "opm_dnsbl_from", "opm_dnsbl_to",
637    "opm_sendmail", "opm_blacklist_entry", "$@4", "blacklist_items",
638 <  "blacklist_item", "blacklist_name", "blacklist_kline", "blacklist_type",
639 <  "blacklist_ban_unknown", "blacklist_reply", "blacklist_reply_items",
640 <  "blacklist_reply_item", "exempt_entry", "exempt_items", "exempt_item",
641 <  "exempt_mask", YY_NULLPTR
638 >  "blacklist_item", "blacklist_name", "blacklist_address_family", "$@5",
639 >  "blacklist_address_family_items", "blacklist_address_family_item",
640 >  "blacklist_kline", "blacklist_type", "blacklist_ban_unknown",
641 >  "blacklist_reply", "blacklist_reply_items", "blacklist_reply_item",
642 >  "exempt_entry", "exempt_items", "exempt_item", "exempt_mask", YY_NULLPTR
643   };
644   #endif
645  
# Line 632 | Line 654 | static const yytype_uint16 yytoknum[] =
654       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
655       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
656       305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
657 <     315,   316,   123,   125,    59,    61,    58
657 >     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
658 >     325,   326,   123,   125,    59,    61,    58,    44
659   };
660   # endif
661  
662 < #define YYPACT_NINF -245
662 > #define YYPACT_NINF -304
663  
664   #define yypact_value_is_default(Yystate) \
665 <  (!!((Yystate) == (-245)))
665 >  (!!((Yystate) == (-304)))
666  
667 < #define YYTABLE_NINF -131
667 > #define YYTABLE_NINF -145
668  
669   #define yytable_value_is_error(Yytable_value) \
670    0
# Line 650 | Line 673 | static const yytype_uint16 yytoknum[] =
673       STATE-NUM.  */
674   static const yytype_int16 yypact[] =
675   {
676 <    -245,   142,  -245,   -55,   -48,   -43,   -26,  -245,  -245,  -245,
677 <    -245,   -18,  -245,     2,  -245,  -245,    73,    97,    89,   153,
678 <     -21,    -9,  -245,    -8,     3,  -245,  -245,  -245,    -1,    13,
679 <      14,    15,    23,    24,    30,    31,    34,    38,    39,    40,
680 <      44,    47,    51,    53,     0,  -245,  -245,  -245,  -245,  -245,
681 <    -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
682 <    -245,  -245,  -245,    76,  -245,    57,    62,    71,    12,  -245,
683 <    -245,  -245,  -245,  -245,   105,  -245,    75,    78,    79,    80,
684 <      81,    20,  -245,  -245,  -245,  -245,  -245,  -245,    10,   116,
685 <      88,    77,  -245,    90,    91,    98,   100,   101,   102,   103,
686 <     106,   111,   115,   117,   120,   121,   122,   124,   125,    93,
687 <    -245,   118,   126,   128,   129,   127,  -245,   130,   131,   120,
688 <     120,   141,   149,   146,  -245,  -245,   147,   148,    45,  -245,
689 <    -245,  -245,  -245,   150,   151,   154,   155,   156,   157,   158,
690 <     159,   160,    19,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
691 <    -245,  -245,  -245,   162,  -245,   163,   164,   165,   166,   167,
692 <     168,   169,   170,   171,   172,   173,   152,   174,   175,   176,
693 <     177,   178,  -245,    68,   179,   180,   181,  -245,   110,   182,
694 <     183,   184,   185,   186,  -245,   191,   192,   189,  -245,   195,
695 <     196,   197,   198,   200,   199,   201,   120,   202,   203,  -245,
696 <    -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
697 <    -245,  -245,   120,   120,   120,   120,   120,   120,   120,  -245,
698 <    -245,  -245,  -245,  -245,  -245,  -245,   204,   205,   206,   -11,
699 <    -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,   207,   208,
700 <     209,   194,   210,    58,  -245,  -245,  -245,  -245,  -245,  -245,
701 <    -245,  -245,  -245,  -245,  -245,   212,   213,  -245,   214,    61,
702 <     215,   216,   217,   218,   220,   221,   222,   223,  -245,  -245,
703 <    -245,  -245,  -245,  -245,  -245,  -245,   228,   229,   230,   227,
704 <    -245,   233,   234,   235,   237,   238,   236,  -245,  -245,  -245,
705 <    -245,   196,   196,   196,  -245,  -245,  -245,  -245,   240,  -245,
706 <    -245,  -245,  -245,  -245,   239,   241,   242,  -245,   243,   244,
707 <     245,   232,   -57,  -245,   246,  -245,  -245,  -245,  -245,   247,
708 <    -245,  -245,  -245,  -245,  -245,  -245,   252,   249,  -245,  -245,
709 <    -245,   250,  -245,  -245
676 >    -304,   164,  -304,   -65,   -56,   -52,   -48,  -304,  -304,  -304,
677 >    -304,   -37,  -304,    -6,  -304,  -304,    10,   123,    83,   183,
678 >     -23,   -22,  -304,   -13,     4,  -304,  -304,  -304,    -5,     1,
679 >       7,    11,    17,    18,    20,    27,    28,    29,    33,    34,
680 >      36,    39,    41,    43,    47,    50,    51,     0,  -304,  -304,
681 >    -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
682 >    -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,    59,
683 >    -304,    56,    60,    61,    73,  -304,  -304,  -304,  -304,  -304,
684 >      69,  -304,    63,    66,    68,    70,    74,    75,    78,    79,
685 >      85,    40,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
686 >    -304,  -304,    93,   150,    64,    92,  -304,   101,   103,   104,
687 >     106,   107,   112,   115,   120,   122,   127,   131,   134,   135,
688 >     134,   136,   138,   139,   146,   147,    98,  -304,   132,   149,
689 >     151,   152,   153,  -304,   148,   134,   154,   134,   156,   134,
690 >     134,   134,   158,   159,   172,  -304,  -304,   155,   173,     5,
691 >    -304,  -304,  -304,  -304,   174,   175,   177,   178,   179,   180,
692 >     181,   184,   185,    37,  -304,  -304,  -304,  -304,  -304,  -304,
693 >    -304,  -304,  -304,  -304,   187,  -304,   188,   189,   190,   191,
694 >     192,   193,   194,   195,   196,   197,   198,   182,   199,   200,
695 >     201,   202,   203,   204,   205,   206,  -304,   -18,   207,   208,
696 >     209,  -304,   114,   210,   211,   212,   213,   214,   215,   216,
697 >     217,   218,  -304,   223,   224,   221,  -304,   157,   227,   228,
698 >     176,   229,   231,   232,   134,   233,   230,  -304,  -304,  -304,
699 >    -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
700 >     134,   134,   134,   134,   134,   134,   134,  -304,  -304,  -304,
701 >    -304,  -304,  -304,  -304,  -304,  -304,  -304,   222,   226,   234,
702 >     102,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
703 >     235,   236,   237,   186,   238,    82,  -304,  -304,  -304,  -304,
704 >    -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
705 >    -304,  -304,   240,   241,  -304,   242,    52,   243,   244,   245,
706 >     246,   248,   249,   250,   251,  -304,  -304,  -304,  -304,  -304,
707 >    -304,  -304,  -304,   256,   257,   258,   255,  -304,   259,   239,
708 >     260,   261,   263,   265,   262,  -304,  -304,  -304,  -304,   227,
709 >     227,   227,  -304,  -304,  -304,  -304,   264,  -304,  -304,  -304,
710 >    -304,  -304,   266,   267,   268,  -304,    25,   269,   270,   271,
711 >     272,   -60,  -304,   274,  -304,  -304,  -304,  -304,   275,  -304,
712 >    -304,  -304,  -304,  -304,   -59,  -304,  -304,  -304,  -304,   276,
713 >     277,  -304,  -304,  -304,  -304,    25,   278,  -304,  -304,  -304
714   };
715  
716    /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
# Line 691 | Line 718 | static const yytype_int16 yypact[] =
718       means the default is an error.  */
719   static const yytype_uint8 yydefact[] =
720   {
721 <       2,    87,     1,     0,     0,     0,     0,     3,     5,     4,
721 >       2,   101,     1,     0,     0,     0,     0,     3,     5,     4,
722         7,     0,     8,     0,     6,     9,     0,     0,     0,     0,
723 <       0,     0,   152,     0,     0,   150,   151,    60,     0,     0,
723 >       0,     0,   173,     0,     0,   171,   172,    71,     0,     0,
724         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
725 <       0,     0,     0,     0,     0,    42,    43,    45,    48,    46,
726 <      47,    49,    50,    57,    58,    51,    52,    53,    54,    55,
727 <      56,    44,    59,     0,   126,     0,     0,     0,     0,   121,
728 <     122,   123,   124,   125,     0,    34,     0,     0,     0,     0,
729 <       0,     0,    28,    29,    30,    31,    32,    33,     0,     0,
730 <       0,     0,   149,     0,     0,     0,     0,     0,     0,     0,
725 >       0,     0,     0,     0,     0,     0,     0,     0,    50,    51,
726 >      53,    56,    54,    55,    57,    58,    68,    69,    59,    60,
727 >      61,    62,    63,    64,    65,    66,    67,    52,    70,     0,
728 >     140,     0,     0,     0,     0,   135,   136,   137,   138,   139,
729 >       0,    38,     0,     0,     0,     0,     0,     0,     0,     0,
730 >       0,     0,    28,    29,    30,    31,    32,    33,    34,    35,
731 >      36,    37,     0,     0,     0,     0,   170,     0,     0,     0,
732         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
733 <      41,     0,     0,     0,     0,     0,   120,     0,     0,     0,
734 <       0,     0,     0,     0,    27,    93,     0,     0,     0,    90,
735 <      91,    92,   109,     0,     0,     0,     0,     0,     0,     0,
736 <       0,     0,     0,    99,   100,   101,   103,   105,   102,   104,
737 <     107,   108,   106,     0,   148,     0,     0,     0,     0,     0,
738 <       0,     0,     0,     0,     0,     0,    10,     0,     0,     0,
739 <       0,     0,    40,     0,     0,     0,     0,   119,     0,     0,
740 <       0,     0,     0,     0,    26,     0,     0,     0,    89,     0,
741 <       0,     0,     0,     0,     0,     0,     0,     0,     0,    98,
742 <     153,    61,    76,    62,    63,    64,    65,    69,    66,    67,
743 <      68,    70,    10,    10,    10,    10,    10,    10,    10,    12,
744 <      11,    71,    72,    73,    74,    75,     0,     0,     0,     0,
745 <      80,    81,    82,    83,   127,   128,   129,   139,     0,     0,
746 <       0,     0,     0,     0,   133,   134,   136,   135,   137,   138,
747 <      38,    35,    36,    37,    39,     0,     0,    88,     0,    20,
748 <       0,     0,     0,     0,     0,     0,     0,     0,    97,    13,
749 <      14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
750 <      79,     0,     0,     0,     0,     0,     0,   132,    94,    95,
751 <     114,    20,    20,    20,    22,    21,   117,   110,     0,   112,
752 <     115,   113,   116,   111,     0,     0,     0,    78,     0,     0,
753 <       0,     0,     0,   146,     0,   131,    23,    24,    25,     0,
754 <      86,    85,    84,   143,   141,   140,     0,     0,   145,   142,
755 <     118,     0,   144,   147
733 >       0,     0,     0,     0,     0,     0,     0,    49,     0,     0,
734 >       0,     0,     0,   134,     0,     0,     0,     0,     0,     0,
735 >       0,     0,     0,     0,     0,    27,   107,     0,     0,     0,
736 >     104,   105,   106,   123,     0,     0,     0,     0,     0,     0,
737 >       0,     0,     0,     0,   113,   114,   115,   117,   119,   116,
738 >     118,   121,   122,   120,     0,   169,     0,     0,     0,     0,
739 >       0,     0,     0,     0,     0,     0,     0,    10,     0,     0,
740 >       0,     0,     0,     0,     0,     0,    48,     0,     0,     0,
741 >       0,   133,     0,     0,     0,     0,     0,     0,     0,     0,
742 >       0,     0,    26,     0,     0,     0,   103,     0,     0,     0,
743 >       0,     0,     0,     0,     0,     0,     0,   112,   174,    72,
744 >      90,    73,    74,    75,    76,    80,    77,    78,    79,    81,
745 >      10,    10,    10,    10,    10,    10,    10,    12,    11,    84,
746 >      86,    85,    87,    82,    83,    88,    89,     0,     0,     0,
747 >       0,    94,    95,    96,    97,   141,   142,   143,   154,   156,
748 >       0,     0,     0,     0,     0,     0,   147,   148,   149,   151,
749 >     150,   152,   153,    46,    45,    47,    42,    43,    39,    40,
750 >      41,    44,     0,     0,   102,     0,    20,     0,     0,     0,
751 >       0,     0,     0,     0,     0,   111,    13,    14,    15,    16,
752 >      17,    18,    19,     0,     0,     0,     0,    93,     0,     0,
753 >       0,     0,     0,     0,     0,   146,   108,   109,   128,    20,
754 >      20,    20,    22,    21,   131,   124,     0,   126,   129,   127,
755 >     130,   125,     0,     0,     0,    92,     0,     0,     0,     0,
756 >       0,     0,   167,     0,   145,    23,    24,    25,     0,   100,
757 >      99,    98,   160,   161,     0,   159,   164,   162,   155,     0,
758 >       0,   166,   163,   132,   157,     0,     0,   165,   158,   168
759   };
760  
761    /* YYPGOTO[NTERM-NUM].  */
762   static const yytype_int16 yypgoto[] =
763   {
764 <    -245,  -245,  -245,   -10,  -104,  -244,    27,  -245,  -245,   133,
765 <    -245,  -245,  -245,  -245,  -245,  -245,  -245,   219,  -245,  -245,
766 <    -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
767 <    -245,  -245,  -245,  -245,  -245,  -245,  -245,    35,  -245,  -245,
768 <    -245,  -245,  -245,  -245,   137,  -245,  -245,  -245,  -245,  -245,
769 <     139,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,
770 <    -245,  -245,   225,  -245,  -245,  -245,  -245,  -245,  -245,   -25,
771 <    -245,  -245,  -245,  -245,  -245,  -245,   -46,  -245,  -245,   277,
772 <    -245
764 >    -304,  -304,  -304,    -1,  -118,  -303,    87,  -304,  -304,   166,
765 >    -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
766 >    -304,   290,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
767 >    -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,
768 >    -304,  -304,  -304,  -304,    46,  -304,  -304,  -304,  -304,  -304,
769 >    -304,   170,  -304,  -304,  -304,  -304,  -304,   144,  -304,  -304,
770 >    -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,  -304,   279,
771 >    -304,  -304,  -304,  -304,  -304,  -304,    80,  -304,  -304,  -304,
772 >    -304,   -36,  -304,  -304,  -304,  -304,  -304,     3,  -304,  -304,
773 >     314,  -304
774   };
775  
776    /* YYDEFGOTO[NTERM-NUM].  */
777   static const yytype_int16 yydefgoto[] =
778   {
779 <      -1,     1,     7,   219,   220,   294,   295,     8,    81,    82,
780 <      83,    84,    85,    86,    87,     9,    44,    45,    46,    47,
781 <      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
782 <      58,    59,    60,    61,    62,    63,   229,   230,   231,   232,
783 <     233,    10,    11,   128,   129,   130,   131,    12,    13,   142,
784 <     143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
785 <      14,    68,    69,    70,    71,    72,    73,    74,   243,   244,
786 <     245,   246,   247,   248,   249,   312,   313,    15,    24,    25,
787 <      26
779 >      -1,     1,     7,   247,   248,   332,   333,     8,    91,    92,
780 >      93,    94,    95,    96,    97,    98,    99,   100,   101,     9,
781 >      47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
782 >      57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
783 >      67,    68,    69,   260,   261,   262,   263,   264,    10,    11,
784 >     149,   150,   151,   152,    12,    13,   163,   164,   165,   166,
785 >     167,   168,   169,   170,   171,   172,   173,    14,    74,    75,
786 >      76,    77,    78,    79,    80,   275,   276,   277,   278,   318,
787 >     364,   365,   279,   280,   281,   282,   351,   352,    15,    24,
788 >      25,    26
789   };
790  
791    /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
# Line 760 | Line 793 | static const yytype_int16 yydefgoto[] =
793       number is the opposite.  If YYTABLE_NINF, syntax error.  */
794   static const yytype_int16 yytable[] =
795   {
796 <     167,    27,   311,    28,    22,   226,   327,    16,   227,   -77,
797 <      29,   125,   228,    64,    17,   180,   181,  -130,    30,    18,
798 <     132,    75,    31,    23,    65,    66,    32,    33,    34,    35,
799 <     126,    76,    36,    37,   133,    38,    19,    39,    40,    20,
800 <     134,    88,   135,    21,    77,    78,   125,   316,   317,   318,
801 <      41,   127,   279,    89,    79,   136,    42,    90,    43,   237,
802 <      80,    67,   238,   109,    93,   126,    91,   291,   292,   293,
803 <     137,   138,   139,   140,    22,   115,   239,   141,    94,    95,
804 <      96,   240,   198,   123,   226,   111,   127,   227,    97,    98,
805 <      64,   228,   266,    23,  -130,    99,   100,   241,    27,   101,
806 <      28,    65,    66,   102,   103,   104,   -77,    29,   187,   105,
807 <     117,   237,   106,   242,   238,    30,   107,   132,   108,    31,
808 <     259,   286,   112,    32,    33,    34,    35,   113,   239,    36,
809 <      37,   133,    38,   240,    39,    40,   114,   134,    67,   135,
810 <     118,   154,     2,   119,   120,   121,   122,    41,   153,   241,
811 <     155,   156,   136,    42,    75,    43,     3,   172,   157,     4,
812 <     158,   159,   160,   161,    76,   242,   162,   137,   138,   139,
813 <     140,   163,     5,     6,   141,   164,   165,    77,    78,   166,
814 <     173,   168,   169,   -96,   170,   171,   174,    79,   175,   176,
815 <     179,   177,   178,    80,   212,   213,   214,   215,   216,   217,
816 <     218,   182,   269,   270,   271,   272,   273,   274,   275,   183,
817 <     184,   166,   185,   186,   124,   189,   190,   260,   287,   191,
818 <     192,   193,   194,   195,   196,   197,   200,   201,   202,   203,
819 <     204,   205,   206,   207,   208,   209,   210,   211,   221,   222,
820 <     223,   224,   225,   234,   235,   236,   250,   251,   252,   253,
821 <     254,   255,   256,   257,   258,   259,   284,   261,   264,   262,
822 <     263,   265,   267,   110,   280,   188,   328,   268,     0,   276,
823 <     277,   278,   281,   282,   283,   285,   288,   289,   290,   296,
824 <     297,   199,   299,   298,   300,   301,   302,   303,   304,   305,
825 <     306,   307,   308,   116,   309,   310,   311,   326,   314,   319,
826 <     315,    92,     0,   320,     0,   321,   322,   323,   324,   325,
827 <     329,   330,   331,   332,   333
796 >     188,    27,   190,   257,    28,    22,   146,    16,   258,   350,
797 >     -91,    22,   259,   370,    29,   374,    17,   203,   375,   205,
798 >      18,   207,   208,   209,    19,    30,   355,   356,   357,    31,
799 >      20,    23,   147,    32,    33,    34,    35,    23,   153,    36,
800 >      37,    81,    38,    21,    39,    40,    41,   362,   363,   102,
801 >     103,    82,    83,    84,   148,    85,    86,   154,    42,   329,
802 >     330,   331,   104,    43,    44,   155,    45,   156,    46,   128,
803 >     107,    87,    88,   126,    70,   134,   108,   105,   215,  -144,
804 >     157,    89,   109,   268,    70,   269,   110,   270,    90,  -144,
805 >      71,    72,   111,   112,   146,   113,   158,   159,   160,   161,
806 >      71,    72,   114,   115,   116,   162,   303,   271,   117,   118,
807 >     226,   119,   272,   144,   120,   268,   121,   269,   122,   270,
808 >     147,   296,   123,   257,    27,   124,   125,    28,   258,   273,
809 >      73,   129,   259,   -91,   174,   130,   131,    29,   135,   271,
810 >      73,   136,   148,   137,   272,   138,   132,   274,    30,   139,
811 >     140,   153,    31,   141,   142,   324,    32,    33,    34,    35,
812 >     143,   273,    36,    37,     2,    38,   175,    39,    40,    41,
813 >     154,   176,   196,   177,   178,   316,   179,   180,   155,   274,
814 >     156,    42,   181,     3,    81,   182,    43,    44,     4,    45,
815 >     183,    46,   184,   157,    82,    83,    84,   185,    85,    86,
816 >     186,     5,     6,   187,   197,   189,   191,   192,   193,   158,
817 >     159,   160,   161,  -110,    87,    88,   194,   195,   162,   198,
818 >     202,   199,   200,   204,    89,   206,   295,   201,   210,   211,
819 >     213,    90,   240,   241,   242,   243,   244,   245,   246,   306,
820 >     307,   308,   309,   310,   311,   312,   212,   299,   214,   217,
821 >     218,   187,   219,   220,   221,   222,   223,   145,   322,   224,
822 >     225,   228,   229,   230,   231,   232,   233,   234,   235,   236,
823 >     237,   238,   239,   249,   250,   251,   252,   253,   254,   255,
824 >     256,   265,   266,   267,   283,   284,   285,   286,   287,   288,
825 >     289,   290,   291,   292,   293,   294,   296,   313,   298,   300,
826 >     301,   314,   302,   304,   305,   297,   317,   227,   347,   315,
827 >     319,   320,   321,   323,   326,   327,   328,   334,   335,   216,
828 >     337,   336,   338,   339,   340,   341,   342,   343,   344,   345,
829 >     348,   349,   350,   358,   346,   353,   354,   127,   106,   378,
830 >     359,   360,   361,   366,   367,   368,   376,   369,   372,   373,
831 >       0,   377,   379,   133,   371,   325
832   };
833  
834   static const yytype_int16 yycheck[] =
835   {
836 <     104,     1,    59,     3,     1,    16,    63,    62,    19,     9,
837 <      10,     1,    23,     1,    62,   119,   120,     5,    18,    62,
838 <       1,     1,    22,    20,    12,    13,    26,    27,    28,    29,
839 <      20,    11,    32,    33,    15,    35,    62,    37,    38,    57,
840 <      21,    62,    23,    41,    24,    25,     1,   291,   292,   293,
841 <      50,    41,    63,    62,    34,    36,    56,    65,    58,     1,
842 <      40,    49,     4,    63,    65,    20,    63,     6,     7,     8,
843 <      51,    52,    53,    54,     1,    63,    18,    58,    65,    65,
844 <      65,    23,    63,    63,    16,     9,    41,    19,    65,    65,
845 <       1,    23,   196,    20,     5,    65,    65,    39,     1,    65,
846 <       3,    12,    13,    65,    65,    65,     9,    10,    63,    65,
847 <       5,     1,    65,    55,     4,    18,    65,     1,    65,    22,
848 <      59,    63,    65,    26,    27,    28,    29,    65,    18,    32,
849 <      33,    15,    35,    23,    37,    38,    65,    21,    49,    23,
850 <      65,    64,     0,    65,    65,    65,    65,    50,    60,    39,
851 <      60,    60,    36,    56,     1,    58,    14,    64,    60,    17,
852 <      60,    60,    60,    60,    11,    55,    60,    51,    52,    53,
853 <      54,    60,    30,    31,    58,    60,    59,    24,    25,    59,
854 <      62,    60,    60,    41,    60,    60,    60,    34,    60,    60,
855 <      59,    64,    62,    40,    42,    43,    44,    45,    46,    47,
856 <      48,    60,   212,   213,   214,   215,   216,   217,   218,    60,
857 <      64,    59,    65,    65,    81,    65,    65,   190,   243,    65,
858 <      65,    65,    65,    65,    65,    65,    64,    64,    64,    64,
859 <      64,    64,    64,    64,    64,    64,    64,    64,    64,    64,
860 <      64,    64,    64,    64,    64,    64,    64,    64,    64,    64,
861 <      64,    60,    60,    64,    59,    59,    62,    60,    59,    61,
862 <      60,    60,    60,    44,   229,   128,   312,    64,    -1,    65,
863 <      65,    65,    65,    65,    65,    65,    64,    64,    64,    64,
864 <      64,   142,    64,    66,    64,    64,    64,    64,    60,    60,
865 <      60,    64,    59,    68,    60,    60,    59,    65,    60,    59,
866 <      64,    24,    -1,    64,    -1,    64,    64,    64,    64,    64,
867 <      64,    64,    60,    64,    64
836 >     118,     1,   120,    21,     4,     1,     1,    72,    26,    69,
837 >      10,     1,    30,    73,    14,    74,    72,   135,    77,   137,
838 >      72,   139,   140,   141,    72,    25,   329,   330,   331,    29,
839 >      67,    27,    27,    33,    34,    35,    36,    27,     1,    39,
840 >      40,     1,    42,    49,    44,    45,    46,    22,    23,    72,
841 >      72,    11,    12,    13,    49,    15,    16,    20,    58,     7,
842 >       8,     9,    75,    63,    64,    28,    66,    30,    68,    10,
843 >      75,    31,    32,    73,     1,     6,    75,    73,    73,     6,
844 >      43,    41,    75,     1,     1,     3,    75,     5,    48,     6,
845 >      17,    18,    75,    75,     1,    75,    59,    60,    61,    62,
846 >      17,    18,    75,    75,    75,    68,   224,    25,    75,    75,
847 >      73,    75,    30,    73,    75,     1,    75,     3,    75,     5,
848 >      27,    69,    75,    21,     1,    75,    75,     4,    26,    47,
849 >      57,    75,    30,    10,    70,    75,    75,    14,    75,    25,
850 >      57,    75,    49,    75,    30,    75,    73,    65,    25,    75,
851 >      75,     1,    29,    75,    75,    73,    33,    34,    35,    36,
852 >      75,    47,    39,    40,     0,    42,    74,    44,    45,    46,
853 >      20,    70,    74,    70,    70,    73,    70,    70,    28,    65,
854 >      30,    58,    70,    19,     1,    70,    63,    64,    24,    66,
855 >      70,    68,    70,    43,    11,    12,    13,    70,    15,    16,
856 >      69,    37,    38,    69,    72,    70,    70,    69,    69,    59,
857 >      60,    61,    62,    49,    31,    32,    70,    70,    68,    70,
858 >      72,    70,    70,    69,    41,    69,    69,    74,    70,    70,
859 >      75,    48,    50,    51,    52,    53,    54,    55,    56,   240,
860 >     241,   242,   243,   244,   245,   246,    74,    71,    75,    75,
861 >      75,    69,    75,    75,    75,    75,    75,    91,    72,    75,
862 >      75,    74,    74,    74,    74,    74,    74,    74,    74,    74,
863 >      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
864 >      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
865 >      74,    74,    74,    70,    70,    74,    69,    75,    70,    70,
866 >      69,    75,    70,    70,    74,   218,   260,   163,    69,    75,
867 >      75,    75,    75,    75,    74,    74,    74,    74,    74,   149,
868 >      74,    76,    74,    74,    74,    74,    70,    70,    70,    74,
869 >      70,    70,    69,    69,    75,    70,    74,    47,    24,   375,
870 >      74,    74,    74,    74,    74,    74,    70,    75,    74,    74,
871 >      -1,    74,    74,    74,   351,   275
872   };
873  
874    /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
875       symbol of state STATE-NUM.  */
876   static const yytype_uint8 yystos[] =
877   {
878 <       0,    68,     0,    14,    17,    30,    31,    69,    74,    82,
879 <     108,   109,   114,   115,   127,   144,    62,    62,    62,    62,
880 <      57,    41,     1,    20,   145,   146,   147,     1,     3,    10,
881 <      18,    22,    26,    27,    28,    29,    32,    33,    35,    37,
882 <      38,    50,    56,    58,    83,    84,    85,    86,    87,    88,
883 <      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
884 <      99,   100,   101,   102,     1,    12,    13,    49,   128,   129,
885 <     130,   131,   132,   133,   134,     1,    11,    24,    25,    34,
886 <      40,    75,    76,    77,    78,    79,    80,    81,    62,    62,
887 <      65,    63,   146,    65,    65,    65,    65,    65,    65,    65,
888 <      65,    65,    65,    65,    65,    65,    65,    65,    65,    63,
889 <      84,     9,    65,    65,    65,    63,   129,     5,    65,    65,
890 <      65,    65,    65,    63,    76,     1,    20,    41,   110,   111,
891 <     112,   113,     1,    15,    21,    23,    36,    51,    52,    53,
892 <      54,    58,   116,   117,   118,   119,   120,   121,   122,   123,
893 <     124,   125,   126,    60,    64,    60,    60,    60,    60,    60,
894 <      60,    60,    60,    60,    60,    59,    59,    71,    60,    60,
895 <      60,    60,    64,    62,    60,    60,    60,    64,    62,    59,
896 <      71,    71,    60,    60,    64,    65,    65,    63,   111,    65,
897 <      65,    65,    65,    65,    65,    65,    65,    65,    63,   117,
898 <      64,    64,    64,    64,    64,    64,    64,    64,    64,    64,
899 <      64,    64,    42,    43,    44,    45,    46,    47,    48,    70,
900 <      71,    64,    64,    64,    64,    64,    16,    19,    23,   103,
901 <     104,   105,   106,   107,    64,    64,    64,     1,     4,    18,
902 <      23,    39,    55,   135,   136,   137,   138,   139,   140,   141,
903 <      64,    64,    64,    64,    64,    60,    60,    64,    59,    59,
904 <      73,    60,    61,    60,    59,    60,    71,    60,    64,    70,
905 <      70,    70,    70,    70,    70,    70,    65,    65,    65,    63,
906 <     104,    65,    65,    65,    62,    65,    63,   136,    64,    64,
907 <      64,     6,     7,     8,    72,    73,    64,    64,    66,    64,
908 <      64,    64,    64,    64,    60,    60,    60,    64,    59,    60,
909 <      60,    59,   142,   143,    60,    64,    72,    72,    72,    59,
910 <      64,    64,    64,    64,    64,    64,    65,    63,   143,    64,
911 <      64,    60,    64,    64
878 >       0,    79,     0,    19,    24,    37,    38,    80,    85,    97,
879 >     126,   127,   132,   133,   145,   166,    72,    72,    72,    72,
880 >      67,    49,     1,    27,   167,   168,   169,     1,     4,    14,
881 >      25,    29,    33,    34,    35,    36,    39,    40,    42,    44,
882 >      45,    46,    58,    63,    64,    66,    68,    98,    99,   100,
883 >     101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
884 >     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
885 >       1,    17,    18,    57,   146,   147,   148,   149,   150,   151,
886 >     152,     1,    11,    12,    13,    15,    16,    31,    32,    41,
887 >      48,    86,    87,    88,    89,    90,    91,    92,    93,    94,
888 >      95,    96,    72,    72,    75,    73,   168,    75,    75,    75,
889 >      75,    75,    75,    75,    75,    75,    75,    75,    75,    75,
890 >      75,    75,    75,    75,    75,    75,    73,    99,    10,    75,
891 >      75,    75,    73,   147,     6,    75,    75,    75,    75,    75,
892 >      75,    75,    75,    75,    73,    87,     1,    27,    49,   128,
893 >     129,   130,   131,     1,    20,    28,    30,    43,    59,    60,
894 >      61,    62,    68,   134,   135,   136,   137,   138,   139,   140,
895 >     141,   142,   143,   144,    70,    74,    70,    70,    70,    70,
896 >      70,    70,    70,    70,    70,    70,    69,    69,    82,    70,
897 >      82,    70,    69,    69,    70,    70,    74,    72,    70,    70,
898 >      70,    74,    72,    82,    69,    82,    69,    82,    82,    82,
899 >      70,    70,    74,    75,    75,    73,   129,    75,    75,    75,
900 >      75,    75,    75,    75,    75,    75,    73,   135,    74,    74,
901 >      74,    74,    74,    74,    74,    74,    74,    74,    74,    74,
902 >      50,    51,    52,    53,    54,    55,    56,    81,    82,    74,
903 >      74,    74,    74,    74,    74,    74,    74,    21,    26,    30,
904 >     121,   122,   123,   124,   125,    74,    74,    74,     1,     3,
905 >       5,    25,    30,    47,    65,   153,   154,   155,   156,   160,
906 >     161,   162,   163,    74,    74,    74,    74,    74,    74,    74,
907 >      74,    74,    70,    70,    74,    69,    69,    84,    70,    71,
908 >      70,    69,    70,    82,    70,    74,    81,    81,    81,    81,
909 >      81,    81,    81,    75,    75,    75,    73,   122,   157,    75,
910 >      75,    75,    72,    75,    73,   154,    74,    74,    74,     7,
911 >       8,     9,    83,    84,    74,    74,    76,    74,    74,    74,
912 >      74,    74,    70,    70,    70,    74,    75,    69,    70,    70,
913 >      69,   164,   165,    70,    74,    83,    83,    83,    69,    74,
914 >      74,    74,    22,    23,   158,   159,    74,    74,    74,    75,
915 >      73,   165,    74,    74,    74,    77,    70,    74,   159,    74
916   };
917  
918    /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
919   static const yytype_uint8 yyr1[] =
920   {
921 <       0,    67,    68,    68,    69,    69,    69,    69,    69,    69,
922 <      70,    70,    71,    71,    71,    71,    71,    71,    71,    71,
923 <      72,    72,    73,    73,    73,    73,    74,    75,    75,    76,
924 <      76,    76,    76,    76,    76,    77,    78,    79,    80,    81,
925 <      82,    83,    83,    84,    84,    84,    84,    84,    84,    84,
926 <      84,    84,    84,    84,    84,    84,    84,    84,    84,    84,
927 <      84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
928 <      94,    95,    96,    97,    98,    99,   100,   102,   101,   103,
929 <     103,   104,   104,   104,   105,   106,   107,   109,   108,   110,
930 <     110,   111,   111,   111,   112,   113,   115,   114,   116,   116,
931 <     117,   117,   117,   117,   117,   117,   117,   117,   117,   117,
932 <     118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
933 <     128,   128,   129,   129,   129,   129,   129,   130,   131,   132,
934 <     134,   133,   135,   135,   136,   136,   136,   136,   136,   136,
935 <     137,   138,   139,   140,   141,   142,   142,   143,   144,   145,
936 <     145,   146,   146,   147
921 >       0,    78,    79,    79,    80,    80,    80,    80,    80,    80,
922 >      81,    81,    82,    82,    82,    82,    82,    82,    82,    82,
923 >      83,    83,    84,    84,    84,    84,    85,    86,    86,    87,
924 >      87,    87,    87,    87,    87,    87,    87,    87,    87,    88,
925 >      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
926 >      98,    99,    99,    99,    99,    99,    99,    99,    99,    99,
927 >      99,    99,    99,    99,    99,    99,    99,    99,    99,    99,
928 >      99,    99,   100,   101,   102,   103,   104,   105,   106,   107,
929 >     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
930 >     118,   120,   119,   121,   121,   122,   122,   122,   123,   124,
931 >     125,   127,   126,   128,   128,   129,   129,   129,   130,   131,
932 >     133,   132,   134,   134,   135,   135,   135,   135,   135,   135,
933 >     135,   135,   135,   135,   136,   137,   138,   139,   140,   141,
934 >     142,   143,   144,   145,   146,   146,   147,   147,   147,   147,
935 >     147,   148,   149,   150,   152,   151,   153,   153,   154,   154,
936 >     154,   154,   154,   154,   154,   155,   157,   156,   158,   158,
937 >     159,   159,   160,   161,   162,   163,   164,   164,   165,   166,
938 >     167,   167,   168,   168,   169
939   };
940  
941    /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
# Line 897 | Line 944 | static const yytype_uint8 yyr2[] =
944         0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
945         0,     1,     2,     3,     3,     3,     3,     3,     3,     3,
946         0,     1,     2,     3,     3,     3,     5,     2,     1,     1,
947 <       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
948 <       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
947 >       1,     1,     1,     1,     1,     1,     1,     1,     1,     4,
948 >       4,     4,     4,     4,     4,     4,     4,     4,     5,     2,
949         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
903       1,     4,     4,     4,     4,     4,     4,     4,     4,     4,
904       4,     4,     4,     4,     4,     4,     4,     0,     6,     2,
905       1,     1,     1,     1,     4,     4,     4,     0,     6,     2,
906       1,     1,     1,     1,     4,     4,     0,     6,     2,     1,
950         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
951 <       4,     4,     4,     4,     4,     4,     4,     4,     6,     5,
952 <       2,     1,     1,     1,     1,     1,     1,     4,     4,     4,
951 >       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
952 >       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
953 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
954 >       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
955         0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
956 <       4,     4,     4,     4,     5,     2,     1,     4,     5,     2,
957 <       1,     1,     1,     4
956 >       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
957 >       4,     4,     6,     5,     2,     1,     1,     1,     1,     1,
958 >       1,     4,     4,     4,     0,     6,     2,     1,     1,     1,
959 >       1,     1,     1,     1,     1,     4,     0,     5,     3,     1,
960 >       1,     1,     4,     4,     4,     5,     2,     1,     4,     5,
961 >       2,     1,     1,     1,     4
962   };
963  
964  
# Line 925 | Line 974 | static const yytype_uint8 yyr2[] =
974  
975   #define YYRECOVERING()  (!!yyerrstatus)
976  
977 < #define YYBACKUP(Token, Value)                                  \
978 < do                                                              \
979 <  if (yychar == YYEMPTY)                                        \
980 <    {                                                           \
981 <      yychar = (Token);                                         \
982 <      yylval = (Value);                                         \
983 <      YYPOPSTACK (yylen);                                       \
984 <      yystate = *yyssp;                                         \
985 <      goto yybackup;                                            \
986 <    }                                                           \
987 <  else                                                          \
988 <    {                                                           \
989 <      yyerror (YY_("syntax error: cannot back up")); \
990 <      YYERROR;                                                  \
991 <    }                                                           \
992 < while (0)
977 > #define YYBACKUP(Token, Value)                                    \
978 >  do                                                              \
979 >    if (yychar == YYEMPTY)                                        \
980 >      {                                                           \
981 >        yychar = (Token);                                         \
982 >        yylval = (Value);                                         \
983 >        YYPOPSTACK (yylen);                                       \
984 >        yystate = *yyssp;                                         \
985 >        goto yybackup;                                            \
986 >      }                                                           \
987 >    else                                                          \
988 >      {                                                           \
989 >        yyerror (YY_("syntax error: cannot back up")); \
990 >        YYERROR;                                                  \
991 >      }                                                           \
992 >  while (0)
993  
994   /* Error token number */
995   #define YYTERROR        1
# Line 980 | Line 1029 | do {
1029   } while (0)
1030  
1031  
1032 < /*----------------------------------------.
1033 < | Print this symbol's value on YYOUTPUT.  |
1034 < `----------------------------------------*/
1032 > /*-----------------------------------.
1033 > | Print this symbol's value on YYO.  |
1034 > `-----------------------------------*/
1035  
1036   static void
1037 < yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1037 > yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
1038   {
1039 <  FILE *yyo = yyoutput;
1040 <  YYUSE (yyo);
1039 >  FILE *yyoutput = yyo;
1040 >  YYUSE (yyoutput);
1041    if (!yyvaluep)
1042      return;
1043   # ifdef YYPRINT
1044    if (yytype < YYNTOKENS)
1045 <    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
1045 >    YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
1046   # endif
1047    YYUSE (yytype);
1048   }
1049  
1050  
1051 < /*--------------------------------.
1052 < | Print this symbol on YYOUTPUT.  |
1053 < `--------------------------------*/
1051 > /*---------------------------.
1052 > | Print this symbol on YYO.  |
1053 > `---------------------------*/
1054  
1055   static void
1056 < yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
1056 > yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep)
1057   {
1058 <  YYFPRINTF (yyoutput, "%s %s (",
1058 >  YYFPRINTF (yyo, "%s %s (",
1059               yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
1060  
1061 <  yy_symbol_value_print (yyoutput, yytype, yyvaluep);
1062 <  YYFPRINTF (yyoutput, ")");
1061 >  yy_symbol_value_print (yyo, yytype, yyvaluep);
1062 >  YYFPRINTF (yyo, ")");
1063   }
1064  
1065   /*------------------------------------------------------------------.
# Line 1044 | Line 1093 | do {
1093   static void
1094   yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1095   {
1096 <  unsigned long int yylno = yyrline[yyrule];
1096 >  unsigned long yylno = yyrline[yyrule];
1097    int yynrhs = yyr2[yyrule];
1098    int yyi;
1099    YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
# Line 1055 | Line 1104 | yy_reduce_print (yytype_int16 *yyssp, YY
1104        YYFPRINTF (stderr, "   $%d = ", yyi + 1);
1105        yy_symbol_print (stderr,
1106                         yystos[yyssp[yyi + 1 - yynrhs]],
1107 <                       &(yyvsp[(yyi + 1) - (yynrhs)])
1107 >                       &yyvsp[(yyi + 1) - (yynrhs)]
1108                                                );
1109        YYFPRINTF (stderr, "\n");
1110      }
# Line 1159 | Line 1208 | yytnamerr (char *yyres, const char *yyst
1208            case '\\':
1209              if (*++yyp != '\\')
1210                goto do_not_strip_quotes;
1211 <            /* Fall through.  */
1211 >            else
1212 >              goto append;
1213 >
1214 >          append:
1215            default:
1216              if (yyres)
1217                yyres[yyn] = *yyp;
# Line 1177 | Line 1229 | yytnamerr (char *yyres, const char *yyst
1229    if (! yyres)
1230      return yystrlen (yystr);
1231  
1232 <  return yystpcpy (yyres, yystr) - yyres;
1232 >  return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
1233   }
1234   # endif
1235  
# Line 1255 | Line 1307 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
1307                  yyarg[yycount++] = yytname[yyx];
1308                  {
1309                    YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1310 <                  if (! (yysize <= yysize1
1311 <                         && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1310 >                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1311 >                    yysize = yysize1;
1312 >                  else
1313                      return 2;
1261                  yysize = yysize1;
1314                  }
1315                }
1316          }
# Line 1270 | Line 1322 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
1322        case N:                               \
1323          yyformat = S;                       \
1324        break
1325 +    default: /* Avoid compiler warnings. */
1326        YYCASE_(0, YY_("syntax error"));
1327        YYCASE_(1, YY_("syntax error, unexpected %s"));
1328        YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
# Line 1281 | Line 1334 | yysyntax_error (YYSIZE_T *yymsg_alloc, c
1334  
1335    {
1336      YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1337 <    if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1337 >    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
1338 >      yysize = yysize1;
1339 >    else
1340        return 2;
1286    yysize = yysize1;
1341    }
1342  
1343    if (*yymsg_alloc < yysize)
# Line 1409 | Line 1463 | yyparse (void)
1463    yychar = YYEMPTY; /* Cause a token to be read.  */
1464    goto yysetstate;
1465  
1466 +
1467   /*------------------------------------------------------------.
1468 < | yynewstate -- Push a new state, which is found in yystate.  |
1468 > | yynewstate -- push a new state, which is found in yystate.  |
1469   `------------------------------------------------------------*/
1470 < yynewstate:
1470 > yynewstate:
1471    /* In all cases, when you get here, the value and location stacks
1472       have just been pushed.  So pushing a state here evens the stacks.  */
1473    yyssp++;
1474  
1475 < yysetstate:
1476 <  *yyssp = yystate;
1475 >
1476 > /*--------------------------------------------------------------------.
1477 > | yynewstate -- set current state (the top of the stack) to yystate.  |
1478 > `--------------------------------------------------------------------*/
1479 > yysetstate:
1480 >  *yyssp = (yytype_int16) yystate;
1481  
1482    if (yyss + yystacksize - 1 <= yyssp)
1483 + #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1484 +    goto yyexhaustedlab;
1485 + #else
1486      {
1487        /* Get the current used size of the three stacks, in elements.  */
1488 <      YYSIZE_T yysize = yyssp - yyss + 1;
1488 >      YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
1489  
1490 < #ifdef yyoverflow
1490 > # if defined yyoverflow
1491        {
1492          /* Give user a chance to reallocate the stack.  Use copies of
1493             these so that the &'s don't force the real ones into
# Line 1441 | Line 1503 | yyparse (void)
1503                      &yyss1, yysize * sizeof (*yyssp),
1504                      &yyvs1, yysize * sizeof (*yyvsp),
1505                      &yystacksize);
1444
1506          yyss = yyss1;
1507          yyvs = yyvs1;
1508        }
1509 < #else /* no yyoverflow */
1449 < # ifndef YYSTACK_RELOCATE
1450 <      goto yyexhaustedlab;
1451 < # else
1509 > # else /* defined YYSTACK_RELOCATE */
1510        /* Extend the stack our own way.  */
1511        if (YYMAXDEPTH <= yystacksize)
1512          goto yyexhaustedlab;
# Line 1464 | Line 1522 | yyparse (void)
1522            goto yyexhaustedlab;
1523          YYSTACK_RELOCATE (yyss_alloc, yyss);
1524          YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1525 < #  undef YYSTACK_RELOCATE
1525 > # undef YYSTACK_RELOCATE
1526          if (yyss1 != yyssa)
1527            YYSTACK_FREE (yyss1);
1528        }
1529   # endif
1472 #endif /* no yyoverflow */
1530  
1531        yyssp = yyss + yysize - 1;
1532        yyvsp = yyvs + yysize - 1;
1533  
1534        YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1535 <                  (unsigned long int) yystacksize));
1535 >                  (unsigned long) yystacksize));
1536  
1537        if (yyss + yystacksize - 1 <= yyssp)
1538          YYABORT;
1539      }
1540 + #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
1541  
1542    YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1543  
# Line 1488 | Line 1546 | yyparse (void)
1546  
1547    goto yybackup;
1548  
1549 +
1550   /*-----------.
1551   | yybackup.  |
1552   `-----------*/
1553   yybackup:
1495
1554    /* Do appropriate processing given the current state.  Read a
1555       lookahead token if we need one and don't already have one.  */
1556  
# Line 1565 | Line 1623 | yydefault:
1623  
1624  
1625   /*-----------------------------.
1626 < | yyreduce -- Do a reduction.  |
1626 > | yyreduce -- do a reduction.  |
1627   `-----------------------------*/
1628   yyreduce:
1629    /* yyn is the number of a rule to reduce with.  */
# Line 1586 | Line 1644 | yyreduce:
1644    switch (yyn)
1645      {
1646          case 10:
1647 < #line 111 "config-parser.y" /* yacc.c:1646  */
1647 > #line 119 "config-parser.y" /* yacc.c:1652  */
1648      { (yyval.number) = 0; }
1649 < #line 1592 "config-parser.c" /* yacc.c:1646  */
1649 > #line 1650 "config-parser.c" /* yacc.c:1652  */
1650      break;
1651  
1652    case 12:
1653 < #line 112 "config-parser.y" /* yacc.c:1646  */
1653 > #line 120 "config-parser.y" /* yacc.c:1652  */
1654      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
1655 < #line 1598 "config-parser.c" /* yacc.c:1646  */
1655 > #line 1656 "config-parser.c" /* yacc.c:1652  */
1656      break;
1657  
1658    case 13:
1659 < #line 113 "config-parser.y" /* yacc.c:1646  */
1659 > #line 121 "config-parser.y" /* yacc.c:1652  */
1660      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
1661 < #line 1604 "config-parser.c" /* yacc.c:1646  */
1661 > #line 1662 "config-parser.c" /* yacc.c:1652  */
1662      break;
1663  
1664    case 14:
1665 < #line 114 "config-parser.y" /* yacc.c:1646  */
1665 > #line 122 "config-parser.y" /* yacc.c:1652  */
1666      { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
1667 < #line 1610 "config-parser.c" /* yacc.c:1646  */
1667 > #line 1668 "config-parser.c" /* yacc.c:1652  */
1668      break;
1669  
1670    case 15:
1671 < #line 115 "config-parser.y" /* yacc.c:1646  */
1671 > #line 123 "config-parser.y" /* yacc.c:1652  */
1672      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
1673 < #line 1616 "config-parser.c" /* yacc.c:1646  */
1673 > #line 1674 "config-parser.c" /* yacc.c:1652  */
1674      break;
1675  
1676    case 16:
1677 < #line 116 "config-parser.y" /* yacc.c:1646  */
1677 > #line 124 "config-parser.y" /* yacc.c:1652  */
1678      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
1679 < #line 1622 "config-parser.c" /* yacc.c:1646  */
1679 > #line 1680 "config-parser.c" /* yacc.c:1652  */
1680      break;
1681  
1682    case 17:
1683 < #line 117 "config-parser.y" /* yacc.c:1646  */
1683 > #line 125 "config-parser.y" /* yacc.c:1652  */
1684      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
1685 < #line 1628 "config-parser.c" /* yacc.c:1646  */
1685 > #line 1686 "config-parser.c" /* yacc.c:1652  */
1686      break;
1687  
1688    case 18:
1689 < #line 118 "config-parser.y" /* yacc.c:1646  */
1689 > #line 126 "config-parser.y" /* yacc.c:1652  */
1690      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
1691 < #line 1634 "config-parser.c" /* yacc.c:1646  */
1691 > #line 1692 "config-parser.c" /* yacc.c:1652  */
1692      break;
1693  
1694    case 19:
1695 < #line 119 "config-parser.y" /* yacc.c:1646  */
1695 > #line 127 "config-parser.y" /* yacc.c:1652  */
1696      { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
1697 < #line 1640 "config-parser.c" /* yacc.c:1646  */
1697 > #line 1698 "config-parser.c" /* yacc.c:1652  */
1698      break;
1699  
1700    case 20:
1701 < #line 122 "config-parser.y" /* yacc.c:1646  */
1701 > #line 130 "config-parser.y" /* yacc.c:1652  */
1702      { (yyval.number) = 0; }
1703 < #line 1646 "config-parser.c" /* yacc.c:1646  */
1703 > #line 1704 "config-parser.c" /* yacc.c:1652  */
1704      break;
1705  
1706    case 22:
1707 < #line 123 "config-parser.y" /* yacc.c:1646  */
1707 > #line 131 "config-parser.y" /* yacc.c:1652  */
1708      { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
1709 < #line 1652 "config-parser.c" /* yacc.c:1646  */
1709 > #line 1710 "config-parser.c" /* yacc.c:1652  */
1710      break;
1711  
1712    case 23:
1713 < #line 124 "config-parser.y" /* yacc.c:1646  */
1713 > #line 132 "config-parser.y" /* yacc.c:1652  */
1714      { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
1715 < #line 1658 "config-parser.c" /* yacc.c:1646  */
1715 > #line 1716 "config-parser.c" /* yacc.c:1652  */
1716      break;
1717  
1718    case 24:
1719 < #line 125 "config-parser.y" /* yacc.c:1646  */
1719 > #line 133 "config-parser.y" /* yacc.c:1652  */
1720      { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
1721 < #line 1664 "config-parser.c" /* yacc.c:1646  */
1721 > #line 1722 "config-parser.c" /* yacc.c:1652  */
1722      break;
1723  
1724    case 25:
1725 < #line 126 "config-parser.y" /* yacc.c:1646  */
1725 > #line 134 "config-parser.y" /* yacc.c:1652  */
1726      { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
1727 < #line 1670 "config-parser.c" /* yacc.c:1646  */
1727 > #line 1728 "config-parser.c" /* yacc.c:1652  */
1728      break;
1729  
1730 <  case 35:
1731 < #line 144 "config-parser.y" /* yacc.c:1646  */
1730 >  case 39:
1731 > #line 156 "config-parser.y" /* yacc.c:1652  */
1732      {
1733 <   OptionsItem->negcache = (yyvsp[-1].number);
1733 >  OptionsItem.negcache = (yyvsp[-1].number);
1734   }
1735 < #line 1678 "config-parser.c" /* yacc.c:1646  */
1735 > #line 1736 "config-parser.c" /* yacc.c:1652  */
1736      break;
1737  
1738 <  case 36:
1739 < #line 149 "config-parser.y" /* yacc.c:1646  */
1738 >  case 40:
1739 > #line 161 "config-parser.y" /* yacc.c:1652  */
1740      {
1741 <   OptionsItem->negcache_rebuild = (yyvsp[-1].number);
1741 >  OptionsItem.negcache_rebuild = (yyvsp[-1].number);
1742   }
1743 < #line 1686 "config-parser.c" /* yacc.c:1646  */
1743 > #line 1744 "config-parser.c" /* yacc.c:1652  */
1744      break;
1745  
1746 <  case 37:
1747 < #line 154 "config-parser.y" /* yacc.c:1646  */
1746 >  case 41:
1747 > #line 166 "config-parser.y" /* yacc.c:1652  */
1748      {
1749 <   xfree(OptionsItem->pidfile);
1750 <   OptionsItem->pidfile = xstrdup((yyvsp[-1].string));
1749 >  xfree(OptionsItem.pidfile);
1750 >  OptionsItem.pidfile = xstrdup((yyvsp[-1].string));
1751   }
1752 < #line 1695 "config-parser.c" /* yacc.c:1646  */
1752 > #line 1753 "config-parser.c" /* yacc.c:1652  */
1753      break;
1754  
1755 <  case 38:
1756 < #line 160 "config-parser.y" /* yacc.c:1646  */
1755 >  case 42:
1756 > #line 172 "config-parser.y" /* yacc.c:1652  */
1757      {
1758 <   OptionsItem->dns_fdlimit = (yyvsp[-1].number);
1758 >  OptionsItem.dns_fdlimit = (yyvsp[-1].number);
1759   }
1760 < #line 1703 "config-parser.c" /* yacc.c:1646  */
1760 > #line 1761 "config-parser.c" /* yacc.c:1652  */
1761      break;
1762  
1763 <  case 39:
1764 < #line 165 "config-parser.y" /* yacc.c:1646  */
1763 >  case 43:
1764 > #line 177 "config-parser.y" /* yacc.c:1652  */
1765      {
1766 <   xfree(OptionsItem->scanlog);
1709 <   OptionsItem->scanlog = xstrdup((yyvsp[-1].string));
1766 >  OptionsItem.dns_timeout = (yyvsp[-1].number);
1767   }
1768 < #line 1712 "config-parser.c" /* yacc.c:1646  */
1768 > #line 1769 "config-parser.c" /* yacc.c:1652  */
1769      break;
1770  
1771 <  case 61:
1772 < #line 197 "config-parser.y" /* yacc.c:1646  */
1771 >  case 44:
1772 > #line 182 "config-parser.y" /* yacc.c:1652  */
1773      {
1774 <   xfree(IRCItem->away);
1775 <   IRCItem->away = xstrdup((yyvsp[-1].string));
1774 >  xfree(OptionsItem.scanlog);
1775 >  OptionsItem.scanlog = xstrdup((yyvsp[-1].string));
1776   }
1777 < #line 1721 "config-parser.c" /* yacc.c:1646  */
1777 > #line 1778 "config-parser.c" /* yacc.c:1652  */
1778      break;
1779  
1780 <  case 62:
1781 < #line 203 "config-parser.y" /* yacc.c:1646  */
1780 >  case 45:
1781 > #line 188 "config-parser.y" /* yacc.c:1652  */
1782      {
1783 <   xfree(IRCItem->kline);
1727 <   IRCItem->kline = xstrdup((yyvsp[-1].string));
1783 >  OptionsItem.command_queue_size = (yyvsp[-1].number);
1784   }
1785 < #line 1730 "config-parser.c" /* yacc.c:1646  */
1785 > #line 1786 "config-parser.c" /* yacc.c:1652  */
1786      break;
1787  
1788 <  case 63:
1789 < #line 209 "config-parser.y" /* yacc.c:1646  */
1788 >  case 46:
1789 > #line 193 "config-parser.y" /* yacc.c:1652  */
1790      {
1791 <   xfree(IRCItem->mode);
1736 <   IRCItem->mode = xstrdup((yyvsp[-1].string));
1791 >  OptionsItem.command_interval = (yyvsp[-1].number);
1792   }
1793 < #line 1739 "config-parser.c" /* yacc.c:1646  */
1793 > #line 1794 "config-parser.c" /* yacc.c:1652  */
1794      break;
1795  
1796 <  case 64:
1797 < #line 215 "config-parser.y" /* yacc.c:1646  */
1796 >  case 47:
1797 > #line 198 "config-parser.y" /* yacc.c:1652  */
1798      {
1799 <   xfree(IRCItem->nick);
1745 <   IRCItem->nick = xstrdup((yyvsp[-1].string));
1799 >  OptionsItem.command_timeout = (yyvsp[-1].number);
1800   }
1801 < #line 1748 "config-parser.c" /* yacc.c:1646  */
1801 > #line 1802 "config-parser.c" /* yacc.c:1652  */
1802      break;
1803  
1804 <  case 65:
1805 < #line 221 "config-parser.y" /* yacc.c:1646  */
1804 >  case 72:
1805 > #line 232 "config-parser.y" /* yacc.c:1652  */
1806      {
1807 <   xfree(IRCItem->nickserv);
1808 <   IRCItem->nickserv = xstrdup((yyvsp[-1].string));
1807 >  xfree(IRCItem.away);
1808 >  IRCItem.away = xstrdup((yyvsp[-1].string));
1809   }
1810 < #line 1757 "config-parser.c" /* yacc.c:1646  */
1810 > #line 1811 "config-parser.c" /* yacc.c:1652  */
1811      break;
1812  
1813 <  case 66:
1814 < #line 227 "config-parser.y" /* yacc.c:1646  */
1813 >  case 73:
1814 > #line 238 "config-parser.y" /* yacc.c:1652  */
1815      {
1816 <   xfree(IRCItem->oper);
1817 <   IRCItem->oper = xstrdup((yyvsp[-1].string));
1816 >  xfree(IRCItem.kline);
1817 >  IRCItem.kline = xstrdup((yyvsp[-1].string));
1818   }
1819 < #line 1766 "config-parser.c" /* yacc.c:1646  */
1819 > #line 1820 "config-parser.c" /* yacc.c:1652  */
1820      break;
1821  
1822 <  case 67:
1823 < #line 233 "config-parser.y" /* yacc.c:1646  */
1822 >  case 74:
1823 > #line 244 "config-parser.y" /* yacc.c:1652  */
1824      {
1825 <   xfree(IRCItem->password);
1826 <   IRCItem->password = xstrdup((yyvsp[-1].string));
1825 >  xfree(IRCItem.mode);
1826 >  IRCItem.mode = xstrdup((yyvsp[-1].string));
1827   }
1828 < #line 1775 "config-parser.c" /* yacc.c:1646  */
1828 > #line 1829 "config-parser.c" /* yacc.c:1652  */
1829      break;
1830  
1831 <  case 68:
1832 < #line 239 "config-parser.y" /* yacc.c:1646  */
1831 >  case 75:
1832 > #line 250 "config-parser.y" /* yacc.c:1652  */
1833      {
1834 <   node_t *node;
1835 <   node = node_create(xstrdup((yyvsp[-1].string)));
1782 <
1783 <   list_add(IRCItem->performs, node);
1834 >  xfree(IRCItem.nick);
1835 >  IRCItem.nick = xstrdup((yyvsp[-1].string));
1836   }
1837 < #line 1786 "config-parser.c" /* yacc.c:1646  */
1837 > #line 1838 "config-parser.c" /* yacc.c:1652  */
1838      break;
1839  
1840 <  case 69:
1841 < #line 247 "config-parser.y" /* yacc.c:1646  */
1840 >  case 76:
1841 > #line 256 "config-parser.y" /* yacc.c:1652  */
1842      {
1843 <   node_t *node;
1844 <   node = node_create(xstrdup((yyvsp[-1].string)));
1793 <
1794 <   list_add(IRCItem->notices, node);
1843 >  xfree(IRCItem.nickserv);
1844 >  IRCItem.nickserv = xstrdup((yyvsp[-1].string));
1845   }
1846 < #line 1797 "config-parser.c" /* yacc.c:1646  */
1846 > #line 1847 "config-parser.c" /* yacc.c:1652  */
1847      break;
1848  
1849 <  case 70:
1850 < #line 255 "config-parser.y" /* yacc.c:1646  */
1849 >  case 77:
1850 > #line 262 "config-parser.y" /* yacc.c:1652  */
1851      {
1852 <   IRCItem->port = (yyvsp[-1].number);
1852 >  xfree(IRCItem.oper);
1853 >  IRCItem.oper = xstrdup((yyvsp[-1].string));
1854   }
1855 < #line 1805 "config-parser.c" /* yacc.c:1646  */
1855 > #line 1856 "config-parser.c" /* yacc.c:1652  */
1856      break;
1857  
1858 <  case 71:
1859 < #line 260 "config-parser.y" /* yacc.c:1646  */
1858 >  case 78:
1859 > #line 268 "config-parser.y" /* yacc.c:1652  */
1860      {
1861 <   IRCItem->readtimeout = (yyvsp[-1].number);
1861 >  xfree(IRCItem.password);
1862 >  IRCItem.password = xstrdup((yyvsp[-1].string));
1863   }
1864 < #line 1813 "config-parser.c" /* yacc.c:1646  */
1864 > #line 1865 "config-parser.c" /* yacc.c:1652  */
1865      break;
1866  
1867 <  case 72:
1868 < #line 265 "config-parser.y" /* yacc.c:1646  */
1867 >  case 79:
1868 > #line 274 "config-parser.y" /* yacc.c:1652  */
1869      {
1870 <   xfree(IRCItem->realname);
1819 <   IRCItem->realname = xstrdup((yyvsp[-1].string));
1870 >  list_add(xstrdup((yyvsp[-1].string)), node_create(), &IRCItem.performs);
1871   }
1872 < #line 1822 "config-parser.c" /* yacc.c:1646  */
1872 > #line 1873 "config-parser.c" /* yacc.c:1652  */
1873      break;
1874  
1875 <  case 73:
1876 < #line 271 "config-parser.y" /* yacc.c:1646  */
1875 >  case 80:
1876 > #line 279 "config-parser.y" /* yacc.c:1652  */
1877      {
1878 <   xfree(IRCItem->server);
1828 <   IRCItem->server = xstrdup((yyvsp[-1].string));
1878 >  list_add(xstrdup((yyvsp[-1].string)), node_create(), &IRCItem.notices);
1879   }
1880 < #line 1831 "config-parser.c" /* yacc.c:1646  */
1880 > #line 1881 "config-parser.c" /* yacc.c:1652  */
1881      break;
1882  
1883 <  case 74:
1884 < #line 277 "config-parser.y" /* yacc.c:1646  */
1883 >  case 81:
1884 > #line 284 "config-parser.y" /* yacc.c:1652  */
1885      {
1886 <   xfree(IRCItem->username);
1837 <   IRCItem->username = xstrdup((yyvsp[-1].string));
1886 >  IRCItem.port = (yyvsp[-1].number);
1887   }
1888 < #line 1840 "config-parser.c" /* yacc.c:1646  */
1888 > #line 1889 "config-parser.c" /* yacc.c:1652  */
1889      break;
1890  
1891 <  case 75:
1892 < #line 283 "config-parser.y" /* yacc.c:1646  */
1891 >  case 82:
1892 > #line 289 "config-parser.y" /* yacc.c:1652  */
1893      {
1894 <   xfree(IRCItem->vhost);
1846 <   IRCItem->vhost = xstrdup((yyvsp[-1].string));
1894 >  IRCItem.tls = (yyvsp[-1].number);
1895   }
1896 < #line 1849 "config-parser.c" /* yacc.c:1646  */
1896 > #line 1897 "config-parser.c" /* yacc.c:1652  */
1897      break;
1898  
1899 <  case 76:
1900 < #line 289 "config-parser.y" /* yacc.c:1646  */
1899 >  case 83:
1900 > #line 294 "config-parser.y" /* yacc.c:1652  */
1901      {
1902 <   xfree(IRCItem->connregex);
1855 <   IRCItem->connregex = xstrdup((yyvsp[-1].string));
1902 >  IRCItem.tls_hostname_verification = (yyvsp[-1].number);
1903   }
1904 < #line 1858 "config-parser.c" /* yacc.c:1646  */
1904 > #line 1905 "config-parser.c" /* yacc.c:1652  */
1905      break;
1906  
1907 <  case 77:
1908 < #line 298 "config-parser.y" /* yacc.c:1646  */
1907 >  case 84:
1908 > #line 299 "config-parser.y" /* yacc.c:1652  */
1909      {
1910 <   node_t *node;
1911 <   struct ChannelConf *item;
1910 >  IRCItem.readtimeout = (yyvsp[-1].number);
1911 > }
1912 > #line 1913 "config-parser.c" /* yacc.c:1652  */
1913 >    break;
1914  
1915 <   item = xcalloc(sizeof *item);
1915 >  case 85:
1916 > #line 304 "config-parser.y" /* yacc.c:1652  */
1917 >    {
1918 >  IRCItem.reconnectinterval = (yyvsp[-1].number);
1919 > }
1920 > #line 1921 "config-parser.c" /* yacc.c:1652  */
1921 >    break;
1922  
1923 <   item->name = xstrdup("");
1924 <   item->key = xstrdup("");
1925 <   item->invite = xstrdup("");
1923 >  case 86:
1924 > #line 309 "config-parser.y" /* yacc.c:1652  */
1925 >    {
1926 >  xfree(IRCItem.realname);
1927 >  IRCItem.realname = xstrdup((yyvsp[-1].string));
1928 > }
1929 > #line 1930 "config-parser.c" /* yacc.c:1652  */
1930 >    break;
1931  
1932 <   node = node_create(item);
1933 <   list_add(IRCItem->channels, node);
1932 >  case 87:
1933 > #line 315 "config-parser.y" /* yacc.c:1652  */
1934 >    {
1935 >  xfree(IRCItem.server);
1936 >  IRCItem.server = xstrdup((yyvsp[-1].string));
1937 > }
1938 > #line 1939 "config-parser.c" /* yacc.c:1652  */
1939 >    break;
1940  
1941 <   tmp = item;
1941 >  case 88:
1942 > #line 321 "config-parser.y" /* yacc.c:1652  */
1943 >    {
1944 >  xfree(IRCItem.username);
1945 >  IRCItem.username = xstrdup((yyvsp[-1].string));
1946   }
1947 < #line 1878 "config-parser.c" /* yacc.c:1646  */
1947 > #line 1948 "config-parser.c" /* yacc.c:1652  */
1948      break;
1949  
1950 <  case 84:
1951 < #line 323 "config-parser.y" /* yacc.c:1646  */
1950 >  case 89:
1951 > #line 327 "config-parser.y" /* yacc.c:1652  */
1952      {
1953 <   struct ChannelConf *item = tmp;
1953 >  xfree(IRCItem.vhost);
1954 >  IRCItem.vhost = xstrdup((yyvsp[-1].string));
1955 > }
1956 > #line 1957 "config-parser.c" /* yacc.c:1652  */
1957 >    break;
1958  
1959 <   xfree(item->name);
1960 <   item->name = xstrdup((yyvsp[-1].string));
1959 >  case 90:
1960 > #line 333 "config-parser.y" /* yacc.c:1652  */
1961 >    {
1962 >  xfree(IRCItem.connregex);
1963 >  IRCItem.connregex = xstrdup((yyvsp[-1].string));
1964   }
1965 < #line 1889 "config-parser.c" /* yacc.c:1646  */
1965 > #line 1966 "config-parser.c" /* yacc.c:1652  */
1966      break;
1967  
1968 <  case 85:
1969 < #line 331 "config-parser.y" /* yacc.c:1646  */
1968 >  case 91:
1969 > #line 341 "config-parser.y" /* yacc.c:1652  */
1970      {
1971 <   struct ChannelConf *item = tmp;
1971 >  struct ChannelConf *item;
1972  
1973 <   xfree(item->key);
1974 <   item->key = xstrdup((yyvsp[-1].string));
1973 >  item = xcalloc(sizeof(*item));
1974 >  item->name = xstrdup("");
1975 >  item->key = xstrdup("");
1976 >  item->invite = xstrdup("");
1977 >
1978 >  list_add(item, &item->node, &IRCItem.channels);
1979 >  tmp = item;
1980   }
1981 < #line 1900 "config-parser.c" /* yacc.c:1646  */
1981 > #line 1982 "config-parser.c" /* yacc.c:1652  */
1982      break;
1983  
1984 <  case 86:
1985 < #line 339 "config-parser.y" /* yacc.c:1646  */
1984 >  case 98:
1985 > #line 362 "config-parser.y" /* yacc.c:1652  */
1986      {
1987 <   struct ChannelConf *item = tmp;
1987 >  struct ChannelConf *item = tmp;
1988  
1989 <   xfree(item->invite);
1990 <   item->invite = xstrdup((yyvsp[-1].string));
1989 >  xfree(item->name);
1990 >  item->name = xstrdup((yyvsp[-1].string));
1991   }
1992 < #line 1911 "config-parser.c" /* yacc.c:1646  */
1992 > #line 1993 "config-parser.c" /* yacc.c:1652  */
1993      break;
1994  
1995 <  case 87:
1996 < #line 349 "config-parser.y" /* yacc.c:1646  */
1995 >  case 99:
1996 > #line 370 "config-parser.y" /* yacc.c:1652  */
1997      {
1998 <   node_t *node;
1917 <   struct UserConf *item;
1998 >  struct ChannelConf *item = tmp;
1999  
2000 <   item = xcalloc(sizeof *item);
2001 <
2002 <   item->masks = list_create();
2003 <   item->scanners = list_create();
2000 >  xfree(item->key);
2001 >  item->key = xstrdup((yyvsp[-1].string));
2002 > }
2003 > #line 2004 "config-parser.c" /* yacc.c:1652  */
2004 >    break;
2005  
2006 <   node = node_create(item);
2007 <   list_add(UserItemList, node);
2006 >  case 100:
2007 > #line 378 "config-parser.y" /* yacc.c:1652  */
2008 >    {
2009 >  struct ChannelConf *item = tmp;
2010  
2011 <   tmp = item;
2011 >  xfree(item->invite);
2012 >  item->invite = xstrdup((yyvsp[-1].string));
2013   }
2014 < #line 1930 "config-parser.c" /* yacc.c:1646  */
2014 > #line 2015 "config-parser.c" /* yacc.c:1652  */
2015      break;
2016  
2017 <  case 94:
2018 < #line 373 "config-parser.y" /* yacc.c:1646  */
2017 >  case 101:
2018 > #line 388 "config-parser.y" /* yacc.c:1652  */
2019      {
2020 <   struct UserConf *item = tmp;
1936 <   node_t *node;
2020 >  struct UserConf *item;
2021  
2022 <   node = node_create(xstrdup((yyvsp[-1].string)));
2022 >  item = xcalloc(sizeof(*item));
2023  
2024 <   list_add(item->masks, node);
2024 >  list_add(item, &item->node, &UserItemList);
2025 >  tmp = item;
2026   }
2027 < #line 1943 "config-parser.c" /* yacc.c:1646  */
2027 > #line 2028 "config-parser.c" /* yacc.c:1652  */
2028      break;
2029  
2030 <  case 95:
2031 < #line 383 "config-parser.y" /* yacc.c:1646  */
2030 >  case 108:
2031 > #line 406 "config-parser.y" /* yacc.c:1652  */
2032      {
2033 <   struct UserConf *item = tmp;
1949 <   node_t *node;
2033 >  struct UserConf *item = tmp;
2034  
2035 <   node = node_create(xstrdup((yyvsp[-1].string)));
1952 <
1953 <   list_add(item->scanners, node);
2035 >  list_add(xstrdup((yyvsp[-1].string)), node_create(), &item->masks);
2036   }
2037 < #line 1956 "config-parser.c" /* yacc.c:1646  */
2037 > #line 2038 "config-parser.c" /* yacc.c:1652  */
2038      break;
2039  
2040 <  case 96:
2041 < #line 395 "config-parser.y" /* yacc.c:1646  */
2040 >  case 109:
2041 > #line 413 "config-parser.y" /* yacc.c:1652  */
2042      {
2043 <   node_t *node;
1962 <   struct ScannerConf *item, *olditem;
2043 >  struct UserConf *item = tmp;
2044  
2045 <   item = xcalloc(sizeof *item);
2045 >  list_add(xstrdup((yyvsp[-1].string)), node_create(), &item->scanners);
2046 > }
2047 > #line 2048 "config-parser.c" /* yacc.c:1652  */
2048 >    break;
2049  
2050 <   /* Setup ScannerConf defaults */
2051 <   item->name = xstrdup("undefined");
2050 >  case 110:
2051 > #line 422 "config-parser.y" /* yacc.c:1652  */
2052 >    {
2053 >  struct ScannerConf *item, *olditem;
2054  
2055 <        if(LIST_SIZE(ScannerItemList) > 0)
1970 <        {
1971 <           olditem = ScannerItemList->tail->data;
2055 >  item = xcalloc(sizeof(*item));
2056  
2057 <                item->vhost = xstrdup(olditem->vhost);
2058 <                item->fd = olditem->fd;
1975 <                item->target_ip = xstrdup(olditem->target_ip);
1976 <                item->target_port = olditem->target_port;
1977 <                item->timeout = olditem->timeout;
1978 <                item->max_read = olditem->max_read;
2057 >  /* Setup ScannerConf defaults */
2058 >  item->name = xstrdup("undefined");
2059  
2060 <                item->target_string = olditem->target_string;
2061 <                item->target_string_created = 0;
2062 <        }
1983 <        else
1984 <        {
1985 <           item->vhost = xstrdup("0.0.0.0");
1986 <      item->fd = 512;
1987 <      item->target_ip = xstrdup("127.0.0.1");
1988 <      item->target_port = 6667;
1989 <      item->timeout = 30;
1990 <      item->max_read = 4096;
1991 <                
1992 <                item->target_string = list_create();
1993 <                item->target_string_created = 1;
1994 <        }
1995 <        
1996 <   item->protocols = list_create();
2060 >  if (LIST_SIZE(&ScannerItemList))
2061 >  {
2062 >    olditem = ScannerItemList.tail->data;
2063  
2064 <   node = node_create(item);
2064 >    item->vhost = xstrdup(olditem->vhost);
2065 >    item->fd = olditem->fd;
2066 >    item->target_ip = xstrdup(olditem->target_ip);
2067 >    item->target_port = olditem->target_port;
2068 >    item->timeout = olditem->timeout;
2069 >    item->max_read = olditem->max_read;
2070 >    memcpy(&item->target_string, &olditem->target_string, sizeof(item->target_string));
2071 >  }
2072 >  else
2073 >  {
2074 >    item->vhost = xstrdup("0.0.0.0");
2075 >    item->fd = 512;
2076 >    item->target_ip = xstrdup("127.0.0.1");
2077 >    item->target_port = 6667;
2078 >    item->timeout = 30;
2079 >    item->max_read = 4096;
2080 >  }
2081  
2082 <   list_add(ScannerItemList, node);
2083 <   tmp = item;
2082 >  list_add(item, &item->node, &ScannerItemList);
2083 >  tmp = item;
2084   }
2085 < #line 2004 "config-parser.c" /* yacc.c:1646  */
2085 > #line 2086 "config-parser.c" /* yacc.c:1652  */
2086      break;
2087  
2088 <  case 110:
2089 < #line 455 "config-parser.y" /* yacc.c:1646  */
2088 >  case 124:
2089 > #line 472 "config-parser.y" /* yacc.c:1652  */
2090      {
2091 <   struct ScannerConf *item = tmp;
2092 <   xfree(item->name);
2093 <   item->name = xstrdup((yyvsp[-1].string));
2091 >  struct ScannerConf *item = tmp;
2092 >
2093 >  xfree(item->name);
2094 >  item->name = xstrdup((yyvsp[-1].string));
2095   }
2096 < #line 2014 "config-parser.c" /* yacc.c:1646  */
2096 > #line 2097 "config-parser.c" /* yacc.c:1652  */
2097      break;
2098  
2099 <  case 111:
2100 < #line 462 "config-parser.y" /* yacc.c:1646  */
2099 >  case 125:
2100 > #line 480 "config-parser.y" /* yacc.c:1652  */
2101      {
2102 <   struct ScannerConf *item = tmp;
2103 <   xfree(item->vhost);
2104 <   item->vhost = xstrdup((yyvsp[-1].string));
2102 >  struct ScannerConf *item = tmp;
2103 >
2104 >  xfree(item->vhost);
2105 >  item->vhost = xstrdup((yyvsp[-1].string));
2106   }
2107 < #line 2024 "config-parser.c" /* yacc.c:1646  */
2107 > #line 2108 "config-parser.c" /* yacc.c:1652  */
2108      break;
2109  
2110 <  case 112:
2111 < #line 469 "config-parser.y" /* yacc.c:1646  */
2110 >  case 126:
2111 > #line 488 "config-parser.y" /* yacc.c:1652  */
2112      {
2113 <   struct ScannerConf *item = tmp;
2114 <   xfree(item->target_ip);
2115 <   item->target_ip = xstrdup((yyvsp[-1].string));
2113 >  struct ScannerConf *item = tmp;
2114 >
2115 >  xfree(item->target_ip);
2116 >  item->target_ip = xstrdup((yyvsp[-1].string));
2117   }
2118 < #line 2034 "config-parser.c" /* yacc.c:1646  */
2118 > #line 2119 "config-parser.c" /* yacc.c:1652  */
2119      break;
2120  
2121 <  case 113:
2122 < #line 476 "config-parser.y" /* yacc.c:1646  */
2121 >  case 127:
2122 > #line 496 "config-parser.y" /* yacc.c:1652  */
2123      {
2124 <   struct ScannerConf *item = tmp;
2040 <
2041 <   node_t *node;
2042 <   node = node_create((yyvsp[-1].string));
2124 >  struct ScannerConf *item = tmp;
2125  
2126 <        if(item->target_string_created == 0)
2127 <        {
2128 <           item->target_string = list_create();
2129 <                item->target_string_created = 1;
2130 <        }
2126 >  if (item->target_string_created == 0)
2127 >  {
2128 >    memset(&item->target_string, 0, sizeof(item->target_string));
2129 >    item->target_string_created = 1;
2130 >  }
2131  
2132 <   list_add(item->target_string, node);
2132 >  list_add(xstrdup((yyvsp[-1].string)), node_create(), &item->target_string);
2133   }
2134 < #line 2053 "config-parser.c" /* yacc.c:1646  */
2134 > #line 2135 "config-parser.c" /* yacc.c:1652  */
2135      break;
2136  
2137 <  case 114:
2138 < #line 492 "config-parser.y" /* yacc.c:1646  */
2137 >  case 128:
2138 > #line 509 "config-parser.y" /* yacc.c:1652  */
2139      {
2140 <   struct ScannerConf *item = tmp;
2141 <   item->fd = (yyvsp[-1].number);
2140 >  struct ScannerConf *item = tmp;
2141 >
2142 >  item->fd = (yyvsp[-1].number);
2143   }
2144 < #line 2062 "config-parser.c" /* yacc.c:1646  */
2144 > #line 2145 "config-parser.c" /* yacc.c:1652  */
2145      break;
2146  
2147 <  case 115:
2148 < #line 498 "config-parser.y" /* yacc.c:1646  */
2147 >  case 129:
2148 > #line 516 "config-parser.y" /* yacc.c:1652  */
2149      {
2150 <   struct ScannerConf *item = tmp;
2151 <   item->target_port = (yyvsp[-1].number);
2150 >  struct ScannerConf *item = tmp;
2151 >
2152 >  item->target_port = (yyvsp[-1].number);
2153   }
2154 < #line 2071 "config-parser.c" /* yacc.c:1646  */
2154 > #line 2155 "config-parser.c" /* yacc.c:1652  */
2155      break;
2156  
2157 <  case 116:
2158 < #line 504 "config-parser.y" /* yacc.c:1646  */
2157 >  case 130:
2158 > #line 523 "config-parser.y" /* yacc.c:1652  */
2159      {
2160 <   struct ScannerConf *item = tmp;
2161 <   item->timeout = (yyvsp[-1].number);
2160 >  struct ScannerConf *item = tmp;
2161 >
2162 >  item->timeout = (yyvsp[-1].number);
2163   }
2164 < #line 2080 "config-parser.c" /* yacc.c:1646  */
2164 > #line 2165 "config-parser.c" /* yacc.c:1652  */
2165      break;
2166  
2167 <  case 117:
2168 < #line 510 "config-parser.y" /* yacc.c:1646  */
2167 >  case 131:
2168 > #line 530 "config-parser.y" /* yacc.c:1652  */
2169      {
2170 <   struct ScannerConf *item = tmp;
2171 <   item->max_read = (yyvsp[-1].number);
2170 >  struct ScannerConf *item = tmp;
2171 >
2172 >  item->max_read = (yyvsp[-1].number);
2173   }
2174 < #line 2089 "config-parser.c" /* yacc.c:1646  */
2174 > #line 2175 "config-parser.c" /* yacc.c:1652  */
2175      break;
2176  
2177 <  case 118:
2178 < #line 516 "config-parser.y" /* yacc.c:1646  */
2177 >  case 132:
2178 > #line 537 "config-parser.y" /* yacc.c:1652  */
2179      {
2180 <   struct ProtocolConf *item;
2181 <   struct ScannerConf  *item2;
2180 >  struct ProtocolConf *item;
2181 >  struct ScannerConf *item2;
2182  
2183 <   node_t *node;
2184 <
2185 <   item = xcalloc(sizeof *item);
2100 <   item->type = (yyvsp[-3].number);
2101 <   item->port = (yyvsp[-1].number);
2183 >  item = xcalloc(sizeof(*item));
2184 >  item->type = (yyvsp[-3].number);
2185 >  item->port = (yyvsp[-1].number);
2186  
2187 <   item2 = tmp;
2187 >  item2 = tmp;
2188  
2189 <   node = node_create(item);
2106 <   list_add(item2->protocols, node);
2189 >  list_add(item, node_create(), &item2->protocols);
2190   }
2191 < #line 2109 "config-parser.c" /* yacc.c:1646  */
2191 > #line 2192 "config-parser.c" /* yacc.c:1652  */
2192      break;
2193  
2194 <  case 127:
2195 < #line 546 "config-parser.y" /* yacc.c:1646  */
2194 >  case 141:
2195 > #line 564 "config-parser.y" /* yacc.c:1652  */
2196      {
2197 <   xfree(OpmItem->dnsbl_from);
2198 <   OpmItem->dnsbl_from = xstrdup((yyvsp[-1].string));
2197 >  xfree(OpmItem.dnsbl_from);
2198 >  OpmItem.dnsbl_from = xstrdup((yyvsp[-1].string));
2199   }
2200 < #line 2118 "config-parser.c" /* yacc.c:1646  */
2200 > #line 2201 "config-parser.c" /* yacc.c:1652  */
2201      break;
2202  
2203 <  case 128:
2204 < #line 552 "config-parser.y" /* yacc.c:1646  */
2203 >  case 142:
2204 > #line 570 "config-parser.y" /* yacc.c:1652  */
2205      {
2206 <   xfree(OpmItem->dnsbl_to);
2207 <   OpmItem->dnsbl_to = xstrdup((yyvsp[-1].string));
2206 >  xfree(OpmItem.dnsbl_to);
2207 >  OpmItem.dnsbl_to = xstrdup((yyvsp[-1].string));
2208   }
2209 < #line 2127 "config-parser.c" /* yacc.c:1646  */
2209 > #line 2210 "config-parser.c" /* yacc.c:1652  */
2210      break;
2211  
2212 <  case 129:
2213 < #line 558 "config-parser.y" /* yacc.c:1646  */
2212 >  case 143:
2213 > #line 576 "config-parser.y" /* yacc.c:1652  */
2214      {
2215 <   xfree(OpmItem->sendmail);
2216 <   OpmItem->sendmail = xstrdup((yyvsp[-1].string));
2215 >  xfree(OpmItem.sendmail);
2216 >  OpmItem.sendmail = xstrdup((yyvsp[-1].string));
2217   }
2218 < #line 2136 "config-parser.c" /* yacc.c:1646  */
2218 > #line 2219 "config-parser.c" /* yacc.c:1652  */
2219      break;
2220  
2221 <  case 130:
2222 < #line 566 "config-parser.y" /* yacc.c:1646  */
2221 >  case 144:
2222 > #line 584 "config-parser.y" /* yacc.c:1652  */
2223      {
2224 <   node_t *node;
2225 <   struct BlacklistConf *item;
2224 >  struct BlacklistConf *item;
2225 >
2226 >  item = xcalloc(sizeof(*item));
2227 >  item->name = xstrdup("");
2228 >  item->kline = xstrdup("");
2229 >  item->ipv4 = 1;
2230 >  item->ban_unknown = 0;
2231 >  item->type = A_BITMASK;
2232  
2233 <   item = xcalloc(sizeof *item);
2233 >  list_add(item, node_create(), &OpmItem.blacklists);
2234  
2235 <   item->name = xstrdup("");
2236 <   item->kline = xstrdup("");
2237 <   item->ban_unknown = 0;
2238 <   item->type = A_BITMASK;
2150 <   item->reply = list_create();
2235 >  tmp = item;
2236 > }
2237 > #line 2238 "config-parser.c" /* yacc.c:1652  */
2238 >    break;
2239  
2240 <   node = node_create(item);
2241 <   list_add(OpmItem->blacklists, node);
2240 >  case 155:
2241 > #line 612 "config-parser.y" /* yacc.c:1652  */
2242 >    {
2243 >  struct BlacklistConf *item = tmp;
2244  
2245 <   tmp = item;
2245 >  xfree(item->name);
2246 >  item->name = xstrdup((yyvsp[-1].string));
2247   }
2248 < #line 2158 "config-parser.c" /* yacc.c:1646  */
2248 > #line 2249 "config-parser.c" /* yacc.c:1652  */
2249      break;
2250  
2251 <  case 140:
2252 < #line 595 "config-parser.y" /* yacc.c:1646  */
2251 >  case 156:
2252 > #line 620 "config-parser.y" /* yacc.c:1652  */
2253      {
2254 <   struct BlacklistConf *item = tmp;
2254 >  struct BlacklistConf *item = tmp;
2255  
2256 <   xfree(item->name);
2257 <   item->name = xstrdup((yyvsp[-1].string));
2256 >  item->ipv4 = 0;
2257 >  item->ipv6 = 0;
2258   }
2259 < #line 2169 "config-parser.c" /* yacc.c:1646  */
2259 > #line 2260 "config-parser.c" /* yacc.c:1652  */
2260      break;
2261  
2262 <  case 141:
2263 < #line 602 "config-parser.y" /* yacc.c:1646  */
2262 >  case 160:
2263 > #line 629 "config-parser.y" /* yacc.c:1652  */
2264      {
2265 <   struct BlacklistConf *item = tmp;
2265 >  struct BlacklistConf *item = tmp;
2266  
2267 <   xfree(item->kline);
2177 <   item->kline = xstrdup((yyvsp[-1].string));
2267 >  item->ipv4 = 1;
2268   }
2269 < #line 2180 "config-parser.c" /* yacc.c:1646  */
2269 > #line 2270 "config-parser.c" /* yacc.c:1652  */
2270      break;
2271  
2272 <  case 142:
2273 < #line 609 "config-parser.y" /* yacc.c:1646  */
2272 >  case 161:
2273 > #line 634 "config-parser.y" /* yacc.c:1652  */
2274      {
2275 <   struct BlacklistConf *item = tmp;
2276 <  
2277 <   if(strcmp("A record bitmask", (yyvsp[-1].string)) == 0)
2188 <      item->type = A_BITMASK;
2189 <   else if(strcmp("A record reply", (yyvsp[-1].string)) == 0)
2190 <      item->type = A_REPLY;
2191 <   else
2192 <      yyerror("Unknown blacklist type defined");
2275 >  struct BlacklistConf *item = tmp;
2276 >
2277 >  item->ipv6 = 1;
2278   }
2279 < #line 2195 "config-parser.c" /* yacc.c:1646  */
2279 > #line 2280 "config-parser.c" /* yacc.c:1652  */
2280      break;
2281  
2282 <  case 143:
2283 < #line 620 "config-parser.y" /* yacc.c:1646  */
2282 >  case 162:
2283 > #line 641 "config-parser.y" /* yacc.c:1652  */
2284      {
2285 <   struct BlacklistConf *item = tmp;
2285 >  struct BlacklistConf *item = tmp;
2286  
2287 <   item->ban_unknown = (yyvsp[-1].number);
2287 >  xfree(item->kline);
2288 >  item->kline = xstrdup((yyvsp[-1].string));
2289   }
2290 < #line 2205 "config-parser.c" /* yacc.c:1646  */
2290 > #line 2291 "config-parser.c" /* yacc.c:1652  */
2291      break;
2292  
2293 <  case 147:
2294 < #line 632 "config-parser.y" /* yacc.c:1646  */
2293 >  case 163:
2294 > #line 649 "config-parser.y" /* yacc.c:1652  */
2295      {
2296 <   struct BlacklistReplyConf *item;
2211 <   struct BlacklistConf *blacklist = tmp;
2212 <   node_t *node;
2296 >  struct BlacklistConf *item = tmp;
2297  
2298 <   item = xcalloc(sizeof *item);
2298 >  if (strcmp("A record bitmask", (yyvsp[-1].string)) == 0)
2299 >    item->type = A_BITMASK;
2300 >  else if (strcmp("A record reply", (yyvsp[-1].string)) == 0)
2301 >    item->type = A_REPLY;
2302 >  else
2303 >    yyerror("Unknown blacklist type defined");
2304 > }
2305 > #line 2306 "config-parser.c" /* yacc.c:1652  */
2306 >    break;
2307  
2308 <   item->number = (yyvsp[-3].number);
2309 <   item->type = xstrdup((yyvsp[-1].string));
2308 >  case 164:
2309 > #line 661 "config-parser.y" /* yacc.c:1652  */
2310 >    {
2311 >  struct BlacklistConf *item = tmp;
2312  
2313 <   node = node_create(item);
2220 <   list_add(blacklist->reply, node);
2313 >  item->ban_unknown = (yyvsp[-1].number);
2314   }
2315 < #line 2223 "config-parser.c" /* yacc.c:1646  */
2315 > #line 2316 "config-parser.c" /* yacc.c:1652  */
2316      break;
2317  
2318 <  case 153:
2319 < #line 658 "config-parser.y" /* yacc.c:1646  */
2318 >  case 168:
2319 > #line 673 "config-parser.y" /* yacc.c:1652  */
2320      {
2321 <   node_t *node;
2322 <   node = node_create(xstrdup((yyvsp[-1].string)));
2321 >  struct BlacklistReplyConf *item;
2322 >  struct BlacklistConf *blacklist = tmp;
2323 >
2324 >  item = xcalloc(sizeof(*item));
2325 >  item->number = (yyvsp[-3].number);
2326 >  item->type = xstrdup((yyvsp[-1].string));
2327 >
2328 >  list_add(item, node_create(), &blacklist->reply);
2329 > }
2330 > #line 2331 "config-parser.c" /* yacc.c:1652  */
2331 >    break;
2332  
2333 <   list_add(ExemptItem->masks, node);
2333 >  case 174:
2334 > #line 695 "config-parser.y" /* yacc.c:1652  */
2335 >    {
2336 >  list_add(xstrdup((yyvsp[-1].string)), node_create(), &ExemptItem.masks);
2337   }
2338 < #line 2234 "config-parser.c" /* yacc.c:1646  */
2338 > #line 2339 "config-parser.c" /* yacc.c:1652  */
2339      break;
2340  
2341  
2342 < #line 2238 "config-parser.c" /* yacc.c:1646  */
2342 > #line 2343 "config-parser.c" /* yacc.c:1652  */
2343        default: break;
2344      }
2345    /* User semantic actions sometimes alter yychar, and that requires
# Line 2259 | Line 2364 | yyreduce:
2364    /* Now 'shift' the result of the reduction.  Determine what state
2365       that goes to, based on the state we popped back to and the rule
2366       number reduced by.  */
2367 <
2368 <  yyn = yyr1[yyn];
2369 <
2370 <  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
2371 <  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
2372 <    yystate = yytable[yystate];
2373 <  else
2269 <    yystate = yydefgoto[yyn - YYNTOKENS];
2367 >  {
2368 >    const int yylhs = yyr1[yyn] - YYNTOKENS;
2369 >    const int yyi = yypgoto[yylhs] + *yyssp;
2370 >    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
2371 >               ? yytable[yyi]
2372 >               : yydefgoto[yylhs]);
2373 >  }
2374  
2375    goto yynewstate;
2376  
# Line 2349 | Line 2453 | yyerrlab:
2453   | yyerrorlab -- error raised explicitly by YYERROR.  |
2454   `---------------------------------------------------*/
2455   yyerrorlab:
2456 <
2457 <  /* Pacify compilers like GCC when the user code never invokes
2458 <     YYERROR and the label yyerrorlab therefore never appears in user
2459 <     code.  */
2356 <  if (/*CONSTCOND*/ 0)
2357 <     goto yyerrorlab;
2456 >  /* Pacify compilers when the user code never invokes YYERROR and the
2457 >     label yyerrorlab therefore never appears in user code.  */
2458 >  if (0)
2459 >    YYERROR;
2460  
2461    /* Do not reclaim the symbols of the rule whose action triggered
2462       this YYERROR.  */
# Line 2416 | Line 2518 | yyacceptlab:
2518    yyresult = 0;
2519    goto yyreturn;
2520  
2521 +
2522   /*-----------------------------------.
2523   | yyabortlab -- YYABORT comes here.  |
2524   `-----------------------------------*/
# Line 2423 | Line 2526 | yyabortlab:
2526    yyresult = 1;
2527    goto yyreturn;
2528  
2529 +
2530   #if !defined yyoverflow || YYERROR_VERBOSE
2531   /*-------------------------------------------------.
2532   | yyexhaustedlab -- memory exhaustion comes here.  |
# Line 2433 | Line 2537 | yyexhaustedlab:
2537    /* Fall through.  */
2538   #endif
2539  
2540 +
2541 + /*-----------------------------------------------------.
2542 + | yyreturn -- parsing is finished, return the result.  |
2543 + `-----------------------------------------------------*/
2544   yyreturn:
2545    if (yychar != YYEMPTY)
2546      {
# Line 2462 | Line 2570 | yyreturn:
2570   #endif
2571    return yyresult;
2572   }
2573 < #line 665 "config-parser.y" /* yacc.c:1906  */
2573 > #line 699 "config-parser.y" /* yacc.c:1918  */
2574  

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)