/[ascend]/trunk/base/generic/compiler/scanner.c.no.flex
ViewVC logotype

Contents of /trunk/base/generic/compiler/scanner.c.no.flex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 473 - (show annotations) (download)
Mon Apr 17 04:52:34 2006 UTC (14 years, 2 months ago) by ben.allan
File size: 111968 byte(s)
restored the bypass missing yacc capability.
1 #define yy_create_buffer zz__create_buffer
2 #define yy_delete_buffer zz__delete_buffer
3 #define yy_scan_buffer zz__scan_buffer
4 #define yy_scan_string zz__scan_string
5 #define yy_scan_bytes zz__scan_bytes
6 #define yy_flex_debug zz__flex_debug
7 #define yy_init_buffer zz__init_buffer
8 #define yy_flush_buffer zz__flush_buffer
9 #define yy_load_buffer_state zz__load_buffer_state
10 #define yy_switch_to_buffer zz__switch_to_buffer
11 #define yyin zz_in
12 #define yyleng zz_leng
13 #define yylex zz_lex
14 #define yyout zz_out
15 #define yyrestart zz_restart
16 #define yytext zz_text
17 #define yywrap zz_wrap
18
19 /* A lexical scanner generated by flex*/
20
21 /* Scanner skeleton version:
22 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
23 */
24
25 #define FLEX_SCANNER
26 #define YY_FLEX_MAJOR_VERSION 2
27 #define YY_FLEX_MINOR_VERSION 5
28
29 #include <stdio.h>
30 #include <unistd.h>
31
32
33 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
34 #ifdef c_plusplus
35 #ifndef __cplusplus
36 #define __cplusplus
37 #endif
38 #endif
39
40
41 #ifdef __cplusplus
42
43 #include <stdlib.h>
44
45 /* Use prototypes in function declarations. */
46 #define YY_USE_PROTOS
47
48 /* The "const" storage-class-modifier is valid. */
49 #define YY_USE_CONST
50
51 #else /* ! __cplusplus */
52
53 #if __STDC__
54
55 #define YY_USE_PROTOS
56 #define YY_USE_CONST
57
58 #endif /* __STDC__ */
59 #endif /* ! __cplusplus */
60
61 #ifdef __TURBOC__
62 #pragma warn -rch
63 #pragma warn -use
64 #include <io.h>
65 #include <stdlib.h>
66 #define YY_USE_CONST
67 #define YY_USE_PROTOS
68 #endif
69
70 #ifdef YY_USE_CONST
71 #define yyconst const
72 #else
73 #define yyconst
74 #endif
75
76
77 #ifdef YY_USE_PROTOS
78 #define YY_PROTO(proto) proto
79 #else
80 #define YY_PROTO(proto) ()
81 #endif
82
83 /* Returned upon end-of-file. */
84 #define YY_NULL 0
85
86 /* Promotes a possibly negative, possibly signed char to an unsigned
87 * integer for use as an array index. If the signed char is negative,
88 * we want to instead treat it as an 8-bit unsigned char, hence the
89 * double cast.
90 */
91 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
92
93 /* Enter a start condition. This macro really ought to take a parameter,
94 * but we do it the disgusting crufty way forced on us by the ()-less
95 * definition of BEGIN.
96 */
97 #define BEGIN yy_start = 1 + 2 *
98
99 /* Translate the current start state into a value that can be later handed
100 * to BEGIN to return to the state. The YYSTATE alias is for lex
101 * compatibility.
102 */
103 #define YY_START ((yy_start - 1) / 2)
104 #define YYSTATE YY_START
105
106 /* Action number for EOF rule of a given start state. */
107 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
108
109 /* Special action meaning "start processing a new file". */
110 #define YY_NEW_FILE yyrestart( yyin )
111
112 #define YY_END_OF_BUFFER_CHAR 0
113
114 /* Size of default input buffer. */
115 #define YY_BUF_SIZE 16384
116
117 typedef struct yy_buffer_state *YY_BUFFER_STATE;
118
119 extern int yyleng;
120 extern FILE *yyin, *yyout;
121
122 #define EOB_ACT_CONTINUE_SCAN 0
123 #define EOB_ACT_END_OF_FILE 1
124 #define EOB_ACT_LAST_MATCH 2
125
126 /* The funky do-while in the following #define is used to turn the definition
127 * int a single C statement (which needs a semi-colon terminator). This
128 * avoids problems with code like:
129 *
130 * if ( condition_holds )
131 * yyless( 5 );
132 * else
133 * do_something_else();
134 *
135 * Prior to using the do-while the compiler would get upset at the
136 * "else" because it interpreted the "if" statement as being all
137 * done when it reached the ';' after the yyless() call.
138 */
139
140 /* Return all but the first 'n' matched characters back to the input stream. */
141
142 #define yyless(n) \
143 do \
144 { \
145 /* Undo effects of setting up yytext. */ \
146 *yy_cp = yy_hold_char; \
147 YY_RESTORE_YY_MORE_OFFSET \
148 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
149 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
150 } \
151 while ( 0 )
152
153 #define unput(c) yyunput( c, yytext_ptr )
154
155 /* Some routines like yy_flex_realloc() are emitted as static but are
156 not called by all lexers. This generates warnings in some compilers,
157 notably GCC. Arrange to suppress these. */
158 #ifdef __GNUC__
159 #define YY_MAY_BE_UNUSED __attribute__((unused))
160 #else
161 #define YY_MAY_BE_UNUSED
162 #endif
163
164 /* The following is because we cannot portably get our hands on size_t
165 * (without autoconf's help, which isn't available because we want
166 * flex-generated scanners to compile on their own).
167 */
168 typedef unsigned int yy_size_t;
169
170
171 struct yy_buffer_state
172 {
173 FILE *yy_input_file;
174
175 char *yy_ch_buf; /* input buffer */
176 char *yy_buf_pos; /* current position in input buffer */
177
178 /* Size of input buffer in bytes, not including room for EOB
179 * characters.
180 */
181 yy_size_t yy_buf_size;
182
183 /* Number of characters read into yy_ch_buf, not including EOB
184 * characters.
185 */
186 int yy_n_chars;
187
188 /* Whether we "own" the buffer - i.e., we know we created it,
189 * and can realloc() it to grow it, and should free() it to
190 * delete it.
191 */
192 int yy_is_our_buffer;
193
194 /* Whether this is an "interactive" input source; if so, and
195 * if we're using stdio for input, then we want to use getc()
196 * instead of fread(), to make sure we stop fetching input after
197 * each newline.
198 */
199 int yy_is_interactive;
200
201 /* Whether we're considered to be at the beginning of a line.
202 * If so, '^' rules will be active on the next match, otherwise
203 * not.
204 */
205 int yy_at_bol;
206
207 /* Whether to try to fill the input buffer when we reach the
208 * end of it.
209 */
210 int yy_fill_buffer;
211
212 int yy_buffer_status;
213 #define YY_BUFFER_NEW 0
214 #define YY_BUFFER_NORMAL 1
215 /* When an EOF's been seen but there's still some text to process
216 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
217 * shouldn't try reading from the input source any more. We might
218 * still have a bunch of tokens to match, though, because of
219 * possible backing-up.
220 *
221 * When we actually see the EOF, we change the status to "new"
222 * (via yyrestart()), so that the user can continue scanning by
223 * just pointing yyin at a new input file.
224 */
225 #define YY_BUFFER_EOF_PENDING 2
226 };
227
228 static YY_BUFFER_STATE yy_current_buffer = 0;
229
230 /* We provide macros for accessing buffer states in case in the
231 * future we want to put the buffer states in a more general
232 * "scanner state".
233 */
234 #define YY_CURRENT_BUFFER yy_current_buffer
235
236
237 /* yy_hold_char holds the character lost when yytext is formed. */
238 static char yy_hold_char;
239
240 static int yy_n_chars; /* number of characters read into yy_ch_buf */
241
242
243 int yyleng;
244
245 /* Points to current character in buffer. */
246 static char *yy_c_buf_p = (char *) 0;
247 static int yy_init = 1; /* whether we need to initialize */
248 static int yy_start = 0; /* start state number */
249
250 /* Flag which is used to allow yywrap()'s to do buffer switches
251 * instead of setting up a fresh yyin. A bit of a hack ...
252 */
253 static int yy_did_buffer_switch_on_eof;
254
255 void yyrestart YY_PROTO(( FILE *input_file ));
256
257 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
258 void yy_load_buffer_state YY_PROTO(( void ));
259 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
260 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
261 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
262 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
263 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
264
265 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
266 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
267 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
268
269 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
270 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
271 static void yy_flex_free YY_PROTO(( void * ));
272
273 #define yy_new_buffer yy_create_buffer
274
275 #define yy_set_interactive(is_interactive) \
276 { \
277 if ( ! yy_current_buffer ) \
278 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
279 yy_current_buffer->yy_is_interactive = is_interactive; \
280 }
281
282 #define yy_set_bol(at_bol) \
283 { \
284 if ( ! yy_current_buffer ) \
285 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
286 yy_current_buffer->yy_at_bol = at_bol; \
287 }
288
289 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
290
291 typedef unsigned char YY_CHAR;
292 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
293 typedef int yy_state_type;
294 extern char *yytext;
295 #define yytext_ptr yytext
296
297 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
298 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
299 static int yy_get_next_buffer YY_PROTO(( void ));
300 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
301
302 /* Done after the current pattern has been matched and before the
303 * corresponding action - sets up yytext.
304 */
305 #define YY_DO_BEFORE_ACTION \
306 yytext_ptr = yy_bp; \
307 yytext_ptr -= yy_more_len; \
308 yyleng = (int) (yy_cp - yytext_ptr); \
309 yy_hold_char = *yy_cp; \
310 *yy_cp = '\0'; \
311 yy_c_buf_p = yy_cp;
312
313 #define YY_NUM_RULES 149
314 #define YY_END_OF_BUFFER 150
315 static yyconst short int yy_accept[521] =
316 { 0,
317 146, 146, 118, 118, 0, 0, 140, 140, 131, 131,
318 150, 148, 146, 147, 148, 127, 124, 19, 20, 23,
319 21, 13, 22, 14, 24, 142, 16, 15, 12, 10,
320 11, 145, 145, 145, 145, 145, 145, 145, 145, 145,
321 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
322 17, 18, 25, 134, 26, 118, 119, 120, 122, 149,
323 126, 125, 140, 141, 149, 137, 139, 131, 132, 130,
324 149, 146, 147, 9, 114, 4, 144, 144, 142, 0,
325 5, 6, 1, 3, 8, 2, 145, 145, 145, 145,
326 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
327
328 145, 145, 145, 51, 145, 145, 145, 145, 145, 145,
329 145, 145, 64, 145, 66, 145, 145, 145, 145, 145,
330 145, 81, 82, 145, 145, 145, 145, 145, 145, 145,
331 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
332 145, 0, 133, 118, 119, 0, 120, 121, 120, 115,
333 122, 123, 117, 122, 0, 126, 125, 140, 141, 0,
334 139, 135, 136, 137, 138, 131, 132, 130, 0, 128,
335 129, 0, 143, 144, 0, 144, 7, 27, 145, 29,
336 30, 145, 145, 145, 145, 145, 145, 145, 145, 145,
337 145, 145, 145, 145, 145, 145, 145, 145, 53, 145,
338
339 145, 145, 58, 60, 145, 145, 145, 145, 145, 145,
340 145, 145, 145, 145, 145, 145, 79, 145, 145, 145,
341 145, 145, 145, 145, 91, 145, 145, 145, 145, 145,
342 95, 145, 145, 145, 145, 104, 145, 145, 145, 145,
343 145, 115, 116, 0, 144, 145, 145, 145, 145, 34,
344 145, 36, 37, 38, 145, 145, 145, 145, 145, 145,
345 45, 145, 145, 145, 145, 52, 145, 145, 145, 145,
346 59, 61, 145, 145, 145, 145, 145, 70, 145, 145,
347 145, 145, 145, 145, 145, 145, 145, 85, 145, 145,
348 145, 145, 145, 145, 145, 96, 98, 145, 145, 99,
349
350 100, 145, 145, 145, 145, 106, 145, 145, 145, 112,
351 145, 145, 145, 33, 145, 35, 39, 145, 145, 145,
352 145, 145, 145, 145, 145, 145, 145, 145, 145, 56,
353 145, 145, 145, 68, 145, 145, 145, 145, 145, 145,
354 145, 78, 80, 145, 145, 145, 145, 145, 145, 145,
355 145, 145, 145, 145, 101, 102, 145, 105, 107, 108,
356 145, 145, 145, 145, 145, 63, 40, 145, 145, 145,
357 44, 145, 145, 145, 145, 54, 145, 145, 62, 65,
358 145, 145, 145, 145, 145, 145, 75, 145, 145, 84,
359 145, 145, 145, 145, 90, 145, 93, 145, 97, 145,
360
361 145, 145, 145, 28, 145, 145, 145, 145, 145, 145,
362 47, 145, 145, 145, 145, 145, 145, 145, 145, 145,
363 145, 76, 145, 145, 86, 87, 88, 89, 145, 145,
364 145, 109, 145, 145, 145, 145, 145, 42, 43, 145,
365 145, 145, 55, 145, 145, 145, 145, 72, 145, 74,
366 77, 145, 145, 145, 145, 145, 145, 145, 31, 145,
367 145, 145, 145, 49, 145, 145, 145, 145, 145, 83,
368 92, 94, 103, 145, 145, 145, 145, 145, 46, 48,
369 145, 145, 67, 145, 145, 145, 145, 145, 113, 145,
370 41, 145, 145, 145, 145, 73, 145, 145, 32, 145,
371
372 57, 69, 145, 145, 145, 50, 71, 145, 145, 145,
373 145, 145, 145, 110, 145, 145, 145, 145, 111, 0
374 } ;
375
376 static yyconst int yy_ec[256] =
377 { 0,
378 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
379 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
380 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
381 1, 2, 4, 5, 1, 1, 1, 1, 6, 7,
382 8, 9, 10, 11, 12, 13, 14, 15, 15, 15,
383 15, 15, 15, 15, 15, 15, 15, 16, 17, 18,
384 19, 20, 1, 1, 21, 22, 23, 24, 25, 26,
385 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
386 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
387 47, 48, 49, 50, 51, 1, 30, 30, 30, 30,
388
389 52, 30, 30, 30, 30, 30, 30, 30, 30, 30,
390 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
391 30, 30, 53, 54, 55, 1, 1, 1, 1, 1,
392 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
393 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
394 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
396 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
397 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
398 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
399
400 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
402 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
403 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
405 1, 1, 1, 1, 1
406 } ;
407
408 static yyconst int yy_meta[56] =
409 { 0,
410 1, 1, 1, 1, 1, 1, 2, 1, 3, 1,
411 1, 1, 1, 1, 4, 1, 1, 1, 1, 1,
412 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
413 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
414 4, 4, 4, 4, 4, 4, 1, 5, 1, 1,
415 4, 4, 6, 1, 5
416 } ;
417
418 static yyconst short int yy_base[536] =
419 { 0,
420 0, 0, 53, 54, 61, 62, 55, 56, 66, 67,
421 578, 1485, 71, 1485, 493, 1485, 1485, 417, 1485, 1485,
422 1485, 1485, 1485, 62, 1485, 65, 60, 1485, 62, 390,
423 387, 92, 51, 84, 112, 106, 62, 69, 77, 119,
424 130, 78, 134, 110, 139, 148, 156, 147, 161, 164,
425 1485, 1485, 1485, 83, 1485, 85, 1485, 192, 194, 92,
426 1485, 1485, 163, 1485, 365, 357, 1485, 139, 1485, 1485,
427 327, 165, 1485, 1485, 1485, 1485, 181, 195, 201, 207,
428 1485, 273, 1485, 1485, 1485, 1485, 185, 189, 206, 194,
429 210, 212, 190, 209, 198, 213, 220, 231, 217, 247,
430
431 227, 250, 254, 224, 255, 259, 264, 265, 233, 270,
432 274, 276, 239, 266, 297, 271, 280, 278, 292, 299,
433 288, 281, 298, 319, 304, 321, 325, 320, 323, 326,
434 327, 331, 352, 330, 354, 342, 365, 371, 369, 373,
435 372, 350, 1485, 386, 1485, 382, 404, 1485, 412, 285,
436 422, 1485, 1485, 424, 133, 1485, 1485, 389, 1485, 240,
437 1485, 1485, 1485, 228, 1485, 394, 1485, 1485, 175, 1485,
438 1485, 424, 1485, 393, 141, 131, 1485, 349, 414, 395,
439 399, 402, 426, 413, 425, 428, 436, 433, 437, 440,
440 441, 454, 439, 446, 444, 451, 456, 458, 459, 460,
441
442 471, 474, 483, 484, 489, 485, 486, 488, 500, 501,
443 502, 505, 504, 513, 515, 506, 533, 534, 509, 539,
444 517, 535, 532, 546, 514, 547, 554, 555, 556, 560,
445 557, 559, 562, 576, 574, 567, 578, 588, 580, 585,
446 587, 120, 1485, 103, 91, 589, 609, 605, 606, 608,
447 617, 618, 619, 620, 622, 628, 626, 627, 632, 647,
448 630, 639, 631, 650, 651, 637, 671, 659, 648, 678,
449 660, 661, 674, 676, 681, 665, 677, 685, 692, 693,
450 704, 689, 698, 703, 706, 708, 715, 719, 722, 724,
451 726, 723, 733, 746, 745, 735, 738, 747, 749, 748,
452
453 750, 754, 752, 765, 767, 761, 768, 779, 763, 764,
454 792, 791, 780, 787, 794, 795, 796, 807, 809, 805,
455 806, 810, 812, 821, 822, 813, 814, 833, 826, 824,
456 844, 829, 847, 835, 840, 855, 856, 859, 863, 868,
457 867, 872, 874, 879, 875, 884, 886, 882, 889, 887,
458 894, 888, 901, 885, 897, 902, 909, 914, 916, 917,
459 927, 928, 935, 929, 931, 936, 939, 940, 942, 944,
460 947, 949, 956, 957, 948, 951, 960, 977, 958, 968,
461 974, 969, 986, 988, 989, 991, 999, 995, 1001, 1002,
462 1006, 1008, 1007, 1011, 1003, 1020, 1009, 1028, 1012, 1029,
463
464 1030, 1049, 1046, 1018, 1051, 1036, 1050, 1055, 1058, 1057,
465 1059, 1060, 1061, 1062, 1076, 1075, 1084, 1083, 1078, 1090,
466 1101, 1073, 1103, 1104, 1105, 1106, 1107, 1108, 1115, 1110,
467 1117, 1121, 1122, 1131, 1124, 1130, 1133, 1127, 1129, 1136,
468 1150, 1145, 1132, 1156, 1159, 1149, 1161, 1162, 1175, 1173,
469 1177, 1179, 1182, 1180, 1183, 1196, 1184, 1188, 1190, 1193,
470 1201, 1194, 1203, 1208, 1202, 1223, 1217, 1227, 1233, 1204,
471 1210, 1212, 1234, 1241, 1242, 1245, 1247, 1250, 1251, 1252,
472 1256, 1260, 1257, 1262, 1258, 1261, 1264, 1275, 1268, 1279,
473 1271, 1290, 1295, 1280, 1276, 1273, 1291, 1302, 1303, 1305,
474
475 1306, 1310, 1313, 1319, 1320, 1317, 1318, 1322, 1321, 1330,
476 1325, 1337, 1323, 1324, 1340, 1344, 1351, 1352, 1332, 1485,
477 1403, 1409, 1415, 1421, 92, 1427, 1433, 1439, 1445, 1451,
478 1456, 1462, 1466, 1472, 1478
479 } ;
480
481 static yyconst short int yy_def[536] =
482 { 0,
483 520, 1, 521, 521, 522, 522, 523, 523, 524, 524,
484 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
485 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
486 520, 525, 525, 525, 525, 525, 35, 525, 525, 525,
487 35, 525, 525, 525, 525, 35, 525, 525, 525, 525,
488 520, 520, 520, 520, 520, 526, 520, 527, 528, 529,
489 520, 520, 530, 520, 531, 532, 520, 533, 520, 520,
490 534, 520, 520, 520, 520, 520, 520, 520, 520, 520,
491 520, 520, 520, 520, 520, 520, 525, 525, 525, 525,
492 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
493
494 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
495 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
496 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
497 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
498 525, 520, 520, 526, 520, 520, 527, 520, 527, 535,
499 528, 520, 520, 528, 529, 520, 520, 530, 520, 531,
500 520, 520, 520, 532, 520, 533, 520, 520, 534, 520,
501 520, 520, 520, 520, 520, 520, 520, 525, 525, 525,
502 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
503 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
504
505 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
506 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
507 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
508 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
509 525, 535, 520, 520, 520, 525, 525, 525, 525, 525,
510 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
511 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
512 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
513 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
514 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
515
516 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
517 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
518 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
519 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
520 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
521 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
522 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
523 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
524 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
525 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
526
527 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
528 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
529 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
530 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
531 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
532 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
533 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
534 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
535 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
536 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
537
538 525, 525, 525, 525, 525, 525, 525, 525, 525, 525,
539 525, 525, 525, 525, 525, 525, 525, 525, 525, 0,
540 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
541 520, 520, 520, 520, 520
542 } ;
543
544 static yyconst short int yy_nxt[1541] =
545 { 0,
546 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
547 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
548 32, 33, 34, 35, 36, 37, 38, 39, 40, 39,
549 39, 39, 41, 42, 43, 44, 39, 45, 46, 47,
550 48, 49, 50, 39, 39, 39, 51, 12, 52, 53,
551 12, 39, 54, 55, 12, 57, 57, 64, 64, 58,
552 58, 59, 59, 61, 61, 87, 62, 62, 69, 69,
553 70, 70, 72, 73, 76, 81, 77, 78, 82, 79,
554 83, 84, 108, 87, 142, 143, 88, 145, 96, 80,
555 109, 87, 87, 146, 156, 88, 110, 157, 87, 111,
556
557 112, 95, 65, 65, 97, 245, 87, 66, 66, 67,
558 67, 98, 121, 71, 71, 89, 80, 245, 99, 95,
559 87, 100, 243, 90, 87, 91, 87, 95, 95, 92,
560 93, 94, 101, 87, 95, 156, 102, 105, 157, 106,
561 103, 167, 95, 168, 113, 176, 104, 126, 87, 107,
562 117, 114, 115, 87, 118, 176, 95, 116, 119, 122,
563 95, 87, 95, 127, 120, 159, 72, 73, 129, 95,
564 87, 123, 130, 124, 125, 87, 131, 171, 87, 128,
565 137, 139, 88, 135, 95, 138, 169, 132, 133, 95,
566 134, 140, 141, 136, 148, 77, 152, 95, 149, 87,
567
568 150, 153, 154, 87, 87, 172, 95, 173, 87, 174,
569 160, 95, 87, 78, 95, 79, 175, 161, 175, 172,
570 87, 176, 179, 87, 87, 80, 87, 87, 184, 178,
571 165, 87, 172, 180, 87, 95, 182, 186, 87, 95,
572 95, 87, 163, 185, 95, 87, 172, 87, 95, 183,
573 192, 187, 80, 87, 181, 190, 95, 188, 189, 95,
574 95, 87, 95, 95, 87, 191, 194, 95, 87, 87,
575 95, 193, 195, 87, 95, 196, 203, 95, 87, 87,
576 87, 95, 199, 95, 87, 87, 197, 243, 87, 95,
577 87, 177, 87, 198, 87, 87, 202, 95, 205, 200,
578
579 95, 208, 87, 201, 95, 95, 87, 204, 206, 95,
580 207, 87, 87, 87, 95, 95, 95, 214, 87, 209,
581 95, 212, 216, 213, 95, 215, 95, 217, 95, 171,
582 95, 95, 210, 87, 87, 87, 211, 87, 95, 87,
583 87, 87, 95, 219, 87, 87, 218, 95, 95, 95,
584 221, 142, 143, 225, 95, 220, 87, 227, 232, 165,
585 222, 223, 226, 87, 224, 229, 87, 163, 87, 95,
586 95, 95, 228, 95, 230, 95, 95, 95, 233, 87,
587 95, 95, 234, 87, 231, 87, 87, 87, 145, 153,
588 146, 159, 95, 235, 146, 236, 167, 238, 168, 95,
589
590 237, 239, 95, 240, 95, 86, 148, 174, 85, 87,
591 520, 241, 520, 87, 148, 95, 87, 172, 149, 95,
592 520, 95, 95, 95, 152, 75, 152, 87, 87, 520,
593 520, 153, 154, 244, 246, 244, 160, 249, 245, 87,
594 87, 169, 87, 161, 172, 95, 248, 87, 251, 95,
595 87, 87, 247, 87, 87, 87, 253, 250, 87, 260,
596 87, 254, 255, 95, 95, 87, 261, 252, 87, 256,
597 87, 263, 87, 87, 87, 95, 95, 257, 95, 264,
598 265, 262, 266, 95, 267, 87, 95, 95, 87, 95,
599 95, 95, 258, 259, 95, 268, 95, 87, 87, 87,
600
601 87, 95, 87, 87, 95, 269, 95, 273, 95, 95,
602 95, 74, 270, 271, 87, 87, 87, 272, 87, 87,
603 87, 95, 274, 87, 95, 278, 277, 87, 87, 87,
604 284, 87, 280, 95, 95, 95, 95, 275, 95, 95,
605 282, 276, 279, 283, 287, 290, 87, 87, 87, 87,
606 95, 95, 95, 87, 281, 95, 95, 285, 286, 95,
607 87, 87, 288, 95, 95, 95, 291, 95, 87, 87,
608 87, 87, 292, 87, 87, 294, 87, 520, 295, 296,
609 289, 87, 95, 95, 95, 95, 293, 298, 87, 95,
610 87, 297, 87, 520, 87, 300, 95, 95, 299, 87,
611
612 301, 87, 87, 87, 95, 95, 95, 95, 302, 95,
613 95, 308, 95, 303, 310, 304, 309, 95, 305, 87,
614 87, 306, 87, 87, 95, 307, 95, 311, 95, 312,
615 95, 87, 87, 87, 87, 95, 87, 95, 95, 95,
616 87, 87, 87, 315, 87, 87, 87, 316, 313, 314,
617 318, 87, 317, 87, 319, 95, 95, 520, 95, 95,
618 321, 87, 87, 323, 87, 87, 320, 95, 95, 95,
619 95, 324, 95, 87, 87, 87, 95, 95, 95, 87,
620 95, 95, 95, 325, 326, 87, 322, 95, 87, 95,
621 87, 87, 87, 327, 331, 87, 328, 95, 329, 87,
622
623 95, 95, 330, 87, 334, 333, 87, 87, 520, 95,
624 95, 95, 87, 332, 335, 95, 336, 87, 87, 520,
625 87, 95, 87, 340, 95, 337, 95, 95, 95, 87,
626 341, 95, 338, 87, 342, 95, 87, 87, 87, 95,
627 87, 339, 95, 95, 343, 344, 348, 87, 95, 87,
628 346, 349, 87, 95, 95, 345, 95, 347, 95, 87,
629 87, 87, 87, 87, 87, 95, 87, 352, 87, 95,
630 350, 354, 95, 95, 95, 87, 95, 87, 87, 87,
631 520, 87, 87, 95, 351, 95, 520, 355, 95, 357,
632 356, 358, 359, 87, 87, 95, 95, 353, 95, 95,
633
634 95, 87, 95, 360, 95, 87, 87, 365, 87, 87,
635 87, 95, 520, 361, 362, 95, 363, 95, 95, 87,
636 87, 87, 364, 87, 87, 369, 87, 87, 87, 95,
637 95, 367, 372, 366, 371, 87, 87, 95, 87, 370,
638 87, 95, 95, 87, 95, 95, 95, 87, 368, 87,
639 374, 375, 373, 376, 87, 95, 95, 95, 87, 95,
640 95, 87, 95, 95, 95, 378, 377, 381, 380, 87,
641 87, 95, 95, 87, 95, 379, 95, 87, 382, 95,
642 383, 87, 87, 95, 384, 95, 87, 386, 87, 87,
643 95, 387, 385, 87, 95, 388, 87, 95, 87, 87,
644
645 87, 87, 87, 87, 393, 95, 95, 391, 87, 95,
646 392, 87, 399, 95, 390, 87, 87, 95, 95, 396,
647 395, 389, 95, 87, 95, 95, 394, 397, 87, 95,
648 87, 87, 95, 520, 95, 95, 95, 95, 95, 95,
649 398, 87, 87, 87, 95, 87, 400, 95, 401, 87,
650 87, 95, 95, 87, 87, 406, 87, 405, 87, 95,
651 402, 87, 87, 87, 95, 87, 95, 95, 407, 403,
652 87, 87, 87, 404, 87, 408, 413, 95, 95, 95,
653 414, 95, 87, 87, 409, 95, 95, 410, 87, 95,
654 95, 87, 95, 417, 95, 411, 412, 95, 95, 95,
655
656 87, 95, 87, 87, 415, 87, 95, 95, 95, 87,
657 95, 421, 416, 87, 418, 87, 87, 87, 95, 95,
658 87, 87, 87, 87, 95, 87, 87, 95, 420, 424,
659 425, 427, 87, 419, 87, 428, 95, 422, 95, 95,
660 423, 95, 87, 87, 87, 95, 426, 520, 429, 95,
661 87, 95, 95, 95, 432, 430, 95, 95, 95, 95,
662 87, 95, 95, 87, 87, 87, 434, 431, 95, 87,
663 95, 87, 87, 87, 87, 87, 87, 520, 95, 95,
664 95, 435, 439, 433, 437, 440, 436, 87, 441, 87,
665 87, 520, 87, 443, 438, 442, 95, 87, 87, 95,
666
667 95, 95, 448, 445, 87, 95, 446, 95, 95, 95,
668 95, 95, 95, 444, 449, 87, 447, 87, 87, 87,
669 87, 87, 87, 95, 87, 95, 95, 451, 95, 87,
670 454, 87, 450, 95, 95, 87, 87, 455, 87, 453,
671 95, 87, 452, 87, 87, 87, 87, 87, 459, 520,
672 87, 95, 520, 95, 95, 95, 95, 95, 95, 87,
673 95, 457, 458, 87, 87, 95, 461, 95, 460, 462,
674 87, 456, 95, 87, 95, 87, 87, 95, 464, 95,
675 95, 95, 95, 95, 463, 468, 95, 87, 467, 87,
676 465, 87, 466, 87, 87, 95, 87, 87, 87, 95,
677
678 95, 469, 87, 470, 87, 471, 95, 87, 87, 95,
679 87, 95, 95, 477, 473, 87, 87, 87, 87, 472,
680 479, 478, 87, 95, 87, 95, 87, 95, 476, 95,
681 95, 87, 95, 95, 475, 474, 480, 87, 95, 481,
682 95, 87, 482, 95, 95, 484, 95, 87, 87, 483,
683 485, 95, 95, 95, 95, 87, 87, 486, 95, 87,
684 95, 87, 95, 488, 87, 87, 87, 95, 487, 489,
685 87, 87, 87, 95, 87, 87, 87, 95, 87, 490,
686 492, 491, 87, 95, 95, 87, 493, 87, 497, 87,
687 87, 95, 95, 87, 87, 95, 494, 95, 496, 498,
688
689 95, 95, 95, 499, 87, 87, 95, 95, 495, 87,
690 95, 95, 95, 502, 95, 503, 87, 87, 95, 87,
691 87, 95, 501, 95, 87, 95, 95, 87, 500, 95,
692 95, 87, 87, 87, 87, 87, 87, 87, 87, 87,
693 95, 504, 510, 506, 87, 95, 87, 507, 511, 513,
694 520, 87, 505, 95, 87, 95, 95, 508, 87, 509,
695 95, 514, 512, 95, 517, 87, 87, 95, 95, 95,
696 95, 95, 95, 515, 95, 95, 519, 520, 516, 520,
697 95, 520, 95, 518, 520, 520, 520, 95, 520, 520,
698 95, 520, 520, 520, 95, 520, 520, 520, 520, 520,
699
700 520, 95, 95, 56, 56, 56, 56, 56, 56, 60,
701 60, 60, 60, 60, 60, 63, 63, 63, 63, 63,
702 63, 68, 68, 68, 68, 68, 68, 144, 520, 144,
703 144, 144, 144, 147, 147, 147, 147, 147, 147, 151,
704 520, 151, 151, 151, 151, 155, 155, 155, 155, 155,
705 155, 158, 158, 158, 158, 158, 162, 162, 162, 162,
706 162, 162, 164, 164, 164, 164, 166, 166, 166, 166,
707 166, 166, 170, 170, 170, 170, 170, 170, 242, 520,
708 520, 242, 242, 242, 11, 520, 520, 520, 520, 520,
709 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
710
711 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
712 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
713 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
714 520, 520, 520, 520, 520, 520, 520, 520, 520, 520
715 } ;
716
717 static yyconst short int yy_chk[1541] =
718 { 0,
719 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
720 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
721 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
722 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
723 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
724 1, 1, 1, 1, 1, 3, 4, 7, 8, 3,
725 4, 3, 4, 5, 6, 33, 5, 6, 9, 10,
726 9, 10, 13, 13, 24, 27, 24, 26, 27, 26,
727 29, 29, 37, 38, 54, 54, 37, 56, 33, 26,
728 37, 39, 42, 56, 60, 525, 37, 60, 34, 37,
729
730 38, 33, 7, 8, 34, 245, 32, 7, 8, 7,
731 8, 34, 42, 9, 10, 32, 26, 244, 34, 38,
732 36, 34, 242, 32, 44, 32, 35, 39, 42, 32,
733 32, 32, 35, 40, 34, 155, 35, 36, 155, 36,
734 35, 68, 32, 68, 40, 176, 35, 44, 43, 36,
735 41, 40, 40, 45, 41, 175, 36, 40, 41, 43,
736 44, 48, 35, 45, 41, 63, 72, 72, 46, 40,
737 47, 43, 46, 43, 43, 49, 46, 169, 50, 45,
738 48, 49, 46, 47, 43, 48, 68, 46, 46, 45,
739 46, 50, 50, 47, 58, 77, 59, 48, 58, 87,
740
741 58, 59, 59, 88, 93, 77, 47, 78, 90, 78,
742 63, 49, 95, 79, 50, 79, 80, 63, 80, 78,
743 89, 80, 90, 94, 91, 79, 92, 96, 93, 89,
744 164, 99, 77, 91, 97, 87, 92, 96, 104, 88,
745 93, 101, 160, 94, 90, 98, 78, 109, 95, 92,
746 99, 97, 79, 113, 91, 98, 89, 97, 97, 94,
747 91, 100, 92, 96, 102, 98, 101, 99, 103, 105,
748 97, 100, 102, 106, 104, 102, 109, 101, 107, 108,
749 114, 98, 106, 109, 110, 116, 103, 150, 111, 113,
750 112, 82, 118, 105, 117, 122, 108, 100, 111, 107,
751
752 102, 114, 121, 107, 103, 105, 119, 110, 111, 106,
753 112, 115, 123, 120, 107, 108, 114, 118, 125, 115,
754 110, 116, 120, 117, 111, 119, 112, 121, 118, 71,
755 117, 122, 115, 124, 128, 126, 115, 129, 121, 127,
756 130, 131, 119, 125, 134, 132, 124, 115, 123, 120,
757 127, 142, 142, 128, 125, 126, 136, 130, 134, 66,
758 127, 127, 129, 178, 127, 132, 133, 65, 135, 124,
759 128, 126, 131, 129, 133, 127, 130, 131, 135, 137,
760 134, 132, 136, 139, 133, 138, 141, 140, 144, 146,
761 146, 158, 136, 137, 144, 138, 166, 140, 166, 178,
762
763 139, 140, 133, 141, 135, 31, 147, 174, 30, 180,
764 147, 141, 147, 181, 149, 137, 182, 174, 149, 139,
765 149, 138, 141, 140, 151, 18, 154, 184, 179, 151,
766 151, 154, 154, 172, 179, 172, 158, 184, 172, 185,
767 183, 166, 186, 158, 174, 180, 183, 188, 186, 181,
768 187, 189, 182, 193, 190, 191, 188, 185, 195, 193,
769 194, 189, 190, 184, 179, 196, 194, 187, 192, 191,
770 197, 196, 198, 199, 200, 185, 183, 192, 186, 196,
771 197, 195, 198, 188, 200, 201, 187, 189, 202, 193,
772 190, 191, 192, 192, 195, 201, 194, 203, 204, 206,
773
774 207, 196, 208, 205, 192, 202, 197, 207, 198, 199,
775 200, 15, 202, 205, 209, 210, 211, 206, 213, 212,
776 216, 201, 208, 219, 202, 212, 211, 214, 225, 215,
777 216, 221, 213, 203, 204, 206, 207, 209, 208, 205,
778 214, 210, 212, 215, 219, 221, 223, 217, 218, 222,
779 209, 210, 211, 220, 213, 212, 216, 217, 218, 219,
780 224, 226, 220, 214, 225, 215, 222, 221, 227, 228,
781 229, 231, 223, 232, 230, 226, 233, 11, 227, 228,
782 220, 236, 223, 217, 218, 222, 224, 230, 235, 220,
783 234, 229, 237, 0, 239, 233, 224, 226, 232, 240,
784
785 234, 241, 238, 246, 227, 228, 229, 231, 235, 232,
786 230, 239, 233, 235, 241, 235, 240, 236, 237, 248,
787 249, 238, 250, 247, 235, 238, 234, 246, 237, 247,
788 239, 251, 252, 253, 254, 240, 255, 241, 238, 246,
789 257, 258, 256, 249, 261, 263, 259, 251, 247, 248,
790 256, 266, 255, 262, 257, 248, 249, 0, 250, 247,
791 259, 260, 269, 262, 264, 265, 258, 251, 252, 253,
792 254, 263, 255, 268, 271, 272, 257, 258, 256, 276,
793 261, 263, 259, 264, 265, 267, 260, 266, 273, 262,
794 274, 277, 270, 267, 273, 275, 268, 260, 269, 278,
795
796 264, 265, 270, 282, 276, 275, 279, 280, 0, 268,
797 271, 272, 283, 274, 277, 276, 279, 284, 281, 0,
798 285, 267, 286, 282, 273, 280, 274, 277, 270, 287,
799 283, 275, 281, 288, 284, 278, 289, 292, 290, 282,
800 291, 281, 279, 280, 285, 286, 291, 293, 283, 296,
801 289, 292, 297, 284, 281, 287, 285, 290, 286, 295,
802 294, 298, 300, 299, 301, 287, 303, 295, 302, 288,
803 293, 299, 289, 292, 290, 306, 291, 309, 310, 304,
804 0, 305, 307, 293, 294, 296, 0, 302, 297, 304,
805 303, 305, 307, 308, 313, 295, 294, 298, 300, 299,
806
807 301, 314, 303, 308, 302, 312, 311, 313, 315, 316,
808 317, 306, 0, 309, 310, 304, 311, 305, 307, 320,
809 321, 318, 312, 319, 322, 320, 323, 326, 327, 308,
810 313, 318, 323, 315, 322, 324, 325, 314, 330, 321,
811 329, 312, 311, 332, 315, 316, 317, 328, 319, 334,
812 325, 326, 324, 327, 335, 320, 321, 318, 331, 319,
813 322, 333, 323, 326, 327, 329, 328, 333, 332, 336,
814 337, 324, 325, 338, 330, 331, 329, 339, 335, 332,
815 336, 341, 340, 328, 337, 334, 342, 339, 343, 345,
816 335, 340, 338, 344, 331, 341, 348, 333, 346, 354,
817
818 347, 350, 352, 349, 348, 336, 337, 346, 351, 338,
819 347, 355, 354, 339, 345, 353, 356, 341, 340, 351,
820 350, 344, 342, 357, 343, 345, 349, 352, 358, 344,
821 359, 360, 348, 0, 346, 354, 347, 350, 352, 349,
822 353, 361, 362, 364, 351, 365, 357, 355, 361, 363,
823 366, 353, 356, 367, 368, 365, 369, 364, 370, 357,
824 361, 371, 375, 372, 358, 376, 359, 360, 368, 362,
825 373, 374, 379, 363, 377, 369, 375, 361, 362, 364,
826 377, 365, 380, 382, 370, 363, 366, 372, 381, 367,
827 368, 378, 369, 382, 370, 373, 374, 371, 375, 372,
828
829 383, 376, 384, 385, 378, 386, 373, 374, 379, 388,
830 377, 386, 381, 387, 383, 389, 390, 395, 380, 382,
831 391, 393, 392, 397, 381, 394, 399, 378, 385, 389,
832 391, 393, 404, 384, 396, 394, 383, 387, 384, 385,
833 388, 386, 398, 400, 401, 388, 392, 0, 396, 387,
834 406, 389, 390, 395, 401, 398, 391, 393, 392, 397,
835 403, 394, 399, 402, 407, 405, 403, 400, 404, 408,
836 396, 410, 409, 411, 412, 413, 414, 0, 398, 400,
837 401, 405, 409, 402, 407, 410, 406, 422, 412, 416,
838 415, 0, 419, 414, 408, 413, 403, 418, 417, 402,
839
840 407, 405, 419, 416, 420, 408, 417, 410, 409, 411,
841 412, 413, 414, 415, 420, 421, 418, 423, 424, 425,
842 426, 427, 428, 422, 430, 416, 415, 423, 419, 429,
843 430, 431, 421, 418, 417, 432, 433, 431, 435, 429,
844 420, 438, 424, 439, 436, 434, 443, 437, 435, 0,
845 440, 421, 0, 423, 424, 425, 426, 427, 428, 442,
846 430, 433, 434, 446, 441, 429, 437, 431, 436, 440,
847 444, 432, 433, 445, 435, 447, 448, 438, 442, 439,
848 436, 434, 443, 437, 441, 447, 440, 450, 446, 449,
849 444, 451, 445, 452, 454, 442, 453, 455, 457, 446,
850
851 441, 449, 458, 452, 459, 453, 444, 460, 462, 445,
852 456, 447, 448, 460, 455, 461, 465, 463, 470, 454,
853 462, 461, 464, 450, 471, 449, 472, 451, 458, 452,
854 454, 467, 453, 455, 457, 456, 463, 466, 458, 464,
855 459, 468, 465, 460, 462, 467, 456, 469, 473, 466,
856 468, 461, 465, 463, 470, 474, 475, 469, 464, 476,
857 471, 477, 472, 475, 478, 479, 480, 467, 474, 476,
858 481, 483, 485, 466, 482, 486, 484, 468, 487, 477,
859 481, 478, 489, 469, 473, 491, 482, 496, 487, 488,
860 495, 474, 475, 490, 494, 476, 484, 477, 486, 488,
861
862 478, 479, 480, 490, 492, 497, 481, 483, 485, 493,
863 482, 486, 484, 494, 487, 495, 498, 499, 489, 500,
864 501, 491, 493, 496, 502, 488, 495, 503, 492, 490,
865 494, 506, 507, 504, 505, 509, 508, 513, 514, 511,
866 492, 497, 508, 500, 510, 493, 519, 503, 509, 511,
867 0, 512, 498, 499, 515, 500, 501, 504, 516, 505,
868 502, 512, 510, 503, 516, 517, 518, 506, 507, 504,
869 505, 509, 508, 513, 514, 511, 518, 0, 515, 0,
870 510, 0, 519, 517, 0, 0, 0, 512, 0, 0,
871 515, 0, 0, 0, 516, 0, 0, 0, 0, 0,
872
873 0, 517, 518, 521, 521, 521, 521, 521, 521, 522,
874 522, 522, 522, 522, 522, 523, 523, 523, 523, 523,
875 523, 524, 524, 524, 524, 524, 524, 526, 0, 526,
876 526, 526, 526, 527, 527, 527, 527, 527, 527, 528,
877 0, 528, 528, 528, 528, 529, 529, 529, 529, 529,
878 529, 530, 530, 530, 530, 530, 531, 531, 531, 531,
879 531, 531, 532, 532, 532, 532, 533, 533, 533, 533,
880 533, 533, 534, 534, 534, 534, 534, 534, 535, 0,
881 0, 535, 535, 535, 520, 520, 520, 520, 520, 520,
882 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
883
884 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
885 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
886 520, 520, 520, 520, 520, 520, 520, 520, 520, 520,
887 520, 520, 520, 520, 520, 520, 520, 520, 520, 520
888 } ;
889
890 static yy_state_type yy_last_accepting_state;
891 static char *yy_last_accepting_cpos;
892
893 /* The intent behind this definition is that it'll catch
894 * any uses of REJECT which flex missed.
895 */
896 #define REJECT reject_used_but_not_detected
897 static int yy_more_flag = 0;
898 static int yy_more_len = 0;
899 #define yymore() (yy_more_flag = 1)
900 #define YY_MORE_ADJ yy_more_len
901 #define YY_RESTORE_YY_MORE_OFFSET
902 char *yytext;
903 #line 1 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
904 #define INITIAL 0
905 #line 2 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
906 /*
907 * ASCEND Lexing Program
908 *
909 * This file is part of the Ascend Language Interpreter.
910 *
911 * The Ascend Language Interpreter is free software; you can redistribute
912 * it and/or modify it under the terms of the GNU General Public License
913 * as published by the Free Software Foundation; either version 2 of the
914 * License, or (at your option) any later version.
915 *
916 * The Ascend Language Interpreter is distributed in hope that it will be
917 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
918 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
919 * General Public License for more details.
920 *
921 * You should have received a copy of the GNU General Public License
922 * along with the program; if not, write to the Free Software Foundation,
923 * Inc., 675 Mass Ave, Cambridge, MA 02139 USA. Check the file named
924 * COPYING.
925 *
926 * This module is the input file for Flex (Lexical Analyzer
927 * Generator). Its goal is to convert a stream of characters into a
928 * stream of tokens. It has been defined to be consistent with the
929 * routines required by the common compiler-compiler yacc.
930 */
931
932 #include <stdio.h>
933 #include <stdlib.h>
934 #include <string.h>
935 #include <math.h>
936 #include "utilities/ascConfig.h"
937 #include "utilities/ascMalloc.h"
938 #include "compiler/compiler.h"
939 /* everything between here and the next comment is only here */
940 #include "compiler/fractions.h"
941 #include "compiler/dimen.h"
942 #include "compiler/functype.h"
943 #include "compiler/func.h"
944 #include "compiler/types.h"
945 #include "compiler/stattypes.h"
946 #include "compiler/fractions.h"
947 #include "compiler/proc.h"
948 /* because ascParse.h has a nasty union we can't digest without them. */
949 #include "compiler/ascParse.h"
950 /* these below we actually need */
951 #include "general/list.h"
952 #include "compiler/module.h"
953 #include "compiler/scanner.h"
954 #include "compiler/symtab.h"
955 #include "compiler/parser.h"
956
957 #define YY_BREAK
958 /* Defining yybreak as above means that all of our matches must end
959 * in break or return because the normal flex supplied yybreak will
960 * be preempted by our empty one.
961 * In cases where matches contain a conditional return, make sure a
962 * break follows in the failure case.
963 */
964
965 #define ENDTOK 0
966 /* Return value when we reach the end of the input.
967 * This to must be 0 or negative according to yacc
968 */
969
970 #define MAX_REQUIRE_DEPTH 10
971 /* The maximum number of REQUIREd file nesting we will accept.
972 * See RequireStack below.
973 */
974
975 #define WORKBUF_INIT_SIZE 4095
976 /* We need a temporary buffer to copy yytext into before returning
977 * to the scanner (see g_workbuf below).
978 * WORKBUF_INIT_SIZE is the initial size of g_workbuf
979 */
980
981 static unsigned long yy_line = 1;
982 /* The current line number;
983 * every match of newline (\n) needs to ++ this variable.
984 */
985
986 static unsigned long start_line = 0;
987 /* The ine number where an open-comment, open-brace, or
988 * open-double-quote occurs. We use this to help in error reporting.
989 */
990
991 static int CommentNestLevel = 0;
992 /* Nesting level of (* comments *)
993 */
994
995 static int BracesNestLevel = 0;
996 /* Nesting level of {braced} expressions
997 */
998
999 static int MatchedBackslash = 0;
1000 /* If this variable is positive, we matched a backslash \ in a DoubleQuote
1001 * or BracedText state, and we should call ProcessBackslashes() to
1002 * process them.
1003 */
1004
1005 static int RequireIndex = 0;
1006 /* The current nesting level of REQUIREd files
1007 */
1008
1009 static YY_BUFFER_STATE RequireStack[MAX_REQUIRE_DEPTH];
1010 /* The Flex buffers used for the REQUIREd files
1011 */
1012
1013 static char *g_workbuf = NULL;
1014 /* We need a place to keep doubly-quoted-text and braced-text for passing
1015 * it back to the parser. yytext will not work since the parser may ask
1016 * the scanner to read another token, at which point the value in yytext
1017 * gets lost.
1018 *
1019 * The initial size of g_workbuf is WORKBUF_INIT_SIZE, and g_workbuf
1020 * doubles when it needs more space.
1021 *
1022 * A call to CopyIntoWorkBuffer(yytext,yyleng) will copy yyleng characters
1023 * of yytext into the working buffer.
1024 *
1025 * Note that having a single work buffer will not work if we ever create
1026 * yacc productions that scan multiple chunks of doubly-quoted-text and/or
1027 * braced-text before acting on them.
1028 */
1029
1030
1031 /* Forward declaration of functions
1032 * provided at the end of this file.
1033 */
1034 static int Asc_ScannerPopBuffer(void);
1035 static char *CopyIntoWorkBuffer(CONST char *, unsigned long);
1036 static int Process_Backslashes(void);
1037 static void ErrMsg_BracesEOF(void);
1038 static void ErrMsg_CommentEOF(void);
1039 static void ErrMsg_DoubleQuoteEOF(void);
1040 static void ErrMsg_LongID(void);
1041 static void ErrMsg_LongSymbol(void);
1042 static void ErrMsg_SymbolEOF(void);
1043 static void ErrMsg_SymbolEOL(void);
1044 static void ErrMsg_UnexpectedChar(void);
1045
1046 #define Comment 1
1047
1048 #define Symbol 2
1049
1050 #define BracedText 3
1051
1052 #define DoubleQuote 4
1053
1054
1055 /* Macros after this point can all be overridden by user definitions in
1056 * section 1.
1057 */
1058
1059 #ifndef YY_SKIP_YYWRAP
1060 #ifdef __cplusplus
1061 extern "C" int yywrap YY_PROTO(( void ));
1062 #else
1063 extern int yywrap YY_PROTO(( void ));
1064 #endif
1065 #endif
1066
1067 #ifndef YY_NO_UNPUT
1068 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1069 #endif
1070
1071 #ifndef yytext_ptr
1072 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1073 #endif
1074
1075 #ifdef YY_NEED_STRLEN
1076 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1077 #endif
1078
1079 #ifndef YY_NO_INPUT
1080 #ifdef __cplusplus
1081 static int yyinput YY_PROTO(( void ));
1082 #else
1083 static int input YY_PROTO(( void ));
1084 #endif
1085 #endif
1086
1087 #if YY_STACK_USED
1088 static int yy_start_stack_ptr = 0;
1089 static int yy_start_stack_depth = 0;
1090 static int *yy_start_stack = 0;
1091 #ifndef YY_NO_PUSH_STATE
1092 static void yy_push_state YY_PROTO(( int new_state ));
1093 #endif
1094 #ifndef YY_NO_POP_STATE
1095 static void yy_pop_state YY_PROTO(( void ));
1096 #endif
1097 #ifndef YY_NO_TOP_STATE
1098 static int yy_top_state YY_PROTO(( void ));
1099 #endif
1100
1101 #else
1102 #define YY_NO_PUSH_STATE 1
1103 #define YY_NO_POP_STATE 1
1104 #define YY_NO_TOP_STATE 1
1105 #endif
1106
1107 #ifdef YY_MALLOC_DECL
1108 YY_MALLOC_DECL
1109 #else
1110 #if __STDC__
1111 #ifndef __cplusplus
1112 #include <stdlib.h>
1113 #endif
1114 #else
1115 /* Just try to get by without declaring the routines. This will fail
1116 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1117 * or sizeof(void*) != sizeof(int).
1118 */
1119 #endif
1120 #endif
1121
1122 /* Amount of stuff to slurp up with each read. */
1123 #ifndef YY_READ_BUF_SIZE
1124 #define YY_READ_BUF_SIZE 8192
1125 #endif
1126
1127 /* Copy whatever the last rule matched to the standard output. */
1128
1129 #ifndef ECHO
1130 /* This used to be an fputs(), but since the string might contain NUL's,
1131 * we now use fwrite().
1132 */
1133 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1134 #endif
1135
1136 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1137 * is returned in "result".
1138 */
1139 #ifndef YY_INPUT
1140 #define YY_INPUT(buf,result,max_size) \
1141 if ( yy_current_buffer->yy_is_interactive ) \
1142 { \
1143 int c = '*', n; \
1144 for ( n = 0; n < max_size && \
1145 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1146 buf[n] = (char) c; \
1147 if ( c == '\n' ) \
1148 buf[n++] = (char) c; \
1149 if ( c == EOF && ferror( yyin ) ) \
1150 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1151 result = n; \
1152 } \
1153 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1154 && ferror( yyin ) ) \
1155 YY_FATAL_ERROR( "input in flex scanner failed" );
1156 #endif
1157
1158 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1159 * we don't want an extra ';' after the "return" because that will cause
1160 * some compilers to complain about unreachable statements.
1161 */
1162 #ifndef yyterminate
1163 #define yyterminate() return YY_NULL
1164 #endif
1165
1166 /* Number of entries by which start-condition stack grows. */
1167 #ifndef YY_START_STACK_INCR
1168 #define YY_START_STACK_INCR 25
1169 #endif
1170
1171 /* Report a fatal error. */
1172 #ifndef YY_FATAL_ERROR
1173 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1174 #endif
1175
1176 /* Default declaration of generated scanner - a define so the user can
1177 * easily add parameters.
1178 */
1179 #ifndef YY_DECL
1180 #define YY_DECL int yylex YY_PROTO(( void ))
1181 #endif
1182
1183 /* Code executed at the beginning of each rule, after yytext and yyleng
1184 * have been set up.
1185 */
1186 #ifndef YY_USER_ACTION
1187 #define YY_USER_ACTION
1188 #endif
1189
1190 /* Code executed at the end of each rule. */
1191 #ifndef YY_BREAK
1192 #define YY_BREAK break;
1193 #endif
1194
1195 #define YY_RULE_SETUP \
1196 YY_USER_ACTION
1197
1198 YY_DECL
1199 {
1200 register yy_state_type yy_current_state;
1201 register char *yy_cp = NULL, *yy_bp = NULL;
1202 register int yy_act;
1203
1204 #line 158 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1205
1206
1207
1208 if ( yy_init )
1209 {
1210 yy_init = 0;
1211
1212 #ifdef YY_USER_INIT
1213 YY_USER_INIT;
1214 #endif
1215
1216 if ( ! yy_start )
1217 yy_start = 1; /* first start state */
1218
1219 if ( ! yyin )
1220 yyin = stdin;
1221
1222 if ( ! yyout )
1223 yyout = stdout;
1224
1225 if ( ! yy_current_buffer )
1226 yy_current_buffer =
1227 yy_create_buffer( yyin, YY_BUF_SIZE );
1228
1229 yy_load_buffer_state();
1230 }
1231
1232 while ( 1 ) /* loops until end-of-file is reached */
1233 {
1234 yy_more_len = 0;
1235 if ( yy_more_flag )
1236 {
1237 yy_more_len = yy_c_buf_p - yytext_ptr;
1238 yy_more_flag = 0;
1239 }
1240 yy_cp = yy_c_buf_p;
1241
1242 /* Support of yytext. */
1243 *yy_cp = yy_hold_char;
1244
1245 /* yy_bp points to the position in yy_ch_buf of the start of
1246 * the current run.
1247 */
1248 yy_bp = yy_cp;
1249
1250 yy_current_state = yy_start;
1251 yy_match:
1252 do
1253 {
1254 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1255 if ( yy_accept[yy_current_state] )
1256 {
1257 yy_last_accepting_state = yy_current_state;
1258 yy_last_accepting_cpos = yy_cp;
1259 }
1260 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1261 {
1262 yy_current_state = (int) yy_def[yy_current_state];
1263 if ( yy_current_state >= 521 )
1264 yy_c = yy_meta[(unsigned int) yy_c];
1265 }
1266 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1267 ++yy_cp;
1268 }
1269 while ( yy_base[yy_current_state] != 1485 );
1270
1271 yy_find_action:
1272 yy_act = yy_accept[yy_current_state];
1273 if ( yy_act == 0 )
1274 { /* have to back up */
1275 yy_cp = yy_last_accepting_cpos;
1276 yy_current_state = yy_last_accepting_state;
1277 yy_act = yy_accept[yy_current_state];
1278 }
1279
1280 YY_DO_BEFORE_ACTION;
1281
1282
1283 do_action: /* This label is used only to access EOF actions. */
1284
1285
1286 switch ( yy_act )
1287 { /* beginning of action switch */
1288 case 0: /* must back up */
1289 /* undo the effects of YY_DO_BEFORE_ACTION */
1290 *yy_cp = yy_hold_char;
1291 yy_cp = yy_last_accepting_cpos;
1292 yy_current_state = yy_last_accepting_state;
1293 goto yy_find_action;
1294
1295 case 1:
1296 YY_RULE_SETUP
1297 #line 160 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1298 { return LEQ_T; }
1299 YY_BREAK
1300 case 2:
1301 YY_RULE_SETUP
1302 #line 161 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1303 { return GEQ_T; }
1304 YY_BREAK
1305 case 3:
1306 YY_RULE_SETUP
1307 #line 162 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1308 { return NEQ_T; }
1309 YY_BREAK
1310 case 4:
1311 YY_RULE_SETUP
1312 #line 163 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1313 { return DOTDOT_T; }
1314 YY_BREAK
1315 case 5:
1316 YY_RULE_SETUP
1317 #line 164 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1318 { return DBLCOLON_T;}
1319 YY_BREAK
1320 case 6:
1321 YY_RULE_SETUP
1322 #line 165 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1323 { return ASSIGN_T; }
1324 YY_BREAK
1325 case 7:
1326 YY_RULE_SETUP
1327 #line 166 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1328 { return CASSIGN_T; }
1329 YY_BREAK
1330 case 8:
1331 YY_RULE_SETUP
1332 #line 167 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1333 { return BEQ_T ; }
1334 YY_BREAK
1335 case 9:
1336 YY_RULE_SETUP
1337 #line 168 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1338 { return BNE_T ; }
1339 YY_BREAK
1340 case 10:
1341 YY_RULE_SETUP
1342 #line 170 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1343 { return '=' ;}
1344 YY_BREAK
1345 case 11:
1346 YY_RULE_SETUP
1347 #line 171 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1348 { return '>' ;}
1349 YY_BREAK
1350 case 12:
1351 YY_RULE_SETUP
1352 #line 172 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1353 { return '<' ;}
1354 YY_BREAK
1355 case 13:
1356 YY_RULE_SETUP
1357 #line 173 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1358 { return ',' ;}
1359 YY_BREAK
1360 case 14:
1361 YY_RULE_SETUP
1362 #line 174 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1363 { return '.' ;}
1364 YY_BREAK
1365 case 15:
1366 YY_RULE_SETUP
1367 #line 175 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1368 { return ';' ;}
1369 YY_BREAK
1370 case 16:
1371 YY_RULE_SETUP
1372 #line 176 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1373 { return ':' ;}
1374 YY_BREAK
1375 case 17:
1376 YY_RULE_SETUP
1377 #line 177 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1378 { return '[' ;}
1379 YY_BREAK
1380 case 18:
1381 YY_RULE_SETUP
1382 #line 178 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1383 { return ']' ;}
1384 YY_BREAK
1385 case 19:
1386 YY_RULE_SETUP
1387 #line 179 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1388 { return '(' ;}
1389 YY_BREAK
1390 case 20:
1391 YY_RULE_SETUP
1392 #line 180 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1393 { return ')' ;}
1394 YY_BREAK
1395 case 21:
1396 YY_RULE_SETUP
1397 #line 181 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1398 { return '+' ;}
1399 YY_BREAK
1400 case 22:
1401 YY_RULE_SETUP
1402 #line 182 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1403 { return '-' ;}
1404 YY_BREAK
1405 case 23:
1406 YY_RULE_SETUP
1407 #line 183 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1408 { return '*' ;}
1409 YY_BREAK
1410 case 24:
1411 YY_RULE_SETUP
1412 #line 184 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1413 { return '/' ;}
1414 YY_BREAK
1415 case 25:
1416 YY_RULE_SETUP
1417 #line 185 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1418 { return '^' ;}
1419 YY_BREAK
1420 case 26:
1421 YY_RULE_SETUP
1422 #line 186 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1423 { return '|' ;}
1424 YY_BREAK
1425 /**** Reserved Keywords ****/
1426 case 27:
1427 YY_RULE_SETUP
1428 #line 190 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1429 { return ADD_T ; }
1430 YY_BREAK
1431 case 28:
1432 YY_RULE_SETUP
1433 #line 191 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1434 { return ALIASES_T ; }
1435 YY_BREAK
1436 case 29:
1437 YY_RULE_SETUP
1438 #line 192 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1439 { return AND_T ; }
1440 YY_BREAK
1441 case 30:
1442 YY_RULE_SETUP
1443 #line 193 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1444 { return ANY_T ; }
1445 YY_BREAK
1446 case 31:
1447 YY_RULE_SETUP
1448 #line 194 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1449 { return AREALIKE_T ; }
1450 YY_BREAK
1451 case 32:
1452 YY_RULE_SETUP
1453 #line 195 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1454 { return ARETHESAME_T ; }
1455 YY_BREAK
1456 case 33:
1457 YY_RULE_SETUP
1458 #line 196 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1459 { return ARRAY_T ; }
1460 YY_BREAK
1461 case 34:
1462 YY_RULE_SETUP
1463 #line 197 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1464 { return ATOM_T ; }
1465 YY_BREAK
1466 case 35:
1467 YY_RULE_SETUP
1468 #line 198 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1469 { return BREAK_T ; }
1470 YY_BREAK
1471 case 36:
1472 YY_RULE_SETUP
1473 #line 199 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1474 { return CALL_T ; }
1475 YY_BREAK
1476 case 37:
1477 YY_RULE_SETUP
1478 #line 200 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1479 { return CARD_T ; }
1480 YY_BREAK
1481 case 38:
1482 YY_RULE_SETUP
1483 #line 201 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1484 { return CASE_T ; }
1485 YY_BREAK
1486 case 39:
1487 YY_RULE_SETUP
1488 #line 202 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1489 { return CHECK_T ; }
1490 YY_BREAK
1491 case 40:
1492 YY_RULE_SETUP
1493 #line 203 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1494 { return CHOICE_T ; }
1495 YY_BREAK
1496 case 41:
1497 YY_RULE_SETUP
1498 #line 204 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1499 { return CONDITIONAL_T ; }
1500 YY_BREAK
1501 case 42:
1502 YY_RULE_SETUP
1503 #line 205 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1504 { return CONSTANT_T ; }
1505 YY_BREAK
1506 case 43:
1507 YY_RULE_SETUP
1508 #line 206 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1509 { return CONTINUE_T ; }
1510 YY_BREAK
1511 case 44:
1512 YY_RULE_SETUP
1513 #line 207 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1514 { return CREATE_T ; }
1515 YY_BREAK
1516 case 45:
1517 YY_RULE_SETUP
1518 #line 208 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1519 { return DATA_T ; }
1520 YY_BREAK
1521 case 46:
1522 YY_RULE_SETUP
1523 #line 209 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1524 { return DECREASING_T ; }
1525 YY_BREAK
1526 case 47:
1527 YY_RULE_SETUP
1528 #line 210 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1529 { return DEFAULT_T ; }
1530 YY_BREAK
1531 case 48:
1532 YY_RULE_SETUP
1533 #line 211 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1534 { return DEFINITION_T ; }
1535 YY_BREAK
1536 case 49:
1537 YY_RULE_SETUP
1538 #line 212 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1539 { return DIMENSION_T ; }
1540 YY_BREAK
1541 case 50:
1542 YY_RULE_SETUP
1543 #line 213 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1544 { return DIMENSIONLESS_T ; }
1545 YY_BREAK
1546 case 51:
1547 YY_RULE_SETUP
1548 #line 214 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1549 { return DO_T ; }
1550 YY_BREAK
1551 case 52:
1552 YY_RULE_SETUP
1553 #line 215 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1554 { return ELSE_T ; }
1555 YY_BREAK
1556 case 53:
1557 YY_RULE_SETUP
1558 #line 216 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1559 { return END_T ; }
1560 YY_BREAK
1561 case 54:
1562 YY_RULE_SETUP
1563 #line 217 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1564 { return EXPECT_T ; }
1565 YY_BREAK
1566 case 55:
1567 YY_RULE_SETUP
1568 #line 218 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1569 { return EXTERNAL_T ; }
1570 YY_BREAK
1571 case 56:
1572 YY_RULE_SETUP
1573 #line 219 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1574 { return FALSE_T ; }
1575 YY_BREAK
1576 case 57:
1577 YY_RULE_SETUP
1578 #line 220 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1579 { return FALLTHRU_T ; }
1580 YY_BREAK
1581 case 58:
1582 YY_RULE_SETUP
1583 #line 221 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1584 { return FIX_T ; }
1585 YY_BREAK
1586 case 59:
1587 YY_RULE_SETUP
1588 #line 222 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1589 { return FREE_T ; }
1590 YY_BREAK
1591 case 60:
1592 YY_RULE_SETUP
1593 #line 223 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1594 { return FOR_T ; }
1595 YY_BREAK
1596 case 61:
1597 YY_RULE_SETUP
1598 #line 224 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1599 { return FROM_T ; }
1600 YY_BREAK
1601 case 62:
1602 YY_RULE_SETUP
1603 #line 225 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1604 { return GLOBAL_T ; }
1605 YY_BREAK
1606 case 63:
1607 YY_RULE_SETUP
1608 #line 226 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1609 { return ASSERT_T ; }
1610 YY_BREAK
1611 case 64:
1612 YY_RULE_SETUP
1613 #line 227 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1614 { return IF_T ; }
1615 YY_BREAK
1616 case 65:
1617 YY_RULE_SETUP
1618 #line 228 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1619 { return IMPORT_T ; }
1620 YY_BREAK
1621 case 66:
1622 YY_RULE_SETUP
1623 #line 229 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1624 { return IN_T ; }
1625 YY_BREAK
1626 case 67:
1627 YY_RULE_SETUP
1628 #line 230 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1629 { return INCREASING_T ; }
1630 YY_BREAK
1631 case 68:
1632 YY_RULE_SETUP
1633 #line 231 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1634 { return INPUT_T ; }
1635 YY_BREAK
1636 case 69:
1637 YY_RULE_SETUP
1638 #line 232 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1639 { return INTERSECTION_T ; }
1640 YY_BREAK
1641 case 70:
1642 YY_RULE_SETUP
1643 #line 233 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1644 { return ISA_T ; }
1645 YY_BREAK
1646 case 71:
1647 YY_RULE_SETUP
1648 #line 234 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1649 { return ISREFINEDTO_T ; }
1650 YY_BREAK
1651 case 72:
1652 YY_RULE_SETUP
1653 #line 235 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1654 { return MAXIMIZE_T ; }
1655 YY_BREAK
1656 case 73:
1657 YY_RULE_SETUP
1658 #line 236 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1659 { return MAXINTEGER_T ; }
1660 YY_BREAK
1661 case 74:
1662 YY_RULE_SETUP
1663 #line 237 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1664 { return MAXREAL_T ; }
1665 YY_BREAK
1666 case 75:
1667 YY_RULE_SETUP
1668 #line 238 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1669 { return METHOD_T ; }
1670 YY_BREAK
1671 case 76:
1672 YY_RULE_SETUP
1673 #line 239 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1674 { return METHODS_T ; }
1675 YY_BREAK
1676 case 77:
1677 YY_RULE_SETUP
1678 #line 240 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1679 { return MINIMIZE_T ; }
1680 YY_BREAK
1681 case 78:
1682 YY_RULE_SETUP
1683 #line 241 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1684 { return MODEL_T ; }
1685 YY_BREAK
1686 case 79:
1687 YY_RULE_SETUP
1688 #line 242 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1689 { return NOT_T ; }
1690 YY_BREAK
1691 case 80:
1692 YY_RULE_SETUP
1693 #line 243 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1694 { return NOTES_T ; }
1695 YY_BREAK
1696 case 81:
1697 YY_RULE_SETUP
1698 #line 244 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1699 { return OF_T ; }
1700 YY_BREAK
1701 case 82:
1702 YY_RULE_SETUP
1703 #line 245 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1704 { return OR_T ; }
1705 YY_BREAK
1706 case 83:
1707 YY_RULE_SETUP
1708 #line 246 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1709 { return OTHERWISE_T ; }
1710 YY_BREAK
1711 case 84:
1712 YY_RULE_SETUP
1713 #line 247 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1714 { return OUTPUT_T ; }
1715 YY_BREAK
1716 case 85:
1717 YY_RULE_SETUP
1718 #line 248 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1719 { return PROD_T ; }
1720 YY_BREAK
1721 case 86:
1722 YY_RULE_SETUP
1723 #line 249 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1724 { return PROVIDE_T ; }
1725 YY_BREAK
1726 case 87:
1727 YY_RULE_SETUP
1728 #line 250 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1729 { return REFINES_T ; }
1730 YY_BREAK
1731 case 88:
1732 YY_RULE_SETUP
1733 #line 251 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1734 { return REPLACE_T ; }
1735 YY_BREAK
1736 case 89:
1737 YY_RULE_SETUP
1738 #line 252 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1739 { return REQUIRE_T ; }
1740 YY_BREAK
1741 case 90:
1742 YY_RULE_SETUP
1743 #line 253 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1744 { return RETURN_T ; }
1745 YY_BREAK
1746 case 91:
1747 YY_RULE_SETUP
1748 #line 254 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1749 { return RUN_T ; }
1750 YY_BREAK
1751 case 92:
1752 YY_RULE_SETUP
1753 #line 255 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1754 { return SATISFIED_T ; }
1755 YY_BREAK
1756 case 93:
1757 YY_RULE_SETUP
1758 #line 256 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1759 { return SELECT_T ; }
1760 YY_BREAK
1761 case 94:
1762 YY_RULE_SETUP
1763 #line 257 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1764 { return SUCHTHAT_T ; }
1765 YY_BREAK
1766 case 95:
1767 YY_RULE_SETUP
1768 #line 258 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1769 { return SUM_T ; }
1770 YY_BREAK
1771 case 96:
1772 YY_RULE_SETUP
1773 #line 259 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1774 { return SIZE_T ; }
1775 YY_BREAK
1776 case 97:
1777 YY_RULE_SETUP
1778 #line 260 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1779 { return SWITCH_T ; }
1780 YY_BREAK
1781 case 98:
1782 YY_RULE_SETUP
1783 #line 261 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1784 { return STOP_T ; }
1785 YY_BREAK
1786 case 99:
1787 YY_RULE_SETUP
1788 #line 262 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1789 { return THEN_T ; }
1790 YY_BREAK
1791 case 100:
1792 YY_RULE_SETUP
1793 #line 263 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1794 { return TRUE_T ; }
1795 YY_BREAK
1796 case 101:
1797 YY_RULE_SETUP
1798 #line 264 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1799 { return UNION_T ; }
1800 YY_BREAK
1801 case 102:
1802 YY_RULE_SETUP
1803 #line 265 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1804 { return UNITS_T ; }
1805 YY_BREAK
1806 case 103:
1807 YY_RULE_SETUP
1808 #line 266 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1809 { return UNIVERSAL_T ; }
1810 YY_BREAK
1811 case 104:
1812 YY_RULE_SETUP
1813 #line 267 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1814 { return USE_T ; }
1815 YY_BREAK
1816 case 105:
1817 YY_RULE_SETUP
1818 #line 268 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1819 { return VALUE_T ; }
1820 YY_BREAK
1821 case 106:
1822 YY_RULE_SETUP
1823 #line 269 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1824 { return WHEN_T ; }
1825 YY_BREAK
1826 case 107:
1827 YY_RULE_SETUP
1828 #line 270 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1829 { return WHERE_T ; }
1830 YY_BREAK
1831 case 108:
1832 YY_RULE_SETUP
1833 #line 271 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1834 { return WHILE_T ; }
1835 YY_BREAK
1836 case 109:
1837 YY_RULE_SETUP
1838 #line 272 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1839 { return WILLBE_T ; }
1840 YY_BREAK
1841 case 110:
1842 YY_RULE_SETUP
1843 #line 273 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1844 { return WILLBETHESAME_T ; }
1845 YY_BREAK
1846 case 111:
1847 YY_RULE_SETUP
1848 #line 274 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1849 { return WILLNOTBETHESAME_T ; }
1850 YY_BREAK
1851 case 112:
1852 YY_RULE_SETUP
1853 #line 275 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1854 { return WITH_T ; }
1855 YY_BREAK
1856 case 113:
1857 YY_RULE_SETUP
1858 #line 276 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1859 { return WITH_VALUE_T ; }
1860 YY_BREAK
1861 /*
1862 * Code to handle (* Comments *)
1863 *
1864 * "(*" puts us into the Comment state. Comments nest, so in the
1865 * Comment state we need to look for "(*" that increases the nesting
1866 * level and "*)" that will lower it.
1867 * Flex is faster if we match as much as possible, so we repeat
1868 * patterns with and without the "\n" (although it is more difficult
1869 * for the maintainer to understand) to avoid the overhead of a
1870 * separate "\n" rule.
1871 * Do NOT try to match \(\*+ since that causes "(****)" to parse
1872 * incorrectly.
1873 */
1874 case 114:
1875 YY_RULE_SETUP
1876 #line 292 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1877 {
1878 /* Match "(" followed by "*" puts us into
1879 * the COMMENT state. Don't use \*+ since
1880 * that will parse "(***)" incorrectly.
1881 * Initialize the nesting level.
1882 * Store the current line for ErrMsg use.
1883 */
1884 BEGIN (Comment);
1885 CommentNestLevel = 1;
1886 start_line = yy_line;
1887 break;
1888 }
1889 YY_BREAK
1890 case 115:
1891 YY_RULE_SETUP
1892 #line 304 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1893 {
1894 /* Match "(" followed "*" followed by
1895 * anything that's not "(" nor "*".
1896 * Increase the commment nesting level.
1897 */
1898 CommentNestLevel++;
1899 break;
1900 }
1901 YY_BREAK
1902 case 116:
1903 YY_RULE_SETUP
1904 #line 312 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1905 {
1906 /* Match "(" followed by "*" followed by
1907 * anything that's not "(" nor "*".
1908 * Increase the commment nesting level.
1909 */
1910 yy_line++;
1911 CommentNestLevel++;
1912 break;
1913 }
1914 YY_BREAK
1915 case 117:
1916 YY_RULE_SETUP
1917 #line 321 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1918 {
1919 /* Match anything not "*" or "(" followed
1920 * by one or more "*"s followed by ")".
1921 * This decreases the comment nesting level
1922 * and kicks us out if we're back to zero.
1923 */
1924 CommentNestLevel--;
1925 if (CommentNestLevel == 0) {
1926 BEGIN (INITIAL);
1927 }
1928 break;
1929 }
1930 YY_BREAK
1931 case 118:
1932 YY_RULE_SETUP
1933 #line 333 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1934 {
1935 /* Eat anything that's not a "*" nor a "("
1936 */
1937 break;
1938 }
1939 YY_BREAK
1940 case 119:
1941 YY_RULE_SETUP
1942 #line 338 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1943 {
1944 /* Eat anything that's not a "*" nor a "("
1945 * that is followed by a newline.
1946 * This rule also matches empty line.
1947 */
1948 yy_line++;
1949 break;
1950 }
1951 YY_BREAK
1952 case 120:
1953 YY_RULE_SETUP
1954 #line 346 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1955 {
1956 /* Eat "("s not followed by "*"
1957 */
1958 break;
1959 }
1960 YY_BREAK
1961 case 121:
1962 YY_RULE_SETUP
1963 #line 351 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1964 {
1965 /* Eat "("s not followed by "*" plus a "\n"
1966 */
1967 yy_line++;
1968 break;
1969 }
1970 YY_BREAK
1971 case 122:
1972 YY_RULE_SETUP
1973 #line 357 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1974 {
1975 /* Eat "*"s not followed by ")"
1976 */
1977 break;
1978 }
1979 YY_BREAK
1980 case 123:
1981 YY_RULE_SETUP
1982 #line 362 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1983 {
1984 /* Eat "*" not followed by ")" plus a "\n"
1985 */
1986 yy_line++;
1987 break;
1988 }
1989 YY_BREAK
1990 case YY_STATE_EOF(Comment):
1991 #line 368 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
1992 {
1993 /* An EOF in a Comment means bad nesting.
1994 * Print an error and pop back a level
1995 * or return ENDTOK if no more input.
1996 */
1997 ErrMsg_CommentEOF();
1998 CommentNestLevel = 0;
1999 if ( Asc_ScannerPopBuffer() == 1 ) {
2000 return ENDTOK;
2001 }
2002 break;
2003 }
2004 YY_BREAK
2005 /*
2006 * Code to handle 'Symbols'
2007 *
2008 * Symbols are simple: they are 'singely quoted strings' that
2009 * exist on a single line. Look for anything that is not
2010 * a quote or a newline to get the text of the symbol.
2011 */
2012 case 124:
2013 YY_RULE_SETUP
2014 #line 390 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2015 {
2016 /* A single quote (') in the INITIAL state
2017 * puts us into the Symbol state.
2018 */
2019 BEGIN (Symbol);
2020 break;
2021 }
2022 YY_BREAK
2023 case 125:
2024 YY_RULE_SETUP
2025 #line 397 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2026 {
2027 /* Anything that is not a (') nor a newline
2028 * followed by a (') is the symbol's text.
2029 * Return to the INITIAL state, store the
2030 * symbol in the symbol table and return
2031 * SYMBOL_T to the parser.
2032 */
2033 BEGIN (INITIAL);
2034 /* strip off the final (')
2035 */
2036 yytext[--yyleng] = '\0';
2037 if (yyleng > YY_MAXLEN) {
2038 ErrMsg_LongSymbol();
2039 break;
2040 }
2041 zz_lval.sym_ptr = AddSymbolL(yytext,yyleng);
2042 return SYMBOL_T;
2043 }
2044 YY_BREAK
2045 case 126:
2046 YY_RULE_SETUP
2047 #line 415 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2048 {
2049 /* If we find a newline before a ('), the
2050 * symbol is unterminated. Print an error
2051 * message and return to the INITIAL state.
2052 */
2053 ErrMsg_SymbolEOL();
2054 yy_line++;
2055 BEGIN(INITIAL);
2056 break;
2057 }
2058 YY_BREAK
2059 case YY_STATE_EOF(Symbol):
2060 #line 425 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2061 {
2062 /* If we find an EOF before a ('), the
2063 * symbol is unterminated. Print an error
2064 * message and pop to the previously
2065 * REQUIREd file or return ENDTOK if the
2066 * pop fails due to no more input.
2067 */
2068 ErrMsg_SymbolEOF();
2069 if ( Asc_ScannerPopBuffer() == 1 ) {
2070 return ENDTOK;
2071 }
2072 break;
2073 }
2074 YY_BREAK
2075 /*
2076 * Code to handle "Text in Double Quotes"
2077 *
2078 * The DoubleQuote state begins with a double quote and ends
2079 * with a double quote; double quotes can be included by
2080 * escaping them with a backslash (e.g. \"). There is no
2081 * nesting level to worry about.
2082 * Flex is faster if we match as much as possible, so we repeat
2083 * patterns with and without the "\n" (although it is more difficult
2084 * for the maintainer to understand) to avoid the overhead of a
2085 * separate "\n" rule.
2086 * We want to keep the text, so we need to call yymore().
2087 */
2088 case 127:
2089 YY_RULE_SETUP
2090 #line 454 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2091 {
2092 /* A double quote puts us into the
2093 * DoubleQuote state. Save the line
2094 * number for error reporting.
2095 */
2096 BEGIN (DoubleQuote);
2097 start_line = yy_line;
2098 break;
2099 }
2100 YY_BREAK
2101 case 128:
2102 YY_RULE_SETUP
2103 #line 463 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2104 {
2105 /* A backslash \ in the DoubleQuote
2106 * state protects any character.
2107 */
2108 MatchedBackslash++;
2109 yymore();
2110 break;
2111 }
2112 YY_BREAK
2113 case 129:
2114 YY_RULE_SETUP
2115 #line 471 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2116 {
2117 /* A backslash \ in the DoubleQuote
2118 * state protects a newline.
2119 */
2120 MatchedBackslash++;
2121 yy_line++;
2122 yymore();
2123 break;
2124 }
2125 YY_BREAK
2126 case 130:
2127 YY_RULE_SETUP
2128 #line 480 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2129 {
2130 /* A double quote in the DoubleQuote state
2131 * (that is not protected by backslash)
2132 * will put us back in the INITIAL state.
2133 * Process the string and return DQUOTE_T
2134 * to the parser.
2135 */
2136 BEGIN (INITIAL);
2137 /* Remove the final double quote
2138 */
2139 yytext[--yyleng] = '\0';
2140 /* Do backslash substitutions on the string
2141 * before returing it to the scanner.
2142 */
2143 if ( MatchedBackslash != 0 ) {
2144 Process_Backslashes();
2145 MatchedBackslash = 0;
2146 }
2147 zz_lval.dquote_ptr =
2148 CopyIntoWorkBuffer(yytext,yyleng);
2149 return DQUOTE_T;
2150 }
2151 YY_BREAK
2152 case 131:
2153 YY_RULE_SETUP
2154 #line 502 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2155 {
2156 /* Match anything that is not backslash nor
2157 * doublequote and add it to the text.
2158 */
2159 yymore();
2160 break;
2161 }
2162 YY_BREAK
2163 case 132:
2164 YY_RULE_SETUP
2165 #line 509 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2166 {
2167 /* Match anything that is not backslash nor
2168 * doublequote and add it to the text.
2169 * This also matches an empty line.
2170 */
2171 yy_line++;
2172 yymore();
2173 break;
2174 }
2175 YY_BREAK
2176 case YY_STATE_EOF(DoubleQuote):
2177 #line 518 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2178 {
2179 /* End of File in a DoubleQuote state
2180 * means no matching double quote.
2181 * Print an error and pop next buffer
2182 * off the RequireStack or return ENDTOK
2183 * if there is no more input.
2184 */
2185 ErrMsg_DoubleQuoteEOF();
2186 MatchedBackslash = 0;
2187 if ( Asc_ScannerPopBuffer() == 1 ) {
2188 return ENDTOK;
2189 }
2190 break;
2191 }
2192 YY_BREAK
2193 /*
2194 * Code to handle { Text in Braces }
2195 *
2196 * "{" puts us into the BracedText state. Braces nest, so
2197 * in the BracedText state we need to look for "{" that increases
2198 * the nesting level and "}" that will lower it.
2199 * Flex is faster if we match as much as possible, so we repeat
2200 * patterns with and without the "\n" (although it is more difficult
2201 * for the maintainer to understand) to avoid the overhead of a
2202 * separate "\n" rule.
2203 * We want to keep the text we scan, so we have to call yymore().
2204 */
2205 case 133:
2206 YY_RULE_SETUP
2207 #line 547 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2208 { /* A "{" puts us into the BracedText state.
2209 * If from the opening "{" to the first
2210 * newline is all whitespace, then ignore
2211 * it.
2212 * Initialize the nesting level.
2213 * Save the current line number for
2214 * error message reporting.
2215 */
2216 BEGIN (BracedText);
2217 BracesNestLevel = 1;
2218 start_line = yy_line;
2219 yy_line++;
2220 break;
2221 }
2222 YY_BREAK
2223 case 134:
2224 YY_RULE_SETUP
2225 #line 561 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2226 {
2227 /* A "{" puts us into the BracedText state.
2228 * Initialize the nesting level.
2229 * Save the current line number for
2230 * error message reporting.
2231 */
2232 BEGIN (BracedText);
2233 BracesNestLevel = 1;
2234 start_line = yy_line;
2235 break;
2236 }
2237 YY_BREAK
2238 case 135:
2239 YY_RULE_SETUP
2240 #line 572 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2241 {
2242 /* A backslash \ in the BracedText state
2243 * protects any character and does not
2244 * affect the Nesting Level.
2245 */
2246 MatchedBackslash++;
2247 yymore();
2248 break;
2249 }
2250 YY_BREAK
2251 case 136:
2252 YY_RULE_SETUP
2253 #line 581 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2254 {
2255 /* A backslash \ in the BracedText state
2256 * protects a newline.
2257 */
2258 MatchedBackslash++;
2259 yy_line++;
2260 yymore();
2261 break;
2262 }
2263 YY_BREAK
2264 case 137:
2265 YY_RULE_SETUP
2266 #line 590 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2267 {
2268 /* A "{" in the braces state gets added to
2269 * the text and increase the nesting level.
2270 */
2271 BracesNestLevel++;
2272 yymore();
2273 break;
2274 }
2275 YY_BREAK
2276 case 138:
2277 YY_RULE_SETUP
2278 #line 598 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2279 {
2280 /* A "{" in the braces state gets added to
2281 * the text and increase the nesting level.
2282 */
2283 yy_line++;
2284 BracesNestLevel++;
2285 yymore();
2286 break;
2287 }
2288 YY_BREAK
2289 case 139:
2290 YY_RULE_SETUP
2291 #line 607 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2292 {
2293 /* A "}" will reduce the nesting level.
2294 * If the nesting level is zero, go back to
2295 * the INITIAL level, save the text as a
2296 * Symbol, do the backslash substitution,
2297 * and return BRACEDTEXT_T to the
2298 * parse; otherwise, add the "}" to the
2299 * text and keep scanning.
2300 */
2301 BracesNestLevel--;
2302 if (BracesNestLevel == 0) {
2303 BEGIN (INITIAL);
2304 /* Remove the final "}"
2305 */
2306 yytext[--yyleng] = '\0';
2307 /* Do backslash substitutions on the text
2308 * before returing it to the scanner.
2309 */
2310 if ( MatchedBackslash != 0 ) {
2311 Process_Backslashes();
2312 MatchedBackslash = 0;
2313 }
2314 zz_lval.braced_ptr =
2315 CopyIntoWorkBuffer(yytext,yyleng);
2316 return BRACEDTEXT_T;
2317 }
2318 yymore();
2319 break;
2320 }
2321 YY_BREAK
2322 case 140:
2323 YY_RULE_SETUP
2324 #line 636 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2325 {
2326 /* Match anything that is not "{" nor "}"
2327 * nor "\\"(backslash) and add it to text.
2328 */
2329 yymore();
2330 break;
2331 }
2332 YY_BREAK
2333 case 141:
2334 YY_RULE_SETUP
2335 #line 643 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2336 {
2337 /* Match anything that is not "{" nor "}"
2338 * nor "\\"(backslash) followed by a "\n"
2339 * and add it to text.
2340 * This also matches an empty line.
2341 */
2342 yy_line++;
2343 yymore();
2344 break;
2345 }
2346 YY_BREAK
2347 case YY_STATE_EOF(BracedText):
2348 #line 653 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2349 {
2350 /* End of File in braces means bad nesting.
2351 * Print an error message and pop to the
2352 * previously REQUIREd file or return
2353 * ENDTOK if no more input.
2354 */
2355 ErrMsg_BracesEOF();
2356 BracesNestLevel = 0;
2357 MatchedBackslash = 0;
2358 if ( Asc_ScannerPopBuffer() == 1 ) {
2359 return ENDTOK;
2360 }
2361 break;
2362 }
2363 YY_BREAK
2364 /*
2365 * Code to handle Miscellaneous types.
2366 *
2367 */
2368 case 142:
2369 YY_RULE_SETUP
2370 #line 674 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2371 {
2372 /* An integer. Defn near top of file.
2373 */
2374 zz_lval.int_value = atol(yytext);
2375 return INTEGER_T;
2376 }
2377 YY_BREAK
2378 case 143:
2379 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2380 yy_c_buf_p = yy_cp -= 2;
2381 YY_DO_BEFORE_ACTION; /* set up yytext again */
2382 YY_RULE_SETUP
2383 #line 681 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2384 {
2385 /* An integer as the first number in a
2386 * range (need to avoid parsing "1..2"
2387 * as the real numbers 1.0 and 0.2).
2388 */
2389 zz_lval.int_value = atol(yytext);
2390 return INTEGER_T;
2391 }
2392 YY_BREAK
2393 case 144:
2394 YY_RULE_SETUP
2395 #line 690 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2396 {
2397 /* A real number. Defn near top of file.
2398 */
2399 zz_lval.real_value = atof(yytext);
2400 return REAL_T;
2401 }
2402 YY_BREAK
2403 case 145:
2404 YY_RULE_SETUP
2405 #line 697 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2406 {
2407 /* An identifier. Defn near top of file.
2408 */
2409 if (yyleng >YY_MAXLEN) {
2410 ErrMsg_LongID();
2411 break;
2412 }
2413 zz_lval.id_ptr = AddSymbolL(yytext,yyleng);
2414 return IDENTIFIER_T;
2415 }
2416 YY_BREAK
2417 case 146:
2418 YY_RULE_SETUP
2419 #line 708 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2420 {
2421 /* Ignore whitespace. */
2422 break;
2423 }
2424 YY_BREAK
2425 case 147:
2426 YY_RULE_SETUP
2427 #line 712 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2428 {
2429 /* Ignore whitespace. */
2430 yy_line++;
2431 break;
2432 }
2433 YY_BREAK
2434 case 148:
2435 YY_RULE_SETUP
2436 #line 719 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2437 {
2438 /* Unknown character. Print error
2439 * message and keep going.
2440 */
2441 ErrMsg_UnexpectedChar();
2442 break;
2443 }
2444 YY_BREAK
2445 case YY_STATE_EOF(INITIAL):
2446 #line 727 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2447 {
2448 /* Print an error message if we
2449 * reached EOF in the middle of a
2450 * type definition. Pop to the
2451 * previously REQUIREd file or return
2452 * ENDTOK if no more input.
2453 */
2454 Asc_ErrMsgTypeDefnEOF();
2455 if ( Asc_ScannerPopBuffer() == 1 ) {
2456 return ENDTOK;
2457 }
2458 break;
2459 }
2460 YY_BREAK
2461 case 149:
2462 YY_RULE_SETUP
2463 #line 741 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
2464 ECHO;
2465 YY_BREAK
2466
2467 case YY_END_OF_BUFFER:
2468 {
2469 /* Amount of text matched not including the EOB char. */
2470 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2471
2472 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2473 *yy_cp = yy_hold_char;
2474 YY_RESTORE_YY_MORE_OFFSET
2475
2476 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2477 {
2478 /* We're scanning a new file or input source. It's
2479 * possible that this happened because the user
2480 * just pointed yyin at a new source and called
2481 * yylex(). If so, then we have to assure
2482 * consistency between yy_current_buffer and our
2483 * globals. Here is the right place to do so, because
2484 * this is the first action (other than possibly a
2485 * back-up) that will match for the new input source.
2486 */
2487 yy_n_chars = yy_current_buffer->yy_n_chars;
2488 yy_current_buffer->yy_input_file = yyin;
2489 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2490 }
2491
2492 /* Note that here we test for yy_c_buf_p "<=" to the position
2493 * of the first EOB in the buffer, since yy_c_buf_p will
2494 * already have been incremented past the NUL character
2495 * (since all states make transitions on EOB to the
2496 * end-of-buffer state). Contrast this with the test
2497 * in input().
2498 */
2499 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2500 { /* This was really a NUL. */
2501 yy_state_type yy_next_state;
2502
2503 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2504
2505 yy_current_state = yy_get_previous_state();
2506
2507 /* Okay, we're now positioned to make the NUL
2508 * transition. We couldn't have
2509 * yy_get_previous_state() go ahead and do it
2510 * for us because it doesn't know how to deal
2511 * with the possibility of jamming (and we don't
2512 * want to build jamming into it because then it
2513 * will run more slowly).
2514 */
2515
2516 yy_next_state = yy_try_NUL_trans( yy_current_state );
2517
2518 yy_bp = yytext_ptr + YY_MORE_ADJ;
2519
2520 if ( yy_next_state )
2521 {
2522 /* Consume the NUL. */
2523 yy_cp = ++yy_c_buf_p;
2524 yy_current_state = yy_next_state;
2525 goto yy_match;
2526 }
2527
2528 else
2529 {
2530 yy_cp = yy_c_buf_p;
2531 goto yy_find_action;
2532 }
2533 }
2534
2535 else switch ( yy_get_next_buffer() )
2536 {
2537 case EOB_ACT_END_OF_FILE:
2538 {
2539 yy_did_buffer_switch_on_eof = 0;
2540
2541 if ( yywrap() )
2542 {
2543 /* Note: because we've taken care in
2544 * yy_get_next_buffer() to have set up
2545 * yytext, we can now set up
2546 * yy_c_buf_p so that if some total
2547 * hoser (like flex itself) wants to
2548 * call the scanner after we return the
2549 * YY_NULL, it'll still work - another
2550 * YY_NULL will get returned.
2551 */
2552 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2553
2554 yy_act = YY_STATE_EOF(YY_START);
2555 goto do_action;
2556 }
2557
2558 else
2559 {
2560 if ( ! yy_did_buffer_switch_on_eof )
2561 YY_NEW_FILE;
2562 }
2563 break;
2564 }
2565
2566 case EOB_ACT_CONTINUE_SCAN:
2567 yy_c_buf_p =
2568 yytext_ptr + yy_amount_of_matched_text;
2569
2570 yy_current_state = yy_get_previous_state();
2571
2572 yy_cp = yy_c_buf_p;
2573 yy_bp = yytext_ptr + YY_MORE_ADJ;
2574 goto yy_match;
2575
2576 case EOB_ACT_LAST_MATCH:
2577 yy_c_buf_p =
2578 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2579
2580 yy_current_state = yy_get_previous_state();
2581
2582 yy_cp = yy_c_buf_p;
2583 yy_bp = yytext_ptr + YY_MORE_ADJ;
2584 goto yy_find_action;
2585 }
2586 break;
2587 }
2588
2589 default:
2590 YY_FATAL_ERROR(
2591 "fatal flex scanner internal error--no action found" );
2592 } /* end of action switch */
2593 } /* end of scanning one token */
2594 } /* end of yylex */
2595
2596
2597 /* yy_get_next_buffer - try to read in a new buffer
2598 *
2599 * Returns a code representing an action:
2600 * EOB_ACT_LAST_MATCH -
2601 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2602 * EOB_ACT_END_OF_FILE - end of file
2603 */
2604
2605 static int yy_get_next_buffer()
2606 {
2607 register char *dest = yy_current_buffer->yy_ch_buf;
2608 register char *source = yytext_ptr;
2609 register int number_to_move, i;
2610 int ret_val;
2611
2612 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2613 YY_FATAL_ERROR(
2614 "fatal flex scanner internal error--end of buffer missed" );
2615
2616 if ( yy_current_buffer->yy_fill_buffer == 0 )
2617 { /* Don't try to fill the buffer, so this is an EOF. */
2618 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2619 {
2620 /* We matched a single character, the EOB, so
2621 * treat this as a final EOF.
2622 */
2623 return EOB_ACT_END_OF_FILE;
2624 }
2625
2626 else
2627 {
2628 /* We matched some text prior to the EOB, first
2629 * process it.
2630 */
2631 return EOB_ACT_LAST_MATCH;
2632 }
2633 }
2634
2635 /* Try to read more data. */
2636
2637 /* First move last chars to start of buffer. */
2638 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2639
2640 for ( i = 0; i < number_to_move; ++i )
2641 *(dest++) = *(source++);
2642
2643 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2644 /* don't do the read, it's not guaranteed to return an EOF,
2645 * just force an EOF
2646 */
2647 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2648
2649 else
2650 {
2651 int num_to_read =
2652 yy_current_buffer->yy_buf_size - number_to_move - 1;
2653
2654 while ( num_to_read <= 0 )
2655 { /* Not enough room in the buffer - grow it. */
2656 #ifdef YY_USES_REJECT
2657 YY_FATAL_ERROR(
2658 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2659 #else
2660
2661 /* just a shorter name for the current buffer */
2662 YY_BUFFER_STATE b = yy_current_buffer;
2663
2664 int yy_c_buf_p_offset =
2665 (int) (yy_c_buf_p - b->yy_ch_buf);
2666
2667 if ( b->yy_is_our_buffer )
2668 {
2669 int new_size = b->yy_buf_size * 2;
2670
2671 if ( new_size <= 0 )
2672 b->yy_buf_size += b->yy_buf_size / 8;
2673 else
2674 b->yy_buf_size *= 2;
2675
2676 b->yy_ch_buf = (char *)
2677 /* Include room in for 2 EOB chars. */
2678 yy_flex_realloc( (void *) b->yy_ch_buf,
2679 b->yy_buf_size + 2 );
2680 }
2681 else
2682 /* Can't grow it, we don't own it. */
2683 b->yy_ch_buf = 0;
2684
2685 if ( ! b->yy_ch_buf )
2686 YY_FATAL_ERROR(
2687 "fatal error - scanner input buffer overflow" );
2688
2689 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2690
2691 num_to_read = yy_current_buffer->yy_buf_size -
2692 number_to_move - 1;
2693 #endif
2694 }
2695
2696 if ( num_to_read > YY_READ_BUF_SIZE )
2697 num_to_read = YY_READ_BUF_SIZE;
2698
2699 /* Read in more data. */
2700 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2701 yy_n_chars, num_to_read );
2702
2703 yy_current_buffer->yy_n_chars = yy_n_chars;
2704 }
2705
2706 if ( yy_n_chars == 0 )
2707 {
2708 if ( number_to_move == YY_MORE_ADJ )
2709 {
2710 ret_val = EOB_ACT_END_OF_FILE;
2711 yyrestart( yyin );
2712 }
2713
2714 else
2715 {
2716 ret_val = EOB_ACT_LAST_MATCH;
2717 yy_current_buffer->yy_buffer_status =
2718 YY_BUFFER_EOF_PENDING;
2719 }
2720 }
2721
2722 else
2723 ret_val = EOB_ACT_CONTINUE_SCAN;
2724
2725 yy_n_chars += number_to_move;
2726 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2727 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2728
2729 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2730
2731 return ret_val;
2732 }
2733
2734
2735 /* yy_get_previous_state - get the state just before the EOB char was reached */
2736
2737 static yy_state_type yy_get_previous_state()
2738 {
2739 register yy_state_type yy_current_state;
2740 register char *yy_cp;
2741
2742 yy_current_state = yy_start;
2743
2744 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2745 {
2746 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2747 if ( yy_accept[yy_current_state] )
2748 {
2749 yy_last_accepting_state = yy_current_state;
2750 yy_last_accepting_cpos = yy_cp;
2751 }
2752 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2753 {
2754 yy_current_state = (int) yy_def[yy_current_state];
2755 if ( yy_current_state >= 521 )
2756 yy_c = yy_meta[(unsigned int) yy_c];
2757 }
2758 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2759 }
2760
2761 return yy_current_state;
2762 }
2763
2764
2765 /* yy_try_NUL_trans - try to make a transition on the NUL character
2766 *
2767 * synopsis
2768 * next_state = yy_try_NUL_trans( current_state );
2769 */
2770
2771 #ifdef YY_USE_PROTOS
2772 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2773 #else
2774 static yy_state_type yy_try_NUL_trans( yy_current_state )
2775 yy_state_type yy_current_state;
2776 #endif
2777 {
2778 register int yy_is_jam;
2779 register char *yy_cp = yy_c_buf_p;
2780
2781 register YY_CHAR yy_c = 1;
2782 if ( yy_accept[yy_current_state] )
2783 {
2784 yy_last_accepting_state = yy_current_state;
2785 yy_last_accepting_cpos = yy_cp;
2786 }
2787 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2788 {
2789 yy_current_state = (int) yy_def[yy_current_state];
2790 if ( yy_current_state >= 521 )
2791 yy_c = yy_meta[(unsigned int) yy_c];
2792 }
2793 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2794 yy_is_jam = (yy_current_state == 520);
2795
2796 return yy_is_jam ? 0 : yy_current_state;
2797 }
2798
2799
2800 #ifndef YY_NO_UNPUT
2801 #ifdef YY_USE_PROTOS
2802 static void yyunput( int c, register char *yy_bp )
2803 #else
2804 static void yyunput( c, yy_bp )
2805 int c;
2806 register char *yy_bp;
2807 #endif
2808 {
2809 register char *yy_cp = yy_c_buf_p;
2810
2811 /* undo effects of setting up yytext */
2812 *yy_cp = yy_hold_char;
2813
2814 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2815 { /* need to shift things up to make room */
2816 /* +2 for EOB chars. */
2817 register int number_to_move = yy_n_chars + 2;
2818 register char *dest = &yy_current_buffer->yy_ch_buf[
2819 yy_current_buffer->yy_buf_size + 2];
2820 register char *source =
2821 &yy_current_buffer->yy_ch_buf[number_to_move];
2822
2823 while ( source > yy_current_buffer->yy_ch_buf )
2824 *--dest = *--source;
2825
2826 yy_cp += (int) (dest - source);
2827 yy_bp += (int) (dest - source);
2828 yy_current_buffer->yy_n_chars =
2829 yy_n_chars = yy_current_buffer->yy_buf_size;
2830
2831 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2832 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2833 }
2834
2835 *--yy_cp = (char) c;
2836
2837
2838 yytext_ptr = yy_bp;
2839 yy_hold_char = *yy_cp;
2840 yy_c_buf_p = yy_cp;
2841 }
2842 #endif /* ifndef YY_NO_UNPUT */
2843
2844
2845 #ifndef YY_NO_INPUT
2846 #ifdef __cplusplus
2847 static int yyinput()
2848 #else
2849 static int input()
2850 #endif
2851 {
2852 int c;
2853
2854 *yy_c_buf_p = yy_hold_char;
2855
2856 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2857 {
2858 /* yy_c_buf_p now points to the character we want to return.
2859 * If this occurs *before* the EOB characters, then it's a
2860 * valid NUL; if not, then we've hit the end of the buffer.
2861 */
2862 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2863 /* This was really a NUL. */
2864 *yy_c_buf_p = '\0';
2865
2866 else
2867 { /* need more input */
2868 int offset = yy_c_buf_p - yytext_ptr;
2869 ++yy_c_buf_p;
2870
2871 switch ( yy_get_next_buffer() )
2872 {
2873 case EOB_ACT_LAST_MATCH:
2874 /* This happens because yy_g_n_b()
2875 * sees that we've accumulated a
2876 * token and flags that we need to
2877 * try matching the token before
2878 * proceeding. But for input(),
2879 * there's no matching to consider.
2880 * So convert the EOB_ACT_LAST_MATCH
2881 * to EOB_ACT_END_OF_FILE.
2882 */
2883
2884 /* Reset buffer status. */
2885 yyrestart( yyin );
2886
2887 /* fall through */
2888
2889 case EOB_ACT_END_OF_FILE:
2890 {
2891 if ( yywrap() )
2892 return EOF;
2893
2894 if ( ! yy_did_buffer_switch_on_eof )
2895 YY_NEW_FILE;
2896 #ifdef __cplusplus
2897 return yyinput();
2898 #else
2899 return input();
2900 #endif
2901 }
2902
2903 case EOB_ACT_CONTINUE_SCAN:
2904 yy_c_buf_p = yytext_ptr + offset;
2905 break;
2906 }
2907 }
2908 }
2909
2910 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2911 *yy_c_buf_p = '\0'; /* preserve yytext */
2912 yy_hold_char = *++yy_c_buf_p;
2913
2914
2915 return c;
2916 }
2917 #endif /* YY_NO_INPUT */
2918
2919 #ifdef YY_USE_PROTOS
2920 void yyrestart( FILE *input_file )
2921 #else
2922 void yyrestart( input_file )
2923 FILE *input_file;
2924 #endif
2925 {
2926 if ( ! yy_current_buffer )
2927 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2928
2929 yy_init_buffer( yy_current_buffer, input_file );
2930 yy_load_buffer_state();
2931 }
2932
2933
2934 #ifdef YY_USE_PROTOS
2935 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2936 #else
2937 void yy_switch_to_buffer( new_buffer )
2938 YY_BUFFER_STATE new_buffer;
2939 #endif
2940 {
2941 if ( yy_current_buffer == new_buffer )
2942 return;
2943
2944 if ( yy_current_buffer )
2945 {
2946 /* Flush out information for old buffer. */
2947 *yy_c_buf_p = yy_hold_char;
2948 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2949 yy_current_buffer->yy_n_chars = yy_n_chars;
2950 }
2951
2952 yy_current_buffer = new_buffer;
2953 yy_load_buffer_state();
2954
2955 /* We don't actually know whether we did this switch during
2956 * EOF (yywrap()) processing, but the only time this flag
2957 * is looked at is after yywrap() is called, so it's safe
2958 * to go ahead and always set it.
2959 */
2960 yy_did_buffer_switch_on_eof = 1;
2961 }
2962
2963
2964 #ifdef YY_USE_PROTOS
2965 void yy_load_buffer_state( void )
2966 #else
2967 void yy_load_buffer_state()
2968 #endif
2969 {
2970 yy_n_chars = yy_current_buffer->yy_n_chars;
2971 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2972 yyin = yy_current_buffer->yy_input_file;
2973 yy_hold_char = *yy_c_buf_p;
2974 }
2975
2976
2977 #ifdef YY_USE_PROTOS
2978 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2979 #else
2980 YY_BUFFER_STATE yy_create_buffer( file, size )
2981 FILE *file;
2982 int size;
2983 #endif
2984 {
2985 YY_BUFFER_STATE b;
2986
2987 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2988 if ( ! b )
2989 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2990
2991 b->yy_buf_size = size;
2992
2993 /* yy_ch_buf has to be 2 characters longer than the size given because
2994 * we need to put in 2 end-of-buffer characters.
2995 */
2996 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2997 if ( ! b->yy_ch_buf )
2998 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2999
3000 b->yy_is_our_buffer = 1;
3001
3002 yy_init_buffer( b, file );
3003
3004 return b;
3005 }
3006
3007
3008 #ifdef YY_USE_PROTOS
3009 void yy_delete_buffer( YY_BUFFER_STATE b )
3010 #else
3011 void yy_delete_buffer( b )
3012 YY_BUFFER_STATE b;
3013 #endif
3014 {
3015 if ( ! b )
3016 return;
3017
3018 if ( b == yy_current_buffer )
3019 yy_current_buffer = (YY_BUFFER_STATE) 0;
3020
3021 if ( b->yy_is_our_buffer )
3022 yy_flex_free( (void *) b->yy_ch_buf );
3023
3024 yy_flex_free( (void *) b );
3025 }
3026
3027
3028
3029 #ifdef YY_USE_PROTOS
3030 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3031 #else
3032 void yy_init_buffer( b, file )
3033 YY_BUFFER_STATE b;
3034 FILE *file;
3035 #endif
3036
3037
3038 {
3039 yy_flush_buffer( b );
3040
3041 b->yy_input_file = file;
3042 b->yy_fill_buffer = 1;
3043
3044 #if YY_ALWAYS_INTERACTIVE
3045 b->yy_is_interactive = 1;
3046 #else
3047 #if YY_NEVER_INTERACTIVE
3048 b->yy_is_interactive = 0;
3049 #else
3050 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3051 #endif
3052 #endif
3053 }
3054
3055
3056 #ifdef YY_USE_PROTOS
3057 void yy_flush_buffer( YY_BUFFER_STATE b )
3058 #else
3059 void yy_flush_buffer( b )
3060 YY_BUFFER_STATE b;
3061 #endif
3062
3063 {
3064 if ( ! b )
3065 return;
3066
3067 b->yy_n_chars = 0;
3068
3069 /* We always need two end-of-buffer characters. The first causes
3070 * a transition to the end-of-buffer state. The second causes
3071 * a jam in that state.
3072 */
3073 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3074 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3075
3076 b->yy_buf_pos = &b->yy_ch_buf[0];
3077
3078 b->yy_at_bol = 1;
3079 b->yy_buffer_status = YY_BUFFER_NEW;
3080
3081 if ( b == yy_current_buffer )
3082 yy_load_buffer_state();
3083 }
3084
3085
3086 #ifndef YY_NO_SCAN_BUFFER
3087 #ifdef YY_USE_PROTOS
3088 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3089 #else
3090 YY_BUFFER_STATE yy_scan_buffer( base, size )
3091 char *base;
3092 yy_size_t size;
3093 #endif
3094 {
3095 YY_BUFFER_STATE b;
3096
3097 if ( size < 2 ||
3098 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3099 base[size-1] != YY_END_OF_BUFFER_CHAR )
3100 /* They forgot to leave room for the EOB's. */
3101 return 0;
3102
3103 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3104 if ( ! b )
3105 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3106
3107 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3108 b->yy_buf_pos = b->yy_ch_buf = base;
3109 b->yy_is_our_buffer = 0;
3110 b->yy_input_file = 0;
3111 b->yy_n_chars = b->yy_buf_size;
3112 b->yy_is_interactive = 0;
3113 b->yy_at_bol = 1;
3114 b->yy_fill_buffer = 0;
3115 b->yy_buffer_status = YY_BUFFER_NEW;
3116
3117 yy_switch_to_buffer( b );
3118
3119 return b;
3120 }
3121 #endif
3122
3123
3124 #ifndef YY_NO_SCAN_STRING
3125 #ifdef YY_USE_PROTOS
3126 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3127 #else
3128 YY_BUFFER_STATE yy_scan_string( yy_str )
3129 yyconst char *yy_str;
3130 #endif
3131 {
3132 int len;
3133 for ( len = 0; yy_str[len]; ++len )
3134 ;
3135
3136 return yy_scan_bytes( yy_str, len );
3137 }
3138 #endif
3139
3140
3141 #ifndef YY_NO_SCAN_BYTES
3142 #ifdef YY_USE_PROTOS
3143 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3144 #else
3145 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3146 yyconst char *bytes;
3147 int len;
3148 #endif
3149 {
3150 YY_BUFFER_STATE b;
3151 char *buf;
3152 yy_size_t n;
3153 int i;
3154
3155 /* Get memory for full buffer, including space for trailing EOB's. */
3156 n = len + 2;
3157 buf = (char *) yy_flex_alloc( n );
3158 if ( ! buf )
3159 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3160
3161 for ( i = 0; i < len; ++i )
3162 buf[i] = bytes[i];
3163
3164 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3165
3166 b = yy_scan_buffer( buf, n );
3167 if ( ! b )
3168 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3169
3170 /* It's okay to grow etc. this buffer, and we should throw it
3171 * away when we're done.
3172 */
3173 b->yy_is_our_buffer = 1;
3174
3175 return b;
3176 }
3177 #endif
3178
3179
3180 #ifndef YY_NO_PUSH_STATE
3181 #ifdef YY_USE_PROTOS
3182 static void yy_push_state( int new_state )
3183 #else
3184 static void yy_push_state( new_state )
3185 int new_state;
3186 #endif
3187 {
3188 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3189 {
3190 yy_size_t new_size;
3191
3192 yy_start_stack_depth += YY_START_STACK_INCR;
3193 new_size = yy_start_stack_depth * sizeof( int );
3194
3195 if ( ! yy_start_stack )
3196 yy_start_stack = (int *) yy_flex_alloc( new_size );
3197
3198 else
3199 yy_start_stack = (int *) yy_flex_realloc(
3200 (void *) yy_start_stack, new_size );
3201
3202 if ( ! yy_start_stack )
3203 YY_FATAL_ERROR(
3204 "out of memory expanding start-condition stack" );
3205 }
3206
3207 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3208
3209 BEGIN(new_state);
3210 }
3211 #endif
3212
3213
3214 #ifndef YY_NO_POP_STATE
3215 static void yy_pop_state()
3216 {
3217 if ( --yy_start_stack_ptr < 0 )
3218 YY_FATAL_ERROR( "start-condition stack underflow" );
3219
3220 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3221 }
3222 #endif
3223
3224
3225 #ifndef YY_NO_TOP_STATE
3226 static int yy_top_state()
3227 {
3228 return yy_start_stack[yy_start_stack_ptr - 1];
3229 }
3230 #endif
3231
3232 #ifndef YY_EXIT_FAILURE
3233 #define YY_EXIT_FAILURE 2
3234 #endif
3235
3236 #ifdef YY_USE_PROTOS
3237 static void yy_fatal_error( yyconst char msg[] )
3238 #else
3239 static void yy_fatal_error( msg )
3240 char msg[];
3241 #endif
3242 {
3243 (void) fprintf( stderr, "%s\n", msg );
3244 exit( YY_EXIT_FAILURE );
3245 }
3246
3247
3248
3249 /* Redefine yyless() so it works in section 3 code. */
3250
3251 #undef yyless
3252 #define yyless(n) \
3253 do \
3254 { \
3255 /* Undo effects of setting up yytext. */ \
3256 yytext[yyleng] = yy_hold_char; \
3257 yy_c_buf_p = yytext + n; \
3258 yy_hold_char = *yy_c_buf_p; \
3259 *yy_c_buf_p = '\0'; \
3260 yyleng = n; \
3261 } \
3262 while ( 0 )
3263
3264
3265 /* Internal utility routines. */
3266
3267 #ifndef yytext_ptr
3268 #ifdef YY_USE_PROTOS
3269 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3270 #else
3271 static void yy_flex_strncpy( s1, s2, n )
3272 char *s1;
3273 yyconst char *s2;
3274 int n;
3275 #endif
3276 {
3277 register int i;
3278 for ( i = 0; i < n; ++i )
3279 s1[i] = s2[i];
3280 }
3281 #endif
3282
3283 #ifdef YY_NEED_STRLEN
3284 #ifdef YY_USE_PROTOS
3285 static int yy_flex_strlen( yyconst char *s )
3286 #else
3287 static int yy_flex_strlen( s )
3288 yyconst char *s;
3289 #endif
3290 {
3291 register int n;
3292 for ( n = 0; s[n]; ++n )
3293 ;
3294
3295 return n;
3296 }
3297 #endif
3298
3299
3300 #ifdef YY_USE_PROTOS
3301 static void *yy_flex_alloc( yy_size_t size )
3302 #else
3303 static void *yy_flex_alloc( size )
3304 yy_size_t size;
3305 #endif
3306 {
3307 return (void *) malloc( size );
3308 }
3309
3310 #ifdef YY_USE_PROTOS
3311 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3312 #else
3313 static void *yy_flex_realloc( ptr, size )
3314 void *ptr;
3315 yy_size_t size;
3316 #endif
3317 {
3318 /* The cast to (char *) in the following accommodates both
3319 * implementations that use char* generic pointers, and those
3320 * that use void* generic pointers. It works with the latter
3321 * because both ANSI C and C++ allow castless assignment from
3322 * any pointer type to void*, and deal with argument conversions
3323 * as though doing an assignment.
3324 */
3325 return (void *) realloc( (char *) ptr, size );
3326 }
3327
3328 #ifdef YY_USE_PROTOS
3329 static void yy_flex_free( void *ptr )
3330 #else
3331 static void yy_flex_free( ptr )
3332 void *ptr;
3333 #endif
3334 {
3335 free( ptr );
3336 }
3337
3338 #if YY_MAIN
3339 int main()
3340 {
3341 yylex();
3342 return 0;
3343 }
3344 #endif
3345 #line 741 "/tmp/trunk/base/autotools/../generic/compiler/scanner.l"
3346
3347 /*
3348 * int yywrap(void);
3349 *
3350 * This returns 1 if the scanner should stop parsing, or
3351 * 0 if the scanner should continue. Flex requires this
3352 * function unless %option noyywrap is defined.
3353 */
3354 int
3355 yywrap(void)
3356 {
3357 return 1;
3358 }
3359
3360
3361 /*
3362 * See the header file scanner.h for a description of this function.
3363 */
3364 unsigned long
3365 LineNum(void)
3366 {
3367 return yy_line;
3368 }
3369
3370
3371 /*
3372 * See the header file scanner.h for a description of this function.
3373 */
3374 void
3375 Asc_ScannerAssignFile(FILE *f, unsigned long linenum)
3376 {
3377 yyin = f;
3378 yy_line = linenum;
3379 if ( RequireIndex == 0 ) {
3380 yyrestart(f);
3381 }
3382 }
3383
3384 /*
3385 * See the header file scanner.h for a description of this function.
3386 */
3387 void
3388 Asc_ScannerAssignString(void *yybs, unsigned long linenum, int first)
3389 {
3390 /* yyin = f; */
3391 yy_line = linenum;
3392 yy_switch_to_buffer((YY_BUFFER_STATE)yybs);
3393 if (first) {
3394 BEGIN(INITIAL);
3395 }
3396 if ( RequireIndex == 0 ) {
3397 yyrestart((FILE *)NULL); /* ? ? ? should be reading from a string buffer... */
3398 }
3399 }
3400
3401
3402 /*
3403 * See