1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 /* A lexical scanner generated by flex */
22 /* Scanner skeleton version:
25 #define YY_STACK_USED 0
27 #ifndef YY_ALWAYS_INTERACTIVE
28 #define YY_ALWAYS_INTERACTIVE 0
30 #ifndef YY_NEVER_INTERACTIVE
31 #define YY_NEVER_INTERACTIVE 0
47 /* Use prototypes in function declarations. */
50 /* The "const" storage-class-modifier is valid. */
61 #define YY_PROTO(proto) proto
63 #define YY_PROTO(proto) ()
66 /* Returned upon end-of-file. */
69 /* Promotes a possibly negative, possibly signed char to an unsigned
70 * integer for use as an array index. If the signed char is negative,
71 * we want to instead treat it as an 8-bit unsigned char, hence the
74 #define YY_SC_TO_UI(c) (static_cast<unsigned int>(static_cast<unsigned char>(c)))
76 /* Translate the current start state into a value that can be later handed
77 * to BEGIN to return to the state.
79 #define YY_START ((yy_start - 1) / 2)
81 /* Action number for EOF rule of a given start state. */
82 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
84 /* Special action meaning "start processing a new file". */
85 #define YY_NEW_FILE yyrestart( yyin )
87 #define YY_END_OF_BUFFER_CHAR 0
89 /* Size of default input buffer. */
90 #define YY_BUF_SIZE 16384
94 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
98 #define EOB_ACT_CONTINUE_SCAN 0
99 #define EOB_ACT_END_OF_FILE 1
100 #define EOB_ACT_LAST_MATCH 2
102 //#define unput(c) yyunput( c, yytext_ptr )
104 /* The following is because we cannot portably get our hands on size_t
105 * (without autoconf's help, which isn't available because we want
106 * flex-generated scanners to compile on their own).
108 typedef unsigned int yy_size_t
;
112 struct yy_buffer_state
116 char *yy_ch_buf
; /* input buffer */
117 char *yy_buf_pos
; /* current position in input buffer */
119 /* Size of input buffer in bytes, not including room for EOB
122 yy_size_t yy_buf_size
;
124 /* Number of characters read into yy_ch_buf, not including EOB
129 /* Whether we "own" the buffer - i.e., we know we created it,
130 * and can realloc() it to grow it, and should free() it to
133 int yy_is_our_buffer
;
135 /* Whether this is an "interactive" input source; if so, and
136 * if we're using stdio for input, then we want to use getc()
137 * instead of fread(), to make sure we stop fetching input after
140 bool yy_is_interactive
;
142 /* Whether we're considered to be at the beginning of a line.
143 * If so, '^' rules will be active on the next match, otherwise
148 /* Whether to try to fill the input buffer when we reach the
153 int yy_buffer_status
;
154 #define YY_BUFFER_NEW 0
155 #define YY_BUFFER_NORMAL 1
156 /* When an EOF's been seen but there's still some text to process
157 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
158 * shouldn't try reading from the input source any more. We might
159 * still have a bunch of tokens to match, though, because of
160 * possible backing-up.
162 * When we actually see the EOF, we change the status to "new"
163 * (via yyrestart()), so that the user can continue scanning by
164 * just pointing yyin at a new input file.
166 #define YY_BUFFER_EOF_PENDING 2
171 static YY_BUFFER_STATE yy_current_buffer
= nullptr;
173 /* We provide macros for accessing buffer states in case in the
174 * future we want to put the buffer states in a more general
177 #define YY_CURRENT_BUFFER yy_current_buffer
180 /* yy_hold_char holds the character lost when yytext is formed. */
181 static char yy_hold_char
;
183 static int yy_n_chars
; /* number of characters read into yy_ch_buf */
188 /* Points to current character in buffer. */
189 static char *yy_c_buf_p
= nullptr;
190 static int yy_init
= 1; /* whether we need to initialize */
191 static int yy_start
= 0; /* start state number */
193 /* Flag which is used to allow yywrap()'s to do buffer switches
194 * instead of setting up a fresh yyin. A bit of a hack ...
196 static int yy_did_buffer_switch_on_eof
;
198 static void yyrestart
YY_PROTO(( FILE *input_file
));
200 static void yy_switch_to_buffer
YY_PROTO(( YY_BUFFER_STATE new_buffer
));
201 static void yy_load_buffer_state
YY_PROTO(( ));
202 static YY_BUFFER_STATE yy_create_buffer
YY_PROTO(( FILE *file
, int size
));
203 static void yy_delete_buffer
YY_PROTO(( YY_BUFFER_STATE b
));
204 static void yy_init_buffer
YY_PROTO(( YY_BUFFER_STATE b
, FILE *file
));
205 static void yy_flush_buffer
YY_PROTO(( YY_BUFFER_STATE b
));
207 static YY_BUFFER_STATE yy_scan_buffer
YY_PROTO(( char *base
, yy_size_t size
));
208 static YY_BUFFER_STATE yy_scan_string
YY_PROTO(( yyconst
char *yy_str
));
209 static YY_BUFFER_STATE yy_scan_bytes
YY_PROTO(( yyconst
char *bytes
, int len
));
211 static void *yy_flex_alloc
YY_PROTO(( yy_size_t
));
212 static void *yy_flex_realloc
YY_PROTO(( void *, yy_size_t
));
213 static void yy_flex_free
YY_PROTO(( void * ));
215 typedef unsigned char YY_CHAR
;
216 static FILE *yyin
= nullptr, *yyout
= nullptr;
217 typedef int yy_state_type
;
218 #define yytext_ptr yytext
220 static yy_state_type yy_get_previous_state
YY_PROTO(( ));
221 static yy_state_type yy_try_NUL_trans
YY_PROTO(( yy_state_type current_state
));
222 static int yy_get_next_buffer
YY_PROTO(( ));
223 [[noreturn
]] static void yy_fatal_error
YY_PROTO(( yyconst
char msg
[] ));
225 /* Done after the current pattern has been matched and before the
226 * corresponding action - sets up yytext.
228 #define YY_DO_BEFORE_ACTION \
229 yytext_ptr = yy_bp; \
230 yyleng = static_cast<int>(yy_cp - yy_bp); \
231 yy_hold_char = *yy_cp; \
235 #define YY_END_OF_BUFFER 46
236 yyconst
short int yy_accept
[994] =
238 0, 0, 46, 44, 41, 41, 44, 42, 39, 37,
239 37, 36, 39, 39, 44, 44, 38, 40, 35, 43,
240 13, 21, 36, 36, 22, 16, 17, 0, 34, 0,
241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
242 0, 0, 24, 0, 24, 0, 0, 0, 0, 0,
243 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
244 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
245 0, 0, 0, 0, 0, 0, 4, 31, 5, 43,
246 36, 20, 14, 15, 0, 0, 0, 0, 0, 0,
247 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
249 0, 0, 0, 10, 0, 0, 27, 0, 0, 0,
250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
252 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
254 0, 0, 0, 0, 0, 0, 12, 12, 0, 0,
255 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
256 0, 0, 0, 0, 12, 0, 27, 0, 0, 0,
257 0, 0, 0, 0, 0, 11, 0, 9, 0, 0,
258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
261 0, 0, 0, 23, 0, 0, 0, 0, 0, 0,
262 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
263 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
267 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
268 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
269 27, 0, 0, 0, 0, 12, 0, 0, 8, 0,
271 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
272 0, 0, 0, 0, 0, 0, 0, 27, 26, 0,
273 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
277 0, 0, 0, 0, 0, 0, 0, 0, 12, 27,
278 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
279 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
287 0, 11, 0, 0, 0, 0, 0, 0, 8, 0,
288 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
289 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
290 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
294 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
295 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
296 0, 0, 0, 28, 0, 0, 12, 0, 0, 0,
297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
299 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
302 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
304 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
305 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
306 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
309 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
315 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
317 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
320 0, 0, 0, 0, 0, 12, 0, 12, 0, 0,
321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
324 0, 0, 0, 0, 0, 0, 11, 0, 0, 0,
326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
328 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
329 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
331 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
333 0, 0, 12, 12, 0, 24, 0, 0, 0, 0,
334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
335 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
350 yyconst
int yy_ec
[256] =
352 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
353 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
354 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
355 1, 1, 4, 1, 1, 1, 1, 5, 1, 6,
356 7, 8, 8, 9, 10, 11, 8, 12, 12, 12,
357 12, 12, 12, 12, 12, 12, 12, 13, 14, 15,
358 16, 17, 1, 1, 18, 19, 20, 21, 22, 1,
359 23, 1, 24, 25, 26, 27, 28, 29, 30, 31,
360 1, 32, 33, 34, 35, 36, 1, 37, 1, 38,
361 39, 40, 41, 42, 42, 1, 43, 44, 45, 46,
363 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
364 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
365 67, 68, 69, 70, 71, 72, 1, 1, 1, 1,
366 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
367 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
368 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
369 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
370 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
371 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
372 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
374 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
375 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
376 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
377 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
378 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
382 yyconst
int yy_meta
[74] =
384 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
385 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
386 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
387 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
388 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
389 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
390 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
394 yyconst
short int yy_base
[995] =
396 0, 72, 1314, 1315, 1315, 1315, 1297, 1315, 1315, 1315,
397 1295, 2, 8, 1294, 1281, 142, 1315, 1315, 1315, 1236,
398 1315, 1315, 1296, 8, 1290, 1291, 1288, 1274, 1315, 0,
399 0, 1253, 1, 1, 1259, 7, 1244, 1257, 8, 1236,
400 1235, 1242, 35, 43, 1245, 0, 1237, 1251, 1242, 1245,
401 1315, 46, 72, 171, 79, 62, 77, 184, 192, 92,
402 1236, 2, 207, 216, 225, 234, 250, 46, 269, 278,
403 295, 10, 111, 255, 10, 1243, 1315, 1315, 1315, 1216,
404 1276, 1315, 1315, 1315, 1253, 1228, 1225, 1222, 1217, 1231,
405 1227, 1237, 1214, 1217, 1234, 1221, 1315, 1213, 1223, 1215,
407 1217, 1223, 1214, 1315, 168, 1218, 1315, 1217, 1210, 1217,
408 1216, 1201, 1216, 177, 1202, 1199, 1197, 34, 1216, 1209,
409 1199, 181, 36, 164, 198, 1207, 119, 199, 1201, 1196,
410 1196, 218, 1192, 1188, 225, 1205, 1191, 78, 40, 245,
411 280, 1197, 175, 1184, 1192, 1187, 1198, 1182, 1179, 1198,
412 101, 1197, 1179, 227, 1183, 1191, 1177, 1315, 1192, 1172,
413 1190, 1189, 53, 1184, 1187, 260, 1167, 1171, 1184, 1168,
414 1165, 248, 1177, 1166, 291, 1168, 1161, 1174, 1164, 1161,
415 222, 268, 1160, 0, 1170, 1315, 1172, 1315, 247, 299,
416 1152, 1170, 1155, 1155, 300, 1156, 1155, 1157, 1160, 1146,
418 1145, 1153, 302, 1152, 1139, 1158, 1144, 1152, 1147, 1143,
419 1136, 308, 1146, 1137, 1150, 1136, 317, 1148, 308, 318,
420 1147, 311, 1146, 322, 1145, 312, 1140, 319, 1128, 1134,
421 324, 340, 1124, 333, 340, 1137, 1136, 1121, 1118, 1315,
422 1129, 1121, 1134, 1114, 1120, 1118, 1122, 1117, 1128, 1114,
423 1111, 1124, 1105, 1117, 1116, 1119, 1113, 1107, 1099, 1100,
424 1102, 1107, 344, 1114, 1094, 1097, 1104, 1099, 327, 1092,
425 347, 1094, 1095, 1096, 1315, 1105, 1096, 1103, 350, 1083,
426 1099, 1079, 1088, 1079, 1095, 1094, 1094, 1088, 1076, 1085,
427 1084, 1084, 1082, 1082, 1068, 1067, 1073, 1071, 1079, 1069,
429 1069, 1061, 1315, 1071, 1070, 1059, 1057, 1075, 1072, 1051,
430 1060, 1050, 1053, 1052, 1058, 1054, 348, 1047, 1315, 1065,
431 1045, 1048, 1061, 1055, 1052, 1040, 1039, 1043, 1042, 338,
432 1035, 1048, 1035, 1048, 1038, 1039, 1029, 1031, 276, 1030,
433 1027, 1026, 1038, 371, 1023, 1042, 1029, 1023, 355, 1024,
434 1036, 1025, 372, 1036, 1032, 1028, 1025, 1020, 1017, 1016,
435 1022, 1008, 1014, 1020, 1008, 1012, 1006, 1010, 1017, 1013,
436 1008, 1007, 1014, 360, 997, 995, 997, 995, 1010, 372,
437 1008, 993, 1002, 156, 1005, 1003, 1006, 1001, 997, 996,
438 985, 987, 980, 991, 374, 980, 978, 977, 989, 990,
440 993, 992, 969, 990, 975, 988, 976, 986, 985, 981,
441 379, 191, 983, 965, 962, 980, 979, 961, 955, 965,
442 960, 374, 967, 965, 965, 967, 963, 969, 962, 963,
443 947, 951, 950, 955, 962, 939, 945, 941, 938, 944,
444 377, 383, 940, 938, 939, 949, 948, 943, 946, 945,
445 944, 929, 936, 927, 930, 939, 921, 935, 922, 939,
446 924, 933, 920, 935, 910, 922, 911, 912, 919, 1315,
447 916, 928, 923, 907, 388, 906, 920, 916, 898, 914,
448 920, 916, 907, 906, 898, 400, 901, 894, 900, 892,
449 893, 392, 891, 898, 902, 907, 889, 888, 891, 895,
451 885, 901, 883, 879, 880, 879, 892, 405, 884, 886,
452 889, 888, 872, 887, 878, 877, 887, 872, 865, 865,
453 865, 876, 870, 863, 871, 863, 877, 860, 864, 870,
454 869, 857, 856, 1315, 400, 866, 865, 851, 863, 849,
455 861, 864, 859, 844, 848, 843, 856, 855, 840, 834,
456 837, 843, 838, 403, 845, 843, 843, 834, 841, 829,
457 1315, 842, 401, 824, 831, 826, 828, 841, 823, 831,
458 834, 829, 822, 835, 820, 820, 818, 813, 822, 815,
459 822, 823, 809, 802, 806, 810, 809, 800, 809, 801,
460 1315, 803, 800, 801, 404, 807, 803, 805, 810, 803,
462 799, 805, 805, 803, 785, 786, 1315, 784, 800, 785,
463 797, 787, 782, 780, 783, 778, 784, 776, 789, 784,
464 783, 790, 785, 771, 787, 778, 768, 769, 778, 767,
465 762, 776, 779, 770, 763, 758, 764, 774, 759, 93,
466 126, 187, 225, 269, 333, 415, 345, 372, 388, 397,
467 400, 417, 418, 408, 411, 427, 409, 418, 426, 417,
468 419, 415, 417, 418, 419, 419, 423, 422, 422, 428,
469 438, 438, 444, 432, 434, 434, 431, 442, 437, 446,
470 449, 436, 456, 449, 454, 456, 443, 448, 445, 457,
471 459, 459, 453, 450, 446, 469, 457, 463, 460, 454,
473 460, 471, 476, 473, 476, 458, 461, 468, 462, 471,
474 484, 485, 466, 481, 484, 481, 473, 488, 475, 489,
475 481, 475, 491, 491, 496, 482, 483, 495, 1315, 502,
476 498, 490, 500, 503, 497, 487, 488, 498, 512, 508,
477 501, 509, 512, 506, 514, 502, 520, 521, 518, 501,
478 504, 505, 506, 523, 524, 525, 526, 527, 510, 519,
479 523, 518, 528, 515, 538, 526, 532, 529, 523, 535,
480 525, 534, 529, 533, 534, 542, 531, 544, 535, 536,
481 543, 555, 556, 545, 541, 541, 540, 543, 558, 548,
482 549, 552, 548, 563, 551, 550, 552, 557, 553, 565,
484 555, 568, 576, 563, 563, 572, 578, 562, 564, 576,
485 582, 566, 582, 580, 577, 572, 573, 589, 574, 581,
486 586, 576, 577, 581, 579, 583, 583, 597, 602, 590,
487 587, 594, 606, 607, 597, 1315, 606, 591, 589, 590,
488 594, 614, 596, 602, 600, 604, 600, 613, 603, 604,
489 617, 605, 605, 604, 608, 628, 610, 619, 610, 619,
490 615, 628, 636, 618, 619, 635, 640, 622, 628, 628,
491 637, 626, 642, 643, 644, 646, 648, 647, 635, 640,
492 641, 652, 658, 642, 652, 661, 640, 650, 652, 655,
493 659, 651, 669, 656, 671, 668, 656, 666, 661, 676,
495 660, 678, 657, 666, 677, 666, 667, 680, 677, 682,
496 673, 675, 676, 673, 674, 686, 676, 672, 691, 677,
497 680, 681, 686, 683, 684, 696, 686, 687, 688, 692,
498 702, 702, 687, 693, 697, 705, 696, 711, 701, 699,
499 714, 701, 705, 713, 704, 708, 706, 711, 706, 719,
500 713, 706, 710, 716, 718, 718, 713, 722, 723, 723,
501 725, 718, 722, 728, 721, 730, 742, 727, 725, 748,
502 727, 728, 729, 730, 731, 754, 733, 734, 743, 743,
503 742, 747, 748, 746, 742, 748, 749, 754, 754, 755,
508 yyconst
short int yy_def
[995] =
510 994, 994, 993, 993, 993, 993, 993, 993, 993, 993,
511 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
512 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
513 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
514 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
515 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
516 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
517 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
518 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
519 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
521 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
522 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
523 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
524 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
525 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
526 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
527 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
528 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
529 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
530 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
532 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
533 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
534 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
535 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
536 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
537 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
538 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
539 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
540 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
541 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
543 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
544 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
545 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
546 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
547 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
548 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
549 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
550 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
551 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
552 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
554 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
555 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
556 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
557 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
558 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
559 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
560 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
561 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
562 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
563 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
565 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
566 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
567 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
568 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
569 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
570 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
571 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
572 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
573 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
574 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
576 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
577 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
578 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
579 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
580 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
581 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
582 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
583 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
584 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
585 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
587 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
588 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
589 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
590 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
591 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
592 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
593 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
594 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
595 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
596 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
598 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
599 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
600 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
601 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
602 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
603 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
604 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
605 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
606 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
607 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
609 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
610 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
611 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
612 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
613 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
614 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
615 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
616 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
617 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
622 yyconst
short int yy_nxt
[1389] =
624 993, 5, 6, 7, 8, 9, 9, 10, 993, 11,
625 993, 12, 23, 24, 13, 10, 14, 25, 23, 24,
626 993, 993, 26, 993, 993, 993, 15, 993, 993, 993,
627 993, 993, 993, 993, 993, 993, 993, 993, 9, 16,
628 9, 17, 112, 993, 170, 158, 88, 91, 171, 113,
629 101, 92, 993, 86, 102, 107, 89, 93, 94, 87,
630 188, 97, 95, 98, 103, 231, 238, 232, 9, 18,
631 9, 19, 20, 5, 6, 7, 8, 9, 9, 10,
632 266, 11, 294, 12, 106, 104, 13, 10, 14, 97,
633 117, 267, 109, 110, 107, 108, 295, 186, 15, 118,
635 119, 120, 273, 121, 205, 122, 123, 107, 206, 315,
636 9, 16, 9, 17, 124, 145, 146, 147, 125, 148,
637 149, 138, 126, 150, 139, 140, 292, 151, 127, 141,
638 152, 128, 142, 153, 129, 143, 154, 164, 293, 144,
639 9, 18, 9, 19, 20, 29, 165, 166, 167, 737,
640 29, 306, 168, 233, 29, 29, 234, 235, 107, 30,
641 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
642 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
643 97, 51, 738, 280, 52, 53, 54, 55, 56, 57,
644 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
646 68, 69, 70, 71, 72, 73, 74, 75, 274, 76,
647 77, 78, 79, 130, 255, 541, 131, 542, 256, 260,
648 132, 133, 261, 275, 134, 271, 155, 135, 156, 107,
649 157, 136, 158, 137, 160, 161, 299, 262, 162, 300,
650 272, 281, 276, 159, 571, 282, 277, 186, 163, 172,
651 572, 173, 174, 175, 176, 177, 178, 179, 182, 278,
652 158, 180, 107, 181, 285, 183, 184, 189, 188, 309,
653 107, 190, 185, 186, 186, 158, 187, 332, 188, 193,
654 288, 191, 289, 310, 194, 290, 291, 188, 195, 192,
655 336, 196, 200, 107, 197, 198, 201, 199, 296, 202,
657 188, 236, 323, 324, 186, 237, 107, 318, 337, 203,
658 204, 207, 97, 208, 186, 209, 210, 211, 212, 213,
659 216, 319, 297, 214, 217, 333, 499, 218, 219, 186,
660 215, 500, 220, 107, 107, 221, 222, 226, 327, 223,
661 224, 338, 225, 186, 227, 228, 343, 97, 351, 158,
662 344, 229, 352, 186, 230, 374, 368, 158, 353, 365,
663 371, 107, 369, 370, 188, 378, 379, 383, 372, 388,
664 375, 376, 385, 386, 188, 396, 319, 389, 366, 380,
665 430, 381, 391, 390, 275, 392, 186, 431, 489, 397,
666 421, 433, 739, 393, 441, 742, 477, 509, 490, 398,
668 394, 422, 532, 423, 424, 425, 442, 434, 435, 478,
669 443, 444, 445, 446, 447, 503, 510, 319, 538, 592,
670 553, 569, 533, 579, 104, 743, 504, 593, 595, 513,
671 744, 554, 539, 555, 556, 557, 558, 596, 570, 594,
672 597, 619, 624, 664, 598, 632, 633, 620, 645, 625,
673 683, 634, 678, 188, 706, 158, 158, 665, 646, 626,
674 707, 740, 684, 79, 647, 741, 745, 79, 729, 746,
675 748, 749, 97, 750, 751, 752, 747, 753, 754, 755,
676 756, 158, 757, 758, 759, 760, 761, 762, 764, 765,
677 766, 767, 188, 188, 768, 769, 770, 763, 771, 772,
679 773, 97, 774, 104, 775, 776, 777, 778, 104, 779,
680 561, 780, 104, 781, 782, 783, 784, 785, 786, 158,
681 186, 319, 319, 787, 788, 789, 790, 792, 793, 794,
682 795, 796, 186, 797, 798, 799, 188, 800, 801, 802,
683 803, 804, 805, 806, 807, 808, 791, 809, 810, 97,
684 97, 561, 561, 188, 811, 812, 813, 814, 815, 97,
685 158, 816, 817, 818, 97, 561, 819, 820, 821, 822,
686 823, 824, 825, 826, 561, 827, 828, 829, 830, 561,
687 831, 188, 832, 833, 834, 835, 836, 837, 838, 839,
688 840, 841, 842, 843, 844, 845, 846, 104, 104, 97,
690 847, 848, 849, 319, 850, 319, 319, 851, 319, 319,
691 852, 97, 853, 854, 97, 855, 856, 857, 858, 859,
692 860, 861, 862, 863, 864, 865, 866, 867, 836, 868,
693 158, 869, 870, 871, 186, 319, 872, 873, 874, 158,
694 158, 158, 875, 876, 877, 878, 879, 880, 188, 188,
695 881, 882, 729, 561, 561, 883, 884, 886, 887, 888,
696 889, 729, 78, 319, 319, 890, 729, 891, 561, 97,
697 892, 893, 158, 885, 561, 894, 895, 896, 897, 899,
698 900, 836, 901, 902, 903, 904, 905, 97, 906, 907,
699 158, 97, 910, 836, 911, 898, 912, 913, 836, 908,
701 914, 915, 916, 917, 561, 909, 918, 104, 919, 920,
702 921, 922, 923, 924, 729, 925, 926, 561, 927, 928,
703 929, 561, 930, 729, 158, 158, 931, 932, 836, 933,
704 188, 188, 934, 935, 936, 937, 561, 938, 97, 939,
705 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
706 950, 561, 951, 952, 953, 954, 955, 957, 958, 959,
707 961, 962, 963, 964, 965, 966, 967, 186, 968, 969,
708 561, 970, 971, 956, 972, 186, 960, 561, 973, 974,
709 561, 975, 561, 976, 977, 836, 978, 979, 186, 561,
710 981, 561, 982, 561, 983, 561, 984, 561, 836, 985,
712 561, 986, 186, 561, 980, 987, 988, 989, 990, 561,
713 991, 992, 561, 561, 4, 736, 735, 734, 158, 561,
714 733, 732, 731, 730, 107, 107, 729, 77, 728, 727,
715 726, 77, 188, 725, 724, 723, 722, 97, 97, 721,
716 720, 719, 718, 717, 186, 319, 716, 186, 715, 158,
717 714, 319, 713, 712, 711, 710, 709, 708, 319, 705,
718 319, 704, 703, 702, 107, 107, 107, 158, 701, 700,
719 699, 104, 104, 698, 697, 696, 695, 694, 693, 692,
720 691, 690, 689, 104, 688, 687, 686, 685, 186, 607,
721 158, 682, 681, 680, 679, 677, 676, 186, 675, 674,
723 186, 186, 673, 672, 186, 275, 188, 671, 670, 669,
724 668, 667, 666, 186, 186, 663, 158, 662, 158, 188,
725 97, 661, 660, 659, 658, 657, 656, 655, 654, 653,
726 79, 652, 29, 651, 97, 650, 649, 648, 644, 643,
727 186, 642, 641, 188, 640, 158, 158, 639, 638, 97,
728 637, 636, 635, 631, 630, 629, 628, 627, 607, 77,
729 623, 622, 188, 97, 607, 97, 158, 621, 618, 275,
730 188, 158, 617, 616, 158, 615, 614, 613, 158, 561,
731 612, 188, 607, 611, 158, 610, 609, 608, 275, 607,
732 606, 275, 605, 604, 603, 602, 601, 600, 599, 591,
734 590, 589, 158, 588, 587, 586, 585, 584, 583, 97,
735 186, 188, 97, 275, 582, 581, 580, 578, 577, 576,
736 575, 104, 104, 574, 573, 104, 568, 104, 104, 567,
737 566, 565, 104, 564, 104, 188, 563, 562, 561, 560,
738 559, 552, 551, 550, 549, 548, 547, 546, 545, 544,
739 543, 107, 540, 97, 537, 536, 186, 535, 534, 531,
740 530, 529, 107, 528, 527, 526, 525, 524, 523, 522,
741 521, 520, 519, 518, 517, 516, 515, 29, 514, 512,
742 511, 158, 508, 507, 506, 505, 502, 319, 186, 501,
743 498, 497, 496, 495, 494, 493, 492, 491, 488, 487,
745 486, 485, 484, 483, 482, 481, 480, 188, 479, 476,
746 475, 474, 97, 473, 472, 471, 470, 469, 97, 468,
747 467, 466, 465, 186, 464, 463, 462, 461, 460, 459,
748 458, 457, 456, 107, 107, 455, 158, 454, 186, 453,
749 452, 451, 450, 449, 448, 188, 440, 439, 438, 437,
750 436, 432, 429, 428, 427, 426, 104, 420, 419, 418,
751 417, 416, 415, 414, 413, 412, 411, 410, 409, 158,
752 104, 408, 407, 406, 405, 404, 104, 403, 402, 401,
753 158, 400, 399, 395, 387, 97, 384, 382, 377, 373,
754 367, 364, 363, 362, 361, 360, 359, 358, 357, 356,
756 355, 354, 188, 188, 350, 349, 348, 347, 346, 345,
757 342, 341, 340, 339, 335, 334, 97, 331, 330, 186,
758 329, 328, 326, 325, 107, 322, 321, 158, 320, 317,
759 316, 314, 313, 275, 312, 158, 107, 311, 308, 307,
760 188, 305, 304, 303, 302, 97, 301, 298, 186, 107,
761 287, 286, 284, 186, 283, 279, 270, 269, 268, 265,
762 264, 263, 259, 104, 258, 257, 104, 104, 104, 254,
763 253, 252, 251, 250, 249, 248, 104, 247, 246, 245,
764 244, 104, 97, 243, 242, 241, 240, 81, 80, 239,
765 169, 116, 104, 115, 114, 111, 105, 104, 104, 100,
767 99, 96, 90, 85, 84, 83, 82, 81, 80, 28,
768 27, 22, 21, 993, 3, 993, 993, 993, 993, 993,
769 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
770 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
771 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
772 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
773 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
774 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
775 993, 993, 993, 993, 993, 993, 993, 993
778 yyconst
short int yy_chk
[1389] =
780 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,
781 0, 1, 12, 12, 1, 1, 1, 13, 24, 24,
782 0, 0, 13, 0, 0, 0, 1, 0, 0, 0,
783 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
784 1, 1, 46, 0, 62, 184, 31, 33, 62, 46,
785 39, 33, 0, 30, 39, 184, 31, 33, 34, 30,
786 75, 36, 34, 36, 39, 72, 75, 72, 1, 1,
787 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
788 118, 2, 139, 2, 43, 43, 2, 2, 2, 44,
789 52, 118, 44, 44, 43, 43, 139, 123, 2, 52,
791 52, 52, 123, 52, 68, 52, 52, 163, 68, 163,
792 2, 2, 2, 2, 53, 56, 56, 56, 53, 56,
793 56, 55, 53, 56, 55, 55, 138, 56, 53, 55,
794 57, 53, 55, 57, 53, 55, 57, 60, 138, 55,
795 2, 2, 2, 2, 2, 16, 60, 60, 60, 640,
796 16, 151, 60, 73, 16, 16, 73, 73, 151, 16,
797 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
798 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
799 127, 16, 641, 127, 16, 16, 16, 16, 16, 16,
800 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
802 16, 16, 16, 16, 16, 16, 16, 16, 124, 16,
803 16, 16, 16, 54, 105, 384, 54, 384, 105, 114,
804 54, 54, 114, 124, 54, 122, 58, 54, 58, 122,
805 58, 54, 58, 54, 59, 59, 143, 114, 59, 143,
806 122, 128, 125, 58, 412, 128, 125, 642, 59, 63,
807 412, 63, 63, 63, 63, 63, 63, 63, 64, 125,
808 63, 63, 63, 63, 132, 64, 64, 65, 132, 154,
809 181, 65, 64, 64, 643, 65, 64, 181, 64, 66,
810 135, 65, 135, 154, 66, 135, 135, 65, 66, 65,
811 189, 66, 67, 140, 66, 66, 67, 66, 140, 67,
813 67, 74, 172, 172, 67, 74, 140, 166, 189, 67,
814 67, 69, 74, 69, 74, 69, 69, 69, 69, 69,
815 70, 166, 141, 69, 70, 182, 339, 70, 70, 644,
816 69, 339, 70, 182, 141, 70, 70, 71, 175, 70,
817 70, 190, 70, 141, 71, 71, 195, 190, 203, 175,
818 195, 71, 203, 212, 71, 222, 219, 190, 203, 217,
819 220, 217, 219, 219, 212, 224, 224, 226, 220, 231,
820 222, 222, 228, 228, 226, 234, 224, 231, 217, 224,
821 269, 224, 232, 231, 235, 232, 235, 269, 330, 234,
822 263, 271, 645, 232, 279, 647, 317, 349, 330, 235,
824 232, 263, 374, 263, 263, 263, 279, 271, 271, 317,
825 279, 279, 279, 279, 279, 344, 349, 353, 380, 441,
826 395, 411, 374, 422, 422, 648, 344, 441, 442, 353,
827 649, 395, 380, 395, 395, 395, 395, 442, 411, 441,
828 442, 475, 486, 535, 442, 492, 492, 475, 508, 486,
829 563, 492, 554, 554, 595, 650, 651, 535, 508, 486,
830 595, 646, 563, 652, 508, 646, 653, 654, 655, 656,
831 657, 658, 659, 660, 661, 662, 656, 663, 664, 665,
832 666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
833 676, 677, 678, 679, 680, 681, 682, 673, 683, 684,
835 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
836 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
837 705, 706, 707, 708, 709, 710, 711, 712, 713, 714,
838 715, 716, 717, 718, 719, 720, 721, 722, 723, 724,
839 725, 726, 727, 728, 730, 731, 711, 732, 733, 734,
840 735, 736, 737, 738, 739, 740, 741, 742, 743, 744,
841 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
842 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
843 765, 766, 767, 768, 769, 770, 771, 772, 773, 774,
844 775, 776, 777, 778, 779, 780, 781, 782, 783, 784,
846 785, 786, 787, 788, 789, 790, 791, 792, 793, 794,
847 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
848 805, 806, 807, 808, 809, 810, 811, 812, 813, 814,
849 815, 816, 817, 818, 819, 820, 821, 822, 823, 824,
850 825, 826, 827, 828, 829, 830, 831, 832, 833, 834,
851 835, 837, 838, 839, 840, 841, 842, 843, 844, 845,
852 846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
853 856, 857, 858, 842, 859, 860, 861, 862, 863, 864,
854 865, 866, 867, 868, 869, 870, 871, 872, 873, 874,
855 875, 876, 877, 878, 879, 863, 880, 881, 882, 876,
857 883, 884, 885, 886, 887, 876, 888, 889, 890, 891,
858 892, 893, 894, 895, 896, 897, 898, 899, 900, 901,
859 902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
860 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
861 922, 923, 924, 925, 926, 927, 928, 929, 930, 931,
862 932, 933, 934, 935, 936, 937, 938, 939, 940, 941,
863 942, 943, 944, 945, 946, 947, 948, 949, 950, 951,
864 952, 953, 954, 938, 955, 956, 941, 957, 958, 959,
865 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
866 970, 971, 972, 973, 974, 975, 976, 977, 978, 979,
868 980, 981, 982, 983, 967, 984, 985, 986, 987, 988,
869 989, 990, 991, 992, 994, 639, 638, 637, 636, 635,
870 634, 633, 632, 631, 630, 629, 628, 627, 626, 625,
871 624, 623, 622, 621, 620, 619, 618, 617, 616, 615,
872 614, 613, 612, 611, 610, 609, 608, 606, 605, 604,
873 603, 602, 601, 600, 599, 598, 597, 596, 594, 593,
874 592, 590, 589, 588, 587, 586, 585, 584, 583, 582,
875 581, 580, 579, 578, 577, 576, 575, 574, 573, 572,
876 571, 570, 569, 568, 567, 566, 565, 564, 562, 560,
877 559, 558, 557, 556, 555, 553, 552, 551, 550, 549,
879 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
880 538, 537, 536, 533, 532, 531, 530, 529, 528, 527,
881 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
882 516, 515, 514, 513, 512, 511, 510, 509, 507, 506,
883 505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
884 495, 494, 493, 491, 490, 489, 488, 487, 485, 484,
885 483, 482, 481, 480, 479, 478, 477, 476, 474, 473,
886 472, 471, 469, 468, 467, 466, 465, 464, 463, 462,
887 461, 460, 459, 458, 457, 456, 455, 454, 453, 452,
888 451, 450, 449, 448, 447, 446, 445, 444, 443, 440,
890 439, 438, 437, 436, 435, 434, 433, 432, 431, 430,
891 429, 428, 427, 426, 425, 424, 423, 421, 420, 419,
892 418, 417, 416, 415, 414, 413, 410, 409, 408, 407,
893 406, 405, 404, 403, 402, 401, 400, 399, 398, 397,
894 396, 394, 393, 392, 391, 390, 389, 388, 387, 386,
895 385, 383, 382, 381, 379, 378, 377, 376, 375, 373,
896 372, 371, 370, 369, 368, 367, 366, 365, 364, 363,
897 362, 361, 360, 359, 358, 357, 356, 355, 354, 352,
898 351, 350, 348, 347, 346, 345, 343, 342, 341, 340,
899 338, 337, 336, 335, 334, 333, 332, 331, 329, 328,
901 327, 326, 325, 324, 323, 322, 321, 320, 318, 316,
902 315, 314, 313, 312, 311, 310, 309, 308, 307, 306,
903 305, 304, 302, 301, 300, 299, 298, 297, 296, 295,
904 294, 293, 292, 291, 290, 289, 288, 287, 286, 285,
905 284, 283, 282, 281, 280, 278, 277, 276, 274, 273,
906 272, 270, 268, 267, 266, 265, 264, 262, 261, 260,
907 259, 258, 257, 256, 255, 254, 253, 252, 251, 250,
908 249, 248, 247, 246, 245, 244, 243, 242, 241, 239,
909 238, 237, 236, 233, 230, 229, 227, 225, 223, 221,
910 218, 216, 215, 214, 213, 211, 210, 209, 208, 207,
912 206, 205, 204, 202, 201, 200, 199, 198, 197, 196,
913 194, 193, 192, 191, 187, 185, 183, 180, 179, 178,
914 177, 176, 174, 173, 171, 170, 169, 168, 167, 165,
915 164, 162, 161, 160, 159, 157, 156, 155, 153, 152,
916 150, 149, 148, 147, 146, 145, 144, 142, 137, 136,
917 134, 133, 131, 130, 129, 126, 121, 120, 119, 117,
918 116, 115, 113, 112, 111, 110, 109, 108, 106, 103,
919 102, 101, 100, 99, 98, 96, 95, 94, 93, 92,
920 91, 90, 89, 88, 87, 86, 85, 81, 80, 76,
921 61, 50, 49, 48, 47, 45, 42, 41, 40, 38,
923 37, 35, 32, 28, 27, 26, 25, 23, 20, 15,
924 14, 11, 7, 3, 993, 993, 993, 993, 993, 993,
925 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
926 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
927 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
928 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
929 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
930 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
931 993, 993, 993, 993, 993, 993, 993, 993
934 static yy_state_type yy_last_accepting_state
;
935 static char *yy_last_accepting_cpos
;
937 #define YY_MORE_ADJ 0
938 #define YY_RESTORE_YY_MORE_OFFSET
945 #define fileno _fileno
946 #define isatty _isatty
955 #define token_debug printf
957 static int token_debug(const char *format
, ...);
960 /* Macros after this point can all be overridden by user definitions in
965 //static void yyunput YY_PROTO(( int c, char *buf_ptr ));
969 static void yy_flex_strncpy
YY_PROTO(( char *, yyconst
char *, int ));
972 #ifdef YY_NEED_STRLEN
973 static int yy_flex_strlen
YY_PROTO(( yyconst
char * ));
977 static int yy_start_stack_ptr
= 0;
978 static int yy_start_stack_depth
= 0;
979 static int *yy_start_stack
= 0;
980 #ifndef YY_NO_PUSH_STATE
981 static void yy_push_state
YY_PROTO(( int new_state
));
983 #ifndef YY_NO_POP_STATE
984 static void yy_pop_state
YY_PROTO(( void ));
986 #ifndef YY_NO_TOP_STATE
987 static int yy_top_state
YY_PROTO(( void ));
991 #define YY_NO_PUSH_STATE 1
992 #define YY_NO_POP_STATE 1
993 #define YY_NO_TOP_STATE 1
996 #ifdef YY_MALLOC_DECL
999 #if !(defined __STDC__ && __STDC__)
1000 /* Just try to get by without declaring the routines. This will fail
1001 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1002 * or sizeof(void*) != sizeof(int).
1007 #include "lexer.hxx"
1009 /* Amount of stuff to slurp up with each read. */
1010 #ifndef YY_READ_BUF_SIZE
1011 #define YY_READ_BUF_SIZE 8192
1014 /* Copy whatever the last rule matched to the standard output. */
1017 /* This used to be an fputs(), but since the string might contain NUL's,
1018 * we now use fwrite().
1020 #define ECHO do { fwrite( yytext, yyleng, 1, yyout ); } while (false)
1023 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1024 * is returned in "result".
1027 #define YY_INPUT(buf,result,max_size) \
1028 if ( yy_current_buffer->yy_is_interactive ) \
1031 for ( n = 0; n < max_size && \
1032 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1033 buf[n] = static_cast<char>(c); \
1035 buf[n++] = static_cast<char>(c); \
1036 if ( c == EOF && ferror( yyin ) ) \
1037 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1040 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1041 && ferror( yyin ) ) \
1042 YY_FATAL_ERROR( "input in flex scanner failed" );
1045 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1046 * we don't want an extra ';' after the "return" because that will cause
1047 * some compilers to complain about unreachable statements.
1050 #define yyterminate() return YY_NULL
1053 /* Report a fatal error. */
1054 #ifndef YY_FATAL_ERROR
1055 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1058 /* Default declaration of generated scanner - a define so the user can
1059 * easily add parameters.
1062 #define YY_DECL int yylex YY_PROTO(( void ))
1065 /* Code executed at the beginning of each rule, after yytext and yyleng
1068 #ifndef YY_USER_ACTION
1069 #define YY_USER_ACTION
1072 /* Code executed at the end of each rule. */
1074 #define YY_BREAK break;
1077 #define YY_RULE_SETUP \
1082 yy_state_type yy_current_state
;
1083 char *yy_cp
, *yy_bp
;
1095 yy_start
= 1; /* first start state */
1103 if ( ! yy_current_buffer
)
1105 yy_create_buffer( yyin
, YY_BUF_SIZE
);
1107 yy_load_buffer_state();
1110 while ( true ) /* loops until end-of-file is reached */
1114 /* Support of yytext. */
1115 *yy_cp
= yy_hold_char
;
1117 /* yy_bp points to the position in yy_ch_buf of the start of
1122 yy_current_state
= yy_start
;
1126 YY_CHAR yy_c
= sal::static_int_cast
<YY_CHAR
>(yy_ec
[YY_SC_TO_UI(*yy_cp
)]);
1127 if ( yy_accept
[yy_current_state
] )
1129 yy_last_accepting_state
= yy_current_state
;
1130 yy_last_accepting_cpos
= yy_cp
;
1132 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1134 yy_current_state
= static_cast<int>(yy_def
[yy_current_state
]);
1135 if ( yy_current_state
>= 994 )
1136 yy_c
= sal::static_int_cast
<YY_CHAR
>(yy_meta
[static_cast<unsigned int>(yy_c
)]);
1138 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + static_cast<unsigned int>(yy_c
)];
1141 while ( yy_base
[yy_current_state
] != 1315 );
1144 yy_act
= yy_accept
[yy_current_state
];
1146 { /* have to back up */
1147 yy_cp
= yy_last_accepting_cpos
;
1148 yy_current_state
= yy_last_accepting_state
;
1149 yy_act
= yy_accept
[yy_current_state
];
1152 YY_DO_BEFORE_ACTION
;
1155 do_action
: /* This label is used only to access EOF actions. */
1159 { /* beginning of action switch */
1160 case 0: /* must back up */
1161 /* undo the effects of YY_DO_BEFORE_ACTION */
1162 *yy_cp
= yy_hold_char
;
1163 yy_cp
= yy_last_accepting_cpos
;
1164 yy_current_state
= yy_last_accepting_state
;
1165 goto yy_find_action
;
1169 { yylval
.str
= yytext
+1; token_debug(" ==>Begin[%s]\n",yytext
+1); return Grammar::EQBEGIN
; }
1173 { yylval
.str
= yytext
+1; token_debug(" ==>End[%s]\n",yytext
+1); return Grammar::EQEND
; }
1177 { yylval
.str
= yytext
+1; token_debug(" ==>Left[%s]\n",yytext
+1); return Grammar::EQLEFT
; }
1181 { yylval
.str
= yytext
+1; token_debug(" ==>LeftDelim[%s]\n",yytext
+1); return Grammar::LEFT_DELIM
; }
1185 { yylval
.str
= yytext
+1; token_debug(" ==>RightDelim[%s]\n",yytext
+1); return Grammar::RIGHT_DELIM
; }
1189 { yylval
.str
= yytext
+1; token_debug(" ==>Right[%s]\n",yytext
+1); return Grammar::EQRIGHT
; }
1193 { yylval
.str
= yytext
; token_debug(" ==>NewLine[%s]\n",yytext
); return Grammar::NEWLINE
; }
1197 { yylval
.str
= yytext
+1; token_debug(" ==>Accent[%s]\n",yytext
+1); return Grammar::ACCENT
; }
1201 { yylval
.str
= yytext
+1; token_debug(" ==>Small_Greek[%s]\n",yytext
+1); return Grammar::SMALL_GREEK
; }
1205 { yylval
.str
= yytext
+1; token_debug(" ==>Capital_Greek[%s]\n",yytext
+1); return Grammar::CAPITAL_GREEK
; }
1209 { yylval
.str
= yytext
+1; token_debug(" ==>Binary_Operator[%s]\n",yytext
+1); return Grammar::BINARY_OPERATOR
; }
1213 { yylval
.str
= yytext
+1; token_debug(" ==>Relation_Symbol[%s]\n",yytext
+1); return Grammar::RELATION_OPERATOR
; }
1217 { yylval
.str
= "neq"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR
; }
1221 { yylval
.str
= "vmlt"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR
; }
1225 { yylval
.str
= "vmgt"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR
; }
1229 { yylval
.str
= "mlt"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR
; }
1233 { yylval
.str
= "mgt"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR
; }
1237 { yylval
.str
= yytext
; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR
; }
1241 { yylval
.str
= yytext
+1; token_debug(" ==>Arrow[%s]\n",yytext
+1); return Grammar::ARROW
; }
1245 { yylval
.str
= "leftrightarrow"; token_debug(" ==>Arrow[leftrightarrow]\n"); return Grammar::ARROW
; }
1249 { yylval
.str
= "rightarrow"; token_debug(" ==>Arrow[rightarrow]\n"); return Grammar::ARROW
; }
1253 { yylval
.str
= "leftarrow"; token_debug(" ==>Arrow[leftarrow]\n"); return Grammar::ARROW
; }
1258 { token_debug(" ==>Ignore[\\rm]\n"); }
1263 { yylval
.str
= yytext
+1; token_debug(" ==>General_Iden[%s]\n",yytext
+1); return Grammar::GENERAL_IDEN
; }
1267 { yylval
.str
= yytext
+1; token_debug(" ==>General_Oper[%s]\n",yytext
+1); return Grammar::GENERAL_OPER
; }
1271 { yylval
.str
= yytext
+1; token_debug(" ==>Big_Symbol[%s]\n",yytext
+1); return Grammar::BIG_SYMBOL
; }
1275 { yylval
.str
= yytext
+1; token_debug(" ==>Function[%s]\n",yytext
+1); return Grammar::FUNCTION
; }
1279 { yylval
.str
= yytext
+1; token_debug(" ==>Root[%s]\n",yytext
+1); return Grammar::ROOT
; }
1283 { yylval
.str
= yytext
+1; token_debug(" ==>Fraction[%s]\n",yytext
+1); return Grammar::FRACTION
; }
1287 { yylval
.str
= yytext
+1; token_debug(" ==>Over[%s]\n",yytext
+1); return Grammar::EQOVER
; }
1291 { yylval
.str
= yytext
+1; token_debug(" ==>Delimeter[%s]\n",yytext
+1); return Grammar::DELIMETER
; }
1295 { yylval
.str
= yytext
+1; token_debug(" ==>Large_Delim[%s]\n",yytext
+1); return Grammar::LARGE_DELIM
; }
1299 { yylval
.str
= yytext
+1; token_debug(" ==>Decoration[%s]\n",yytext
+1); return Grammar::DECORATION
; }
1303 { yylval
.str
= yytext
+1; token_debug(" ==>Space_Symbol[%s]\n",yytext
+1); /*return Grammar::SPACE_SYMBOL;*/ }
1308 { yylval
.str
= "quad"; token_debug(" ==>Space_Symbol[quad]\n"); /* return Grammar::SPACE_SYMBOL;*/ }
1313 { yylval
.dval
= yytext
; token_debug(" ==>Digit[%s]\n",yytext
); return Grammar::DIGIT
; }
1317 { yylval
.str
= yytext
; token_debug(" ==>Operator[%s]\n",yytext
); return Grammar::OPERATOR
; }
1321 { token_debug(" ==>SubSup[%s]\n",yytext
); return yytext
[0]; }
1325 { token_debug(" ==>Paren[%s]\n",yytext
); return yytext
[0];}
1329 { token_debug(" ==>Abs[%s]\n",yytext
); return yytext
[0];}
1333 { token_debug(" ==>Space[0x%2x]\n",yytext
[0]); }
1337 { token_debug(" ==>Ignore[0x%2x]\n",yytext
[0]); }
1341 { yylval
.str
= yytext
; token_debug(" ==>String[%s]\n",yytext
); return Grammar::STRING
; }
1345 { yylval
.str
= yytext
; token_debug(" ==>Else[%s]\n",yytext
); return Grammar::CHARACTER
; }
1351 case YY_STATE_EOF(INITIAL
):
1354 case YY_END_OF_BUFFER
:
1356 /* Amount of text matched not including the EOB char. */
1357 int yy_amount_of_matched_text
= static_cast<int>(yy_cp
- yytext_ptr
) - 1;
1359 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1360 *yy_cp
= yy_hold_char
;
1361 YY_RESTORE_YY_MORE_OFFSET
1363 if ( yy_current_buffer
->yy_buffer_status
== YY_BUFFER_NEW
)
1365 /* We're scanning a new file or input source. It's
1366 * possible that this happened because the user
1367 * just pointed yyin at a new source and called
1368 * yylex(). If so, then we have to assure
1369 * consistency between yy_current_buffer and our
1370 * globals. Here is the right place to do so, because
1371 * this is the first action (other than possibly a
1372 * back-up) that will match for the new input source.
1374 yy_n_chars
= yy_current_buffer
->yy_n_chars
;
1375 yy_current_buffer
->yy_input_file
= yyin
;
1376 yy_current_buffer
->yy_buffer_status
= YY_BUFFER_NORMAL
;
1379 /* Note that here we test for yy_c_buf_p "<=" to the position
1380 * of the first EOB in the buffer, since yy_c_buf_p will
1381 * already have been incremented past the NUL character
1382 * (since all states make transitions on EOB to the
1383 * end-of-buffer state). Contrast this with the test
1386 if ( yy_c_buf_p
<= &yy_current_buffer
->yy_ch_buf
[yy_n_chars
] )
1387 { /* This was really a NUL. */
1388 yy_state_type yy_next_state
;
1390 yy_c_buf_p
= yytext_ptr
+ yy_amount_of_matched_text
;
1392 yy_current_state
= yy_get_previous_state();
1394 /* Okay, we're now positioned to make the NUL
1395 * transition. We couldn't have
1396 * yy_get_previous_state() go ahead and do it
1397 * for us because it doesn't know how to deal
1398 * with the possibility of jamming (and we don't
1399 * want to build jamming into it because then it
1400 * will run more slowly).
1403 yy_next_state
= yy_try_NUL_trans( yy_current_state
);
1405 yy_bp
= yytext_ptr
+ YY_MORE_ADJ
;
1407 if ( yy_next_state
)
1409 /* Consume the NUL. */
1410 yy_cp
= ++yy_c_buf_p
;
1411 yy_current_state
= yy_next_state
;
1418 goto yy_find_action
;
1422 else switch ( yy_get_next_buffer() )
1424 case EOB_ACT_END_OF_FILE
:
1426 yy_did_buffer_switch_on_eof
= 0;
1430 /* Note: because we've taken care in
1431 * yy_get_next_buffer() to have set up
1432 * yytext, we can now set up
1433 * yy_c_buf_p so that if some total
1434 * hoser (like flex itself) wants to
1435 * call the scanner after we return the
1436 * YY_NULL, it'll still work - another
1437 * YY_NULL will get returned.
1439 yy_c_buf_p
= yytext_ptr
+ YY_MORE_ADJ
;
1441 yy_act
= YY_STATE_EOF(YY_START
);
1447 if ( ! yy_did_buffer_switch_on_eof
)
1453 case EOB_ACT_CONTINUE_SCAN
:
1455 yytext_ptr
+ yy_amount_of_matched_text
;
1457 yy_current_state
= yy_get_previous_state();
1460 yy_bp
= yytext_ptr
+ YY_MORE_ADJ
;
1464 case EOB_ACT_LAST_MATCH
:
1466 &yy_current_buffer
->yy_ch_buf
[yy_n_chars
];
1468 yy_current_state
= yy_get_previous_state();
1471 yy_bp
= yytext_ptr
+ YY_MORE_ADJ
;
1472 goto yy_find_action
;
1480 "fatal flex scanner internal error--no action found" );
1481 } /* end of action switch */
1482 } /* end of scanning one token */
1483 } /* end of yylex */
1486 /* yy_get_next_buffer - try to read in a new buffer
1488 * Returns a code representing an action:
1489 * EOB_ACT_LAST_MATCH -
1490 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1491 * EOB_ACT_END_OF_FILE - end of file
1494 static int yy_get_next_buffer()
1496 char *dest
= yy_current_buffer
->yy_ch_buf
;
1497 char *source
= yytext_ptr
;
1498 int number_to_move
, i
;
1501 if ( yy_c_buf_p
> &yy_current_buffer
->yy_ch_buf
[yy_n_chars
+ 1] )
1503 "fatal flex scanner internal error--end of buffer missed" );
1505 if ( yy_current_buffer
->yy_fill_buffer
== 0 )
1506 { /* Don't try to fill the buffer, so this is an EOF. */
1507 if ( yy_c_buf_p
- yytext_ptr
- YY_MORE_ADJ
== 1 )
1509 /* We matched a single character, the EOB, so
1510 * treat this as a final EOF.
1512 return EOB_ACT_END_OF_FILE
;
1517 /* We matched some text prior to the EOB, first
1520 return EOB_ACT_LAST_MATCH
;
1524 /* Try to read more data. */
1526 /* First move last chars to start of buffer. */
1527 number_to_move
= static_cast<int>(yy_c_buf_p
- yytext_ptr
) - 1;
1529 for ( i
= 0; i
< number_to_move
; ++i
)
1530 *(dest
++) = *(source
++);
1532 if ( yy_current_buffer
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
1533 /* don't do the read, it's not guaranteed to return an EOF,
1536 yy_current_buffer
->yy_n_chars
= yy_n_chars
= 0;
1541 yy_current_buffer
->yy_buf_size
- number_to_move
- 1;
1543 while ( num_to_read
<= 0 )
1544 { /* Not enough room in the buffer - grow it. */
1545 #ifdef YY_USES_REJECT
1547 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1550 /* just a shorter name for the current buffer */
1551 YY_BUFFER_STATE b
= yy_current_buffer
;
1553 int yy_c_buf_p_offset
=
1554 static_cast<int>(yy_c_buf_p
- b
->yy_ch_buf
);
1556 if ( b
->yy_is_our_buffer
)
1558 int new_size
= b
->yy_buf_size
* 2;
1560 if ( new_size
<= 0 )
1561 b
->yy_buf_size
+= b
->yy_buf_size
/ 8;
1563 b
->yy_buf_size
*= 2;
1565 b
->yy_ch_buf
= static_cast<char *>(
1566 /* Include room in for 2 EOB chars. */
1567 yy_flex_realloc( static_cast<void *>(b
->yy_ch_buf
),
1568 b
->yy_buf_size
+ 2 ));
1571 /* Can't grow it, we don't own it. */
1572 b
->yy_ch_buf
= nullptr;
1574 if ( ! b
->yy_ch_buf
)
1576 "fatal error - scanner input buffer overflow" );
1578 yy_c_buf_p
= &b
->yy_ch_buf
[yy_c_buf_p_offset
];
1580 num_to_read
= yy_current_buffer
->yy_buf_size
-
1585 if ( num_to_read
> YY_READ_BUF_SIZE
)
1586 num_to_read
= YY_READ_BUF_SIZE
;
1588 /* Read in more data. */
1589 YY_INPUT( (&yy_current_buffer
->yy_ch_buf
[number_to_move
]),
1590 yy_n_chars
, num_to_read
);
1592 yy_current_buffer
->yy_n_chars
= yy_n_chars
;
1595 if ( yy_n_chars
== 0 )
1597 if ( number_to_move
== YY_MORE_ADJ
)
1599 ret_val
= EOB_ACT_END_OF_FILE
;
1605 ret_val
= EOB_ACT_LAST_MATCH
;
1606 yy_current_buffer
->yy_buffer_status
=
1607 YY_BUFFER_EOF_PENDING
;
1612 ret_val
= EOB_ACT_CONTINUE_SCAN
;
1614 yy_n_chars
+= number_to_move
;
1615 yy_current_buffer
->yy_ch_buf
[yy_n_chars
] = YY_END_OF_BUFFER_CHAR
;
1616 yy_current_buffer
->yy_ch_buf
[yy_n_chars
+ 1] = YY_END_OF_BUFFER_CHAR
;
1618 yytext_ptr
= &yy_current_buffer
->yy_ch_buf
[0];
1624 /* yy_get_previous_state - get the state just before the EOB char was reached */
1626 static yy_state_type
yy_get_previous_state()
1628 yy_state_type yy_current_state
;
1631 yy_current_state
= yy_start
;
1633 for ( yy_cp
= yytext_ptr
+ YY_MORE_ADJ
; yy_cp
< yy_c_buf_p
; ++yy_cp
)
1635 YY_CHAR yy_c
= sal::static_int_cast
<YY_CHAR
>(*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
1636 if ( yy_accept
[yy_current_state
] )
1638 yy_last_accepting_state
= yy_current_state
;
1639 yy_last_accepting_cpos
= yy_cp
;
1641 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1643 yy_current_state
= static_cast<int>(yy_def
[yy_current_state
]);
1644 if ( yy_current_state
>= 994 )
1645 yy_c
= sal::static_int_cast
<YY_CHAR
>(yy_meta
[static_cast<unsigned int>(yy_c
)]);
1647 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + static_cast<unsigned int>(yy_c
)];
1650 return yy_current_state
;
1654 /* yy_try_NUL_trans - try to make a transition on the NUL character
1657 * next_state = yy_try_NUL_trans( current_state );
1660 #ifdef YY_USE_PROTOS
1661 static yy_state_type
yy_try_NUL_trans( yy_state_type yy_current_state
)
1663 static yy_state_type
yy_try_NUL_trans( yy_current_state
)
1664 yy_state_type yy_current_state
;
1668 char *yy_cp
= yy_c_buf_p
;
1671 if ( yy_accept
[yy_current_state
] )
1673 yy_last_accepting_state
= yy_current_state
;
1674 yy_last_accepting_cpos
= yy_cp
;
1676 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1678 yy_current_state
= static_cast<int>(yy_def
[yy_current_state
]);
1679 if ( yy_current_state
>= 994 )
1680 yy_c
= sal::static_int_cast
<YY_CHAR
>(yy_meta
[static_cast<unsigned int>(yy_c
)]);
1682 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + static_cast<unsigned int>(yy_c
)];
1683 yy_is_jam
= (yy_current_state
== 993);
1685 return yy_is_jam
? 0 : yy_current_state
;
1688 #ifdef YY_USE_PROTOS
1689 void yyrestart( FILE *input_file
)
1691 void yyrestart( input_file
)
1695 if ( ! yy_current_buffer
)
1696 yy_current_buffer
= yy_create_buffer( yyin
, YY_BUF_SIZE
);
1698 yy_init_buffer( yy_current_buffer
, input_file
);
1699 yy_load_buffer_state();
1703 #ifdef YY_USE_PROTOS
1704 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer
)
1706 void yy_switch_to_buffer( new_buffer
)
1707 YY_BUFFER_STATE new_buffer
;
1710 if ( yy_current_buffer
== new_buffer
)
1713 if ( yy_current_buffer
)
1715 /* Flush out information for old buffer. */
1716 *yy_c_buf_p
= yy_hold_char
;
1717 yy_current_buffer
->yy_buf_pos
= yy_c_buf_p
;
1718 yy_current_buffer
->yy_n_chars
= yy_n_chars
;
1721 yy_current_buffer
= new_buffer
;
1722 yy_load_buffer_state();
1724 /* We don't actually know whether we did this switch during
1725 * EOF (yywrap()) processing, but the only time this flag
1726 * is looked at is after yywrap() is called, so it's safe
1727 * to go ahead and always set it.
1729 yy_did_buffer_switch_on_eof
= 1;
1733 #ifdef YY_USE_PROTOS
1734 void yy_load_buffer_state()
1736 void yy_load_buffer_state()
1739 yy_n_chars
= yy_current_buffer
->yy_n_chars
;
1740 yytext_ptr
= yy_c_buf_p
= yy_current_buffer
->yy_buf_pos
;
1741 yyin
= yy_current_buffer
->yy_input_file
;
1742 yy_hold_char
= *yy_c_buf_p
;
1746 #ifdef YY_USE_PROTOS
1747 YY_BUFFER_STATE
yy_create_buffer( FILE *file
, int size
)
1749 YY_BUFFER_STATE
yy_create_buffer( file
, size
)
1756 b
= static_cast<YY_BUFFER_STATE
>(yy_flex_alloc( sizeof( struct yy_buffer_state
) ));
1758 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1760 b
->yy_buf_size
= size
;
1762 /* yy_ch_buf has to be 2 characters longer than the size given because
1763 * we need to put in 2 end-of-buffer characters.
1765 b
->yy_ch_buf
= static_cast<char *>(yy_flex_alloc( b
->yy_buf_size
+ 2 ));
1766 if ( ! b
->yy_ch_buf
)
1767 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1769 b
->yy_is_our_buffer
= 1;
1771 yy_init_buffer( b
, file
);
1777 #ifdef YY_USE_PROTOS
1778 void yy_delete_buffer( YY_BUFFER_STATE b
)
1780 void yy_delete_buffer( b
)
1787 if ( b
== yy_current_buffer
)
1788 yy_current_buffer
= nullptr;
1790 if ( b
->yy_is_our_buffer
)
1791 yy_flex_free( static_cast<void *>(b
->yy_ch_buf
) );
1793 yy_flex_free( static_cast<void *>(b
) );
1797 #ifndef YY_ALWAYS_INTERACTIVE
1798 #ifndef YY_NEVER_INTERACTIVE
1799 extern int isatty
YY_PROTO(( int ));
1803 #ifdef YY_USE_PROTOS
1804 void yy_init_buffer( YY_BUFFER_STATE b
, FILE *file
)
1806 void yy_init_buffer( b
, file
)
1813 yy_flush_buffer( b
);
1815 b
->yy_input_file
= file
;
1816 b
->yy_fill_buffer
= 1;
1818 #if YY_ALWAYS_INTERACTIVE
1819 b
->yy_is_interactive
= true;
1821 #if YY_NEVER_INTERACTIVE
1822 b
->yy_is_interactive
= false;
1824 b
->yy_is_interactive
= file
&& isatty( fileno(file
) ) > 0;
1830 #ifdef YY_USE_PROTOS
1831 void yy_flush_buffer( YY_BUFFER_STATE b
)
1833 void yy_flush_buffer( b
)
1843 /* We always need two end-of-buffer characters. The first causes
1844 * a transition to the end-of-buffer state. The second causes
1845 * a jam in that state.
1847 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
1848 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
1850 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
1853 b
->yy_buffer_status
= YY_BUFFER_NEW
;
1855 if ( b
== yy_current_buffer
)
1856 yy_load_buffer_state();
1860 #ifndef YY_NO_SCAN_BUFFER
1861 #ifdef YY_USE_PROTOS
1862 YY_BUFFER_STATE
yy_scan_buffer( char *base
, yy_size_t size
)
1864 YY_BUFFER_STATE
yy_scan_buffer( base
, size
)
1872 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
1873 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
1874 /* They forgot to leave room for the EOB's. */
1877 b
= static_cast<YY_BUFFER_STATE
>(yy_flex_alloc( sizeof( struct yy_buffer_state
) ));
1879 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1881 b
->yy_buf_size
= size
- 2; /* "- 2" to take care of EOB's */
1882 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
1883 b
->yy_is_our_buffer
= 0;
1884 b
->yy_input_file
= nullptr;
1885 b
->yy_n_chars
= b
->yy_buf_size
;
1886 b
->yy_is_interactive
= false;
1888 b
->yy_fill_buffer
= 0;
1889 b
->yy_buffer_status
= YY_BUFFER_NEW
;
1891 yy_switch_to_buffer( b
);
1898 #ifndef YY_NO_SCAN_STRING
1899 #ifdef YY_USE_PROTOS
1900 YY_BUFFER_STATE
yy_scan_string( yyconst
char *yy_str
)
1902 YY_BUFFER_STATE
yy_scan_string( yy_str
)
1903 yyconst
char *yy_str
;
1907 for ( len
= 0; yy_str
[len
]; ++len
)
1910 return yy_scan_bytes( yy_str
, len
);
1915 #ifndef YY_NO_SCAN_BYTES
1916 #ifdef YY_USE_PROTOS
1917 YY_BUFFER_STATE
yy_scan_bytes( yyconst
char *bytes
, int len
)
1919 YY_BUFFER_STATE
yy_scan_bytes( bytes
, len
)
1920 yyconst
char *bytes
;
1929 /* Get memory for full buffer, including space for trailing EOB's. */
1931 buf
= static_cast<char *>(yy_flex_alloc( n
));
1933 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1935 for ( i
= 0; i
< len
; ++i
)
1938 buf
[len
] = buf
[len
+1] = YY_END_OF_BUFFER_CHAR
;
1940 b
= yy_scan_buffer( buf
, n
);
1942 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1944 /* It's okay to grow etc. this buffer, and we should throw it
1945 * away when we're done.
1947 b
->yy_is_our_buffer
= 1;
1954 #ifndef YY_NO_PUSH_STATE
1955 #ifdef YY_USE_PROTOS
1956 static void yy_push_state( int new_state
)
1958 static void yy_push_state( new_state
)
1962 if ( yy_start_stack_ptr
>= yy_start_stack_depth
)
1966 yy_start_stack_depth
+= YY_START_STACK_INCR
;
1967 new_size
= yy_start_stack_depth
* sizeof( int );
1969 if ( ! yy_start_stack
)
1970 yy_start_stack
= (int *) yy_flex_alloc( new_size
);
1973 yy_start_stack
= (int *) yy_flex_realloc(
1974 (void *) yy_start_stack
, new_size
);
1976 if ( ! yy_start_stack
)
1978 "out of memory expanding start-condition stack" );
1981 yy_start_stack
[yy_start_stack_ptr
++] = YY_START
;
1988 #ifndef YY_NO_POP_STATE
1989 static void yy_pop_state()
1991 if ( --yy_start_stack_ptr
< 0 )
1992 YY_FATAL_ERROR( "start-condition stack underflow" );
1994 BEGIN(yy_start_stack
[yy_start_stack_ptr
]);
1999 #ifndef YY_NO_TOP_STATE
2000 static int yy_top_state()
2002 return yy_start_stack
[yy_start_stack_ptr
- 1];
2006 #ifndef YY_EXIT_FAILURE
2007 #define YY_EXIT_FAILURE 2
2010 #ifdef YY_USE_PROTOS
2011 static void yy_fatal_error( yyconst
char msg
[] )
2013 static void yy_fatal_error( msg
)
2017 (void) fprintf( stderr
, "%s\n", msg
);
2018 exit( YY_EXIT_FAILURE
);
2022 /* Internal utility routines. */
2025 #ifdef YY_USE_PROTOS
2026 static void yy_flex_strncpy( char *s1
, yyconst
char *s2
, int n
)
2028 static void yy_flex_strncpy( s1
, s2
, n
)
2035 for ( i
= 0; i
< n
; ++i
)
2040 #ifdef YY_NEED_STRLEN
2041 #ifdef YY_USE_PROTOS
2042 static int yy_flex_strlen( yyconst
char *s
)
2044 static int yy_flex_strlen( s
)
2049 for ( n
= 0; s
[n
]; ++n
)
2057 #ifdef YY_USE_PROTOS
2058 static void *yy_flex_alloc( yy_size_t size
)
2060 static void *yy_flex_alloc( size
)
2064 return malloc( size
);
2067 #ifdef YY_USE_PROTOS
2068 static void *yy_flex_realloc( void *ptr
, yy_size_t size
)
2070 static void *yy_flex_realloc( ptr
, size
)
2075 /* The cast to (char *) in the following accommodates both
2076 * implementations that use char* generic pointers, and those
2077 * that use void* generic pointers. It works with the latter
2078 * because both ANSI C and C++ allow castless assignment from
2079 * any pointer type to void*, and deal with argument conversions
2080 * as though doing an assignment.
2082 return realloc( ptr
, size
);
2085 #ifdef YY_USE_PROTOS
2086 static void yy_flex_free( void *ptr
)
2088 static void yy_flex_free( ptr
)
2104 void initFlex(const char *_code
)
2106 yy_switch_to_buffer( yy_scan_string(_code
) );
2111 // flex faq-memory-leak
2112 yy_delete_buffer(YY_CURRENT_BUFFER
);
2118 yy_delete_buffer( YY_CURRENT_BUFFER
);
2123 int token_debug(const char * /*format*/, ...)
2129 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */