sync master with lastest vba changes
[ooovba.git] / hwpfilter / source / lexer.cpp
blob9dcf029312855fc9ad696359dc665aefc4875d85
1 /*************************************************************************
2 ************************************************************************/
4 /* A lexical scanner generated by flex */
6 /* Scanner skeleton version:
7 */
8 #ifndef YY_STACK_USED
9 #define YY_STACK_USED 0
10 #endif
11 #ifndef YY_ALWAYS_INTERACTIVE
12 #define YY_ALWAYS_INTERACTIVE 0
13 #endif
14 #ifndef YY_NEVER_INTERACTIVE
15 #define YY_NEVER_INTERACTIVE 0
16 #endif
17 #ifndef YY_MAIN
18 #define YY_MAIN 0
19 #endif
21 #define FLEX_SCANNER
22 #define YY_FLEX_MAJOR_VERSION 2
23 #define YY_FLEX_MINOR_VERSION 5
25 #include <stdio.h>
28 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
29 #ifdef c_plusplus
30 #ifndef __cplusplus
31 #define __cplusplus
32 #endif
33 #endif
36 #ifdef __cplusplus
38 #include <stdlib.h>
39 #ifndef WIN32
40 #include <unistd.h>
41 #else
42 #include <io.h>
43 #endif
46 /* Use prototypes in function declarations. */
47 #define YY_USE_PROTOS
49 /* The "const" storage-class-modifier is valid. */
50 #define YY_USE_CONST
52 #else /* ! __cplusplus */
54 #if __STDC__
56 #define YY_USE_PROTOS
57 #define YY_USE_CONST
59 #endif /* __STDC__ */
60 #endif /* ! __cplusplus */
62 #ifdef __TURBOC__
63 #pragma warn -rch
64 #pragma warn -use
65 #include <io.h>
66 #include <stdlib.h>
67 #define YY_USE_CONST
68 #define YY_USE_PROTOS
69 #endif
71 #ifdef YY_USE_CONST
72 #define yyconst const
73 #else
74 #define yyconst
75 #endif
78 #ifdef YY_USE_PROTOS
79 #define YY_PROTO(proto) proto
80 #else
81 #define YY_PROTO(proto) ()
82 #endif
84 /* Returned upon end-of-file. */
85 #define YY_NULL 0
87 /* Promotes a possibly negative, possibly signed char to an unsigned
88 * integer for use as an array index. If the signed char is negative,
89 * we want to instead treat it as an 8-bit unsigned char, hence the
90 * double cast.
92 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
94 /* Enter a start condition. This macro really ought to take a parameter,
95 * but we do it the disgusting crufty way forced on us by the ()-less
96 * definition of BEGIN.
98 #define BEGIN yy_start = 1 + 2 *
100 /* Translate the current start state into a value that can be later handed
101 * to BEGIN to return to the state. The YYSTATE alias is for lex
102 * compatibility.
104 #define YY_START ((yy_start - 1) / 2)
105 #define YYSTATE YY_START
107 /* Action number for EOF rule of a given start state. */
108 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
110 /* Special action meaning "start processing a new file". */
111 #define YY_NEW_FILE yyrestart( yyin )
113 #define YY_END_OF_BUFFER_CHAR 0
115 /* Size of default input buffer. */
116 #define YY_BUF_SIZE 16384
118 typedef struct yy_buffer_state *YY_BUFFER_STATE;
120 extern int yyleng;
121 extern FILE *yyin, *yyout;
123 #define EOB_ACT_CONTINUE_SCAN 0
124 #define EOB_ACT_END_OF_FILE 1
125 #define EOB_ACT_LAST_MATCH 2
127 /* The funky do-while in the following #define is used to turn the definition
128 * int a single C statement (which needs a semi-colon terminator). This
129 * avoids problems with code like:
131 * if ( condition_holds )
132 * yyless( 5 );
133 * else
134 * do_something_else();
136 * Prior to using the do-while the compiler would get upset at the
137 * "else" because it interpreted the "if" statement as being all
138 * done when it reached the ';' after the yyless() call.
141 /* Return all but the first 'n' matched characters back to the input stream. */
143 #define yyless(n) \
144 do \
146 /* Undo effects of setting up yytext. */ \
147 *yy_cp = yy_hold_char; \
148 YY_RESTORE_YY_MORE_OFFSET \
149 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
152 while ( 0 )
154 //#define unput(c) yyunput( c, yytext_ptr )
156 /* The following is because we cannot portably get our hands on size_t
157 * (without autoconf's help, which isn't available because we want
158 * flex-generated scanners to compile on their own).
160 typedef unsigned int yy_size_t;
163 struct yy_buffer_state
165 FILE *yy_input_file;
167 char *yy_ch_buf; /* input buffer */
168 char *yy_buf_pos; /* current position in input buffer */
170 /* Size of input buffer in bytes, not including room for EOB
171 * characters.
173 yy_size_t yy_buf_size;
175 /* Number of characters read into yy_ch_buf, not including EOB
176 * characters.
178 int yy_n_chars;
180 /* Whether we "own" the buffer - i.e., we know we created it,
181 * and can realloc() it to grow it, and should free() it to
182 * delete it.
184 int yy_is_our_buffer;
186 /* Whether this is an "interactive" input source; if so, and
187 * if we're using stdio for input, then we want to use getc()
188 * instead of fread(), to make sure we stop fetching input after
189 * each newline.
191 int yy_is_interactive;
193 /* Whether we're considered to be at the beginning of a line.
194 * If so, '^' rules will be active on the next match, otherwise
195 * not.
197 int yy_at_bol;
199 /* Whether to try to fill the input buffer when we reach the
200 * end of it.
202 int yy_fill_buffer;
204 int yy_buffer_status;
205 #define YY_BUFFER_NEW 0
206 #define YY_BUFFER_NORMAL 1
207 /* When an EOF's been seen but there's still some text to process
208 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209 * shouldn't try reading from the input source any more. We might
210 * still have a bunch of tokens to match, though, because of
211 * possible backing-up.
213 * When we actually see the EOF, we change the status to "new"
214 * (via yyrestart()), so that the user can continue scanning by
215 * just pointing yyin at a new input file.
217 #define YY_BUFFER_EOF_PENDING 2
220 static YY_BUFFER_STATE yy_current_buffer = 0;
222 /* We provide macros for accessing buffer states in case in the
223 * future we want to put the buffer states in a more general
224 * "scanner state".
226 #define YY_CURRENT_BUFFER yy_current_buffer
229 /* yy_hold_char holds the character lost when yytext is formed. */
230 static char yy_hold_char;
232 static int yy_n_chars; /* number of characters read into yy_ch_buf */
235 int yyleng;
237 /* Points to current character in buffer. */
238 static char *yy_c_buf_p = (char *) 0;
239 static int yy_init = 1; /* whether we need to initialize */
240 static int yy_start = 0; /* start state number */
242 /* Flag which is used to allow yywrap()'s to do buffer switches
243 * instead of setting up a fresh yyin. A bit of a hack ...
245 static int yy_did_buffer_switch_on_eof;
247 void yyrestart YY_PROTO(( FILE *input_file ));
249 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250 void yy_load_buffer_state YY_PROTO(( void ));
251 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
257 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
261 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263 static void yy_flex_free YY_PROTO(( void * ));
265 #define yy_new_buffer yy_create_buffer
267 #define yy_set_interactive(is_interactive) \
269 if ( ! yy_current_buffer ) \
270 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271 yy_current_buffer->yy_is_interactive = is_interactive; \
274 #define yy_set_bol(at_bol) \
276 if ( ! yy_current_buffer ) \
277 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278 yy_current_buffer->yy_at_bol = at_bol; \
281 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
283 typedef unsigned char YY_CHAR;
284 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
285 typedef int yy_state_type;
286 extern char *yytext;
287 #define yytext_ptr yytext
289 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
290 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
291 static int yy_get_next_buffer YY_PROTO(( void ));
292 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
294 /* Done after the current pattern has been matched and before the
295 * corresponding action - sets up yytext.
297 #define YY_DO_BEFORE_ACTION \
298 yytext_ptr = yy_bp; \
299 yyleng = (int) (yy_cp - yy_bp); \
300 yy_hold_char = *yy_cp; \
301 *yy_cp = '\0'; \
302 yy_c_buf_p = yy_cp;
304 #define YY_NUM_RULES 45
305 #define YY_END_OF_BUFFER 46
306 static yyconst short int yy_accept[994] =
307 { 0,
308 0, 0, 46, 44, 41, 41, 44, 42, 39, 37,
309 37, 36, 39, 39, 44, 44, 38, 40, 35, 43,
310 13, 21, 36, 36, 22, 16, 17, 0, 34, 0,
311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
312 0, 0, 24, 0, 24, 0, 0, 0, 0, 0,
313 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
314 0, 0, 0, 0, 42, 0, 0, 0, 0, 0,
315 0, 0, 0, 0, 0, 0, 4, 31, 5, 43,
316 36, 20, 14, 15, 0, 0, 0, 0, 0, 0,
317 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
319 0, 0, 0, 10, 0, 0, 27, 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, 0, 0, 0, 0, 0,
323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
324 0, 0, 0, 0, 0, 0, 12, 12, 0, 0,
325 0, 0, 0, 0, 0, 12, 0, 0, 0, 0,
326 0, 0, 0, 0, 12, 0, 27, 0, 0, 0,
327 0, 0, 0, 0, 0, 11, 0, 9, 0, 0,
328 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, 23, 0, 0, 0, 0, 0, 0,
332 0, 0, 0, 0, 0, 0, 0, 0, 19, 0,
333 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
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, 8, 0, 0, 0, 0, 0,
338 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
339 27, 0, 0, 0, 0, 12, 0, 0, 8, 0,
341 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 27, 26, 0,
343 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
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, 0, 0, 0, 12, 27,
348 0, 0, 0, 0, 0, 0, 0, 0, 0, 27,
349 0, 0, 27, 0, 0, 0, 0, 0, 0, 0,
350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
354 0, 0, 0, 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, 11, 0, 0, 0, 0, 0, 0, 8, 0,
358 0, 0, 0, 0, 0, 0, 0, 0, 0, 29,
359 0, 0, 0, 0, 0, 0, 24, 0, 0, 0,
360 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
363 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
364 12, 0, 0, 0, 0, 0, 0, 0, 0, 0,
365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
366 0, 0, 0, 28, 0, 0, 12, 0, 0, 0,
367 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
369 19, 0, 0, 0, 0, 0, 0, 0, 0, 0,
370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
372 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
374 0, 0, 0, 0, 0, 0, 25, 0, 0, 0,
375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
379 0, 0, 0, 0, 0, 6, 0, 0, 0, 0,
380 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 32, 0,
388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 12, 0, 12, 0, 0,
391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 0, 0, 0, 0, 11, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 33, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 19, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
403 0, 0, 12, 12, 0, 24, 0, 0, 0, 0,
404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
405 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
414 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
416 0, 0, 0
420 static yyconst int yy_ec[256] =
421 { 0,
422 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
423 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
425 1, 1, 4, 1, 1, 1, 1, 5, 1, 6,
426 7, 8, 8, 9, 10, 11, 8, 12, 12, 12,
427 12, 12, 12, 12, 12, 12, 12, 13, 14, 15,
428 16, 17, 1, 1, 18, 19, 20, 21, 22, 1,
429 23, 1, 24, 25, 26, 27, 28, 29, 30, 31,
430 1, 32, 33, 34, 35, 36, 1, 37, 1, 38,
431 39, 40, 41, 42, 42, 1, 43, 44, 45, 46,
433 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
434 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
435 67, 68, 69, 70, 71, 72, 1, 1, 1, 1,
436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
438 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
439 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
440 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
441 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
442 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
444 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
445 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
446 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
447 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
448 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
449 73, 73, 73, 73, 1
452 static yyconst int yy_meta[74] =
453 { 0,
454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
458 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
461 1, 1, 1
464 static yyconst short int yy_base[995] =
465 { 0,
466 0, 72, 1314, 1315, 1315, 1315, 1297, 1315, 1315, 1315,
467 1295, 2, 8, 1294, 1281, 142, 1315, 1315, 1315, 1236,
468 1315, 1315, 1296, 8, 1290, 1291, 1288, 1274, 1315, 0,
469 0, 1253, 1, 1, 1259, 7, 1244, 1257, 8, 1236,
470 1235, 1242, 35, 43, 1245, 0, 1237, 1251, 1242, 1245,
471 1315, 46, 72, 171, 79, 62, 77, 184, 192, 92,
472 1236, 2, 207, 216, 225, 234, 250, 46, 269, 278,
473 295, 10, 111, 255, 10, 1243, 1315, 1315, 1315, 1216,
474 1276, 1315, 1315, 1315, 1253, 1228, 1225, 1222, 1217, 1231,
475 1227, 1237, 1214, 1217, 1234, 1221, 1315, 1213, 1223, 1215,
477 1217, 1223, 1214, 1315, 168, 1218, 1315, 1217, 1210, 1217,
478 1216, 1201, 1216, 177, 1202, 1199, 1197, 34, 1216, 1209,
479 1199, 181, 36, 164, 198, 1207, 119, 199, 1201, 1196,
480 1196, 218, 1192, 1188, 225, 1205, 1191, 78, 40, 245,
481 280, 1197, 175, 1184, 1192, 1187, 1198, 1182, 1179, 1198,
482 101, 1197, 1179, 227, 1183, 1191, 1177, 1315, 1192, 1172,
483 1190, 1189, 53, 1184, 1187, 260, 1167, 1171, 1184, 1168,
484 1165, 248, 1177, 1166, 291, 1168, 1161, 1174, 1164, 1161,
485 222, 268, 1160, 0, 1170, 1315, 1172, 1315, 247, 299,
486 1152, 1170, 1155, 1155, 300, 1156, 1155, 1157, 1160, 1146,
488 1145, 1153, 302, 1152, 1139, 1158, 1144, 1152, 1147, 1143,
489 1136, 308, 1146, 1137, 1150, 1136, 317, 1148, 308, 318,
490 1147, 311, 1146, 322, 1145, 312, 1140, 319, 1128, 1134,
491 324, 340, 1124, 333, 340, 1137, 1136, 1121, 1118, 1315,
492 1129, 1121, 1134, 1114, 1120, 1118, 1122, 1117, 1128, 1114,
493 1111, 1124, 1105, 1117, 1116, 1119, 1113, 1107, 1099, 1100,
494 1102, 1107, 344, 1114, 1094, 1097, 1104, 1099, 327, 1092,
495 347, 1094, 1095, 1096, 1315, 1105, 1096, 1103, 350, 1083,
496 1099, 1079, 1088, 1079, 1095, 1094, 1094, 1088, 1076, 1085,
497 1084, 1084, 1082, 1082, 1068, 1067, 1073, 1071, 1079, 1069,
499 1069, 1061, 1315, 1071, 1070, 1059, 1057, 1075, 1072, 1051,
500 1060, 1050, 1053, 1052, 1058, 1054, 348, 1047, 1315, 1065,
501 1045, 1048, 1061, 1055, 1052, 1040, 1039, 1043, 1042, 338,
502 1035, 1048, 1035, 1048, 1038, 1039, 1029, 1031, 276, 1030,
503 1027, 1026, 1038, 371, 1023, 1042, 1029, 1023, 355, 1024,
504 1036, 1025, 372, 1036, 1032, 1028, 1025, 1020, 1017, 1016,
505 1022, 1008, 1014, 1020, 1008, 1012, 1006, 1010, 1017, 1013,
506 1008, 1007, 1014, 360, 997, 995, 997, 995, 1010, 372,
507 1008, 993, 1002, 156, 1005, 1003, 1006, 1001, 997, 996,
508 985, 987, 980, 991, 374, 980, 978, 977, 989, 990,
510 993, 992, 969, 990, 975, 988, 976, 986, 985, 981,
511 379, 191, 983, 965, 962, 980, 979, 961, 955, 965,
512 960, 374, 967, 965, 965, 967, 963, 969, 962, 963,
513 947, 951, 950, 955, 962, 939, 945, 941, 938, 944,
514 377, 383, 940, 938, 939, 949, 948, 943, 946, 945,
515 944, 929, 936, 927, 930, 939, 921, 935, 922, 939,
516 924, 933, 920, 935, 910, 922, 911, 912, 919, 1315,
517 916, 928, 923, 907, 388, 906, 920, 916, 898, 914,
518 920, 916, 907, 906, 898, 400, 901, 894, 900, 892,
519 893, 392, 891, 898, 902, 907, 889, 888, 891, 895,
521 885, 901, 883, 879, 880, 879, 892, 405, 884, 886,
522 889, 888, 872, 887, 878, 877, 887, 872, 865, 865,
523 865, 876, 870, 863, 871, 863, 877, 860, 864, 870,
524 869, 857, 856, 1315, 400, 866, 865, 851, 863, 849,
525 861, 864, 859, 844, 848, 843, 856, 855, 840, 834,
526 837, 843, 838, 403, 845, 843, 843, 834, 841, 829,
527 1315, 842, 401, 824, 831, 826, 828, 841, 823, 831,
528 834, 829, 822, 835, 820, 820, 818, 813, 822, 815,
529 822, 823, 809, 802, 806, 810, 809, 800, 809, 801,
530 1315, 803, 800, 801, 404, 807, 803, 805, 810, 803,
532 799, 805, 805, 803, 785, 786, 1315, 784, 800, 785,
533 797, 787, 782, 780, 783, 778, 784, 776, 789, 784,
534 783, 790, 785, 771, 787, 778, 768, 769, 778, 767,
535 762, 776, 779, 770, 763, 758, 764, 774, 759, 93,
536 126, 187, 225, 269, 333, 415, 345, 372, 388, 397,
537 400, 417, 418, 408, 411, 427, 409, 418, 426, 417,
538 419, 415, 417, 418, 419, 419, 423, 422, 422, 428,
539 438, 438, 444, 432, 434, 434, 431, 442, 437, 446,
540 449, 436, 456, 449, 454, 456, 443, 448, 445, 457,
541 459, 459, 453, 450, 446, 469, 457, 463, 460, 454,
543 460, 471, 476, 473, 476, 458, 461, 468, 462, 471,
544 484, 485, 466, 481, 484, 481, 473, 488, 475, 489,
545 481, 475, 491, 491, 496, 482, 483, 495, 1315, 502,
546 498, 490, 500, 503, 497, 487, 488, 498, 512, 508,
547 501, 509, 512, 506, 514, 502, 520, 521, 518, 501,
548 504, 505, 506, 523, 524, 525, 526, 527, 510, 519,
549 523, 518, 528, 515, 538, 526, 532, 529, 523, 535,
550 525, 534, 529, 533, 534, 542, 531, 544, 535, 536,
551 543, 555, 556, 545, 541, 541, 540, 543, 558, 548,
552 549, 552, 548, 563, 551, 550, 552, 557, 553, 565,
554 555, 568, 576, 563, 563, 572, 578, 562, 564, 576,
555 582, 566, 582, 580, 577, 572, 573, 589, 574, 581,
556 586, 576, 577, 581, 579, 583, 583, 597, 602, 590,
557 587, 594, 606, 607, 597, 1315, 606, 591, 589, 590,
558 594, 614, 596, 602, 600, 604, 600, 613, 603, 604,
559 617, 605, 605, 604, 608, 628, 610, 619, 610, 619,
560 615, 628, 636, 618, 619, 635, 640, 622, 628, 628,
561 637, 626, 642, 643, 644, 646, 648, 647, 635, 640,
562 641, 652, 658, 642, 652, 661, 640, 650, 652, 655,
563 659, 651, 669, 656, 671, 668, 656, 666, 661, 676,
565 660, 678, 657, 666, 677, 666, 667, 680, 677, 682,
566 673, 675, 676, 673, 674, 686, 676, 672, 691, 677,
567 680, 681, 686, 683, 684, 696, 686, 687, 688, 692,
568 702, 702, 687, 693, 697, 705, 696, 711, 701, 699,
569 714, 701, 705, 713, 704, 708, 706, 711, 706, 719,
570 713, 706, 710, 716, 718, 718, 713, 722, 723, 723,
571 725, 718, 722, 728, 721, 730, 742, 727, 725, 748,
572 727, 728, 729, 730, 731, 754, 733, 734, 743, 743,
573 742, 747, 748, 746, 742, 748, 749, 754, 754, 755,
574 748, 749, 1315, 814
578 static yyconst short int yy_def[995] =
579 { 0,
580 994, 994, 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, 993, 993, 993, 993, 993, 993, 993, 993,
613 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
614 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
615 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
616 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
617 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
618 993, 993, 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,
624 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
625 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
626 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,
635 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
636 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
637 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
638 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
639 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
640 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
641 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
642 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
643 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
644 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
646 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
647 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
648 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
649 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
650 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
651 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
652 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
653 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
654 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
655 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
657 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
658 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
659 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
660 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
661 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
662 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
663 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
664 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
665 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
666 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
668 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
669 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
670 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
671 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
672 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
673 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
674 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
675 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
676 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
677 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
679 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
680 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
681 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
682 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
683 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
684 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
685 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
686 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
687 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
688 993, 993, 0, 993
692 static yyconst short int yy_nxt[1389] =
693 { 0,
694 993, 5, 6, 7, 8, 9, 9, 10, 993, 11,
695 993, 12, 23, 24, 13, 10, 14, 25, 23, 24,
696 993, 993, 26, 993, 993, 993, 15, 993, 993, 993,
697 993, 993, 993, 993, 993, 993, 993, 993, 9, 16,
698 9, 17, 112, 993, 170, 158, 88, 91, 171, 113,
699 101, 92, 993, 86, 102, 107, 89, 93, 94, 87,
700 188, 97, 95, 98, 103, 231, 238, 232, 9, 18,
701 9, 19, 20, 5, 6, 7, 8, 9, 9, 10,
702 266, 11, 294, 12, 106, 104, 13, 10, 14, 97,
703 117, 267, 109, 110, 107, 108, 295, 186, 15, 118,
705 119, 120, 273, 121, 205, 122, 123, 107, 206, 315,
706 9, 16, 9, 17, 124, 145, 146, 147, 125, 148,
707 149, 138, 126, 150, 139, 140, 292, 151, 127, 141,
708 152, 128, 142, 153, 129, 143, 154, 164, 293, 144,
709 9, 18, 9, 19, 20, 29, 165, 166, 167, 737,
710 29, 306, 168, 233, 29, 29, 234, 235, 107, 30,
711 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
712 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
713 97, 51, 738, 280, 52, 53, 54, 55, 56, 57,
714 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
716 68, 69, 70, 71, 72, 73, 74, 75, 274, 76,
717 77, 78, 79, 130, 255, 541, 131, 542, 256, 260,
718 132, 133, 261, 275, 134, 271, 155, 135, 156, 107,
719 157, 136, 158, 137, 160, 161, 299, 262, 162, 300,
720 272, 281, 276, 159, 571, 282, 277, 186, 163, 172,
721 572, 173, 174, 175, 176, 177, 178, 179, 182, 278,
722 158, 180, 107, 181, 285, 183, 184, 189, 188, 309,
723 107, 190, 185, 186, 186, 158, 187, 332, 188, 193,
724 288, 191, 289, 310, 194, 290, 291, 188, 195, 192,
725 336, 196, 200, 107, 197, 198, 201, 199, 296, 202,
727 188, 236, 323, 324, 186, 237, 107, 318, 337, 203,
728 204, 207, 97, 208, 186, 209, 210, 211, 212, 213,
729 216, 319, 297, 214, 217, 333, 499, 218, 219, 186,
730 215, 500, 220, 107, 107, 221, 222, 226, 327, 223,
731 224, 338, 225, 186, 227, 228, 343, 97, 351, 158,
732 344, 229, 352, 186, 230, 374, 368, 158, 353, 365,
733 371, 107, 369, 370, 188, 378, 379, 383, 372, 388,
734 375, 376, 385, 386, 188, 396, 319, 389, 366, 380,
735 430, 381, 391, 390, 275, 392, 186, 431, 489, 397,
736 421, 433, 739, 393, 441, 742, 477, 509, 490, 398,
738 394, 422, 532, 423, 424, 425, 442, 434, 435, 478,
739 443, 444, 445, 446, 447, 503, 510, 319, 538, 592,
740 553, 569, 533, 579, 104, 743, 504, 593, 595, 513,
741 744, 554, 539, 555, 556, 557, 558, 596, 570, 594,
742 597, 619, 624, 664, 598, 632, 633, 620, 645, 625,
743 683, 634, 678, 188, 706, 158, 158, 665, 646, 626,
744 707, 740, 684, 79, 647, 741, 745, 79, 729, 746,
745 748, 749, 97, 750, 751, 752, 747, 753, 754, 755,
746 756, 158, 757, 758, 759, 760, 761, 762, 764, 765,
747 766, 767, 188, 188, 768, 769, 770, 763, 771, 772,
749 773, 97, 774, 104, 775, 776, 777, 778, 104, 779,
750 561, 780, 104, 781, 782, 783, 784, 785, 786, 158,
751 186, 319, 319, 787, 788, 789, 790, 792, 793, 794,
752 795, 796, 186, 797, 798, 799, 188, 800, 801, 802,
753 803, 804, 805, 806, 807, 808, 791, 809, 810, 97,
754 97, 561, 561, 188, 811, 812, 813, 814, 815, 97,
755 158, 816, 817, 818, 97, 561, 819, 820, 821, 822,
756 823, 824, 825, 826, 561, 827, 828, 829, 830, 561,
757 831, 188, 832, 833, 834, 835, 836, 837, 838, 839,
758 840, 841, 842, 843, 844, 845, 846, 104, 104, 97,
760 847, 848, 849, 319, 850, 319, 319, 851, 319, 319,
761 852, 97, 853, 854, 97, 855, 856, 857, 858, 859,
762 860, 861, 862, 863, 864, 865, 866, 867, 836, 868,
763 158, 869, 870, 871, 186, 319, 872, 873, 874, 158,
764 158, 158, 875, 876, 877, 878, 879, 880, 188, 188,
765 881, 882, 729, 561, 561, 883, 884, 886, 887, 888,
766 889, 729, 78, 319, 319, 890, 729, 891, 561, 97,
767 892, 893, 158, 885, 561, 894, 895, 896, 897, 899,
768 900, 836, 901, 902, 903, 904, 905, 97, 906, 907,
769 158, 97, 910, 836, 911, 898, 912, 913, 836, 908,
771 914, 915, 916, 917, 561, 909, 918, 104, 919, 920,
772 921, 922, 923, 924, 729, 925, 926, 561, 927, 928,
773 929, 561, 930, 729, 158, 158, 931, 932, 836, 933,
774 188, 188, 934, 935, 936, 937, 561, 938, 97, 939,
775 940, 941, 942, 943, 944, 945, 946, 947, 948, 949,
776 950, 561, 951, 952, 953, 954, 955, 957, 958, 959,
777 961, 962, 963, 964, 965, 966, 967, 186, 968, 969,
778 561, 970, 971, 956, 972, 186, 960, 561, 973, 974,
779 561, 975, 561, 976, 977, 836, 978, 979, 186, 561,
780 981, 561, 982, 561, 983, 561, 984, 561, 836, 985,
782 561, 986, 186, 561, 980, 987, 988, 989, 990, 561,
783 991, 992, 561, 561, 4, 736, 735, 734, 158, 561,
784 733, 732, 731, 730, 107, 107, 729, 77, 728, 727,
785 726, 77, 188, 725, 724, 723, 722, 97, 97, 721,
786 720, 719, 718, 717, 186, 319, 716, 186, 715, 158,
787 714, 319, 713, 712, 711, 710, 709, 708, 319, 705,
788 319, 704, 703, 702, 107, 107, 107, 158, 701, 700,
789 699, 104, 104, 698, 697, 696, 695, 694, 693, 692,
790 691, 690, 689, 104, 688, 687, 686, 685, 186, 607,
791 158, 682, 681, 680, 679, 677, 676, 186, 675, 674,
793 186, 186, 673, 672, 186, 275, 188, 671, 670, 669,
794 668, 667, 666, 186, 186, 663, 158, 662, 158, 188,
795 97, 661, 660, 659, 658, 657, 656, 655, 654, 653,
796 79, 652, 29, 651, 97, 650, 649, 648, 644, 643,
797 186, 642, 641, 188, 640, 158, 158, 639, 638, 97,
798 637, 636, 635, 631, 630, 629, 628, 627, 607, 77,
799 623, 622, 188, 97, 607, 97, 158, 621, 618, 275,
800 188, 158, 617, 616, 158, 615, 614, 613, 158, 561,
801 612, 188, 607, 611, 158, 610, 609, 608, 275, 607,
802 606, 275, 605, 604, 603, 602, 601, 600, 599, 591,
804 590, 589, 158, 588, 587, 586, 585, 584, 583, 97,
805 186, 188, 97, 275, 582, 581, 580, 578, 577, 576,
806 575, 104, 104, 574, 573, 104, 568, 104, 104, 567,
807 566, 565, 104, 564, 104, 188, 563, 562, 561, 560,
808 559, 552, 551, 550, 549, 548, 547, 546, 545, 544,
809 543, 107, 540, 97, 537, 536, 186, 535, 534, 531,
810 530, 529, 107, 528, 527, 526, 525, 524, 523, 522,
811 521, 520, 519, 518, 517, 516, 515, 29, 514, 512,
812 511, 158, 508, 507, 506, 505, 502, 319, 186, 501,
813 498, 497, 496, 495, 494, 493, 492, 491, 488, 487,
815 486, 485, 484, 483, 482, 481, 480, 188, 479, 476,
816 475, 474, 97, 473, 472, 471, 470, 469, 97, 468,
817 467, 466, 465, 186, 464, 463, 462, 461, 460, 459,
818 458, 457, 456, 107, 107, 455, 158, 454, 186, 453,
819 452, 451, 450, 449, 448, 188, 440, 439, 438, 437,
820 436, 432, 429, 428, 427, 426, 104, 420, 419, 418,
821 417, 416, 415, 414, 413, 412, 411, 410, 409, 158,
822 104, 408, 407, 406, 405, 404, 104, 403, 402, 401,
823 158, 400, 399, 395, 387, 97, 384, 382, 377, 373,
824 367, 364, 363, 362, 361, 360, 359, 358, 357, 356,
826 355, 354, 188, 188, 350, 349, 348, 347, 346, 345,
827 342, 341, 340, 339, 335, 334, 97, 331, 330, 186,
828 329, 328, 326, 325, 107, 322, 321, 158, 320, 317,
829 316, 314, 313, 275, 312, 158, 107, 311, 308, 307,
830 188, 305, 304, 303, 302, 97, 301, 298, 186, 107,
831 287, 286, 284, 186, 283, 279, 270, 269, 268, 265,
832 264, 263, 259, 104, 258, 257, 104, 104, 104, 254,
833 253, 252, 251, 250, 249, 248, 104, 247, 246, 245,
834 244, 104, 97, 243, 242, 241, 240, 81, 80, 239,
835 169, 116, 104, 115, 114, 111, 105, 104, 104, 100,
837 99, 96, 90, 85, 84, 83, 82, 81, 80, 28,
838 27, 22, 21, 993, 3, 993, 993, 993, 993, 993,
839 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
840 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
841 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
842 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
843 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
844 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
845 993, 993, 993, 993, 993, 993, 993, 993
848 static yyconst short int yy_chk[1389] =
849 { 0,
850 0, 1, 1, 1, 1, 1, 1, 1, 0, 1,
851 0, 1, 12, 12, 1, 1, 1, 13, 24, 24,
852 0, 0, 13, 0, 0, 0, 1, 0, 0, 0,
853 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
854 1, 1, 46, 0, 62, 184, 31, 33, 62, 46,
855 39, 33, 0, 30, 39, 184, 31, 33, 34, 30,
856 75, 36, 34, 36, 39, 72, 75, 72, 1, 1,
857 1, 1, 1, 2, 2, 2, 2, 2, 2, 2,
858 118, 2, 139, 2, 43, 43, 2, 2, 2, 44,
859 52, 118, 44, 44, 43, 43, 139, 123, 2, 52,
861 52, 52, 123, 52, 68, 52, 52, 163, 68, 163,
862 2, 2, 2, 2, 53, 56, 56, 56, 53, 56,
863 56, 55, 53, 56, 55, 55, 138, 56, 53, 55,
864 57, 53, 55, 57, 53, 55, 57, 60, 138, 55,
865 2, 2, 2, 2, 2, 16, 60, 60, 60, 640,
866 16, 151, 60, 73, 16, 16, 73, 73, 151, 16,
867 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
868 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
869 127, 16, 641, 127, 16, 16, 16, 16, 16, 16,
870 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
872 16, 16, 16, 16, 16, 16, 16, 16, 124, 16,
873 16, 16, 16, 54, 105, 384, 54, 384, 105, 114,
874 54, 54, 114, 124, 54, 122, 58, 54, 58, 122,
875 58, 54, 58, 54, 59, 59, 143, 114, 59, 143,
876 122, 128, 125, 58, 412, 128, 125, 642, 59, 63,
877 412, 63, 63, 63, 63, 63, 63, 63, 64, 125,
878 63, 63, 63, 63, 132, 64, 64, 65, 132, 154,
879 181, 65, 64, 64, 643, 65, 64, 181, 64, 66,
880 135, 65, 135, 154, 66, 135, 135, 65, 66, 65,
881 189, 66, 67, 140, 66, 66, 67, 66, 140, 67,
883 67, 74, 172, 172, 67, 74, 140, 166, 189, 67,
884 67, 69, 74, 69, 74, 69, 69, 69, 69, 69,
885 70, 166, 141, 69, 70, 182, 339, 70, 70, 644,
886 69, 339, 70, 182, 141, 70, 70, 71, 175, 70,
887 70, 190, 70, 141, 71, 71, 195, 190, 203, 175,
888 195, 71, 203, 212, 71, 222, 219, 190, 203, 217,
889 220, 217, 219, 219, 212, 224, 224, 226, 220, 231,
890 222, 222, 228, 228, 226, 234, 224, 231, 217, 224,
891 269, 224, 232, 231, 235, 232, 235, 269, 330, 234,
892 263, 271, 645, 232, 279, 647, 317, 349, 330, 235,
894 232, 263, 374, 263, 263, 263, 279, 271, 271, 317,
895 279, 279, 279, 279, 279, 344, 349, 353, 380, 441,
896 395, 411, 374, 422, 422, 648, 344, 441, 442, 353,
897 649, 395, 380, 395, 395, 395, 395, 442, 411, 441,
898 442, 475, 486, 535, 442, 492, 492, 475, 508, 486,
899 563, 492, 554, 554, 595, 650, 651, 535, 508, 486,
900 595, 646, 563, 652, 508, 646, 653, 654, 655, 656,
901 657, 658, 659, 660, 661, 662, 656, 663, 664, 665,
902 666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
903 676, 677, 678, 679, 680, 681, 682, 673, 683, 684,
905 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
906 695, 696, 697, 698, 699, 700, 701, 702, 703, 704,
907 705, 706, 707, 708, 709, 710, 711, 712, 713, 714,
908 715, 716, 717, 718, 719, 720, 721, 722, 723, 724,
909 725, 726, 727, 728, 730, 731, 711, 732, 733, 734,
910 735, 736, 737, 738, 739, 740, 741, 742, 743, 744,
911 745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
912 755, 756, 757, 758, 759, 760, 761, 762, 763, 764,
913 765, 766, 767, 768, 769, 770, 771, 772, 773, 774,
914 775, 776, 777, 778, 779, 780, 781, 782, 783, 784,
916 785, 786, 787, 788, 789, 790, 791, 792, 793, 794,
917 795, 796, 797, 798, 799, 800, 801, 802, 803, 804,
918 805, 806, 807, 808, 809, 810, 811, 812, 813, 814,
919 815, 816, 817, 818, 819, 820, 821, 822, 823, 824,
920 825, 826, 827, 828, 829, 830, 831, 832, 833, 834,
921 835, 837, 838, 839, 840, 841, 842, 843, 844, 845,
922 846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
923 856, 857, 858, 842, 859, 860, 861, 862, 863, 864,
924 865, 866, 867, 868, 869, 870, 871, 872, 873, 874,
925 875, 876, 877, 878, 879, 863, 880, 881, 882, 876,
927 883, 884, 885, 886, 887, 876, 888, 889, 890, 891,
928 892, 893, 894, 895, 896, 897, 898, 899, 900, 901,
929 902, 903, 904, 905, 906, 907, 908, 909, 910, 911,
930 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,
931 922, 923, 924, 925, 926, 927, 928, 929, 930, 931,
932 932, 933, 934, 935, 936, 937, 938, 939, 940, 941,
933 942, 943, 944, 945, 946, 947, 948, 949, 950, 951,
934 952, 953, 954, 938, 955, 956, 941, 957, 958, 959,
935 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
936 970, 971, 972, 973, 974, 975, 976, 977, 978, 979,
938 980, 981, 982, 983, 967, 984, 985, 986, 987, 988,
939 989, 990, 991, 992, 994, 639, 638, 637, 636, 635,
940 634, 633, 632, 631, 630, 629, 628, 627, 626, 625,
941 624, 623, 622, 621, 620, 619, 618, 617, 616, 615,
942 614, 613, 612, 611, 610, 609, 608, 606, 605, 604,
943 603, 602, 601, 600, 599, 598, 597, 596, 594, 593,
944 592, 590, 589, 588, 587, 586, 585, 584, 583, 582,
945 581, 580, 579, 578, 577, 576, 575, 574, 573, 572,
946 571, 570, 569, 568, 567, 566, 565, 564, 562, 560,
947 559, 558, 557, 556, 555, 553, 552, 551, 550, 549,
949 548, 547, 546, 545, 544, 543, 542, 541, 540, 539,
950 538, 537, 536, 533, 532, 531, 530, 529, 528, 527,
951 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
952 516, 515, 514, 513, 512, 511, 510, 509, 507, 506,
953 505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
954 495, 494, 493, 491, 490, 489, 488, 487, 485, 484,
955 483, 482, 481, 480, 479, 478, 477, 476, 474, 473,
956 472, 471, 469, 468, 467, 466, 465, 464, 463, 462,
957 461, 460, 459, 458, 457, 456, 455, 454, 453, 452,
958 451, 450, 449, 448, 447, 446, 445, 444, 443, 440,
960 439, 438, 437, 436, 435, 434, 433, 432, 431, 430,
961 429, 428, 427, 426, 425, 424, 423, 421, 420, 419,
962 418, 417, 416, 415, 414, 413, 410, 409, 408, 407,
963 406, 405, 404, 403, 402, 401, 400, 399, 398, 397,
964 396, 394, 393, 392, 391, 390, 389, 388, 387, 386,
965 385, 383, 382, 381, 379, 378, 377, 376, 375, 373,
966 372, 371, 370, 369, 368, 367, 366, 365, 364, 363,
967 362, 361, 360, 359, 358, 357, 356, 355, 354, 352,
968 351, 350, 348, 347, 346, 345, 343, 342, 341, 340,
969 338, 337, 336, 335, 334, 333, 332, 331, 329, 328,
971 327, 326, 325, 324, 323, 322, 321, 320, 318, 316,
972 315, 314, 313, 312, 311, 310, 309, 308, 307, 306,
973 305, 304, 302, 301, 300, 299, 298, 297, 296, 295,
974 294, 293, 292, 291, 290, 289, 288, 287, 286, 285,
975 284, 283, 282, 281, 280, 278, 277, 276, 274, 273,
976 272, 270, 268, 267, 266, 265, 264, 262, 261, 260,
977 259, 258, 257, 256, 255, 254, 253, 252, 251, 250,
978 249, 248, 247, 246, 245, 244, 243, 242, 241, 239,
979 238, 237, 236, 233, 230, 229, 227, 225, 223, 221,
980 218, 216, 215, 214, 213, 211, 210, 209, 208, 207,
982 206, 205, 204, 202, 201, 200, 199, 198, 197, 196,
983 194, 193, 192, 191, 187, 185, 183, 180, 179, 178,
984 177, 176, 174, 173, 171, 170, 169, 168, 167, 165,
985 164, 162, 161, 160, 159, 157, 156, 155, 153, 152,
986 150, 149, 148, 147, 146, 145, 144, 142, 137, 136,
987 134, 133, 131, 130, 129, 126, 121, 120, 119, 117,
988 116, 115, 113, 112, 111, 110, 109, 108, 106, 103,
989 102, 101, 100, 99, 98, 96, 95, 94, 93, 92,
990 91, 90, 89, 88, 87, 86, 85, 81, 80, 76,
991 61, 50, 49, 48, 47, 45, 42, 41, 40, 38,
993 37, 35, 32, 28, 27, 26, 25, 23, 20, 15,
994 14, 11, 7, 3, 993, 993, 993, 993, 993, 993,
995 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
996 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
997 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
998 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
999 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
1000 993, 993, 993, 993, 993, 993, 993, 993, 993, 993,
1001 993, 993, 993, 993, 993, 993, 993, 993
1004 static yy_state_type yy_last_accepting_state;
1005 static char *yy_last_accepting_cpos;
1007 /* The intent behind this definition is that it'll catch
1008 * any uses of REJECT which flex missed.
1010 #define REJECT reject_used_but_not_detected
1011 #define yymore() yymore_used_but_not_detected
1012 #define YY_MORE_ADJ 0
1013 #define YY_RESTORE_YY_MORE_OFFSET
1014 char *yytext;
1015 #line 1 "lexer.l"
1016 #define INITIAL 0
1017 #line 2 "lexer.l"
1018 #include <stdlib.h>
1019 #include <string.h>
1020 #include "nodes.h"
1022 #ifdef WIN32
1023 #define strdup _strdup
1024 #define fileno _fileno
1025 #define isatty _isatty
1026 #endif
1028 /* enlarge token buffer to tokenize whole strings */
1029 #undef YYLMAX
1030 #define YYLMAX 64000
1032 #ifdef __cplusplus
1033 extern "C" {
1034 #endif
1035 #include "grammar.h"
1036 int yywrap();
1037 #ifdef __cplusplus
1039 #endif
1041 #ifdef WIN32
1042 extern YYSTYPE yylval;
1043 #endif
1044 #ifdef TOKEN_DEBUG
1045 #define token_debug printf
1046 #else
1047 int token_debug(const char *format, ...);
1048 #endif
1049 #line 1026 "lex.yy.c"
1051 /* Macros after this point can all be overridden by user definitions in
1052 * section 1.
1055 #ifndef YY_SKIP_YYWRAP
1056 #ifdef __cplusplus
1057 extern "C" int yywrap YY_PROTO(( void ));
1058 #else
1059 extern int yywrap YY_PROTO(( void ));
1060 #endif
1061 #endif
1063 #ifndef YY_NO_UNPUT
1064 //static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1065 #endif
1067 #ifndef yytext_ptr
1068 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1069 #endif
1071 #ifdef YY_NEED_STRLEN
1072 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1073 #endif
1075 #ifndef YY_NO_INPUT
1076 #ifdef __cplusplus
1077 static int yyinput YY_PROTO(( void ));
1078 #else
1079 static int input YY_PROTO(( void ));
1080 #endif
1081 #endif
1083 #if YY_STACK_USED
1084 static int yy_start_stack_ptr = 0;
1085 static int yy_start_stack_depth = 0;
1086 static int *yy_start_stack = 0;
1087 #ifndef YY_NO_PUSH_STATE
1088 static void yy_push_state YY_PROTO(( int new_state ));
1089 #endif
1090 #ifndef YY_NO_POP_STATE
1091 static void yy_pop_state YY_PROTO(( void ));
1092 #endif
1093 #ifndef YY_NO_TOP_STATE
1094 static int yy_top_state YY_PROTO(( void ));
1095 #endif
1097 #else
1098 #define YY_NO_PUSH_STATE 1
1099 #define YY_NO_POP_STATE 1
1100 #define YY_NO_TOP_STATE 1
1101 #endif
1103 #ifdef YY_MALLOC_DECL
1104 YY_MALLOC_DECL
1105 #else
1106 #if __STDC__
1107 #ifndef __cplusplus
1108 #include <stdlib.h>
1109 #endif
1110 #else
1111 /* Just try to get by without declaring the routines. This will fail
1112 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1113 * or sizeof(void*) != sizeof(int).
1115 #endif
1116 #endif
1118 /* Amount of stuff to slurp up with each read. */
1119 #ifndef YY_READ_BUF_SIZE
1120 #define YY_READ_BUF_SIZE 8192
1121 #endif
1123 /* Copy whatever the last rule matched to the standard output. */
1125 #ifndef ECHO
1126 /* This used to be an fputs(), but since the string might contain NUL's,
1127 * we now use fwrite().
1129 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1130 #endif
1132 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1133 * is returned in "result".
1135 #ifndef YY_INPUT
1136 #define YY_INPUT(buf,result,max_size) \
1137 if ( yy_current_buffer->yy_is_interactive ) \
1139 int c = '*', n; \
1140 for ( n = 0; n < max_size && \
1141 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1142 buf[n] = (char) c; \
1143 if ( c == '\n' ) \
1144 buf[n++] = (char) c; \
1145 if ( c == EOF && ferror( yyin ) ) \
1146 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1147 result = n; \
1149 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1150 && ferror( yyin ) ) \
1151 YY_FATAL_ERROR( "input in flex scanner failed" );
1152 #endif
1154 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1155 * we don't want an extra ';' after the "return" because that will cause
1156 * some compilers to complain about unreachable statements.
1158 #ifndef yyterminate
1159 #define yyterminate() return YY_NULL
1160 #endif
1162 /* Number of entries by which start-condition stack grows. */
1163 #ifndef YY_START_STACK_INCR
1164 #define YY_START_STACK_INCR 25
1165 #endif
1167 /* Report a fatal error. */
1168 #ifndef YY_FATAL_ERROR
1169 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1170 #endif
1172 /* Default declaration of generated scanner - a define so the user can
1173 * easily add parameters.
1175 #ifndef YY_DECL
1176 #define YY_DECL int yylex YY_PROTO(( void ))
1177 #endif
1179 /* Code executed at the beginning of each rule, after yytext and yyleng
1180 * have been set up.
1182 #ifndef YY_USER_ACTION
1183 #define YY_USER_ACTION
1184 #endif
1186 /* Code executed at the end of each rule. */
1187 #ifndef YY_BREAK
1188 #define YY_BREAK break;
1189 #endif
1191 #define YY_RULE_SETUP \
1192 YY_USER_ACTION
1194 YY_DECL
1196 register yy_state_type yy_current_state;
1197 register char *yy_cp, *yy_bp;
1198 register int yy_act;
1200 #line 90 "lexer.l"
1202 #line 1179 "lex.yy.c"
1204 if ( yy_init )
1206 yy_init = 0;
1208 #ifdef YY_USER_INIT
1209 YY_USER_INIT;
1210 #endif
1212 if ( ! yy_start )
1213 yy_start = 1; /* first start state */
1215 if ( ! yyin )
1216 yyin = stdin;
1218 if ( ! yyout )
1219 yyout = stdout;
1221 if ( ! yy_current_buffer )
1222 yy_current_buffer =
1223 yy_create_buffer( yyin, YY_BUF_SIZE );
1225 yy_load_buffer_state();
1228 while ( 1 ) /* loops until end-of-file is reached */
1230 yy_cp = yy_c_buf_p;
1232 /* Support of yytext. */
1233 *yy_cp = yy_hold_char;
1235 /* yy_bp points to the position in yy_ch_buf of the start of
1236 * the current run.
1238 yy_bp = yy_cp;
1240 yy_current_state = yy_start;
1241 yy_match:
1244 register YY_CHAR yy_c = sal::static_int_cast<YY_CHAR>(yy_ec[YY_SC_TO_UI(*yy_cp)]);
1245 if ( yy_accept[yy_current_state] )
1247 yy_last_accepting_state = yy_current_state;
1248 yy_last_accepting_cpos = yy_cp;
1250 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1252 yy_current_state = (int) yy_def[yy_current_state];
1253 if ( yy_current_state >= 994 )
1254 yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[(unsigned int) yy_c]);
1256 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1257 ++yy_cp;
1259 while ( yy_base[yy_current_state] != 1315 );
1261 yy_find_action:
1262 yy_act = yy_accept[yy_current_state];
1263 if ( yy_act == 0 )
1264 { /* have to back up */
1265 yy_cp = yy_last_accepting_cpos;
1266 yy_current_state = yy_last_accepting_state;
1267 yy_act = yy_accept[yy_current_state];
1270 YY_DO_BEFORE_ACTION;
1273 do_action: /* This label is used only to access EOF actions. */
1276 switch ( yy_act )
1277 { /* beginning of action switch */
1278 case 0: /* must back up */
1279 /* undo the effects of YY_DO_BEFORE_ACTION */
1280 *yy_cp = yy_hold_char;
1281 yy_cp = yy_last_accepting_cpos;
1282 yy_current_state = yy_last_accepting_state;
1283 goto yy_find_action;
1285 case 1:
1286 YY_RULE_SETUP
1287 #line 91 "lexer.l"
1288 { yylval.str = yytext+1; token_debug(" ==>Begin[%s]\n",yytext+1); return EQBEGIN; }
1289 //YY_BREAK
1290 case 2:
1291 YY_RULE_SETUP
1292 #line 92 "lexer.l"
1293 { yylval.str = yytext+1; token_debug(" ==>End[%s]\n",yytext+1); return EQEND; }
1294 //YY_BREAK
1295 case 3:
1296 YY_RULE_SETUP
1297 #line 93 "lexer.l"
1298 { yylval.str = yytext+1; token_debug(" ==>Left[%s]\n",yytext+1); return EQLEFT; }
1299 //YY_BREAK
1300 case 4:
1301 YY_RULE_SETUP
1302 #line 94 "lexer.l"
1303 { yylval.str = yytext+1; token_debug(" ==>LeftDelim[%s]\n",yytext+1); return LEFT_DELIM; }
1304 //YY_BREAK
1305 case 5:
1306 YY_RULE_SETUP
1307 #line 95 "lexer.l"
1308 { yylval.str = yytext+1; token_debug(" ==>RightDelim[%s]\n",yytext+1); return RIGHT_DELIM; }
1309 //YY_BREAK
1310 case 6:
1311 YY_RULE_SETUP
1312 #line 96 "lexer.l"
1313 { yylval.str = yytext+1; token_debug(" ==>Right[%s]\n",yytext+1); return EQRIGHT; }
1314 //YY_BREAK
1315 case 7:
1316 YY_RULE_SETUP
1317 #line 97 "lexer.l"
1318 { yylval.str = yytext; token_debug(" ==>NewLine[%s]\n",yytext); return NEWLINE; }
1319 //YY_BREAK
1320 case 8:
1321 YY_RULE_SETUP
1322 #line 99 "lexer.l"
1323 { yylval.str = yytext+1; token_debug(" ==>Accent[%s]\n",yytext+1); return ACCENT; }
1324 //YY_BREAK
1325 case 9:
1326 YY_RULE_SETUP
1327 #line 100 "lexer.l"
1328 { yylval.str = yytext+1; token_debug(" ==>Small_Greek[%s]\n",yytext+1); return SMALL_GREEK; }
1329 //YY_BREAK
1330 case 10:
1331 YY_RULE_SETUP
1332 #line 101 "lexer.l"
1333 { yylval.str = yytext+1; token_debug(" ==>Capital_Greek[%s]\n",yytext+1); return CAPITAL_GREEK; }
1334 //YY_BREAK
1335 case 11:
1336 YY_RULE_SETUP
1337 #line 102 "lexer.l"
1338 { yylval.str = yytext+1; token_debug(" ==>Binary_Operator[%s]\n",yytext+1); return BINARY_OPERATOR; }
1339 //YY_BREAK
1340 case 12:
1341 YY_RULE_SETUP
1342 #line 103 "lexer.l"
1343 { yylval.str = yytext+1; token_debug(" ==>Relation_Symbol[%s]\n",yytext+1); return RELATION_OPERATOR; }
1344 //YY_BREAK
1345 case 13:
1346 YY_RULE_SETUP
1347 #line 105 "lexer.l"
1348 { yylval.str = strdup("neq"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1349 //YY_BREAK
1350 case 14:
1351 YY_RULE_SETUP
1352 #line 106 "lexer.l"
1353 { yylval.str = strdup("vmlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1354 //YY_BREAK
1355 case 15:
1356 YY_RULE_SETUP
1357 #line 107 "lexer.l"
1358 { yylval.str = strdup("vmgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1359 //YY_BREAK
1360 case 16:
1361 YY_RULE_SETUP
1362 #line 108 "lexer.l"
1363 { yylval.str = strdup("mlt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1364 //YY_BREAK
1365 case 17:
1366 YY_RULE_SETUP
1367 #line 109 "lexer.l"
1368 { yylval.str = strdup("mgt"); token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1369 //YY_BREAK
1370 case 18:
1371 YY_RULE_SETUP
1372 #line 110 "lexer.l"
1373 { yylval.str = yytext; token_debug(" ==>Relation_Symbol[neq]\n"); return RELATION_OPERATOR; }
1374 //YY_BREAK
1375 case 19:
1376 YY_RULE_SETUP
1377 #line 112 "lexer.l"
1378 { yylval.str = yytext+1; token_debug(" ==>Arrow[%s]\n",yytext+1); return ARROW; }
1379 //YY_BREAK
1380 case 20:
1381 YY_RULE_SETUP
1382 #line 113 "lexer.l"
1383 { yylval.str = strdup("leftrightarrow"); token_debug(" ==>Arrow[leftrightarrow]\n"); return ARROW; }
1384 //YY_BREAK
1385 case 21:
1386 YY_RULE_SETUP
1387 #line 114 "lexer.l"
1388 { yylval.str = strdup("rightarrow"); token_debug(" ==>Arrow[rightarrow]\n"); return ARROW; }
1389 //YY_BREAK
1390 case 22:
1391 YY_RULE_SETUP
1392 #line 115 "lexer.l"
1393 { yylval.str = strdup("leftarrow"); token_debug(" ==>Arrow[leftarrow]\n"); return ARROW; }
1394 //YY_BREAK
1396 case 23:
1397 YY_RULE_SETUP
1398 #line 116 "lexer.l"
1399 { token_debug(" ==>Ignore[\\rm]\n"); }
1400 //YY_BREAK
1401 case 24:
1402 YY_RULE_SETUP
1403 #line 117 "lexer.l"
1404 { yylval.str = yytext+1; token_debug(" ==>General_Iden[%s]\n",yytext+1); return GENERAL_IDEN; }
1405 //YY_BREAK
1406 case 25:
1407 YY_RULE_SETUP
1408 #line 118 "lexer.l"
1409 { yylval.str = yytext+1; token_debug(" ==>General_Oper[%s]\n",yytext+1); return GENERAL_OPER; }
1410 //YY_BREAK
1411 case 26:
1412 YY_RULE_SETUP
1413 #line 119 "lexer.l"
1414 { yylval.str = yytext+1; token_debug(" ==>Big_Symbol[%s]\n",yytext+1); return BIG_SYMBOL; }
1415 //YY_BREAK
1416 case 27:
1417 YY_RULE_SETUP
1418 #line 120 "lexer.l"
1419 { yylval.str = yytext+1; token_debug(" ==>Function[%s]\n",yytext+1); return FUNCTION; }
1420 //YY_BREAK
1421 case 28:
1422 YY_RULE_SETUP
1423 #line 121 "lexer.l"
1424 { yylval.str = yytext+1; token_debug(" ==>Root[%s]\n",yytext+1); return ROOT; }
1425 //YY_BREAK
1426 case 29:
1427 YY_RULE_SETUP
1428 #line 122 "lexer.l"
1429 { yylval.str = yytext+1; token_debug(" ==>Fraction[%s]\n",yytext+1); return FRACTION; }
1430 //YY_BREAK
1431 case 30:
1432 YY_RULE_SETUP
1433 #line 123 "lexer.l"
1434 { yylval.str = yytext+1; token_debug(" ==>Over[%s]\n",yytext+1); return EQOVER; }
1435 //YY_BREAK
1436 case 31:
1437 YY_RULE_SETUP
1438 #line 124 "lexer.l"
1439 { yylval.str = yytext+1; token_debug(" ==>Delimeter[%s]\n",yytext+1); return DELIMETER; }
1440 //YY_BREAK
1441 case 32:
1442 YY_RULE_SETUP
1443 #line 125 "lexer.l"
1444 { yylval.str = yytext+1; token_debug(" ==>Large_Delim[%s]\n",yytext+1); return LARGE_DELIM; }
1445 //YY_BREAK
1446 case 33:
1447 YY_RULE_SETUP
1448 #line 126 "lexer.l"
1449 { yylval.str = yytext+1; token_debug(" ==>Decoration[%s]\n",yytext+1); return DECORATION; }
1450 //YY_BREAK
1451 case 34:
1452 YY_RULE_SETUP
1453 #line 127 "lexer.l"
1454 { yylval.str = yytext+1; token_debug(" ==>Space_Symbol[%s]\n",yytext+1); /*return SPACE_SYMBOL;*/ }
1455 //YY_BREAK
1456 case 35:
1457 YY_RULE_SETUP
1458 #line 128 "lexer.l"
1459 { yylval.str = strdup("quad"); token_debug(" ==>Space_Symbol[quad]\n"); /* return SPACE_SYMBOL;*/ }
1460 //YY_BREAK
1461 case 36:
1462 YY_RULE_SETUP
1463 #line 129 "lexer.l"
1464 { yylval.dval = yytext; token_debug(" ==>Digit[%s]\n",yytext); return DIGIT; }
1465 //YY_BREAK
1466 case 37:
1467 YY_RULE_SETUP
1468 #line 130 "lexer.l"
1469 { yylval.str = yytext; token_debug(" ==>Operator[%s]\n",yytext); return OPERATOR; }
1470 //YY_BREAK
1471 case 38:
1472 YY_RULE_SETUP
1473 #line 131 "lexer.l"
1474 { token_debug(" ==>SubSup[%s]\n",yytext); return yytext[0]; }
1475 //YY_BREAK
1476 case 39:
1477 YY_RULE_SETUP
1478 #line 132 "lexer.l"
1479 { token_debug(" ==>Paren[%s]\n",yytext); return yytext[0];}
1480 //YY_BREAK
1481 case 40:
1482 YY_RULE_SETUP
1483 #line 133 "lexer.l"
1484 { token_debug(" ==>Abs[%s]\n",yytext); return yytext[0];}
1485 //YY_BREAK
1486 case 41:
1487 YY_RULE_SETUP
1488 #line 134 "lexer.l"
1489 { token_debug(" ==>Space[0x%2x]\n",yytext[0]); }
1490 YY_BREAK
1491 case 42:
1492 YY_RULE_SETUP
1493 #line 135 "lexer.l"
1494 { token_debug(" ==>Ignore[0x%2x]\n",yytext[0]); }
1495 YY_BREAK
1496 case 43:
1497 YY_RULE_SETUP
1498 #line 136 "lexer.l"
1499 { yylval.str = yytext; token_debug(" ==>String[%s]\n",yytext); return STRING; }
1500 //YY_BREAK
1501 case 44:
1502 YY_RULE_SETUP
1503 #line 137 "lexer.l"
1504 { yylval.str = yytext; token_debug(" ==>Else[%s]\n",yytext); return CHARACTER; }
1505 //YY_BREAK
1506 case 45:
1507 YY_RULE_SETUP
1508 #line 138 "lexer.l"
1509 ECHO;
1510 YY_BREAK
1511 #line 1487 "lex.yy.c"
1512 case YY_STATE_EOF(INITIAL):
1513 yyterminate();
1515 case YY_END_OF_BUFFER:
1517 /* Amount of text matched not including the EOB char. */
1518 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
1520 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1521 *yy_cp = yy_hold_char;
1522 YY_RESTORE_YY_MORE_OFFSET
1524 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
1526 /* We're scanning a new file or input source. It's
1527 * possible that this happened because the user
1528 * just pointed yyin at a new source and called
1529 * yylex(). If so, then we have to assure
1530 * consistency between yy_current_buffer and our
1531 * globals. Here is the right place to do so, because
1532 * this is the first action (other than possibly a
1533 * back-up) that will match for the new input source.
1535 yy_n_chars = yy_current_buffer->yy_n_chars;
1536 yy_current_buffer->yy_input_file = yyin;
1537 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
1540 /* Note that here we test for yy_c_buf_p "<=" to the position
1541 * of the first EOB in the buffer, since yy_c_buf_p will
1542 * already have been incremented past the NUL character
1543 * (since all states make transitions on EOB to the
1544 * end-of-buffer state). Contrast this with the test
1545 * in input().
1547 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1548 { /* This was really a NUL. */
1549 yy_state_type yy_next_state;
1551 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
1553 yy_current_state = yy_get_previous_state();
1555 /* Okay, we're now positioned to make the NUL
1556 * transition. We couldn't have
1557 * yy_get_previous_state() go ahead and do it
1558 * for us because it doesn't know how to deal
1559 * with the possibility of jamming (and we don't
1560 * want to build jamming into it because then it
1561 * will run more slowly).
1564 yy_next_state = yy_try_NUL_trans( yy_current_state );
1566 yy_bp = yytext_ptr + YY_MORE_ADJ;
1568 if ( yy_next_state )
1570 /* Consume the NUL. */
1571 yy_cp = ++yy_c_buf_p;
1572 yy_current_state = yy_next_state;
1573 goto yy_match;
1576 else
1578 yy_cp = yy_c_buf_p;
1579 goto yy_find_action;
1583 else switch ( yy_get_next_buffer() )
1585 case EOB_ACT_END_OF_FILE:
1587 yy_did_buffer_switch_on_eof = 0;
1589 if ( yywrap() )
1591 /* Note: because we've taken care in
1592 * yy_get_next_buffer() to have set up
1593 * yytext, we can now set up
1594 * yy_c_buf_p so that if some total
1595 * hoser (like flex itself) wants to
1596 * call the scanner after we return the
1597 * YY_NULL, it'll still work - another
1598 * YY_NULL will get returned.
1600 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
1602 yy_act = YY_STATE_EOF(YY_START);
1603 goto do_action;
1606 else
1608 if ( ! yy_did_buffer_switch_on_eof )
1609 YY_NEW_FILE;
1611 break;
1614 case EOB_ACT_CONTINUE_SCAN:
1615 yy_c_buf_p =
1616 yytext_ptr + yy_amount_of_matched_text;
1618 yy_current_state = yy_get_previous_state();
1620 yy_cp = yy_c_buf_p;
1621 yy_bp = yytext_ptr + YY_MORE_ADJ;
1622 goto yy_match;
1624 case EOB_ACT_LAST_MATCH:
1625 yy_c_buf_p =
1626 &yy_current_buffer->yy_ch_buf[yy_n_chars];
1628 yy_current_state = yy_get_previous_state();
1630 yy_cp = yy_c_buf_p;
1631 yy_bp = yytext_ptr + YY_MORE_ADJ;
1632 goto yy_find_action;
1634 break;
1637 default:
1638 YY_FATAL_ERROR(
1639 "fatal flex scanner internal error--no action found" );
1640 } /* end of action switch */
1641 } /* end of scanning one token */
1642 } /* end of yylex */
1645 /* yy_get_next_buffer - try to read in a new buffer
1647 * Returns a code representing an action:
1648 * EOB_ACT_LAST_MATCH -
1649 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1650 * EOB_ACT_END_OF_FILE - end of file
1653 static int yy_get_next_buffer()
1655 register char *dest = yy_current_buffer->yy_ch_buf;
1656 register char *source = yytext_ptr;
1657 register int number_to_move, i;
1658 int ret_val;
1660 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
1661 YY_FATAL_ERROR(
1662 "fatal flex scanner internal error--end of buffer missed" );
1664 if ( yy_current_buffer->yy_fill_buffer == 0 )
1665 { /* Don't try to fill the buffer, so this is an EOF. */
1666 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
1668 /* We matched a single character, the EOB, so
1669 * treat this as a final EOF.
1671 return EOB_ACT_END_OF_FILE;
1674 else
1676 /* We matched some text prior to the EOB, first
1677 * process it.
1679 return EOB_ACT_LAST_MATCH;
1683 /* Try to read more data. */
1685 /* First move last chars to start of buffer. */
1686 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
1688 for ( i = 0; i < number_to_move; ++i )
1689 *(dest++) = *(source++);
1691 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1692 /* don't do the read, it's not guaranteed to return an EOF,
1693 * just force an EOF
1695 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
1697 else
1699 int num_to_read =
1700 yy_current_buffer->yy_buf_size - number_to_move - 1;
1702 while ( num_to_read <= 0 )
1703 { /* Not enough room in the buffer - grow it. */
1704 #ifdef YY_USES_REJECT
1705 YY_FATAL_ERROR(
1706 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1707 #else
1709 /* just a shorter name for the current buffer */
1710 YY_BUFFER_STATE b = yy_current_buffer;
1712 int yy_c_buf_p_offset =
1713 (int) (yy_c_buf_p - b->yy_ch_buf);
1715 if ( b->yy_is_our_buffer )
1717 int new_size = b->yy_buf_size * 2;
1719 if ( new_size <= 0 )
1720 b->yy_buf_size += b->yy_buf_size / 8;
1721 else
1722 b->yy_buf_size *= 2;
1724 b->yy_ch_buf = (char *)
1725 /* Include room in for 2 EOB chars. */
1726 yy_flex_realloc( (void *) b->yy_ch_buf,
1727 b->yy_buf_size + 2 );
1729 else
1730 /* Can't grow it, we don't own it. */
1731 b->yy_ch_buf = 0;
1733 if ( ! b->yy_ch_buf )
1734 YY_FATAL_ERROR(
1735 "fatal error - scanner input buffer overflow" );
1737 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1739 num_to_read = yy_current_buffer->yy_buf_size -
1740 number_to_move - 1;
1741 #endif
1744 if ( num_to_read > YY_READ_BUF_SIZE )
1745 num_to_read = YY_READ_BUF_SIZE;
1747 /* Read in more data. */
1748 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
1749 yy_n_chars, num_to_read );
1751 yy_current_buffer->yy_n_chars = yy_n_chars;
1754 if ( yy_n_chars == 0 )
1756 if ( number_to_move == YY_MORE_ADJ )
1758 ret_val = EOB_ACT_END_OF_FILE;
1759 yyrestart( yyin );
1762 else
1764 ret_val = EOB_ACT_LAST_MATCH;
1765 yy_current_buffer->yy_buffer_status =
1766 YY_BUFFER_EOF_PENDING;
1770 else
1771 ret_val = EOB_ACT_CONTINUE_SCAN;
1773 yy_n_chars += number_to_move;
1774 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1775 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1777 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
1779 return ret_val;
1783 /* yy_get_previous_state - get the state just before the EOB char was reached */
1785 static yy_state_type yy_get_previous_state()
1787 register yy_state_type yy_current_state;
1788 register char *yy_cp;
1790 yy_current_state = yy_start;
1792 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
1794 register YY_CHAR yy_c = sal::static_int_cast<YY_CHAR>(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1795 if ( yy_accept[yy_current_state] )
1797 yy_last_accepting_state = yy_current_state;
1798 yy_last_accepting_cpos = yy_cp;
1800 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1802 yy_current_state = (int) yy_def[yy_current_state];
1803 if ( yy_current_state >= 994 )
1804 yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[(unsigned int) yy_c]);
1806 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1809 return yy_current_state;
1813 /* yy_try_NUL_trans - try to make a transition on the NUL character
1815 * synopsis
1816 * next_state = yy_try_NUL_trans( current_state );
1819 #ifdef YY_USE_PROTOS
1820 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
1821 #else
1822 static yy_state_type yy_try_NUL_trans( yy_current_state )
1823 yy_state_type yy_current_state;
1824 #endif
1826 register int yy_is_jam;
1827 register char *yy_cp = yy_c_buf_p;
1829 register YY_CHAR yy_c = 1;
1830 if ( yy_accept[yy_current_state] )
1832 yy_last_accepting_state = yy_current_state;
1833 yy_last_accepting_cpos = yy_cp;
1835 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1837 yy_current_state = (int) yy_def[yy_current_state];
1838 if ( yy_current_state >= 994 )
1839 yy_c = sal::static_int_cast<YY_CHAR>(yy_meta[(unsigned int) yy_c]);
1841 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1842 yy_is_jam = (yy_current_state == 993);
1844 return yy_is_jam ? 0 : yy_current_state;
1847 /* yyunput unused
1848 #ifndef YY_NO_UNPUT
1849 #ifdef YY_USE_PROTOS
1850 static void yyunput( int c, register char *yy_bp )
1851 #else
1852 static void yyunput( c, yy_bp )
1853 int c;
1854 register char *yy_bp;
1855 #endif
1857 register char *yy_cp = yy_c_buf_p;
1859 // undo effects of setting up yytext
1860 *yy_cp = yy_hold_char;
1862 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1863 { // need to shift things up to make room
1864 // +2 for EOB chars.
1865 register int number_to_move = yy_n_chars + 2;
1866 register char *dest = &yy_current_buffer->yy_ch_buf[
1867 yy_current_buffer->yy_buf_size + 2];
1868 register char *source =
1869 &yy_current_buffer->yy_ch_buf[number_to_move];
1871 while ( source > yy_current_buffer->yy_ch_buf )
1872 *--dest = *--source;
1874 yy_cp += (int) (dest - source);
1875 yy_bp += (int) (dest - source);
1876 yy_current_buffer->yy_n_chars =
1877 yy_n_chars = yy_current_buffer->yy_buf_size;
1879 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
1880 YY_FATAL_ERROR( "flex scanner push-back overflow" );
1883 *--yy_cp = (char) c;
1886 yytext_ptr = yy_bp;
1887 yy_hold_char = *yy_cp;
1888 yy_c_buf_p = yy_cp;
1890 #endif // ifndef YY_NO_UNPUT
1893 #ifdef __cplusplus
1894 static int yyinput()
1895 #else
1896 static int input()
1897 #endif
1899 int c;
1901 *yy_c_buf_p = yy_hold_char;
1903 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1905 /* yy_c_buf_p now points to the character we want to return.
1906 * If this occurs *before* the EOB characters, then it's a
1907 * valid NUL; if not, then we've hit the end of the buffer.
1909 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
1910 /* This was really a NUL. */
1911 *yy_c_buf_p = '\0';
1913 else
1914 { /* need more input */
1915 int offset = yy_c_buf_p - yytext_ptr;
1916 ++yy_c_buf_p;
1918 switch ( yy_get_next_buffer() )
1920 case EOB_ACT_LAST_MATCH:
1921 /* This happens because yy_g_n_b()
1922 * sees that we've accumulated a
1923 * token and flags that we need to
1924 * try matching the token before
1925 * proceeding. But for input(),
1926 * there's no matching to consider.
1927 * So convert the EOB_ACT_LAST_MATCH
1928 * to EOB_ACT_END_OF_FILE.
1931 /* Reset buffer status. */
1932 yyrestart( yyin );
1934 /* fall through */
1936 case EOB_ACT_END_OF_FILE:
1938 if ( yywrap() )
1939 return EOF;
1941 if ( ! yy_did_buffer_switch_on_eof )
1942 YY_NEW_FILE;
1943 #ifdef __cplusplus
1944 return yyinput();
1945 #else
1946 return input();
1947 #endif
1950 case EOB_ACT_CONTINUE_SCAN:
1951 yy_c_buf_p = yytext_ptr + offset;
1952 break;
1957 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
1958 *yy_c_buf_p = '\0'; /* preserve yytext */
1959 yy_hold_char = *++yy_c_buf_p;
1962 return c;
1966 #ifdef YY_USE_PROTOS
1967 void yyrestart( FILE *input_file )
1968 #else
1969 void yyrestart( input_file )
1970 FILE *input_file;
1971 #endif
1973 if ( ! yy_current_buffer )
1974 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
1976 yy_init_buffer( yy_current_buffer, input_file );
1977 yy_load_buffer_state();
1981 #ifdef YY_USE_PROTOS
1982 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
1983 #else
1984 void yy_switch_to_buffer( new_buffer )
1985 YY_BUFFER_STATE new_buffer;
1986 #endif
1988 if ( yy_current_buffer == new_buffer )
1989 return;
1991 if ( yy_current_buffer )
1993 /* Flush out information for old buffer. */
1994 *yy_c_buf_p = yy_hold_char;
1995 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
1996 yy_current_buffer->yy_n_chars = yy_n_chars;
1999 yy_current_buffer = new_buffer;
2000 yy_load_buffer_state();
2002 /* We don't actually know whether we did this switch during
2003 * EOF (yywrap()) processing, but the only time this flag
2004 * is looked at is after yywrap() is called, so it's safe
2005 * to go ahead and always set it.
2007 yy_did_buffer_switch_on_eof = 1;
2011 #ifdef YY_USE_PROTOS
2012 void yy_load_buffer_state( void )
2013 #else
2014 void yy_load_buffer_state()
2015 #endif
2017 yy_n_chars = yy_current_buffer->yy_n_chars;
2018 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2019 yyin = yy_current_buffer->yy_input_file;
2020 yy_hold_char = *yy_c_buf_p;
2024 #ifdef YY_USE_PROTOS
2025 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2026 #else
2027 YY_BUFFER_STATE yy_create_buffer( file, size )
2028 FILE *file;
2029 int size;
2030 #endif
2032 YY_BUFFER_STATE b;
2034 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2035 if ( ! b )
2036 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2038 b->yy_buf_size = size;
2040 /* yy_ch_buf has to be 2 characters longer than the size given because
2041 * we need to put in 2 end-of-buffer characters.
2043 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2044 if ( ! b->yy_ch_buf )
2045 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2047 b->yy_is_our_buffer = 1;
2049 yy_init_buffer( b, file );
2051 return b;
2055 #ifdef YY_USE_PROTOS
2056 void yy_delete_buffer( YY_BUFFER_STATE b )
2057 #else
2058 void yy_delete_buffer( b )
2059 YY_BUFFER_STATE b;
2060 #endif
2062 if ( ! b )
2063 return;
2065 if ( b == yy_current_buffer )
2066 yy_current_buffer = (YY_BUFFER_STATE) 0;
2068 if ( b->yy_is_our_buffer )
2069 yy_flex_free( (void *) b->yy_ch_buf );
2071 yy_flex_free( (void *) b );
2075 #ifndef YY_ALWAYS_INTERACTIVE
2076 #ifndef YY_NEVER_INTERACTIVE
2077 extern int isatty YY_PROTO(( int ));
2078 #endif
2079 #endif
2081 #ifdef YY_USE_PROTOS
2082 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2083 #else
2084 void yy_init_buffer( b, file )
2085 YY_BUFFER_STATE b;
2086 FILE *file;
2087 #endif
2091 yy_flush_buffer( b );
2093 b->yy_input_file = file;
2094 b->yy_fill_buffer = 1;
2096 #if YY_ALWAYS_INTERACTIVE
2097 b->yy_is_interactive = 1;
2098 #else
2099 #if YY_NEVER_INTERACTIVE
2100 b->yy_is_interactive = 0;
2101 #else
2102 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2103 #endif
2104 #endif
2108 #ifdef YY_USE_PROTOS
2109 void yy_flush_buffer( YY_BUFFER_STATE b )
2110 #else
2111 void yy_flush_buffer( b )
2112 YY_BUFFER_STATE b;
2113 #endif
2116 if ( ! b )
2117 return;
2119 b->yy_n_chars = 0;
2121 /* We always need two end-of-buffer characters. The first causes
2122 * a transition to the end-of-buffer state. The second causes
2123 * a jam in that state.
2125 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2126 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2128 b->yy_buf_pos = &b->yy_ch_buf[0];
2130 b->yy_at_bol = 1;
2131 b->yy_buffer_status = YY_BUFFER_NEW;
2133 if ( b == yy_current_buffer )
2134 yy_load_buffer_state();
2138 #ifndef YY_NO_SCAN_BUFFER
2139 #ifdef YY_USE_PROTOS
2140 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2141 #else
2142 YY_BUFFER_STATE yy_scan_buffer( base, size )
2143 char *base;
2144 yy_size_t size;
2145 #endif
2147 YY_BUFFER_STATE b;
2149 if ( size < 2 ||
2150 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2151 base[size-1] != YY_END_OF_BUFFER_CHAR )
2152 /* They forgot to leave room for the EOB's. */
2153 return 0;
2155 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2156 if ( ! b )
2157 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2159 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2160 b->yy_buf_pos = b->yy_ch_buf = base;
2161 b->yy_is_our_buffer = 0;
2162 b->yy_input_file = 0;
2163 b->yy_n_chars = b->yy_buf_size;
2164 b->yy_is_interactive = 0;
2165 b->yy_at_bol = 1;
2166 b->yy_fill_buffer = 0;
2167 b->yy_buffer_status = YY_BUFFER_NEW;
2169 yy_switch_to_buffer( b );
2171 return b;
2173 #endif
2176 #ifndef YY_NO_SCAN_STRING
2177 #ifdef YY_USE_PROTOS
2178 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2179 #else
2180 YY_BUFFER_STATE yy_scan_string( yy_str )
2181 yyconst char *yy_str;
2182 #endif
2184 int len;
2185 for ( len = 0; yy_str[len]; ++len )
2188 return yy_scan_bytes( yy_str, len );
2190 #endif
2193 #ifndef YY_NO_SCAN_BYTES
2194 #ifdef YY_USE_PROTOS
2195 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2196 #else
2197 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2198 yyconst char *bytes;
2199 int len;
2200 #endif
2202 YY_BUFFER_STATE b;
2203 char *buf;
2204 yy_size_t n;
2205 int i;
2207 /* Get memory for full buffer, including space for trailing EOB's. */
2208 n = len + 2;
2209 buf = (char *) yy_flex_alloc( n );
2210 if ( ! buf )
2211 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2213 for ( i = 0; i < len; ++i )
2214 buf[i] = bytes[i];
2216 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2218 b = yy_scan_buffer( buf, n );
2219 if ( ! b )
2220 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2222 /* It's okay to grow etc. this buffer, and we should throw it
2223 * away when we're done.
2225 b->yy_is_our_buffer = 1;
2227 return b;
2229 #endif
2232 #ifndef YY_NO_PUSH_STATE
2233 #ifdef YY_USE_PROTOS
2234 static void yy_push_state( int new_state )
2235 #else
2236 static void yy_push_state( new_state )
2237 int new_state;
2238 #endif
2240 if ( yy_start_stack_ptr >= yy_start_stack_depth )
2242 yy_size_t new_size;
2244 yy_start_stack_depth += YY_START_STACK_INCR;
2245 new_size = yy_start_stack_depth * sizeof( int );
2247 if ( ! yy_start_stack )
2248 yy_start_stack = (int *) yy_flex_alloc( new_size );
2250 else
2251 yy_start_stack = (int *) yy_flex_realloc(
2252 (void *) yy_start_stack, new_size );
2254 if ( ! yy_start_stack )
2255 YY_FATAL_ERROR(
2256 "out of memory expanding start-condition stack" );
2259 yy_start_stack[yy_start_stack_ptr++] = YY_START;
2261 BEGIN(new_state);
2263 #endif
2266 #ifndef YY_NO_POP_STATE
2267 static void yy_pop_state()
2269 if ( --yy_start_stack_ptr < 0 )
2270 YY_FATAL_ERROR( "start-condition stack underflow" );
2272 BEGIN(yy_start_stack[yy_start_stack_ptr]);
2274 #endif
2277 #ifndef YY_NO_TOP_STATE
2278 static int yy_top_state()
2280 return yy_start_stack[yy_start_stack_ptr - 1];
2282 #endif
2284 #ifndef YY_EXIT_FAILURE
2285 #define YY_EXIT_FAILURE 2
2286 #endif
2288 #ifdef YY_USE_PROTOS
2289 static void yy_fatal_error( yyconst char msg[] )
2290 #else
2291 static void yy_fatal_error( msg )
2292 char msg[];
2293 #endif
2295 (void) fprintf( stderr, "%s\n", msg );
2296 exit( YY_EXIT_FAILURE );
2301 /* Redefine yyless() so it works in section 3 code. */
2303 #undef yyless
2304 #define yyless(n) \
2305 do \
2307 /* Undo effects of setting up yytext. */ \
2308 yytext[yyleng] = yy_hold_char; \
2309 yy_c_buf_p = yytext + n; \
2310 yy_hold_char = *yy_c_buf_p; \
2311 *yy_c_buf_p = '\0'; \
2312 yyleng = n; \
2314 while ( 0 )
2317 /* Internal utility routines. */
2319 #ifndef yytext_ptr
2320 #ifdef YY_USE_PROTOS
2321 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
2322 #else
2323 static void yy_flex_strncpy( s1, s2, n )
2324 char *s1;
2325 yyconst char *s2;
2326 int n;
2327 #endif
2329 register int i;
2330 for ( i = 0; i < n; ++i )
2331 s1[i] = s2[i];
2333 #endif
2335 #ifdef YY_NEED_STRLEN
2336 #ifdef YY_USE_PROTOS
2337 static int yy_flex_strlen( yyconst char *s )
2338 #else
2339 static int yy_flex_strlen( s )
2340 yyconst char *s;
2341 #endif
2343 register int n;
2344 for ( n = 0; s[n]; ++n )
2347 return n;
2349 #endif
2352 #ifdef YY_USE_PROTOS
2353 static void *yy_flex_alloc( yy_size_t size )
2354 #else
2355 static void *yy_flex_alloc( size )
2356 yy_size_t size;
2357 #endif
2359 return (void *) malloc( size );
2362 #ifdef YY_USE_PROTOS
2363 static void *yy_flex_realloc( void *ptr, yy_size_t size )
2364 #else
2365 static void *yy_flex_realloc( ptr, size )
2366 void *ptr;
2367 yy_size_t size;
2368 #endif
2370 /* The cast to (char *) in the following accommodates both
2371 * implementations that use char* generic pointers, and those
2372 * that use void* generic pointers. It works with the latter
2373 * because both ANSI C and C++ allow castless assignment from
2374 * any pointer type to void*, and deal with argument conversions
2375 * as though doing an assignment.
2377 return (void *) realloc( (char *) ptr, size );
2380 #ifdef YY_USE_PROTOS
2381 static void yy_flex_free( void *ptr )
2382 #else
2383 static void yy_flex_free( ptr )
2384 void *ptr;
2385 #endif
2387 free( ptr );
2390 #if YY_MAIN
2391 int main()
2393 yylex();
2394 return 0;
2396 #endif
2397 #line 138 "lexer.l"
2400 void initFlex(const char *_code )
2402 yy_switch_to_buffer( yy_scan_string(_code) );
2405 int yywrap()
2407 yy_delete_buffer( YY_CURRENT_BUFFER );
2408 return 1;
2411 #ifndef TOKEN_DEBUG
2412 int token_debug(const char * /*format*/, ...)
2414 return 0;
2416 #endif