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/tagsparser/tags-parser-grammar.y"
68
69 #include "tags-parser-parser.h"
70
71
72 #line 73 "modules/tagsparser/tags-parser-grammar.c"
73 /* Substitute the type names. */
74 #define YYSTYPE TAGS_PARSER_STYPE
75 #define YYLTYPE TAGS_PARSER_LTYPE
76 /* Substitute the variable and function names. */
77 #define yyparse tags_parser_parse
78 #define yylex tags_parser_lex
79 #define yyerror tags_parser_error
80 #define yydebug tags_parser_debug
81 #define yynerrs tags_parser_nerrs
82
83
84 # ifndef YY_CAST
85 # ifdef __cplusplus
86 # define YY_CAST(Type, Val) static_cast<Type> (Val)
87 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
88 # else
89 # define YY_CAST(Type, Val) ((Type) (Val))
90 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
91 # endif
92 # endif
93 # ifndef YY_NULLPTR
94 # if defined __cplusplus
95 # if 201103L <= __cplusplus
96 # define YY_NULLPTR nullptr
97 # else
98 # define YY_NULLPTR 0
99 # endif
100 # else
101 # define YY_NULLPTR ((void*)0)
102 # endif
103 # endif
104
105 /* Use api.header.include to #include this header
106 instead of duplicating it here. */
107 #ifndef YY_TAGS_PARSER_MODULES_TAGSPARSER_TAGS_PARSER_GRAMMAR_H_INCLUDED
108 # define YY_TAGS_PARSER_MODULES_TAGSPARSER_TAGS_PARSER_GRAMMAR_H_INCLUDED
109 /* Debug traces. */
110 #ifndef TAGS_PARSER_DEBUG
111 # if defined YYDEBUG
112 #if YYDEBUG
113 # define TAGS_PARSER_DEBUG 1
114 # else
115 # define TAGS_PARSER_DEBUG 0
116 # endif
117 # else /* ! defined YYDEBUG */
118 # define TAGS_PARSER_DEBUG 0
119 # endif /* ! defined YYDEBUG */
120 #endif /* ! defined TAGS_PARSER_DEBUG */
121 #if TAGS_PARSER_DEBUG
122 extern int tags_parser_debug;
123 #endif
124
125 /* Token kinds. */
126 #ifndef TAGS_PARSER_TOKENTYPE
127 # define TAGS_PARSER_TOKENTYPE
128 enum tags_parser_tokentype
129 {
130 TAGS_PARSER_EMPTY = -2,
131 TAGS_PARSER_EOF = 0, /* "end of file" */
132 TAGS_PARSER_error = 256, /* error */
133 TAGS_PARSER_UNDEF = 10514, /* "invalid token" */
134 LL_CONTEXT_ROOT = 1, /* LL_CONTEXT_ROOT */
135 LL_CONTEXT_DESTINATION = 2, /* LL_CONTEXT_DESTINATION */
136 LL_CONTEXT_SOURCE = 3, /* LL_CONTEXT_SOURCE */
137 LL_CONTEXT_PARSER = 4, /* LL_CONTEXT_PARSER */
138 LL_CONTEXT_REWRITE = 5, /* LL_CONTEXT_REWRITE */
139 LL_CONTEXT_FILTER = 6, /* LL_CONTEXT_FILTER */
140 LL_CONTEXT_LOG = 7, /* LL_CONTEXT_LOG */
141 LL_CONTEXT_BLOCK_DEF = 8, /* LL_CONTEXT_BLOCK_DEF */
142 LL_CONTEXT_BLOCK_REF = 9, /* LL_CONTEXT_BLOCK_REF */
143 LL_CONTEXT_BLOCK_CONTENT = 10, /* LL_CONTEXT_BLOCK_CONTENT */
144 LL_CONTEXT_BLOCK_ARG = 11, /* LL_CONTEXT_BLOCK_ARG */
145 LL_CONTEXT_PRAGMA = 12, /* LL_CONTEXT_PRAGMA */
146 LL_CONTEXT_FORMAT = 13, /* LL_CONTEXT_FORMAT */
147 LL_CONTEXT_TEMPLATE_FUNC = 14, /* LL_CONTEXT_TEMPLATE_FUNC */
148 LL_CONTEXT_INNER_DEST = 15, /* LL_CONTEXT_INNER_DEST */
149 LL_CONTEXT_INNER_SRC = 16, /* LL_CONTEXT_INNER_SRC */
150 LL_CONTEXT_CLIENT_PROTO = 17, /* LL_CONTEXT_CLIENT_PROTO */
151 LL_CONTEXT_SERVER_PROTO = 18, /* LL_CONTEXT_SERVER_PROTO */
152 LL_CONTEXT_OPTIONS = 19, /* LL_CONTEXT_OPTIONS */
153 LL_CONTEXT_CONFIG = 20, /* LL_CONTEXT_CONFIG */
154 LL_CONTEXT_MAX = 21, /* LL_CONTEXT_MAX */
155 KW_SOURCE = 10000, /* KW_SOURCE */
156 KW_FILTER = 10001, /* KW_FILTER */
157 KW_PARSER = 10002, /* KW_PARSER */
158 KW_DESTINATION = 10003, /* KW_DESTINATION */
159 KW_LOG = 10004, /* KW_LOG */
160 KW_OPTIONS = 10005, /* KW_OPTIONS */
161 KW_INCLUDE = 10006, /* KW_INCLUDE */
162 KW_BLOCK = 10007, /* KW_BLOCK */
163 KW_JUNCTION = 10008, /* KW_JUNCTION */
164 KW_CHANNEL = 10009, /* KW_CHANNEL */
165 KW_IF = 10010, /* KW_IF */
166 KW_ELSE = 10011, /* KW_ELSE */
167 KW_ELIF = 10012, /* KW_ELIF */
168 KW_INTERNAL = 10020, /* KW_INTERNAL */
169 KW_SYSLOG = 10060, /* KW_SYSLOG */
170 KW_MARK_FREQ = 10071, /* KW_MARK_FREQ */
171 KW_STATS_FREQ = 10072, /* KW_STATS_FREQ */
172 KW_STATS_LEVEL = 10073, /* KW_STATS_LEVEL */
173 KW_STATS_LIFETIME = 10074, /* KW_STATS_LIFETIME */
174 KW_FLUSH_LINES = 10075, /* KW_FLUSH_LINES */
175 KW_SUPPRESS = 10076, /* KW_SUPPRESS */
176 KW_FLUSH_TIMEOUT = 10077, /* KW_FLUSH_TIMEOUT */
177 KW_LOG_MSG_SIZE = 10078, /* KW_LOG_MSG_SIZE */
178 KW_FILE_TEMPLATE = 10079, /* KW_FILE_TEMPLATE */
179 KW_PROTO_TEMPLATE = 10080, /* KW_PROTO_TEMPLATE */
180 KW_MARK_MODE = 10081, /* KW_MARK_MODE */
181 KW_ENCODING = 10082, /* KW_ENCODING */
182 KW_TYPE = 10083, /* KW_TYPE */
183 KW_STATS_MAX_DYNAMIC = 10084, /* KW_STATS_MAX_DYNAMIC */
184 KW_MIN_IW_SIZE_PER_READER = 10085, /* KW_MIN_IW_SIZE_PER_READER */
185 KW_WORKERS = 10086, /* KW_WORKERS */
186 KW_BATCH_LINES = 10087, /* KW_BATCH_LINES */
187 KW_BATCH_TIMEOUT = 10088, /* KW_BATCH_TIMEOUT */
188 KW_TRIM_LARGE_MESSAGES = 10089, /* KW_TRIM_LARGE_MESSAGES */
189 KW_CHAIN_HOSTNAMES = 10090, /* KW_CHAIN_HOSTNAMES */
190 KW_NORMALIZE_HOSTNAMES = 10091, /* KW_NORMALIZE_HOSTNAMES */
191 KW_KEEP_HOSTNAME = 10092, /* KW_KEEP_HOSTNAME */
192 KW_CHECK_HOSTNAME = 10093, /* KW_CHECK_HOSTNAME */
193 KW_BAD_HOSTNAME = 10094, /* KW_BAD_HOSTNAME */
194 KW_KEEP_TIMESTAMP = 10100, /* KW_KEEP_TIMESTAMP */
195 KW_USE_DNS = 10110, /* KW_USE_DNS */
196 KW_USE_FQDN = 10111, /* KW_USE_FQDN */
197 KW_CUSTOM_DOMAIN = 10112, /* KW_CUSTOM_DOMAIN */
198 KW_DNS_CACHE = 10120, /* KW_DNS_CACHE */
199 KW_DNS_CACHE_SIZE = 10121, /* KW_DNS_CACHE_SIZE */
200 KW_DNS_CACHE_EXPIRE = 10130, /* KW_DNS_CACHE_EXPIRE */
201 KW_DNS_CACHE_EXPIRE_FAILED = 10131, /* KW_DNS_CACHE_EXPIRE_FAILED */
202 KW_DNS_CACHE_HOSTS = 10132, /* KW_DNS_CACHE_HOSTS */
203 KW_PERSIST_ONLY = 10140, /* KW_PERSIST_ONLY */
204 KW_USE_RCPTID = 10141, /* KW_USE_RCPTID */
205 KW_USE_UNIQID = 10142, /* KW_USE_UNIQID */
206 KW_TZ_CONVERT = 10150, /* KW_TZ_CONVERT */
207 KW_TS_FORMAT = 10151, /* KW_TS_FORMAT */
208 KW_FRAC_DIGITS = 10152, /* KW_FRAC_DIGITS */
209 KW_LOG_FIFO_SIZE = 10160, /* KW_LOG_FIFO_SIZE */
210 KW_LOG_FETCH_LIMIT = 10162, /* KW_LOG_FETCH_LIMIT */
211 KW_LOG_IW_SIZE = 10163, /* KW_LOG_IW_SIZE */
212 KW_LOG_PREFIX = 10164, /* KW_LOG_PREFIX */
213 KW_PROGRAM_OVERRIDE = 10165, /* KW_PROGRAM_OVERRIDE */
214 KW_HOST_OVERRIDE = 10166, /* KW_HOST_OVERRIDE */
215 KW_THROTTLE = 10170, /* KW_THROTTLE */
216 KW_THREADED = 10171, /* KW_THREADED */
217 KW_PASS_UNIX_CREDENTIALS = 10231, /* KW_PASS_UNIX_CREDENTIALS */
218 KW_PERSIST_NAME = 10302, /* KW_PERSIST_NAME */
219 KW_READ_OLD_RECORDS = 10304, /* KW_READ_OLD_RECORDS */
220 KW_USE_SYSLOGNG_PID = 10305, /* KW_USE_SYSLOGNG_PID */
221 KW_FLAGS = 10190, /* KW_FLAGS */
222 KW_PAD_SIZE = 10200, /* KW_PAD_SIZE */
223 KW_TIME_ZONE = 10201, /* KW_TIME_ZONE */
224 KW_RECV_TIME_ZONE = 10202, /* KW_RECV_TIME_ZONE */
225 KW_SEND_TIME_ZONE = 10203, /* KW_SEND_TIME_ZONE */
226 KW_LOCAL_TIME_ZONE = 10204, /* KW_LOCAL_TIME_ZONE */
227 KW_FORMAT = 10205, /* KW_FORMAT */
228 KW_TRUNCATE_SIZE = 10206, /* KW_TRUNCATE_SIZE */
229 KW_TIME_REOPEN = 10210, /* KW_TIME_REOPEN */
230 KW_TIME_REAP = 10211, /* KW_TIME_REAP */
231 KW_TIME_SLEEP = 10212, /* KW_TIME_SLEEP */
232 KW_TMPL_ESCAPE = 10220, /* KW_TMPL_ESCAPE */
233 KW_OPTIONAL = 10230, /* KW_OPTIONAL */
234 KW_CREATE_DIRS = 10240, /* KW_CREATE_DIRS */
235 KW_OWNER = 10250, /* KW_OWNER */
236 KW_GROUP = 10251, /* KW_GROUP */
237 KW_PERM = 10252, /* KW_PERM */
238 KW_DIR_OWNER = 10260, /* KW_DIR_OWNER */
239 KW_DIR_GROUP = 10261, /* KW_DIR_GROUP */
240 KW_DIR_PERM = 10262, /* KW_DIR_PERM */
241 KW_TEMPLATE = 10270, /* KW_TEMPLATE */
242 KW_TEMPLATE_ESCAPE = 10271, /* KW_TEMPLATE_ESCAPE */
243 KW_TEMPLATE_FUNCTION = 10272, /* KW_TEMPLATE_FUNCTION */
244 KW_DEFAULT_FACILITY = 10300, /* KW_DEFAULT_FACILITY */
245 KW_DEFAULT_SEVERITY = 10301, /* KW_DEFAULT_SEVERITY */
246 KW_PORT = 10323, /* KW_PORT */
247 KW_USE_TIME_RECVD = 10340, /* KW_USE_TIME_RECVD */
248 KW_FACILITY = 10350, /* KW_FACILITY */
249 KW_SEVERITY = 10351, /* KW_SEVERITY */
250 KW_HOST = 10352, /* KW_HOST */
251 KW_MATCH = 10353, /* KW_MATCH */
252 KW_MESSAGE = 10354, /* KW_MESSAGE */
253 KW_NETMASK = 10355, /* KW_NETMASK */
254 KW_TAGS = 10356, /* KW_TAGS */
255 KW_NETMASK6 = 10357, /* KW_NETMASK6 */
256 KW_REWRITE = 10370, /* KW_REWRITE */
257 KW_CONDITION = 10371, /* KW_CONDITION */
258 KW_VALUE = 10372, /* KW_VALUE */
259 KW_YES = 10380, /* KW_YES */
260 KW_NO = 10381, /* KW_NO */
261 KW_IFDEF = 10410, /* KW_IFDEF */
262 KW_ENDIF = 10411, /* KW_ENDIF */
263 LL_DOTDOT = 10420, /* LL_DOTDOT */
264 LL_DOTDOTDOT = 10421, /* LL_DOTDOTDOT */
265 LL_PRAGMA = 10422, /* LL_PRAGMA */
266 LL_EOL = 10423, /* LL_EOL */
267 LL_ERROR = 10424, /* LL_ERROR */
268 LL_ARROW = 10425, /* LL_ARROW */
269 LL_IDENTIFIER = 10430, /* LL_IDENTIFIER */
270 LL_NUMBER = 10431, /* LL_NUMBER */
271 LL_FLOAT = 10432, /* LL_FLOAT */
272 LL_STRING = 10433, /* LL_STRING */
273 LL_TOKEN = 10434, /* LL_TOKEN */
274 LL_BLOCK = 10435, /* LL_BLOCK */
275 KW_VALUE_PAIRS = 10500, /* KW_VALUE_PAIRS */
276 KW_EXCLUDE = 10502, /* KW_EXCLUDE */
277 KW_PAIR = 10503, /* KW_PAIR */
278 KW_KEY = 10504, /* KW_KEY */
279 KW_SCOPE = 10505, /* KW_SCOPE */
280 KW_SHIFT = 10506, /* KW_SHIFT */
281 KW_SHIFT_LEVELS = 10507, /* KW_SHIFT_LEVELS */
282 KW_REKEY = 10508, /* KW_REKEY */
283 KW_ADD_PREFIX = 10509, /* KW_ADD_PREFIX */
284 KW_REPLACE_PREFIX = 10510, /* KW_REPLACE_PREFIX */
285 KW_ON_ERROR = 10511, /* KW_ON_ERROR */
286 KW_RETRIES = 10512, /* KW_RETRIES */
287 KW_FETCH_NO_DATA_DELAY = 10513, /* KW_FETCH_NO_DATA_DELAY */
288 KW_TAGS_PARSER = 10515 /* KW_TAGS_PARSER */
289 };
290 typedef enum tags_parser_tokentype tags_parser_token_kind_t;
291 #endif
292 /* Token kinds. */
293 #define TAGS_PARSER_EMPTY -2
294 #define TAGS_PARSER_EOF 0
295 #define TAGS_PARSER_error 256
296 #define TAGS_PARSER_UNDEF 10514
297 #define LL_CONTEXT_ROOT 1
298 #define LL_CONTEXT_DESTINATION 2
299 #define LL_CONTEXT_SOURCE 3
300 #define LL_CONTEXT_PARSER 4
301 #define LL_CONTEXT_REWRITE 5
302 #define LL_CONTEXT_FILTER 6
303 #define LL_CONTEXT_LOG 7
304 #define LL_CONTEXT_BLOCK_DEF 8
305 #define LL_CONTEXT_BLOCK_REF 9
306 #define LL_CONTEXT_BLOCK_CONTENT 10
307 #define LL_CONTEXT_BLOCK_ARG 11
308 #define LL_CONTEXT_PRAGMA 12
309 #define LL_CONTEXT_FORMAT 13
310 #define LL_CONTEXT_TEMPLATE_FUNC 14
311 #define LL_CONTEXT_INNER_DEST 15
312 #define LL_CONTEXT_INNER_SRC 16
313 #define LL_CONTEXT_CLIENT_PROTO 17
314 #define LL_CONTEXT_SERVER_PROTO 18
315 #define LL_CONTEXT_OPTIONS 19
316 #define LL_CONTEXT_CONFIG 20
317 #define LL_CONTEXT_MAX 21
318 #define KW_SOURCE 10000
319 #define KW_FILTER 10001
320 #define KW_PARSER 10002
321 #define KW_DESTINATION 10003
322 #define KW_LOG 10004
323 #define KW_OPTIONS 10005
324 #define KW_INCLUDE 10006
325 #define KW_BLOCK 10007
326 #define KW_JUNCTION 10008
327 #define KW_CHANNEL 10009
328 #define KW_IF 10010
329 #define KW_ELSE 10011
330 #define KW_ELIF 10012
331 #define KW_INTERNAL 10020
332 #define KW_SYSLOG 10060
333 #define KW_MARK_FREQ 10071
334 #define KW_STATS_FREQ 10072
335 #define KW_STATS_LEVEL 10073
336 #define KW_STATS_LIFETIME 10074
337 #define KW_FLUSH_LINES 10075
338 #define KW_SUPPRESS 10076
339 #define KW_FLUSH_TIMEOUT 10077
340 #define KW_LOG_MSG_SIZE 10078
341 #define KW_FILE_TEMPLATE 10079
342 #define KW_PROTO_TEMPLATE 10080
343 #define KW_MARK_MODE 10081
344 #define KW_ENCODING 10082
345 #define KW_TYPE 10083
346 #define KW_STATS_MAX_DYNAMIC 10084
347 #define KW_MIN_IW_SIZE_PER_READER 10085
348 #define KW_WORKERS 10086
349 #define KW_BATCH_LINES 10087
350 #define KW_BATCH_TIMEOUT 10088
351 #define KW_TRIM_LARGE_MESSAGES 10089
352 #define KW_CHAIN_HOSTNAMES 10090
353 #define KW_NORMALIZE_HOSTNAMES 10091
354 #define KW_KEEP_HOSTNAME 10092
355 #define KW_CHECK_HOSTNAME 10093
356 #define KW_BAD_HOSTNAME 10094
357 #define KW_KEEP_TIMESTAMP 10100
358 #define KW_USE_DNS 10110
359 #define KW_USE_FQDN 10111
360 #define KW_CUSTOM_DOMAIN 10112
361 #define KW_DNS_CACHE 10120
362 #define KW_DNS_CACHE_SIZE 10121
363 #define KW_DNS_CACHE_EXPIRE 10130
364 #define KW_DNS_CACHE_EXPIRE_FAILED 10131
365 #define KW_DNS_CACHE_HOSTS 10132
366 #define KW_PERSIST_ONLY 10140
367 #define KW_USE_RCPTID 10141
368 #define KW_USE_UNIQID 10142
369 #define KW_TZ_CONVERT 10150
370 #define KW_TS_FORMAT 10151
371 #define KW_FRAC_DIGITS 10152
372 #define KW_LOG_FIFO_SIZE 10160
373 #define KW_LOG_FETCH_LIMIT 10162
374 #define KW_LOG_IW_SIZE 10163
375 #define KW_LOG_PREFIX 10164
376 #define KW_PROGRAM_OVERRIDE 10165
377 #define KW_HOST_OVERRIDE 10166
378 #define KW_THROTTLE 10170
379 #define KW_THREADED 10171
380 #define KW_PASS_UNIX_CREDENTIALS 10231
381 #define KW_PERSIST_NAME 10302
382 #define KW_READ_OLD_RECORDS 10304
383 #define KW_USE_SYSLOGNG_PID 10305
384 #define KW_FLAGS 10190
385 #define KW_PAD_SIZE 10200
386 #define KW_TIME_ZONE 10201
387 #define KW_RECV_TIME_ZONE 10202
388 #define KW_SEND_TIME_ZONE 10203
389 #define KW_LOCAL_TIME_ZONE 10204
390 #define KW_FORMAT 10205
391 #define KW_TRUNCATE_SIZE 10206
392 #define KW_TIME_REOPEN 10210
393 #define KW_TIME_REAP 10211
394 #define KW_TIME_SLEEP 10212
395 #define KW_TMPL_ESCAPE 10220
396 #define KW_OPTIONAL 10230
397 #define KW_CREATE_DIRS 10240
398 #define KW_OWNER 10250
399 #define KW_GROUP 10251
400 #define KW_PERM 10252
401 #define KW_DIR_OWNER 10260
402 #define KW_DIR_GROUP 10261
403 #define KW_DIR_PERM 10262
404 #define KW_TEMPLATE 10270
405 #define KW_TEMPLATE_ESCAPE 10271
406 #define KW_TEMPLATE_FUNCTION 10272
407 #define KW_DEFAULT_FACILITY 10300
408 #define KW_DEFAULT_SEVERITY 10301
409 #define KW_PORT 10323
410 #define KW_USE_TIME_RECVD 10340
411 #define KW_FACILITY 10350
412 #define KW_SEVERITY 10351
413 #define KW_HOST 10352
414 #define KW_MATCH 10353
415 #define KW_MESSAGE 10354
416 #define KW_NETMASK 10355
417 #define KW_TAGS 10356
418 #define KW_NETMASK6 10357
419 #define KW_REWRITE 10370
420 #define KW_CONDITION 10371
421 #define KW_VALUE 10372
422 #define KW_YES 10380
423 #define KW_NO 10381
424 #define KW_IFDEF 10410
425 #define KW_ENDIF 10411
426 #define LL_DOTDOT 10420
427 #define LL_DOTDOTDOT 10421
428 #define LL_PRAGMA 10422
429 #define LL_EOL 10423
430 #define LL_ERROR 10424
431 #define LL_ARROW 10425
432 #define LL_IDENTIFIER 10430
433 #define LL_NUMBER 10431
434 #define LL_FLOAT 10432
435 #define LL_STRING 10433
436 #define LL_TOKEN 10434
437 #define LL_BLOCK 10435
438 #define KW_VALUE_PAIRS 10500
439 #define KW_EXCLUDE 10502
440 #define KW_PAIR 10503
441 #define KW_KEY 10504
442 #define KW_SCOPE 10505
443 #define KW_SHIFT 10506
444 #define KW_SHIFT_LEVELS 10507
445 #define KW_REKEY 10508
446 #define KW_ADD_PREFIX 10509
447 #define KW_REPLACE_PREFIX 10510
448 #define KW_ON_ERROR 10511
449 #define KW_RETRIES 10512
450 #define KW_FETCH_NO_DATA_DELAY 10513
451 #define KW_TAGS_PARSER 10515
452
453 /* Value type. */
454 #if ! defined TAGS_PARSER_STYPE && ! defined TAGS_PARSER_STYPE_IS_DECLARED
455 typedef CFG_STYPE TAGS_PARSER_STYPE;
456 # define TAGS_PARSER_STYPE_IS_TRIVIAL 1
457 # define TAGS_PARSER_STYPE_IS_DECLARED 1
458 #endif
459
460 /* Location type. */
461 typedef CFG_LTYPE TAGS_PARSER_LTYPE;
462
463
464
465
466 int tags_parser_parse (CfgLexer *lexer, LogParser **instance, gpointer arg);
467
468
469 #endif /* !YY_TAGS_PARSER_MODULES_TAGSPARSER_TAGS_PARSER_GRAMMAR_H_INCLUDED */
470 /* Symbol kind. */
471 enum yysymbol_kind_t
472 {
473 YYSYMBOL_YYEMPTY = -2,
474 YYSYMBOL_YYEOF = 0, /* "end of file" */
475 YYSYMBOL_YYerror = 1, /* error */
476 YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
477 YYSYMBOL_LL_CONTEXT_ROOT = 3, /* LL_CONTEXT_ROOT */
478 YYSYMBOL_LL_CONTEXT_DESTINATION = 4, /* LL_CONTEXT_DESTINATION */
479 YYSYMBOL_LL_CONTEXT_SOURCE = 5, /* LL_CONTEXT_SOURCE */
480 YYSYMBOL_LL_CONTEXT_PARSER = 6, /* LL_CONTEXT_PARSER */
481 YYSYMBOL_LL_CONTEXT_REWRITE = 7, /* LL_CONTEXT_REWRITE */
482 YYSYMBOL_LL_CONTEXT_FILTER = 8, /* LL_CONTEXT_FILTER */
483 YYSYMBOL_LL_CONTEXT_LOG = 9, /* LL_CONTEXT_LOG */
484 YYSYMBOL_LL_CONTEXT_BLOCK_DEF = 10, /* LL_CONTEXT_BLOCK_DEF */
485 YYSYMBOL_LL_CONTEXT_BLOCK_REF = 11, /* LL_CONTEXT_BLOCK_REF */
486 YYSYMBOL_LL_CONTEXT_BLOCK_CONTENT = 12, /* LL_CONTEXT_BLOCK_CONTENT */
487 YYSYMBOL_LL_CONTEXT_BLOCK_ARG = 13, /* LL_CONTEXT_BLOCK_ARG */
488 YYSYMBOL_LL_CONTEXT_PRAGMA = 14, /* LL_CONTEXT_PRAGMA */
489 YYSYMBOL_LL_CONTEXT_FORMAT = 15, /* LL_CONTEXT_FORMAT */
490 YYSYMBOL_LL_CONTEXT_TEMPLATE_FUNC = 16, /* LL_CONTEXT_TEMPLATE_FUNC */
491 YYSYMBOL_LL_CONTEXT_INNER_DEST = 17, /* LL_CONTEXT_INNER_DEST */
492 YYSYMBOL_LL_CONTEXT_INNER_SRC = 18, /* LL_CONTEXT_INNER_SRC */
493 YYSYMBOL_LL_CONTEXT_CLIENT_PROTO = 19, /* LL_CONTEXT_CLIENT_PROTO */
494 YYSYMBOL_LL_CONTEXT_SERVER_PROTO = 20, /* LL_CONTEXT_SERVER_PROTO */
495 YYSYMBOL_LL_CONTEXT_OPTIONS = 21, /* LL_CONTEXT_OPTIONS */
496 YYSYMBOL_LL_CONTEXT_CONFIG = 22, /* LL_CONTEXT_CONFIG */
497 YYSYMBOL_LL_CONTEXT_MAX = 23, /* LL_CONTEXT_MAX */
498 YYSYMBOL_KW_SOURCE = 24, /* KW_SOURCE */
499 YYSYMBOL_KW_FILTER = 25, /* KW_FILTER */
500 YYSYMBOL_KW_PARSER = 26, /* KW_PARSER */
501 YYSYMBOL_KW_DESTINATION = 27, /* KW_DESTINATION */
502 YYSYMBOL_KW_LOG = 28, /* KW_LOG */
503 YYSYMBOL_KW_OPTIONS = 29, /* KW_OPTIONS */
504 YYSYMBOL_KW_INCLUDE = 30, /* KW_INCLUDE */
505 YYSYMBOL_KW_BLOCK = 31, /* KW_BLOCK */
506 YYSYMBOL_KW_JUNCTION = 32, /* KW_JUNCTION */
507 YYSYMBOL_KW_CHANNEL = 33, /* KW_CHANNEL */
508 YYSYMBOL_KW_IF = 34, /* KW_IF */
509 YYSYMBOL_KW_ELSE = 35, /* KW_ELSE */
510 YYSYMBOL_KW_ELIF = 36, /* KW_ELIF */
511 YYSYMBOL_KW_INTERNAL = 37, /* KW_INTERNAL */
512 YYSYMBOL_KW_SYSLOG = 38, /* KW_SYSLOG */
513 YYSYMBOL_KW_MARK_FREQ = 39, /* KW_MARK_FREQ */
514 YYSYMBOL_KW_STATS_FREQ = 40, /* KW_STATS_FREQ */
515 YYSYMBOL_KW_STATS_LEVEL = 41, /* KW_STATS_LEVEL */
516 YYSYMBOL_KW_STATS_LIFETIME = 42, /* KW_STATS_LIFETIME */
517 YYSYMBOL_KW_FLUSH_LINES = 43, /* KW_FLUSH_LINES */
518 YYSYMBOL_KW_SUPPRESS = 44, /* KW_SUPPRESS */
519 YYSYMBOL_KW_FLUSH_TIMEOUT = 45, /* KW_FLUSH_TIMEOUT */
520 YYSYMBOL_KW_LOG_MSG_SIZE = 46, /* KW_LOG_MSG_SIZE */
521 YYSYMBOL_KW_FILE_TEMPLATE = 47, /* KW_FILE_TEMPLATE */
522 YYSYMBOL_KW_PROTO_TEMPLATE = 48, /* KW_PROTO_TEMPLATE */
523 YYSYMBOL_KW_MARK_MODE = 49, /* KW_MARK_MODE */
524 YYSYMBOL_KW_ENCODING = 50, /* KW_ENCODING */
525 YYSYMBOL_KW_TYPE = 51, /* KW_TYPE */
526 YYSYMBOL_KW_STATS_MAX_DYNAMIC = 52, /* KW_STATS_MAX_DYNAMIC */
527 YYSYMBOL_KW_MIN_IW_SIZE_PER_READER = 53, /* KW_MIN_IW_SIZE_PER_READER */
528 YYSYMBOL_KW_WORKERS = 54, /* KW_WORKERS */
529 YYSYMBOL_KW_BATCH_LINES = 55, /* KW_BATCH_LINES */
530 YYSYMBOL_KW_BATCH_TIMEOUT = 56, /* KW_BATCH_TIMEOUT */
531 YYSYMBOL_KW_TRIM_LARGE_MESSAGES = 57, /* KW_TRIM_LARGE_MESSAGES */
532 YYSYMBOL_KW_CHAIN_HOSTNAMES = 58, /* KW_CHAIN_HOSTNAMES */
533 YYSYMBOL_KW_NORMALIZE_HOSTNAMES = 59, /* KW_NORMALIZE_HOSTNAMES */
534 YYSYMBOL_KW_KEEP_HOSTNAME = 60, /* KW_KEEP_HOSTNAME */
535 YYSYMBOL_KW_CHECK_HOSTNAME = 61, /* KW_CHECK_HOSTNAME */
536 YYSYMBOL_KW_BAD_HOSTNAME = 62, /* KW_BAD_HOSTNAME */
537 YYSYMBOL_KW_KEEP_TIMESTAMP = 63, /* KW_KEEP_TIMESTAMP */
538 YYSYMBOL_KW_USE_DNS = 64, /* KW_USE_DNS */
539 YYSYMBOL_KW_USE_FQDN = 65, /* KW_USE_FQDN */
540 YYSYMBOL_KW_CUSTOM_DOMAIN = 66, /* KW_CUSTOM_DOMAIN */
541 YYSYMBOL_KW_DNS_CACHE = 67, /* KW_DNS_CACHE */
542 YYSYMBOL_KW_DNS_CACHE_SIZE = 68, /* KW_DNS_CACHE_SIZE */
543 YYSYMBOL_KW_DNS_CACHE_EXPIRE = 69, /* KW_DNS_CACHE_EXPIRE */
544 YYSYMBOL_KW_DNS_CACHE_EXPIRE_FAILED = 70, /* KW_DNS_CACHE_EXPIRE_FAILED */
545 YYSYMBOL_KW_DNS_CACHE_HOSTS = 71, /* KW_DNS_CACHE_HOSTS */
546 YYSYMBOL_KW_PERSIST_ONLY = 72, /* KW_PERSIST_ONLY */
547 YYSYMBOL_KW_USE_RCPTID = 73, /* KW_USE_RCPTID */
548 YYSYMBOL_KW_USE_UNIQID = 74, /* KW_USE_UNIQID */
549 YYSYMBOL_KW_TZ_CONVERT = 75, /* KW_TZ_CONVERT */
550 YYSYMBOL_KW_TS_FORMAT = 76, /* KW_TS_FORMAT */
551 YYSYMBOL_KW_FRAC_DIGITS = 77, /* KW_FRAC_DIGITS */
552 YYSYMBOL_KW_LOG_FIFO_SIZE = 78, /* KW_LOG_FIFO_SIZE */
553 YYSYMBOL_KW_LOG_FETCH_LIMIT = 79, /* KW_LOG_FETCH_LIMIT */
554 YYSYMBOL_KW_LOG_IW_SIZE = 80, /* KW_LOG_IW_SIZE */
555 YYSYMBOL_KW_LOG_PREFIX = 81, /* KW_LOG_PREFIX */
556 YYSYMBOL_KW_PROGRAM_OVERRIDE = 82, /* KW_PROGRAM_OVERRIDE */
557 YYSYMBOL_KW_HOST_OVERRIDE = 83, /* KW_HOST_OVERRIDE */
558 YYSYMBOL_KW_THROTTLE = 84, /* KW_THROTTLE */
559 YYSYMBOL_KW_THREADED = 85, /* KW_THREADED */
560 YYSYMBOL_KW_PASS_UNIX_CREDENTIALS = 86, /* KW_PASS_UNIX_CREDENTIALS */
561 YYSYMBOL_KW_PERSIST_NAME = 87, /* KW_PERSIST_NAME */
562 YYSYMBOL_KW_READ_OLD_RECORDS = 88, /* KW_READ_OLD_RECORDS */
563 YYSYMBOL_KW_USE_SYSLOGNG_PID = 89, /* KW_USE_SYSLOGNG_PID */
564 YYSYMBOL_KW_FLAGS = 90, /* KW_FLAGS */
565 YYSYMBOL_KW_PAD_SIZE = 91, /* KW_PAD_SIZE */
566 YYSYMBOL_KW_TIME_ZONE = 92, /* KW_TIME_ZONE */
567 YYSYMBOL_KW_RECV_TIME_ZONE = 93, /* KW_RECV_TIME_ZONE */
568 YYSYMBOL_KW_SEND_TIME_ZONE = 94, /* KW_SEND_TIME_ZONE */
569 YYSYMBOL_KW_LOCAL_TIME_ZONE = 95, /* KW_LOCAL_TIME_ZONE */
570 YYSYMBOL_KW_FORMAT = 96, /* KW_FORMAT */
571 YYSYMBOL_KW_TRUNCATE_SIZE = 97, /* KW_TRUNCATE_SIZE */
572 YYSYMBOL_KW_TIME_REOPEN = 98, /* KW_TIME_REOPEN */
573 YYSYMBOL_KW_TIME_REAP = 99, /* KW_TIME_REAP */
574 YYSYMBOL_KW_TIME_SLEEP = 100, /* KW_TIME_SLEEP */
575 YYSYMBOL_KW_TMPL_ESCAPE = 101, /* KW_TMPL_ESCAPE */
576 YYSYMBOL_KW_OPTIONAL = 102, /* KW_OPTIONAL */
577 YYSYMBOL_KW_CREATE_DIRS = 103, /* KW_CREATE_DIRS */
578 YYSYMBOL_KW_OWNER = 104, /* KW_OWNER */
579 YYSYMBOL_KW_GROUP = 105, /* KW_GROUP */
580 YYSYMBOL_KW_PERM = 106, /* KW_PERM */
581 YYSYMBOL_KW_DIR_OWNER = 107, /* KW_DIR_OWNER */
582 YYSYMBOL_KW_DIR_GROUP = 108, /* KW_DIR_GROUP */
583 YYSYMBOL_KW_DIR_PERM = 109, /* KW_DIR_PERM */
584 YYSYMBOL_KW_TEMPLATE = 110, /* KW_TEMPLATE */
585 YYSYMBOL_KW_TEMPLATE_ESCAPE = 111, /* KW_TEMPLATE_ESCAPE */
586 YYSYMBOL_KW_TEMPLATE_FUNCTION = 112, /* KW_TEMPLATE_FUNCTION */
587 YYSYMBOL_KW_DEFAULT_FACILITY = 113, /* KW_DEFAULT_FACILITY */
588 YYSYMBOL_KW_DEFAULT_SEVERITY = 114, /* KW_DEFAULT_SEVERITY */
589 YYSYMBOL_KW_PORT = 115, /* KW_PORT */
590 YYSYMBOL_KW_USE_TIME_RECVD = 116, /* KW_USE_TIME_RECVD */
591 YYSYMBOL_KW_FACILITY = 117, /* KW_FACILITY */
592 YYSYMBOL_KW_SEVERITY = 118, /* KW_SEVERITY */
593 YYSYMBOL_KW_HOST = 119, /* KW_HOST */
594 YYSYMBOL_KW_MATCH = 120, /* KW_MATCH */
595 YYSYMBOL_KW_MESSAGE = 121, /* KW_MESSAGE */
596 YYSYMBOL_KW_NETMASK = 122, /* KW_NETMASK */
597 YYSYMBOL_KW_TAGS = 123, /* KW_TAGS */
598 YYSYMBOL_KW_NETMASK6 = 124, /* KW_NETMASK6 */
599 YYSYMBOL_KW_REWRITE = 125, /* KW_REWRITE */
600 YYSYMBOL_KW_CONDITION = 126, /* KW_CONDITION */
601 YYSYMBOL_KW_VALUE = 127, /* KW_VALUE */
602 YYSYMBOL_KW_YES = 128, /* KW_YES */
603 YYSYMBOL_KW_NO = 129, /* KW_NO */
604 YYSYMBOL_KW_IFDEF = 130, /* KW_IFDEF */
605 YYSYMBOL_KW_ENDIF = 131, /* KW_ENDIF */
606 YYSYMBOL_LL_DOTDOT = 132, /* LL_DOTDOT */
607 YYSYMBOL_LL_DOTDOTDOT = 133, /* LL_DOTDOTDOT */
608 YYSYMBOL_LL_PRAGMA = 134, /* LL_PRAGMA */
609 YYSYMBOL_LL_EOL = 135, /* LL_EOL */
610 YYSYMBOL_LL_ERROR = 136, /* LL_ERROR */
611 YYSYMBOL_LL_ARROW = 137, /* LL_ARROW */
612 YYSYMBOL_LL_IDENTIFIER = 138, /* LL_IDENTIFIER */
613 YYSYMBOL_LL_NUMBER = 139, /* LL_NUMBER */
614 YYSYMBOL_LL_FLOAT = 140, /* LL_FLOAT */
615 YYSYMBOL_LL_STRING = 141, /* LL_STRING */
616 YYSYMBOL_LL_TOKEN = 142, /* LL_TOKEN */
617 YYSYMBOL_LL_BLOCK = 143, /* LL_BLOCK */
618 YYSYMBOL_KW_VALUE_PAIRS = 144, /* KW_VALUE_PAIRS */
619 YYSYMBOL_KW_EXCLUDE = 145, /* KW_EXCLUDE */
620 YYSYMBOL_KW_PAIR = 146, /* KW_PAIR */
621 YYSYMBOL_KW_KEY = 147, /* KW_KEY */
622 YYSYMBOL_KW_SCOPE = 148, /* KW_SCOPE */
623 YYSYMBOL_KW_SHIFT = 149, /* KW_SHIFT */
624 YYSYMBOL_KW_SHIFT_LEVELS = 150, /* KW_SHIFT_LEVELS */
625 YYSYMBOL_KW_REKEY = 151, /* KW_REKEY */
626 YYSYMBOL_KW_ADD_PREFIX = 152, /* KW_ADD_PREFIX */
627 YYSYMBOL_KW_REPLACE_PREFIX = 153, /* KW_REPLACE_PREFIX */
628 YYSYMBOL_KW_ON_ERROR = 154, /* KW_ON_ERROR */
629 YYSYMBOL_KW_RETRIES = 155, /* KW_RETRIES */
630 YYSYMBOL_KW_FETCH_NO_DATA_DELAY = 156, /* KW_FETCH_NO_DATA_DELAY */
631 YYSYMBOL_KW_TAGS_PARSER = 157, /* KW_TAGS_PARSER */
632 YYSYMBOL_158_ = 158, /* '(' */
633 YYSYMBOL_159_ = 159, /* ')' */
634 YYSYMBOL_160_ = 160, /* '{' */
635 YYSYMBOL_161_ = 161, /* '}' */
636 YYSYMBOL_162_ = 162, /* ';' */
637 YYSYMBOL_163_ = 163, /* ':' */
638 YYSYMBOL_YYACCEPT = 164, /* $accept */
639 YYSYMBOL_start = 165, /* start */
640 YYSYMBOL_parser_expr_tags = 166, /* parser_expr_tags */
641 YYSYMBOL_167_1 = 167, /* $@1 */
642 YYSYMBOL_parser_tags_opts = 168, /* parser_tags_opts */
643 YYSYMBOL_parser_tags_opt = 169, /* parser_tags_opt */
644 YYSYMBOL_string = 170, /* string */
645 YYSYMBOL_parser_opt = 171 /* parser_opt */
646 };
647 typedef enum yysymbol_kind_t yysymbol_kind_t;
648
649
650
651 /* Unqualified %code blocks. */
652 #line 30 "modules/tagsparser/tags-parser-grammar.y"
653
654
655 #include "tags-parser.h"
656 #include "cfg-parser.h"
657 #include "cfg-grammar-internal.h"
658 #include "syslog-names.h"
659 #include "messages.h"
660
661 #line 58 "modules/tagsparser/tags-parser-grammar.y"
662
663
664 # define YYLLOC_DEFAULT(Current, Rhs, N) \
665 do { \
666 if (N) \
667 { \
668 (Current).level = YYRHSLOC(Rhs, 1).level; \
669 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
670 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
671 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
672 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
673 } \
674 else \
675 { \
676 (Current).level = YYRHSLOC(Rhs, 0).level; \
677 (Current).first_line = (Current).last_line = \
678 YYRHSLOC (Rhs, 0).last_line; \
679 (Current).first_column = (Current).last_column = \
680 YYRHSLOC (Rhs, 0).last_column; \
681 } \
682 } while (0)
683
684 #define CHECK_ERROR_WITHOUT_MESSAGE(val, token) do { \
685 if (!(val)) \
686 { \
687 YYERROR; \
688 } \
689 } while (0)
690
691 #define CHECK_ERROR(val, token, errorfmt, ...) do { \
692 if (!(val)) \
693 { \
694 if (errorfmt) \
695 { \
696 gchar __buf[256]; \
697 g_snprintf(__buf, sizeof(__buf), errorfmt, ## __VA_ARGS__); \
698 yyerror(& (token), lexer, NULL, NULL, __buf); \
699 } \
700 YYERROR; \
701 } \
702 } while (0)
703
704 #define CHECK_ERROR_GERROR(val, token, error, errorfmt, ...) do { \
705 if (!(val)) \
706 { \
707 if (errorfmt) \
708 { \
709 gchar __buf[256]; \
710 g_snprintf(__buf, sizeof(__buf), errorfmt ", error=%s", ## __VA_ARGS__, error->message); \
711 yyerror(& (token), lexer, NULL, NULL, __buf); \
712 } \
713 g_clear_error(&error); \
714 YYERROR; \
715 } \
716 } while (0)
717
718 #define YYMAXDEPTH 20000
719
720
721
722 #line 723 "modules/tagsparser/tags-parser-grammar.c"
723
724 #ifdef short
725 # undef short
726 #endif
727
728 /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
729 <limits.h> and (if available) <stdint.h> are included
730 so that the code can choose integer types of a good width. */
731
732 #ifndef __PTRDIFF_MAX__
733 # include <limits.h> /* INFRINGES ON USER NAME SPACE */
734 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
735 # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
736 # define YY_STDINT_H
737 # endif
738 #endif
739
740 /* Narrow types that promote to a signed type and that can represent a
741 signed or unsigned integer of at least N bits. In tables they can
742 save space and decrease cache pressure. Promoting to a signed type
743 helps avoid bugs in integer arithmetic. */
744
745 #ifdef __INT_LEAST8_MAX__
746 typedef __INT_LEAST8_TYPE__ yytype_int8;
747 #elif defined YY_STDINT_H
748 typedef int_least8_t yytype_int8;
749 #else
750 typedef signed char yytype_int8;
751 #endif
752
753 #ifdef __INT_LEAST16_MAX__
754 typedef __INT_LEAST16_TYPE__ yytype_int16;
755 #elif defined YY_STDINT_H
756 typedef int_least16_t yytype_int16;
757 #else
758 typedef short yytype_int16;
759 #endif
760
761 /* Work around bug in HP-UX 11.23, which defines these macros
762 incorrectly for preprocessor constants. This workaround can likely
763 be removed in 2023, as HPE has promised support for HP-UX 11.23
764 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
765 <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
766 #ifdef __hpux
767 # undef UINT_LEAST8_MAX
768 # undef UINT_LEAST16_MAX
769 # define UINT_LEAST8_MAX 255
770 # define UINT_LEAST16_MAX 65535
771 #endif
772
773 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
774 typedef __UINT_LEAST8_TYPE__ yytype_uint8;
775 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
776 && UINT_LEAST8_MAX <= INT_MAX)
777 typedef uint_least8_t yytype_uint8;
778 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
779 typedef unsigned char yytype_uint8;
780 #else
781 typedef short yytype_uint8;
782 #endif
783
784 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
785 typedef __UINT_LEAST16_TYPE__ yytype_uint16;
786 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
787 && UINT_LEAST16_MAX <= INT_MAX)
788 typedef uint_least16_t yytype_uint16;
789 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
790 typedef unsigned short yytype_uint16;
791 #else
792 typedef int yytype_uint16;
793 #endif
794
795 #ifndef YYPTRDIFF_T
796 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
797 # define YYPTRDIFF_T __PTRDIFF_TYPE__
798 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
799 # elif defined PTRDIFF_MAX
800 # ifndef ptrdiff_t
801 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
802 # endif
803 # define YYPTRDIFF_T ptrdiff_t
804 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
805 # else
806 # define YYPTRDIFF_T long
807 # define YYPTRDIFF_MAXIMUM LONG_MAX
808 # endif
809 #endif
810
811 #ifndef YYSIZE_T
812 # ifdef __SIZE_TYPE__
813 # define YYSIZE_T __SIZE_TYPE__
814 # elif defined size_t
815 # define YYSIZE_T size_t
816 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
817 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
818 # define YYSIZE_T size_t
819 # else
820 # define YYSIZE_T unsigned
821 # endif
822 #endif
823
824 #define YYSIZE_MAXIMUM \
825 YY_CAST (YYPTRDIFF_T, \
826 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
827 ? YYPTRDIFF_MAXIMUM \
828 : YY_CAST (YYSIZE_T, -1)))
829
830 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
831
832
833 /* Stored state numbers (used for stacks). */
834 typedef yytype_int8 yy_state_t;
835
836 /* State numbers in computations. */
837 typedef int yy_state_fast_t;
838
839 #ifndef YY_
840 # if defined YYENABLE_NLS && YYENABLE_NLS
841 # if ENABLE_NLS
842 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
843 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
844 # endif
845 # endif
846 # ifndef YY_
847 # define YY_(Msgid) Msgid
848 # endif
849 #endif
850
851
852 #ifndef YY_ATTRIBUTE_PURE
853 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
854 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
855 # else
856 # define YY_ATTRIBUTE_PURE
857 # endif
858 #endif
859
860 #ifndef YY_ATTRIBUTE_UNUSED
861 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
862 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
863 # else
864 # define YY_ATTRIBUTE_UNUSED
865 # endif
866 #endif
867
868 /* Suppress unused-variable warnings by "using" E. */
869 #if ! defined lint || defined __GNUC__
870 # define YY_USE(E) ((void) (E))
871 #else
872 # define YY_USE(E) /* empty */
873 #endif
874
875 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
876 #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
877 # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
878 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
879 _Pragma ("GCC diagnostic push") \
880 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
881 # else
882 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
883 _Pragma ("GCC diagnostic push") \
884 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
885 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
886 # endif
887 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
888 _Pragma ("GCC diagnostic pop")
889 #else
890 # define YY_INITIAL_VALUE(Value) Value
891 #endif
892 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
893 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
894 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
895 #endif
896 #ifndef YY_INITIAL_VALUE
897 # define YY_INITIAL_VALUE(Value) /* Nothing. */
898 #endif
899
900 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
901 # define YY_IGNORE_USELESS_CAST_BEGIN \
902 _Pragma ("GCC diagnostic push") \
903 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
904 # define YY_IGNORE_USELESS_CAST_END \
905 _Pragma ("GCC diagnostic pop")
906 #endif
907 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
908 # define YY_IGNORE_USELESS_CAST_BEGIN
909 # define YY_IGNORE_USELESS_CAST_END
910 #endif
911
912
913 #define YY_ASSERT(E) ((void) (0 && (E)))
914
915 #if 1
916
917 /* The parser invokes alloca or malloc; define the necessary symbols. */
918
919 # ifdef YYSTACK_USE_ALLOCA
920 # if YYSTACK_USE_ALLOCA
921 # ifdef __GNUC__
922 # define YYSTACK_ALLOC __builtin_alloca
923 # elif defined __BUILTIN_VA_ARG_INCR
924 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
925 # elif defined _AIX
926 # define YYSTACK_ALLOC __alloca
927 # elif defined _MSC_VER
928 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
929 # define alloca _alloca
930 # else
931 # define YYSTACK_ALLOC alloca
932 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
933 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
934 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
935 # ifndef EXIT_SUCCESS
936 # define EXIT_SUCCESS 0
937 # endif
938 # endif
939 # endif
940 # endif
941 # endif
942
943 # ifdef YYSTACK_ALLOC
944 /* Pacify GCC's 'empty if-body' warning. */
945 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
946 # ifndef YYSTACK_ALLOC_MAXIMUM
947 /* The OS might guarantee only one guard page at the bottom of the stack,
948 and a page size can be as small as 4096 bytes. So we cannot safely
949 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
950 to allow for a few compiler-allocated temporary stack slots. */
951 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
952 # endif
953 # else
954 # define YYSTACK_ALLOC YYMALLOC
955 # define YYSTACK_FREE YYFREE
956 # ifndef YYSTACK_ALLOC_MAXIMUM
957 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
958 # endif
959 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
960 && ! ((defined YYMALLOC || defined malloc) \
961 && (defined YYFREE || defined free)))
962 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
963 # ifndef EXIT_SUCCESS
964 # define EXIT_SUCCESS 0
965 # endif
966 # endif
967 # ifndef YYMALLOC
968 # define YYMALLOC malloc
969 # if ! defined malloc && ! defined EXIT_SUCCESS
970 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
971 # endif
972 # endif
973 # ifndef YYFREE
974 # define YYFREE free
975 # if ! defined free && ! defined EXIT_SUCCESS
976 void free (void *); /* INFRINGES ON USER NAME SPACE */
977 # endif
978 # endif
979 # endif
980 #endif /* 1 */
981
982 #if (! defined yyoverflow \
983 && (! defined __cplusplus \
984 || (defined TAGS_PARSER_LTYPE_IS_TRIVIAL && TAGS_PARSER_LTYPE_IS_TRIVIAL \
985 && defined TAGS_PARSER_STYPE_IS_TRIVIAL && TAGS_PARSER_STYPE_IS_TRIVIAL)))
986
987 /* A type that is properly aligned for any stack member. */
988 union yyalloc
989 {
990 yy_state_t yyss_alloc;
991 YYSTYPE yyvs_alloc;
992 YYLTYPE yyls_alloc;
993 };
994
995 /* The size of the maximum gap between one aligned stack and the next. */
996 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
997
998 /* The size of an array large to enough to hold all stacks, each with
999 N elements. */
1000 # define YYSTACK_BYTES(N) \
1001 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1002 + YYSIZEOF (YYLTYPE)) \
1003 + 2 * YYSTACK_GAP_MAXIMUM)
1004
1005 # define YYCOPY_NEEDED 1
1006
1007 /* Relocate STACK from its old location to the new one. The
1008 local variables YYSIZE and YYSTACKSIZE give the old and new number of
1009 elements in the stack, and YYPTR gives the new location of the
1010 stack. Advance YYPTR to a properly aligned location for the next
1011 stack. */
1012 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1013 do \
1014 { \
1015 YYPTRDIFF_T yynewbytes; \
1016 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1017 Stack = &yyptr->Stack_alloc; \
1018 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1019 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1020 } \
1021 while (0)
1022
1023 #endif
1024
1025 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1026 /* Copy COUNT objects from SRC to DST. The source and destination do
1027 not overlap. */
1028 # ifndef YYCOPY
1029 # if defined __GNUC__ && 1 < __GNUC__
1030 # define YYCOPY(Dst, Src, Count) \
1031 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1032 # else
1033 # define YYCOPY(Dst, Src, Count) \
1034 do \
1035 { \
1036 YYPTRDIFF_T yyi; \
1037 for (yyi = 0; yyi < (Count); yyi++) \
1038 (Dst)[yyi] = (Src)[yyi]; \
1039 } \
1040 while (0)
1041 # endif
1042 # endif
1043 #endif /* !YYCOPY_NEEDED */
1044
1045 /* YYFINAL -- State number of the termination state. */
1046 #define YYFINAL 5
1047 /* YYLAST -- Last index in YYTABLE. */
1048 #define YYLAST 10
1049
1050 /* YYNTOKENS -- Number of terminals. */
1051 #define YYNTOKENS 164
1052 /* YYNNTS -- Number of nonterminals. */
1053 #define YYNNTS 8
1054 /* YYNRULES -- Number of rules. */
1055 #define YYNRULES 10
1056 /* YYNSTATES -- Number of states. */
1057 #define YYNSTATES 19
1058
1059 /* YYMAXUTOK -- Last valid token kind. */
1060 #define YYMAXUTOK 10515
1061
1062
1063 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1064 as returned by yylex, with out-of-bounds checking. */
1065 #define YYTRANSLATE(YYX) \
1066 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1067 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1068 : YYSYMBOL_YYUNDEF)
1069
1070 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1071 as returned by yylex. */
1072 static const yytype_uint8 yytranslate[] =
1073 {
1074 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
1075 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1076 22, 23, 2, 2, 2, 2, 2, 2, 2, 2,
1077 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1078 158, 159, 2, 2, 2, 2, 2, 2, 2, 2,
1079 2, 2, 2, 2, 2, 2, 2, 2, 163, 162,
1080 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1081 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1082 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1083 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1084 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1085 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1086 2, 2, 2, 160, 2, 161, 2, 2, 2, 2,
1087 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1088 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
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, 2, 2, 2, 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, 1, 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, 2, 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 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
2075 34, 35, 36, 2, 2, 2, 2, 2, 2, 2,
2076 37, 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 38, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2081 2, 39, 40, 41, 42, 43, 44, 45, 46, 47,
2082 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
2083 58, 59, 60, 61, 62, 2, 2, 2, 2, 2,
2084 63, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2085 64, 65, 66, 2, 2, 2, 2, 2, 2, 2,
2086 67, 68, 2, 2, 2, 2, 2, 2, 2, 2,
2087 69, 70, 71, 2, 2, 2, 2, 2, 2, 2,
2088 72, 73, 74, 2, 2, 2, 2, 2, 2, 2,
2089 75, 76, 77, 2, 2, 2, 2, 2, 2, 2,
2090 78, 2, 79, 80, 81, 82, 83, 2, 2, 2,
2091 84, 85, 2, 2, 2, 2, 2, 2, 2, 2,
2092 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2093 90, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2094 91, 92, 93, 94, 95, 96, 97, 2, 2, 2,
2095 98, 99, 100, 2, 2, 2, 2, 2, 2, 2,
2096 101, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2097 102, 86, 2, 2, 2, 2, 2, 2, 2, 2,
2098 103, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2099 104, 105, 106, 2, 2, 2, 2, 2, 2, 2,
2100 107, 108, 109, 2, 2, 2, 2, 2, 2, 2,
2101 110, 111, 112, 2, 2, 2, 2, 2, 2, 2,
2102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2104 113, 114, 87, 2, 88, 89, 2, 2, 2, 2,
2105 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2106 2, 2, 2, 115, 2, 2, 2, 2, 2, 2,
2107 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2108 116, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2109 117, 118, 119, 120, 121, 122, 123, 124, 2, 2,
2110 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2111 125, 126, 127, 2, 2, 2, 2, 2, 2, 2,
2112 128, 129, 2, 2, 2, 2, 2, 2, 2, 2,
2113 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2114 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2115 130, 131, 2, 2, 2, 2, 2, 2, 2, 2,
2116 132, 133, 134, 135, 136, 137, 2, 2, 2, 2,
2117 138, 139, 140, 141, 142, 143, 2, 2, 2, 2,
2118 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2119 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2120 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2121 2, 2, 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 144, 2, 145, 146, 147, 148, 149, 150, 151, 152,
2125 153, 154, 155, 156, 2, 157
2126 };
2127
2128 #if TAGS_PARSER_DEBUG
2129 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
2130 static const yytype_int16 yyrline[] =
2131 {
2132 0, 404, 404, 410, 409, 417, 418, 422, 689, 690,
2133 824
2134 };
2135 #endif
2136
2137 /** Accessing symbol of state STATE. */
2138 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2139
2140 #if 1
2141 /* The user-facing name of the symbol whose (internal) number is
2142 YYSYMBOL. No bounds checking. */
2143 static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2144
2145 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2146 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2147 static const char *const yytname[] =
2148 {
2149 "\"end of file\"", "error", "\"invalid token\"", "LL_CONTEXT_ROOT",
2150 "LL_CONTEXT_DESTINATION", "LL_CONTEXT_SOURCE", "LL_CONTEXT_PARSER",
2151 "LL_CONTEXT_REWRITE", "LL_CONTEXT_FILTER", "LL_CONTEXT_LOG",
2152 "LL_CONTEXT_BLOCK_DEF", "LL_CONTEXT_BLOCK_REF",
2153 "LL_CONTEXT_BLOCK_CONTENT", "LL_CONTEXT_BLOCK_ARG", "LL_CONTEXT_PRAGMA",
2154 "LL_CONTEXT_FORMAT", "LL_CONTEXT_TEMPLATE_FUNC", "LL_CONTEXT_INNER_DEST",
2155 "LL_CONTEXT_INNER_SRC", "LL_CONTEXT_CLIENT_PROTO",
2156 "LL_CONTEXT_SERVER_PROTO", "LL_CONTEXT_OPTIONS", "LL_CONTEXT_CONFIG",
2157 "LL_CONTEXT_MAX", "KW_SOURCE", "KW_FILTER", "KW_PARSER",
2158 "KW_DESTINATION", "KW_LOG", "KW_OPTIONS", "KW_INCLUDE", "KW_BLOCK",
2159 "KW_JUNCTION", "KW_CHANNEL", "KW_IF", "KW_ELSE", "KW_ELIF",
2160 "KW_INTERNAL", "KW_SYSLOG", "KW_MARK_FREQ", "KW_STATS_FREQ",
2161 "KW_STATS_LEVEL", "KW_STATS_LIFETIME", "KW_FLUSH_LINES", "KW_SUPPRESS",
2162 "KW_FLUSH_TIMEOUT", "KW_LOG_MSG_SIZE", "KW_FILE_TEMPLATE",
2163 "KW_PROTO_TEMPLATE", "KW_MARK_MODE", "KW_ENCODING", "KW_TYPE",
2164 "KW_STATS_MAX_DYNAMIC", "KW_MIN_IW_SIZE_PER_READER", "KW_WORKERS",
2165 "KW_BATCH_LINES", "KW_BATCH_TIMEOUT", "KW_TRIM_LARGE_MESSAGES",
2166 "KW_CHAIN_HOSTNAMES", "KW_NORMALIZE_HOSTNAMES", "KW_KEEP_HOSTNAME",
2167 "KW_CHECK_HOSTNAME", "KW_BAD_HOSTNAME", "KW_KEEP_TIMESTAMP",
2168 "KW_USE_DNS", "KW_USE_FQDN", "KW_CUSTOM_DOMAIN", "KW_DNS_CACHE",
2169 "KW_DNS_CACHE_SIZE", "KW_DNS_CACHE_EXPIRE", "KW_DNS_CACHE_EXPIRE_FAILED",
2170 "KW_DNS_CACHE_HOSTS", "KW_PERSIST_ONLY", "KW_USE_RCPTID",
2171 "KW_USE_UNIQID", "KW_TZ_CONVERT", "KW_TS_FORMAT", "KW_FRAC_DIGITS",
2172 "KW_LOG_FIFO_SIZE", "KW_LOG_FETCH_LIMIT", "KW_LOG_IW_SIZE",
2173 "KW_LOG_PREFIX", "KW_PROGRAM_OVERRIDE", "KW_HOST_OVERRIDE",
2174 "KW_THROTTLE", "KW_THREADED", "KW_PASS_UNIX_CREDENTIALS",
2175 "KW_PERSIST_NAME", "KW_READ_OLD_RECORDS", "KW_USE_SYSLOGNG_PID",
2176 "KW_FLAGS", "KW_PAD_SIZE", "KW_TIME_ZONE", "KW_RECV_TIME_ZONE",
2177 "KW_SEND_TIME_ZONE", "KW_LOCAL_TIME_ZONE", "KW_FORMAT",
2178 "KW_TRUNCATE_SIZE", "KW_TIME_REOPEN", "KW_TIME_REAP", "KW_TIME_SLEEP",
2179 "KW_TMPL_ESCAPE", "KW_OPTIONAL", "KW_CREATE_DIRS", "KW_OWNER",
2180 "KW_GROUP", "KW_PERM", "KW_DIR_OWNER", "KW_DIR_GROUP", "KW_DIR_PERM",
2181 "KW_TEMPLATE", "KW_TEMPLATE_ESCAPE", "KW_TEMPLATE_FUNCTION",
2182 "KW_DEFAULT_FACILITY", "KW_DEFAULT_SEVERITY", "KW_PORT",
2183 "KW_USE_TIME_RECVD", "KW_FACILITY", "KW_SEVERITY", "KW_HOST", "KW_MATCH",
2184 "KW_MESSAGE", "KW_NETMASK", "KW_TAGS", "KW_NETMASK6", "KW_REWRITE",
2185 "KW_CONDITION", "KW_VALUE", "KW_YES", "KW_NO", "KW_IFDEF", "KW_ENDIF",
2186 "LL_DOTDOT", "LL_DOTDOTDOT", "LL_PRAGMA", "LL_EOL", "LL_ERROR",
2187 "LL_ARROW", "LL_IDENTIFIER", "LL_NUMBER", "LL_FLOAT", "LL_STRING",
2188 "LL_TOKEN", "LL_BLOCK", "KW_VALUE_PAIRS", "KW_EXCLUDE", "KW_PAIR",
2189 "KW_KEY", "KW_SCOPE", "KW_SHIFT", "KW_SHIFT_LEVELS", "KW_REKEY",
2190 "KW_ADD_PREFIX", "KW_REPLACE_PREFIX", "KW_ON_ERROR", "KW_RETRIES",
2191 "KW_FETCH_NO_DATA_DELAY", "KW_TAGS_PARSER", "'('", "')'", "'{'", "'}'",
2192 "';'", "':'", "$accept", "start", "parser_expr_tags", "$@1",
2193 "parser_tags_opts", "parser_tags_opt", "string", "parser_opt", YY_NULLPTR
2194 };
2195
2196 static const char *
yysymbol_name(yysymbol_kind_t yysymbol)2197 yysymbol_name (yysymbol_kind_t yysymbol)
2198 {
2199 return yytname[yysymbol];
2200 }
2201 #endif
2202
2203 #define YYPACT_NINF (-156)
2204
2205 #define yypact_value_is_default(Yyn) \
2206 ((Yyn) == YYPACT_NINF)
2207
2208 #define YYTABLE_NINF (-1)
2209
2210 #define yytable_value_is_error(Yyn) \
2211 0
2212
2213 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2214 STATE-NUM. */
2215 static const yytype_int16 yypact[] =
2216 {
2217 -5, -155, 4, -153, -156, -156, -156, -104, -151, -150,
2218 -104, -156, -138, -156, -156, -156, -156, -149, -156
2219 };
2220
2221 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
2222 Performed when YYTABLE does not specify something else to do. Zero
2223 means the default is an error. */
2224 static const yytype_int8 yydefact[] =
2225 {
2226 0, 0, 0, 0, 2, 1, 3, 6, 0, 0,
2227 6, 7, 0, 4, 5, 8, 9, 0, 10
2228 };
2229
2230 /* YYPGOTO[NTERM-NUM]. */
2231 static const yytype_int16 yypgoto[] =
2232 {
2233 -156, -156, -156, -156, -2, -156, -156, -156
2234 };
2235
2236 /* YYDEFGOTO[NTERM-NUM]. */
2237 static const yytype_int8 yydefgoto[] =
2238 {
2239 0, 2, 4, 7, 9, 10, 17, 11
2240 };
2241
2242 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
2243 positive, shift that token. If negative, reduce the rule whose
2244 number is the opposite. If YYTABLE_NINF, syntax error. */
2245 static const yytype_int8 yytable[] =
2246 {
2247 15, 1, 3, 16, 5, 6, 8, 12, 14, 13,
2248 18
2249 };
2250
2251 static const yytype_uint8 yycheck[] =
2252 {
2253 138, 6, 157, 141, 0, 158, 110, 158, 10, 159,
2254 159
2255 };
2256
2257 /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
2258 state STATE-NUM. */
2259 static const yytype_uint8 yystos[] =
2260 {
2261 0, 6, 165, 157, 166, 0, 158, 167, 110, 168,
2262 169, 171, 158, 159, 168, 138, 141, 170, 159
2263 };
2264
2265 /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
2266 static const yytype_uint8 yyr1[] =
2267 {
2268 0, 164, 165, 167, 166, 168, 168, 169, 170, 170,
2269 171
2270 };
2271
2272 /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
2273 static const yytype_int8 yyr2[] =
2274 {
2275 0, 2, 2, 0, 5, 2, 0, 1, 1, 1,
2276 4
2277 };
2278
2279
2280 enum { YYENOMEM = -2 };
2281
2282 #define yyerrok (yyerrstatus = 0)
2283 #define yyclearin (yychar = TAGS_PARSER_EMPTY)
2284
2285 #define YYACCEPT goto yyacceptlab
2286 #define YYABORT goto yyabortlab
2287 #define YYERROR goto yyerrorlab
2288 #define YYNOMEM goto yyexhaustedlab
2289
2290
2291 #define YYRECOVERING() (!!yyerrstatus)
2292
2293 #define YYBACKUP(Token, Value) \
2294 do \
2295 if (yychar == TAGS_PARSER_EMPTY) \
2296 { \
2297 yychar = (Token); \
2298 yylval = (Value); \
2299 YYPOPSTACK (yylen); \
2300 yystate = *yyssp; \
2301 goto yybackup; \
2302 } \
2303 else \
2304 { \
2305 yyerror (&yylloc, lexer, instance, arg, YY_("syntax error: cannot back up")); \
2306 YYERROR; \
2307 } \
2308 while (0)
2309
2310 /* Backward compatibility with an undocumented macro.
2311 Use TAGS_PARSER_error or TAGS_PARSER_UNDEF. */
2312 #define YYERRCODE TAGS_PARSER_UNDEF
2313
2314 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
2315 If N is 0, then set CURRENT to the empty location which ends
2316 the previous symbol: RHS[0] (always defined). */
2317
2318 #ifndef YYLLOC_DEFAULT
2319 # define YYLLOC_DEFAULT(Current, Rhs, N) \
2320 do \
2321 if (N) \
2322 { \
2323 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
2324 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
2325 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
2326 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
2327 } \
2328 else \
2329 { \
2330 (Current).first_line = (Current).last_line = \
2331 YYRHSLOC (Rhs, 0).last_line; \
2332 (Current).first_column = (Current).last_column = \
2333 YYRHSLOC (Rhs, 0).last_column; \
2334 } \
2335 while (0)
2336 #endif
2337
2338 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
2339
2340
2341 /* Enable debugging if requested. */
2342 #if TAGS_PARSER_DEBUG
2343
2344 # ifndef YYFPRINTF
2345 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2346 # define YYFPRINTF fprintf
2347 # endif
2348
2349 # define YYDPRINTF(Args) \
2350 do { \
2351 if (yydebug) \
2352 YYFPRINTF Args; \
2353 } while (0)
2354
2355
2356 /* YYLOCATION_PRINT -- Print the location on the stream.
2357 This macro was not mandated originally: define only if we know
2358 we won't break user code: when these are the locations we know. */
2359
2360 # ifndef YYLOCATION_PRINT
2361
2362 # if defined YY_LOCATION_PRINT
2363
2364 /* Temporary convenience wrapper in case some people defined the
2365 undocumented and private YY_LOCATION_PRINT macros. */
2366 # define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc))
2367
2368 # elif defined TAGS_PARSER_LTYPE_IS_TRIVIAL && TAGS_PARSER_LTYPE_IS_TRIVIAL
2369
2370 /* Print *YYLOCP on YYO. Private, do not rely on its existence. */
2371
2372 YY_ATTRIBUTE_UNUSED
2373 static int
yy_location_print_(FILE * yyo,YYLTYPE const * const yylocp)2374 yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
2375 {
2376 int res = 0;
2377 int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
2378 if (0 <= yylocp->first_line)
2379 {
2380 res += YYFPRINTF (yyo, "%d", yylocp->first_line);
2381 if (0 <= yylocp->first_column)
2382 res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
2383 }
2384 if (0 <= yylocp->last_line)
2385 {
2386 if (yylocp->first_line < yylocp->last_line)
2387 {
2388 res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
2389 if (0 <= end_col)
2390 res += YYFPRINTF (yyo, ".%d", end_col);
2391 }
2392 else if (0 <= end_col && yylocp->first_column < end_col)
2393 res += YYFPRINTF (yyo, "-%d", end_col);
2394 }
2395 return res;
2396 }
2397
2398 # define YYLOCATION_PRINT yy_location_print_
2399
2400 /* Temporary convenience wrapper in case some people defined the
2401 undocumented and private YY_LOCATION_PRINT macros. */
2402 # define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc))
2403
2404 # else
2405
2406 # define YYLOCATION_PRINT(File, Loc) ((void) 0)
2407 /* Temporary convenience wrapper in case some people defined the
2408 undocumented and private YY_LOCATION_PRINT macros. */
2409 # define YY_LOCATION_PRINT YYLOCATION_PRINT
2410
2411 # endif
2412 # endif /* !defined YYLOCATION_PRINT */
2413
2414
2415 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
2416 do { \
2417 if (yydebug) \
2418 { \
2419 YYFPRINTF (stderr, "%s ", Title); \
2420 yy_symbol_print (stderr, \
2421 Kind, Value, Location, lexer, instance, arg); \
2422 YYFPRINTF (stderr, "\n"); \
2423 } \
2424 } while (0)
2425
2426
2427 /*-----------------------------------.
2428 | Print this symbol's value on YYO. |
2429 `-----------------------------------*/
2430
2431 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)2432 yy_symbol_value_print (FILE *yyo,
2433 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2434 {
2435 FILE *yyoutput = yyo;
2436 YY_USE (yyoutput);
2437 YY_USE (yylocationp);
2438 YY_USE (lexer);
2439 YY_USE (instance);
2440 YY_USE (arg);
2441 if (!yyvaluep)
2442 return;
2443 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2444 YY_USE (yykind);
2445 YY_IGNORE_MAYBE_UNINITIALIZED_END
2446 }
2447
2448
2449 /*---------------------------.
2450 | Print this symbol on YYO. |
2451 `---------------------------*/
2452
2453 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)2454 yy_symbol_print (FILE *yyo,
2455 yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2456 {
2457 YYFPRINTF (yyo, "%s %s (",
2458 yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
2459
2460 YYLOCATION_PRINT (yyo, yylocationp);
2461 YYFPRINTF (yyo, ": ");
2462 yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, lexer, instance, arg);
2463 YYFPRINTF (yyo, ")");
2464 }
2465
2466 /*------------------------------------------------------------------.
2467 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2468 | TOP (included). |
2469 `------------------------------------------------------------------*/
2470
2471 static void
yy_stack_print(yy_state_t * yybottom,yy_state_t * yytop)2472 yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
2473 {
2474 YYFPRINTF (stderr, "Stack now");
2475 for (; yybottom <= yytop; yybottom++)
2476 {
2477 int yybot = *yybottom;
2478 YYFPRINTF (stderr, " %d", yybot);
2479 }
2480 YYFPRINTF (stderr, "\n");
2481 }
2482
2483 # define YY_STACK_PRINT(Bottom, Top) \
2484 do { \
2485 if (yydebug) \
2486 yy_stack_print ((Bottom), (Top)); \
2487 } while (0)
2488
2489
2490 /*------------------------------------------------.
2491 | Report that the YYRULE is going to be reduced. |
2492 `------------------------------------------------*/
2493
2494 static void
yy_reduce_print(yy_state_t * yyssp,YYSTYPE * yyvsp,YYLTYPE * yylsp,int yyrule,CfgLexer * lexer,LogParser ** instance,gpointer arg)2495 yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
2496 int yyrule, CfgLexer *lexer, LogParser **instance, gpointer arg)
2497 {
2498 int yylno = yyrline[yyrule];
2499 int yynrhs = yyr2[yyrule];
2500 int yyi;
2501 YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
2502 yyrule - 1, yylno);
2503 /* The symbols being reduced. */
2504 for (yyi = 0; yyi < yynrhs; yyi++)
2505 {
2506 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2507 yy_symbol_print (stderr,
2508 YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
2509 &yyvsp[(yyi + 1) - (yynrhs)],
2510 &(yylsp[(yyi + 1) - (yynrhs)]), lexer, instance, arg);
2511 YYFPRINTF (stderr, "\n");
2512 }
2513 }
2514
2515 # define YY_REDUCE_PRINT(Rule) \
2516 do { \
2517 if (yydebug) \
2518 yy_reduce_print (yyssp, yyvsp, yylsp, Rule, lexer, instance, arg); \
2519 } while (0)
2520
2521 /* Nonzero means print parse trace. It is left uninitialized so that
2522 multiple parsers can coexist. */
2523 int yydebug;
2524 #else /* !TAGS_PARSER_DEBUG */
2525 # define YYDPRINTF(Args) ((void) 0)
2526 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
2527 # define YY_STACK_PRINT(Bottom, Top)
2528 # define YY_REDUCE_PRINT(Rule)
2529 #endif /* !TAGS_PARSER_DEBUG */
2530
2531
2532 /* YYINITDEPTH -- initial size of the parser's stacks. */
2533 #ifndef YYINITDEPTH
2534 # define YYINITDEPTH 200
2535 #endif
2536
2537 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2538 if the built-in stack extension method is used).
2539
2540 Do not make this value too large; the results are undefined if
2541 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2542 evaluated with infinite-precision integer arithmetic. */
2543
2544 #ifndef YYMAXDEPTH
2545 # define YYMAXDEPTH 10000
2546 #endif
2547
2548
2549 /* Context of a parse error. */
2550 typedef struct
2551 {
2552 yy_state_t *yyssp;
2553 yysymbol_kind_t yytoken;
2554 YYLTYPE *yylloc;
2555 } yypcontext_t;
2556
2557 /* Put in YYARG at most YYARGN of the expected tokens given the
2558 current YYCTX, and return the number of tokens stored in YYARG. If
2559 YYARG is null, return the number of expected tokens (guaranteed to
2560 be less than YYNTOKENS). Return YYENOMEM on memory exhaustion.
2561 Return 0 if there are more than YYARGN expected tokens, yet fill
2562 YYARG up to YYARGN. */
2563 static int
yypcontext_expected_tokens(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2564 yypcontext_expected_tokens (const yypcontext_t *yyctx,
2565 yysymbol_kind_t yyarg[], int yyargn)
2566 {
2567 /* Actual size of YYARG. */
2568 int yycount = 0;
2569 int yyn = yypact[+*yyctx->yyssp];
2570 if (!yypact_value_is_default (yyn))
2571 {
2572 /* Start YYX at -YYN if negative to avoid negative indexes in
2573 YYCHECK. In other words, skip the first -YYN actions for
2574 this state because they are default actions. */
2575 int yyxbegin = yyn < 0 ? -yyn : 0;
2576 /* Stay within bounds of both yycheck and yytname. */
2577 int yychecklim = YYLAST - yyn + 1;
2578 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
2579 int yyx;
2580 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
2581 if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
2582 && !yytable_value_is_error (yytable[yyx + yyn]))
2583 {
2584 if (!yyarg)
2585 ++yycount;
2586 else if (yycount == yyargn)
2587 return 0;
2588 else
2589 yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
2590 }
2591 }
2592 if (yyarg && yycount == 0 && 0 < yyargn)
2593 yyarg[0] = YYSYMBOL_YYEMPTY;
2594 return yycount;
2595 }
2596
2597
2598
2599
2600 #ifndef yystrlen
2601 # if defined __GLIBC__ && defined _STRING_H
2602 # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
2603 # else
2604 /* Return the length of YYSTR. */
2605 static YYPTRDIFF_T
yystrlen(const char * yystr)2606 yystrlen (const char *yystr)
2607 {
2608 YYPTRDIFF_T yylen;
2609 for (yylen = 0; yystr[yylen]; yylen++)
2610 continue;
2611 return yylen;
2612 }
2613 # endif
2614 #endif
2615
2616 #ifndef yystpcpy
2617 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2618 # define yystpcpy stpcpy
2619 # else
2620 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2621 YYDEST. */
2622 static char *
yystpcpy(char * yydest,const char * yysrc)2623 yystpcpy (char *yydest, const char *yysrc)
2624 {
2625 char *yyd = yydest;
2626 const char *yys = yysrc;
2627
2628 while ((*yyd++ = *yys++) != '\0')
2629 continue;
2630
2631 return yyd - 1;
2632 }
2633 # endif
2634 #endif
2635
2636 #ifndef yytnamerr
2637 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2638 quotes and backslashes, so that it's suitable for yyerror. The
2639 heuristic is that double-quoting is unnecessary unless the string
2640 contains an apostrophe, a comma, or backslash (other than
2641 backslash-backslash). YYSTR is taken from yytname. If YYRES is
2642 null, do not copy; instead, return the length of what the result
2643 would have been. */
2644 static YYPTRDIFF_T
yytnamerr(char * yyres,const char * yystr)2645 yytnamerr (char *yyres, const char *yystr)
2646 {
2647 if (*yystr == '"')
2648 {
2649 YYPTRDIFF_T yyn = 0;
2650 char const *yyp = yystr;
2651 for (;;)
2652 switch (*++yyp)
2653 {
2654 case '\'':
2655 case ',':
2656 goto do_not_strip_quotes;
2657
2658 case '\\':
2659 if (*++yyp != '\\')
2660 goto do_not_strip_quotes;
2661 else
2662 goto append;
2663
2664 append:
2665 default:
2666 if (yyres)
2667 yyres[yyn] = *yyp;
2668 yyn++;
2669 break;
2670
2671 case '"':
2672 if (yyres)
2673 yyres[yyn] = '\0';
2674 return yyn;
2675 }
2676 do_not_strip_quotes: ;
2677 }
2678
2679 if (yyres)
2680 return yystpcpy (yyres, yystr) - yyres;
2681 else
2682 return yystrlen (yystr);
2683 }
2684 #endif
2685
2686
2687 static int
yy_syntax_error_arguments(const yypcontext_t * yyctx,yysymbol_kind_t yyarg[],int yyargn)2688 yy_syntax_error_arguments (const yypcontext_t *yyctx,
2689 yysymbol_kind_t yyarg[], int yyargn)
2690 {
2691 /* Actual size of YYARG. */
2692 int yycount = 0;
2693 /* There are many possibilities here to consider:
2694 - If this state is a consistent state with a default action, then
2695 the only way this function was invoked is if the default action
2696 is an error action. In that case, don't check for expected
2697 tokens because there are none.
2698 - The only way there can be no lookahead present (in yychar) is if
2699 this state is a consistent state with a default action. Thus,
2700 detecting the absence of a lookahead is sufficient to determine
2701 that there is no unexpected or expected token to report. In that
2702 case, just report a simple "syntax error".
2703 - Don't assume there isn't a lookahead just because this state is a
2704 consistent state with a default action. There might have been a
2705 previous inconsistent state, consistent state with a non-default
2706 action, or user semantic action that manipulated yychar.
2707 - Of course, the expected token list depends on states to have
2708 correct lookahead information, and it depends on the parser not
2709 to perform extra reductions after fetching a lookahead from the
2710 scanner and before detecting a syntax error. Thus, state merging
2711 (from LALR or IELR) and default reductions corrupt the expected
2712 token list. However, the list is correct for canonical LR with
2713 one exception: it will still contain any token that will not be
2714 accepted due to an error action in a later state.
2715 */
2716 if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
2717 {
2718 int yyn;
2719 if (yyarg)
2720 yyarg[yycount] = yyctx->yytoken;
2721 ++yycount;
2722 yyn = yypcontext_expected_tokens (yyctx,
2723 yyarg ? yyarg + 1 : yyarg, yyargn - 1);
2724 if (yyn == YYENOMEM)
2725 return YYENOMEM;
2726 else
2727 yycount += yyn;
2728 }
2729 return yycount;
2730 }
2731
2732 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
2733 about the unexpected token YYTOKEN for the state stack whose top is
2734 YYSSP.
2735
2736 Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is
2737 not large enough to hold the message. In that case, also set
2738 *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the
2739 required number of bytes is too large to store. */
2740 static int
yysyntax_error(YYPTRDIFF_T * yymsg_alloc,char ** yymsg,const yypcontext_t * yyctx)2741 yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
2742 const yypcontext_t *yyctx)
2743 {
2744 enum { YYARGS_MAX = 5 };
2745 /* Internationalized format string. */
2746 const char *yyformat = YY_NULLPTR;
2747 /* Arguments of yyformat: reported tokens (one for the "unexpected",
2748 one per "expected"). */
2749 yysymbol_kind_t yyarg[YYARGS_MAX];
2750 /* Cumulated lengths of YYARG. */
2751 YYPTRDIFF_T yysize = 0;
2752
2753 /* Actual size of YYARG. */
2754 int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
2755 if (yycount == YYENOMEM)
2756 return YYENOMEM;
2757
2758 switch (yycount)
2759 {
2760 #define YYCASE_(N, S) \
2761 case N: \
2762 yyformat = S; \
2763 break
2764 default: /* Avoid compiler warnings. */
2765 YYCASE_(0, YY_("syntax error"));
2766 YYCASE_(1, YY_("syntax error, unexpected %s"));
2767 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
2768 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
2769 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
2770 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
2771 #undef YYCASE_
2772 }
2773
2774 /* Compute error message size. Don't count the "%s"s, but reserve
2775 room for the terminator. */
2776 yysize = yystrlen (yyformat) - 2 * yycount + 1;
2777 {
2778 int yyi;
2779 for (yyi = 0; yyi < yycount; ++yyi)
2780 {
2781 YYPTRDIFF_T yysize1
2782 = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
2783 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
2784 yysize = yysize1;
2785 else
2786 return YYENOMEM;
2787 }
2788 }
2789
2790 if (*yymsg_alloc < yysize)
2791 {
2792 *yymsg_alloc = 2 * yysize;
2793 if (! (yysize <= *yymsg_alloc
2794 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
2795 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
2796 return -1;
2797 }
2798
2799 /* Avoid sprintf, as that infringes on the user's name space.
2800 Don't have undefined behavior even if the translation
2801 produced a string with the wrong number of "%s"s. */
2802 {
2803 char *yyp = *yymsg;
2804 int yyi = 0;
2805 while ((*yyp = *yyformat) != '\0')
2806 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
2807 {
2808 yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
2809 yyformat += 2;
2810 }
2811 else
2812 {
2813 ++yyp;
2814 ++yyformat;
2815 }
2816 }
2817 return 0;
2818 }
2819
2820
2821 /*-----------------------------------------------.
2822 | Release the memory associated to this symbol. |
2823 `-----------------------------------------------*/
2824
2825 static void
yydestruct(const char * yymsg,yysymbol_kind_t yykind,YYSTYPE * yyvaluep,YYLTYPE * yylocationp,CfgLexer * lexer,LogParser ** instance,gpointer arg)2826 yydestruct (const char *yymsg,
2827 yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, CfgLexer *lexer, LogParser **instance, gpointer arg)
2828 {
2829 YY_USE (yyvaluep);
2830 YY_USE (yylocationp);
2831 YY_USE (lexer);
2832 YY_USE (instance);
2833 YY_USE (arg);
2834 if (!yymsg)
2835 yymsg = "Deleting";
2836 YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
2837
2838 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2839 switch (yykind)
2840 {
2841 case YYSYMBOL_LL_IDENTIFIER: /* LL_IDENTIFIER */
2842 #line 316 "modules/tagsparser/tags-parser-grammar.y"
2843 { free(((*yyvaluep).cptr)); }
2844 #line 2845 "modules/tagsparser/tags-parser-grammar.c"
2845 break;
2846
2847 case YYSYMBOL_LL_STRING: /* LL_STRING */
2848 #line 316 "modules/tagsparser/tags-parser-grammar.y"
2849 { free(((*yyvaluep).cptr)); }
2850 #line 2851 "modules/tagsparser/tags-parser-grammar.c"
2851 break;
2852
2853 case YYSYMBOL_LL_BLOCK: /* LL_BLOCK */
2854 #line 316 "modules/tagsparser/tags-parser-grammar.y"
2855 { free(((*yyvaluep).cptr)); }
2856 #line 2857 "modules/tagsparser/tags-parser-grammar.c"
2857 break;
2858
2859 case YYSYMBOL_string: /* string */
2860 #line 316 "modules/tagsparser/tags-parser-grammar.y"
2861 { free(((*yyvaluep).cptr)); }
2862 #line 2863 "modules/tagsparser/tags-parser-grammar.c"
2863 break;
2864
2865 default:
2866 break;
2867 }
2868 YY_IGNORE_MAYBE_UNINITIALIZED_END
2869 }
2870
2871
2872
2873
2874
2875
2876 /*----------.
2877 | yyparse. |
2878 `----------*/
2879
2880 int
yyparse(CfgLexer * lexer,LogParser ** instance,gpointer arg)2881 yyparse (CfgLexer *lexer, LogParser **instance, gpointer arg)
2882 {
2883 /* Lookahead token kind. */
2884 int yychar;
2885
2886
2887 /* The semantic value of the lookahead symbol. */
2888 /* Default value used for initialization, for pacifying older GCCs
2889 or non-GCC compilers. */
2890 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
2891 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
2892
2893 /* Location data for the lookahead symbol. */
2894 static YYLTYPE yyloc_default
2895 # if defined TAGS_PARSER_LTYPE_IS_TRIVIAL && TAGS_PARSER_LTYPE_IS_TRIVIAL
2896 = { 1, 1, 1, 1 }
2897 # endif
2898 ;
2899 YYLTYPE yylloc = yyloc_default;
2900
2901 /* Number of syntax errors so far. */
2902 int yynerrs = 0;
2903
2904 yy_state_fast_t yystate = 0;
2905 /* Number of tokens to shift before error messages enabled. */
2906 int yyerrstatus = 0;
2907
2908 /* Refer to the stacks through separate pointers, to allow yyoverflow
2909 to reallocate them elsewhere. */
2910
2911 /* Their size. */
2912 YYPTRDIFF_T yystacksize = YYINITDEPTH;
2913
2914 /* The state stack: array, bottom, top. */
2915 yy_state_t yyssa[YYINITDEPTH];
2916 yy_state_t *yyss = yyssa;
2917 yy_state_t *yyssp = yyss;
2918
2919 /* The semantic value stack: array, bottom, top. */
2920 YYSTYPE yyvsa[YYINITDEPTH];
2921 YYSTYPE *yyvs = yyvsa;
2922 YYSTYPE *yyvsp = yyvs;
2923
2924 /* The location stack: array, bottom, top. */
2925 YYLTYPE yylsa[YYINITDEPTH];
2926 YYLTYPE *yyls = yylsa;
2927 YYLTYPE *yylsp = yyls;
2928
2929 int yyn;
2930 /* The return value of yyparse. */
2931 int yyresult;
2932 /* Lookahead symbol kind. */
2933 yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
2934 /* The variables used to return semantic value and location from the
2935 action routines. */
2936 YYSTYPE yyval;
2937 YYLTYPE yyloc;
2938
2939 /* The locations where the error started and ended. */
2940 YYLTYPE yyerror_range[3];
2941
2942 /* Buffer for error messages, and its allocated size. */
2943 char yymsgbuf[128];
2944 char *yymsg = yymsgbuf;
2945 YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
2946
2947 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
2948
2949 /* The number of symbols on the RHS of the reduced rule.
2950 Keep to zero when no symbol should be popped. */
2951 int yylen = 0;
2952
2953 YYDPRINTF ((stderr, "Starting parse\n"));
2954
2955 yychar = TAGS_PARSER_EMPTY; /* Cause a token to be read. */
2956
2957 yylsp[0] = yylloc;
2958 goto yysetstate;
2959
2960
2961 /*------------------------------------------------------------.
2962 | yynewstate -- push a new state, which is found in yystate. |
2963 `------------------------------------------------------------*/
2964 yynewstate:
2965 /* In all cases, when you get here, the value and location stacks
2966 have just been pushed. So pushing a state here evens the stacks. */
2967 yyssp++;
2968
2969
2970 /*--------------------------------------------------------------------.
2971 | yysetstate -- set current state (the top of the stack) to yystate. |
2972 `--------------------------------------------------------------------*/
2973 yysetstate:
2974 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
2975 YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
2976 YY_IGNORE_USELESS_CAST_BEGIN
2977 *yyssp = YY_CAST (yy_state_t, yystate);
2978 YY_IGNORE_USELESS_CAST_END
2979 YY_STACK_PRINT (yyss, yyssp);
2980
2981 if (yyss + yystacksize - 1 <= yyssp)
2982 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
2983 YYNOMEM;
2984 #else
2985 {
2986 /* Get the current used size of the three stacks, in elements. */
2987 YYPTRDIFF_T yysize = yyssp - yyss + 1;
2988
2989 # if defined yyoverflow
2990 {
2991 /* Give user a chance to reallocate the stack. Use copies of
2992 these so that the &'s don't force the real ones into
2993 memory. */
2994 yy_state_t *yyss1 = yyss;
2995 YYSTYPE *yyvs1 = yyvs;
2996 YYLTYPE *yyls1 = yyls;
2997
2998 /* Each stack pointer address is followed by the size of the
2999 data in use in that stack, in bytes. This used to be a
3000 conditional around just the two extra args, but that might
3001 be undefined if yyoverflow is a macro. */
3002 yyoverflow (YY_("memory exhausted"),
3003 &yyss1, yysize * YYSIZEOF (*yyssp),
3004 &yyvs1, yysize * YYSIZEOF (*yyvsp),
3005 &yyls1, yysize * YYSIZEOF (*yylsp),
3006 &yystacksize);
3007 yyss = yyss1;
3008 yyvs = yyvs1;
3009 yyls = yyls1;
3010 }
3011 # else /* defined YYSTACK_RELOCATE */
3012 /* Extend the stack our own way. */
3013 if (YYMAXDEPTH <= yystacksize)
3014 YYNOMEM;
3015 yystacksize *= 2;
3016 if (YYMAXDEPTH < yystacksize)
3017 yystacksize = YYMAXDEPTH;
3018
3019 {
3020 yy_state_t *yyss1 = yyss;
3021 union yyalloc *yyptr =
3022 YY_CAST (union yyalloc *,
3023 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
3024 if (! yyptr)
3025 YYNOMEM;
3026 YYSTACK_RELOCATE (yyss_alloc, yyss);
3027 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3028 YYSTACK_RELOCATE (yyls_alloc, yyls);
3029 # undef YYSTACK_RELOCATE
3030 if (yyss1 != yyssa)
3031 YYSTACK_FREE (yyss1);
3032 }
3033 # endif
3034
3035 yyssp = yyss + yysize - 1;
3036 yyvsp = yyvs + yysize - 1;
3037 yylsp = yyls + yysize - 1;
3038
3039 YY_IGNORE_USELESS_CAST_BEGIN
3040 YYDPRINTF ((stderr, "Stack size increased to %ld\n",
3041 YY_CAST (long, yystacksize)));
3042 YY_IGNORE_USELESS_CAST_END
3043
3044 if (yyss + yystacksize - 1 <= yyssp)
3045 YYABORT;
3046 }
3047 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3048
3049
3050 if (yystate == YYFINAL)
3051 YYACCEPT;
3052
3053 goto yybackup;
3054
3055
3056 /*-----------.
3057 | yybackup. |
3058 `-----------*/
3059 yybackup:
3060 /* Do appropriate processing given the current state. Read a
3061 lookahead token if we need one and don't already have one. */
3062
3063 /* First try to decide what to do without reference to lookahead token. */
3064 yyn = yypact[yystate];
3065 if (yypact_value_is_default (yyn))
3066 goto yydefault;
3067
3068 /* Not known => get a lookahead token if don't already have one. */
3069
3070 /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
3071 if (yychar == TAGS_PARSER_EMPTY)
3072 {
3073 YYDPRINTF ((stderr, "Reading a token\n"));
3074 yychar = yylex (&yylval, &yylloc, lexer);
3075 }
3076
3077 if (yychar <= TAGS_PARSER_EOF)
3078 {
3079 yychar = TAGS_PARSER_EOF;
3080 yytoken = YYSYMBOL_YYEOF;
3081 YYDPRINTF ((stderr, "Now at end of input.\n"));
3082 }
3083 else if (yychar == TAGS_PARSER_error)
3084 {
3085 /* The scanner already issued an error message, process directly
3086 to error recovery. But do not keep the error token as
3087 lookahead, it is too special and may lead us to an endless
3088 loop in error recovery. */
3089 yychar = TAGS_PARSER_UNDEF;
3090 yytoken = YYSYMBOL_YYerror;
3091 yyerror_range[1] = yylloc;
3092 goto yyerrlab1;
3093 }
3094 else
3095 {
3096 yytoken = YYTRANSLATE (yychar);
3097 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3098 }
3099
3100 /* If the proper action on seeing token YYTOKEN is to reduce or to
3101 detect an error, take that action. */
3102 yyn += yytoken;
3103 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3104 goto yydefault;
3105 yyn = yytable[yyn];
3106 if (yyn <= 0)
3107 {
3108 if (yytable_value_is_error (yyn))
3109 goto yyerrlab;
3110 yyn = -yyn;
3111 goto yyreduce;
3112 }
3113
3114 /* Count tokens shifted since error; after three, turn off error
3115 status. */
3116 if (yyerrstatus)
3117 yyerrstatus--;
3118
3119 /* Shift the lookahead token. */
3120 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3121 yystate = yyn;
3122 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3123 *++yyvsp = yylval;
3124 YY_IGNORE_MAYBE_UNINITIALIZED_END
3125 *++yylsp = yylloc;
3126
3127 /* Discard the shifted token. */
3128 yychar = TAGS_PARSER_EMPTY;
3129 goto yynewstate;
3130
3131
3132 /*-----------------------------------------------------------.
3133 | yydefault -- do the default action for the current state. |
3134 `-----------------------------------------------------------*/
3135 yydefault:
3136 yyn = yydefact[yystate];
3137 if (yyn == 0)
3138 goto yyerrlab;
3139 goto yyreduce;
3140
3141
3142 /*-----------------------------.
3143 | yyreduce -- do a reduction. |
3144 `-----------------------------*/
3145 yyreduce:
3146 /* yyn is the number of a rule to reduce with. */
3147 yylen = yyr2[yyn];
3148
3149 /* If YYLEN is nonzero, implement the default value of the action:
3150 '$$ = $1'.
3151
3152 Otherwise, the following line sets YYVAL to garbage.
3153 This behavior is undocumented and Bison
3154 users should not rely upon it. Assigning to YYVAL
3155 unconditionally makes the parser a bit smaller, and it avoids a
3156 GCC warning that YYVAL may be used uninitialized. */
3157 yyval = yyvsp[1-yylen];
3158
3159 /* Default location. */
3160 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
3161 yyerror_range[1] = yyloc;
3162 YY_REDUCE_PRINT (yyn);
3163 switch (yyn)
3164 {
3165 case 2: /* start: LL_CONTEXT_PARSER parser_expr_tags */
3166 #line 404 "modules/tagsparser/tags-parser-grammar.y"
3167 { YYACCEPT; }
3168 #line 3169 "modules/tagsparser/tags-parser-grammar.c"
3169 break;
3170
3171 case 3: /* $@1: %empty */
3172 #line 410 "modules/tagsparser/tags-parser-grammar.y"
3173 {
3174 last_parser = *instance = tags_parser_new(configuration);
3175 }
3176 #line 3177 "modules/tagsparser/tags-parser-grammar.c"
3177 break;
3178
3179 case 4: /* parser_expr_tags: KW_TAGS_PARSER '(' $@1 parser_tags_opts ')' */
3180 #line 413 "modules/tagsparser/tags-parser-grammar.y"
3181 { (yyval.ptr) = last_parser; }
3182 #line 3183 "modules/tagsparser/tags-parser-grammar.c"
3183 break;
3184
3185 case 10: /* parser_opt: KW_TEMPLATE '(' string ')' */
3186 #line 824 "modules/tagsparser/tags-parser-grammar.y"
3187 {
3188 LogTemplate *template;
3189 GError *error = NULL;
3190
3191 template = cfg_tree_check_inline_template(&configuration->tree, (yyvsp[-1].cptr), &error);
3192 CHECK_ERROR_GERROR(template != NULL, (yylsp[-1]), error, "Error compiling template");
3193 log_parser_set_template(last_parser, template);
3194 free((yyvsp[-1].cptr));
3195 }
3196 #line 3197 "modules/tagsparser/tags-parser-grammar.c"
3197 break;
3198
3199
3200 #line 3201 "modules/tagsparser/tags-parser-grammar.c"
3201
3202 default: break;
3203 }
3204 /* User semantic actions sometimes alter yychar, and that requires
3205 that yytoken be updated with the new translation. We take the
3206 approach of translating immediately before every use of yytoken.
3207 One alternative is translating here after every semantic action,
3208 but that translation would be missed if the semantic action invokes
3209 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
3210 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
3211 incorrect destructor might then be invoked immediately. In the
3212 case of YYERROR or YYBACKUP, subsequent parser actions might lead
3213 to an incorrect destructor call or verbose syntax error message
3214 before the lookahead is translated. */
3215 YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
3216
3217 YYPOPSTACK (yylen);
3218 yylen = 0;
3219
3220 *++yyvsp = yyval;
3221 *++yylsp = yyloc;
3222
3223 /* Now 'shift' the result of the reduction. Determine what state
3224 that goes to, based on the state we popped back to and the rule
3225 number reduced by. */
3226 {
3227 const int yylhs = yyr1[yyn] - YYNTOKENS;
3228 const int yyi = yypgoto[yylhs] + *yyssp;
3229 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
3230 ? yytable[yyi]
3231 : yydefgoto[yylhs]);
3232 }
3233
3234 goto yynewstate;
3235
3236
3237 /*--------------------------------------.
3238 | yyerrlab -- here on detecting error. |
3239 `--------------------------------------*/
3240 yyerrlab:
3241 /* Make sure we have latest lookahead translation. See comments at
3242 user semantic actions for why this is necessary. */
3243 yytoken = yychar == TAGS_PARSER_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
3244 /* If not already recovering from an error, report this error. */
3245 if (!yyerrstatus)
3246 {
3247 ++yynerrs;
3248 {
3249 yypcontext_t yyctx
3250 = {yyssp, yytoken, &yylloc};
3251 char const *yymsgp = YY_("syntax error");
3252 int yysyntax_error_status;
3253 yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3254 if (yysyntax_error_status == 0)
3255 yymsgp = yymsg;
3256 else if (yysyntax_error_status == -1)
3257 {
3258 if (yymsg != yymsgbuf)
3259 YYSTACK_FREE (yymsg);
3260 yymsg = YY_CAST (char *,
3261 YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
3262 if (yymsg)
3263 {
3264 yysyntax_error_status
3265 = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
3266 yymsgp = yymsg;
3267 }
3268 else
3269 {
3270 yymsg = yymsgbuf;
3271 yymsg_alloc = sizeof yymsgbuf;
3272 yysyntax_error_status = YYENOMEM;
3273 }
3274 }
3275 yyerror (&yylloc, lexer, instance, arg, yymsgp);
3276 if (yysyntax_error_status == YYENOMEM)
3277 YYNOMEM;
3278 }
3279 }
3280
3281 yyerror_range[1] = yylloc;
3282 if (yyerrstatus == 3)
3283 {
3284 /* If just tried and failed to reuse lookahead token after an
3285 error, discard it. */
3286
3287 if (yychar <= TAGS_PARSER_EOF)
3288 {
3289 /* Return failure if at end of input. */
3290 if (yychar == TAGS_PARSER_EOF)
3291 YYABORT;
3292 }
3293 else
3294 {
3295 yydestruct ("Error: discarding",
3296 yytoken, &yylval, &yylloc, lexer, instance, arg);
3297 yychar = TAGS_PARSER_EMPTY;
3298 }
3299 }
3300
3301 /* Else will try to reuse lookahead token after shifting the error
3302 token. */
3303 goto yyerrlab1;
3304
3305
3306 /*---------------------------------------------------.
3307 | yyerrorlab -- error raised explicitly by YYERROR. |
3308 `---------------------------------------------------*/
3309 yyerrorlab:
3310 /* Pacify compilers when the user code never invokes YYERROR and the
3311 label yyerrorlab therefore never appears in user code. */
3312 if (0)
3313 YYERROR;
3314 ++yynerrs;
3315
3316 /* Do not reclaim the symbols of the rule whose action triggered
3317 this YYERROR. */
3318 YYPOPSTACK (yylen);
3319 yylen = 0;
3320 YY_STACK_PRINT (yyss, yyssp);
3321 yystate = *yyssp;
3322 goto yyerrlab1;
3323
3324
3325 /*-------------------------------------------------------------.
3326 | yyerrlab1 -- common code for both syntax error and YYERROR. |
3327 `-------------------------------------------------------------*/
3328 yyerrlab1:
3329 yyerrstatus = 3; /* Each real token shifted decrements this. */
3330
3331 /* Pop stack until we find a state that shifts the error token. */
3332 for (;;)
3333 {
3334 yyn = yypact[yystate];
3335 if (!yypact_value_is_default (yyn))
3336 {
3337 yyn += YYSYMBOL_YYerror;
3338 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
3339 {
3340 yyn = yytable[yyn];
3341 if (0 < yyn)
3342 break;
3343 }
3344 }
3345
3346 /* Pop the current state because it cannot handle the error token. */
3347 if (yyssp == yyss)
3348 YYABORT;
3349
3350 yyerror_range[1] = *yylsp;
3351 yydestruct ("Error: popping",
3352 YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, lexer, instance, arg);
3353 YYPOPSTACK (1);
3354 yystate = *yyssp;
3355 YY_STACK_PRINT (yyss, yyssp);
3356 }
3357
3358 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3359 *++yyvsp = yylval;
3360 YY_IGNORE_MAYBE_UNINITIALIZED_END
3361
3362 yyerror_range[2] = yylloc;
3363 ++yylsp;
3364 YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
3365
3366 /* Shift the error token. */
3367 YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
3368
3369 yystate = yyn;
3370 goto yynewstate;
3371
3372
3373 /*-------------------------------------.
3374 | yyacceptlab -- YYACCEPT comes here. |
3375 `-------------------------------------*/
3376 yyacceptlab:
3377 yyresult = 0;
3378 goto yyreturnlab;
3379
3380
3381 /*-----------------------------------.
3382 | yyabortlab -- YYABORT comes here. |
3383 `-----------------------------------*/
3384 yyabortlab:
3385 yyresult = 1;
3386 goto yyreturnlab;
3387
3388
3389 /*-----------------------------------------------------------.
3390 | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
3391 `-----------------------------------------------------------*/
3392 yyexhaustedlab:
3393 yyerror (&yylloc, lexer, instance, arg, YY_("memory exhausted"));
3394 yyresult = 2;
3395 goto yyreturnlab;
3396
3397
3398 /*----------------------------------------------------------.
3399 | yyreturnlab -- parsing is finished, clean up and return. |
3400 `----------------------------------------------------------*/
3401 yyreturnlab:
3402 if (yychar != TAGS_PARSER_EMPTY)
3403 {
3404 /* Make sure we have latest lookahead translation. See comments at
3405 user semantic actions for why this is necessary. */
3406 yytoken = YYTRANSLATE (yychar);
3407 yydestruct ("Cleanup: discarding lookahead",
3408 yytoken, &yylval, &yylloc, lexer, instance, arg);
3409 }
3410 /* Do not reclaim the symbols of the rule whose action triggered
3411 this YYABORT or YYACCEPT. */
3412 YYPOPSTACK (yylen);
3413 YY_STACK_PRINT (yyss, yyssp);
3414 while (yyssp != yyss)
3415 {
3416 yydestruct ("Cleanup: popping",
3417 YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, lexer, instance, arg);
3418 YYPOPSTACK (1);
3419 }
3420 #ifndef yyoverflow
3421 if (yyss != yyssa)
3422 YYSTACK_FREE (yyss);
3423 #endif
3424 if (yymsg != yymsgbuf)
3425 YYSTACK_FREE (yymsg);
3426 return yyresult;
3427 }
3428
3429 #line 1190 "modules/tagsparser/tags-parser-grammar.y"
3430
3431