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