tdf#130857 qt weld: Implement QtInstanceWidget::get_text_height
[LibreOffice.git] / hwpfilter / source / lexer.cxx
blob844432268d926172f706c1e1cacb1a72a4d064b7
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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:
24 #ifndef YY_STACK_USED
25 #define YY_STACK_USED 0
26 #endif
27 #ifndef YY_ALWAYS_INTERACTIVE
28 #define YY_ALWAYS_INTERACTIVE 0
29 #endif
30 #ifndef YY_NEVER_INTERACTIVE
31 #define YY_NEVER_INTERACTIVE 0
32 #endif
33 #ifndef YY_MAIN
34 #define YY_MAIN 0
35 #endif
37 #include <stdio.h>
39 #include <stdlib.h>
40 #ifndef _WIN32
41 #include <unistd.h>
42 #else
43 #include <io.h>
44 #endif
47 /* Use prototypes in function declarations. */
48 #define YY_USE_PROTOS
50 /* The "const" storage-class-modifier is valid. */
51 #define YY_USE_CONST
53 #ifdef YY_USE_CONST
54 #define yyconst const
55 #else
56 #define yyconst
57 #endif
60 #ifdef YY_USE_PROTOS
61 #define YY_PROTO(proto) proto
62 #else
63 #define YY_PROTO(proto) ()
64 #endif
66 /* Returned upon end-of-file. */
67 #define YY_NULL 0
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
72 * double cast.
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
92 namespace {
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;
110 namespace {
112 struct yy_buffer_state
114 FILE *yy_input_file;
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
120 * characters.
122 yy_size_t yy_buf_size;
124 /* Number of characters read into yy_ch_buf, not including EOB
125 * characters.
127 int yy_n_chars;
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
131 * delete it.
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
138 * each newline.
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
144 * not.
146 int yy_at_bol;
148 /* Whether to try to fill the input buffer when we reach the
149 * end of it.
151 int yy_fill_buffer;
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
175 * "scanner state".
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 */
186 static int yyleng;
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; \
232 *yy_cp = '\0'; \
233 yy_c_buf_p = yy_cp;
235 #define YY_END_OF_BUFFER 46
236 yyconst short int yy_accept[994] =
237 { 0,
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,
346 0, 0, 0
350 yyconst int yy_ec[256] =
351 { 0,
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,
379 73, 73, 73, 73, 1
382 yyconst int yy_meta[74] =
383 { 0,
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,
391 1, 1, 1
394 yyconst short int yy_base[995] =
395 { 0,
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,
504 748, 749, 1315, 814
508 yyconst short int yy_def[995] =
509 { 0,
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,
618 993, 993, 0, 993
622 yyconst short int yy_nxt[1389] =
623 { 0,
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] =
779 { 0,
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
939 static char *yytext;
940 #define INITIAL 0
941 #include <string.h>
942 #include "nodes.h"
944 #ifdef _WIN32
945 #define fileno _fileno
946 #define isatty _isatty
947 #endif
949 extern "C" {
950 #include "grammar.h"
951 static int yywrap();
954 #ifdef TOKEN_DEBUG
955 #define token_debug printf
956 #else
957 static int token_debug(const char *format, ...);
958 #endif
960 /* Macros after this point can all be overridden by user definitions in
961 * section 1.
964 #ifndef YY_NO_UNPUT
965 //static void yyunput YY_PROTO(( int c, char *buf_ptr ));
966 #endif
968 #ifndef yytext_ptr
969 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
970 #endif
972 #ifdef YY_NEED_STRLEN
973 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
974 #endif
976 #if YY_STACK_USED
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 ));
982 #endif
983 #ifndef YY_NO_POP_STATE
984 static void yy_pop_state YY_PROTO(( void ));
985 #endif
986 #ifndef YY_NO_TOP_STATE
987 static int yy_top_state YY_PROTO(( void ));
988 #endif
990 #else
991 #define YY_NO_PUSH_STATE 1
992 #define YY_NO_POP_STATE 1
993 #define YY_NO_TOP_STATE 1
994 #endif
996 #ifdef YY_MALLOC_DECL
997 YY_MALLOC_DECL
998 #else
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).
1004 #endif
1005 #endif
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
1012 #endif
1014 /* Copy whatever the last rule matched to the standard output. */
1016 #ifndef ECHO
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)
1021 #endif
1023 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1024 * is returned in "result".
1026 #ifndef YY_INPUT
1027 #define YY_INPUT(buf,result,max_size) \
1028 if ( yy_current_buffer->yy_is_interactive ) \
1030 int c = '*', n; \
1031 for ( n = 0; n < max_size && \
1032 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1033 buf[n] = static_cast<char>(c); \
1034 if ( c == '\n' ) \
1035 buf[n++] = static_cast<char>(c); \
1036 if ( c == EOF && ferror( yyin ) ) \
1037 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1038 result = n; \
1040 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1041 && ferror( yyin ) ) \
1042 YY_FATAL_ERROR( "input in flex scanner failed" );
1043 #endif
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.
1049 #ifndef yyterminate
1050 #define yyterminate() return YY_NULL
1051 #endif
1053 /* Report a fatal error. */
1054 #ifndef YY_FATAL_ERROR
1055 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1056 #endif
1058 /* Default declaration of generated scanner - a define so the user can
1059 * easily add parameters.
1061 #ifndef YY_DECL
1062 #define YY_DECL int yylex YY_PROTO(( void ))
1063 #endif
1065 /* Code executed at the beginning of each rule, after yytext and yyleng
1066 * have been set up.
1068 #ifndef YY_USER_ACTION
1069 #define YY_USER_ACTION
1070 #endif
1072 /* Code executed at the end of each rule. */
1073 #ifndef YY_BREAK
1074 #define YY_BREAK break;
1075 #endif
1077 #define YY_RULE_SETUP \
1078 YY_USER_ACTION
1080 YY_DECL
1082 yy_state_type yy_current_state;
1083 char *yy_cp, *yy_bp;
1084 int yy_act;
1086 if ( yy_init )
1088 yy_init = 0;
1090 #ifdef YY_USER_INIT
1091 YY_USER_INIT;
1092 #endif
1094 if ( ! yy_start )
1095 yy_start = 1; /* first start state */
1097 if ( ! yyin )
1098 yyin = stdin;
1100 if ( ! yyout )
1101 yyout = stdout;
1103 if ( ! yy_current_buffer )
1104 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 */
1112 yy_cp = yy_c_buf_p;
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
1118 * the current run.
1120 yy_bp = yy_cp;
1122 yy_current_state = yy_start;
1123 yy_match:
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)];
1139 ++yy_cp;
1141 while ( yy_base[yy_current_state] != 1315 );
1143 yy_find_action:
1144 yy_act = yy_accept[yy_current_state];
1145 if ( yy_act == 0 )
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. */
1158 switch ( yy_act )
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;
1167 case 1:
1168 YY_RULE_SETUP
1169 { yylval.str = yytext+1; token_debug(" ==>Begin[%s]\n",yytext+1); return Grammar::EQBEGIN; }
1170 //YY_BREAK
1171 case 2:
1172 YY_RULE_SETUP
1173 { yylval.str = yytext+1; token_debug(" ==>End[%s]\n",yytext+1); return Grammar::EQEND; }
1174 //YY_BREAK
1175 case 3:
1176 YY_RULE_SETUP
1177 { yylval.str = yytext+1; token_debug(" ==>Left[%s]\n",yytext+1); return Grammar::EQLEFT; }
1178 //YY_BREAK
1179 case 4:
1180 YY_RULE_SETUP
1181 { yylval.str = yytext+1; token_debug(" ==>LeftDelim[%s]\n",yytext+1); return Grammar::LEFT_DELIM; }
1182 //YY_BREAK
1183 case 5:
1184 YY_RULE_SETUP
1185 { yylval.str = yytext+1; token_debug(" ==>RightDelim[%s]\n",yytext+1); return Grammar::RIGHT_DELIM; }
1186 //YY_BREAK
1187 case 6:
1188 YY_RULE_SETUP
1189 { yylval.str = yytext+1; token_debug(" ==>Right[%s]\n",yytext+1); return Grammar::EQRIGHT; }
1190 //YY_BREAK
1191 case 7:
1192 YY_RULE_SETUP
1193 { yylval.str = yytext; token_debug(" ==>NewLine[%s]\n",yytext); return Grammar::NEWLINE; }
1194 //YY_BREAK
1195 case 8:
1196 YY_RULE_SETUP
1197 { yylval.str = yytext+1; token_debug(" ==>Accent[%s]\n",yytext+1); return Grammar::ACCENT; }
1198 //YY_BREAK
1199 case 9:
1200 YY_RULE_SETUP
1201 { yylval.str = yytext+1; token_debug(" ==>Small_Greek[%s]\n",yytext+1); return Grammar::SMALL_GREEK; }
1202 //YY_BREAK
1203 case 10:
1204 YY_RULE_SETUP
1205 { yylval.str = yytext+1; token_debug(" ==>Capital_Greek[%s]\n",yytext+1); return Grammar::CAPITAL_GREEK; }
1206 //YY_BREAK
1207 case 11:
1208 YY_RULE_SETUP
1209 { yylval.str = yytext+1; token_debug(" ==>Binary_Operator[%s]\n",yytext+1); return Grammar::BINARY_OPERATOR; }
1210 //YY_BREAK
1211 case 12:
1212 YY_RULE_SETUP
1213 { yylval.str = yytext+1; token_debug(" ==>Relation_Symbol[%s]\n",yytext+1); return Grammar::RELATION_OPERATOR; }
1214 //YY_BREAK
1215 case 13:
1216 YY_RULE_SETUP
1217 { yylval.str = "neq"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR; }
1218 //YY_BREAK
1219 case 14:
1220 YY_RULE_SETUP
1221 { yylval.str = "vmlt"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR; }
1222 //YY_BREAK
1223 case 15:
1224 YY_RULE_SETUP
1225 { yylval.str = "vmgt"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR; }
1226 //YY_BREAK
1227 case 16:
1228 YY_RULE_SETUP
1229 { yylval.str = "mlt"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR; }
1230 //YY_BREAK
1231 case 17:
1232 YY_RULE_SETUP
1233 { yylval.str = "mgt"; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR; }
1234 //YY_BREAK
1235 case 18:
1236 YY_RULE_SETUP
1237 { yylval.str = yytext; token_debug(" ==>Relation_Symbol[neq]\n"); return Grammar::RELATION_OPERATOR; }
1238 //YY_BREAK
1239 case 19:
1240 YY_RULE_SETUP
1241 { yylval.str = yytext+1; token_debug(" ==>Arrow[%s]\n",yytext+1); return Grammar::ARROW; }
1242 //YY_BREAK
1243 case 20:
1244 YY_RULE_SETUP
1245 { yylval.str = "leftrightarrow"; token_debug(" ==>Arrow[leftrightarrow]\n"); return Grammar::ARROW; }
1246 //YY_BREAK
1247 case 21:
1248 YY_RULE_SETUP
1249 { yylval.str = "rightarrow"; token_debug(" ==>Arrow[rightarrow]\n"); return Grammar::ARROW; }
1250 //YY_BREAK
1251 case 22:
1252 YY_RULE_SETUP
1253 { yylval.str = "leftarrow"; token_debug(" ==>Arrow[leftarrow]\n"); return Grammar::ARROW; }
1254 //YY_BREAK
1256 case 23:
1257 YY_RULE_SETUP
1258 { token_debug(" ==>Ignore[\\rm]\n"); }
1259 //YY_BREAK
1260 [[fallthrough]];
1261 case 24:
1262 YY_RULE_SETUP
1263 { yylval.str = yytext+1; token_debug(" ==>General_Iden[%s]\n",yytext+1); return Grammar::GENERAL_IDEN; }
1264 //YY_BREAK
1265 case 25:
1266 YY_RULE_SETUP
1267 { yylval.str = yytext+1; token_debug(" ==>General_Oper[%s]\n",yytext+1); return Grammar::GENERAL_OPER; }
1268 //YY_BREAK
1269 case 26:
1270 YY_RULE_SETUP
1271 { yylval.str = yytext+1; token_debug(" ==>Big_Symbol[%s]\n",yytext+1); return Grammar::BIG_SYMBOL; }
1272 //YY_BREAK
1273 case 27:
1274 YY_RULE_SETUP
1275 { yylval.str = yytext+1; token_debug(" ==>Function[%s]\n",yytext+1); return Grammar::FUNCTION; }
1276 //YY_BREAK
1277 case 28:
1278 YY_RULE_SETUP
1279 { yylval.str = yytext+1; token_debug(" ==>Root[%s]\n",yytext+1); return Grammar::ROOT; }
1280 //YY_BREAK
1281 case 29:
1282 YY_RULE_SETUP
1283 { yylval.str = yytext+1; token_debug(" ==>Fraction[%s]\n",yytext+1); return Grammar::FRACTION; }
1284 //YY_BREAK
1285 case 30:
1286 YY_RULE_SETUP
1287 { yylval.str = yytext+1; token_debug(" ==>Over[%s]\n",yytext+1); return Grammar::EQOVER; }
1288 //YY_BREAK
1289 case 31:
1290 YY_RULE_SETUP
1291 { yylval.str = yytext+1; token_debug(" ==>Delimeter[%s]\n",yytext+1); return Grammar::DELIMETER; }
1292 //YY_BREAK
1293 case 32:
1294 YY_RULE_SETUP
1295 { yylval.str = yytext+1; token_debug(" ==>Large_Delim[%s]\n",yytext+1); return Grammar::LARGE_DELIM; }
1296 //YY_BREAK
1297 case 33:
1298 YY_RULE_SETUP
1299 { yylval.str = yytext+1; token_debug(" ==>Decoration[%s]\n",yytext+1); return Grammar::DECORATION; }
1300 //YY_BREAK
1301 case 34:
1302 YY_RULE_SETUP
1303 { yylval.str = yytext+1; token_debug(" ==>Space_Symbol[%s]\n",yytext+1); /*return Grammar::SPACE_SYMBOL;*/ }
1304 //YY_BREAK
1305 [[fallthrough]];
1306 case 35:
1307 YY_RULE_SETUP
1308 { yylval.str = "quad"; token_debug(" ==>Space_Symbol[quad]\n"); /* return Grammar::SPACE_SYMBOL;*/ }
1309 //YY_BREAK
1310 [[fallthrough]];
1311 case 36:
1312 YY_RULE_SETUP
1313 { yylval.dval = yytext; token_debug(" ==>Digit[%s]\n",yytext); return Grammar::DIGIT; }
1314 //YY_BREAK
1315 case 37:
1316 YY_RULE_SETUP
1317 { yylval.str = yytext; token_debug(" ==>Operator[%s]\n",yytext); return Grammar::OPERATOR; }
1318 //YY_BREAK
1319 case 38:
1320 YY_RULE_SETUP
1321 { token_debug(" ==>SubSup[%s]\n",yytext); return yytext[0]; }
1322 //YY_BREAK
1323 case 39:
1324 YY_RULE_SETUP
1325 { token_debug(" ==>Paren[%s]\n",yytext); return yytext[0];}
1326 //YY_BREAK
1327 case 40:
1328 YY_RULE_SETUP
1329 { token_debug(" ==>Abs[%s]\n",yytext); return yytext[0];}
1330 //YY_BREAK
1331 case 41:
1332 YY_RULE_SETUP
1333 { token_debug(" ==>Space[0x%2x]\n",yytext[0]); }
1334 YY_BREAK
1335 case 42:
1336 YY_RULE_SETUP
1337 { token_debug(" ==>Ignore[0x%2x]\n",yytext[0]); }
1338 YY_BREAK
1339 case 43:
1340 YY_RULE_SETUP
1341 { yylval.str = yytext; token_debug(" ==>String[%s]\n",yytext); return Grammar::STRING; }
1342 //YY_BREAK
1343 case 44:
1344 YY_RULE_SETUP
1345 { yylval.str = yytext; token_debug(" ==>Else[%s]\n",yytext); return Grammar::CHARACTER; }
1346 //YY_BREAK
1347 case 45:
1348 YY_RULE_SETUP
1349 ECHO;
1350 YY_BREAK
1351 case YY_STATE_EOF(INITIAL):
1352 yyterminate();
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
1384 * in input().
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;
1412 goto yy_match;
1415 else
1417 yy_cp = yy_c_buf_p;
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;
1428 if ( yywrap() )
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);
1442 goto do_action;
1445 else
1447 if ( ! yy_did_buffer_switch_on_eof )
1448 YY_NEW_FILE;
1451 break;
1453 case EOB_ACT_CONTINUE_SCAN:
1454 yy_c_buf_p =
1455 yytext_ptr + yy_amount_of_matched_text;
1457 yy_current_state = yy_get_previous_state();
1459 yy_cp = yy_c_buf_p;
1460 yy_bp = yytext_ptr + YY_MORE_ADJ;
1461 goto yy_match;
1462 break;
1464 case EOB_ACT_LAST_MATCH:
1465 yy_c_buf_p =
1466 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1468 yy_current_state = yy_get_previous_state();
1470 yy_cp = yy_c_buf_p;
1471 yy_bp = yytext_ptr + YY_MORE_ADJ;
1472 goto yy_find_action;
1473 break;
1475 break;
1478 default:
1479 YY_FATAL_ERROR(
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;
1499 int ret_val;
1501 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1502 YY_FATAL_ERROR(
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;
1515 else
1517 /* We matched some text prior to the EOB, first
1518 * process it.
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,
1534 * just force an EOF
1536 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1538 else
1540 int num_to_read =
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
1546 YY_FATAL_ERROR(
1547 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1548 #else
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;
1562 else
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 ));
1570 else
1571 /* Can't grow it, we don't own it. */
1572 b->yy_ch_buf = nullptr;
1574 if ( ! b->yy_ch_buf )
1575 YY_FATAL_ERROR(
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 -
1581 number_to_move - 1;
1582 #endif
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;
1600 yyrestart( yyin );
1603 else
1605 ret_val = EOB_ACT_LAST_MATCH;
1606 yy_current_buffer->yy_buffer_status =
1607 YY_BUFFER_EOF_PENDING;
1611 else
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];
1620 return ret_val;
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;
1629 char *yy_cp;
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
1656 * synopsis
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 )
1662 #else
1663 static yy_state_type yy_try_NUL_trans( yy_current_state )
1664 yy_state_type yy_current_state;
1665 #endif
1667 bool yy_is_jam;
1668 char *yy_cp = yy_c_buf_p;
1670 YY_CHAR yy_c = 1;
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 )
1690 #else
1691 void yyrestart( input_file )
1692 FILE *input_file;
1693 #endif
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 )
1705 #else
1706 void yy_switch_to_buffer( new_buffer )
1707 YY_BUFFER_STATE new_buffer;
1708 #endif
1710 if ( yy_current_buffer == new_buffer )
1711 return;
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()
1735 #else
1736 void yy_load_buffer_state()
1737 #endif
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 )
1748 #else
1749 YY_BUFFER_STATE yy_create_buffer( file, size )
1750 FILE *file;
1751 int size;
1752 #endif
1754 YY_BUFFER_STATE b;
1756 b = static_cast<YY_BUFFER_STATE>(yy_flex_alloc( sizeof( struct yy_buffer_state ) ));
1757 if ( ! b )
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 );
1773 return b;
1777 #ifdef YY_USE_PROTOS
1778 void yy_delete_buffer( YY_BUFFER_STATE b )
1779 #else
1780 void yy_delete_buffer( b )
1781 YY_BUFFER_STATE b;
1782 #endif
1784 if ( ! b )
1785 return;
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 ));
1800 #endif
1801 #endif
1803 #ifdef YY_USE_PROTOS
1804 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
1805 #else
1806 void yy_init_buffer( b, file )
1807 YY_BUFFER_STATE b;
1808 FILE *file;
1809 #endif
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;
1820 #else
1821 #if YY_NEVER_INTERACTIVE
1822 b->yy_is_interactive = false;
1823 #else
1824 b->yy_is_interactive = file && isatty( fileno(file) ) > 0;
1825 #endif
1826 #endif
1830 #ifdef YY_USE_PROTOS
1831 void yy_flush_buffer( YY_BUFFER_STATE b )
1832 #else
1833 void yy_flush_buffer( b )
1834 YY_BUFFER_STATE b;
1835 #endif
1838 if ( ! b )
1839 return;
1841 b->yy_n_chars = 0;
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];
1852 b->yy_at_bol = 1;
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 )
1863 #else
1864 YY_BUFFER_STATE yy_scan_buffer( base, size )
1865 char *base;
1866 yy_size_t size;
1867 #endif
1869 YY_BUFFER_STATE b;
1871 if ( size < 2 ||
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. */
1875 return nullptr;
1877 b = static_cast<YY_BUFFER_STATE>(yy_flex_alloc( sizeof( struct yy_buffer_state ) ));
1878 if ( ! b )
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;
1887 b->yy_at_bol = 1;
1888 b->yy_fill_buffer = 0;
1889 b->yy_buffer_status = YY_BUFFER_NEW;
1891 yy_switch_to_buffer( b );
1893 return b;
1895 #endif
1898 #ifndef YY_NO_SCAN_STRING
1899 #ifdef YY_USE_PROTOS
1900 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
1901 #else
1902 YY_BUFFER_STATE yy_scan_string( yy_str )
1903 yyconst char *yy_str;
1904 #endif
1906 int len;
1907 for ( len = 0; yy_str[len]; ++len )
1910 return yy_scan_bytes( yy_str, len );
1912 #endif
1915 #ifndef YY_NO_SCAN_BYTES
1916 #ifdef YY_USE_PROTOS
1917 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
1918 #else
1919 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
1920 yyconst char *bytes;
1921 int len;
1922 #endif
1924 YY_BUFFER_STATE b;
1925 char *buf;
1926 yy_size_t n;
1927 int i;
1929 /* Get memory for full buffer, including space for trailing EOB's. */
1930 n = len + 2;
1931 buf = static_cast<char *>(yy_flex_alloc( n ));
1932 if ( ! buf )
1933 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1935 for ( i = 0; i < len; ++i )
1936 buf[i] = bytes[i];
1938 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
1940 b = yy_scan_buffer( buf, n );
1941 if ( ! b )
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;
1949 return b;
1951 #endif
1954 #ifndef YY_NO_PUSH_STATE
1955 #ifdef YY_USE_PROTOS
1956 static void yy_push_state( int new_state )
1957 #else
1958 static void yy_push_state( new_state )
1959 int new_state;
1960 #endif
1962 if ( yy_start_stack_ptr >= yy_start_stack_depth )
1964 yy_size_t new_size;
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 );
1972 else
1973 yy_start_stack = (int *) yy_flex_realloc(
1974 (void *) yy_start_stack, new_size );
1976 if ( ! yy_start_stack )
1977 YY_FATAL_ERROR(
1978 "out of memory expanding start-condition stack" );
1981 yy_start_stack[yy_start_stack_ptr++] = YY_START;
1983 BEGIN(new_state);
1985 #endif
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]);
1996 #endif
1999 #ifndef YY_NO_TOP_STATE
2000 static int yy_top_state()
2002 return yy_start_stack[yy_start_stack_ptr - 1];
2004 #endif
2006 #ifndef YY_EXIT_FAILURE
2007 #define YY_EXIT_FAILURE 2
2008 #endif
2010 #ifdef YY_USE_PROTOS
2011 static void yy_fatal_error( yyconst char msg[] )
2012 #else
2013 static void yy_fatal_error( msg )
2014 char msg[];
2015 #endif
2017 (void) fprintf( stderr, "%s\n", msg );
2018 exit( YY_EXIT_FAILURE );
2022 /* Internal utility routines. */
2024 #ifndef yytext_ptr
2025 #ifdef YY_USE_PROTOS
2026 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2027 #else
2028 static void yy_flex_strncpy( s1, s2, n )
2029 char *s1;
2030 yyconst char *s2;
2031 int n;
2032 #endif
2034 int i;
2035 for ( i = 0; i < n; ++i )
2036 s1[i] = s2[i];
2038 #endif
2040 #ifdef YY_NEED_STRLEN
2041 #ifdef YY_USE_PROTOS
2042 static int yy_flex_strlen( yyconst char *s )
2043 #else
2044 static int yy_flex_strlen( s )
2045 yyconst char *s;
2046 #endif
2048 int n;
2049 for ( n = 0; s[n]; ++n )
2052 return n;
2054 #endif
2057 #ifdef YY_USE_PROTOS
2058 static void *yy_flex_alloc( yy_size_t size )
2059 #else
2060 static void *yy_flex_alloc( size )
2061 yy_size_t size;
2062 #endif
2064 return malloc( size );
2067 #ifdef YY_USE_PROTOS
2068 static void *yy_flex_realloc( void *ptr, yy_size_t size )
2069 #else
2070 static void *yy_flex_realloc( ptr, size )
2071 void *ptr;
2072 yy_size_t size;
2073 #endif
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 )
2087 #else
2088 static void yy_flex_free( ptr )
2089 void *ptr;
2090 #endif
2092 free( ptr );
2095 #if YY_MAIN
2096 int main()
2098 yylex();
2099 return 0;
2101 #endif
2104 void initFlex(const char *_code )
2106 yy_switch_to_buffer( yy_scan_string(_code) );
2109 void deinitFlex()
2111 // flex faq-memory-leak
2112 yy_delete_buffer(YY_CURRENT_BUFFER);
2113 yy_init = 1;
2116 int yywrap()
2118 yy_delete_buffer( YY_CURRENT_BUFFER );
2119 return 1;
2122 #ifndef TOKEN_DEBUG
2123 int token_debug(const char * /*format*/, ...)
2125 return 0;
2127 #endif
2129 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */