1 /* A Bison parser, made by GNU Bison 3.8.2. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 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
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <https://www.gnu.org/licenses/>. */
20
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
30
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
33
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
36
37 /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38 especially those whose name start with YY_ or yy_. They are
39 private implementation details that can be changed or removed. */
40
41 /* All symbols defined below should begin with yy or YY, to avoid
42 infringing on user name space. This should be done even for local
43 variables, as they might otherwise be expanded by user macros.
44 There are some unavoidable exceptions within include files to
45 define necessary library symbols; they are noted "INFRINGES ON
46 USER NAME SPACE" below. */
47
48 /* Identify Bison output, and Bison version. */
49 #define YYBISON 30802
50
51 /* Bison version string. */
52 #define YYBISON_VERSION "3.8.2"
53
54 /* Skeleton name. */
55 #define YYSKELETON_NAME "yacc.c"
56
57 /* Pure parsers. */
58 #define YYPURE 1
59
60 /* Push parsers. */
61 #define YYPUSH 0
62
63 /* Pull parsers. */
64 #define YYPULL 1
65
66 /* "%code top" blocks. */
67 #line 24 "modules/regexp-parser/regexp-parser-grammar.y"
68
69 #include "regexp-parser-parser.h"
70
71 #line 72 "modules/regexp-parser/regexp-parser-grammar.c"
72 /* Substitute the type names. */
73 #define YYSTYPE REGEXP_PARSER_STYPE
74 #define YYLTYPE REGEXP_PARSER_LTYPE
75 /* Substitute the variable and function names. */
76 #define yyparse regexp_parser_parse
77 #define yylex regexp_parser_lex
78 #define yyerror regexp_parser_error
79 #define yydebug regexp_parser_debug
80 #define yynerrs regexp_parser_nerrs
81
82
83 # ifndef YY_CAST
84 # ifdef __cplusplus
85 # define YY_CAST(Type, Val) static_cast<Type> (Val)
86 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
87 # else
88 # define YY_CAST(Type, Val) ((Type) (Val))
89 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
90 # endif
91 # endif
92 # ifndef YY_NULLPTR
93 # if defined __cplusplus
94 # if 201103L <= __cplusplus
95 # define YY_NULLPTR nullptr
96 # else
97 # define YY_NULLPTR 0
98 # endif
99 # else
100 # define YY_NULLPTR ((void*)0)
101 # endif
102 # endif
103
104 /* Use api.header.include to #include this header
105 instead of duplicating it here. */
106 #ifndef YY_REGEXP_PARSER_MODULES_REGEXP_PARSER_REGEXP_PARSER_GRAMMAR_H_INCLUDED
107 # define YY_REGEXP_PARSER_MODULES_REGEXP_PARSER_REGEXP_PARSER_GRAMMAR_H_INCLUDED
108 /* Debug traces. */
109 #ifndef REGEXP_PARSER_DEBUG
110 # if defined YYDEBUG
111 #if YYDEBUG
112 # define REGEXP_PARSER_DEBUG 1
113 # else
114 # define REGEXP_PARSER_DEBUG 0
115 # endif
116 # else /* ! defined YYDEBUG */
117 # define REGEXP_PARSER_DEBUG 0
118 # endif /* ! defined YYDEBUG */
119 #endif /* ! defined REGEXP_PARSER_DEBUG */
120 #if REGEXP_PARSER_DEBUG
121 extern int regexp_parser_debug;
122 #endif
123
124 /* Token kinds. */
125 #ifndef REGEXP_PARSER_TOKENTYPE
126 # define REGEXP_PARSER_TOKENTYPE
127 enum regexp_parser_tokentype
128 {
129 REGEXP_PARSER_EMPTY = -2,
130 REGEXP_PARSER_EOF = 0, /* "end of file" */
131 REGEXP_PARSER_error = 256, /* error */
132 REGEXP_PARSER_UNDEF = 10514, /* "invalid token" */
133 LL_CONTEXT_ROOT = 1, /* LL_CONTEXT_ROOT */
134 LL_CONTEXT_DESTINATION = 2, /* LL_CONTEXT_DESTINATION */
135 LL_CONTEXT_SOURCE = 3, /* LL_CONTEXT_SOURCE */
136 LL_CONTEXT_PARSER = 4, /* LL_CONTEXT_PARSER */
137 LL_CONTEXT_REWRITE = 5, /* LL_CONTEXT_REWRITE */
138 LL_CONTEXT_FILTER = 6, /* LL_CONTEXT_FILTER */
139 LL_CONTEXT_LOG = 7, /* LL_CONTEXT_LOG */
140 LL_CONTEXT_BLOCK_DEF = 8, /* LL_CONTEXT_BLOCK_DEF */
141 LL_CONTEXT_BLOCK_REF = 9, /* LL_CONTEXT_BLOCK_REF */
142 LL_CONTEXT_BLOCK_CONTENT = 10, /* LL_CONTEXT_BLOCK_CONTENT */
143 LL_CONTEXT_BLOCK_ARG = 11, /* LL_CONTEXT_BLOCK_ARG */
144 LL_CONTEXT_PRAGMA = 12, /* LL_CONTEXT_PRAGMA */
145 LL_CONTEXT_FORMAT = 13, /* LL_CONTEXT_FORMAT */
146 LL_CONTEXT_TEMPLATE_FUNC = 14, /* LL_CONTEXT_TEMPLATE_FUNC */
147 LL_CONTEXT_INNER_DEST = 15, /* LL_CONTEXT_INNER_DEST */
148 LL_CONTEXT_INNER_SRC = 16, /* LL_CONTEXT_INNER_SRC */
149 LL_CONTEXT_CLIENT_PROTO = 17, /* LL_CONTEXT_CLIENT_PROTO */
150 LL_CONTEXT_SERVER_PROTO = 18, /* LL_CONTEXT_SERVER_PROTO */
151 LL_CONTEXT_OPTIONS = 19, /* LL_CONTEXT_OPTIONS */
152 LL_CONTEXT_CONFIG = 20, /* LL_CONTEXT_CONFIG */
153 LL_CONTEXT_MAX = 21, /* LL_CONTEXT_MAX */
154 KW_SOURCE = 10000, /* KW_SOURCE */
155 KW_FILTER = 10001, /* KW_FILTER */
156 KW_PARSER = 10002, /* KW_PARSER */
157 KW_DESTINATION = 10003, /* KW_DESTINATION */
158 KW_LOG = 10004, /* KW_LOG */
159 KW_OPTIONS = 10005, /* KW_OPTIONS */
160 KW_INCLUDE = 10006, /* KW_INCLUDE */
161 KW_BLOCK = 10007, /* KW_BLOCK */
162 KW_JUNCTION = 10008, /* KW_JUNCTION */
163 KW_CHANNEL = 10009, /* KW_CHANNEL */
164 KW_IF = 10010, /* KW_IF */
165 KW_ELSE = 10011, /* KW_ELSE */
166 KW_ELIF = 10012, /* KW_ELIF */
167 KW_INTERNAL = 10020, /* KW_INTERNAL */
168 KW_SYSLOG = 10060, /* KW_SYSLOG */
169 KW_MARK_FREQ = 10071, /* KW_MARK_FREQ */
170 KW_STATS_FREQ = 10072, /* KW_STATS_FREQ */
171 KW_STATS_LEVEL = 10073, /* KW_STATS_LEVEL */
172 KW_STATS_LIFETIME = 10074, /* KW_STATS_LIFETIME */
173 KW_FLUSH_LINES = 10075, /* KW_FLUSH_LINES */
174 KW_SUPPRESS = 10076, /* KW_SUPPRESS */
175 KW_FLUSH_TIMEOUT = 10077, /* KW_FLUSH_TIMEOUT */
176 KW_LOG_MSG_SIZE = 10078, /* KW_LOG_MSG_SIZE */
177 KW_FILE_TEMPLATE = 10079, /* KW_FILE_TEMPLATE */
178 KW_PROTO_TEMPLATE = 10080, /* KW_PROTO_TEMPLATE */
179 KW_MARK_MODE = 10081, /* KW_MARK_MODE */
180 KW_ENCODING = 10082, /* KW_ENCODING */
181 KW_TYPE = 10083, /* KW_TYPE */
182 KW_STATS_MAX_DYNAMIC = 10084, /* KW_STATS_MAX_DYNAMIC */
183 KW_MIN_IW_SIZE_PER_READER = 10085, /* KW_MIN_IW_SIZE_PER_READER */
184 KW_WORKERS = 10086, /* KW_WORKERS */
185 KW_BATCH_LINES = 10087, /* KW_BATCH_LINES */
186 KW_BATCH_TIMEOUT = 10088, /* KW_BATCH_TIMEOUT */
187 KW_TRIM_LARGE_MESSAGES = 10089, /* KW_TRIM_LARGE_MESSAGES */
188 KW_CHAIN_HOSTNAMES = 10090, /* KW_CHAIN_HOSTNAMES */
189 KW_NORMALIZE_HOSTNAMES = 10091, /* KW_NORMALIZE_HOSTNAMES */
190 KW_KEEP_HOSTNAME = 10092, /* KW_KEEP_HOSTNAME */
191 KW_CHECK_HOSTNAME = 10093, /* KW_CHECK_HOSTNAME */
192 KW_BAD_HOSTNAME = 10094, /* KW_BAD_HOSTNAME */
193 KW_KEEP_TIMESTAMP = 10100, /* KW_KEEP_TIMESTAMP */
194 KW_USE_DNS = 10110, /* KW_USE_DNS */
195 KW_USE_FQDN = 10111, /* KW_USE_FQDN */
196 KW_CUSTOM_DOMAIN = 10112, /* KW_CUSTOM_DOMAIN */
197 KW_DNS_CACHE = 10120, /* KW_DNS_CACHE */
198 KW_DNS_CACHE_SIZE = 10121, /* KW_DNS_CACHE_SIZE */
199 KW_DNS_CACHE_EXPIRE = 10130, /* KW_DNS_CACHE_EXPIRE */
200 KW_DNS_CACHE_EXPIRE_FAILED = 10131, /* KW_DNS_CACHE_EXPIRE_FAILED */
201 KW_DNS_CACHE_HOSTS = 10132, /* KW_DNS_CACHE_HOSTS */
202 KW_PERSIST_ONLY = 10140, /* KW_PERSIST_ONLY */
203 KW_USE_RCPTID = 10141, /* KW_USE_RCPTID */
204 KW_USE_UNIQID = 10142, /* KW_USE_UNIQID */
205 KW_TZ_CONVERT = 10150, /* KW_TZ_CONVERT */
206 KW_TS_FORMAT = 10151, /* KW_TS_FORMAT */
207 KW_FRAC_DIGITS = 10152, /* KW_FRAC_DIGITS */
208 KW_LOG_FIFO_SIZE = 10160, /* KW_LOG_FIFO_SIZE */
209 KW_LOG_FETCH_LIMIT = 10162, /* KW_LOG_FETCH_LIMIT */
210 KW_LOG_IW_SIZE = 10163, /* KW_LOG_IW_SIZE */
211 KW_LOG_PREFIX = 10164, /* KW_LOG_PREFIX */
212 KW_PROGRAM_OVERRIDE = 10165, /* KW_PROGRAM_OVERRIDE */
213 KW_HOST_OVERRIDE = 10166, /* KW_HOST_OVERRIDE */
214 KW_THROTTLE = 10170, /* KW_THROTTLE */
215 KW_THREADED = 10171, /* KW_THREADED */
216 KW_PASS_UNIX_CREDENTIALS = 10231, /* KW_PASS_UNIX_CREDENTIALS */
217 KW_PERSIST_NAME = 10302, /* KW_PERSIST_NAME */
218 KW_READ_OLD_RECORDS = 10304, /* KW_READ_OLD_RECORDS */
219 KW_USE_SYSLOGNG_PID = 10305, /* KW_USE_SYSLOGNG_PID */
220 KW_FLAGS = 10190, /* KW_FLAGS */
221 KW_PAD_SIZE = 10200, /* KW_PAD_SIZE */
222 KW_TIME_ZONE = 10201, /* KW_TIME_ZONE */
223 KW_RECV_TIME_ZONE = 10202, /* KW_RECV_TIME_ZONE */
224 KW_SEND_TIME_ZONE = 10203, /* KW_SEND_TIME_ZONE */
225 KW_LOCAL_TIME_ZONE = 10204, /* KW_LOCAL_TIME_ZONE */
226 KW_FORMAT = 10205, /* KW_FORMAT */
227 KW_TRUNCATE_SIZE = 10206, /* KW_TRUNCATE_SIZE */
228 KW_TIME_REOPEN = 10210, /* KW_TIME_REOPEN */
229 KW_TIME_REAP = 10211, /* KW_TIME_REAP */
230 KW_TIME_SLEEP = 10212, /* KW_TIME_SLEEP */
231 KW_TMPL_ESCAPE = 10220, /* KW_TMPL_ESCAPE */
232 KW_OPTIONAL = 10230, /* KW_OPTIONAL */
233 KW_CREATE_DIRS = 10240, /* KW_CREATE_DIRS */
234 KW_OWNER = 10250, /* KW_OWNER */
235 KW_GROUP = 10251, /* KW_GROUP */
236 KW_PERM = 10252, /* KW_PERM */
237 KW_DIR_OWNER = 10260, /* KW_DIR_OWNER */
238 KW_DIR_GROUP = 10261, /* KW_DIR_GROUP */
239 KW_DIR_PERM = 10262, /* KW_DIR_PERM */
240 KW_TEMPLATE = 10270, /* KW_TEMPLATE */
241 KW_TEMPLATE_ESCAPE = 10271, /* KW_TEMPLATE_ESCAPE */
242 KW_TEMPLATE_FUNCTION = 10272, /* KW_TEMPLATE_FUNCTION */
243 KW_DEFAULT_FACILITY = 10300, /* KW_DEFAULT_FACILITY */
244 KW_DEFAULT_SEVERITY = 10301, /* KW_DEFAULT_SEVERITY */
245 KW_PORT = 10323, /* KW_PORT */
246 KW_USE_TIME_RECVD = 10340, /* KW_USE_TIME_RECVD */
247 KW_FACILITY = 10350, /* KW_FACILITY */
248 KW_SEVERITY = 10351, /* KW_SEVERITY */
249 KW_HOST = 10352, /* KW_HOST */
250 KW_MATCH = 10353, /* KW_MATCH */
251 KW_MESSAGE = 10354, /* KW_MESSAGE */
252 KW_NETMASK = 10355, /* KW_NETMASK */
253 KW_TAGS = 10356, /* KW_TAGS */
254 KW_NETMASK6 = 10357, /* KW_NETMASK6 */
255 KW_REWRITE = 10370, /* KW_REWRITE */
256 KW_CONDITION = 10371, /* KW_CONDITION */
257 KW_VALUE = 10372, /* KW_VALUE */
258 KW_YES = 10380, /* KW_YES */
259 KW_NO = 10381, /* KW_NO */
260 KW_IFDEF = 10410, /* KW_IFDEF */
261 KW_ENDIF = 10411, /* KW_ENDIF */
262 LL_DOTDOT = 10420, /* LL_DOTDOT */
263 LL_DOTDOTDOT = 10421, /* LL_DOTDOTDOT */
264 LL_PRAGMA = 10422, /* LL_PRAGMA */
265 LL_EOL = 10423, /* LL_EOL */
266 LL_ERROR = 10424, /* LL_ERROR */
267 LL_ARROW = 10425, /* LL_ARROW */
268 LL_IDENTIFIER = 10430, /* LL_IDENTIFIER */
269 LL_NUMBER = 10431, /* LL_NUMBER */
270 LL_FLOAT = 10432, /* LL_FLOAT */
271 LL_STRING = 10433, /* LL_STRING */
272 LL_TOKEN = 10434, /* LL_TOKEN */
273 LL_BLOCK = 10435, /* LL_BLOCK */
274 KW_VALUE_PAIRS = 10500, /* KW_VALUE_PAIRS */
275 KW_EXCLUDE = 10502, /* KW_EXCLUDE */
276 KW_PAIR = 10503, /* KW_PAIR */
277 KW_KEY = 10504, /* KW_KEY */
278 KW_SCOPE = 10505, /* KW_SCOPE */
279 KW_SHIFT = 10506, /* KW_SHIFT */
280 KW_SHIFT_LEVELS = 10507, /* KW_SHIFT_LEVELS */
281 KW_REKEY = 10508, /* KW_REKEY */
282 KW_ADD_PREFIX = 10509, /* KW_ADD_PREFIX */
283 KW_REPLACE_PREFIX = 10510, /* KW_REPLACE_PREFIX */
284 KW_ON_ERROR = 10511, /* KW_ON_ERROR */
285 KW_RETRIES = 10512, /* KW_RETRIES */
286 KW_FETCH_NO_DATA_DELAY = 10513, /* KW_FETCH_NO_DATA_DELAY */
287 KW_REGEXP_PARSER = 10515, /* KW_REGEXP_PARSER */
288 KW_PREFIX = 10516, /* KW_PREFIX */
289 KW_PATTERNS = 10517 /* KW_PATTERNS */
290 };
291 typedef enum regexp_parser_tokentype regexp_parser_token_kind_t;
292 #endif
293 /* Token kinds. */
294 #define REGEXP_PARSER_EMPTY -2
295 #define REGEXP_PARSER_EOF 0
296 #define REGEXP_PARSER_error 256
297 #define REGEXP_PARSER_UNDEF 10514
298 #define LL_CONTEXT_ROOT 1
299 #define LL_CONTEXT_DESTINATION 2
300 #define LL_CONTEXT_SOURCE 3
301 #define LL_CONTEXT_PARSER 4
302 #define LL_CONTEXT_REWRITE 5
303 #define LL_CONTEXT_FILTER 6
304 #define LL_CONTEXT_LOG 7
305 #define LL_CONTEXT_BLOCK_DEF 8
306 #define LL_CONTEXT_BLOCK_REF 9
307 #define LL_CONTEXT_BLOCK_CONTENT 10
308 #define LL_CONTEXT_BLOCK_ARG 11
309 #define LL_CONTEXT_PRAGMA 12
310 #define LL_CONTEXT_FORMAT 13
311 #define LL_CONTEXT_TEMPLATE_FUNC 14
312 #define LL_CONTEXT_INNER_DEST 15
313 #define LL_CONTEXT_INNER_SRC 16
314 #define LL_CONTEXT_CLIENT_PROTO 17
315 #define LL_CONTEXT_SERVER_PROTO 18
316 #define LL_CONTEXT_OPTIONS 19
317 #define LL_CONTEXT_CONFIG 20
318 #define LL_CONTEXT_MAX 21
319 #define KW_SOURCE 10000
320 #define KW_FILTER 10001
321 #define KW_PARSER 10002
322 #define KW_DESTINATION 10003
323 #define KW_LOG 10004
324 #define KW_OPTIONS 10005
325 #define KW_INCLUDE 10006
326 #define KW_BLOCK 10007
327 #define KW_JUNCTION 10008
328 #define KW_CHANNEL 10009
329 #define KW_IF 10010
330 #define KW_ELSE 10011
331 #define KW_ELIF 10012
332 #define KW_INTERNAL 10020
333 #define KW_SYSLOG 10060
334 #define KW_MARK_FREQ 10071
335 #define KW_STATS_FREQ 10072
336 #define KW_STATS_LEVEL 10073
337 #define KW_STATS_LIFETIME 10074
338 #define KW_FLUSH_LINES 10075
339 #define KW_SUPPRESS 10076
340 #define KW_FLUSH_TIMEOUT 10077
341 #define KW_LOG_MSG_SIZE 10078
342 #define KW_FILE_TEMPLATE 10079
343 #define KW_PROTO_TEMPLATE 10080
344 #define KW_MARK_MODE 10081
345 #define KW_ENCODING 10082
346 #define KW_TYPE 10083
347 #define KW_STATS_MAX_DYNAMIC 10084
348 #define KW_MIN_IW_SIZE_PER_READER 10085
349 #define KW_WORKERS 10086
350 #define KW_BATCH_LINES 10087
351 #define KW_BATCH_TIMEOUT 10088
352 #define KW_TRIM_LARGE_MESSAGES 10089
353 #define KW_CHAIN_HOSTNAMES 10090
354 #define KW_NORMALIZE_HOSTNAMES 10091
355 #define KW_KEEP_HOSTNAME 10092
356 #define KW_CHECK_HOSTNAME 10093
357 #define KW_BAD_HOSTNAME 10094
358 #define KW_KEEP_TIMESTAMP 10100
359 #define KW_USE_DNS 10110
360 #define KW_USE_FQDN 10111
361 #define KW_CUSTOM_DOMAIN 10112
362 #define KW_DNS_CACHE 10120
363 #define KW_DNS_CACHE_SIZE 10121
364 #define KW_DNS_CACHE_EXPIRE 10130
365 #define KW_DNS_CACHE_EXPIRE_FAILED 10131
366 #define KW_DNS_CACHE_HOSTS 10132
367 #define KW_PERSIST_ONLY 10140
368 #define KW_USE_RCPTID 10141
369 #define KW_USE_UNIQID 10142
370 #define KW_TZ_CONVERT 10150
371 #define KW_TS_FORMAT 10151
372 #define KW_FRAC_DIGITS 10152
373 #define KW_LOG_FIFO_SIZE 10160
374 #define KW_LOG_FETCH_LIMIT 10162
375 #define KW_LOG_IW_SIZE 10163
376 #define KW_LOG_PREFIX 10164
377 #define KW_PROGRAM_OVERRIDE 10165
378 #define KW_HOST_OVERRIDE 10166
379 #define KW_THROTTLE 10170
380 #define KW_THREADED 10171
381 #define KW_PASS_UNIX_CREDENTIALS 10231
382 #define KW_PERSIST_NAME 10302
383 #define KW_READ_OLD_RECORDS 10304
384 #define KW_USE_SYSLOGNG_PID 10305
385 #define KW_FLAGS 10190
386 #define KW_PAD_SIZE 10200
387 #define KW_TIME_ZONE 10201
388 #define KW_RECV_TIME_ZONE 10202
389 #define KW_SEND_TIME_ZONE 10203
390 #define KW_LOCAL_TIME_ZONE 10204
391 #define KW_FORMAT 10205
392 #define KW_TRUNCATE_SIZE 10206
393 #define KW_TIME_REOPEN 10210
394 #define KW_TIME_REAP 10211
395 #define KW_TIME_SLEEP 10212
396 #define KW_TMPL_ESCAPE 10220
397 #define KW_OPTIONAL 10230
398 #define KW_CREATE_DIRS 10240
399 #define KW_OWNER 10250
400 #define KW_GROUP 10251
401 #define KW_PERM 10252
402 #define KW_DIR_OWNER 10260
403 #define KW_DIR_GROUP 10261
404 #define KW_DIR_PERM 10262
405 #define KW_TEMPLATE 10270
406 #define KW_TEMPLATE_ESCAPE 10271
407 #define KW_TEMPLATE_FUNCTION 10272
408 #define KW_DEFAULT_FACILITY 10300
409 #define KW_DEFAULT_SEVERITY 10301
410 #define KW_PORT 10323
411 #define KW_USE_TIME_RECVD 10340
412 #define KW_FACILITY 10350
413 #define KW_SEVERITY 10351
414 #define KW_HOST 10352
415 #define KW_MATCH 10353
416 #define KW_MESSAGE 10354
417 #define KW_NETMASK 10355
418 #define KW_TAGS 10356
419 #define KW_NETMASK6 10357
420 #define KW_REWRITE 10370
421 #define KW_CONDITION 10371
422 #define KW_VALUE 10372
423 #define KW_YES 10380
424 #define KW_NO 10381
425 #define KW_IFDEF 10410
426 #define KW_ENDIF 10411
427 #define LL_DOTDOT 10420
428 #define LL_DOTDOTDOT 10421
429 #define LL_PRAGMA 10422
430 #define LL_EOL 10423
431 #define LL_ERROR 10424
432 #define LL_ARROW 10425
433 #define LL_IDENTIFIER 10430
434 #define LL_NUMBER 10431
435 #define LL_FLOAT 10432
436 #define LL_STRING 10433
437 #define LL_TOKEN 10434
438 #define LL_BLOCK 10435
439 #define KW_VALUE_PAIRS 10500
440 #define KW_EXCLUDE 10502
441 #define KW_PAIR 10503
442 #define KW_KEY 10504
443 #define KW_SCOPE 10505
444 #define KW_SHIFT 10506
445 #define KW_SHIFT_LEVELS 10507
446 #define KW_REKEY 10508
447 #define KW_ADD_PREFIX 10509
448 #define KW_REPLACE_PREFIX 10510
449 #define KW_ON_ERROR 10511
450 #define KW_RETRIES 10512
451 #define KW_FETCH_NO_DATA_DELAY 10513
452 #define KW_REGEXP_PARSER 10515
453 #define KW_PREFIX 10516
454 #define KW_PATTERNS 10517
455
456 /* Value type. */
457 #if ! defined REGEXP_PARSER_STYPE && ! defined REGEXP_PARSER_STYPE_IS_DECLARED
458 typedef CFG_STYPE REGEXP_PARSER_STYPE;
459 # define REGEXP_PARSER_STYPE_IS_TRIVIAL 1
460 # define REGEXP_PARSER_STYPE_IS_DECLARED 1
461 #endif
462
463 /* Location type. */
464 typedef CFG_LTYPE REGEXP_PARSER_LTYPE;
465
466
467
468
469 int regexp_parser_parse (CfgLexer *lexer, LogParser **instance, gpointer arg);
470
471
472 #endif /* !YY_REGEXP_PARSER_MODULES_REGEXP_PARSER_REGEXP_PARSER_GRAMMAR_H_INCLUDED */
473 /* Symbol kind. */
474 enum yysymbol_kind_t
475 {
476 YYSYMBOL_YYEMPTY = -2,
477 YYSYMBOL_YYEOF = 0, /* "end of file" */
478 YYSYMBOL_YYerror = 1, /* error */
479 YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
480 YYSYMBOL_LL_CONTEXT_ROOT = 3, /* LL_CONTEXT_ROOT */
481 YYSYMBOL_LL_CONTEXT_DESTINATION = 4, /* LL_CONTEXT_DESTINATION */
482 YYSYMBOL_LL_CONTEXT_SOURCE = 5, /* LL_CONTEXT_SOURCE */
483 YYSYMBOL_LL_CONTEXT_PARSER = 6, /* LL_CONTEXT_PARSER */
484 YYSYMBOL_LL_CONTEXT_REWRITE = 7, /* LL_CONTEXT_REWRITE */
485 YYSYMBOL_LL_CONTEXT_FILTER = 8, /* LL_CONTEXT_FILTER */
486 YYSYMBOL_LL_CONTEXT_LOG = 9, /* LL_CONTEXT_LOG */
487 YYSYMBOL_LL_CONTEXT_BLOCK_DEF = 10, /* LL_CONTEXT_BLOCK_DEF */
488 YYSYMBOL_LL_CONTEXT_BLOCK_REF = 11, /* LL_CONTEXT_BLOCK_REF */
489 YYSYMBOL_LL_CONTEXT_BLOCK_CONTENT = 12, /* LL_CONTEXT_BLOCK_CONTENT */
490 YYSYMBOL_LL_CONTEXT_BLOCK_ARG = 13, /* LL_CONTEXT_BLOCK_ARG */
491 YYSYMBOL_LL_CONTEXT_PRAGMA = 14, /* LL_CONTEXT_PRAGMA */
492 YYSYMBOL_LL_CONTEXT_FORMAT = 15, /* LL_CONTEXT_FORMAT */
493 YYSYMBOL_LL_CONTEXT_TEMPLATE_FUNC = 16, /* LL_CONTEXT_TEMPLATE_FUNC */
494 YYSYMBOL_LL_CONTEXT_INNER_DEST = 17, /* LL_CONTEXT_INNER_DEST */
495 YYSYMBOL_LL_CONTEXT_INNER_SRC = 18, /* LL_CONTEXT_INNER_SRC */
496 YYSYMBOL_LL_CONTEXT_CLIENT_PROTO = 19, /* LL_CONTEXT_CLIENT_PROTO */
497 YYSYMBOL_LL_CONTEXT_SERVER_PROTO = 20, /* LL_CONTEXT_SERVER_PROTO */
498 YYSYMBOL_LL_CONTEXT_OPTIONS = 21, /* LL_CONTEXT_OPTIONS */
499 YYSYMBOL_LL_CONTEXT_CONFIG = 22, /* LL_CONTEXT_CONFIG */
500 YYSYMBOL_LL_CONTEXT_MAX = 23, /* LL_CONTEXT_MAX */
501 YYSYMBOL_KW_SOURCE = 24, /* KW_SOURCE */
502 YYSYMBOL_KW_FILTER = 25, /* KW_FILTER */
503 YYSYMBOL_KW_PARSER = 26, /* KW_PARSER */
504 YYSYMBOL_KW_DESTINATION = 27, /* KW_DESTINATION */
505 YYSYMBOL_KW_LOG = 28, /* KW_LOG */
506 YYSYMBOL_KW_OPTIONS = 29, /* KW_OPTIONS */
507 YYSYMBOL_KW_INCLUDE = 30, /* KW_INCLUDE */
508 YYSYMBOL_KW_BLOCK = 31, /* KW_BLOCK */
509 YYSYMBOL_KW_JUNCTION = 32, /* KW_JUNCTION */
510 YYSYMBOL_KW_CHANNEL = 33, /* KW_CHANNEL */
511 YYSYMBOL_KW_IF = 34, /* KW_IF */
512 YYSYMBOL_KW_ELSE = 35, /* KW_ELSE */
513 YYSYMBOL_KW_ELIF = 36, /* KW_ELIF */
514 YYSYMBOL_KW_INTERNAL = 37, /* KW_INTERNAL */
515 YYSYMBOL_KW_SYSLOG = 38, /* KW_SYSLOG */
516 YYSYMBOL_KW_MARK_FREQ = 39, /* KW_MARK_FREQ */
517 YYSYMBOL_KW_STATS_FREQ = 40, /* KW_STATS_FREQ */
518 YYSYMBOL_KW_STATS_LEVEL = 41, /* KW_STATS_LEVEL */
519 YYSYMBOL_KW_STATS_LIFETIME = 42, /* KW_STATS_LIFETIME */
520 YYSYMBOL_KW_FLUSH_LINES = 43, /* KW_FLUSH_LINES */
521 YYSYMBOL_KW_SUPPRESS = 44, /* KW_SUPPRESS */
522 YYSYMBOL_KW_FLUSH_TIMEOUT = 45, /* KW_FLUSH_TIMEOUT */
523 YYSYMBOL_KW_LOG_MSG_SIZE = 46, /* KW_LOG_MSG_SIZE */
524 YYSYMBOL_KW_FILE_TEMPLATE = 47, /* KW_FILE_TEMPLATE */
525 YYSYMBOL_KW_PROTO_TEMPLATE = 48, /* KW_PROTO_TEMPLATE */
526 YYSYMBOL_KW_MARK_MODE = 49, /* KW_MARK_MODE */
527 YYSYMBOL_KW_ENCODING = 50, /* KW_ENCODING */
528 YYSYMBOL_KW_TYPE = 51, /* KW_TYPE */
529 YYSYMBOL_KW_STATS_MAX_DYNAMIC = 52, /* KW_STATS_MAX_DYNAMIC */
530 YYSYMBOL_KW_MIN_IW_SIZE_PER_READER = 53, /* KW_MIN_IW_SIZE_PER_READER */
531 YYSYMBOL_KW_WORKERS = 54, /* KW_WORKERS */
532 YYSYMBOL_KW_BATCH_LINES = 55, /* KW_BATCH_LINES */
533 YYSYMBOL_KW_BATCH_TIMEOUT = 56, /* KW_BATCH_TIMEOUT */
534 YYSYMBOL_KW_TRIM_LARGE_MESSAGES = 57, /* KW_TRIM_LARGE_MESSAGES */
535 YYSYMBOL_KW_CHAIN_HOSTNAMES = 58, /* KW_CHAIN_HOSTNAMES */
536 YYSYMBOL_KW_NORMALIZE_HOSTNAMES = 59, /* KW_NORMALIZE_HOSTNAMES */
537 YYSYMBOL_KW_KEEP_HOSTNAME = 60, /* KW_KEEP_HOSTNAME */
538 YYSYMBOL_KW_CHECK_HOSTNAME = 61, /* KW_CHECK_HOSTNAME */
539 YYSYMBOL_KW_BAD_HOSTNAME = 62, /* KW_BAD_HOSTNAME */
540 YYSYMBOL_KW_KEEP_TIMESTAMP = 63, /* KW_KEEP_TIMESTAMP */
541 YYSYMBOL_KW_USE_DNS = 64, /* KW_USE_DNS */
542 YYSYMBOL_KW_USE_FQDN = 65, /* KW_USE_FQDN */
543 YYSYMBOL_KW_CUSTOM_DOMAIN = 66, /* KW_CUSTOM_DOMAIN */
544 YYSYMBOL_KW_DNS_CACHE = 67, /* KW_DNS_CACHE */
545 YYSYMBOL_KW_DNS_CACHE_SIZE = 68, /* KW_DNS_CACHE_SIZE */
546 YYSYMBOL_KW_DNS_CACHE_EXPIRE = 69, /* KW_DNS_CACHE_EXPIRE */
547 YYSYMBOL_KW_DNS_CACHE_EXPIRE_FAILED = 70, /* KW_DNS_CACHE_EXPIRE_FAILED */
548 YYSYMBOL_KW_DNS_CACHE_HOSTS = 71, /* KW_DNS_CACHE_HOSTS */
549 YYSYMBOL_KW_PERSIST_ONLY = 72, /* KW_PERSIST_ONLY */
550 YYSYMBOL_KW_USE_RCPTID = 73, /* KW_USE_RCPTID */
551 YYSYMBOL_KW_USE_UNIQID = 74, /* KW_USE_UNIQID */
552 YYSYMBOL_KW_TZ_CONVERT = 75, /* KW_TZ_CONVERT */
553 YYSYMBOL_KW_TS_FORMAT = 76, /* KW_TS_FORMAT */
554 YYSYMBOL_KW_FRAC_DIGITS = 77, /* KW_FRAC_DIGITS */
555 YYSYMBOL_KW_LOG_FIFO_SIZE = 78, /* KW_LOG_FIFO_SIZE */
556 YYSYMBOL_KW_LOG_FETCH_LIMIT = 79, /* KW_LOG_FETCH_LIMIT */
557 YYSYMBOL_KW_LOG_IW_SIZE = 80, /* KW_LOG_IW_SIZE */
558 YYSYMBOL_KW_LOG_PREFIX = 81, /* KW_LOG_PREFIX */
559 YYSYMBOL_KW_PROGRAM_OVERRIDE = 82, /* KW_PROGRAM_OVERRIDE */
560 YYSYMBOL_KW_HOST_OVERRIDE = 83, /* KW_HOST_OVERRIDE */
561 YYSYMBOL_KW_THROTTLE = 84, /* KW_THROTTLE */
562 YYSYMBOL_KW_THREADED = 85, /* KW_THREADED */
563 YYSYMBOL_KW_PASS_UNIX_CREDENTIALS = 86, /* KW_PASS_UNIX_CREDENTIALS */
564 YYSYMBOL_KW_PERSIST_NAME = 87, /* KW_PERSIST_NAME */
565 YYSYMBOL_KW_READ_OLD_RECORDS = 88, /* KW_READ_OLD_RECORDS */
566 YYSYMBOL_KW_USE_SYSLOGNG_PID = 89, /* KW_USE_SYSLOGNG_PID */
567 YYSYMBOL_KW_FLAGS = 90, /* KW_FLAGS */
568 YYSYMBOL_KW_PAD_SIZE = 91, /* KW_PAD_SIZE */
569 YYSYMBOL_KW_TIME_ZONE = 92, /* KW_TIME_ZONE */
570 YYSYMBOL_KW_RECV_TIME_ZONE = 93, /* KW_RECV_TIME_ZONE */
571 YYSYMBOL_KW_SEND_TIME_ZONE = 94, /* KW_SEND_TIME_ZONE */
572 YYSYMBOL_KW_LOCAL_TIME_ZONE = 95, /* KW_LOCAL_TIME_ZONE */
573 YYSYMBOL_KW_FORMAT = 96, /* KW_FORMAT */
574 YYSYMBOL_KW_TRUNCATE_SIZE = 97, /* KW_TRUNCATE_SIZE */
575 YYSYMBOL_KW_TIME_REOPEN = 98, /* KW_TIME_REOPEN */
576 YYSYMBOL_KW_TIME_REAP = 99, /* KW_TIME_REAP */
577 YYSYMBOL_KW_TIME_SLEEP = 100, /* KW_TIME_SLEEP */
578 YYSYMBOL_KW_TMPL_ESCAPE = 101, /* KW_TMPL_ESCAPE */
579 YYSYMBOL_KW_OPTIONAL = 102, /* KW_OPTIONAL */
580 YYSYMBOL_KW_CREATE_DIRS = 103, /* KW_CREATE_DIRS */
581 YYSYMBOL_KW_OWNER = 104, /* KW_OWNER */
582 YYSYMBOL_KW_GROUP = 105, /* KW_GROUP */
583 YYSYMBOL_KW_PERM = 106, /* KW_PERM */
584 YYSYMBOL_KW_DIR_OWNER = 107, /* KW_DIR_OWNER */
585 YYSYMBOL_KW_DIR_GROUP = 108, /* KW_DIR_GROUP */
586 YYSYMBOL_KW_DIR_PERM = 109, /* KW_DIR_PERM */
587 YYSYMBOL_KW_TEMPLATE = 110, /* KW_TEMPLATE */
588 YYSYMBOL_KW_TEMPLATE_ESCAPE = 111, /* KW_TEMPLATE_ESCAPE */
589 YYSYMBOL_KW_TEMPLATE_FUNCTION = 112, /* KW_TEMPLATE_FUNCTION */
590 YYSYMBOL_KW_DEFAULT_FACILITY = 113, /* KW_DEFAULT_FACILITY */
591 YYSYMBOL_KW_DEFAULT_SEVERITY = 114, /* KW_DEFAULT_SEVERITY */
592 YYSYMBOL_KW_PORT = 115, /* KW_PORT */
593 YYSYMBOL_KW_USE_TIME_RECVD = 116, /* KW_USE_TIME_RECVD */
594 YYSYMBOL_KW_FACILITY = 117, /* KW_FACILITY */
595 YYSYMBOL_KW_SEVERITY = 118, /* KW_SEVERITY */
596 YYSYMBOL_KW_HOST = 119, /* KW_HOST */
597 YYSYMBOL_KW_MATCH = 120, /* KW_MATCH */
598 YYSYMBOL_KW_MESSAGE = 121, /* KW_MESSAGE */
599 YYSYMBOL_KW_NETMASK = 122, /* KW_NETMASK */
600 YYSYMBOL_KW_TAGS = 123, /* KW_TAGS */
601 YYSYMBOL_KW_NETMASK6 = 124, /* KW_NETMASK6 */
602 YYSYMBOL_KW_REWRITE = 125, /* KW_REWRITE */
603 YYSYMBOL_KW_CONDITION = 126, /* KW_CONDITION */
604 YYSYMBOL_KW_VALUE = 127, /* KW_VALUE */
605 YYSYMBOL_KW_YES = 128, /* KW_YES */
606 YYSYMBOL_KW_NO = 129, /* KW_NO */
607 YYSYMBOL_KW_IFDEF = 130, /* KW_IFDEF */
608 YYSYMBOL_KW_ENDIF = 131, /* KW_ENDIF */
609 YYSYMBOL_LL_DOTDOT = 132, /* LL_DOTDOT */
610 YYSYMBOL_LL_DOTDOTDOT = 133, /* LL_DOTDOTDOT */
611 YYSYMBOL_LL_PRAGMA = 134, /* LL_PRAGMA */
612 YYSYMBOL_LL_EOL = 135, /* LL_EOL */
613 YYSYMBOL_LL_ERROR = 136, /* LL_ERROR */
614 YYSYMBOL_LL_ARROW = 137, /* LL_ARROW */
615 YYSYMBOL_LL_IDENTIFIER = 138, /* LL_IDENTIFIER */
616 YYSYMBOL_LL_NUMBER = 139, /* LL_NUMBER */
617 YYSYMBOL_LL_FLOAT = 140, /* LL_FLOAT */
618 YYSYMBOL_LL_STRING = 141, /* LL_STRING */
619 YYSYMBOL_LL_TOKEN = 142, /* LL_TOKEN */
620 YYSYMBOL_LL_BLOCK = 143, /* LL_BLOCK */
621 YYSYMBOL_KW_VALUE_PAIRS = 144, /* KW_VALUE_PAIRS */
622 YYSYMBOL_KW_EXCLUDE = 145, /* KW_EXCLUDE */
623 YYSYMBOL_KW_PAIR = 146, /* KW_PAIR */
624 YYSYMBOL_KW_KEY = 147, /* KW_KEY */
625 YYSYMBOL_KW_SCOPE = 148, /* KW_SCOPE */
626 YYSYMBOL_KW_SHIFT = 149, /* KW_SHIFT */
627 YYSYMBOL_KW_SHIFT_LEVELS = 150, /* KW_SHIFT_LEVELS */
628 YYSYMBOL_KW_REKEY = 151, /* KW_REKEY */
629 YYSYMBOL_KW_ADD_PREFIX = 152, /* KW_ADD_PREFIX */
630 YYSYMBOL_KW_REPLACE_PREFIX = 153, /* KW_REPLACE_PREFIX */
631 YYSYMBOL_KW_ON_ERROR = 154, /* KW_ON_ERROR */
632 YYSYMBOL_KW_RETRIES = 155, /* KW_RETRIES */
633 YYSYMBOL_KW_FETCH_NO_DATA_DELAY = 156, /* KW_FETCH_NO_DATA_DELAY */
634 YYSYMBOL_KW_REGEXP_PARSER = 157, /* KW_REGEXP_PARSER */
635 YYSYMBOL_KW_PREFIX = 158, /* KW_PREFIX */
636 YYSYMBOL_KW_PATTERNS = 159, /* KW_PATTERNS */
637 YYSYMBOL_160_ = 160, /* '(' */
638 YYSYMBOL_161_ = 161, /* ')' */
639 YYSYMBOL_162_ = 162, /* '{' */
640 YYSYMBOL_163_ = 163, /* '}' */
641 YYSYMBOL_164_ = 164, /* ';' */
642 YYSYMBOL_165_ = 165, /* ':' */
643 YYSYMBOL_YYACCEPT = 166, /* $accept */
644 YYSYMBOL_start = 167, /* start */
645 YYSYMBOL_parser_expr_regexp = 168, /* parser_expr_regexp */
646 YYSYMBOL_169_1 = 169, /* $@1 */
647 YYSYMBOL_parser_regexp_opts = 170, /* parser_regexp_opts */
648 YYSYMBOL_parser_regexp_opt = 171, /* parser_regexp_opt */
649 YYSYMBOL_172_2 = 172, /* $@2 */
650 YYSYMBOL_string = 173, /* string */
651 YYSYMBOL_string_list = 174, /* string_list */
652 YYSYMBOL_string_list_build = 175, /* string_list_build */
653 YYSYMBOL_parser_opt = 176, /* parser_opt */
654 YYSYMBOL_matcher_option = 177, /* matcher_option */
655 YYSYMBOL_matcher_flags = 178 /* matcher_flags */
656 };
657 typedef enum yysymbol_kind_t yysymbol_kind_t;
658
659
660
661 /* Unqualified %code blocks. */
662 #line 28 "modules/regexp-parser/regexp-parser-grammar.y"
663
664
665 #include "regexp-parser.h"
666 #include "regexp-parser-parser.h"
667 #include "cfg-parser.h"
668 #include "cfg-grammar-internal.h"
669
670 #line 55 "modules/regexp-parser/regexp-parser-grammar.y"
671
672
673 # define YYLLOC_DEFAULT(Current, Rhs, N) \
674 do { \
675 if (N) \
676 { \
677 (Current).level = YYRHSLOC(Rhs, 1).level; \
678 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
679 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
680 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
681 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
682 } \
683 else \
684 { \
685 (Current).level = YYRHSLOC(Rhs, 0).level; \
686 (Current).first_line = (Current).last_line = \
687 YYRHSLOC (Rhs, 0).last_line; \
688 (Current).first_column = (Current).last_column = \
689 YYRHSLOC (Rhs, 0).last_column; \
690 } \
691 } while (0)
692
693 #define CHECK_ERROR_WITHOUT_MESSAGE(val, token) do { \
694 if (!(val)) \
695 { \
696 YYERROR; \
697 } \
698 } while (0)
699
700 #define CHECK_ERROR(val, token, errorfmt, ...) do { \
701 if (!(val)) \
702 { \
703 if (errorfmt) \
704 { \
705 gchar __buf[256]; \
706 g_snprintf(__buf, sizeof(__buf), errorfmt, ## __VA_ARGS__); \
707 yyerror(& (token), lexer, NULL, NULL, __buf); \
708 } \
709 YYERROR; \
710 } \
711 } while (0)
712
713 #define CHECK_ERROR_GERROR(val, token, error, errorfmt, ...) do { \
714 if (!(val)) \
715 { \
716 if (errorfmt) \
717 { \
718 gchar __buf[256]; \
719 g_snprintf(__buf, sizeof(__buf), errorfmt ", error=%s", ## __VA_ARGS__, error->message); \
720 yyerror(& (token), lexer, NULL, NULL, __buf); \
721 } \
722 g_clear_error(&error); \
723 YYERROR; \
724 } \
725 } while (0)
726
727 #define YYMAXDEPTH 20000
728
729
730
731 #line 732 "modules/regexp-parser/regexp-parser-grammar.c"
732
733 #ifdef short
734 # undef short
735 #endif
736
737 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
738 <limits.h> and (if available) <stdint.h> are included
739 so that the code can choose integer types of a good width. */
740
741 #ifndef __PTRDIFF_MAX__
742 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
743 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
744 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
745 # define YY_STDINT_H
746 # endif
747 #endif
748
749 /* Narrow types that promote to a signed type and that can represent a
750 signed or unsigned integer of at least N bits. In tables they can
751 save space and decrease cache pressure. Promoting to a signed type
752 helps avoid bugs in integer arithmetic. */
753
754 #ifdef __INT_LEAST8_MAX__
755 typedef __INT_LEAST8_TYPE__ yytype_int8;
756 #elif defined YY_STDINT_H
757 typedef int_least8_t yytype_int8;
758 #else
759 typedef signed char yytype_int8;
760 #endif
761
762 #ifdef __INT_LEAST16_MAX__
763 typedef __INT_LEAST16_TYPE__ yytype_int16;
764 #elif defined YY_STDINT_H
765 typedef int_least16_t yytype_int16;
766 #else
767 typedef short yytype_int16;
768 #endif
769
770 /* Work around bug in HP-UX 11.23, which defines these macros
771 incorrectly for preprocessor constants. This workaround can likely
772 be removed in 2023, as HPE has promised support for HP-UX 11.23
773 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
774 <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
775 #ifdef __hpux
776 # undef UINT_LEAST8_MAX
777 # undef UINT_LEAST16_MAX
778 # define UINT_LEAST8_MAX 255
779 # define UINT_LEAST16_MAX 65535
780 #endif
781
782 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
783 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
784 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
785 && UINT_LEAST8_MAX <= INT_MAX)
786 typedef uint_least8_t yytype_uint8;
787 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
788 typedef unsigned char yytype_uint8;
789 #else
790 typedef short yytype_uint8;
791 #endif
792
793 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
794 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
795 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
796 && UINT_LEAST16_MAX <= INT_MAX)
797 typedef uint_least16_t yytype_uint16;
798 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
799 typedef unsigned short yytype_uint16;
800 #else
801 typedef int yytype_uint16;
802 #endif
803
804 #ifndef YYPTRDIFF_T
805 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
806 # define YYPTRDIFF_T __PTRDIFF_TYPE__
807 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
808 # elif defined PTRDIFF_MAX
809 # ifndef ptrdiff_t
810 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
811 # endif
812 # define YYPTRDIFF_T ptrdiff_t
813 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
814 # else
815 # define YYPTRDIFF_T long
816 # define YYPTRDIFF_MAXIMUM LONG_MAX
817 # endif
818 #endif
819
820 #ifndef YYSIZE_T
821 # ifdef __SIZE_TYPE__
822 # define YYSIZE_T __SIZE_TYPE__
823 # elif defined size_t
824 # define YYSIZE_T size_t
825 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
826 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
827 # define YYSIZE_T size_t
828 # else
829 # define YYSIZE_T unsigned
830 # endif
831 #endif
832
833 #define YYSIZE_MAXIMUM \
834 YY_CAST (YYPTRDIFF_T, \
835 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
836 ? YYPTRDIFF_MAXIMUM \
837 : YY_CAST (YYSIZE_T, -1)))
838
839 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
840
841
842 /* Stored state numbers (used for stacks). */
843 typedef yytype_int8 yy_state_t;
844
845 /* State numbers in computations. */
846 typedef int yy_state_fast_t;
847
848 #ifndef YY_
849 # if defined YYENABLE_NLS && YYENABLE_NLS
850 # if ENABLE_NLS
851 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
852 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
853 # endif
854 # endif
855 # ifndef YY_
856 # define YY_(Msgid) Msgid
857 # endif
858 #endif
859
860
861 #ifndef YY_ATTRIBUTE_PURE
862 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
863 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
864 # else
865 # define YY_ATTRIBUTE_PURE
866 # endif
867 #endif
868
869 #ifndef YY_ATTRIBUTE_UNUSED
870 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
871 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
872 # else
873 # define YY_ATTRIBUTE_UNUSED
874 # endif
875 #endif
876
877 /* Suppress unused-variable warnings by "using" E. */
878 #if ! defined lint || defined __GNUC__
879 # define YY_USE(E) ((void) (E))
880 #else
881 # define YY_USE(E) /* empty */
882 #endif
883
884 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
885 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
886 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
887 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
888 _Pragma ("GCC diagnostic push") \
889 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
890 # else
891 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
892 _Pragma ("GCC diagnostic push") \
893 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
894 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
895 # endif
896 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
897 _Pragma ("GCC diagnostic pop")
898 #else
899 # define YY_INITIAL_VALUE(Value) Value
900 #endif
901 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
902 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
903 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
904 #endif
905 #ifndef YY_INITIAL_VALUE
906 # define YY_INITIAL_VALUE(Value) /* Nothing. */
907 #endif
908
909 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
910 # define YY_IGNORE_USELESS_CAST_BEGIN \
911 _Pragma ("GCC diagnostic push") \
912 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
913 # define YY_IGNORE_USELESS_CAST_END \
914 _Pragma ("GCC diagnostic pop")
915 #endif
916 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
917 # define YY_IGNORE_USELESS_CAST_BEGIN
918 # define YY_IGNORE_USELESS_CAST_END
919 #endif
920
921
922 #define YY_ASSERT(E) ((void) (0 && (E)))
923
924 #if 1
925
926 /* The parser invokes alloca or malloc; define the necessary symbols. */
927
928 # ifdef YYSTACK_USE_ALLOCA
929 # if YYSTACK_USE_ALLOCA
930 # ifdef __GNUC__
931 # define YYSTACK_ALLOC __builtin_alloca
932 # elif defined __BUILTIN_VA_ARG_INCR
933 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
934 # elif defined _AIX
935 # define YYSTACK_ALLOC __alloca
936 # elif defined _MSC_VER
937 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
938 # define alloca _alloca
939 # else
940 # define YYSTACK_ALLOC alloca
941 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
942 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
943 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
944 # ifndef EXIT_SUCCESS
945 # define EXIT_SUCCESS 0
946 # endif
947 # endif
948 # endif
949 # endif
950 # endif
951
952 # ifdef YYSTACK_ALLOC
953 /* Pacify GCC's 'empty if-body' warning. */
954 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
955 # ifndef YYSTACK_ALLOC_MAXIMUM
956 /* The OS might guarantee only one guard page at the bottom of the stack,
957 and a page size can be as small as 4096 bytes. So we cannot safely
958 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
959 to allow for a few compiler-allocated temporary stack slots. */
960 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
961 # endif
962 # else
963 # define YYSTACK_ALLOC YYMALLOC
964 # define YYSTACK_FREE YYFREE
965 # ifndef YYSTACK_ALLOC_MAXIMUM
966 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
967 # endif
968 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
969 && ! ((defined YYMALLOC || defined malloc) \
970 && (defined YYFREE || defined free)))
971 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
972 # ifndef EXIT_SUCCESS
973 # define EXIT_SUCCESS 0
974 # endif
975 # endif
976 # ifndef YYMALLOC
977 # define YYMALLOC malloc
978 # if ! defined malloc && ! defined EXIT_SUCCESS
979 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
980 # endif
981 # endif
982 # ifndef YYFREE
983 # define YYFREE free
984 # if ! defined free && ! defined EXIT_SUCCESS
985 void free (void *); /* INFRINGES ON USER NAME SPACE */
986 # endif
987 # endif
988 # endif
989 #endif /* 1 */
990
991 #if (! defined yyoverflow \
992 && (! defined __cplusplus \
993 || (defined REGEXP_PARSER_LTYPE_IS_TRIVIAL && REGEXP_PARSER_LTYPE_IS_TRIVIAL \
994 && defined REGEXP_PARSER_STYPE_IS_TRIVIAL && REGEXP_PARSER_STYPE_IS_TRIVIAL)))
995
996 /* A type that is properly aligned for any stack member. */
997 union yyalloc
998 {
999 yy_state_t yyss_alloc;
1000 YYSTYPE yyvs_alloc;
1001 YYLTYPE yyls_alloc;
1002 };
1003
1004 /* The size of the maximum gap between one aligned stack and the next. */
1005 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1006
1007 /* The size of an array large to enough to hold all stacks, each with
1008 N elements. */
1009 # define YYSTACK_BYTES(N) \
1010 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1011 + YYSIZEOF (YYLTYPE)) \
1012 + 2 * YYSTACK_GAP_MAXIMUM)
1013
1014 # define YYCOPY_NEEDED 1
1015
1016 /* Relocate STACK from its old location to the new one. The
1017 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1018 elements in the stack, and YYPTR gives the new location of the
1019 stack. Advance YYPTR to a properly aligned location for the next
1020 stack. */
1021 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1022 do \
1023 { \
1024 YYPTRDIFF_T yynewbytes; \
1025 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1026 Stack = &yyptr->Stack_alloc; \
1027 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1028 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1029 } \
1030 while (0)
1031
1032 #endif
1033
1034 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1035 /* Copy COUNT objects from SRC to DST. The source and destination do
1036 not overlap. */
1037 # ifndef YYCOPY
1038 # if defined __GNUC__ && 1 < __GNUC__
1039 # define YYCOPY(Dst, Src, Count) \
1040 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1041 # else
1042 # define YYCOPY(Dst, Src, Count) \
1043 do \
1044 { \
1045 YYPTRDIFF_T yyi; \
1046 for (yyi = 0; yyi < (Count); yyi++) \
1047 (Dst)[yyi] = (Src)[yyi]; \
1048 } \
1049 while (0)
1050 # endif
1051 # endif
1052 #endif /* !YYCOPY_NEEDED */
1053
1054 /* YYFINAL -- State number of the termination state. */
1055 #define YYFINAL 5
1056 /* YYLAST -- Last index in YYTABLE. */
1057 #define YYLAST 51
1058
1059 /* YYNTOKENS -- Number of terminals. */
1060 #define YYNTOKENS 166
1061 /* YYNNTS -- Number of nonterminals. */
1062 #define YYNNTS 13
1063 /* YYNRULES -- Number of rules. */
1064 #define YYNRULES 21
1065 /* YYNSTATES -- Number of states. */
1066 #define YYNSTATES 42
1067
1068 /* YYMAXUTOK -- Last valid token kind. */
1069 #define YYMAXUTOK 10517
1070
1071
1072 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1073 as returned by yylex, with out-of-bounds checking. */
1074 #define YYTRANSLATE(YYX) \
1075 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1076 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1077 : YYSYMBOL_YYUNDEF)
1078
1079 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1080 as returned by yylex. */
1081 static const yytype_uint8 yytranslate[] =
1082 {
1083 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1084 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1085 22, 23, 2, 2, 2, 2, 2, 2, 2, 2,
1086 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1087 160, 161, 2, 2, 2, 2, 2, 2, 2, 2,
1088 2, 2, 2, 2, 2, 2, 2, 2, 165, 164,
1089 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1090 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1091 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1092 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1093 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1094 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1095 2, 2, 2, 162, 2, 163, 2, 2, 2, 2,
1096 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1097 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1098 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1099 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1100 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1104 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1105 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1106 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1107 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1108 2, 2, 2, 2, 2, 2, 1, 2, 2, 2,
1109 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1110 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1111 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1112 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1113 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1114 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1115 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1116 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1117 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1118 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1119 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1120 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1121 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1122 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1123 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1124 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1125 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1126 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1127 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1128 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1129 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1130 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1131 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1132 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1133 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1134 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1135 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1136 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1137 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1138 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1139 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1140 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1141 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1142 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1143 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1144 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1145 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1146 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1147 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1148 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1149 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1150 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1151 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1152 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1153 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1154 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1155 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1156 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1157 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1158 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1159 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1160 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1161 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1162 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1163 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1164 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1165 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1166 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1168 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1169 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1170 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1171 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1172 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1173 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1174 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1175 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1176 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1177 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1179 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1180 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1181 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1182 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1183 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1184 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1185 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1186 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1187 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1189 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1190 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1219 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1220 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1221 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1222 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1223 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1224 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1225 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1226 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1227 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1228 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1230 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1231 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1232 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1233 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1234 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1235 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1236 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1237 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1238 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1239 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1240 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1241 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1242 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1243 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1244 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1245 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1246 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1247 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1248 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1249 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1250 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1251 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1252 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1253 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1254 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1255 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1256 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1257 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1258 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1259 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1260 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1261 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1262 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1263 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1264 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1265 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1266 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1267 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1268 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1269 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1270 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1271 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1272 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1273 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1274 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1275 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1276 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1277 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1278 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1279 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1280 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1281 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1282 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1283 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1284 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1285 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1286 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1287 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1288 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1289 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1291 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1292 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1293 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1295 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1303 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1304 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1305 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1312 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1313 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1314 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1315 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1316 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1317 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1318 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1319 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1320 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1321 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1322 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1323 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1324 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1325 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1326 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1327 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1328 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1329 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1330 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1331 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1332 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1333 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1334 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1335 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1336 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1337 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1338 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1339 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1341 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1348 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1349 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1350 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1351 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1352 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1353 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1354 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1355 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1356 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1357 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1358 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1359 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1360 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1361 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1362 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1363 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1364 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1365 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1366 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1367 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1368 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1369 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1370 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1371 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1372 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1373 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1374 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1375 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1376 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1377 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1378 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1382 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1387 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1402 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1403 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1404 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1405 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1406 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1407 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1408 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1409 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1410 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1411 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1412 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1413 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1414 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1415 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1416 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1417 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1418 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1419 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1420 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1421 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1422 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1423 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1424 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1425 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1426 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1427 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1428 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1429 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1430 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1431 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1432 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1433 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1434 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1435 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1436 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1437 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1438 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1439 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1440 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1441 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1442 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1443 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1444 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1445 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1446 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1447 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1448 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1449 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1450 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1451 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1452 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1453 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1454 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1455 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1456 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1457 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1458 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1459 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1460 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1461 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1462 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1463 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1464 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1465 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1466 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1467 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1468 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1469 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1470 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1471 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1472 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1473 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1474 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1475 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1476 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1477 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1478 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1479 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1480 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1481 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1482 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1483 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1484 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1485 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1486 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1487 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1488 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1489 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1490 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1491 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1492 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1493 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1494 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1495 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1496 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1497 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1498 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1499 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1500 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1501 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1502 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1503 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1504 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1505 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1506 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1507 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1508 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1509 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1510 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1511 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1514 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1515 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1516 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1517 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1518 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1519 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1520 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1521 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1522 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1523 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1524 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1525 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1526 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1528 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1529 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1530 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1531 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1532 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1533 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1534 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1535 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1536 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1537 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1538 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1539 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1540 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1541 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1542 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1543 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1544 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1545 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1546 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1547 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1548 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1549 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1550 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1551 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1552 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1553 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1554 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1555 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1556 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1557 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1558 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1559 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1560 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1561 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1562 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1563 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1564 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1566 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1567 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1568 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1569 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1570 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1571 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1572 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1573 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1575 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1576 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1577 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1578 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1579 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1580 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1581 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1582 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1583 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1584 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1585 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1586 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1587 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1588 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1589 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1590 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1591 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1592 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1593 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1594 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1595 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1596 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1597 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1598 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1599 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1600 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1601 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1602 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1603 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1604 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1605 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1606 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1607 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1608 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1609 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1610 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1611 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1612 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1613 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1614 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1615 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1616 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1617 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1618 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1619 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1620 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1621 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1622 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1623 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1624 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1625 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1626 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1627 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1628 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1629 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1630 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1631 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1632 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1633 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1634 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1635 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1636 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1637 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1638 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1639 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1640 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1641 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1642 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1643 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1644 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1645 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1646 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1647 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1648 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1649 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1650 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1651 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1652 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1653 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1654 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1655 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1656 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1657 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1658 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1659 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1660 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1661 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1662 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1663 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1664 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1665 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1666 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1667 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1668 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1669 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1670 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1671 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1672 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1673 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1674 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1675 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1676 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1677 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1678 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1679 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1680 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1681 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1682 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1683 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1684 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1685 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1686 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1687 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1688 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1689 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1690 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1691 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1692 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1693 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1694 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1695 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1696 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1697 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1698 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1699 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1700 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1701 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1702 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1703 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1704 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1705 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1706 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1707 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1708 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1709 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1710 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1711 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1712 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1713 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1714 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1715 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1716 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1717 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1718 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1719 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1720 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1721 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1722 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1723 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1724 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1725 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1726 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1727 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1728 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1729 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1730 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1731 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1732 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1733 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1734 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1735 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1736 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1737 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1738 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1739 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1740 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1741 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1742 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1743 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1744 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1745 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1746 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1747 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1748 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1749 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1750 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1751 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1752 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1753 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1754 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1755 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1756 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1757 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1758 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1759 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1760 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1761 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1762 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1763 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1764 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1765 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1766 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1767 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1768 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1769 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1770 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1771 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1772 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1773 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1774 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1775 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1776 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1777 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1778 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1779 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1780 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1781 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1782 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1783 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1784 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1785 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1786 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1787 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1788 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1789 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1790 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1791 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1792 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1793 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1794 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1795 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1796 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1797 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1798 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1799 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1800 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1801 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1802 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1803 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1804 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1805 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1806 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1807 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1808 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1809 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1810 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1811 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1812 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1813 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1814 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1815 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1816 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1817 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1818 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1819 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1820 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1821 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1822 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1823 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1824 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1825 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1826 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1827 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1828 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1829 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1830 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1831 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1832 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1833 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1834 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1835 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1836 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1837 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1838 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1839 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1840 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1841 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1842 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1843 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1844 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1845 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1846 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1847 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1848 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1849 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1850 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1851 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1852 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1853 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1854 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1855 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1856 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1857 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1858 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1859 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1860 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1861 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1862 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1863 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1864 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1865 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1866 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1867 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1868 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1869 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1870 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1871 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1872 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1873 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1874 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1875 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1876 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1877 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1878 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1879 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1880 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1881 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1882 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1883 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1884 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1885 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1886 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1887 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1888 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1889 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1890 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1891 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1892 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1893 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1894 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1895 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1896 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1897 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1898 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1899 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1900 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1901 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1902 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1903 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1904 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1905 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1906 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1907 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1908 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1909 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1910 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1911 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1912 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1913 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1914 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1915 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1916 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1917 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1918 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1919 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1920 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1921 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1922 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1923 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1924 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1925 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1926 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1927 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1928 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1929 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1930 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1931 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1932 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1933 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1934 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1935 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1936 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1937 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1938 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1939 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1940 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1941 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1942 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1943 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1944 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1945 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1946 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1947 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1948 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1949 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1950 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1951 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1952 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1953 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1954 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1955 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1956 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1957 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1958 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1959 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1960 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1961 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1962 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1963 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1964 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1965 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1966 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1967 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1968 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1969 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1970 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1971 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1972 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1973 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1974 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1975 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1976 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1977 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1978 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1979 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1980 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1981 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1982 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1983 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1984 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1985 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1986 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1987 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1988 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1989 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1990 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1991 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1992 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1993 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1994 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1995 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1996 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1997 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1998 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1999 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2000 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2001 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2002 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2003 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2004 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2005 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2006 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2007 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2008 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2009 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2010 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2011 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2012 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2013 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2014 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2015 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2016 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2017 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2018 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2019 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2020 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2021 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2022 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2023 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2024 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2025 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2026 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2027 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2028 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2029 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2030 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2031 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2032 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2033 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2034 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2035 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2036 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2037 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2038 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2039 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2040 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2041 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2042 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2043 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2044 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2045 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2046 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2047 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2048 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2049 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2050 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2051 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2052 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2053 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2054 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2055 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2056 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2057 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2058 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2059 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2060 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2061 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2062 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2063 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2064 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2065 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2066 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2067 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2068 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2069 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2070 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2071 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2072 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2073 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2074 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2075 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2076 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2077 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2078 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2079 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2080 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2081 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2082 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2083 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2084 34, 35, 36, 2, 2, 2, 2, 2, 2, 2,
2085 37, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2086 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2087 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2088 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2089 38, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2090 2, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2091 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2092 58, 59, 60, 61, 62, 2, 2, 2, 2, 2,
2093 63, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2094 64, 65, 66, 2, 2, 2, 2, 2, 2, 2,
2095 67, 68, 2, 2, 2, 2, 2, 2, 2, 2,
2096 69, 70, 71, 2, 2, 2, 2, 2, 2, 2,
2097 72, 73, 74, 2, 2, 2, 2, 2, 2, 2,
2098 75, 76, 77, 2, 2, 2, 2, 2, 2, 2,
2099 78, 2, 79, 80, 81, 82, 83, 2, 2, 2,
2100 84, 85, 2, 2, 2, 2, 2, 2, 2, 2,
2101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2102 90, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2103 91, 92, 93, 94, 95, 96, 97, 2, 2, 2,
2104 98, 99, 100, 2, 2, 2, 2, 2, 2, 2,
2105 101, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2106 102, 86, 2, 2, 2, 2, 2, 2, 2, 2,
2107 103, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2108 104, 105, 106, 2, 2, 2, 2, 2, 2, 2,
2109 107, 108, 109, 2, 2, 2, 2, 2, 2, 2,
2110 110, 111, 112, 2, 2, 2, 2, 2, 2, 2,
2111 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2112 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2113 113, 114, 87, 2, 88, 89, 2, 2, 2, 2,
2114 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2115 2, 2, 2, 115, 2, 2, 2, 2, 2, 2,
2116 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2117 116, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2118 117, 118, 119, 120, 121, 122, 123, 124, 2, 2,
2119 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2120 125, 126, 127, 2, 2, 2, 2, 2, 2, 2,
2121 128, 129, 2, 2, 2, 2, 2, 2, 2, 2,
2122 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2123 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2124 130, 131, 2, 2, 2, 2, 2, 2, 2, 2,
2125 132, 133, 134, 135, 136, 137, 2, 2, 2, 2,
2126 138, 139, 140, 141, 142, 143, 2, 2, 2, 2,
2127 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2128 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2129 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2130 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2131 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2132 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2133 144, 2, 145, 146, 147, 148, 149, 150, 151, 152,
2134 153, 154, 155, 156, 2, 157, 158, 159
2135 };
2136
2137 #if REGEXP_PARSER_DEBUG
2138 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
2139 static const yytype_int16 yyrline[] =
2140 {
2141 0, 403, 403, 408, 407, 421, 422, 426, 426, 427,
2142 428, 429, 696, 697, 794, 798, 799, 831, 1097, 1098,
2143 1102, 1103
2144 };
2145 #endif
2146
2147 /** Accessing symbol of state STATE. */
2148 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2149
2150 #if 1
2151 /* The user-facing name of the symbol whose (internal) number is
2152 YYSYMBOL. No bounds checking. */
2153 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2154
2155 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2156 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2157 static const char *const yytname[] =
2158 {
2159 "\"end of file\"", "error", "\"invalid token\"", "LL_CONTEXT_ROOT",
2160 "LL_CONTEXT_DESTINATION", "LL_CONTEXT_SOURCE", "LL_CONTEXT_PARSER",
2161 "LL_CONTEXT_REWRITE", "LL_CONTEXT_FILTER", "LL_CONTEXT_LOG",
2162 "LL_CONTEXT_BLOCK_DEF", "LL_CONTEXT_BLOCK_REF",
2163 "LL_CONTEXT_BLOCK_CONTENT", "LL_CONTEXT_BLOCK_ARG", "LL_CONTEXT_PRAGMA",
2164 "LL_CONTEXT_FORMAT", "LL_CONTEXT_TEMPLATE_FUNC", "LL_CONTEXT_INNER_DEST",
2165 "LL_CONTEXT_INNER_SRC", "LL_CONTEXT_CLIENT_PROTO",
2166 "LL_CONTEXT_SERVER_PROTO", "LL_CONTEXT_OPTIONS", "LL_CONTEXT_CONFIG",
2167 "LL_CONTEXT_MAX", "KW_SOURCE", "KW_FILTER", "KW_PARSER",
2168 "KW_DESTINATION", "KW_LOG", "KW_OPTIONS", "KW_INCLUDE", "KW_BLOCK",
2169 "KW_JUNCTION", "KW_CHANNEL", "KW_IF", "KW_ELSE", "KW_ELIF",
2170 "KW_INTERNAL", "KW_SYSLOG", "KW_MARK_FREQ", "KW_STATS_FREQ",
2171 "KW_STATS_LEVEL", "KW_STATS_LIFETIME", "KW_FLUSH_LINES", "KW_SUPPRESS",
2172 "KW_FLUSH_TIMEOUT", "KW_LOG_MSG_SIZE", "KW_FILE_TEMPLATE",
2173 "KW_PROTO_TEMPLATE", "KW_MARK_MODE", "KW_ENCODING", "KW_TYPE",
2174 "KW_STATS_MAX_DYNAMIC", "KW_MIN_IW_SIZE_PER_READER", "KW_WORKERS",
2175 "KW_BATCH_LINES", "KW_BATCH_TIMEOUT", "KW_TRIM_LARGE_MESSAGES",
2176 "KW_CHAIN_HOSTNAMES", "KW_NORMALIZE_HOSTNAMES", "KW_KEEP_HOSTNAME",
2177 "KW_CHECK_HOSTNAME", "KW_BAD_HOSTNAME", "KW_KEEP_TIMESTAMP",
2178 "KW_USE_DNS", "KW_USE_FQDN", "KW_CUSTOM_DOMAIN", "KW_DNS_CACHE",
2179 "KW_DNS_CACHE_SIZE", "KW_DNS_CACHE_EXPIRE", "KW_DNS_CACHE_EXPIRE_FAILED",
2180 "KW_DNS_CACHE_HOSTS", "KW_PERSIST_ONLY", "KW_USE_RCPTID",
2181 "KW_USE_UNIQID", "KW_TZ_CONVERT", "KW_TS_FORMAT", "KW_FRAC_DIGITS",
2182 "KW_LOG_FIFO_SIZE", "KW_LOG_FETCH_LIMIT", "KW_LOG_IW_SIZE",
2183 "KW_LOG_PREFIX", "KW_PROGRAM_OVERRIDE", "KW_HOST_OVERRIDE",
2184 "KW_THROTTLE", "KW_THREADED", "KW_PASS_UNIX_CREDENTIALS",
2185 "KW_PERSIST_NAME", "KW_READ_OLD_RECORDS", "KW_USE_SYSLOGNG_PID",
2186 "KW_FLAGS", "KW_PAD_SIZE", "KW_TIME_ZONE", "KW_RECV_TIME_ZONE",
2187 "KW_SEND_TIME_ZONE", "KW_LOCAL_TIME_ZONE", "KW_FORMAT",
2188 "KW_TRUNCATE_SIZE", "KW_TIME_REOPEN", "KW_TIME_REAP", "KW_TIME_SLEEP",
2189 "KW_TMPL_ESCAPE", "KW_OPTIONAL", "KW_CREATE_DIRS", "KW_OWNER",
2190 "KW_GROUP", "KW_PERM", "KW_DIR_OWNER", "KW_DIR_GROUP", "KW_DIR_PERM",
2191 "KW_TEMPLATE", "KW_TEMPLATE_ESCAPE", "KW_TEMPLATE_FUNCTION",
2192 "KW_DEFAULT_FACILITY", "KW_DEFAULT_SEVERITY", "KW_PORT",
2193 "KW_USE_TIME_RECVD", "KW_FACILITY", "KW_SEVERITY", "KW_HOST", "KW_MATCH",
2194 "KW_MESSAGE", "KW_NETMASK", "KW_TAGS", "KW_NETMASK6", "KW_REWRITE",
2195 "KW_CONDITION", "KW_VALUE", "KW_YES", "KW_NO", "KW_IFDEF", "KW_ENDIF",
2196 "LL_DOTDOT", "LL_DOTDOTDOT", "LL_PRAGMA", "LL_EOL", "LL_ERROR",
2197 "LL_ARROW", "LL_IDENTIFIER", "LL_NUMBER", "LL_FLOAT", "LL_STRING",
2198 "LL_TOKEN", "LL_BLOCK", "KW_VALUE_PAIRS", "KW_EXCLUDE", "KW_PAIR",
2199 "KW_KEY", "KW_SCOPE", "KW_SHIFT", "KW_SHIFT_LEVELS", "KW_REKEY",
2200 "KW_ADD_PREFIX", "KW_REPLACE_PREFIX", "KW_ON_ERROR", "KW_RETRIES",
2201 "KW_FETCH_NO_DATA_DELAY", "KW_REGEXP_PARSER", "KW_PREFIX", "KW_PATTERNS",
2202 "'('", "')'", "'{'", "'}'", "';'", "':'", "$accept", "start",
2203 "parser_expr_regexp", "$@1", "parser_regexp_opts", "parser_regexp_opt",
2204 "$@2", "string", "string_list", "string_list_build", "parser_opt",
2205 "matcher_option", "matcher_flags", YY_NULLPTR
2206 };
2207
2208 static const char *
yysymbol_name(yysymbol_kind_t yysymbol)2209 yysymbol_name (yysymbol_kind_t yysymbol)
2210 {
2211 return yytname[yysymbol];
2212 }
2213 #endif
2214
2215 #define YYPACT_NINF (-153)
2216
2217 #define yypact_value_is_default(Yyn) \
2218 ((Yyn) == YYPACT_NINF)
2219
2220 #define YYTABLE_NINF (-7)
2221
2222 #define yytable_value_is_error(Yyn) \
2223 0
2224
2225 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2226 STATE-NUM. */
2227 static const yytype_int16 yypact[] =
2228 {
2229 -1, -151, 8, -150, -153, -153, -153, -110, -149, -148,
2230 -147, -152, -110, -50, -153, -134, -134, -134, -153, -153,
2231 -146, -145, -153, -153, -153, -142, -141, -134, -140, -153,
2232 -134, -134, -153, -153, -153, -153, -139, -134, -138, -153,
2233 -153, -153
2234 };
2235
2236 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2237 Performed when YYTABLE does not specify something else to do. Zero
2238 means the default is an error. */
2239 static const yytype_int8 yydefact[] =
2240 {
2241 0, 0, 0, 0, 2, 1, 3, 7, 0, 0,
2242 0, 0, 7, 0, 11, 0, 0, 16, 4, 5,
2243 0, 0, 8, 12, 13, 0, 0, 16, 0, 14,
2244 0, 21, 17, 9, 15, 10, 0, 21, 0, 18,
2245 20, 19
2246 };
2247
2248 /* YYPGOTO[NTERM-NUM]. */
2249 static const yytype_int16 yypgoto[] =
2250 {
2251 -153, -153, -153, -153, 4, -153, -153, -13, -153, -2,
2252 -153, -153, -11
2253 };
2254
2255 /* YYDEFGOTO[NTERM-NUM]. */
2256 static const yytype_int8 yydefgoto[] =
2257 {
2258 0, 2, 4, 7, 11, 12, 13, 27, 28, 29,
2259 14, 22, 38
2260 };
2261
2262 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
2263 positive, shift that token. If negative, reduce the rule whose
2264 number is the opposite. If YYTABLE_NINF, syntax error. */
2265 static const yytype_int8 yytable[] =
2266 {
2267 8, 20, 25, 26, 23, 1, 3, 24, 5, 18,
2268 6, 15, 16, 17, 30, 31, 19, 36, 37, 32,
2269 33, 35, 39, 41, 37, 34, 40, 0, 0, 0,
2270 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2271 21, 0, 0, 0, 0, 0, 0, 0, 9, 10,
2272 0, -6
2273 };
2274
2275 static const yytype_int16 yycheck[] =
2276 {
2277 110, 51, 15, 16, 138, 6, 157, 141, 0, 161,
2278 160, 160, 160, 160, 160, 160, 12, 30, 31, 161,
2279 161, 161, 161, 161, 37, 27, 37, -1, -1, -1,
2280 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
2281 90, -1, -1, -1, -1, -1, -1, -1, 158, 159,
2282 -1, 161
2283 };
2284
2285 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
2286 state STATE-NUM. */
2287 static const yytype_uint8 yystos[] =
2288 {
2289 0, 6, 167, 157, 168, 0, 160, 169, 110, 158,
2290 159, 170, 171, 172, 176, 160, 160, 160, 161, 170,
2291 51, 90, 177, 138, 141, 173, 173, 173, 174, 175,
2292 160, 160, 161, 161, 175, 161, 173, 173, 178, 161,
2293 178, 161
2294 };
2295
2296 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
2297 static const yytype_uint8 yyr1[] =
2298 {
2299 0, 166, 167, 169, 168, 170, 170, 172, 171, 171,
2300 171, 171, 173, 173, 174, 175, 175, 176, 177, 177,
2301 178, 178
2302 };
2303
2304 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
2305 static const yytype_int8 yyr2[] =
2306 {
2307 0, 2, 2, 0, 5, 2, 0, 0, 2, 4,
2308 4, 1, 1, 1, 1, 2, 0, 4, 4, 4,
2309 2, 0
2310 };
2311
2312
2313 enum { YYENOMEM = -2 };
2314
2315 #define yyerrok (yyerrstatus = 0)
2316 #define yyclearin (yychar = REGEXP_PARSER_EMPTY)
2317
2318 #define YYACCEPT goto yyacceptlab
2319 #define YYABORT goto yyabortlab
2320 #define YYERROR goto yyerrorlab
2321 #define YYNOMEM goto yyexhaustedlab
2322
2323
2324 #define YYRECOVERING() (!!yyerrstatus)
2325
2326 #define YYBACKUP(Token, Value) \
2327 do \
2328 if (yychar == REGEXP_PARSER_EMPTY) \
2329 { \
2330 yychar = (Token); \
2331 yylval = (Value); \
2332 YYPOPSTACK (yylen); \
2333 yystate = *yyssp; \
2334 goto yybackup; \
2335 } \
2336 else \
2337 { \
2338 yyerror (&yylloc, lexer, instance, arg, YY_("syntax error: cannot back up")); \
2339 YYERROR; \
2340 } \
2341 while (0)
2342
2343 /* Backward compatibility with an undocumented macro.
2344 Use REGEXP_PARSER_error or REGEXP_PARSER_UNDEF. */
2345 #define YYERRCODE REGEXP_PARSER_UNDEF
2346
2347 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2348 If N is 0, then set CURRENT to the empty location which ends
2349 the previous symbol: RHS[0] (always defined). */
2350
2351 #ifndef YYLLOC_DEFAULT
2352 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2353 do \
2354 if (N) \
2355 { \
2356 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2357 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2358 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2359 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2360 } \
2361 else \
2362 { \
2363 (Current).first_line = (Current).last_line = \
2364 YYRHSLOC (Rhs, 0).last_line; \
2365 (Current).first_column = (Current).last_column = \
2366 YYRHSLOC (Rhs, 0).last_column; \
2367 } \
2368 while (0)
2369 #endif
2370
2371 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2372
2373
2374 /* Enable debugging if requested. */
2375 #if REGEXP_PARSER_DEBUG
2376
2377 # ifndef YYFPRINTF
2378 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2379 # define YYFPRINTF fprintf
2380 # endif
2381
2382 # define YYDPRINTF(Args) \
2383 do { \
2384 if (yydebug) \
2385 YYFPRINTF Args; \
2386 } while (0)
2387
2388
2389 /* YYLOCATION_PRINT -- Print the location on the stream.
2390 This macro was not mandated originally: define only if we know
2391 we won't break user code: when these are the locations we know. */
2392
2393 # ifndef YYLOCATION_PRINT
2394
2395 # if defined YY_LOCATION_PRINT
2396
2397 /* Temporary convenience wrapper in case some people defined the
2398 undocumented and private YY_LOCATION_PRINT macros. */
2399 # define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc))
2400
2401 # elif defined REGEXP_PARSER_LTYPE_IS_TRIVIAL && REGEXP_PARSER_LTYPE_IS_TRIVIAL
2402
2403 /* Print *YYLOCP on YYO. Private, do not rely on its existence. */
2404
2405 YY_ATTRIBUTE_UNUSED
2406 static int
yy_location_print_(FILE * yyo,YYLTYPE const * const yylocp)2407 yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2408 {
2409 int res = 0;
2410 int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2411 if (0 <= yylocp->first_line)
2412 {
2413 res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2414 if (0 <= yylocp->first_column)
2415 res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2416 }
2417 if (0 <= yylocp->last_line)
2418 {
2419 if (yylocp->first_line < yylocp->last_line)
2420 {
2421 res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2422 if (0 <= end_col)
2423 res += YYFPRINTF (yyo, ".%d", end_col);
2424 }
2425 else if (0 <= end_col && yylocp->first_column < end_col)
2426 res += YYFPRINTF (yyo, "-%d", end_col);
2427 }
2428 return res;
2429 }
2430
2431 # define YYLOCATION_PRINT yy_location_print_
2432
2433 /* Temporary convenience wrapper in case some people defined the
2434 undocumented and private YY_LOCATION_PRINT macros. */
2435 # define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc))
2436
2437 # else
2438
2439 # define YYLOCATION_PRINT(File, Loc) ((void) 0)
2440 /* Temporary convenience wrapper in case some people defined the
2441 undocumented and private YY_LOCATION_PRINT macros. */
2442 # define YY_LOCATION_PRINT YYLOCATION_PRINT
2443
2444 # endif
2445 # endif /* !defined YYLOCATION_PRINT */
2446
2447
2448 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
2449 do { \
2450 if (yydebug) \
2451 { \
2452 YYFPRINTF (stderr, "%s ", Title); \
2453 yy_symbol_print (stderr, \
2454 Kind, Value, Location, lexer, instance, arg); \
2455 YYFPRINTF (stderr, "\n"); \
2456 } \
2457 } while (0)
2458
2459
2460 /*-----------------------------------.
2461 | Print this symbol's value on YYO. |
2462 `-----------------------------------*/
2463
2464 static void
yy_symbol_value_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2465 yy_symbol_value_print (FILE *yyo,
2466 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2467 {
2468 FILE *yyoutput = yyo;
2469 YY_USE (yyoutput);
2470 YY_USE (yylocationp);
2471 YY_USE (lexer);
2472 YY_USE (instance);
2473 YY_USE (arg);
2474 if (!yyvaluep)
2475 return;
2476 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2477 YY_USE (yykind);
2478 YY_IGNORE_MAYBE_UNINITIALIZED_END
2479 }
2480
2481
2482 /*---------------------------.
2483 | Print this symbol on YYO. |
2484 `---------------------------*/
2485
2486 static void
yy_symbol_print(FILE * yyo,yysymbol_kind_t yykind,YYSTYPE const * const yyvaluep,YYLTYPE const * const yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2487 yy_symbol_print (FILE *yyo,
2488 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2489 {
2490 YYFPRINTF (yyo, "%s %s (",
2491 yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2492
2493 YYLOCATION_PRINT (yyo, yylocationp);
2494 YYFPRINTF (yyo, ": ");
2495 yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, lexer, instance, arg);
2496 YYFPRINTF (yyo, ")");
2497 }
2498
2499 /*------------------------------------------------------------------.
2500 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2501 | TOP (included). |
2502 `------------------------------------------------------------------*/
2503
2504 static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2505 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2506 {
2507 YYFPRINTF (stderr, "Stack now");
2508 for (; yybottom <= yytop; yybottom++)
2509 {
2510 int yybot = *yybottom;
2511 YYFPRINTF (stderr, " %d", yybot);
2512 }
2513 YYFPRINTF (stderr, "\n");
2514 }
2515
2516 # define YY_STACK_PRINT(Bottom, Top) \
2517 do { \
2518 if (yydebug) \
2519 yy_stack_print ((Bottom), (Top)); \
2520 } while (0)
2521
2522
2523 /*------------------------------------------------.
2524 | Report that the YYRULE is going to be reduced. |
2525 `------------------------------------------------*/
2526
2527 static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,CfgLexer * lexer,LogParser ** instance,gpointer arg)2528 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
2529 int yyrule, CfgLexer *lexer, LogParser **instance, gpointer arg)
2530 {
2531 int yylno = yyrline[yyrule];
2532 int yynrhs = yyr2[yyrule];
2533 int yyi;
2534 YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2535 yyrule - 1, yylno);
2536 /* The symbols being reduced. */
2537 for (yyi = 0; yyi < yynrhs; yyi++)
2538 {
2539 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2540 yy_symbol_print (stderr,
2541 YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2542 &yyvsp[(yyi + 1) - (yynrhs)],
2543 &(yylsp[(yyi + 1) - (yynrhs)]), lexer, instance, arg);
2544 YYFPRINTF (stderr, "\n");
2545 }
2546 }
2547
2548 # define YY_REDUCE_PRINT(Rule) \
2549 do { \
2550 if (yydebug) \
2551 yy_reduce_print (yyssp, yyvsp, yylsp, Rule, lexer, instance, arg); \
2552 } while (0)
2553
2554 /* Nonzero means print parse trace. It is left uninitialized so that
2555 multiple parsers can coexist. */
2556 int yydebug;
2557 #else /* !REGEXP_PARSER_DEBUG */
2558 # define YYDPRINTF(Args) ((void) 0)
2559 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2560 # define YY_STACK_PRINT(Bottom, Top)
2561 # define YY_REDUCE_PRINT(Rule)
2562 #endif /* !REGEXP_PARSER_DEBUG */
2563
2564
2565 /* YYINITDEPTH -- initial size of the parser's stacks. */
2566 #ifndef YYINITDEPTH
2567 # define YYINITDEPTH 200
2568 #endif
2569
2570 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2571 if the built-in stack extension method is used).
2572
2573 Do not make this value too large; the results are undefined if
2574 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2575 evaluated with infinite-precision integer arithmetic. */
2576
2577 #ifndef YYMAXDEPTH
2578 # define YYMAXDEPTH 10000
2579 #endif
2580
2581
2582 /* Context of a parse error. */
2583 typedef struct
2584 {
2585 yy_state_t *yyssp;
2586 yysymbol_kind_t yytoken;
2587 YYLTYPE *yylloc;
2588 } yypcontext_t;
2589
2590 /* Put in YYARG at most YYARGN of the expected tokens given the
2591 current YYCTX, and return the number of tokens stored in YYARG. If
2592 YYARG is null, return the number of expected tokens (guaranteed to
2593 be less than YYNTOKENS). Return YYENOMEM on memory exhaustion.
2594 Return 0 if there are more than YYARGN expected tokens, yet fill
2595 YYARG up to YYARGN. */
2596 static int
yypcontext_expected_tokens(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2597 yypcontext_expected_tokens (const yypcontext_t *yyctx,
2598 yysymbol_kind_t yyarg[], int yyargn)
2599 {
2600 /* Actual size of YYARG. */
2601 int yycount = 0;
2602 int yyn = yypact[+*yyctx->yyssp];
2603 if (!yypact_value_is_default (yyn))
2604 {
2605 /* Start YYX at -YYN if negative to avoid negative indexes in
2606 YYCHECK. In other words, skip the first -YYN actions for
2607 this state because they are default actions. */
2608 int yyxbegin = yyn < 0 ? -yyn : 0;
2609 /* Stay within bounds of both yycheck and yytname. */
2610 int yychecklim = YYLAST - yyn + 1;
2611 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2612 int yyx;
2613 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2614 if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
2615 && !yytable_value_is_error (yytable[yyx + yyn]))
2616 {
2617 if (!yyarg)
2618 ++yycount;
2619 else if (yycount == yyargn)
2620 return 0;
2621 else
2622 yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
2623 }
2624 }
2625 if (yyarg && yycount == 0 && 0 < yyargn)
2626 yyarg[0] = YYSYMBOL_YYEMPTY;
2627 return yycount;
2628 }
2629
2630
2631
2632
2633 #ifndef yystrlen
2634 # if defined __GLIBC__ && defined _STRING_H
2635 # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2636 # else
2637 /* Return the length of YYSTR. */
2638 static YYPTRDIFF_T
yystrlen(const char * yystr)2639 yystrlen (const char *yystr)
2640 {
2641 YYPTRDIFF_T yylen;
2642 for (yylen = 0; yystr[yylen]; yylen++)
2643 continue;
2644 return yylen;
2645 }
2646 # endif
2647 #endif
2648
2649 #ifndef yystpcpy
2650 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2651 # define yystpcpy stpcpy
2652 # else
2653 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2654 YYDEST. */
2655 static char *
yystpcpy(char * yydest,const char * yysrc)2656 yystpcpy (char *yydest, const char *yysrc)
2657 {
2658 char *yyd = yydest;
2659 const char *yys = yysrc;
2660
2661 while ((*yyd++ = *yys++) != '\0')
2662 continue;
2663
2664 return yyd - 1;
2665 }
2666 # endif
2667 #endif
2668
2669 #ifndef yytnamerr
2670 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2671 quotes and backslashes, so that it's suitable for yyerror. The
2672 heuristic is that double-quoting is unnecessary unless the string
2673 contains an apostrophe, a comma, or backslash (other than
2674 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2675 null, do not copy; instead, return the length of what the result
2676 would have been. */
2677 static YYPTRDIFF_T
yytnamerr(char * yyres,const char * yystr)2678 yytnamerr (char *yyres, const char *yystr)
2679 {
2680 if (*yystr == '"')
2681 {
2682 YYPTRDIFF_T yyn = 0;
2683 char const *yyp = yystr;
2684 for (;;)
2685 switch (*++yyp)
2686 {
2687 case '\'':
2688 case ',':
2689 goto do_not_strip_quotes;
2690
2691 case '\\':
2692 if (*++yyp != '\\')
2693 goto do_not_strip_quotes;
2694 else
2695 goto append;
2696
2697 append:
2698 default:
2699 if (yyres)
2700 yyres[yyn] = *yyp;
2701 yyn++;
2702 break;
2703
2704 case '"':
2705 if (yyres)
2706 yyres[yyn] = '\0';
2707 return yyn;
2708 }
2709 do_not_strip_quotes: ;
2710 }
2711
2712 if (yyres)
2713 return yystpcpy (yyres, yystr) - yyres;
2714 else
2715 return yystrlen (yystr);
2716 }
2717 #endif
2718
2719
2720 static int
yy_syntax_error_arguments(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2721 yy_syntax_error_arguments (const yypcontext_t *yyctx,
2722 yysymbol_kind_t yyarg[], int yyargn)
2723 {
2724 /* Actual size of YYARG. */
2725 int yycount = 0;
2726 /* There are many possibilities here to consider:
2727 - If this state is a consistent state with a default action, then
2728 the only way this function was invoked is if the default action
2729 is an error action. In that case, don't check for expected
2730 tokens because there are none.
2731 - The only way there can be no lookahead present (in yychar) is if
2732 this state is a consistent state with a default action. Thus,
2733 detecting the absence of a lookahead is sufficient to determine
2734 that there is no unexpected or expected token to report. In that
2735 case, just report a simple "syntax error".
2736 - Don't assume there isn't a lookahead just because this state is a
2737 consistent state with a default action. There might have been a
2738 previous inconsistent state, consistent state with a non-default
2739 action, or user semantic action that manipulated yychar.
2740 - Of course, the expected token list depends on states to have
2741 correct lookahead information, and it depends on the parser not
2742 to perform extra reductions after fetching a lookahead from the
2743 scanner and before detecting a syntax error. Thus, state merging
2744 (from LALR or IELR) and default reductions corrupt the expected
2745 token list. However, the list is correct for canonical LR with
2746 one exception: it will still contain any token that will not be
2747 accepted due to an error action in a later state.
2748 */
2749 if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
2750 {
2751 int yyn;
2752 if (yyarg)
2753 yyarg[yycount] = yyctx->yytoken;
2754 ++yycount;
2755 yyn = yypcontext_expected_tokens (yyctx,
2756 yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2757 if (yyn == YYENOMEM)
2758 return YYENOMEM;
2759 else
2760 yycount += yyn;
2761 }
2762 return yycount;
2763 }
2764
2765 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2766 about the unexpected token YYTOKEN for the state stack whose top is
2767 YYSSP.
2768
2769 Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is
2770 not large enough to hold the message. In that case, also set
2771 *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the
2772 required number of bytes is too large to store. */
2773 static int
yysyntax_error(YYPTRDIFF_T * yymsg_alloc,char ** yymsg,const yypcontext_t * yyctx)2774 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2775 const yypcontext_t *yyctx)
2776 {
2777 enum { YYARGS_MAX = 5 };
2778 /* Internationalized format string. */
2779 const char *yyformat = YY_NULLPTR;
2780 /* Arguments of yyformat: reported tokens (one for the "unexpected",
2781 one per "expected"). */
2782 yysymbol_kind_t yyarg[YYARGS_MAX];
2783 /* Cumulated lengths of YYARG. */
2784 YYPTRDIFF_T yysize = 0;
2785
2786 /* Actual size of YYARG. */
2787 int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
2788 if (yycount == YYENOMEM)
2789 return YYENOMEM;
2790
2791 switch (yycount)
2792 {
2793 #define YYCASE_(N, S) \
2794 case N: \
2795 yyformat = S; \
2796 break
2797 default: /* Avoid compiler warnings. */
2798 YYCASE_(0, YY_("syntax error"));
2799 YYCASE_(1, YY_("syntax error, unexpected %s"));
2800 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2801 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2802 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2803 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2804 #undef YYCASE_
2805 }
2806
2807 /* Compute error message size. Don't count the "%s"s, but reserve
2808 room for the terminator. */
2809 yysize = yystrlen (yyformat) - 2 * yycount + 1;
2810 {
2811 int yyi;
2812 for (yyi = 0; yyi < yycount; ++yyi)
2813 {
2814 YYPTRDIFF_T yysize1
2815 = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
2816 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2817 yysize = yysize1;
2818 else
2819 return YYENOMEM;
2820 }
2821 }
2822
2823 if (*yymsg_alloc < yysize)
2824 {
2825 *yymsg_alloc = 2 * yysize;
2826 if (! (yysize <= *yymsg_alloc
2827 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2828 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2829 return -1;
2830 }
2831
2832 /* Avoid sprintf, as that infringes on the user's name space.
2833 Don't have undefined behavior even if the translation
2834 produced a string with the wrong number of "%s"s. */
2835 {
2836 char *yyp = *yymsg;
2837 int yyi = 0;
2838 while ((*yyp = *yyformat) != '\0')
2839 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2840 {
2841 yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
2842 yyformat += 2;
2843 }
2844 else
2845 {
2846 ++yyp;
2847 ++yyformat;
2848 }
2849 }
2850 return 0;
2851 }
2852
2853
2854 /*-----------------------------------------------.
2855 | Release the memory associated to this symbol. |
2856 `-----------------------------------------------*/
2857
2858 static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2859 yydestruct (const char *yymsg,
2860 yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2861 {
2862 YY_USE (yyvaluep);
2863 YY_USE (yylocationp);
2864 YY_USE (lexer);
2865 YY_USE (instance);
2866 YY_USE (arg);
2867 if (!yymsg)
2868 yymsg = "Deleting";
2869 YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2870
2871 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2872 switch (yykind)
2873 {
2874 case YYSYMBOL_LL_IDENTIFIER: /* LL_IDENTIFIER */
2875 #line 313 "modules/regexp-parser/regexp-parser-grammar.y"
2876 { free(((*yyvaluep).cptr)); }
2877 #line 2878 "modules/regexp-parser/regexp-parser-grammar.c"
2878 break;
2879
2880 case YYSYMBOL_LL_STRING: /* LL_STRING */
2881 #line 313 "modules/regexp-parser/regexp-parser-grammar.y"
2882 { free(((*yyvaluep).cptr)); }
2883 #line 2884 "modules/regexp-parser/regexp-parser-grammar.c"
2884 break;
2885
2886 case YYSYMBOL_LL_BLOCK: /* LL_BLOCK */
2887 #line 313 "modules/regexp-parser/regexp-parser-grammar.y"
2888 { free(((*yyvaluep).cptr)); }
2889 #line 2890 "modules/regexp-parser/regexp-parser-grammar.c"
2890 break;
2891
2892 case YYSYMBOL_string: /* string */
2893 #line 313 "modules/regexp-parser/regexp-parser-grammar.y"
2894 { free(((*yyvaluep).cptr)); }
2895 #line 2896 "modules/regexp-parser/regexp-parser-grammar.c"
2896 break;
2897
2898 default:
2899 break;
2900 }
2901 YY_IGNORE_MAYBE_UNINITIALIZED_END
2902 }
2903
2904
2905
2906
2907
2908
2909 /*----------.
2910 | yyparse. |
2911 `----------*/
2912
2913 int
yyparse(CfgLexer * lexer,LogParser ** instance,gpointer arg)2914 yyparse (CfgLexer *lexer, LogParser **instance, gpointer arg)
2915 {
2916 /* Lookahead token kind. */
2917 int yychar;
2918
2919
2920 /* The semantic value of the lookahead symbol. */
2921 /* Default value used for initialization, for pacifying older GCCs
2922 or non-GCC compilers. */
2923 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2924 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2925
2926 /* Location data for the lookahead symbol. */
2927 static YYLTYPE yyloc_default
2928 # if defined REGEXP_PARSER_LTYPE_IS_TRIVIAL && REGEXP_PARSER_LTYPE_IS_TRIVIAL
2929 = { 1, 1, 1, 1 }
2930 # endif
2931 ;
2932 YYLTYPE yylloc = yyloc_default;
2933
2934 /* Number of syntax errors so far. */
2935 int yynerrs = 0;
2936
2937 yy_state_fast_t yystate = 0;
2938 /* Number of tokens to shift before error messages enabled. */
2939 int yyerrstatus = 0;
2940
2941 /* Refer to the stacks through separate pointers, to allow yyoverflow
2942 to reallocate them elsewhere. */
2943
2944 /* Their size. */
2945 YYPTRDIFF_T yystacksize = YYINITDEPTH;
2946
2947 /* The state stack: array, bottom, top. */
2948 yy_state_t yyssa[YYINITDEPTH];
2949 yy_state_t *yyss = yyssa;
2950 yy_state_t *yyssp = yyss;
2951
2952 /* The semantic value stack: array, bottom, top. */
2953 YYSTYPE yyvsa[YYINITDEPTH];
2954 YYSTYPE *yyvs = yyvsa;
2955 YYSTYPE *yyvsp = yyvs;
2956
2957 /* The location stack: array, bottom, top. */
2958 YYLTYPE yylsa[YYINITDEPTH];
2959 YYLTYPE *yyls = yylsa;
2960 YYLTYPE *yylsp = yyls;
2961
2962 int yyn;
2963 /* The return value of yyparse. */
2964 int yyresult;
2965 /* Lookahead symbol kind. */
2966 yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
2967 /* The variables used to return semantic value and location from the
2968 action routines. */
2969 YYSTYPE yyval;
2970 YYLTYPE yyloc;
2971
2972 /* The locations where the error started and ended. */
2973 YYLTYPE yyerror_range[3];
2974
2975 /* Buffer for error messages, and its allocated size. */
2976 char yymsgbuf[128];
2977 char *yymsg = yymsgbuf;
2978 YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2979
2980 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2981
2982 /* The number of symbols on the RHS of the reduced rule.
2983 Keep to zero when no symbol should be popped. */
2984 int yylen = 0;
2985
2986 YYDPRINTF ((stderr, "Starting parse\n"));
2987
2988 yychar = REGEXP_PARSER_EMPTY; /* Cause a token to be read. */
2989
2990 yylsp[0] = yylloc;
2991 goto yysetstate;
2992
2993
2994 /*------------------------------------------------------------.
2995 | yynewstate -- push a new state, which is found in yystate. |
2996 `------------------------------------------------------------*/
2997 yynewstate:
2998 /* In all cases, when you get here, the value and location stacks
2999 have just been pushed. So pushing a state here evens the stacks. */
3000 yyssp++;
3001
3002
3003 /*--------------------------------------------------------------------.
3004 | yysetstate -- set current state (the top of the stack) to yystate. |
3005 `--------------------------------------------------------------------*/
3006 yysetstate:
3007 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3008 YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
3009 YY_IGNORE_USELESS_CAST_BEGIN
3010 *yyssp = YY_CAST (yy_state_t, yystate);
3011 YY_IGNORE_USELESS_CAST_END
3012 YY_STACK_PRINT (yyss, yyssp);
3013
3014 if (yyss + yystacksize - 1 <= yyssp)
3015 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3016 YYNOMEM;
3017 #else
3018 {
3019 /* Get the current used size of the three stacks, in elements. */
3020 YYPTRDIFF_T yysize = yyssp - yyss + 1;
3021
3022 # if defined yyoverflow
3023 {
3024 /* Give user a chance to reallocate the stack. Use copies of
3025 these so that the &'s don't force the real ones into
3026 memory. */
3027 yy_state_t *yyss1 = yyss;
3028 YYSTYPE *yyvs1 = yyvs;
3029 YYLTYPE *yyls1 = yyls;
3030
3031 /* Each stack pointer address is followed by the size of the
3032 data in use in that stack, in bytes. This used to be a
3033 conditional around just the two extra args, but that might
3034 be undefined if yyoverflow is a macro. */
3035 yyoverflow (YY_("memory exhausted"),
3036 &yyss1, yysize * YYSIZEOF (*yyssp),
3037 &yyvs1, yysize * YYSIZEOF (*yyvsp),
3038 &yyls1, yysize * YYSIZEOF (*yylsp),
3039 &yystacksize);
3040 yyss = yyss1;
3041 yyvs = yyvs1;
3042 yyls = yyls1;
3043 }
3044 # else /* defined YYSTACK_RELOCATE */
3045 /* Extend the stack our own way. */
3046 if (YYMAXDEPTH <= yystacksize)
3047 YYNOMEM;
3048 yystacksize *= 2;
3049 if (YYMAXDEPTH < yystacksize)
3050 yystacksize = YYMAXDEPTH;
3051
3052 {
3053 yy_state_t *yyss1 = yyss;
3054 union yyalloc *yyptr =
3055 YY_CAST (union yyalloc *,
3056 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3057 if (! yyptr)
3058 YYNOMEM;
3059 YYSTACK_RELOCATE (yyss_alloc, yyss);
3060 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3061 YYSTACK_RELOCATE (yyls_alloc, yyls);
3062 # undef YYSTACK_RELOCATE
3063 if (yyss1 != yyssa)
3064 YYSTACK_FREE (yyss1);
3065 }
3066 # endif
3067
3068 yyssp = yyss + yysize - 1;
3069 yyvsp = yyvs + yysize - 1;
3070 yylsp = yyls + yysize - 1;
3071
3072 YY_IGNORE_USELESS_CAST_BEGIN
3073 YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3074 YY_CAST (long, yystacksize)));
3075 YY_IGNORE_USELESS_CAST_END
3076
3077 if (yyss + yystacksize - 1 <= yyssp)
3078 YYABORT;
3079 }
3080 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3081
3082
3083 if (yystate == YYFINAL)
3084 YYACCEPT;
3085
3086 goto yybackup;
3087
3088
3089 /*-----------.
3090 | yybackup. |
3091 `-----------*/
3092 yybackup:
3093 /* Do appropriate processing given the current state. Read a
3094 lookahead token if we need one and don't already have one. */
3095
3096 /* First try to decide what to do without reference to lookahead token. */
3097 yyn = yypact[yystate];
3098 if (yypact_value_is_default (yyn))
3099 goto yydefault;
3100
3101 /* Not known => get a lookahead token if don't already have one. */
3102
3103 /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
3104 if (yychar == REGEXP_PARSER_EMPTY)
3105 {
3106 YYDPRINTF ((stderr, "Reading a token\n"));
3107 yychar = yylex (&yylval, &yylloc, lexer);
3108 }
3109
3110 if (yychar <= REGEXP_PARSER_EOF)
3111 {
3112 yychar = REGEXP_PARSER_EOF;
3113 yytoken = YYSYMBOL_YYEOF;
3114 YYDPRINTF ((stderr, "Now at end of input.\n"));
3115 }
3116 else if (yychar == REGEXP_PARSER_error)
3117 {
3118 /* The scanner already issued an error message, process directly
3119 to error recovery. But do not keep the error token as
3120 lookahead, it is too special and may lead us to an endless
3121 loop in error recovery. */
3122 yychar = REGEXP_PARSER_UNDEF;
3123 yytoken = YYSYMBOL_YYerror;
3124 yyerror_range[1] = yylloc;
3125 goto yyerrlab1;
3126 }
3127 else
3128 {
3129 yytoken = YYTRANSLATE (yychar);
3130 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3131 }
3132
3133 /* If the proper action on seeing token YYTOKEN is to reduce or to
3134 detect an error, take that action. */
3135 yyn += yytoken;
3136 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3137 goto yydefault;
3138 yyn = yytable[yyn];
3139 if (yyn <= 0)
3140 {
3141 if (yytable_value_is_error (yyn))
3142 goto yyerrlab;
3143 yyn = -yyn;
3144 goto yyreduce;
3145 }
3146
3147 /* Count tokens shifted since error; after three, turn off error
3148 status. */
3149 if (yyerrstatus)
3150 yyerrstatus--;
3151
3152 /* Shift the lookahead token. */
3153 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3154 yystate = yyn;
3155 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3156 *++yyvsp = yylval;
3157 YY_IGNORE_MAYBE_UNINITIALIZED_END
3158 *++yylsp = yylloc;
3159
3160 /* Discard the shifted token. */
3161 yychar = REGEXP_PARSER_EMPTY;
3162 goto yynewstate;
3163
3164
3165 /*-----------------------------------------------------------.
3166 | yydefault -- do the default action for the current state. |
3167 `-----------------------------------------------------------*/
3168 yydefault:
3169 yyn = yydefact[yystate];
3170 if (yyn == 0)
3171 goto yyerrlab;
3172 goto yyreduce;
3173
3174
3175 /*-----------------------------.
3176 | yyreduce -- do a reduction. |
3177 `-----------------------------*/
3178 yyreduce:
3179 /* yyn is the number of a rule to reduce with. */
3180 yylen = yyr2[yyn];
3181
3182 /* If YYLEN is nonzero, implement the default value of the action:
3183 '$$ = $1'.
3184
3185 Otherwise, the following line sets YYVAL to garbage.
3186 This behavior is undocumented and Bison
3187 users should not rely upon it. Assigning to YYVAL
3188 unconditionally makes the parser a bit smaller, and it avoids a
3189 GCC warning that YYVAL may be used uninitialized. */
3190 yyval = yyvsp[1-yylen];
3191
3192 /* Default location. */
3193 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3194 yyerror_range[1] = yyloc;
3195 YY_REDUCE_PRINT (yyn);
3196 switch (yyn)
3197 {
3198 case 2: /* start: LL_CONTEXT_PARSER parser_expr_regexp */
3199 #line 403 "modules/regexp-parser/regexp-parser-grammar.y"
3200 { YYACCEPT; }
3201 #line 3202 "modules/regexp-parser/regexp-parser-grammar.c"
3202 break;
3203
3204 case 3: /* $@1: %empty */
3205 #line 408 "modules/regexp-parser/regexp-parser-grammar.y"
3206 {
3207 last_parser = *instance = (LogParser *) regexp_parser_new(configuration);
3208 }
3209 #line 3210 "modules/regexp-parser/regexp-parser-grammar.c"
3210 break;
3211
3212 case 4: /* parser_expr_regexp: KW_REGEXP_PARSER '(' $@1 parser_regexp_opts ')' */
3213 #line 412 "modules/regexp-parser/regexp-parser-grammar.y"
3214 {
3215 GError *error = NULL;
3216
3217 CHECK_ERROR_GERROR(regexp_parser_compile(last_parser, &error), (yyloc), error, "compiling the regexp failed");
3218 (yyval.ptr) = last_parser;
3219 }
3220 #line 3221 "modules/regexp-parser/regexp-parser-grammar.c"
3221 break;
3222
3223 case 7: /* $@2: %empty */
3224 #line 426 "modules/regexp-parser/regexp-parser-grammar.y"
3225 { last_matcher_options = regexp_parser_get_matcher_options(last_parser); }
3226 #line 3227 "modules/regexp-parser/regexp-parser-grammar.c"
3227 break;
3228
3229 case 9: /* parser_regexp_opt: KW_PREFIX '(' string ')' */
3230 #line 427 "modules/regexp-parser/regexp-parser-grammar.y"
3231 { regexp_parser_set_prefix(last_parser, (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3232 #line 3233 "modules/regexp-parser/regexp-parser-grammar.c"
3233 break;
3234
3235 case 10: /* parser_regexp_opt: KW_PATTERNS '(' string_list ')' */
3236 #line 428 "modules/regexp-parser/regexp-parser-grammar.y"
3237 { regexp_parser_set_patterns(last_parser, (yyvsp[-1].ptr)); }
3238 #line 3239 "modules/regexp-parser/regexp-parser-grammar.c"
3239 break;
3240
3241 case 14: /* string_list: string_list_build */
3242 #line 794 "modules/regexp-parser/regexp-parser-grammar.y"
3243 { (yyval.ptr) = (yyvsp[0].ptr); }
3244 #line 3245 "modules/regexp-parser/regexp-parser-grammar.c"
3245 break;
3246
3247 case 15: /* string_list_build: string string_list_build */
3248 #line 798 "modules/regexp-parser/regexp-parser-grammar.y"
3249 { (yyval.ptr) = g_list_prepend((yyvsp[0].ptr), g_strdup((yyvsp[-1].cptr))); free((yyvsp[-1].cptr)); }
3250 #line 3251 "modules/regexp-parser/regexp-parser-grammar.c"
3251 break;
3252
3253 case 16: /* string_list_build: %empty */
3254 #line 799 "modules/regexp-parser/regexp-parser-grammar.y"
3255 { (yyval.ptr) = NULL; }
3256 #line 3257 "modules/regexp-parser/regexp-parser-grammar.c"
3257 break;
3258
3259 case 17: /* parser_opt: KW_TEMPLATE '(' string ')' */
3260 #line 831 "modules/regexp-parser/regexp-parser-grammar.y"
3261 {
3262 LogTemplate *template;
3263 GError *error = NULL;
3264
3265 template = cfg_tree_check_inline_template(&configuration->tree, (yyvsp[-1].cptr), &error);
3266 CHECK_ERROR_GERROR(template != NULL, (yylsp[-1]), error, "Error compiling template");
3267 log_parser_set_template(last_parser, template);
3268 free((yyvsp[-1].cptr));
3269 }
3270 #line 3271 "modules/regexp-parser/regexp-parser-grammar.c"
3271 break;
3272
3273 case 18: /* matcher_option: KW_TYPE '(' string ')' */
3274 #line 1097 "modules/regexp-parser/regexp-parser-grammar.y"
3275 { CHECK_ERROR(log_matcher_options_set_type(last_matcher_options, (yyvsp[-1].cptr)), (yylsp[-1]), "unknown matcher type \"%s\"", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3276 #line 3277 "modules/regexp-parser/regexp-parser-grammar.c"
3277 break;
3278
3279 case 20: /* matcher_flags: string matcher_flags */
3280 #line 1102 "modules/regexp-parser/regexp-parser-grammar.y"
3281 { CHECK_ERROR(log_matcher_options_process_flag(last_matcher_options, (yyvsp[-1].cptr)), (yylsp[-1]), "unknown matcher flag \"%s\"", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
3282 #line 3283 "modules/regexp-parser/regexp-parser-grammar.c"
3283 break;
3284
3285
3286 #line 3287 "modules/regexp-parser/regexp-parser-grammar.c"
3287
3288 default: break;
3289 }
3290 /* User semantic actions sometimes alter yychar, and that requires
3291 that yytoken be updated with the new translation. We take the
3292 approach of translating immediately before every use of yytoken.
3293 One alternative is translating here after every semantic action,
3294 but that translation would be missed if the semantic action invokes
3295 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3296 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
3297 incorrect destructor might then be invoked immediately. In the
3298 case of YYERROR or YYBACKUP, subsequent parser actions might lead
3299 to an incorrect destructor call or verbose syntax error message
3300 before the lookahead is translated. */
3301 YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
3302
3303 YYPOPSTACK (yylen);
3304 yylen = 0;
3305
3306 *++yyvsp = yyval;
3307 *++yylsp = yyloc;
3308
3309 /* Now 'shift' the result of the reduction. Determine what state
3310 that goes to, based on the state we popped back to and the rule
3311 number reduced by. */
3312 {
3313 const int yylhs = yyr1[yyn] - YYNTOKENS;
3314 const int yyi = yypgoto[yylhs] + *yyssp;
3315 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3316 ? yytable[yyi]
3317 : yydefgoto[yylhs]);
3318 }
3319
3320 goto yynewstate;
3321
3322
3323 /*--------------------------------------.
3324 | yyerrlab -- here on detecting error. |
3325 `--------------------------------------*/
3326 yyerrlab:
3327 /* Make sure we have latest lookahead translation. See comments at
3328 user semantic actions for why this is necessary. */
3329 yytoken = yychar == REGEXP_PARSER_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3330 /* If not already recovering from an error, report this error. */
3331 if (!yyerrstatus)
3332 {
3333 ++yynerrs;
3334 {
3335 yypcontext_t yyctx
3336 = {yyssp, yytoken, &yylloc};
3337 char const *yymsgp = YY_("syntax error");
3338 int yysyntax_error_status;
3339 yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3340 if (yysyntax_error_status == 0)
3341 yymsgp = yymsg;
3342 else if (yysyntax_error_status == -1)
3343 {
3344 if (yymsg != yymsgbuf)
3345 YYSTACK_FREE (yymsg);
3346 yymsg = YY_CAST (char *,
3347 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3348 if (yymsg)
3349 {
3350 yysyntax_error_status
3351 = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3352 yymsgp = yymsg;
3353 }
3354 else
3355 {
3356 yymsg = yymsgbuf;
3357 yymsg_alloc = sizeof yymsgbuf;
3358 yysyntax_error_status = YYENOMEM;
3359 }
3360 }
3361 yyerror (&yylloc, lexer, instance, arg, yymsgp);
3362 if (yysyntax_error_status == YYENOMEM)
3363 YYNOMEM;
3364 }
3365 }
3366
3367 yyerror_range[1] = yylloc;
3368 if (yyerrstatus == 3)
3369 {
3370 /* If just tried and failed to reuse lookahead token after an
3371 error, discard it. */
3372
3373 if (yychar <= REGEXP_PARSER_EOF)
3374 {
3375 /* Return failure if at end of input. */
3376 if (yychar == REGEXP_PARSER_EOF)
3377 YYABORT;
3378 }
3379 else
3380 {
3381 yydestruct ("Error: discarding",
3382 yytoken, &yylval, &yylloc, lexer, instance, arg);
3383 yychar = REGEXP_PARSER_EMPTY;
3384 }
3385 }
3386
3387 /* Else will try to reuse lookahead token after shifting the error
3388 token. */
3389 goto yyerrlab1;
3390
3391
3392 /*---------------------------------------------------.
3393 | yyerrorlab -- error raised explicitly by YYERROR. |
3394 `---------------------------------------------------*/
3395 yyerrorlab:
3396 /* Pacify compilers when the user code never invokes YYERROR and the
3397 label yyerrorlab therefore never appears in user code. */
3398 if (0)
3399 YYERROR;
3400 ++yynerrs;
3401
3402 /* Do not reclaim the symbols of the rule whose action triggered
3403 this YYERROR. */
3404 YYPOPSTACK (yylen);
3405 yylen = 0;
3406 YY_STACK_PRINT (yyss, yyssp);
3407 yystate = *yyssp;
3408 goto yyerrlab1;
3409
3410
3411 /*-------------------------------------------------------------.
3412 | yyerrlab1 -- common code for both syntax error and YYERROR. |
3413 `-------------------------------------------------------------*/
3414 yyerrlab1:
3415 yyerrstatus = 3; /* Each real token shifted decrements this. */
3416
3417 /* Pop stack until we find a state that shifts the error token. */
3418 for (;;)
3419 {
3420 yyn = yypact[yystate];
3421 if (!yypact_value_is_default (yyn))
3422 {
3423 yyn += YYSYMBOL_YYerror;
3424 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
3425 {
3426 yyn = yytable[yyn];
3427 if (0 < yyn)
3428 break;
3429 }
3430 }
3431
3432 /* Pop the current state because it cannot handle the error token. */
3433 if (yyssp == yyss)
3434 YYABORT;
3435
3436 yyerror_range[1] = *yylsp;
3437 yydestruct ("Error: popping",
3438 YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, lexer, instance, arg);
3439 YYPOPSTACK (1);
3440 yystate = *yyssp;
3441 YY_STACK_PRINT (yyss, yyssp);
3442 }
3443
3444 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3445 *++yyvsp = yylval;
3446 YY_IGNORE_MAYBE_UNINITIALIZED_END
3447
3448 yyerror_range[2] = yylloc;
3449 ++yylsp;
3450 YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
3451
3452 /* Shift the error token. */
3453 YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
3454
3455 yystate = yyn;
3456 goto yynewstate;
3457
3458
3459 /*-------------------------------------.
3460 | yyacceptlab -- YYACCEPT comes here. |
3461 `-------------------------------------*/
3462 yyacceptlab:
3463 yyresult = 0;
3464 goto yyreturnlab;
3465
3466
3467 /*-----------------------------------.
3468 | yyabortlab -- YYABORT comes here. |
3469 `-----------------------------------*/
3470 yyabortlab:
3471 yyresult = 1;
3472 goto yyreturnlab;
3473
3474
3475 /*-----------------------------------------------------------.
3476 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
3477 `-----------------------------------------------------------*/
3478 yyexhaustedlab:
3479 yyerror (&yylloc, lexer, instance, arg, YY_("memory exhausted"));
3480 yyresult = 2;
3481 goto yyreturnlab;
3482
3483
3484 /*----------------------------------------------------------.
3485 | yyreturnlab -- parsing is finished, clean up and return. |
3486 `----------------------------------------------------------*/
3487 yyreturnlab:
3488 if (yychar != REGEXP_PARSER_EMPTY)
3489 {
3490 /* Make sure we have latest lookahead translation. See comments at
3491 user semantic actions for why this is necessary. */
3492 yytoken = YYTRANSLATE (yychar);
3493 yydestruct ("Cleanup: discarding lookahead",
3494 yytoken, &yylval, &yylloc, lexer, instance, arg);
3495 }
3496 /* Do not reclaim the symbols of the rule whose action triggered
3497 this YYABORT or YYACCEPT. */
3498 YYPOPSTACK (yylen);
3499 YY_STACK_PRINT (yyss, yyssp);
3500 while (yyssp != yyss)
3501 {
3502 yydestruct ("Cleanup: popping",
3503 YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, lexer, instance, arg);
3504 YYPOPSTACK (1);
3505 }
3506 #ifndef yyoverflow
3507 if (yyss != yyssa)
3508 YYSTACK_FREE (yyss);
3509 #endif
3510 if (yymsg != yymsgbuf)
3511 YYSTACK_FREE (yymsg);
3512 return yyresult;
3513 }
3514
3515 #line 1197 "modules/regexp-parser/regexp-parser-grammar.y"
3516
3517