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