Version 6.4.0.3, tag libreoffice-6.4.0.3
[LibreOffice.git] / hwpfilter / source / lexer.cxx
blobd70d81a92923fea36dc975d2e9d172f02840dc97
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 typedef struct yy_buffer_state *YY_BUFFER_STATE;
94 #define EOB_ACT_CONTINUE_SCAN 0
95 #define EOB_ACT_END_OF_FILE 1
96 #define EOB_ACT_LAST_MATCH 2
98 //#define unput(c) yyunput( c, yytext_ptr )
100 /* The following is because we cannot portably get our hands on size_t
101 * (without autoconf's help, which isn't available because we want
102 * flex-generated scanners to compile on their own).
104 typedef unsigned int yy_size_t;
107 struct yy_buffer_state
109 FILE *yy_input_file;
111 char *yy_ch_buf; /* input buffer */
112 char *yy_buf_pos; /* current position in input buffer */
114 /* Size of input buffer in bytes, not including room for EOB
115 * characters.
117 yy_size_t yy_buf_size;
119 /* Number of characters read into yy_ch_buf, not including EOB
120 * characters.
122 int yy_n_chars;
124 /* Whether we "own" the buffer - i.e., we know we created it,
125 * and can realloc() it to grow it, and should free() it to
126 * delete it.
128 int yy_is_our_buffer;
130 /* Whether this is an "interactive" input source; if so, and
131 * if we're using stdio for input, then we want to use getc()
132 * instead of fread(), to make sure we stop fetching input after
133 * each newline.
135 bool yy_is_interactive;
137 /* Whether we're considered to be at the beginning of a line.
138 * If so, '^' rules will be active on the next match, otherwise
139 * not.
141 int yy_at_bol;
143 /* Whether to try to fill the input buffer when we reach the
144 * end of it.
146 int yy_fill_buffer;
148 int yy_buffer_status;
149 #define YY_BUFFER_NEW 0
150 #define YY_BUFFER_NORMAL 1
151 /* When an EOF's been seen but there's still some text to process
152 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
153 * shouldn't try reading from the input source any more. We might
154 * still have a bunch of tokens to match, though, because of
155 * possible backing-up.
157 * When we actually see the EOF, we change the status to "new"
158 * (via yyrestart()), so that the user can continue scanning by
159 * just pointing yyin at a new input file.
161 #define YY_BUFFER_EOF_PENDING 2
164 static YY_BUFFER_STATE yy_current_buffer = nullptr;
166 /* We provide macros for accessing buffer states in case in the
167 * future we want to put the buffer states in a more general
168 * "scanner state".
170 #define YY_CURRENT_BUFFER yy_current_buffer
173 /* yy_hold_char holds the character lost when yytext is formed. */
174 static char yy_hold_char;
176 static int yy_n_chars; /* number of characters read into yy_ch_buf */
179 static int yyleng;
181 /* Points to current character in buffer. */
182 static char *yy_c_buf_p = nullptr;
183 static int yy_init = 1; /* whether we need to initialize */
184 static int yy_start = 0; /* start state number */
186 /* Flag which is used to allow yywrap()'s to do buffer switches
187 * instead of setting up a fresh yyin. A bit of a hack ...
189 static int yy_did_buffer_switch_on_eof;
191 static void yyrestart YY_PROTO(( FILE *input_file ));
193 static void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
194 static void yy_load_buffer_state YY_PROTO(( ));
195 static YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
196 static void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
197 static void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
198 static void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
200 static YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
201 static YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
202 static YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
204 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
205 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
206 static void yy_flex_free YY_PROTO(( void * ));
208 typedef unsigned char YY_CHAR;
209 static FILE *yyin = nullptr, *yyout = nullptr;
210 typedef int yy_state_type;
211 #define yytext_ptr yytext
213 static yy_state_type yy_get_previous_state YY_PROTO(( ));
214 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
215 static int yy_get_next_buffer YY_PROTO(( ));
216 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
218 /* Done after the current pattern has been matched and before the
219 * corresponding action - sets up yytext.
221 #define YY_DO_BEFORE_ACTION \
222 yytext_ptr = yy_bp; \
223 yyleng = static_cast<int>(yy_cp - yy_bp); \
224 yy_hold_char = *yy_cp; \
225 *yy_cp = '\0'; \
226 yy_c_buf_p = yy_cp;
228 #define YY_END_OF_BUFFER 46
229 static yyconst short int yy_accept[994] =
230 { 0,
231 0, 0, 46, 44, 41, 41, 44, 42, 39, 37,
232 37, 36, 39, 39, 44, 44, 38, 40, 35, 43,
233 13, 21, 36, 36, 22, 16, 17, 0, 34, 0,
234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
235 0, 0, 24, 0, 24, 0, 0, 0, 0, 0,
236 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
237 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
238 0, 0, 0, 0, 0, 0, 4, 31, 5, 43,
239 36, 20, 14, 15, 0, 0, 0, 0, 0, 0,
240 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
242 0, 0, 0, 10, 0, 0, 27, 0, 0, 0,
243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
246 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
247 0, 0, 0, 0, 0, 0, 12, 12, 0, 0,
248 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
249 0, 0, 0, 0, 12, 0, 27, 0, 0, 0,
250 0, 0, 0, 0, 0, 11, 0, 9, 0, 0,
251 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, 23, 0, 0, 0, 0, 0, 0,
255 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
256 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
260 0, 0, 0, 0, 8, 0, 0, 0, 0, 0,
261 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
262 27, 0, 0, 0, 0, 12, 0, 0, 8, 0,
264 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
265 0, 0, 0, 0, 0, 0, 0, 27, 26, 0,
266 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
267 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
269 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
270 0, 0, 0, 0, 0, 0, 0, 0, 12, 27,
271 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
272 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
273 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, 0, 0,
278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
280 0, 11, 0, 0, 0, 0, 0, 0, 8, 0,
281 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
282 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
283 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
286 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
287 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
289 0, 0, 0, 28, 0, 0, 12, 0, 0, 0,
290 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
292 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
295 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
297 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
299 0, 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 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
304 0, 0, 0, 0, 0, 0, 0, 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,
308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
310 0, 0, 0, 0, 0, 0, 0, 0, 32, 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, 12, 0, 12, 0, 0,
314 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, 11, 0, 0, 0,
319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
322 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
324 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
326 0, 0, 12, 12, 0, 24, 0, 0, 0, 0,
327 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
328 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
332 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
336 0, 0, 0, 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
343 static yyconst int yy_ec[256] =
344 { 0,
345 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
346 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
347 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
348 1, 1, 4, 1, 1, 1, 1, 5, 1, 6,
349 7, 8, 8, 9, 10, 11, 8, 12, 12, 12,
350 12, 12, 12, 12, 12, 12, 12, 13, 14, 15,
351 16, 17, 1, 1, 18, 19, 20, 21, 22, 1,
352 23, 1, 24, 25, 26, 27, 28, 29, 30, 31,
353 1, 32, 33, 34, 35, 36, 1, 37, 1, 38,
354 39, 40, 41, 42, 42, 1, 43, 44, 45, 46,
356 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
357 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
358 67, 68, 69, 70, 71, 72, 1, 1, 1, 1,
359 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
360 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
361 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
362 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
363 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
364 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
365 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
367 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
368 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
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, 1
375 static yyconst int yy_meta[74] =
376 { 0,
377 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
378 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
379 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
380 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
381 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
382 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
383 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
384 1, 1, 1
387 static yyconst short int yy_base[995] =
388 { 0,
389 0, 72, 1314, 1315, 1315, 1315, 1297, 1315, 1315, 1315,
390 1295, 2, 8, 1294, 1281, 142, 1315, 1315, 1315, 1236,
391 1315, 1315, 1296, 8, 1290, 1291, 1288, 1274, 1315, 0,
392 0, 1253, 1, 1, 1259, 7, 1244, 1257, 8, 1236,
393 1235, 1242, 35, 43, 1245, 0, 1237, 1251, 1242, 1245,
394 1315, 46, 72, 171, 79, 62, 77, 184, 192, 92,
395 1236, 2, 207, 216, 225, 234, 250, 46, 269, 278,
396 295, 10, 111, 255, 10, 1243, 1315, 1315, 1315, 1216,
397 1276, 1315, 1315, 1315, 1253, 1228, 1225, 1222, 1217, 1231,
398 1227, 1237, 1214, 1217, 1234, 1221, 1315, 1213, 1223, 1215,
400 1217, 1223, 1214, 1315, 168, 1218, 1315, 1217, 1210, 1217,
401 1216, 1201, 1216, 177, 1202, 1199, 1197, 34, 1216, 1209,
402 1199, 181, 36, 164, 198, 1207, 119, 199, 1201, 1196,
403 1196, 218, 1192, 1188, 225, 1205, 1191, 78, 40, 245,
404 280, 1197, 175, 1184, 1192, 1187, 1198, 1182, 1179, 1198,
405 101, 1197, 1179, 227, 1183, 1191, 1177, 1315, 1192, 1172,
406 1190, 1189, 53, 1184, 1187, 260, 1167, 1171, 1184, 1168,
407 1165, 248, 1177, 1166, 291, 1168, 1161, 1174, 1164, 1161,
408 222, 268, 1160, 0, 1170, 1315, 1172, 1315, 247, 299,
409 1152, 1170, 1155, 1155, 300, 1156, 1155, 1157, 1160, 1146,
411 1145, 1153, 302, 1152, 1139, 1158, 1144, 1152, 1147, 1143,
412 1136, 308, 1146, 1137, 1150, 1136, 317, 1148, 308, 318,
413 1147, 311, 1146, 322, 1145, 312, 1140, 319, 1128, 1134,
414 324, 340, 1124, 333, 340, 1137, 1136, 1121, 1118, 1315,
415 1129, 1121, 1134, 1114, 1120, 1118, 1122, 1117, 1128, 1114,
416 1111, 1124, 1105, 1117, 1116, 1119, 1113, 1107, 1099, 1100,
417 1102, 1107, 344, 1114, 1094, 1097, 1104, 1099, 327, 1092,
418 347, 1094, 1095, 1096, 1315, 1105, 1096, 1103, 350, 1083,
419 1099, 1079, 1088, 1079, 1095, 1094, 1094, 1088, 1076, 1085,
420 1084, 1084, 1082, 1082, 1068, 1067, 1073, 1071, 1079, 1069,
422 1069, 1061, 1315, 1071, 1070, 1059, 1057, 1075, 1072, 1051,
423 1060, 1050, 1053, 1052, 1058, 1054, 348, 1047, 1315, 1065,
424 1045, 1048, 1061, 1055, 1052, 1040, 1039, 1043, 1042, 338,
425 1035, 1048, 1035, 1048, 1038, 1039, 1029, 1031, 276, 1030,
426 1027, 1026, 1038, 371, 1023, 1042, 1029, 1023, 355, 1024,
427 1036, 1025, 372, 1036, 1032, 1028, 1025, 1020, 1017, 1016,
428 1022, 1008, 1014, 1020, 1008, 1012, 1006, 1010, 1017, 1013,
429 1008, 1007, 1014, 360, 997, 995, 997, 995, 1010, 372,
430 1008, 993, 1002, 156, 1005, 1003, 1006, 1001, 997, 996,
431 985, 987, 980, 991, 374, 980, 978, 977, 989, 990,
433 993, 992, 969, 990, 975, 988, 976, 986, 985, 981,
434 379, 191, 983, 965, 962, 980, 979, 961, 955, 965,
435 960, 374, 967, 965, 965, 967, 963, 969, 962, 963,
436 947, 951, 950, 955, 962, 939, 945, 941, 938, 944,
437 377, 383, 940, 938, 939, 949, 948, 943, 946, 945,
438 944, 929, 936, 927, 930, 939, 921, 935, 922, 939,
439 924, 933, 920, 935, 910, 922, 911, 912, 919, 1315,
440 916, 928, 923, 907, 388, 906, 920, 916, 898, 914,
441 920, 916, 907, 906, 898, 400, 901, 894, 900, 892,
442 893, 392, 891, 898, 902, 907, 889, 888, 891, 895,
444 885, 901, 883, 879, 880, 879, 892, 405, 884, 886,
445 889, 888, 872, 887, 878, 877, 887, 872, 865, 865,
446 865, 876, 870, 863, 871, 863, 877, 860, 864, 870,
447 869, 857, 856, 1315, 400, 866, 865, 851, 863, 849,
448 861, 864, 859, 844, 848, 843, 856, 855, 840, 834,
449 837, 843, 838, 403, 845, 843, 843, 834, 841, 829,
450 1315, 842, 401, 824, 831, 826, 828, 841, 823, 831,
451 834, 829, 822, 835, 820, 820, 818, 813, 822, 815,
452 822, 823, 809, 802, 806, 810, 809, 800, 809, 801,
453 1315, 803, 800, 801, 404, 807, 803, 805, 810, 803,
455 799, 805, 805, 803, 785, 786, 1315, 784, 800, 785,
456 797, 787, 782, 780, 783, 778, 784, 776, 789, 784,
457 783, 790, 785, 771, 787, 778, 768, 769, 778, 767,
458 762, 776, 779, 770, 763, 758, 764, 774, 759, 93,
459 126, 187, 225, 269, 333, 415, 345, 372, 388, 397,
460 400, 417, 418, 408, 411, 427, 409, 418, 426, 417,
461 419, 415, 417, 418, 419, 419, 423, 422, 422, 428,
462 438, 438, 444, 432, 434, 434, 431, 442, 437, 446,
463 449, 436, 456, 449, 454, 456, 443, 448, 445, 457,
464 459, 459, 453, 450, 446, 469, 457, 463, 460, 454,
466 460, 471, 476, 473, 476, 458, 461, 468, 462, 471,
467 484, 485, 466, 481, 484, 481, 473, 488, 475, 489,
468 481, 475, 491, 491, 496, 482, 483, 495, 1315, 502,
469 498, 490, 500, 503, 497, 487, 488, 498, 512, 508,
470 501, 509, 512, 506, 514, 502, 520, 521, 518, 501,
471 504, 505, 506, 523, 524, 525, 526, 527, 510, 519,
472 523, 518, 528, 515, 538, 526, 532, 529, 523, 535,
473 525, 534, 529, 533, 534, 542, 531, 544, 535, 536,
474 543, 555, 556, 545, 541, 541, 540, 543, 558, 548,
475 549, 552, 548, 563, 551, 550, 552, 557, 553, 565,
477 555, 568, 576, 563, 563, 572, 578, 562, 564, 576,
478 582, 566, 582, 580, 577, 572, 573, 589, 574, 581,
479 586, 576, 577, 581, 579, 583, 583, 597, 602, 590,
480 587, 594, 606, 607, 597, 1315, 606, 591, 589, 590,
481 594, 614, 596, 602, 600, 604, 600, 613, 603, 604,
482 617, 605, 605, 604, 608, 628, 610, 619, 610, 619,
483 615, 628, 636, 618, 619, 635, 640, 622, 628, 628,
484 637, 626, 642, 643, 644, 646, 648, 647, 635, 640,
485 641, 652, 658, 642, 652, 661, 640, 650, 652, 655,
486 659, 651, 669, 656, 671, 668, 656, 666, 661, 676,
488 660, 678, 657, 666, 677, 666, 667, 680, 677, 682,
489 673, 675, 676, 673, 674, 686, 676, 672, 691, 677,
490 680, 681, 686, 683, 684, 696, 686, 687, 688, 692,
491 702, 702, 687, 693, 697, 705, 696, 711, 701, 699,
492 714, 701, 705, 713, 704, 708, 706, 711, 706, 719,
493 713, 706, 710, 716, 718, 718, 713, 722, 723, 723,
494 725, 718, 722, 728, 721, 730, 742, 727, 725, 748,
495 727, 728, 729, 730, 731, 754, 733, 734, 743, 743,
496 742, 747, 748, 746, 742, 748, 749, 754, 754, 755,
497 748, 749, 1315, 814
501 static yyconst short int yy_def[995] =
502 { 0,
503 994, 994, 993, 993, 993, 993, 993, 993, 993, 993,
504 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
505 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
506 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
507 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
508 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
509 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
510 993, 993, 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,
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,
520 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,
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,
531 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,
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,
542 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,
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,
553 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,
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,
564 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,
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,
575 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,
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,
586 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,
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,
597 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,
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,
608 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, 0, 993
615 static yyconst short int yy_nxt[1389] =
616 { 0,
617 993, 5, 6, 7, 8, 9, 9, 10, 993, 11,
618 993, 12, 23, 24, 13, 10, 14, 25, 23, 24,
619 993, 993, 26, 993, 993, 993, 15, 993, 993, 993,
620 993, 993, 993, 993, 993, 993, 993, 993, 9, 16,
621 9, 17, 112, 993, 170, 158, 88, 91, 171, 113,
622 101, 92, 993, 86, 102, 107, 89, 93, 94, 87,
623 188, 97, 95, 98, 103, 231, 238, 232, 9, 18,
624 9, 19, 20, 5, 6, 7, 8, 9, 9, 10,
625 266, 11, 294, 12, 106, 104, 13, 10, 14, 97,
626 117, 267, 109, 110, 107, 108, 295, 186, 15, 118,
628 119, 120, 273, 121, 205, 122, 123, 107, 206, 315,
629 9, 16, 9, 17, 124, 145, 146, 147, 125, 148,
630 149, 138, 126, 150, 139, 140, 292, 151, 127, 141,
631 152, 128, 142, 153, 129, 143, 154, 164, 293, 144,
632 9, 18, 9, 19, 20, 29, 165, 166, 167, 737,
633 29, 306, 168, 233, 29, 29, 234, 235, 107, 30,
634 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
635 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
636 97, 51, 738, 280, 52, 53, 54, 55, 56, 57,
637 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
639 68, 69, 70, 71, 72, 73, 74, 75, 274, 76,
640 77, 78, 79, 130, 255, 541, 131, 542, 256, 260,
641 132, 133, 261, 275, 134, 271, 155, 135, 156, 107,
642 157, 136, 158, 137, 160, 161, 299, 262, 162, 300,
643 272, 281, 276, 159, 571, 282, 277, 186, 163, 172,
644 572, 173, 174, 175, 176, 177, 178, 179, 182, 278,
645 158, 180, 107, 181, 285, 183, 184, 189, 188, 309,
646 107, 190, 185, 186, 186, 158, 187, 332, 188, 193,
647 288, 191, 289, 310, 194, 290, 291, 188, 195, 192,
648 336, 196, 200, 107, 197, 198, 201, 199, 296, 202,
650 188, 236, 323, 324, 186, 237, 107, 318, 337, 203,
651 204, 207, 97, 208, 186, 209, 210, 211, 212, 213,
652 216, 319, 297, 214, 217, 333, 499, 218, 219, 186,
653 215, 500, 220, 107, 107, 221, 222, 226, 327, 223,
654 224, 338, 225, 186, 227, 228, 343, 97, 351, 158,
655 344, 229, 352, 186, 230, 374, 368, 158, 353, 365,
656 371, 107, 369, 370, 188, 378, 379, 383, 372, 388,
657 375, 376, 385, 386, 188, 396, 319, 389, 366, 380,
658 430, 381, 391, 390, 275, 392, 186, 431, 489, 397,
659 421, 433, 739, 393, 441, 742, 477, 509, 490, 398,
661 394, 422, 532, 423, 424, 425, 442, 434, 435, 478,
662 443, 444, 445, 446, 447, 503, 510, 319, 538, 592,
663 553, 569, 533, 579, 104, 743, 504, 593, 595, 513,
664 744, 554, 539, 555, 556, 557, 558, 596, 570, 594,
665 597, 619, 624, 664, 598, 632, 633, 620, 645, 625,
666 683, 634, 678, 188, 706, 158, 158, 665, 646, 626,
667 707, 740, 684, 79, 647, 741, 745, 79, 729, 746,
668 748, 749, 97, 750, 751, 752, 747, 753, 754, 755,
669 756, 158, 757, 758, 759, 760, 761, 762, 764, 765,
670 766, 767, 188, 188, 768, 769, 770, 763, 771, 772,
672 773, 97, 774, 104, 775, 776, 777, 778, 104, 779,
673 561, 780, 104, 781, 782, 783, 784, 785, 786, 158,
674 186, 319, 319, 787, 788, 789, 790, 792, 793, 794,
675 795, 796, 186, 797, 798, 799, 188, 800, 801, 802,
676 803, 804, 805, 806, 807, 808, 791, 809, 810, 97,
677 97, 561, 561, 188, 811, 812, 813, 814, 815, 97,
678 158, 816, 817, 818, 97, 561, 819, 820, 821, 822,
679 823, 824, 825, 826, 561, 827, 828, 829, 830, 561,
680 831, 188, 832, 833, 834, 835, 836, 837, 838, 839,
681 840, 841, 842, 843, 844, 845, 846, 104, 104, 97,
683 847, 848, 849, 319, 850, 319, 319, 851, 319, 319,
684 852, 97, 853, 854, 97, 855, 856, 857, 858, 859,
685 860, 861, 862, 863, 864, 865, 866, 867, 836, 868,
686 158, 869, 870, 871, 186, 319, 872, 873, 874, 158,
687 158, 158, 875, 876, 877, 878, 879, 880, 188, 188,
688 881, 882, 729, 561, 561, 883, 884, 886, 887, 888,
689 889, 729, 78, 319, 319, 890, 729, 891, 561, 97,
690 892, 893, 158, 885, 561, 894, 895, 896, 897, 899,
691 900, 836, 901, 902, 903, 904, 905, 97, 906, 907,
692 158, 97, 910, 836, 911, 898, 912, 913, 836, 908,
694 914, 915, 916, 917, 561, 909, 918, 104, 919, 920,
695 921, 922, 923, 924, 729, 925, 926, 561, 927, 928,
696 929, 561, 930, 729, 158, 158, 931, 932, 836, 933,
697 188, 188, 934, 935, 936, 937, 561, 938, 97, 939,
698 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
699 950, 561, 951, 952, 953, 954, 955, 957, 958, 959,
700 961, 962, 963, 964, 965, 966, 967, 186, 968, 969,
701 561, 970, 971, 956, 972, 186, 960, 561, 973, 974,
702 561, 975, 561, 976, 977, 836, 978, 979, 186, 561,
703 981, 561, 982, 561, 983, 561, 984, 561, 836, 985,
705 561, 986, 186, 561, 980, 987, 988, 989, 990, 561,
706 991, 992, 561, 561, 4, 736, 735, 734, 158, 561,
707 733, 732, 731, 730, 107, 107, 729, 77, 728, 727,
708 726, 77, 188, 725, 724, 723, 722, 97, 97, 721,
709 720, 719, 718, 717, 186, 319, 716, 186, 715, 158,
710 714, 319, 713, 712, 711, 710, 709, 708, 319, 705,
711 319, 704, 703, 702, 107, 107, 107, 158, 701, 700,
712 699, 104, 104, 698, 697, 696, 695, 694, 693, 692,
713 691, 690, 689, 104, 688, 687, 686, 685, 186, 607,
714 158, 682, 681, 680, 679, 677, 676, 186, 675, 674,
716 186, 186, 673, 672, 186, 275, 188, 671, 670, 669,
717 668, 667, 666, 186, 186, 663, 158, 662, 158, 188,
718 97, 661, 660, 659, 658, 657, 656, 655, 654, 653,
719 79, 652, 29, 651, 97, 650, 649, 648, 644, 643,
720 186, 642, 641, 188, 640, 158, 158, 639, 638, 97,
721 637, 636, 635, 631, 630, 629, 628, 627, 607, 77,
722 623, 622, 188, 97, 607, 97, 158, 621, 618, 275,
723 188, 158, 617, 616, 158, 615, 614, 613, 158, 561,
724 612, 188, 607, 611, 158, 610, 609, 608, 275, 607,
725 606, 275, 605, 604, 603, 602, 601, 600, 599, 591,
727 590, 589, 158, 588, 587, 586, 585, 584, 583, 97,
728 186, 188, 97, 275, 582, 581, 580, 578, 577, 576,
729 575, 104, 104, 574, 573, 104, 568, 104, 104, 567,
730 566, 565, 104, 564, 104, 188, 563, 562, 561, 560,
731 559, 552, 551, 550, 549, 548, 547, 546, 545, 544,
732 543, 107, 540, 97, 537, 536, 186, 535, 534, 531,
733 530, 529, 107, 528, 527, 526, 525, 524, 523, 522,
734 521, 520, 519, 518, 517, 516, 515, 29, 514, 512,
735 511, 158, 508, 507, 506, 505, 502, 319, 186, 501,
736 498, 497, 496, 495, 494, 493, 492, 491, 488, 487,
738 486, 485, 484, 483, 482, 481, 480, 188, 479, 476,
739 475, 474, 97, 473, 472, 471, 470, 469, 97, 468,
740 467, 466, 465, 186, 464, 463, 462, 461, 460, 459,
741 458, 457, 456, 107, 107, 455, 158, 454, 186, 453,
742 452, 451, 450, 449, 448, 188, 440, 439, 438, 437,
743 436, 432, 429, 428, 427, 426, 104, 420, 419, 418,
744 417, 416, 415, 414, 413, 412, 411, 410, 409, 158,
745 104, 408, 407, 406, 405, 404, 104, 403, 402, 401,
746 158, 400, 399, 395, 387, 97, 384, 382, 377, 373,
747 367, 364, 363, 362, 361, 360, 359, 358, 357, 356,
749 355, 354, 188, 188, 350, 349, 348, 347, 346, 345,
750 342, 341, 340, 339, 335, 334, 97, 331, 330, 186,
751 329, 328, 326, 325, 107, 322, 321, 158, 320, 317,
752 316, 314, 313, 275, 312, 158, 107, 311, 308, 307,
753 188, 305, 304, 303, 302, 97, 301, 298, 186, 107,
754 287, 286, 284, 186, 283, 279, 270, 269, 268, 265,
755 264, 263, 259, 104, 258, 257, 104, 104, 104, 254,
756 253, 252, 251, 250, 249, 248, 104, 247, 246, 245,
757 244, 104, 97, 243, 242, 241, 240, 81, 80, 239,
758 169, 116, 104, 115, 114, 111, 105, 104, 104, 100,
760 99, 96, 90, 85, 84, 83, 82, 81, 80, 28,
761 27, 22, 21, 993, 3, 993, 993, 993, 993, 993,
762 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
763 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
764 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
765 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
766 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
767 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
768 993, 993, 993, 993, 993, 993, 993, 993
771 static yyconst short int yy_chk[1389] =
772 { 0,
773 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,
774 0, 1, 12, 12, 1, 1, 1, 13, 24, 24,
775 0, 0, 13, 0, 0, 0, 1, 0, 0, 0,
776 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
777 1, 1, 46, 0, 62, 184, 31, 33, 62, 46,
778 39, 33, 0, 30, 39, 184, 31, 33, 34, 30,
779 75, 36, 34, 36, 39, 72, 75, 72, 1, 1,
780 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
781 118, 2, 139, 2, 43, 43, 2, 2, 2, 44,
782 52, 118, 44, 44, 43, 43, 139, 123, 2, 52,
784 52, 52, 123, 52, 68, 52, 52, 163, 68, 163,
785 2, 2, 2, 2, 53, 56, 56, 56, 53, 56,
786 56, 55, 53, 56, 55, 55, 138, 56, 53, 55,
787 57, 53, 55, 57, 53, 55, 57, 60, 138, 55,
788 2, 2, 2, 2, 2, 16, 60, 60, 60, 640,
789 16, 151, 60, 73, 16, 16, 73, 73, 151, 16,
790 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
791 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
792 127, 16, 641, 127, 16, 16, 16, 16, 16, 16,
793 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
795 16, 16, 16, 16, 16, 16, 16, 16, 124, 16,
796 16, 16, 16, 54, 105, 384, 54, 384, 105, 114,
797 54, 54, 114, 124, 54, 122, 58, 54, 58, 122,
798 58, 54, 58, 54, 59, 59, 143, 114, 59, 143,
799 122, 128, 125, 58, 412, 128, 125, 642, 59, 63,
800 412, 63, 63, 63, 63, 63, 63, 63, 64, 125,
801 63, 63, 63, 63, 132, 64, 64, 65, 132, 154,
802 181, 65, 64, 64, 643, 65, 64, 181, 64, 66,
803 135, 65, 135, 154, 66, 135, 135, 65, 66, 65,
804 189, 66, 67, 140, 66, 66, 67, 66, 140, 67,
806 67, 74, 172, 172, 67, 74, 140, 166, 189, 67,
807 67, 69, 74, 69, 74, 69, 69, 69, 69, 69,
808 70, 166, 141, 69, 70, 182, 339, 70, 70, 644,
809 69, 339, 70, 182, 141, 70, 70, 71, 175, 70,
810 70, 190, 70, 141, 71, 71, 195, 190, 203, 175,
811 195, 71, 203, 212, 71, 222, 219, 190, 203, 217,
812 220, 217, 219, 219, 212, 224, 224, 226, 220, 231,
813 222, 222, 228, 228, 226, 234, 224, 231, 217, 224,
814 269, 224, 232, 231, 235, 232, 235, 269, 330, 234,
815 263, 271, 645, 232, 279, 647, 317, 349, 330, 235,
817 232, 263, 374, 263, 263, 263, 279, 271, 271, 317,
818 279, 279, 279, 279, 279, 344, 349, 353, 380, 441,
819 395, 411, 374, 422, 422, 648, 344, 441, 442, 353,
820 649, 395, 380, 395, 395, 395, 395, 442, 411, 441,
821 442, 475, 486, 535, 442, 492, 492, 475, 508, 486,
822 563, 492, 554, 554, 595, 650, 651, 535, 508, 486,
823 595, 646, 563, 652, 508, 646, 653, 654, 655, 656,
824 657, 658, 659, 660, 661, 662, 656, 663, 664, 665,
825 666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
826 676, 677, 678, 679, 680, 681, 682, 673, 683, 684,
828 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
829 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
830 705, 706, 707, 708, 709, 710, 711, 712, 713, 714,
831 715, 716, 717, 718, 719, 720, 721, 722, 723, 724,
832 725, 726, 727, 728, 730, 731, 711, 732, 733, 734,
833 735, 736, 737, 738, 739, 740, 741, 742, 743, 744,
834 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
835 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
836 765, 766, 767, 768, 769, 770, 771, 772, 773, 774,
837 775, 776, 777, 778, 779, 780, 781, 782, 783, 784,
839 785, 786, 787, 788, 789, 790, 791, 792, 793, 794,
840 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
841 805, 806, 807, 808, 809, 810, 811, 812, 813, 814,
842 815, 816, 817, 818, 819, 820, 821, 822, 823, 824,
843 825, 826, 827, 828, 829, 830, 831, 832, 833, 834,
844 835, 837, 838, 839, 840, 841, 842, 843, 844, 845,
845 846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
846 856, 857, 858, 842, 859, 860, 861, 862, 863, 864,
847 865, 866, 867, 868, 869, 870, 871, 872, 873, 874,
848 875, 876, 877, 878, 879, 863, 880, 881, 882, 876,
850 883, 884, 885, 886, 887, 876, 888, 889, 890, 891,
851 892, 893, 894, 895, 896, 897, 898, 899, 900, 901,
852 902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
853 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
854 922, 923, 924, 925, 926, 927, 928, 929, 930, 931,
855 932, 933, 934, 935, 936, 937, 938, 939, 940, 941,
856 942, 943, 944, 945, 946, 947, 948, 949, 950, 951,
857 952, 953, 954, 938, 955, 956, 941, 957, 958, 959,
858 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
859 970, 971, 972, 973, 974, 975, 976, 977, 978, 979,
861 980, 981, 982, 983, 967, 984, 985, 986, 987, 988,
862 989, 990, 991, 992, 994, 639, 638, 637, 636, 635,
863 634, 633, 632, 631, 630, 629, 628, 627, 626, 625,
864 624, 623, 622, 621, 620, 619, 618, 617, 616, 615,
865 614, 613, 612, 611, 610, 609, 608, 606, 605, 604,
866 603, 602, 601, 600, 599, 598, 597, 596, 594, 593,
867 592, 590, 589, 588, 587, 586, 585, 584, 583, 582,
868 581, 580, 579, 578, 577, 576, 575, 574, 573, 572,
869 571, 570, 569, 568, 567, 566, 565, 564, 562, 560,
870 559, 558, 557, 556, 555, 553, 552, 551, 550, 549,
872 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
873 538, 537, 536, 533, 532, 531, 530, 529, 528, 527,
874 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
875 516, 515, 514, 513, 512, 511, 510, 509, 507, 506,
876 505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
877 495, 494, 493, 491, 490, 489, 488, 487, 485, 484,
878 483, 482, 481, 480, 479, 478, 477, 476, 474, 473,
879 472, 471, 469, 468, 467, 466, 465, 464, 463, 462,
880 461, 460, 459, 458, 457, 456, 455, 454, 453, 452,
881 451, 450, 449, 448, 447, 446, 445, 444, 443, 440,
883 439, 438, 437, 436, 435, 434, 433, 432, 431, 430,
884 429, 428, 427, 426, 425, 424, 423, 421, 420, 419,
885 418, 417, 416, 415, 414, 413, 410, 409, 408, 407,
886 406, 405, 404, 403, 402, 401, 400, 399, 398, 397,
887 396, 394, 393, 392, 391, 390, 389, 388, 387, 386,
888 385, 383, 382, 381, 379, 378, 377, 376, 375, 373,
889 372, 371, 370, 369, 368, 367, 366, 365, 364, 363,
890 362, 361, 360, 359, 358, 357, 356, 355, 354, 352,
891 351, 350, 348, 347, 346, 345, 343, 342, 341, 340,
892 338, 337, 336, 335, 334, 333, 332, 331, 329, 328,
894 327, 326, 325, 324, 323, 322, 321, 320, 318, 316,
895 315, 314, 313, 312, 311, 310, 309, 308, 307, 306,
896 305, 304, 302, 301, 300, 299, 298, 297, 296, 295,
897 294, 293, 292, 291, 290, 289, 288, 287, 286, 285,
898 284, 283, 282, 281, 280, 278, 277, 276, 274, 273,
899 272, 270, 268, 267, 266, 265, 264, 262, 261, 260,
900 259, 258, 257, 256, 255, 254, 253, 252, 251, 250,
901 249, 248, 247, 246, 245, 244, 243, 242, 241, 239,
902 238, 237, 236, 233, 230, 229, 227, 225, 223, 221,
903 218, 216, 215, 214, 213, 211, 210, 209, 208, 207,
905 206, 205, 204, 202, 201, 200, 199, 198, 197, 196,
906 194, 193, 192, 191, 187, 185, 183, 180, 179, 178,
907 177, 176, 174, 173, 171, 170, 169, 168, 167, 165,
908 164, 162, 161, 160, 159, 157, 156, 155, 153, 152,
909 150, 149, 148, 147, 146, 145, 144, 142, 137, 136,
910 134, 133, 131, 130, 129, 126, 121, 120, 119, 117,
911 116, 115, 113, 112, 111, 110, 109, 108, 106, 103,
912 102, 101, 100, 99, 98, 96, 95, 94, 93, 92,
913 91, 90, 89, 88, 87, 86, 85, 81, 80, 76,
914 61, 50, 49, 48, 47, 45, 42, 41, 40, 38,
916 37, 35, 32, 28, 27, 26, 25, 23, 20, 15,
917 14, 11, 7, 3, 993, 993, 993, 993, 993, 993,
918 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
919 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
920 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
921 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
922 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
923 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
924 993, 993, 993, 993, 993, 993, 993, 993
927 static yy_state_type yy_last_accepting_state;
928 static char *yy_last_accepting_cpos;
930 #define YY_MORE_ADJ 0
931 #define YY_RESTORE_YY_MORE_OFFSET
932 static char *yytext;
933 #define INITIAL 0
934 #include <string.h>
935 #include "nodes.h"
937 #ifdef _WIN32
938 #define strdup _strdup
939 #define fileno _fileno
940 #define isatty _isatty
941 #endif
943 extern "C" {
944 #include "grammar.h"
945 static int yywrap();
948 #ifdef TOKEN_DEBUG
949 #define token_debug printf
950 #else
951 static int token_debug(const char *format, ...);
952 #endif
954 /* Macros after this point can all be overridden by user definitions in
955 * section 1.
958 #ifndef YY_NO_UNPUT
959 //static void yyunput YY_PROTO(( int c, char *buf_ptr ));
960 #endif
962 #ifndef yytext_ptr
963 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
964 #endif
966 #ifdef YY_NEED_STRLEN
967 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
968 #endif
970 #if YY_STACK_USED
971 static int yy_start_stack_ptr = 0;
972 static int yy_start_stack_depth = 0;
973 static int *yy_start_stack = 0;
974 #ifndef YY_NO_PUSH_STATE
975 static void yy_push_state YY_PROTO(( int new_state ));
976 #endif
977 #ifndef YY_NO_POP_STATE
978 static void yy_pop_state YY_PROTO(( void ));
979 #endif
980 #ifndef YY_NO_TOP_STATE
981 static int yy_top_state YY_PROTO(( void ));
982 #endif
984 #else
985 #define YY_NO_PUSH_STATE 1
986 #define YY_NO_POP_STATE 1
987 #define YY_NO_TOP_STATE 1
988 #endif
990 #ifdef YY_MALLOC_DECL
991 YY_MALLOC_DECL
992 #else
993 #if !(defined __STDC__ && __STDC__)
994 /* Just try to get by without declaring the routines. This will fail
995 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
996 * or sizeof(void*) != sizeof(int).
998 #endif
999 #endif
1001 #include "lexer.hxx"
1003 /* Amount of stuff to slurp up with each read. */
1004 #ifndef YY_READ_BUF_SIZE
1005 #define YY_READ_BUF_SIZE 8192
1006 #endif
1008 /* Copy whatever the last rule matched to the standard output. */
1010 #ifndef ECHO
1011 /* This used to be an fputs(), but since the string might contain NUL's,
1012 * we now use fwrite().
1014 #define ECHO do { fwrite( yytext, yyleng, 1, yyout ); } while (false)
1015 #endif
1017 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1018 * is returned in "result".
1020 #ifndef YY_INPUT
1021 #define YY_INPUT(buf,result,max_size) \
1022 if ( yy_current_buffer->yy_is_interactive ) \
1024 int c = '*', n; \
1025 for ( n = 0; n < max_size && \
1026 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1027 buf[n] = static_cast<char>(c); \
1028 if ( c == '\n' ) \
1029 buf[n++] = static_cast<char>(c); \
1030 if ( c == EOF && ferror( yyin ) ) \
1031 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1032 result = n; \
1034 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1035 && ferror( yyin ) ) \
1036 YY_FATAL_ERROR( "input in flex scanner failed" );
1037 #endif
1039 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1040 * we don't want an extra ';' after the "return" because that will cause
1041 * some compilers to complain about unreachable statements.
1043 #ifndef yyterminate
1044 #define yyterminate() return YY_NULL
1045 #endif
1047 /* Report a fatal error. */
1048 #ifndef YY_FATAL_ERROR
1049 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1050 #endif
1052 /* Default declaration of generated scanner - a define so the user can
1053 * easily add parameters.
1055 #ifndef YY_DECL
1056 #define YY_DECL int yylex YY_PROTO(( void ))
1057 #endif
1059 /* Code executed at the beginning of each rule, after yytext and yyleng
1060 * have been set up.
1062 #ifndef YY_USER_ACTION
1063 #define YY_USER_ACTION
1064 #endif
1066 /* Code executed at the end of each rule. */
1067 #ifndef YY_BREAK
1068 #define YY_BREAK break;
1069 #endif
1071 #define YY_RULE_SETUP \
1072 YY_USER_ACTION
1074 YY_DECL
1076 yy_state_type yy_current_state;
1077 char *yy_cp, *yy_bp;
1078 int yy_act;
1080 if ( yy_init )
1082 yy_init = 0;
1084 #ifdef YY_USER_INIT
1085 YY_USER_INIT;
1086 #endif
1088 if ( ! yy_start )
1089 yy_start = 1; /* first start state */
1091 if ( ! yyin )
1092 yyin = stdin;
1094 if ( ! yyout )
1095 yyout = stdout;
1097 if ( ! yy_current_buffer )
1098 yy_current_buffer =
1099 yy_create_buffer( yyin, YY_BUF_SIZE );
1101 yy_load_buffer_state();
1104 while ( true ) /* loops until end-of-file is reached */
1106 yy_cp = yy_c_buf_p;
1108 /* Support of yytext. */
1109 *yy_cp = yy_hold_char;
1111 /* yy_bp points to the position in yy_ch_buf of the start of
1112 * the current run.
1114 yy_bp = yy_cp;
1116 yy_current_state = yy_start;
1117 yy_match:
1120 YY_CHAR yy_c = sal::static_int_cast<YY_CHAR>(yy_ec[YY_SC_TO_UI(*yy_cp)]);
1121 if ( yy_accept[yy_current_state] )
1123 yy_last_accepting_state = yy_current_state;
1124 yy_last_accepting_cpos = yy_cp;
1126 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1128 yy_current_state = static_cast<int>(yy_def[yy_current_state]);
1129 if ( yy_current_state >= 994 )
1130 yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[static_cast<unsigned int>(yy_c)]);
1132 yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
1133 ++yy_cp;
1135 while ( yy_base[yy_current_state] != 1315 );
1137 yy_find_action:
1138 yy_act = yy_accept[yy_current_state];
1139 if ( yy_act == 0 )
1140 { /* have to back up */
1141 yy_cp = yy_last_accepting_cpos;
1142 yy_current_state = yy_last_accepting_state;
1143 yy_act = yy_accept[yy_current_state];
1146 YY_DO_BEFORE_ACTION;
1149 do_action: /* This label is used only to access EOF actions. */
1152 switch ( yy_act )
1153 { /* beginning of action switch */
1154 case 0: /* must back up */
1155 /* undo the effects of YY_DO_BEFORE_ACTION */
1156 *yy_cp = yy_hold_char;
1157 yy_cp = yy_last_accepting_cpos;
1158 yy_current_state = yy_last_accepting_state;
1159 goto yy_find_action;
1161 case 1:
1162 YY_RULE_SETUP
1163 { yylval.str = yytext+1; token_debug(" ==>Begin[%s]\n",yytext+1); return EQBEGIN; }
1164 //YY_BREAK
1165 case 2:
1166 YY_RULE_SETUP
1167 { yylval.str = yytext+1; token_debug(" ==>End[%s]\n",yytext+1); return EQEND; }
1168 //YY_BREAK
1169 case 3:
1170 YY_RULE_SETUP
1171 { yylval.str = yytext+1; token_debug(" ==>Left[%s]\n",yytext+1); return EQLEFT; }
1172 //YY_BREAK
1173 case 4:
1174 YY_RULE_SETUP
1175 { yylval.str = yytext+1; token_debug(" ==>LeftDelim[%s]\n",yytext+1); return LEFT_DELIM; }
1176 //YY_BREAK
1177 case 5:
1178 YY_RULE_SETUP
1179 { yylval.str = yytext+1; token_debug(" ==>RightDelim[%s]\n",yytext+1); return RIGHT_DELIM; }
1180 //YY_BREAK
1181 case 6:
1182 YY_RULE_SETUP
1183 { yylval.str = yytext+1; token_debug(" ==>Right[%s]\n",yytext+1); return EQRIGHT; }
1184 //YY_BREAK
1185 case 7:
1186 YY_RULE_SETUP
1187 { yylval.str = yytext; token_debug(" ==>NewLine[%s]\n",yytext); return NEWLINE; }
1188 //YY_BREAK
1189 case 8:
1190 YY_RULE_SETUP
1191 { yylval.str = yytext+1; token_debug(" ==>Accent[%s]\n",yytext+1); return ACCENT; }
1192 //YY_BREAK
1193 case 9:
1194 YY_RULE_SETUP
1195 { yylval.str = yytext+1; token_debug(" ==>Small_Greek[%s]\n",yytext+1); return SMALL_GREEK; }
1196 //YY_BREAK
1197 case 10:
1198 YY_RULE_SETUP
1199 { yylval.str = yytext+1; token_debug(" ==>Capital_Greek[%s]\n",yytext+1); return CAPITAL_GREEK; }
1200 //YY_BREAK
1201 case 11:
1202 YY_RULE_SETUP
1203 { yylval.str = yytext+1; token_debug(" ==>Binary_Operator[%s]\n",yytext+1); return BINARY_OPERATOR; }
1204 //YY_BREAK
1205 case 12:
1206 YY_RULE_SETUP
1207 { yylval.str = yytext+1; token_debug(" ==>Relation_Symbol[%s]\n",yytext+1); return RELATION_OPERATOR; }
1208 //YY_BREAK
1209 case 13:
1210 YY_RULE_SETUP
1211 { yylval.str = strdup("neq"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1212 //YY_BREAK
1213 case 14:
1214 YY_RULE_SETUP
1215 { yylval.str = strdup("vmlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1216 //YY_BREAK
1217 case 15:
1218 YY_RULE_SETUP
1219 { yylval.str = strdup("vmgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1220 //YY_BREAK
1221 case 16:
1222 YY_RULE_SETUP
1223 { yylval.str = strdup("mlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1224 //YY_BREAK
1225 case 17:
1226 YY_RULE_SETUP
1227 { yylval.str = strdup("mgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1228 //YY_BREAK
1229 case 18:
1230 YY_RULE_SETUP
1231 { yylval.str = yytext; token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1232 //YY_BREAK
1233 case 19:
1234 YY_RULE_SETUP
1235 { yylval.str = yytext+1; token_debug(" ==>Arrow[%s]\n",yytext+1); return ARROW; }
1236 //YY_BREAK
1237 case 20:
1238 YY_RULE_SETUP
1239 { yylval.str = strdup("leftrightarrow"); token_debug(" ==>Arrow[leftrightarrow]\n"); return ARROW; }
1240 //YY_BREAK
1241 case 21:
1242 YY_RULE_SETUP
1243 { yylval.str = strdup("rightarrow"); token_debug(" ==>Arrow[rightarrow]\n"); return ARROW; }
1244 //YY_BREAK
1245 case 22:
1246 YY_RULE_SETUP
1247 { yylval.str = strdup("leftarrow"); token_debug(" ==>Arrow[leftarrow]\n"); return ARROW; }
1248 //YY_BREAK
1250 case 23:
1251 YY_RULE_SETUP
1252 { token_debug(" ==>Ignore[\\rm]\n"); }
1253 //YY_BREAK
1254 [[fallthrough]];
1255 case 24:
1256 YY_RULE_SETUP
1257 { yylval.str = yytext+1; token_debug(" ==>General_Iden[%s]\n",yytext+1); return GENERAL_IDEN; }
1258 //YY_BREAK
1259 case 25:
1260 YY_RULE_SETUP
1261 { yylval.str = yytext+1; token_debug(" ==>General_Oper[%s]\n",yytext+1); return GENERAL_OPER; }
1262 //YY_BREAK
1263 case 26:
1264 YY_RULE_SETUP
1265 { yylval.str = yytext+1; token_debug(" ==>Big_Symbol[%s]\n",yytext+1); return BIG_SYMBOL; }
1266 //YY_BREAK
1267 case 27:
1268 YY_RULE_SETUP
1269 { yylval.str = yytext+1; token_debug(" ==>Function[%s]\n",yytext+1); return FUNCTION; }
1270 //YY_BREAK
1271 case 28:
1272 YY_RULE_SETUP
1273 { yylval.str = yytext+1; token_debug(" ==>Root[%s]\n",yytext+1); return ROOT; }
1274 //YY_BREAK
1275 case 29:
1276 YY_RULE_SETUP
1277 { yylval.str = yytext+1; token_debug(" ==>Fraction[%s]\n",yytext+1); return FRACTION; }
1278 //YY_BREAK
1279 case 30:
1280 YY_RULE_SETUP
1281 { yylval.str = yytext+1; token_debug(" ==>Over[%s]\n",yytext+1); return EQOVER; }
1282 //YY_BREAK
1283 case 31:
1284 YY_RULE_SETUP
1285 { yylval.str = yytext+1; token_debug(" ==>Delimeter[%s]\n",yytext+1); return DELIMETER; }
1286 //YY_BREAK
1287 case 32:
1288 YY_RULE_SETUP
1289 { yylval.str = yytext+1; token_debug(" ==>Large_Delim[%s]\n",yytext+1); return LARGE_DELIM; }
1290 //YY_BREAK
1291 case 33:
1292 YY_RULE_SETUP
1293 { yylval.str = yytext+1; token_debug(" ==>Decoration[%s]\n",yytext+1); return DECORATION; }
1294 //YY_BREAK
1295 case 34:
1296 YY_RULE_SETUP
1297 { yylval.str = yytext+1; token_debug(" ==>Space_Symbol[%s]\n",yytext+1); /*return SPACE_SYMBOL;*/ }
1298 //YY_BREAK
1299 [[fallthrough]];
1300 case 35:
1301 YY_RULE_SETUP
1302 { yylval.str = strdup("quad"); token_debug(" ==>Space_Symbol[quad]\n"); /* return SPACE_SYMBOL;*/ }
1303 //YY_BREAK
1304 [[fallthrough]];
1305 case 36:
1306 YY_RULE_SETUP
1307 { yylval.dval = yytext; token_debug(" ==>Digit[%s]\n",yytext); return DIGIT; }
1308 //YY_BREAK
1309 case 37:
1310 YY_RULE_SETUP
1311 { yylval.str = yytext; token_debug(" ==>Operator[%s]\n",yytext); return OPERATOR; }
1312 //YY_BREAK
1313 case 38:
1314 YY_RULE_SETUP
1315 { token_debug(" ==>SubSup[%s]\n",yytext); return yytext[0]; }
1316 //YY_BREAK
1317 case 39:
1318 YY_RULE_SETUP
1319 { token_debug(" ==>Paren[%s]\n",yytext); return yytext[0];}
1320 //YY_BREAK
1321 case 40:
1322 YY_RULE_SETUP
1323 { token_debug(" ==>Abs[%s]\n",yytext); return yytext[0];}
1324 //YY_BREAK
1325 case 41:
1326 YY_RULE_SETUP
1327 { token_debug(" ==>Space[0x%2x]\n",yytext[0]); }
1328 YY_BREAK
1329 case 42:
1330 YY_RULE_SETUP
1331 { token_debug(" ==>Ignore[0x%2x]\n",yytext[0]); }
1332 YY_BREAK
1333 case 43:
1334 YY_RULE_SETUP
1335 { yylval.str = yytext; token_debug(" ==>String[%s]\n",yytext); return STRING; }
1336 //YY_BREAK
1337 case 44:
1338 YY_RULE_SETUP
1339 { yylval.str = yytext; token_debug(" ==>Else[%s]\n",yytext); return CHARACTER; }
1340 //YY_BREAK
1341 case 45:
1342 YY_RULE_SETUP
1343 ECHO;
1344 YY_BREAK
1345 case YY_STATE_EOF(INITIAL):
1346 yyterminate();
1348 case YY_END_OF_BUFFER:
1350 /* Amount of text matched not including the EOB char. */
1351 int yy_amount_of_matched_text = static_cast<int>(yy_cp - yytext_ptr) - 1;
1353 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1354 *yy_cp = yy_hold_char;
1355 YY_RESTORE_YY_MORE_OFFSET
1357 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1359 /* We're scanning a new file or input source. It's
1360 * possible that this happened because the user
1361 * just pointed yyin at a new source and called
1362 * yylex(). If so, then we have to assure
1363 * consistency between yy_current_buffer and our
1364 * globals. Here is the right place to do so, because
1365 * this is the first action (other than possibly a
1366 * back-up) that will match for the new input source.
1368 yy_n_chars = yy_current_buffer->yy_n_chars;
1369 yy_current_buffer->yy_input_file = yyin;
1370 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1373 /* Note that here we test for yy_c_buf_p "<=" to the position
1374 * of the first EOB in the buffer, since yy_c_buf_p will
1375 * already have been incremented past the NUL character
1376 * (since all states make transitions on EOB to the
1377 * end-of-buffer state). Contrast this with the test
1378 * in input().
1380 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1381 { /* This was really a NUL. */
1382 yy_state_type yy_next_state;
1384 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1386 yy_current_state = yy_get_previous_state();
1388 /* Okay, we're now positioned to make the NUL
1389 * transition. We couldn't have
1390 * yy_get_previous_state() go ahead and do it
1391 * for us because it doesn't know how to deal
1392 * with the possibility of jamming (and we don't
1393 * want to build jamming into it because then it
1394 * will run more slowly).
1397 yy_next_state = yy_try_NUL_trans( yy_current_state );
1399 yy_bp = yytext_ptr + YY_MORE_ADJ;
1401 if ( yy_next_state )
1403 /* Consume the NUL. */
1404 yy_cp = ++yy_c_buf_p;
1405 yy_current_state = yy_next_state;
1406 goto yy_match;
1409 else
1411 yy_cp = yy_c_buf_p;
1412 goto yy_find_action;
1416 else switch ( yy_get_next_buffer() )
1418 case EOB_ACT_END_OF_FILE:
1420 yy_did_buffer_switch_on_eof = 0;
1422 if ( yywrap() )
1424 /* Note: because we've taken care in
1425 * yy_get_next_buffer() to have set up
1426 * yytext, we can now set up
1427 * yy_c_buf_p so that if some total
1428 * hoser (like flex itself) wants to
1429 * call the scanner after we return the
1430 * YY_NULL, it'll still work - another
1431 * YY_NULL will get returned.
1433 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1435 yy_act = YY_STATE_EOF(YY_START);
1436 goto do_action;
1439 else
1441 if ( ! yy_did_buffer_switch_on_eof )
1442 YY_NEW_FILE;
1445 break;
1447 case EOB_ACT_CONTINUE_SCAN:
1448 yy_c_buf_p =
1449 yytext_ptr + yy_amount_of_matched_text;
1451 yy_current_state = yy_get_previous_state();
1453 yy_cp = yy_c_buf_p;
1454 yy_bp = yytext_ptr + YY_MORE_ADJ;
1455 goto yy_match;
1456 break;
1458 case EOB_ACT_LAST_MATCH:
1459 yy_c_buf_p =
1460 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1462 yy_current_state = yy_get_previous_state();
1464 yy_cp = yy_c_buf_p;
1465 yy_bp = yytext_ptr + YY_MORE_ADJ;
1466 goto yy_find_action;
1467 break;
1469 break;
1472 default:
1473 YY_FATAL_ERROR(
1474 "fatal flex scanner internal error--no action found" );
1475 } /* end of action switch */
1476 } /* end of scanning one token */
1477 } /* end of yylex */
1480 /* yy_get_next_buffer - try to read in a new buffer
1482 * Returns a code representing an action:
1483 * EOB_ACT_LAST_MATCH -
1484 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1485 * EOB_ACT_END_OF_FILE - end of file
1488 static int yy_get_next_buffer()
1490 char *dest = yy_current_buffer->yy_ch_buf;
1491 char *source = yytext_ptr;
1492 int number_to_move, i;
1493 int ret_val;
1495 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1496 YY_FATAL_ERROR(
1497 "fatal flex scanner internal error--end of buffer missed" );
1499 if ( yy_current_buffer->yy_fill_buffer == 0 )
1500 { /* Don't try to fill the buffer, so this is an EOF. */
1501 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1503 /* We matched a single character, the EOB, so
1504 * treat this as a final EOF.
1506 return EOB_ACT_END_OF_FILE;
1509 else
1511 /* We matched some text prior to the EOB, first
1512 * process it.
1514 return EOB_ACT_LAST_MATCH;
1518 /* Try to read more data. */
1520 /* First move last chars to start of buffer. */
1521 number_to_move = static_cast<int>(yy_c_buf_p - yytext_ptr) - 1;
1523 for ( i = 0; i < number_to_move; ++i )
1524 *(dest++) = *(source++);
1526 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1527 /* don't do the read, it's not guaranteed to return an EOF,
1528 * just force an EOF
1530 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1532 else
1534 int num_to_read =
1535 yy_current_buffer->yy_buf_size - number_to_move - 1;
1537 while ( num_to_read <= 0 )
1538 { /* Not enough room in the buffer - grow it. */
1539 #ifdef YY_USES_REJECT
1540 YY_FATAL_ERROR(
1541 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1542 #else
1544 /* just a shorter name for the current buffer */
1545 YY_BUFFER_STATE b = yy_current_buffer;
1547 int yy_c_buf_p_offset =
1548 static_cast<int>(yy_c_buf_p - b->yy_ch_buf);
1550 if ( b->yy_is_our_buffer )
1552 int new_size = b->yy_buf_size * 2;
1554 if ( new_size <= 0 )
1555 b->yy_buf_size += b->yy_buf_size / 8;
1556 else
1557 b->yy_buf_size *= 2;
1559 b->yy_ch_buf = static_cast<char *>(
1560 /* Include room in for 2 EOB chars. */
1561 yy_flex_realloc( static_cast<void *>(b->yy_ch_buf),
1562 b->yy_buf_size + 2 ));
1564 else
1565 /* Can't grow it, we don't own it. */
1566 b->yy_ch_buf = nullptr;
1568 if ( ! b->yy_ch_buf )
1569 YY_FATAL_ERROR(
1570 "fatal error - scanner input buffer overflow" );
1572 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1574 num_to_read = yy_current_buffer->yy_buf_size -
1575 number_to_move - 1;
1576 #endif
1579 if ( num_to_read > YY_READ_BUF_SIZE )
1580 num_to_read = YY_READ_BUF_SIZE;
1582 /* Read in more data. */
1583 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1584 yy_n_chars, num_to_read );
1586 yy_current_buffer->yy_n_chars = yy_n_chars;
1589 if ( yy_n_chars == 0 )
1591 if ( number_to_move == YY_MORE_ADJ )
1593 ret_val = EOB_ACT_END_OF_FILE;
1594 yyrestart( yyin );
1597 else
1599 ret_val = EOB_ACT_LAST_MATCH;
1600 yy_current_buffer->yy_buffer_status =
1601 YY_BUFFER_EOF_PENDING;
1605 else
1606 ret_val = EOB_ACT_CONTINUE_SCAN;
1608 yy_n_chars += number_to_move;
1609 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1610 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1612 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1614 return ret_val;
1618 /* yy_get_previous_state - get the state just before the EOB char was reached */
1620 static yy_state_type yy_get_previous_state()
1622 yy_state_type yy_current_state;
1623 char *yy_cp;
1625 yy_current_state = yy_start;
1627 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
1629 YY_CHAR yy_c = sal::static_int_cast<YY_CHAR>(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1630 if ( yy_accept[yy_current_state] )
1632 yy_last_accepting_state = yy_current_state;
1633 yy_last_accepting_cpos = yy_cp;
1635 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1637 yy_current_state = static_cast<int>(yy_def[yy_current_state]);
1638 if ( yy_current_state >= 994 )
1639 yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[static_cast<unsigned int>(yy_c)]);
1641 yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
1644 return yy_current_state;
1648 /* yy_try_NUL_trans - try to make a transition on the NUL character
1650 * synopsis
1651 * next_state = yy_try_NUL_trans( current_state );
1654 #ifdef YY_USE_PROTOS
1655 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
1656 #else
1657 static yy_state_type yy_try_NUL_trans( yy_current_state )
1658 yy_state_type yy_current_state;
1659 #endif
1661 bool yy_is_jam;
1662 char *yy_cp = yy_c_buf_p;
1664 YY_CHAR yy_c = 1;
1665 if ( yy_accept[yy_current_state] )
1667 yy_last_accepting_state = yy_current_state;
1668 yy_last_accepting_cpos = yy_cp;
1670 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1672 yy_current_state = static_cast<int>(yy_def[yy_current_state]);
1673 if ( yy_current_state >= 994 )
1674 yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[static_cast<unsigned int>(yy_c)]);
1676 yy_current_state = yy_nxt[yy_base[yy_current_state] + static_cast<unsigned int>(yy_c)];
1677 yy_is_jam = (yy_current_state == 993);
1679 return yy_is_jam ? 0 : yy_current_state;
1682 #ifdef YY_USE_PROTOS
1683 void yyrestart( FILE *input_file )
1684 #else
1685 void yyrestart( input_file )
1686 FILE *input_file;
1687 #endif
1689 if ( ! yy_current_buffer )
1690 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1692 yy_init_buffer( yy_current_buffer, input_file );
1693 yy_load_buffer_state();
1697 #ifdef YY_USE_PROTOS
1698 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
1699 #else
1700 void yy_switch_to_buffer( new_buffer )
1701 YY_BUFFER_STATE new_buffer;
1702 #endif
1704 if ( yy_current_buffer == new_buffer )
1705 return;
1707 if ( yy_current_buffer )
1709 /* Flush out information for old buffer. */
1710 *yy_c_buf_p = yy_hold_char;
1711 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
1712 yy_current_buffer->yy_n_chars = yy_n_chars;
1715 yy_current_buffer = new_buffer;
1716 yy_load_buffer_state();
1718 /* We don't actually know whether we did this switch during
1719 * EOF (yywrap()) processing, but the only time this flag
1720 * is looked at is after yywrap() is called, so it's safe
1721 * to go ahead and always set it.
1723 yy_did_buffer_switch_on_eof = 1;
1727 #ifdef YY_USE_PROTOS
1728 void yy_load_buffer_state()
1729 #else
1730 void yy_load_buffer_state()
1731 #endif
1733 yy_n_chars = yy_current_buffer->yy_n_chars;
1734 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
1735 yyin = yy_current_buffer->yy_input_file;
1736 yy_hold_char = *yy_c_buf_p;
1740 #ifdef YY_USE_PROTOS
1741 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
1742 #else
1743 YY_BUFFER_STATE yy_create_buffer( file, size )
1744 FILE *file;
1745 int size;
1746 #endif
1748 YY_BUFFER_STATE b;
1750 b = static_cast<YY_BUFFER_STATE>(yy_flex_alloc( sizeof( struct yy_buffer_state ) ));
1751 if ( ! b )
1752 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1754 b->yy_buf_size = size;
1756 /* yy_ch_buf has to be 2 characters longer than the size given because
1757 * we need to put in 2 end-of-buffer characters.
1759 b->yy_ch_buf = static_cast<char *>(yy_flex_alloc( b->yy_buf_size + 2 ));
1760 if ( ! b->yy_ch_buf )
1761 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1763 b->yy_is_our_buffer = 1;
1765 yy_init_buffer( b, file );
1767 return b;
1771 #ifdef YY_USE_PROTOS
1772 void yy_delete_buffer( YY_BUFFER_STATE b )
1773 #else
1774 void yy_delete_buffer( b )
1775 YY_BUFFER_STATE b;
1776 #endif
1778 if ( ! b )
1779 return;
1781 if ( b == yy_current_buffer )
1782 yy_current_buffer = nullptr;
1784 if ( b->yy_is_our_buffer )
1785 yy_flex_free( static_cast<void *>(b->yy_ch_buf) );
1787 yy_flex_free( static_cast<void *>(b) );
1791 #ifndef YY_ALWAYS_INTERACTIVE
1792 #ifndef YY_NEVER_INTERACTIVE
1793 extern int isatty YY_PROTO(( int ));
1794 #endif
1795 #endif
1797 #ifdef YY_USE_PROTOS
1798 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
1799 #else
1800 void yy_init_buffer( b, file )
1801 YY_BUFFER_STATE b;
1802 FILE *file;
1803 #endif
1807 yy_flush_buffer( b );
1809 b->yy_input_file = file;
1810 b->yy_fill_buffer = 1;
1812 #if YY_ALWAYS_INTERACTIVE
1813 b->yy_is_interactive = true;
1814 #else
1815 #if YY_NEVER_INTERACTIVE
1816 b->yy_is_interactive = false;
1817 #else
1818 b->yy_is_interactive = file && isatty( fileno(file) ) > 0;
1819 #endif
1820 #endif
1824 #ifdef YY_USE_PROTOS
1825 void yy_flush_buffer( YY_BUFFER_STATE b )
1826 #else
1827 void yy_flush_buffer( b )
1828 YY_BUFFER_STATE b;
1829 #endif
1832 if ( ! b )
1833 return;
1835 b->yy_n_chars = 0;
1837 /* We always need two end-of-buffer characters. The first causes
1838 * a transition to the end-of-buffer state. The second causes
1839 * a jam in that state.
1841 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1842 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1844 b->yy_buf_pos = &b->yy_ch_buf[0];
1846 b->yy_at_bol = 1;
1847 b->yy_buffer_status = YY_BUFFER_NEW;
1849 if ( b == yy_current_buffer )
1850 yy_load_buffer_state();
1854 #ifndef YY_NO_SCAN_BUFFER
1855 #ifdef YY_USE_PROTOS
1856 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
1857 #else
1858 YY_BUFFER_STATE yy_scan_buffer( base, size )
1859 char *base;
1860 yy_size_t size;
1861 #endif
1863 YY_BUFFER_STATE b;
1865 if ( size < 2 ||
1866 base[size-2] != YY_END_OF_BUFFER_CHAR ||
1867 base[size-1] != YY_END_OF_BUFFER_CHAR )
1868 /* They forgot to leave room for the EOB's. */
1869 return nullptr;
1871 b = static_cast<YY_BUFFER_STATE>(yy_flex_alloc( sizeof( struct yy_buffer_state ) ));
1872 if ( ! b )
1873 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1875 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
1876 b->yy_buf_pos = b->yy_ch_buf = base;
1877 b->yy_is_our_buffer = 0;
1878 b->yy_input_file = nullptr;
1879 b->yy_n_chars = b->yy_buf_size;
1880 b->yy_is_interactive = false;
1881 b->yy_at_bol = 1;
1882 b->yy_fill_buffer = 0;
1883 b->yy_buffer_status = YY_BUFFER_NEW;
1885 yy_switch_to_buffer( b );
1887 return b;
1889 #endif
1892 #ifndef YY_NO_SCAN_STRING
1893 #ifdef YY_USE_PROTOS
1894 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
1895 #else
1896 YY_BUFFER_STATE yy_scan_string( yy_str )
1897 yyconst char *yy_str;
1898 #endif
1900 int len;
1901 for ( len = 0; yy_str[len]; ++len )
1904 return yy_scan_bytes( yy_str, len );
1906 #endif
1909 #ifndef YY_NO_SCAN_BYTES
1910 #ifdef YY_USE_PROTOS
1911 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
1912 #else
1913 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
1914 yyconst char *bytes;
1915 int len;
1916 #endif
1918 YY_BUFFER_STATE b;
1919 char *buf;
1920 yy_size_t n;
1921 int i;
1923 /* Get memory for full buffer, including space for trailing EOB's. */
1924 n = len + 2;
1925 buf = static_cast<char *>(yy_flex_alloc( n ));
1926 if ( ! buf )
1927 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1929 for ( i = 0; i < len; ++i )
1930 buf[i] = bytes[i];
1932 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
1934 b = yy_scan_buffer( buf, n );
1935 if ( ! b )
1936 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1938 /* It's okay to grow etc. this buffer, and we should throw it
1939 * away when we're done.
1941 b->yy_is_our_buffer = 1;
1943 return b;
1945 #endif
1948 #ifndef YY_NO_PUSH_STATE
1949 #ifdef YY_USE_PROTOS
1950 static void yy_push_state( int new_state )
1951 #else
1952 static void yy_push_state( new_state )
1953 int new_state;
1954 #endif
1956 if ( yy_start_stack_ptr >= yy_start_stack_depth )
1958 yy_size_t new_size;
1960 yy_start_stack_depth += YY_START_STACK_INCR;
1961 new_size = yy_start_stack_depth * sizeof( int );
1963 if ( ! yy_start_stack )
1964 yy_start_stack = (int *) yy_flex_alloc( new_size );
1966 else
1967 yy_start_stack = (int *) yy_flex_realloc(
1968 (void *) yy_start_stack, new_size );
1970 if ( ! yy_start_stack )
1971 YY_FATAL_ERROR(
1972 "out of memory expanding start-condition stack" );
1975 yy_start_stack[yy_start_stack_ptr++] = YY_START;
1977 BEGIN(new_state);
1979 #endif
1982 #ifndef YY_NO_POP_STATE
1983 static void yy_pop_state()
1985 if ( --yy_start_stack_ptr < 0 )
1986 YY_FATAL_ERROR( "start-condition stack underflow" );
1988 BEGIN(yy_start_stack[yy_start_stack_ptr]);
1990 #endif
1993 #ifndef YY_NO_TOP_STATE
1994 static int yy_top_state()
1996 return yy_start_stack[yy_start_stack_ptr - 1];
1998 #endif
2000 #ifndef YY_EXIT_FAILURE
2001 #define YY_EXIT_FAILURE 2
2002 #endif
2004 #ifdef YY_USE_PROTOS
2005 static void yy_fatal_error( yyconst char msg[] )
2006 #else
2007 static void yy_fatal_error( msg )
2008 char msg[];
2009 #endif
2011 (void) fprintf( stderr, "%s\n", msg );
2012 exit( YY_EXIT_FAILURE );
2016 /* Internal utility routines. */
2018 #ifndef yytext_ptr
2019 #ifdef YY_USE_PROTOS
2020 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2021 #else
2022 static void yy_flex_strncpy( s1, s2, n )
2023 char *s1;
2024 yyconst char *s2;
2025 int n;
2026 #endif
2028 int i;
2029 for ( i = 0; i < n; ++i )
2030 s1[i] = s2[i];
2032 #endif
2034 #ifdef YY_NEED_STRLEN
2035 #ifdef YY_USE_PROTOS
2036 static int yy_flex_strlen( yyconst char *s )
2037 #else
2038 static int yy_flex_strlen( s )
2039 yyconst char *s;
2040 #endif
2042 int n;
2043 for ( n = 0; s[n]; ++n )
2046 return n;
2048 #endif
2051 #ifdef YY_USE_PROTOS
2052 static void *yy_flex_alloc( yy_size_t size )
2053 #else
2054 static void *yy_flex_alloc( size )
2055 yy_size_t size;
2056 #endif
2058 return malloc( size );
2061 #ifdef YY_USE_PROTOS
2062 static void *yy_flex_realloc( void *ptr, yy_size_t size )
2063 #else
2064 static void *yy_flex_realloc( ptr, size )
2065 void *ptr;
2066 yy_size_t size;
2067 #endif
2069 /* The cast to (char *) in the following accommodates both
2070 * implementations that use char* generic pointers, and those
2071 * that use void* generic pointers. It works with the latter
2072 * because both ANSI C and C++ allow castless assignment from
2073 * any pointer type to void*, and deal with argument conversions
2074 * as though doing an assignment.
2076 return realloc( ptr, size );
2079 #ifdef YY_USE_PROTOS
2080 static void yy_flex_free( void *ptr )
2081 #else
2082 static void yy_flex_free( ptr )
2083 void *ptr;
2084 #endif
2086 free( ptr );
2089 #if YY_MAIN
2090 int main()
2092 yylex();
2093 return 0;
2095 #endif
2098 void initFlex(const char *_code )
2100 yy_switch_to_buffer( yy_scan_string(_code) );
2103 int yywrap()
2105 yy_delete_buffer( YY_CURRENT_BUFFER );
2106 return 1;
2109 #ifndef TOKEN_DEBUG
2110 int token_debug(const char * /*format*/, ...)
2112 return 0;
2114 #endif
2116 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */