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