/[ascend]/trunk/base/generic/compiler/scanner_no_lex.c
ViewVC logotype

Annotation of /trunk/base/generic/compiler/scanner_no_lex.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1523 - (hide annotations) (download) (as text)
Sat Jun 30 14:55:05 2007 UTC (17 years, 5 months ago) by jpye
File MIME type: text/x-csrc
File size: 116941 byte(s)
Little bit on trying to fix debian build.
1 jpye 1523
2     #line 3 "<stdout>"
3    
4     #define YY_INT_ALIGNED short int
5    
6     /* A lexical scanner generated by flex */
7    
8     #define FLEX_SCANNER
9     #define YY_FLEX_MAJOR_VERSION 2
10     #define YY_FLEX_MINOR_VERSION 5
11     #define YY_FLEX_SUBMINOR_VERSION 33
12     #if YY_FLEX_SUBMINOR_VERSION > 0
13     #define FLEX_BETA
14     #endif
15    
16     /* First, we deal with platform-specific or compiler-specific issues. */
17    
18     /* begin standard C headers. */
19     #include <stdio.h>
20     #include <string.h>
21     #include <errno.h>
22     #include <stdlib.h>
23    
24     /* end standard C headers. */
25    
26     /* flex integer type definitions */
27    
28     #ifndef FLEXINT_H
29     #define FLEXINT_H
30    
31     /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32    
33     #if __STDC_VERSION__ >= 199901L
34    
35     /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36     * if you want the limit (max/min) macros for int types.
37     */
38     #ifndef __STDC_LIMIT_MACROS
39     #define __STDC_LIMIT_MACROS 1
40     #endif
41    
42     #include <inttypes.h>
43     typedef int8_t flex_int8_t;
44     typedef uint8_t flex_uint8_t;
45     typedef int16_t flex_int16_t;
46     typedef uint16_t flex_uint16_t;
47     typedef int32_t flex_int32_t;
48     typedef uint32_t flex_uint32_t;
49     #else
50     typedef signed char flex_int8_t;
51     typedef short int flex_int16_t;
52     typedef int flex_int32_t;
53     typedef unsigned char flex_uint8_t;
54     typedef unsigned short int flex_uint16_t;
55     typedef unsigned int flex_uint32_t;
56     #endif /* ! C99 */
57    
58     /* Limits of integral types. */
59     #ifndef INT8_MIN
60     #define INT8_MIN (-128)
61     #endif
62     #ifndef INT16_MIN
63     #define INT16_MIN (-32767-1)
64     #endif
65     #ifndef INT32_MIN
66     #define INT32_MIN (-2147483647-1)
67     #endif
68     #ifndef INT8_MAX
69     #define INT8_MAX (127)
70     #endif
71     #ifndef INT16_MAX
72     #define INT16_MAX (32767)
73     #endif
74     #ifndef INT32_MAX
75     #define INT32_MAX (2147483647)
76     #endif
77     #ifndef UINT8_MAX
78     #define UINT8_MAX (255U)
79     #endif
80     #ifndef UINT16_MAX
81     #define UINT16_MAX (65535U)
82     #endif
83     #ifndef UINT32_MAX
84     #define UINT32_MAX (4294967295U)
85     #endif
86    
87     #endif /* ! FLEXINT_H */
88    
89     #ifdef __cplusplus
90    
91     /* The "const" storage-class-modifier is valid. */
92     #define YY_USE_CONST
93    
94     #else /* ! __cplusplus */
95    
96     #if __STDC__
97    
98     #define YY_USE_CONST
99    
100     #endif /* __STDC__ */
101     #endif /* ! __cplusplus */
102    
103     #ifdef YY_USE_CONST
104     #define yyconst const
105     #else
106     #define yyconst
107     #endif
108    
109     /* Returned upon end-of-file. */
110     #define YY_NULL 0
111    
112     /* Promotes a possibly negative, possibly signed char to an unsigned
113     * integer for use as an array index. If the signed char is negative,
114     * we want to instead treat it as an 8-bit unsigned char, hence the
115     * double cast.
116     */
117     #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
118    
119     /* Enter a start condition. This macro really ought to take a parameter,
120     * but we do it the disgusting crufty way forced on us by the ()-less
121     * definition of BEGIN.
122     */
123     #define BEGIN (yy_start) = 1 + 2 *
124    
125     /* Translate the current start state into a value that can be later handed
126     * to BEGIN to return to the state. The YYSTATE alias is for lex
127     * compatibility.
128     */
129     #define YY_START (((yy_start) - 1) / 2)
130     #define YYSTATE YY_START
131    
132     /* Action number for EOF rule of a given start state. */
133     #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
134    
135     /* Special action meaning "start processing a new file". */
136     #define YY_NEW_FILE zz_restart(zz_in )
137    
138     #define YY_END_OF_BUFFER_CHAR 0
139    
140     /* Size of default input buffer. */
141     #ifndef YY_BUF_SIZE
142     #define YY_BUF_SIZE 16384
143     #endif
144    
145     /* The state buf must be large enough to hold one state per character in the main buffer.
146     */
147     #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
148    
149     #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150     #define YY_TYPEDEF_YY_BUFFER_STATE
151     typedef struct yy_buffer_state *YY_BUFFER_STATE;
152     #endif
153    
154     extern int zz_leng;
155    
156     extern FILE *zz_in, *zz_out;
157    
158     #define EOB_ACT_CONTINUE_SCAN 0
159     #define EOB_ACT_END_OF_FILE 1
160     #define EOB_ACT_LAST_MATCH 2
161    
162     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
163     * access to the local variable yy_act. Since yyless() is a macro, it would break
164     * existing scanners that call yyless() from OUTSIDE zz_lex.
165     * One obvious solution it to make yy_act a global. I tried that, and saw
166     * a 5% performance hit in a non-zz_lineno scanner, because yy_act is
167     * normally declared as a register variable-- so it is not worth it.
168     */
169     #define YY_LESS_LINENO(n) \
170     do { \
171     int yyl;\
172     for ( yyl = n; yyl < zz_leng; ++yyl )\
173     if ( zz_text[yyl] == '\n' )\
174     --zz_lineno;\
175     }while(0)
176    
177     /* Return all but the first "n" matched characters back to the input stream. */
178     #define yyless(n) \
179     do \
180     { \
181     /* Undo effects of setting up zz_text. */ \
182     int yyless_macro_arg = (n); \
183     YY_LESS_LINENO(yyless_macro_arg);\
184     *yy_cp = (yy_hold_char); \
185     YY_RESTORE_YY_MORE_OFFSET \
186     (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
187     YY_DO_BEFORE_ACTION; /* set up zz_text again */ \
188     } \
189     while ( 0 )
190    
191     #define unput(c) yyunput( c, (yytext_ptr) )
192    
193     /* The following is because we cannot portably get our hands on size_t
194     * (without autoconf's help, which isn't available because we want
195     * flex-generated scanners to compile on their own).
196     */
197    
198     #ifndef YY_TYPEDEF_YY_SIZE_T
199     #define YY_TYPEDEF_YY_SIZE_T
200     typedef unsigned int yy_size_t;
201     #endif
202    
203     #ifndef YY_STRUCT_YY_BUFFER_STATE
204     #define YY_STRUCT_YY_BUFFER_STATE
205     struct yy_buffer_state
206     {
207     FILE *yy_input_file;
208    
209     char *yy_ch_buf; /* input buffer */
210     char *yy_buf_pos; /* current position in input buffer */
211    
212     /* Size of input buffer in bytes, not including room for EOB
213     * characters.
214     */
215     yy_size_t yy_buf_size;
216    
217     /* Number of characters read into yy_ch_buf, not including EOB
218     * characters.
219     */
220     int yy_n_chars;
221    
222     /* Whether we "own" the buffer - i.e., we know we created it,
223     * and can realloc() it to grow it, and should free() it to
224     * delete it.
225     */
226     int yy_is_our_buffer;
227    
228     /* Whether this is an "interactive" input source; if so, and
229     * if we're using stdio for input, then we want to use getc()
230     * instead of fread(), to make sure we stop fetching input after
231     * each newline.
232     */
233     int yy_is_interactive;
234    
235     /* Whether we're considered to be at the beginning of a line.
236     * If so, '^' rules will be active on the next match, otherwise
237     * not.
238     */
239     int yy_at_bol;
240    
241     int yy_bs_lineno; /**< The line count. */
242     int yy_bs_column; /**< The column count. */
243    
244     /* Whether to try to fill the input buffer when we reach the
245     * end of it.
246     */
247     int yy_fill_buffer;
248    
249     int yy_buffer_status;
250    
251     #define YY_BUFFER_NEW 0
252     #define YY_BUFFER_NORMAL 1
253     /* When an EOF's been seen but there's still some text to process
254     * then we mark the buffer as YY_EOF_PENDING, to indicate that we
255     * shouldn't try reading from the input source any more. We might
256     * still have a bunch of tokens to match, though, because of
257     * possible backing-up.
258     *
259     * When we actually see the EOF, we change the status to "new"
260     * (via zz_restart()), so that the user can continue scanning by
261     * just pointing zz_in at a new input file.
262     */
263     #define YY_BUFFER_EOF_PENDING 2
264    
265     };
266     #endif /* !YY_STRUCT_YY_BUFFER_STATE */
267    
268     /* Stack of input buffers. */
269     static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
270     static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
271     static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
272    
273     /* We provide macros for accessing buffer states in case in the
274     * future we want to put the buffer states in a more general
275     * "scanner state".
276     *
277     * Returns the top of the stack, or NULL.
278     */
279     #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
280     ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
281     : NULL)
282    
283     /* Same as previous macro, but useful when we know that the buffer stack is not
284     * NULL or when we need an lvalue. For internal use only.
285     */
286     #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
287    
288     /* yy_hold_char holds the character lost when zz_text is formed. */
289     static char yy_hold_char;
290     static int yy_n_chars; /* number of characters read into yy_ch_buf */
291     int zz_leng;
292    
293     /* Points to current character in buffer. */
294     static char *yy_c_buf_p = (char *) 0;
295     static int yy_init = 0; /* whether we need to initialize */
296     static int yy_start = 0; /* start state number */
297    
298     /* Flag which is used to allow zz_wrap()'s to do buffer switches
299     * instead of setting up a fresh zz_in. A bit of a hack ...
300     */
301     static int yy_did_buffer_switch_on_eof;
302    
303     void zz_restart (FILE *input_file );
304     void zz__switch_to_buffer (YY_BUFFER_STATE new_buffer );
305     YY_BUFFER_STATE zz__create_buffer (FILE *file,int size );
306     void zz__delete_buffer (YY_BUFFER_STATE b );
307     void zz__flush_buffer (YY_BUFFER_STATE b );
308     void zz_push_buffer_state (YY_BUFFER_STATE new_buffer );
309     void zz_pop_buffer_state (void );
310    
311     static void zz_ensure_buffer_stack (void );
312     static void zz__load_buffer_state (void );
313     static void zz__init_buffer (YY_BUFFER_STATE b,FILE *file );
314    
315     #define YY_FLUSH_BUFFER zz__flush_buffer(YY_CURRENT_BUFFER )
316    
317     YY_BUFFER_STATE zz__scan_buffer (char *base,yy_size_t size );
318     YY_BUFFER_STATE zz__scan_string (yyconst char *yy_str );
319     YY_BUFFER_STATE zz__scan_bytes (yyconst char *bytes,int len );
320    
321     void *zz_alloc (yy_size_t );
322     void *zz_realloc (void *,yy_size_t );
323     void zz_free (void * );
324    
325     #define yy_new_buffer zz__create_buffer
326    
327     #define yy_set_interactive(is_interactive) \
328     { \
329     if ( ! YY_CURRENT_BUFFER ){ \
330     zz_ensure_buffer_stack (); \
331     YY_CURRENT_BUFFER_LVALUE = \
332     zz__create_buffer(zz_in,YY_BUF_SIZE ); \
333     } \
334     YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
335     }
336    
337     #define yy_set_bol(at_bol) \
338     { \
339     if ( ! YY_CURRENT_BUFFER ){\
340     zz_ensure_buffer_stack (); \
341     YY_CURRENT_BUFFER_LVALUE = \
342     zz__create_buffer(zz_in,YY_BUF_SIZE ); \
343     } \
344     YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
345     }
346    
347     #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
348    
349     /* Begin user sect3 */
350    
351     typedef unsigned char YY_CHAR;
352    
353     FILE *zz_in = (FILE *) 0, *zz_out = (FILE *) 0;
354    
355     typedef int yy_state_type;
356    
357     #define YY_FLEX_LEX_COMPAT
358     extern int zz_lineno;
359    
360     int zz_lineno = 1;
361    
362     extern char zz_text[];
363    
364     static yy_state_type yy_get_previous_state (void );
365     static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
366     static int yy_get_next_buffer (void );
367     static void yy_fatal_error (yyconst char msg[] );
368    
369     /* Done after the current pattern has been matched and before the
370     * corresponding action - sets up zz_text.
371     */
372     #define YY_DO_BEFORE_ACTION \
373     (yytext_ptr) = yy_bp; \
374     zz_leng = (size_t) (yy_cp - yy_bp); \
375     (yy_hold_char) = *yy_cp; \
376     *yy_cp = '\0'; \
377     if ( zz_leng + (yy_more_offset) >= YYLMAX ) \
378     YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
379     yy_flex_strncpy( &zz_text[(yy_more_offset)], (yytext_ptr), zz_leng + 1 ); \
380     zz_leng += (yy_more_offset); \
381     (yy_prev_more_offset) = (yy_more_offset); \
382     (yy_more_offset) = 0; \
383     (yy_c_buf_p) = yy_cp;
384    
385     #define YY_NUM_RULES 149
386     #define YY_END_OF_BUFFER 150
387     /* This struct is not used in this scanner,
388     but its presence is necessary. */
389     struct yy_trans_info
390     {
391     flex_int32_t yy_verify;
392     flex_int32_t yy_nxt;
393     };
394     static yyconst flex_int16_t yy_acclist[695] =
395     { 0,
396     146, 146, 118, 118, 140, 140, 131, 131, 150, 148,
397     149, 146, 148, 149, 147, 149, 148, 149, 127, 148,
398     149, 124, 148, 149, 19, 148, 149, 20, 148, 149,
399     23, 148, 149, 21, 148, 149, 13, 148, 149, 22,
400     148, 149, 14, 148, 149, 24, 148, 149, 142, 148,
401     149,16527, 16, 148, 149, 15, 148, 149, 12, 148,
402     149, 10, 148, 149, 11, 148, 149, 145, 148, 149,
403     145, 148, 149, 145, 148, 149, 145, 148, 149, 145,
404     148, 149, 145, 148, 149, 145, 148, 149, 145, 148,
405     149, 145, 148, 149, 145, 148, 149, 145, 148, 149,
406    
407     145, 148, 149, 145, 148, 149, 145, 148, 149, 145,
408     148, 149, 145, 148, 149, 145, 148, 149, 145, 148,
409     149, 145, 148, 149, 17, 148, 149, 18, 148, 149,
410     25, 148, 149, 134, 148, 149, 26, 148, 149, 118,
411     149, 119, 149, 120, 149, 122, 149, 149, 126, 149,
412     125, 149, 140, 149, 141, 149, 149, 137, 149, 139,
413     149, 131, 149, 132, 149, 130, 149, 149, 146, 147,
414     9, 114, 4, 144, 144, 142,16527, 5, 6, 1,
415     3, 8, 2, 145, 145, 145, 145, 145, 145, 145,
416     145, 145, 145, 145, 145, 145, 145, 145, 145, 51,
417    
418     145, 145, 145, 145, 145, 145, 145, 145, 145, 64,
419     145, 145, 66, 145, 145, 145, 145, 145, 145, 145,
420     81, 145, 82, 145, 145, 145, 145, 145, 145, 145,
421     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
422     145, 145, 133, 118, 119, 120, 121, 120, 115, 122,
423     123, 117, 122, 126, 125, 140, 141, 139, 135, 136,
424     137, 138, 131, 132, 130, 128, 129, 8335, 144, 144,
425     7, 27, 145, 145, 29, 145, 30, 145, 145, 145,
426     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
427     145, 145, 145, 145, 145, 53, 145, 145, 145, 145,
428    
429     58, 145, 60, 145, 145, 145, 145, 145, 145, 145,
430     145, 145, 145, 145, 145, 145, 79, 145, 145, 145,
431     145, 145, 145, 145, 145, 91, 145, 145, 145, 145,
432     145, 145, 95, 145, 145, 145, 145, 145, 104, 145,
433     145, 145, 145, 145, 145, 115, 116, 144, 145, 145,
434     145, 145, 34, 145, 145, 36, 145, 37, 145, 38,
435     145, 145, 145, 145, 145, 145, 145, 45, 145, 145,
436     145, 145, 145, 52, 145, 145, 145, 145, 145, 59,
437     145, 61, 145, 145, 145, 145, 145, 145, 70, 145,
438     145, 145, 145, 145, 145, 145, 145, 145, 145, 85,
439    
440     145, 145, 145, 145, 145, 145, 145, 145, 96, 145,
441     98, 145, 145, 145, 99, 145, 100, 145, 145, 145,
442     145, 145, 106, 145, 145, 145, 145, 112, 145, 145,
443     145, 145, 33, 145, 145, 35, 145, 39, 145, 145,
444     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
445     145, 56, 145, 145, 145, 145, 68, 145, 145, 145,
446     145, 145, 145, 145, 145, 78, 145, 80, 145, 145,
447     145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
448     101, 145, 102, 145, 145, 105, 145, 107, 145, 108,
449     145, 145, 145, 145, 145, 145, 63, 145, 40, 145,
450    
451     145, 145, 145, 44, 145, 145, 145, 145, 145, 54,
452     145, 145, 145, 62, 145, 65, 145, 145, 145, 145,
453     145, 145, 145, 75, 145, 145, 145, 84, 145, 145,
454     145, 145, 145, 90, 145, 145, 93, 145, 145, 97,
455     145, 145, 145, 145, 145, 28, 145, 145, 145, 145,
456     145, 145, 145, 47, 145, 145, 145, 145, 145, 145,
457     145, 145, 145, 145, 145, 76, 145, 145, 145, 86,
458     145, 87, 145, 88, 145, 89, 145, 145, 145, 145,
459     109, 145, 145, 145, 145, 145, 145, 42, 145, 43,
460     145, 145, 145, 145, 55, 145, 145, 145, 145, 145,
461    
462     72, 145, 145, 74, 145, 77, 145, 145, 145, 145,
463     145, 145, 145, 145, 31, 145, 145, 145, 145, 145,
464     49, 145, 145, 145, 145, 145, 145, 83, 145, 92,
465     145, 94, 145, 103, 145, 145, 145, 145, 145, 145,
466     46, 145, 48, 145, 145, 145, 67, 145, 145, 145,
467     145, 145, 145, 113, 145, 145, 41, 145, 145, 145,
468     145, 145, 73, 145, 145, 145, 32, 145, 145, 57,
469     145, 69, 145, 145, 145, 145, 50, 145, 71, 145,
470     145, 145, 145, 145, 145, 145, 110, 145, 145, 145,
471     145, 145, 111, 145
472    
473     } ;
474    
475     static yyconst flex_int16_t yy_accept[521] =
476     { 0,
477     1, 2, 3, 4, 5, 5, 5, 6, 7, 8,
478     9, 10, 12, 15, 17, 19, 22, 25, 28, 31,
479     34, 37, 40, 43, 46, 49, 53, 56, 59, 62,
480     65, 68, 71, 74, 77, 80, 83, 86, 89, 92,
481     95, 98, 101, 104, 107, 110, 113, 116, 119, 122,
482     125, 128, 131, 134, 137, 140, 142, 144, 146, 148,
483     149, 151, 153, 155, 157, 158, 160, 162, 164, 166,
484     168, 169, 170, 171, 172, 173, 174, 175, 176, 178,
485     178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
486     188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
487    
488     198, 199, 200, 202, 203, 204, 205, 206, 207, 208,
489     209, 210, 212, 213, 215, 216, 217, 218, 219, 220,
490     221, 223, 225, 226, 227, 228, 229, 230, 231, 232,
491     233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
492     243, 243, 244, 245, 246, 246, 247, 248, 249, 250,
493     251, 252, 253, 254, 254, 255, 256, 257, 258, 258,
494     259, 260, 261, 262, 263, 264, 265, 266, 266, 267,
495     268, 268, 269, 270, 270, 271, 272, 274, 275, 277,
496     279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
497     289, 290, 291, 292, 293, 294, 295, 296, 298, 299,
498    
499     300, 301, 303, 305, 306, 307, 308, 309, 310, 311,
500     312, 313, 314, 315, 316, 317, 319, 320, 321, 322,
501     323, 324, 325, 326, 328, 329, 330, 331, 332, 333,
502     335, 336, 337, 338, 339, 341, 342, 343, 344, 345,
503     346, 347, 348, 348, 349, 350, 351, 352, 353, 355,
504     356, 358, 360, 362, 363, 364, 365, 366, 367, 368,
505     370, 371, 372, 373, 374, 376, 377, 378, 379, 380,
506     382, 384, 385, 386, 387, 388, 389, 391, 392, 393,
507     394, 395, 396, 397, 398, 399, 400, 402, 403, 404,
508     405, 406, 407, 408, 409, 411, 413, 414, 415, 417,
509    
510     419, 420, 421, 422, 423, 425, 426, 427, 428, 430,
511     431, 432, 433, 435, 436, 438, 440, 441, 442, 443,
512     444, 445, 446, 447, 448, 449, 450, 451, 452, 454,
513     455, 456, 457, 459, 460, 461, 462, 463, 464, 465,
514     466, 468, 470, 471, 472, 473, 474, 475, 476, 477,
515     478, 479, 480, 481, 483, 485, 486, 488, 490, 492,
516     493, 494, 495, 496, 497, 499, 501, 502, 503, 504,
517     506, 507, 508, 509, 510, 512, 513, 514, 516, 518,
518     519, 520, 521, 522, 523, 524, 526, 527, 528, 530,
519     531, 532, 533, 534, 536, 537, 539, 540, 542, 543,
520    
521     544, 545, 546, 548, 549, 550, 551, 552, 553, 554,
522     556, 557, 558, 559, 560, 561, 562, 563, 564, 565,
523     566, 568, 569, 570, 572, 574, 576, 578, 579, 580,
524     581, 583, 584, 585, 586, 587, 588, 590, 592, 593,
525     594, 595, 597, 598, 599, 600, 601, 603, 604, 606,
526     608, 609, 610, 611, 612, 613, 614, 615, 617, 618,
527     619, 620, 621, 623, 624, 625, 626, 627, 628, 630,
528     632, 634, 636, 637, 638, 639, 640, 641, 643, 645,
529     646, 647, 649, 650, 651, 652, 653, 654, 656, 657,
530     659, 660, 661, 662, 663, 665, 666, 667, 669, 670,
531    
532     672, 674, 675, 676, 677, 679, 681, 682, 683, 684,
533     685, 686, 687, 689, 690, 691, 692, 693, 695, 695
534     } ;
535    
536     static yyconst flex_int32_t yy_ec[256] =
537     { 0,
538     1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
539     2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
540     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
541     1, 2, 4, 5, 1, 1, 1, 1, 6, 7,
542     8, 9, 10, 11, 12, 13, 14, 15, 15, 15,
543     15, 15, 15, 15, 15, 15, 15, 16, 17, 18,
544     19, 20, 1, 1, 21, 22, 23, 24, 25, 26,
545     27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
546     37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
547     47, 48, 49, 50, 51, 1, 30, 30, 30, 30,
548    
549     52, 30, 30, 30, 30, 30, 30, 30, 30, 30,
550     30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
551     30, 30, 53, 54, 55, 1, 1, 1, 1, 1,
552     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
556     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559    
560     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
561     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
562     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
564     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565     1, 1, 1, 1, 1
566     } ;
567    
568     static yyconst flex_int32_t yy_meta[56] =
569     { 0,
570     1, 1, 1, 1, 1, 1, 2, 1, 3, 1,
571     1, 1, 1, 1, 4, 1, 1, 1, 1, 1,
572     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
573     4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
574     4, 4, 4, 4, 4, 4, 1, 5, 1, 1,
575     4, 4, 6, 1, 5
576     } ;
577    
578     static yyconst flex_int16_t yy_base[535] =
579     { 0,
580     0, 0, 53, 54, 61, 62, 55, 56, 66, 67,
581     1054, 1055, 71, 1055, 1034, 1055, 1055, 1043, 1055, 1055,
582     1055, 1055, 1055, 62, 1055, 65, 60, 1055, 62, 1032,
583     1031, 92, 51, 84, 71, 103, 113, 69, 1034, 110,
584     125, 78, 126, 82, 114, 144, 130, 123, 70, 146,
585     1055, 1055, 1055, 85, 1055, 118, 1055, 169, 174, 92,
586     1055, 1055, 150, 1055, 1045, 1044, 1055, 176, 1055, 1055,
587     1043, 168, 1055, 1055, 1055, 1055, 165, 176, 179, 185,
588     1055, 1026, 1055, 1055, 1055, 1055, 1029, 1028, 178, 181,
589     184, 188, 173, 171, 108, 200, 205, 68, 194, 196,
590    
591     199, 201, 1027, 203, 220, 212, 218, 222, 208, 226,
592     228, 1026, 232, 234, 230, 238, 239, 241, 240, 243,
593     1025, 1024, 244, 245, 252, 254, 250, 256, 261, 258,
594     262, 277, 192, 263, 271, 274, 280, 283, 284, 286,
595     304, 1055, 299, 1055, 308, 316, 1055, 321, 1035, 324,
596     1055, 1055, 326, 308, 1055, 1055, 317, 1055, 1034, 1055,
597     1055, 1055, 1033, 1055, 333, 1055, 1055, 1032, 1055, 1055,
598     327, 1055, 306, 1019, 1018, 1055, 1017, 325, 1016, 1015,
599     326, 328, 329, 330, 332, 335, 333, 336, 337, 340,
600     344, 341, 349, 351, 358, 360, 361, 1014, 363, 365,
601    
602     359, 1013, 1012, 367, 378, 141, 379, 380, 356, 381,
603     384, 386, 385, 387, 392, 394, 395, 388, 397, 411,
604     393, 389, 408, 1011, 412, 413, 417, 414, 416, 1010,
605     418, 419, 420, 421, 1009, 428, 432, 433, 436, 431,
606     1020, 1055, 1007, 1006, 437, 439, 440, 442, 1005, 447,
607     1004, 1003, 1002, 452, 449, 458, 456, 459, 460, 1001,
608     466, 462, 467, 471, 1000, 469, 474, 475, 479, 999,
609     998, 478, 480, 482, 483, 487, 997, 491, 494, 493,
610     495, 496, 500, 498, 502, 504, 996, 499, 505, 520,
611     509, 506, 518, 519, 995, 994, 521, 528, 993, 992,
612    
613     531, 532, 533, 534, 991, 535, 537, 538, 539, 541,
614     546, 540, 990, 548, 989, 988, 549, 552, 554, 561,
615     555, 558, 562, 567, 566, 568, 569, 570, 987, 572,
616     571, 576, 986, 578, 583, 584, 585, 587, 591, 592,
617     985, 984, 586, 599, 601, 603, 607, 605, 608, 609,
618     611, 612, 616, 983, 982, 617, 981, 980, 979, 619,
619     618, 622, 621, 623, 978, 977, 625, 630, 631, 976,
620     632, 634, 641, 644, 975, 642, 647, 974, 973, 643,
621     651, 650, 652, 653, 662, 655, 654, 663, 972, 665,
622     669, 670, 671, 971, 672, 970, 674, 969, 673, 682,
623    
624     676, 684, 968, 688, 689, 691, 694, 695, 698, 967,
625     699, 700, 701, 703, 702, 706, 708, 707, 721, 715,
626     966, 723, 710, 965, 964, 963, 962, 728, 724, 729,
627     709, 722, 736, 739, 737, 740, 961, 960, 741, 742,
628     744, 959, 746, 748, 743, 754, 958, 757, 957, 956,
629     755, 770, 750, 756, 751, 752, 758, 955, 771, 772,
630     774, 780, 781, 782, 783, 787, 785, 790, 954, 953,
631     952, 948, 789, 796, 797, 791, 793, 947, 908, 804,
632     805, 896, 792, 806, 811, 813, 815, 868, 816, 867,
633     819, 818, 820, 821, 865, 822, 824, 863, 827, 862,
634    
635     861, 828, 829, 830, 857, 854, 832, 836, 841, 835,
636     837, 833, 307, 840, 844, 852, 856, 247, 1055, 885,
637     891, 897, 903, 90, 909, 915, 921, 927, 933, 938,
638     944, 948, 954, 960
639     } ;
640    
641     static yyconst flex_int16_t yy_def[535] =
642     { 0,
643     519, 1, 520, 520, 521, 521, 522, 522, 523, 523,
644     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
645     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
646     519, 524, 524, 524, 524, 524, 524, 524, 524, 524,
647     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
648     519, 519, 519, 519, 519, 525, 519, 526, 527, 528,
649     519, 519, 529, 519, 530, 531, 519, 532, 519, 519,
650     533, 519, 519, 519, 519, 519, 519, 519, 519, 519,
651     519, 519, 519, 519, 519, 519, 524, 524, 524, 524,
652     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
653    
654     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
655     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
656     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
657     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
658     519, 519, 525, 519, 519, 526, 519, 526, 534, 527,
659     519, 519, 527, 528, 519, 519, 529, 519, 530, 519,
660     519, 519, 531, 519, 532, 519, 519, 533, 519, 519,
661     519, 519, 519, 519, 519, 519, 524, 524, 524, 524,
662     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
663     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
664    
665     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
666     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
667     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
668     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
669     534, 519, 519, 519, 524, 524, 524, 524, 524, 524,
670     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
671     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
672     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
673     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
674     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
675    
676     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
677     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
678     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
679     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
680     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
681     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
682     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
683     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
684     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
685     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
686    
687     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
688     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
689     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
690     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
691     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
692     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
693     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
694     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
695     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
696     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
697    
698     524, 524, 524, 524, 524, 524, 524, 524, 524, 524,
699     524, 524, 524, 524, 524, 524, 524, 524, 0, 519,
700     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
701     519, 519, 519, 519
702     } ;
703    
704     static yyconst flex_int16_t yy_nxt[1111] =
705     { 0,
706     12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
707     22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
708     32, 33, 34, 35, 36, 37, 38, 39, 40, 39,
709     39, 39, 41, 42, 43, 44, 39, 45, 46, 47,
710     48, 49, 50, 39, 39, 39, 51, 12, 52, 53,
711     12, 39, 54, 55, 12, 57, 57, 64, 64, 58,
712     58, 59, 59, 61, 61, 87, 62, 62, 69, 69,
713     70, 70, 72, 73, 76, 81, 77, 78, 82, 79,
714     83, 84, 87, 87, 87, 87, 141, 142, 95, 80,
715     138, 100, 87, 88, 155, 101, 87, 156, 87, 102,
716    
717     111, 191, 65, 65, 96, 103, 87, 66, 66, 67,
718     67, 97, 120, 71, 71, 89, 80, 87, 98, 125,
719     144, 99, 87, 90, 87, 91, 145, 87, 87, 92,
720     93, 94, 185, 107, 104, 112, 105, 87, 126, 87,
721     87, 108, 113, 114, 87, 116, 106, 109, 115, 117,
722     110, 121, 158, 118, 127, 87, 136, 134, 87, 119,
723     87, 137, 272, 122, 128, 123, 124, 135, 129, 72,
724     73, 147, 130, 139, 140, 148, 151, 149, 166, 77,
725     167, 152, 153, 131, 132, 87, 133, 87, 172, 171,
726     173, 78, 87, 79, 174, 87, 174, 159, 87, 175,
727    
728     171, 177, 87, 80, 160, 184, 87, 179, 87, 178,
729     87, 183, 181, 87, 87, 87, 171, 87, 192, 87,
730     231, 194, 87, 168, 195, 182, 87, 171, 180, 189,
731     80, 186, 87, 196, 87, 193, 87, 187, 188, 190,
732     87, 197, 87, 198, 87, 203, 87, 199, 87, 201,
733     204, 200, 87, 87, 87, 87, 208, 87, 87, 87,
734     205, 87, 206, 215, 87, 202, 87, 207, 87, 209,
735     87, 217, 87, 210, 214, 87, 87, 87, 213, 220,
736     211, 212, 216, 224, 218, 87, 219, 232, 87, 221,
737     222, 87, 226, 223, 87, 225, 228, 87, 87, 229,
738    
739     87, 144, 234, 227, 235, 141, 142, 145, 237, 230,
740     155, 233, 238, 156, 236, 152, 145, 239, 147, 158,
741     173, 87, 519, 147, 519, 240, 151, 148, 151, 519,
742     171, 519, 519, 152, 153, 166, 243, 167, 243, 87,
743     87, 244, 87, 87, 87, 245, 87, 87, 247, 87,
744     87, 87, 250, 248, 87, 87, 252, 171, 87, 254,
745     253, 259, 249, 87, 159, 87, 251, 256, 255, 260,
746     87, 160, 87, 87, 87, 87, 246, 87, 262, 87,
747     168, 87, 257, 258, 264, 265, 263, 266, 261, 267,
748     268, 270, 87, 87, 87, 87, 275, 269, 87, 87,
749    
750     87, 87, 87, 87, 277, 276, 87, 87, 87, 87,
751     271, 87, 281, 273, 279, 282, 283, 274, 284, 285,
752     287, 278, 87, 286, 290, 87, 87, 87, 87, 291,
753     87, 87, 87, 87, 87, 87, 280, 294, 288, 289,
754     293, 295, 87, 297, 300, 87, 87, 87, 292, 296,
755     87, 87, 299, 87, 87, 301, 87, 298, 309, 311,
756     302, 87, 303, 87, 307, 305, 87, 308, 304, 306,
757     87, 317, 87, 87, 87, 310, 87, 315, 312, 314,
758     87, 87, 316, 87, 313, 87, 318, 320, 87, 87,
759     322, 326, 87, 87, 87, 319, 87, 87, 330, 321,
760    
761     324, 87, 323, 329, 325, 87, 332, 87, 87, 87,
762     87, 327, 87, 87, 87, 335, 87, 331, 87, 87,
763     87, 337, 333, 87, 334, 328, 336, 345, 340, 339,
764     338, 341, 87, 87, 87, 87, 342, 348, 346, 343,
765     347, 351, 87, 349, 344, 87, 87, 87, 87, 87,
766     353, 87, 87, 87, 87, 87, 350, 356, 357, 358,
767     87, 359, 87, 87, 354, 362, 87, 364, 87, 87,
768     355, 352, 87, 366, 368, 87, 87, 363, 371, 370,
769     87, 87, 87, 87, 87, 87, 87, 365, 360, 361,
770     87, 367, 87, 372, 369, 373, 380, 87, 87, 87,
771    
772     87, 87, 376, 378, 374, 87, 87, 375, 382, 377,
773     379, 385, 383, 87, 386, 87, 381, 87, 384, 87,
774     387, 87, 87, 87, 390, 87, 87, 391, 388, 392,
775     87, 87, 87, 87, 395, 87, 87, 87, 389, 87,
776     400, 394, 393, 398, 87, 87, 87, 405, 87, 404,
777     396, 397, 401, 406, 399, 87, 87, 87, 87, 402,
778     403, 87, 413, 407, 87, 87, 87, 87, 87, 87,
779     409, 408, 412, 410, 414, 416, 87, 87, 417, 87,
780     411, 415, 420, 87, 87, 87, 87, 87, 87, 424,
781     87, 423, 419, 421, 426, 427, 87, 418, 87, 422,
782    
783     428, 429, 87, 87, 433, 87, 431, 425, 87, 87,
784     432, 430, 87, 87, 87, 87, 87, 87, 434, 438,
785     87, 87, 87, 87, 87, 436, 439, 440, 445, 87,
786     444, 447, 442, 437, 441, 87, 87, 87, 87, 435,
787     443, 446, 87, 87, 453, 448, 449, 450, 451, 454,
788     87, 87, 452, 87, 87, 87, 87, 87, 87, 455,
789     87, 456, 87, 458, 87, 87, 87, 457, 87, 87,
790     87, 87, 87, 460, 461, 459, 462, 463, 467, 469,
791     464, 465, 466, 468, 87, 87, 87, 472, 87, 471,
792     473, 476, 477, 470, 87, 87, 87, 87, 475, 87,
793    
794     478, 87, 474, 87, 87, 87, 87, 87, 484, 482,
795     87, 87, 480, 479, 485, 483, 486, 487, 87, 87,
796     87, 488, 481, 489, 490, 87, 493, 87, 491, 87,
797     87, 492, 87, 87, 87, 87, 87, 496, 87, 497,
798     498, 87, 87, 87, 87, 500, 87, 87, 495, 87,
799     87, 87, 509, 501, 87, 87, 494, 499, 87, 512,
800     502, 513, 506, 510, 516, 505, 87, 507, 87, 508,
801     87, 87, 503, 511, 504, 87, 87, 87, 515, 87,
802     518, 87, 87, 514, 517, 56, 56, 56, 56, 56,
803     56, 60, 60, 60, 60, 60, 60, 63, 63, 63,
804    
805     63, 63, 63, 68, 68, 68, 68, 68, 68, 143,
806     87, 143, 143, 143, 143, 146, 146, 146, 146, 146,
807     146, 150, 87, 150, 150, 150, 150, 154, 154, 154,
808     154, 154, 154, 157, 157, 157, 157, 157, 161, 161,
809     161, 161, 161, 161, 163, 163, 163, 163, 165, 165,
810     165, 165, 165, 165, 169, 169, 169, 169, 169, 169,
811     241, 87, 87, 241, 241, 241, 87, 87, 87, 87,
812     87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
813     87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
814     87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
815    
816     87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
817     87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
818     244, 244, 242, 87, 87, 87, 87, 87, 87, 87,
819     87, 87, 175, 175, 170, 164, 162, 242, 87, 87,
820     87, 87, 87, 87, 176, 170, 164, 162, 87, 86,
821     85, 75, 74, 519, 11, 519, 519, 519, 519, 519,
822     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
823     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
824     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
825     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
826    
827     519, 519, 519, 519, 519, 519, 519, 519, 519, 519
828     } ;
829    
830     static yyconst flex_int16_t yy_chk[1111] =
831     { 0,
832     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
833     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
834     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
835     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
836     1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
837     1, 1, 1, 1, 1, 3, 4, 7, 8, 3,
838     4, 3, 4, 5, 6, 33, 5, 6, 9, 10,
839     9, 10, 13, 13, 24, 27, 24, 26, 27, 26,
840     29, 29, 98, 38, 49, 35, 54, 54, 33, 26,
841     49, 35, 42, 524, 60, 35, 44, 60, 34, 35,
842    
843     38, 98, 7, 8, 34, 35, 32, 7, 8, 7,
844     8, 34, 42, 9, 10, 32, 26, 36, 34, 44,
845     56, 34, 95, 32, 40, 32, 56, 37, 45, 32,
846     32, 32, 95, 37, 36, 40, 36, 48, 45, 41,
847     43, 37, 40, 40, 47, 41, 36, 37, 40, 41,
848     37, 43, 63, 41, 45, 206, 48, 47, 46, 41,
849     50, 48, 206, 43, 46, 43, 43, 47, 46, 72,
850     72, 58, 46, 50, 50, 58, 59, 58, 68, 77,
851     68, 59, 59, 46, 46, 94, 46, 93, 78, 77,
852     78, 79, 89, 79, 80, 90, 80, 63, 91, 80,
853    
854     78, 89, 92, 79, 63, 94, 133, 91, 99, 90,
855     100, 93, 92, 101, 96, 102, 77, 104, 99, 97,
856     133, 101, 109, 68, 101, 92, 106, 78, 91, 97,
857     79, 96, 107, 102, 105, 100, 108, 96, 96, 97,
858     110, 104, 111, 105, 115, 109, 113, 106, 114, 107,
859     110, 106, 116, 117, 119, 118, 114, 120, 123, 124,
860     110, 518, 111, 119, 127, 108, 125, 113, 126, 114,
861     128, 123, 130, 114, 118, 129, 131, 134, 117, 126,
862     115, 116, 120, 127, 124, 135, 125, 134, 136, 126,
863     126, 132, 129, 126, 137, 128, 131, 138, 139, 132,
864    
865     140, 143, 136, 130, 137, 141, 141, 143, 139, 132,
866     154, 135, 139, 154, 138, 145, 145, 140, 146, 157,
867     173, 513, 146, 148, 146, 140, 150, 148, 153, 148,
868     173, 150, 150, 153, 153, 165, 171, 165, 171, 178,
869     181, 171, 182, 183, 184, 178, 185, 187, 182, 186,
870     188, 189, 185, 183, 190, 192, 187, 173, 191, 189,
871     188, 192, 184, 193, 157, 194, 186, 191, 190, 193,
872     209, 157, 195, 201, 196, 197, 181, 199, 195, 200,
873     165, 204, 191, 191, 196, 197, 195, 199, 194, 200,
874     201, 204, 205, 207, 208, 210, 209, 201, 211, 213,
875    
876     212, 214, 218, 222, 211, 210, 215, 221, 216, 217,
877     205, 219, 213, 207, 212, 214, 215, 208, 216, 217,
878     219, 211, 223, 218, 221, 220, 225, 226, 228, 222,
879     229, 227, 231, 232, 233, 234, 212, 226, 219, 220,
880     225, 227, 236, 229, 233, 240, 237, 238, 223, 228,
881     239, 245, 232, 246, 247, 234, 248, 231, 240, 246,
882     234, 250, 234, 255, 238, 237, 254, 239, 236, 237,
883     257, 255, 256, 258, 259, 245, 262, 250, 246, 248,
884     261, 263, 254, 266, 247, 264, 256, 258, 267, 268,
885     261, 266, 272, 269, 273, 257, 274, 275, 272, 259,
886    
887     263, 276, 262, 269, 264, 278, 274, 280, 279, 281,
888     282, 267, 284, 288, 283, 278, 285, 273, 286, 289,
889     292, 280, 275, 291, 276, 268, 279, 288, 282, 281,
890     280, 283, 293, 294, 290, 297, 284, 291, 289, 285,
891     290, 294, 298, 292, 286, 301, 302, 303, 304, 306,
892     298, 307, 308, 309, 312, 310, 293, 303, 304, 306,
893     311, 307, 314, 317, 301, 310, 318, 312, 319, 321,
894     302, 297, 322, 317, 319, 320, 323, 311, 322, 321,
895     325, 324, 326, 327, 328, 331, 330, 314, 308, 309,
896     332, 318, 334, 323, 320, 324, 332, 335, 336, 337,
897    
898     343, 338, 327, 330, 325, 339, 340, 326, 335, 328,
899     331, 338, 336, 344, 339, 345, 334, 346, 337, 348,
900     340, 347, 349, 350, 345, 351, 352, 346, 343, 347,
901     353, 356, 361, 360, 350, 363, 362, 364, 344, 367,
902     360, 349, 348, 353, 368, 369, 371, 364, 372, 363,
903     351, 352, 360, 367, 356, 373, 376, 380, 374, 361,
904     362, 377, 376, 368, 382, 381, 383, 384, 387, 386,
905     371, 369, 374, 372, 377, 381, 385, 388, 382, 390,
906     373, 380, 385, 391, 392, 393, 395, 399, 397, 390,
907     401, 388, 384, 386, 392, 393, 400, 383, 402, 387,
908    
909     395, 397, 404, 405, 402, 406, 400, 391, 407, 408,
910     401, 399, 409, 411, 412, 413, 415, 414, 404, 408,
911     416, 418, 417, 431, 423, 406, 409, 411, 416, 420,
912     415, 418, 413, 407, 412, 419, 432, 422, 429, 405,
913     414, 417, 428, 430, 429, 419, 420, 422, 423, 430,
914     433, 435, 428, 434, 436, 439, 440, 445, 441, 431,
915     443, 432, 444, 434, 453, 455, 456, 433, 446, 451,
916     454, 448, 457, 436, 439, 435, 440, 441, 446, 451,
917     443, 444, 445, 448, 452, 459, 460, 454, 461, 453,
918     455, 459, 460, 452, 462, 463, 464, 465, 457, 467,
919    
920     461, 466, 456, 473, 468, 476, 483, 477, 467, 465,
921     474, 475, 463, 462, 468, 466, 473, 474, 480, 481,
922     484, 475, 464, 476, 477, 485, 483, 486, 480, 487,
923     489, 481, 492, 491, 493, 494, 496, 486, 497, 487,
924     489, 499, 502, 503, 504, 492, 507, 512, 485, 510,
925     508, 511, 507, 493, 514, 509, 484, 491, 515, 510,
926     494, 511, 502, 508, 515, 499, 516, 503, 506, 504,
927     517, 505, 496, 509, 497, 501, 500, 498, 514, 495,
928     517, 490, 488, 512, 516, 520, 520, 520, 520, 520,
929     520, 521, 521, 521, 521, 521, 521, 522, 522, 522,
930    
931     522, 522, 522, 523, 523, 523, 523, 523, 523, 525,
932     482, 525, 525, 525, 525, 526, 526, 526, 526, 526,
933     526, 527, 479, 527, 527, 527, 527, 528, 528, 528,
934     528, 528, 528, 529, 529, 529, 529, 529, 530, 530,
935     530, 530, 530, 530, 531, 531, 531, 531, 532, 532,
936     532, 532, 532, 532, 533, 533, 533, 533, 533, 533,
937     534, 478, 472, 534, 534, 534, 471, 470, 469, 458,
938     450, 449, 447, 442, 438, 437, 427, 426, 425, 424,
939     421, 410, 403, 398, 396, 394, 389, 379, 378, 375,
940     370, 366, 365, 359, 358, 357, 355, 354, 342, 341,
941    
942     333, 329, 316, 315, 313, 305, 300, 299, 296, 295,
943     287, 277, 271, 270, 265, 260, 253, 252, 251, 249,
944     244, 243, 241, 235, 230, 224, 203, 202, 198, 180,
945     179, 177, 175, 174, 168, 163, 159, 149, 122, 121,
946     112, 103, 88, 87, 82, 71, 66, 65, 39, 31,
947     30, 18, 15, 11, 519, 519, 519, 519, 519, 519,
948     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
949     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
950     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
951     519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
952    
953     519, 519, 519, 519, 519, 519, 519, 519, 519, 519
954     } ;
955    
956     /* Table of booleans, true if rule could match eol. */
957     static yyconst flex_int32_t yy_rule_can_match_eol[150] =
958     { 0,
959     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
960     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
961     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
962     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
963     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
964     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
965     0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0,
966     0, 1, 0, 0, 0, 0, 0, 1, 0, 0, };
967    
968     extern int zz__flex_debug;
969     int zz__flex_debug = 0;
970    
971     static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
972     static char *yy_full_match;
973     static int yy_lp;
974     static int yy_looking_for_trail_begin = 0;
975     static int yy_full_lp;
976     static int *yy_full_state;
977     #define YY_TRAILING_MASK 0x2000
978     #define YY_TRAILING_HEAD_MASK 0x4000
979     #define REJECT \
980     { \
981     *yy_cp = (yy_hold_char); /* undo effects of setting up zz_text */ \
982     yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
983     (yy_lp) = yy_full_lp; /* restore orig. accepting pos. */ \
984     (yy_state_ptr) = yy_full_state; /* restore orig. state */ \
985     yy_current_state = *(yy_state_ptr); /* restore curr. state */ \
986     ++(yy_lp); \
987     goto find_rule; \
988     }
989    
990     static int yy_more_offset = 0;
991     static int yy_prev_more_offset = 0;
992     #define yymore() ((yy_more_offset) = yy_flex_strlen( zz_text ))
993     #define YY_NEED_STRLEN
994     #define YY_MORE_ADJ 0
995     #define YY_RESTORE_YY_MORE_OFFSET \
996     { \
997     (yy_more_offset) = (yy_prev_more_offset); \
998     zz_leng -= (yy_more_offset); \
999     }
1000     #ifndef YYLMAX
1001     #define YYLMAX 8192
1002     #endif
1003    
1004     char zz_text[YYLMAX];
1005     char *yytext_ptr;
1006     #line 1 "base/generic/compiler/scanner.l"
1007     #line 2 "base/generic/compiler/scanner.l"
1008     /* ASCEND modelling environment
1009     Copyright (C) 1990, 1993, 1994 Thomas Guthrie Epperly
1010     Copyright (C) 2006 Carnegie Mellon University
1011    
1012     This program is free software; you can redistribute it and/or modify
1013     it under the terms of the GNU General Public License as published by
1014     the Free Software Foundation; either version 2, or (at your option)
1015     any later version.
1016    
1017     This program is distributed in the hope that it will be useful,
1018     but WITHOUT ANY WARRANTY; without even the implied warranty of
1019     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1020     GNU General Public License for more details.
1021    
1022     You should have received a copy of the GNU General Public License
1023     along with this program; if not, write to the Free Software
1024     Foundation, Inc., 59 Temple Place - Suite 330,
1025     Boston, MA 02111-1307, USA.
1026     *//** @file
1027     ASCEND lexer
1028    
1029     This module is the input file for Flex (Lexical Analyzer
1030     Generator). Its goal is to convert a stream of characters into a
1031     stream of tokens. It has been defined to be consistent with the
1032     routines required by the common compiler-compiler yacc.
1033     */
1034    
1035     #include <stdio.h>
1036     #include <stdlib.h>
1037     #include <string.h>
1038     #include <math.h>
1039     #include "utilities/ascConfig.h"
1040     #include "utilities/ascMalloc.h"
1041     #include "compiler/compiler.h"
1042     /* everything between here and the next comment is only here */
1043     #include "compiler/fractions.h"
1044     #include "compiler/dimen.h"
1045     #include "compiler/functype.h"
1046     #include "compiler/func.h"
1047     #include "compiler/expr_types.h"
1048     #include "compiler/stattypes.h"
1049     #include "compiler/fractions.h"
1050     #include "compiler/proc.h"
1051     /* because ascParse.h has a nasty union we can't digest without them. */
1052     #include "compiler/ascParse.h"
1053     /* these below we actually need */
1054     #include "general/list.h"
1055     #include "compiler/module.h"
1056     #include "compiler/scanner.h"
1057     #include "compiler/symtab.h"
1058     #include "compiler/parser.h"
1059    
1060     #define YY_BREAK
1061     /* Defining yybreak as above means that all of our matches must end
1062     * in break or return because the normal flex supplied yybreak will
1063     * be preempted by our empty one.
1064     * In cases where matches contain a conditional return, make sure a
1065     * break follows in the failure case.
1066     */
1067    
1068     #define ENDTOK 0
1069     /* Return value when we reach the end of the input.
1070     * This to must be 0 or negative according to yacc
1071     */
1072    
1073     #define MAX_REQUIRE_DEPTH 10
1074     /* The maximum number of REQUIREd file nesting we will accept.
1075     * See RequireStack below.
1076     */
1077    
1078     #define WORKBUF_INIT_SIZE 4095
1079     /* We need a temporary buffer to copy zz_text into before returning
1080     * to the scanner (see g_workbuf below).
1081     * WORKBUF_INIT_SIZE is the initial size of g_workbuf
1082     */
1083    
1084     static unsigned long yy_line = 1;
1085     /* The current line number;
1086     * every match of newline (\n) needs to ++ this variable.
1087     */
1088    
1089     static unsigned long start_line = 0;
1090     /* The ine number where an open-comment, open-brace, or
1091     * open-double-quote occurs. We use this to help in error reporting.
1092     */
1093    
1094     static int CommentNestLevel = 0;
1095     /* Nesting level of (* comments *)
1096     */
1097    
1098     static int BracesNestLevel = 0;
1099     /* Nesting level of {braced} expressions
1100     */
1101    
1102     static int MatchedBackslash = 0;
1103     /* If this variable is positive, we matched a backslash \ in a DoubleQuote
1104     * or BracedText state, and we should call ProcessBackslashes() to
1105     * process them.
1106     */
1107    
1108     static int RequireIndex = 0;
1109     /* The current nesting level of REQUIREd files
1110     */
1111    
1112     static YY_BUFFER_STATE RequireStack[MAX_REQUIRE_DEPTH];
1113     /* The Flex buffers used for the REQUIREd files
1114     */
1115    
1116     static char *g_workbuf = NULL;
1117     /* We need a place to keep doubly-quoted-text and braced-text for passing
1118     * it back to the parser. zz_text will not work since the parser may ask
1119     * the scanner to read another token, at which point the value in zz_text
1120     * gets lost.
1121     *
1122     * The initial size of g_workbuf is WORKBUF_INIT_SIZE, and g_workbuf
1123     * doubles when it needs more space.
1124     *
1125     * A call to CopyIntoWorkBuffer(zz_text,zz_leng) will copy zz_leng characters
1126     * of zz_text into the working buffer.
1127     *
1128     * Note that having a single work buffer will not work if we ever create
1129     * yacc productions that scan multiple chunks of doubly-quoted-text and/or
1130     * braced-text before acting on them.
1131     */
1132    
1133    
1134     /* Forward declaration of functions
1135     * provided at the end of this file.
1136     */
1137     static int Asc_ScannerPopBuffer(void);
1138     static char *CopyIntoWorkBuffer(CONST char *, unsigned long);
1139     static int Process_Backslashes(void);
1140     static void ErrMsg_BracesEOF(void);
1141     static void ErrMsg_CommentEOF(void);
1142     static void ErrMsg_DoubleQuoteEOF(void);
1143     static void ErrMsg_LongID(void);
1144     static void ErrMsg_LongSymbol(void);
1145     static void ErrMsg_SymbolEOF(void);
1146     static void ErrMsg_SymbolEOL(void);
1147     static void ErrMsg_UnexpectedChar(void);
1148    
1149    
1150    
1151    
1152    
1153     #line 1154 "<stdout>"
1154    
1155     #define INITIAL 0
1156     #define Comment 1
1157     #define Symbol 2
1158     #define BracedText 3
1159     #define DoubleQuote 4
1160    
1161     #ifndef YY_NO_UNISTD_H
1162     /* Special case for "unistd.h", since it is non-ANSI. We include it way
1163     * down here because we want the user's section 1 to have been scanned first.
1164     * The user has a chance to override it with an option.
1165     */
1166     #include <unistd.h>
1167     #endif
1168    
1169     #ifndef YY_EXTRA_TYPE
1170     #define YY_EXTRA_TYPE void *
1171     #endif
1172    
1173     static int yy_init_globals (void );
1174    
1175     /* Macros after this point can all be overridden by user definitions in
1176     * section 1.
1177     */
1178    
1179     #ifndef YY_SKIP_YYWRAP
1180     #ifdef __cplusplus
1181     extern "C" int zz_wrap (void );
1182     #else
1183     extern int zz_wrap (void );
1184     #endif
1185     #endif
1186    
1187     static void yyunput (int c,char *buf_ptr );
1188    
1189     #ifndef yytext_ptr
1190     static void yy_flex_strncpy (char *,yyconst char *,int );
1191     #endif
1192    
1193     #ifdef YY_NEED_STRLEN
1194     static int yy_flex_strlen (yyconst char * );
1195     #endif
1196    
1197     #ifndef YY_NO_INPUT
1198    
1199     #ifdef __cplusplus
1200     static int yyinput (void );
1201     #else
1202     static int input (void );
1203     #endif
1204    
1205     #endif
1206    
1207     /* Amount of stuff to slurp up with each read. */
1208     #ifndef YY_READ_BUF_SIZE
1209     #define YY_READ_BUF_SIZE 8192
1210     #endif
1211    
1212     /* Copy whatever the last rule matched to the standard output. */
1213     #ifndef ECHO
1214     /* This used to be an fputs(), but since the string might contain NUL's,
1215     * we now use fwrite().
1216     */
1217     #define ECHO (void) fwrite( zz_text, zz_leng, 1, zz_out )
1218     #endif
1219    
1220     /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1221     * is returned in "result".
1222     */
1223     #ifndef YY_INPUT
1224     #define YY_INPUT(buf,result,max_size) \
1225     if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1226     { \
1227     int c = '*'; \
1228     size_t n; \
1229     for ( n = 0; n < max_size && \
1230     (c = getc( zz_in )) != EOF && c != '\n'; ++n ) \
1231     buf[n] = (char) c; \
1232     if ( c == '\n' ) \
1233     buf[n++] = (char) c; \
1234     if ( c == EOF && ferror( zz_in ) ) \
1235     YY_FATAL_ERROR( "input in flex scanner failed" ); \
1236     result = n; \
1237     } \
1238     else \
1239     { \
1240     errno=0; \
1241     while ( (result = fread(buf, 1, max_size, zz_in))==0 && ferror(zz_in)) \
1242     { \
1243     if( errno != EINTR) \
1244     { \
1245     YY_FATAL_ERROR( "input in flex scanner failed" ); \
1246     break; \
1247     } \
1248     errno=0; \
1249     clearerr(zz_in); \
1250     } \
1251     }\
1252     \
1253    
1254     #endif
1255    
1256     /* No semi-colon after return; correct usage is to write "yyterminate();" -
1257     * we don't want an extra ';' after the "return" because that will cause
1258     * some compilers to complain about unreachable statements.
1259     */
1260     #ifndef yyterminate
1261     #define yyterminate() return YY_NULL
1262     #endif
1263    
1264     /* Number of entries by which start-condition stack grows. */
1265     #ifndef YY_START_STACK_INCR
1266     #define YY_START_STACK_INCR 25
1267     #endif
1268    
1269     /* Report a fatal error. */
1270     #ifndef YY_FATAL_ERROR
1271     #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1272     #endif
1273    
1274     /* end tables serialization structures and prototypes */
1275    
1276     /* Default declaration of generated scanner - a define so the user can
1277     * easily add parameters.
1278     */
1279     #ifndef YY_DECL
1280     #define YY_DECL_IS_OURS 1
1281    
1282     extern int zz_lex (void);
1283    
1284     #define YY_DECL int zz_lex (void)
1285     #endif /* !YY_DECL */
1286    
1287     /* Code executed at the beginning of each rule, after zz_text and zz_leng
1288     * have been set up.
1289     */
1290     #ifndef YY_USER_ACTION
1291     #define YY_USER_ACTION
1292     #endif
1293    
1294     /* Code executed at the end of each rule. */
1295     #ifndef YY_BREAK
1296     #define YY_BREAK break;
1297     #endif
1298    
1299     #define YY_RULE_SETUP \
1300     YY_USER_ACTION
1301    
1302     /** The main scanner function which does all the work.
1303     */
1304     YY_DECL
1305     {
1306     register yy_state_type yy_current_state;
1307     register char *yy_cp, *yy_bp;
1308     register int yy_act;
1309    
1310     #line 159 "base/generic/compiler/scanner.l"
1311    
1312    
1313     #line 1314 "<stdout>"
1314    
1315     if ( !(yy_init) )
1316     {
1317     (yy_init) = 1;
1318    
1319     #ifdef YY_USER_INIT
1320     YY_USER_INIT;
1321     #endif
1322    
1323     /* Create the reject buffer large enough to save one state per allowed character. */
1324     if ( ! (yy_state_buf) )
1325     (yy_state_buf) = (yy_state_type *)zz_alloc(YY_STATE_BUF_SIZE );
1326    
1327     if ( ! (yy_start) )
1328     (yy_start) = 1; /* first start state */
1329    
1330     if ( ! zz_in )
1331     zz_in = stdin;
1332    
1333     if ( ! zz_out )
1334     zz_out = stdout;
1335    
1336     if ( ! YY_CURRENT_BUFFER ) {
1337     zz_ensure_buffer_stack ();
1338     YY_CURRENT_BUFFER_LVALUE =
1339     zz__create_buffer(zz_in,YY_BUF_SIZE );
1340     }
1341    
1342     zz__load_buffer_state( );
1343     }
1344    
1345     while ( 1 ) /* loops until end-of-file is reached */
1346     {
1347     yy_cp = (yy_c_buf_p);
1348    
1349     /* Support of zz_text. */
1350     *yy_cp = (yy_hold_char);
1351    
1352     /* yy_bp points to the position in yy_ch_buf of the start of
1353     * the current run.
1354     */
1355     yy_bp = yy_cp;
1356    
1357     yy_current_state = (yy_start);
1358    
1359     (yy_state_ptr) = (yy_state_buf);
1360     *(yy_state_ptr)++ = yy_current_state;
1361    
1362     yy_match:
1363     do
1364     {
1365     register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1366     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1367     {
1368     yy_current_state = (int) yy_def[yy_current_state];
1369     if ( yy_current_state >= 520 )
1370     yy_c = yy_meta[(unsigned int) yy_c];
1371     }
1372     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1373     *(yy_state_ptr)++ = yy_current_state;
1374     ++yy_cp;
1375     }
1376     while ( yy_base[yy_current_state] != 1055 );
1377    
1378     yy_find_action:
1379     yy_current_state = *--(yy_state_ptr);
1380     (yy_lp) = yy_accept[yy_current_state];
1381     find_rule: /* we branch to this label when backing up */
1382     for ( ; ; ) /* until we find what rule we matched */
1383     {
1384     if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
1385     {
1386     yy_act = yy_acclist[(yy_lp)];
1387     if ( yy_act & YY_TRAILING_HEAD_MASK ||
1388     yy_looking_for_trail_begin )
1389     {
1390     if ( yy_act == yy_looking_for_trail_begin )
1391     {
1392     yy_looking_for_trail_begin = 0;
1393     yy_act &= ~YY_TRAILING_HEAD_MASK;
1394     break;
1395     }
1396     }
1397     else if ( yy_act & YY_TRAILING_MASK )
1398     {
1399     yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
1400     yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
1401     (yy_full_match) = yy_cp;
1402     yy_full_state = (yy_state_ptr);
1403     yy_full_lp = (yy_lp);
1404     }
1405     else
1406     {
1407     (yy_full_match) = yy_cp;
1408     yy_full_state = (yy_state_ptr);
1409     yy_full_lp = (yy_lp);
1410     break;
1411     }
1412     ++(yy_lp);
1413     goto find_rule;
1414     }
1415     --yy_cp;
1416     yy_current_state = *--(yy_state_ptr);
1417     (yy_lp) = yy_accept[yy_current_state];
1418     }
1419    
1420     YY_DO_BEFORE_ACTION;
1421    
1422     if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1423     {
1424     int yyl;
1425     for ( yyl = (yy_prev_more_offset); yyl < zz_leng; ++yyl )
1426     if ( zz_text[yyl] == '\n' )
1427    
1428     zz_lineno++;
1429     ;
1430     }
1431    
1432     do_action: /* This label is used only to access EOF actions. */
1433    
1434     switch ( yy_act )
1435     { /* beginning of action switch */
1436     case 1:
1437     YY_RULE_SETUP
1438     #line 161 "base/generic/compiler/scanner.l"
1439     { return LEQ_TOK; }
1440     YY_BREAK
1441     case 2:
1442     YY_RULE_SETUP
1443     #line 162 "base/generic/compiler/scanner.l"
1444     { return GEQ_TOK; }
1445     YY_BREAK
1446     case 3:
1447     YY_RULE_SETUP
1448     #line 163 "base/generic/compiler/scanner.l"
1449     { return NEQ_TOK; }
1450     YY_BREAK
1451     case 4:
1452     YY_RULE_SETUP
1453     #line 164 "base/generic/compiler/scanner.l"
1454     { return DOTDOT_TOK; }
1455     YY_BREAK
1456     case 5:
1457     YY_RULE_SETUP
1458     #line 165 "base/generic/compiler/scanner.l"
1459     { return DBLCOLON_TOK;}
1460     YY_BREAK
1461     case 6:
1462     YY_RULE_SETUP
1463     #line 166 "base/generic/compiler/scanner.l"
1464     { return ASSIGN_TOK; }
1465     YY_BREAK
1466     case 7:
1467     YY_RULE_SETUP
1468     #line 167 "base/generic/compiler/scanner.l"
1469     { return CASSIGN_TOK; }
1470     YY_BREAK
1471     case 8:
1472     YY_RULE_SETUP
1473     #line 168 "base/generic/compiler/scanner.l"
1474     { return BEQ_TOK ; }
1475     YY_BREAK
1476     case 9:
1477     YY_RULE_SETUP
1478     #line 169 "base/generic/compiler/scanner.l"
1479     { return BNE_TOK ; }
1480     YY_BREAK
1481     case 10:
1482     YY_RULE_SETUP
1483     #line 171 "base/generic/compiler/scanner.l"
1484     { return '=' ;}
1485     YY_BREAK
1486     case 11:
1487     YY_RULE_SETUP
1488     #line 172 "base/generic/compiler/scanner.l"
1489     { return '>' ;}
1490     YY_BREAK
1491     case 12:
1492     YY_RULE_SETUP
1493     #line 173 "base/generic/compiler/scanner.l"
1494     { return '<' ;}
1495     YY_BREAK
1496     case 13:
1497     YY_RULE_SETUP
1498     #line 174 "base/generic/compiler/scanner.l"
1499     { return ',' ;}
1500     YY_BREAK
1501     case 14:
1502     YY_RULE_SETUP
1503     #line 175 "base/generic/compiler/scanner.l"
1504     { return '.' ;}
1505     YY_BREAK
1506     case 15:
1507     YY_RULE_SETUP
1508     #line 176 "base/generic/compiler/scanner.l"
1509     { return ';' ;}
1510     YY_BREAK
1511     case 16:
1512     YY_RULE_SETUP
1513     #line 177 "base/generic/compiler/scanner.l"
1514     { return ':' ;}
1515     YY_BREAK
1516     case 17:
1517     YY_RULE_SETUP
1518     #line 178 "base/generic/compiler/scanner.l"
1519     { return '[' ;}
1520     YY_BREAK
1521     case 18:
1522     YY_RULE_SETUP
1523     #line 179 "base/generic/compiler/scanner.l"
1524     { return ']' ;}
1525     YY_BREAK
1526     case 19:
1527     YY_RULE_SETUP
1528     #line 180 "base/generic/compiler/scanner.l"
1529     { return '(' ;}
1530     YY_BREAK
1531     case 20:
1532     YY_RULE_SETUP
1533     #line 181 "base/generic/compiler/scanner.l"
1534     { return ')' ;}
1535     YY_BREAK
1536     case 21:
1537     YY_RULE_SETUP
1538     #line 182 "base/generic/compiler/scanner.l"
1539     { return '+' ;}
1540     YY_BREAK
1541     case 22:
1542     YY_RULE_SETUP
1543     #line 183 "base/generic/compiler/scanner.l"
1544     { return '-' ;}
1545     YY_BREAK
1546     case 23:
1547     YY_RULE_SETUP
1548     #line 184 "base/generic/compiler/scanner.l"
1549     { return '*' ;}
1550     YY_BREAK
1551     case 24:
1552     YY_RULE_SETUP
1553     #line 185 "base/generic/compiler/scanner.l"
1554     { return '/' ;}
1555     YY_BREAK
1556     case 25:
1557     YY_RULE_SETUP
1558     #line 186 "base/generic/compiler/scanner.l"
1559     { return '^' ;}
1560     YY_BREAK
1561     case 26:
1562     YY_RULE_SETUP
1563     #line 187 "base/generic/compiler/scanner.l"
1564     { return '|' ;}
1565     YY_BREAK
1566     /**** Reserved Keywords ****/
1567     case 27:
1568     YY_RULE_SETUP
1569     #line 191 "base/generic/compiler/scanner.l"
1570     { return ADD_TOK ; }
1571     YY_BREAK
1572     case 28:
1573     YY_RULE_SETUP
1574     #line 192 "base/generic/compiler/scanner.l"
1575     { return ALIASES_TOK ; }
1576     YY_BREAK
1577     case 29:
1578     YY_RULE_SETUP
1579     #line 193 "base/generic/compiler/scanner.l"
1580     { return AND_TOK ; }
1581     YY_BREAK
1582     case 30:
1583     YY_RULE_SETUP
1584     #line 194 "base/generic/compiler/scanner.l"
1585     { return ANY_TOK ; }
1586     YY_BREAK
1587     case 31:
1588     YY_RULE_SETUP
1589     #line 195 "base/generic/compiler/scanner.l"
1590     { return AREALIKE_TOK ; }
1591     YY_BREAK
1592     case 32:
1593     YY_RULE_SETUP
1594     #line 196 "base/generic/compiler/scanner.l"
1595     { return ARETHESAME_TOK ; }
1596     YY_BREAK
1597     case 33:
1598     YY_RULE_SETUP
1599     #line 197 "base/generic/compiler/scanner.l"
1600     { return ARRAY_TOK ; }
1601     YY_BREAK
1602     case 34:
1603     YY_RULE_SETUP
1604     #line 198 "base/generic/compiler/scanner.l"
1605     { return ATOM_TOK ; }
1606     YY_BREAK
1607     case 35:
1608     YY_RULE_SETUP
1609     #line 199 "base/generic/compiler/scanner.l"
1610     { return BREAK_TOK ; }
1611     YY_BREAK
1612     case 36:
1613     YY_RULE_SETUP
1614     #line 200 "base/generic/compiler/scanner.l"
1615     { return CALL_TOK ; }
1616     YY_BREAK
1617     case 37:
1618     YY_RULE_SETUP
1619     #line 201 "base/generic/compiler/scanner.l"
1620     { return CARD_TOK ; }
1621     YY_BREAK
1622     case 38:
1623     YY_RULE_SETUP
1624     #line 202 "base/generic/compiler/scanner.l"
1625     { return CASE_TOK ; }
1626     YY_BREAK
1627     case 39:
1628     YY_RULE_SETUP
1629     #line 203 "base/generic/compiler/scanner.l"
1630     { return CHECK_TOK ; }
1631     YY_BREAK
1632     case 40:
1633     YY_RULE_SETUP
1634     #line 204 "base/generic/compiler/scanner.l"
1635     { return CHOICE_TOK ; }
1636     YY_BREAK
1637     case 41:
1638     YY_RULE_SETUP
1639     #line 205 "base/generic/compiler/scanner.l"
1640     { return CONDITIONAL_TOK ; }
1641     YY_BREAK
1642     case 42:
1643     YY_RULE_SETUP
1644     #line 206 "base/generic/compiler/scanner.l"
1645     { return CONSTANT_TOK ; }
1646     YY_BREAK
1647     case 43:
1648     YY_RULE_SETUP
1649     #line 207 "base/generic/compiler/scanner.l"
1650     { return CONTINUE_TOK ; }
1651     YY_BREAK
1652     case 44:
1653     YY_RULE_SETUP
1654     #line 208 "base/generic/compiler/scanner.l"
1655     { return CREATE_TOK ; }
1656     YY_BREAK
1657     case 45:
1658     YY_RULE_SETUP
1659     #line 209 "base/generic/compiler/scanner.l"
1660     { return DATA_TOK ; }
1661     YY_BREAK
1662     case 46:
1663     YY_RULE_SETUP
1664     #line 210 "base/generic/compiler/scanner.l"
1665     { return DECREASING_TOK ; }
1666     YY_BREAK
1667     case 47:
1668     YY_RULE_SETUP
1669     #line 211 "base/generic/compiler/scanner.l"
1670     { return DEFAULT_TOK ; }
1671     YY_BREAK
1672     case 48:
1673     YY_RULE_SETUP
1674     #line 212 "base/generic/compiler/scanner.l"
1675     { return DEFINITION_TOK ; }
1676     YY_BREAK
1677     case 49:
1678     YY_RULE_SETUP
1679     #line 213 "base/generic/compiler/scanner.l"
1680     { return DIMENSION_TOK ; }
1681     YY_BREAK
1682     case 50:
1683     YY_RULE_SETUP
1684     #line 214 "base/generic/compiler/scanner.l"
1685     { return DIMENSIONLESS_TOK ; }
1686     YY_BREAK
1687     case 51:
1688     YY_RULE_SETUP
1689     #line 215 "base/generic/compiler/scanner.l"
1690     { return DO_TOK ; }
1691     YY_BREAK
1692     case 52:
1693     YY_RULE_SETUP
1694     #line 216 "base/generic/compiler/scanner.l"
1695     { return ELSE_TOK ; }
1696     YY_BREAK
1697     case 53:
1698     YY_RULE_SETUP
1699     #line 217 "base/generic/compiler/scanner.l"
1700     { return END_TOK ; }
1701     YY_BREAK
1702     case 54:
1703     YY_RULE_SETUP
1704     #line 218 "base/generic/compiler/scanner.l"
1705     { return EXPECT_TOK ; }
1706     YY_BREAK
1707     case 55:
1708     YY_RULE_SETUP
1709     #line 219 "base/generic/compiler/scanner.l"
1710     { return EXTERNAL_TOK ; }
1711     YY_BREAK
1712     case 56:
1713     YY_RULE_SETUP
1714     #line 220 "base/generic/compiler/scanner.l"
1715     { return FALSE_TOK ; }
1716     YY_BREAK
1717     case 57:
1718     YY_RULE_SETUP
1719     #line 221 "base/generic/compiler/scanner.l"
1720     { return FALLTHRU_TOK ; }
1721     YY_BREAK
1722     case 58:
1723     YY_RULE_SETUP
1724     #line 222 "base/generic/compiler/scanner.l"
1725     { return FIX_TOK ; }
1726     YY_BREAK
1727     case 59:
1728     YY_RULE_SETUP
1729     #line 223 "base/generic/compiler/scanner.l"
1730     { return FREE_TOK ; }
1731     YY_BREAK
1732     case 60:
1733     YY_RULE_SETUP
1734     #line 224 "base/generic/compiler/scanner.l"
1735     { return FOR_TOK ; }
1736     YY_BREAK
1737     case 61:
1738     YY_RULE_SETUP
1739     #line 225 "base/generic/compiler/scanner.l"
1740     { return FROM_TOK ; }
1741     YY_BREAK
1742     case 62:
1743     YY_RULE_SETUP
1744     #line 226 "base/generic/compiler/scanner.l"
1745     { return GLOBAL_TOK ; }
1746     YY_BREAK
1747     case 63:
1748     YY_RULE_SETUP
1749     #line 227 "base/generic/compiler/scanner.l"
1750     { return ASSERT_TOK ; }
1751     YY_BREAK
1752     case 64:
1753     YY_RULE_SETUP
1754     #line 228 "base/generic/compiler/scanner.l"
1755     { return IF_TOK ; }
1756     YY_BREAK
1757     case 65:
1758     YY_RULE_SETUP
1759     #line 229 "base/generic/compiler/scanner.l"
1760     { return IMPORT_TOK ; }
1761     YY_BREAK
1762     case 66:
1763     YY_RULE_SETUP
1764     #line 230 "base/generic/compiler/scanner.l"
1765     { return IN_TOK ; }
1766     YY_BREAK
1767     case 67:
1768     YY_RULE_SETUP
1769     #line 231 "base/generic/compiler/scanner.l"
1770     { return INCREASING_TOK ; }
1771     YY_BREAK
1772     case 68:
1773     YY_RULE_SETUP
1774     #line 232 "base/generic/compiler/scanner.l"
1775     { return INPUT_TOK ; }
1776     YY_BREAK
1777     case 69:
1778     YY_RULE_SETUP
1779     #line 233 "base/generic/compiler/scanner.l"
1780     { return INTERSECTION_TOK ; }
1781     YY_BREAK
1782     case 70:
1783     YY_RULE_SETUP
1784     #line 234 "base/generic/compiler/scanner.l"
1785     { return ISA_TOK ; }
1786     YY_BREAK
1787     case 71:
1788     YY_RULE_SETUP
1789     #line 235 "base/generic/compiler/scanner.l"
1790     { return ISREFINEDTO_TOK ; }
1791     YY_BREAK
1792     case 72:
1793     YY_RULE_SETUP
1794     #line 236 "base/generic/compiler/scanner.l"
1795     { return MAXIMIZE_TOK ; }
1796     YY_BREAK
1797     case 73:
1798     YY_RULE_SETUP
1799     #line 237 "base/generic/compiler/scanner.l"
1800     { return MAXINTEGER_TOK ; }
1801     YY_BREAK
1802     case 74:
1803     YY_RULE_SETUP
1804     #line 238 "base/generic/compiler/scanner.l"
1805     { return MAXREAL_TOK ; }
1806     YY_BREAK
1807     case 75:
1808     YY_RULE_SETUP
1809     #line 239 "base/generic/compiler/scanner.l"
1810     { return METHOD_TOK ; }
1811     YY_BREAK
1812     case 76:
1813     YY_RULE_SETUP
1814     #line 240 "base/generic/compiler/scanner.l"
1815     { return METHODS_TOK ; }
1816     YY_BREAK
1817     case 77:
1818     YY_RULE_SETUP
1819     #line 241 "base/generic/compiler/scanner.l"
1820     { return MINIMIZE_TOK ; }
1821     YY_BREAK
1822     case 78:
1823     YY_RULE_SETUP
1824     #line 242 "base/generic/compiler/scanner.l"
1825     { return MODEL_TOK ; }
1826     YY_BREAK
1827     case 79:
1828     YY_RULE_SETUP
1829     #line 243 "base/generic/compiler/scanner.l"
1830     { return NOT_TOK ; }
1831     YY_BREAK
1832     case 80:
1833     YY_RULE_SETUP
1834     #line 244 "base/generic/compiler/scanner.l"
1835     { return NOTES_TOK ; }
1836     YY_BREAK
1837     case 81:
1838     YY_RULE_SETUP
1839     #line 245 "base/generic/compiler/scanner.l"
1840     { return OF_TOK ; }
1841     YY_BREAK
1842     case 82:
1843     YY_RULE_SETUP
1844     #line 246 "base/generic/compiler/scanner.l"
1845     { return OR_TOK ; }
1846     YY_BREAK
1847     case 83:
1848     YY_RULE_SETUP
1849     #line 247 "base/generic/compiler/scanner.l"
1850     { return OTHERWISE_TOK ; }
1851     YY_BREAK
1852     case 84:
1853     YY_RULE_SETUP
1854     #line 248 "base/generic/compiler/scanner.l"
1855     { return OUTPUT_TOK ; }
1856     YY_BREAK
1857     case 85:
1858     YY_RULE_SETUP
1859     #line 249 "base/generic/compiler/scanner.l"
1860     { return PROD_TOK ; }
1861     YY_BREAK
1862     case 86:
1863     YY_RULE_SETUP
1864     #line 250 "base/generic/compiler/scanner.l"
1865     { return PROVIDE_TOK ; }
1866     YY_BREAK
1867     case 87:
1868     YY_RULE_SETUP
1869     #line 251 "base/generic/compiler/scanner.l"
1870     { return REFINES_TOK ; }
1871     YY_BREAK
1872     case 88:
1873     YY_RULE_SETUP
1874     #line 252 "base/generic/compiler/scanner.l"
1875     { return REPLACE_TOK ; }
1876     YY_BREAK
1877     case 89:
1878     YY_RULE_SETUP
1879     #line 253 "base/generic/compiler/scanner.l"
1880     { return REQUIRE_TOK ; }
1881     YY_BREAK
1882     case 90:
1883     YY_RULE_SETUP
1884     #line 254 "base/generic/compiler/scanner.l"
1885     { return RETURN_TOK ; }
1886     YY_BREAK
1887     case 91:
1888     YY_RULE_SETUP
1889     #line 255 "base/generic/compiler/scanner.l"
1890     { return RUN_TOK ; }
1891     YY_BREAK
1892     case 92:
1893     YY_RULE_SETUP
1894     #line 256 "base/generic/compiler/scanner.l"
1895     { return SATISFIED_TOK ; }
1896     YY_BREAK
1897     case 93:
1898     YY_RULE_SETUP
1899     #line 257 "base/generic/compiler/scanner.l"
1900     { return SELECT_TOK ; }
1901     YY_BREAK
1902     case 94:
1903     YY_RULE_SETUP
1904     #line 258 "base/generic/compiler/scanner.l"
1905     { return SUCHTHAT_TOK ; }
1906     YY_BREAK
1907     case 95:
1908     YY_RULE_SETUP
1909     #line 259 "base/generic/compiler/scanner.l"
1910     { return SUM_TOK ; }
1911     YY_BREAK
1912     case 96:
1913     YY_RULE_SETUP
1914     #line 260 "base/generic/compiler/scanner.l"
1915     { return SIZE_TOK ; }
1916     YY_BREAK
1917     case 97:
1918     YY_RULE_SETUP
1919     #line 261 "base/generic/compiler/scanner.l"
1920     { return SWITCH_TOK ; }
1921     YY_BREAK
1922     case 98:
1923     YY_RULE_SETUP
1924     #line 262 "base/generic/compiler/scanner.l"
1925     { return STOP_TOK ; }
1926     YY_BREAK
1927     case 99:
1928     YY_RULE_SETUP
1929     #line 263 "base/generic/compiler/scanner.l"
1930     { return THEN_TOK ; }
1931     YY_BREAK
1932     case 100:
1933     YY_RULE_SETUP
1934     #line 264 "base/generic/compiler/scanner.l"
1935     { return TRUE_TOK ; }
1936     YY_BREAK
1937     case 101:
1938     YY_RULE_SETUP
1939     #line 265 "base/generic/compiler/scanner.l"
1940     { return UNION_TOK ; }
1941     YY_BREAK
1942     case 102:
1943     YY_RULE_SETUP
1944     #line 266 "base/generic/compiler/scanner.l"
1945     { return UNITS_TOK ; }
1946     YY_BREAK
1947     case 103:
1948     YY_RULE_SETUP
1949     #line 267 "base/generic/compiler/scanner.l"
1950     { return UNIVERSAL_TOK ; }
1951     YY_BREAK
1952     case 104:
1953     YY_RULE_SETUP
1954     #line 268 "base/generic/compiler/scanner.l"
1955     { return USE_TOK ; }
1956     YY_BREAK
1957     case 105:
1958     YY_RULE_SETUP
1959     #line 269 "base/generic/compiler/scanner.l"
1960     { return VALUE_TOK ; }
1961     YY_BREAK
1962     case 106:
1963     YY_RULE_SETUP
1964     #line 270 "base/generic/compiler/scanner.l"
1965     { return WHEN_TOK ; }
1966     YY_BREAK
1967     case 107:
1968     YY_RULE_SETUP
1969     #line 271 "base/generic/compiler/scanner.l"
1970     { return WHERE_TOK ; }
1971     YY_BREAK
1972     case 108:
1973     YY_RULE_SETUP
1974     #line 272 "base/generic/compiler/scanner.l"
1975     { return WHILE_TOK ; }
1976     YY_BREAK
1977     case 109:
1978     YY_RULE_SETUP
1979     #line 273 "base/generic/compiler/scanner.l"
1980     { return WILLBE_TOK ; }
1981     YY_BREAK
1982     case 110:
1983     YY_RULE_SETUP
1984     #line 274 "base/generic/compiler/scanner.l"
1985     { return WILLBETHESAME_TOK ; }
1986     YY_BREAK
1987     case 111:
1988     YY_RULE_SETUP
1989     #line 275 "base/generic/compiler/scanner.l"
1990     { return WILLNOTBETHESAME_TOK ; }
1991     YY_BREAK
1992     case 112:
1993     YY_RULE_SETUP
1994     #line 276 "base/generic/compiler/scanner.l"
1995     { return WITH_TOK ; }
1996     YY_BREAK
1997     case 113:
1998     YY_RULE_SETUP
1999     #line 277 "base/generic/compiler/scanner.l"
2000     { return WITH_VALUE_T ; }
2001     YY_BREAK
2002     /*
2003     * Code to handle (* Comments *)
2004     *
2005     * "(*" puts us into the Comment state. Comments nest, so in the
2006     * Comment state we need to look for "(*" that increases the nesting
2007     * level and "*)" that will lower it.
2008     * Flex is faster if we match as much as possible, so we repeat
2009     * patterns with and without the "\n" (although it is more difficult
2010     * for the maintainer to understand) to avoid the overhead of a
2011     * separate "\n" rule.
2012     * Do NOT try to match \(\*+ since that causes "(****)" to parse
2013     * incorrectly.
2014     */
2015     case 114:
2016     YY_RULE_SETUP
2017     #line 293 "base/generic/compiler/scanner.l"
2018     {
2019     /* Match "(" followed by "*" puts us into
2020     * the COMMENT state. Don't use \*+ since
2021     * that will parse "(***)" incorrectly.
2022     * Initialize the nesting level.
2023     * Store the current line for ErrMsg use.
2024     */
2025     BEGIN (Comment);
2026     CommentNestLevel = 1;
2027     start_line = yy_line;
2028     break;
2029     }
2030     YY_BREAK
2031     case 115:
2032     YY_RULE_SETUP
2033     #line 305 "base/generic/compiler/scanner.l"
2034     {
2035     /* Match "(" followed "*" followed by
2036     * anything that's not "(" nor "*".
2037     * Increase the commment nesting level.
2038     */
2039     CommentNestLevel++;
2040     break;
2041     }
2042     YY_BREAK
2043     case 116:
2044     /* rule 116 can match eol */
2045     YY_RULE_SETUP
2046     #line 313 "base/generic/compiler/scanner.l"
2047     {
2048     /* Match "(" followed by "*" followed by
2049     * anything that's not "(" nor "*".
2050     * Increase the commment nesting level.
2051     */
2052     yy_line++;
2053     CommentNestLevel++;
2054     break;
2055     }
2056     YY_BREAK
2057     case 117:
2058     YY_RULE_SETUP
2059     #line 322 "base/generic/compiler/scanner.l"
2060     {
2061     /* Match anything not "*" or "(" followed
2062     * by one or more "*"s followed by ")".
2063     * This decreases the comment nesting level
2064     * and kicks us out if we're back to zero.
2065     */
2066     CommentNestLevel--;
2067     if (CommentNestLevel == 0) {
2068     BEGIN (INITIAL);
2069     }
2070     break;
2071     }
2072     YY_BREAK
2073     case 118:
2074     YY_RULE_SETUP
2075     #line 334 "base/generic/compiler/scanner.l"
2076     {
2077     /* Eat anything that's not a "*" nor a "("
2078     */
2079     break;
2080     }
2081     YY_BREAK
2082     case 119:
2083     /* rule 119 can match eol */
2084     YY_RULE_SETUP
2085     #line 339 "base/generic/compiler/scanner.l"
2086     {
2087     /* Eat anything that's not a "*" nor a "("
2088     * that is followed by a newline.
2089     * This rule also matches empty line.
2090     */
2091     yy_line++;
2092     break;
2093     }
2094     YY_BREAK
2095     case 120:
2096     YY_RULE_SETUP
2097     #line 347 "base/generic/compiler/scanner.l"
2098     {
2099     /* Eat "("s not followed by "*"
2100     */
2101     break;
2102     }
2103     YY_BREAK
2104     case 121:
2105     /* rule 121 can match eol */
2106     YY_RULE_SETUP
2107     #line 352 "base/generic/compiler/scanner.l"
2108     {
2109     /* Eat "("s not followed by "*" plus a "\n"
2110     */
2111     yy_line++;
2112     break;
2113     }
2114     YY_BREAK
2115     case 122:
2116     YY_RULE_SETUP
2117     #line 358 "base/generic/compiler/scanner.l"
2118     {
2119     /* Eat "*"s not followed by ")"
2120     */
2121     break;
2122     }
2123     YY_BREAK
2124     case 123:
2125     /* rule 123 can match eol */
2126     YY_RULE_SETUP
2127     #line 363 "base/generic/compiler/scanner.l"
2128     {
2129     /* Eat "*" not followed by ")" plus a "\n"
2130     */
2131     yy_line++;
2132     break;
2133     }
2134     YY_BREAK
2135     case YY_STATE_EOF(Comment):
2136     #line 369 "base/generic/compiler/scanner.l"
2137     {
2138     /* An EOF in a Comment means bad nesting.
2139     * Print an error and pop back a level
2140     * or return ENDTOK if no more input.
2141     */
2142     ErrMsg_CommentEOF();
2143     CommentNestLevel = 0;
2144     if ( Asc_ScannerPopBuffer() == 1 ) {
2145     return ENDTOK;
2146     }
2147     break;
2148     }
2149     YY_BREAK
2150     /*
2151     * Code to handle 'Symbols'
2152     *
2153     * Symbols are simple: they are 'singely quoted strings' that
2154     * exist on a single line. Look for anything that is not
2155     * a quote or a newline to get the text of the symbol.
2156     */
2157     case 124:
2158     YY_RULE_SETUP
2159     #line 391 "base/generic/compiler/scanner.l"
2160     {
2161     /* A single quote (') in the INITIAL state
2162     * puts us into the Symbol state.
2163     */
2164     BEGIN (Symbol);
2165     break;
2166     }
2167     YY_BREAK
2168     case 125:
2169     YY_RULE_SETUP
2170     #line 398 "base/generic/compiler/scanner.l"
2171     {
2172     /* Anything that is not a (') nor a newline
2173     * followed by a (') is the symbol's text.
2174     * Return to the INITIAL state, store the
2175     * symbol in the symbol table and return
2176     * SYMBOL_TOK to the parser.
2177     */
2178     BEGIN (INITIAL);
2179     /* strip off the final (')
2180     */
2181     zz_text[--zz_leng] = '\0';
2182     if (zz_leng > YY_MAXLEN) {
2183     ErrMsg_LongSymbol();
2184     break;
2185     }
2186     zz_lval.sym_ptr = AddSymbolL(zz_text,zz_leng);
2187     return SYMBOL_TOK;
2188     }
2189     YY_BREAK
2190     case 126:
2191     /* rule 126 can match eol */
2192     YY_RULE_SETUP
2193     #line 416 "base/generic/compiler/scanner.l"
2194     {
2195     /* If we find a newline before a ('), the
2196     * symbol is unterminated. Print an error
2197     * message and return to the INITIAL state.
2198     */
2199     ErrMsg_SymbolEOL();
2200     yy_line++;
2201     BEGIN(INITIAL);
2202     break;
2203     }
2204     YY_BREAK
2205     case YY_STATE_EOF(Symbol):
2206     #line 426 "base/generic/compiler/scanner.l"
2207     {
2208     /* If we find an EOF before a ('), the
2209     * symbol is unterminated. Print an error
2210     * message and pop to the previously
2211     * REQUIREd file or return ENDTOK if the
2212     * pop fails due to no more input.
2213     */
2214     ErrMsg_SymbolEOF();
2215     if ( Asc_ScannerPopBuffer() == 1 ) {
2216     return ENDTOK;
2217     }
2218     break;
2219     }
2220     YY_BREAK
2221     /*
2222     * Code to handle "Text in Double Quotes"
2223     *
2224     * The DoubleQuote state begins with a double quote and ends
2225     * with a double quote; double quotes can be included by
2226     * escaping them with a backslash (e.g. \"). There is no
2227     * nesting level to worry about.
2228     * Flex is faster if we match as much as possible, so we repeat
2229     * patterns with and without the "\n" (although it is more difficult
2230     * for the maintainer to understand) to avoid the overhead of a
2231     * separate "\n" rule.
2232     * We want to keep the text, so we need to call yymore().
2233     */
2234     case 127:
2235     YY_RULE_SETUP
2236     #line 455 "base/generic/compiler/scanner.l"
2237     {
2238     /* A double quote puts us into the
2239     * DoubleQuote state. Save the line
2240     * number for error reporting.
2241     */
2242     BEGIN (DoubleQuote);
2243     start_line = yy_line;
2244     break;
2245     }
2246     YY_BREAK
2247     case 128:
2248     YY_RULE_SETUP
2249     #line 464 "base/generic/compiler/scanner.l"
2250     {
2251     /* A backslash \ in the DoubleQuote
2252     * state protects any character.
2253     */
2254     MatchedBackslash++;
2255     yymore();
2256     break;
2257     }
2258     YY_BREAK
2259     case 129:
2260     /* rule 129 can match eol */
2261     YY_RULE_SETUP
2262     #line 472 "base/generic/compiler/scanner.l"
2263     {
2264     /* A backslash \ in the DoubleQuote
2265     * state protects a newline.
2266     */
2267     MatchedBackslash++;
2268     yy_line++;
2269     yymore();
2270     break;
2271     }
2272     YY_BREAK
2273     case 130:
2274     YY_RULE_SETUP
2275     #line 481 "base/generic/compiler/scanner.l"
2276     {
2277     /* A double quote in the DoubleQuote state
2278     * (that is not protected by backslash)
2279     * will put us back in the INITIAL state.
2280     * Process the string and return DQUOTE_TOK
2281     * to the parser.
2282     */
2283     BEGIN (INITIAL);
2284     /* Remove the final double quote
2285     */
2286     zz_text[--zz_leng] = '\0';
2287     /* Do backslash substitutions on the string
2288     * before returing it to the scanner.
2289     */
2290     if ( MatchedBackslash != 0 ) {
2291     Process_Backslashes();
2292     MatchedBackslash = 0;
2293     }
2294