Branch data Line data Source code
1 : : #line 2 "scan_mdl.cpp"
2 : :
3 : : #line 4 "scan_mdl.cpp"
4 : :
5 : : #define YY_INT_ALIGNED short int
6 : :
7 : : /* A lexical scanner generated by flex */
8 : :
9 : : #define yy_create_buffer mdl__create_buffer
10 : : #define yy_delete_buffer mdl__delete_buffer
11 : : #define yy_flex_debug mdl__flex_debug
12 : : #define yy_init_buffer mdl__init_buffer
13 : : #define yy_flush_buffer mdl__flush_buffer
14 : : #define yy_load_buffer_state mdl__load_buffer_state
15 : : #define yy_switch_to_buffer mdl__switch_to_buffer
16 : : #define yyin mdl_in
17 : : #define yyleng mdl_leng
18 : : #define yylex mdl_lex
19 : : #define yylineno mdl_lineno
20 : : #define yyout mdl_out
21 : : #define yyrestart mdl_restart
22 : : #define yytext mdl_text
23 : : #define yywrap mdl_wrap
24 : : #define yyalloc mdl_alloc
25 : : #define yyrealloc mdl_realloc
26 : : #define yyfree mdl_free
27 : :
28 : : #define FLEX_SCANNER
29 : : #define YY_FLEX_MAJOR_VERSION 2
30 : : #define YY_FLEX_MINOR_VERSION 5
31 : : #define YY_FLEX_SUBMINOR_VERSION 37
32 : : #if YY_FLEX_SUBMINOR_VERSION > 0
33 : : #define FLEX_BETA
34 : : #endif
35 : :
36 : : /* First, we deal with platform-specific or compiler-specific issues. */
37 : :
38 : : /* begin standard C headers. */
39 : : #include <stdio.h>
40 : : #include <string.h>
41 : : #include <errno.h>
42 : : #include <stdlib.h>
43 : :
44 : : /* end standard C headers. */
45 : :
46 : : /* flex integer type definitions */
47 : :
48 : : #ifndef FLEXINT_H
49 : : #define FLEXINT_H
50 : :
51 : : /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52 : :
53 : : #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54 : :
55 : : /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56 : : * if you want the limit (max/min) macros for int types.
57 : : */
58 : : #ifndef __STDC_LIMIT_MACROS
59 : : #define __STDC_LIMIT_MACROS 1
60 : : #endif
61 : :
62 : : #include <inttypes.h>
63 : : typedef int8_t flex_int8_t;
64 : : typedef uint8_t flex_uint8_t;
65 : : typedef int16_t flex_int16_t;
66 : : typedef uint16_t flex_uint16_t;
67 : : typedef int32_t flex_int32_t;
68 : : typedef uint32_t flex_uint32_t;
69 : : #else
70 : : typedef signed char flex_int8_t;
71 : : typedef short int flex_int16_t;
72 : : typedef int flex_int32_t;
73 : : typedef unsigned char flex_uint8_t;
74 : : typedef unsigned short int flex_uint16_t;
75 : : typedef unsigned int flex_uint32_t;
76 : :
77 : : /* Limits of integral types. */
78 : : #ifndef INT8_MIN
79 : : #define INT8_MIN (-128)
80 : : #endif
81 : : #ifndef INT16_MIN
82 : : #define INT16_MIN (-32767-1)
83 : : #endif
84 : : #ifndef INT32_MIN
85 : : #define INT32_MIN (-2147483647-1)
86 : : #endif
87 : : #ifndef INT8_MAX
88 : : #define INT8_MAX (127)
89 : : #endif
90 : : #ifndef INT16_MAX
91 : : #define INT16_MAX (32767)
92 : : #endif
93 : : #ifndef INT32_MAX
94 : : #define INT32_MAX (2147483647)
95 : : #endif
96 : : #ifndef UINT8_MAX
97 : : #define UINT8_MAX (255U)
98 : : #endif
99 : : #ifndef UINT16_MAX
100 : : #define UINT16_MAX (65535U)
101 : : #endif
102 : : #ifndef UINT32_MAX
103 : : #define UINT32_MAX (4294967295U)
104 : : #endif
105 : :
106 : : #endif /* ! C99 */
107 : :
108 : : #endif /* ! FLEXINT_H */
109 : :
110 : : #ifdef __cplusplus
111 : :
112 : : /* The "const" storage-class-modifier is valid. */
113 : : #define YY_USE_CONST
114 : :
115 : : #else /* ! __cplusplus */
116 : :
117 : : /* C99 requires __STDC__ to be defined as 1. */
118 : : #if defined (__STDC__)
119 : :
120 : : #define YY_USE_CONST
121 : :
122 : : #endif /* defined (__STDC__) */
123 : : #endif /* ! __cplusplus */
124 : :
125 : : #ifdef YY_USE_CONST
126 : : #define yyconst const
127 : : #else
128 : : #define yyconst
129 : : #endif
130 : :
131 : : /* Returned upon end-of-file. */
132 : : #define YY_NULL 0
133 : :
134 : : /* Promotes a possibly negative, possibly signed char to an unsigned
135 : : * integer for use as an array index. If the signed char is negative,
136 : : * we want to instead treat it as an 8-bit unsigned char, hence the
137 : : * double cast.
138 : : */
139 : : #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140 : :
141 : : /* Enter a start condition. This macro really ought to take a parameter,
142 : : * but we do it the disgusting crufty way forced on us by the ()-less
143 : : * definition of BEGIN.
144 : : */
145 : : #define BEGIN (yy_start) = 1 + 2 *
146 : :
147 : : /* Translate the current start state into a value that can be later handed
148 : : * to BEGIN to return to the state. The YYSTATE alias is for lex
149 : : * compatibility.
150 : : */
151 : : #define YY_START (((yy_start) - 1) / 2)
152 : : #define YYSTATE YY_START
153 : :
154 : : /* Action number for EOF rule of a given start state. */
155 : : #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 : :
157 : : /* Special action meaning "start processing a new file". */
158 : : #define YY_NEW_FILE mdl_restart(mdl_in )
159 : :
160 : : #define YY_END_OF_BUFFER_CHAR 0
161 : :
162 : : /* Size of default input buffer. */
163 : : #ifndef YY_BUF_SIZE
164 : : #define YY_BUF_SIZE 16384
165 : : #endif
166 : :
167 : : /* The state buf must be large enough to hold one state per character in the main buffer.
168 : : */
169 : : #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
170 : :
171 : : #ifndef YY_TYPEDEF_YY_BUFFER_STATE
172 : : #define YY_TYPEDEF_YY_BUFFER_STATE
173 : : typedef struct yy_buffer_state *YY_BUFFER_STATE;
174 : : #endif
175 : :
176 : : #ifndef YY_TYPEDEF_YY_SIZE_T
177 : : #define YY_TYPEDEF_YY_SIZE_T
178 : : typedef size_t yy_size_t;
179 : : #endif
180 : :
181 : : extern yy_size_t mdl_leng;
182 : :
183 : : extern FILE *mdl_in, *mdl_out;
184 : :
185 : : #define EOB_ACT_CONTINUE_SCAN 0
186 : : #define EOB_ACT_END_OF_FILE 1
187 : : #define EOB_ACT_LAST_MATCH 2
188 : :
189 : : /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
190 : : * access to the local variable yy_act. Since yyless() is a macro, it would break
191 : : * existing scanners that call yyless() from OUTSIDE mdl_lex.
192 : : * One obvious solution it to make yy_act a global. I tried that, and saw
193 : : * a 5% performance hit in a non-mdl_lineno scanner, because yy_act is
194 : : * normally declared as a register variable-- so it is not worth it.
195 : : */
196 : : #define YY_LESS_LINENO(n) \
197 : : do { \
198 : : int yyl;\
199 : : for ( yyl = n; yyl < mdl_leng; ++yyl )\
200 : : if ( mdl_text[yyl] == '\n' )\
201 : : --mdl_lineno;\
202 : : }while(0)
203 : :
204 : : /* Return all but the first "n" matched characters back to the input stream. */
205 : : #define yyless(n) \
206 : : do \
207 : : { \
208 : : /* Undo effects of setting up mdl_text. */ \
209 : : int yyless_macro_arg = (n); \
210 : : YY_LESS_LINENO(yyless_macro_arg);\
211 : : *yy_cp = (yy_hold_char); \
212 : : YY_RESTORE_YY_MORE_OFFSET \
213 : : (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
214 : : YY_DO_BEFORE_ACTION; /* set up mdl_text again */ \
215 : : } \
216 : : while ( 0 )
217 : :
218 : : #define unput(c) yyunput( c, (yytext_ptr) )
219 : :
220 : : #ifndef YY_STRUCT_YY_BUFFER_STATE
221 : : #define YY_STRUCT_YY_BUFFER_STATE
222 : : struct yy_buffer_state
223 : : {
224 : : FILE *yy_input_file;
225 : :
226 : : char *yy_ch_buf; /* input buffer */
227 : : char *yy_buf_pos; /* current position in input buffer */
228 : :
229 : : /* Size of input buffer in bytes, not including room for EOB
230 : : * characters.
231 : : */
232 : : yy_size_t yy_buf_size;
233 : :
234 : : /* Number of characters read into yy_ch_buf, not including EOB
235 : : * characters.
236 : : */
237 : : yy_size_t yy_n_chars;
238 : :
239 : : /* Whether we "own" the buffer - i.e., we know we created it,
240 : : * and can realloc() it to grow it, and should free() it to
241 : : * delete it.
242 : : */
243 : : int yy_is_our_buffer;
244 : :
245 : : /* Whether this is an "interactive" input source; if so, and
246 : : * if we're using stdio for input, then we want to use getc()
247 : : * instead of fread(), to make sure we stop fetching input after
248 : : * each newline.
249 : : */
250 : : int yy_is_interactive;
251 : :
252 : : /* Whether we're considered to be at the beginning of a line.
253 : : * If so, '^' rules will be active on the next match, otherwise
254 : : * not.
255 : : */
256 : : int yy_at_bol;
257 : :
258 : : int yy_bs_lineno; /**< The line count. */
259 : : int yy_bs_column; /**< The column count. */
260 : :
261 : : /* Whether to try to fill the input buffer when we reach the
262 : : * end of it.
263 : : */
264 : : int yy_fill_buffer;
265 : :
266 : : int yy_buffer_status;
267 : :
268 : : #define YY_BUFFER_NEW 0
269 : : #define YY_BUFFER_NORMAL 1
270 : : /* When an EOF's been seen but there's still some text to process
271 : : * then we mark the buffer as YY_EOF_PENDING, to indicate that we
272 : : * shouldn't try reading from the input source any more. We might
273 : : * still have a bunch of tokens to match, though, because of
274 : : * possible backing-up.
275 : : *
276 : : * When we actually see the EOF, we change the status to "new"
277 : : * (via mdl_restart()), so that the user can continue scanning by
278 : : * just pointing mdl_in at a new input file.
279 : : */
280 : : #define YY_BUFFER_EOF_PENDING 2
281 : :
282 : : };
283 : : #endif /* !YY_STRUCT_YY_BUFFER_STATE */
284 : :
285 : : /* Stack of input buffers. */
286 : : static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
287 : : static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
288 : : static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
289 : :
290 : : /* We provide macros for accessing buffer states in case in the
291 : : * future we want to put the buffer states in a more general
292 : : * "scanner state".
293 : : *
294 : : * Returns the top of the stack, or NULL.
295 : : */
296 : : #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
297 : : ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
298 : : : NULL)
299 : :
300 : : /* Same as previous macro, but useful when we know that the buffer stack is not
301 : : * NULL or when we need an lvalue. For internal use only.
302 : : */
303 : : #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
304 : :
305 : : /* yy_hold_char holds the character lost when mdl_text is formed. */
306 : : static char yy_hold_char;
307 : : static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
308 : : yy_size_t mdl_leng;
309 : :
310 : : /* Points to current character in buffer. */
311 : : static char *yy_c_buf_p = (char *) 0;
312 : : static int yy_init = 0; /* whether we need to initialize */
313 : : static int yy_start = 0; /* start state number */
314 : :
315 : : /* Flag which is used to allow mdl_wrap()'s to do buffer switches
316 : : * instead of setting up a fresh mdl_in. A bit of a hack ...
317 : : */
318 : : static int yy_did_buffer_switch_on_eof;
319 : :
320 : : void mdl_restart (FILE *input_file );
321 : : void mdl__switch_to_buffer (YY_BUFFER_STATE new_buffer );
322 : : YY_BUFFER_STATE mdl__create_buffer (FILE *file,int size );
323 : : void mdl__delete_buffer (YY_BUFFER_STATE b );
324 : : void mdl__flush_buffer (YY_BUFFER_STATE b );
325 : : void mdl_push_buffer_state (YY_BUFFER_STATE new_buffer );
326 : : void mdl_pop_buffer_state (void );
327 : :
328 : : static void mdl_ensure_buffer_stack (void );
329 : : static void mdl__load_buffer_state (void );
330 : : static void mdl__init_buffer (YY_BUFFER_STATE b,FILE *file );
331 : :
332 : : #define YY_FLUSH_BUFFER mdl__flush_buffer(YY_CURRENT_BUFFER )
333 : :
334 : : YY_BUFFER_STATE mdl__scan_buffer (char *base,yy_size_t size );
335 : : YY_BUFFER_STATE mdl__scan_string (yyconst char *yy_str );
336 : : YY_BUFFER_STATE mdl__scan_bytes (yyconst char *bytes,yy_size_t len );
337 : :
338 : : void *mdl_alloc (yy_size_t );
339 : : void *mdl_realloc (void *,yy_size_t );
340 : : void mdl_free (void * );
341 : :
342 : : #define yy_new_buffer mdl__create_buffer
343 : :
344 : : #define yy_set_interactive(is_interactive) \
345 : : { \
346 : : if ( ! YY_CURRENT_BUFFER ){ \
347 : : mdl_ensure_buffer_stack (); \
348 : : YY_CURRENT_BUFFER_LVALUE = \
349 : : mdl__create_buffer(mdl_in,YY_BUF_SIZE ); \
350 : : } \
351 : : YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
352 : : }
353 : :
354 : : #define yy_set_bol(at_bol) \
355 : : { \
356 : : if ( ! YY_CURRENT_BUFFER ){\
357 : : mdl_ensure_buffer_stack (); \
358 : : YY_CURRENT_BUFFER_LVALUE = \
359 : : mdl__create_buffer(mdl_in,YY_BUF_SIZE ); \
360 : : } \
361 : : YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
362 : : }
363 : :
364 : : #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
365 : :
366 : : /* Begin user sect3 */
367 : :
368 : : #define mdl_wrap() 1
369 : : #define YY_SKIP_YYWRAP
370 : :
371 : : typedef unsigned char YY_CHAR;
372 : :
373 : : FILE *mdl_in = (FILE *) 0, *mdl_out = (FILE *) 0;
374 : :
375 : : typedef int yy_state_type;
376 : :
377 : : extern int mdl_lineno;
378 : :
379 : : int mdl_lineno = 1;
380 : :
381 : : extern char *mdl_text;
382 : : #define yytext_ptr mdl_text
383 : :
384 : : static yy_state_type yy_get_previous_state (void );
385 : : static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
386 : : static int yy_get_next_buffer (void );
387 : : static void yy_fatal_error (yyconst char msg[] );
388 : :
389 : : /* Done after the current pattern has been matched and before the
390 : : * corresponding action - sets up mdl_text.
391 : : */
392 : : #define YY_DO_BEFORE_ACTION \
393 : : (yytext_ptr) = yy_bp; \
394 : : mdl_leng = (size_t) (yy_cp - yy_bp); \
395 : : (yy_hold_char) = *yy_cp; \
396 : : *yy_cp = '\0'; \
397 : : (yy_c_buf_p) = yy_cp;
398 : :
399 : : #define YY_NUM_RULES 48
400 : : #define YY_END_OF_BUFFER 49
401 : : /* This struct is not used in this scanner,
402 : : but its presence is necessary. */
403 : : struct yy_trans_info
404 : : {
405 : : flex_int32_t yy_verify;
406 : : flex_int32_t yy_nxt;
407 : : };
408 : : static yyconst flex_int16_t yy_accept[314] =
409 : : { 0,
410 : : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
411 : : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
412 : : 0, 0, 49, 47, 44, 44, 44, 47, 47, 37,
413 : : 38, 42, 43, 38, 38, 38, 38, 38, 38, 38,
414 : : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
415 : : 38, 38, 39, 46, 44, 44, 45, 40, 47, 47,
416 : : 47, 47, 47, 47, 47, 47, 41, 44, 0, 3,
417 : : 37, 0, 0, 0, 38, 0, 38, 38, 38, 38,
418 : : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
419 : : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
420 : :
421 : : 38, 38, 0, 0, 0, 0, 0, 0, 0, 0,
422 : : 0, 2, 0, 0, 0, 37, 0, 37, 38, 38,
423 : : 0, 38, 38, 38, 38, 38, 38, 38, 38, 38,
424 : : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
425 : : 38, 38, 38, 38, 38, 38, 38, 0, 0, 0,
426 : : 0, 0, 0, 0, 0, 0, 38, 0, 38, 38,
427 : : 38, 1, 38, 38, 38, 38, 4, 38, 38, 38,
428 : : 38, 38, 13, 38, 38, 18, 38, 38, 38, 38,
429 : : 38, 38, 38, 30, 24, 0, 0, 0, 0, 0,
430 : : 38, 0, 38, 38, 38, 38, 38, 38, 38, 5,
431 : :
432 : : 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
433 : : 28, 38, 16, 29, 38, 38, 38, 38, 38, 38,
434 : : 38, 38, 38, 38, 0, 33, 38, 31, 38, 38,
435 : : 38, 38, 38, 38, 17, 38, 38, 34, 8, 9,
436 : : 38, 38, 7, 38, 38, 0, 32, 38, 38, 14,
437 : : 38, 38, 12, 38, 38, 11, 38, 38, 38, 0,
438 : : 38, 35, 15, 25, 27, 26, 10, 23, 38, 0,
439 : : 38, 38, 0, 38, 38, 0, 36, 38, 0, 38,
440 : : 0, 38, 38, 0, 38, 38, 0, 19, 38, 0,
441 : : 38, 0, 38, 6, 38, 38, 38, 38, 38, 38,
442 : :
443 : : 38, 38, 20, 38, 38, 38, 38, 38, 21, 38,
444 : : 38, 22, 0
445 : : } ;
446 : :
447 : : static yyconst flex_int32_t yy_ec[256] =
448 : : { 0,
449 : : 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
450 : : 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
451 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
452 : : 1, 5, 1, 6, 1, 1, 1, 1, 1, 1,
453 : : 1, 1, 7, 8, 7, 9, 1, 10, 10, 10,
454 : : 10, 10, 10, 10, 10, 10, 10, 1, 1, 1,
455 : : 1, 1, 1, 1, 11, 12, 13, 14, 15, 16,
456 : : 17, 18, 19, 17, 20, 21, 22, 23, 24, 25,
457 : : 17, 26, 27, 28, 29, 30, 31, 32, 33, 17,
458 : : 34, 1, 35, 1, 36, 1, 37, 38, 39, 40,
459 : :
460 : : 41, 17, 42, 17, 43, 17, 44, 45, 46, 47,
461 : : 48, 49, 17, 50, 51, 52, 53, 17, 54, 17,
462 : : 55, 56, 57, 1, 58, 1, 1, 1, 1, 1,
463 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
464 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
465 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
466 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
467 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
468 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
469 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
470 : :
471 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
472 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
473 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
474 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
475 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
476 : : 1, 1, 1, 1, 1
477 : : } ;
478 : :
479 : : static yyconst flex_int32_t yy_meta[59] =
480 : : { 0,
481 : : 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
482 : : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
483 : : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
484 : : 3, 3, 3, 4, 1, 2, 3, 3, 3, 3,
485 : : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
486 : : 3, 3, 3, 3, 3, 3, 1, 1
487 : : } ;
488 : :
489 : : static yyconst flex_int16_t yy_base[323] =
490 : : { 0,
491 : : 0, 58, 9, 13, 115, 120, 17, 125, 129, 133,
492 : : 21, 137, 194, 0, 0, 0, 0, 0, 143, 147,
493 : : 25, 151, 655, 901, 901, 901, 651, 636, 624, 148,
494 : : 22, 901, 901, 150, 151, 134, 157, 153, 179, 171,
495 : : 160, 183, 193, 201, 203, 206, 205, 211, 216, 220,
496 : : 222, 224, 901, 901, 901, 615, 901, 901, 13, 22,
497 : : 28, 549, 17, 543, 555, 551, 901, 901, 559, 901,
498 : : 253, 550, 33, 546, 225, 544, 235, 238, 242, 261,
499 : : 243, 264, 265, 269, 271, 273, 274, 276, 277, 280,
500 : : 282, 287, 284, 281, 295, 300, 297, 308, 314, 321,
501 : :
502 : : 324, 328, 469, 465, 454, 449, 443, 413, 396, 375,
503 : : 375, 901, 379, 372, 366, 160, 379, 370, 32, 329,
504 : : 38, 331, 330, 344, 334, 347, 358, 348, 362, 351,
505 : : 361, 364, 375, 377, 379, 367, 384, 388, 393, 378,
506 : : 398, 399, 408, 411, 412, 414, 416, 366, 352, 326,
507 : : 334, 316, 321, 294, 276, 291, 420, 290, 425, 429,
508 : : 447, 427, 443, 435, 455, 428, 457, 458, 459, 463,
509 : : 464, 465, 469, 471, 466, 474, 475, 476, 477, 478,
510 : : 481, 485, 493, 497, 509, 273, 267, 262, 229, 206,
511 : : 214, 511, 515, 516, 523, 521, 519, 529, 532, 539,
512 : :
513 : : 530, 536, 538, 542, 543, 550, 549, 552, 553, 562,
514 : : 566, 573, 580, 585, 586, 202, 901, 589, 593, 592,
515 : : 596, 597, 588, 595, 187, 602, 606, 612, 615, 616,
516 : : 619, 623, 624, 630, 628, 632, 635, 636, 639, 642,
517 : : 663, 656, 643, 647, 651, 162, 652, 659, 654, 674,
518 : : 675, 678, 680, 683, 687, 689, 692, 691, 693, 166,
519 : : 696, 697, 698, 701, 702, 704, 706, 709, 713, 143,
520 : : 720, 724, 146, 733, 735, 149, 736, 737, 130, 740,
521 : : 130, 739, 741, 44, 744, 748, 26, 752, 756, 42,
522 : : 763, 44, 775, 901, 774, 772, 780, 783, 784, 785,
523 : :
524 : : 790, 796, 791, 798, 806, 794, 811, 822, 818, 820,
525 : : 824, 825, 901, 876, 880, 884, 888, 891, 46, 894,
526 : : 42, 897
527 : : } ;
528 : :
529 : : static yyconst flex_int16_t yy_def[323] =
530 : : { 0,
531 : : 314, 313, 315, 315, 315, 315, 316, 316, 315, 315,
532 : : 316, 316, 315, 13, 13, 13, 13, 13, 315, 315,
533 : : 316, 316, 313, 313, 313, 313, 313, 317, 313, 313,
534 : : 318, 313, 313, 318, 318, 318, 318, 318, 318, 318,
535 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
536 : : 318, 318, 313, 313, 313, 313, 313, 313, 313, 313,
537 : : 313, 313, 313, 313, 313, 313, 313, 313, 317, 313,
538 : : 313, 313, 313, 319, 318, 313, 318, 318, 318, 318,
539 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
540 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
541 : :
542 : : 318, 318, 313, 313, 313, 313, 313, 313, 313, 313,
543 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 320,
544 : : 313, 318, 318, 318, 318, 318, 318, 318, 318, 318,
545 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
546 : : 318, 318, 318, 318, 318, 318, 318, 313, 313, 313,
547 : : 313, 313, 313, 313, 313, 321, 320, 313, 318, 318,
548 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
549 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
550 : : 318, 318, 318, 318, 318, 313, 313, 313, 313, 313,
551 : : 322, 313, 318, 318, 318, 318, 318, 318, 318, 318,
552 : :
553 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
554 : : 318, 318, 318, 318, 318, 322, 313, 318, 318, 318,
555 : : 318, 318, 318, 318, 313, 318, 318, 318, 318, 318,
556 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
557 : : 318, 318, 318, 318, 318, 313, 318, 318, 318, 318,
558 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 313,
559 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 313,
560 : : 318, 318, 313, 318, 318, 313, 318, 318, 313, 318,
561 : : 313, 318, 318, 313, 318, 318, 313, 318, 318, 313,
562 : : 318, 313, 318, 313, 318, 318, 318, 318, 318, 318,
563 : :
564 : : 318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
565 : : 318, 318, 0, 313, 313, 313, 313, 313, 313, 313,
566 : : 313, 313
567 : : } ;
568 : :
569 : : static yyconst flex_int16_t yy_nxt[960] =
570 : : { 0,
571 : : 24, 25, 26, 27, 25, 28, 29, 24, 24, 30,
572 : : 25, 26, 27, 25, 25, 26, 27, 25, 55, 26,
573 : : 56, 55, 55, 26, 56, 55, 55, 26, 56, 55,
574 : : 74, 103, 105, 24, 24, 24, 104, 111, 108, 117,
575 : : 156, 119, 118, 112, 191, 158, 106, 121, 120, 294,
576 : : 107, 109, 292, 290, 287, 76, 32, 33, 24, 25,
577 : : 26, 27, 25, 28, 29, 24, 24, 30, 31, 34,
578 : : 35, 31, 31, 31, 31, 36, 31, 31, 37, 31,
579 : : 31, 38, 39, 31, 31, 40, 31, 41, 31, 31,
580 : : 31, 24, 24, 24, 42, 31, 43, 44, 45, 31,
581 : :
582 : : 31, 31, 46, 47, 31, 48, 49, 50, 51, 52,
583 : : 31, 31, 31, 31, 32, 33, 25, 26, 27, 25,
584 : : 28, 25, 26, 27, 25, 28, 55, 26, 56, 55,
585 : : 25, 26, 27, 25, 25, 26, 27, 25, 55, 26,
586 : : 56, 55, 74, 284, 25, 26, 27, 25, 25, 26,
587 : : 27, 25, 55, 26, 56, 55, 72, 71, 74, 74,
588 : : 281, 74, 73, 279, 276, 74, 79, 76, 74, 116,
589 : : 77, 53, 273, 78, 73, 80, 53, 81, 270, 74,
590 : : 260, 84, 57, 76, 76, 58, 76, 74, 73, 58,
591 : : 76, 74, 246, 76, 57, 25, 26, 27, 25, 67,
592 : :
593 : : 73, 74, 85, 67, 76, 82, 59, 60, 57, 74,
594 : : 156, 74, 76, 74, 74, 61, 76, 62, 63, 74,
595 : : 64, 65, 156, 83, 74, 66, 76, 112, 74, 87,
596 : : 74, 86, 74, 74, 76, 88, 76, 90, 76, 76,
597 : : 89, 112, 91, 74, 76, 94, 74, 92, 93, 76,
598 : : 74, 74, 96, 76, 122, 76, 99, 76, 76, 95,
599 : : 97, 72, 71, 98, 101, 123, 124, 73, 76, 74,
600 : : 126, 76, 74, 74, 100, 76, 76, 74, 102, 74,
601 : : 129, 74, 74, 125, 74, 74, 112, 112, 74, 74,
602 : : 74, 127, 74, 73, 76, 74, 112, 76, 76, 192,
603 : :
604 : : 119, 190, 76, 74, 76, 74, 76, 76, 74, 76,
605 : : 76, 130, 128, 76, 76, 76, 74, 76, 132, 189,
606 : : 76, 131, 74, 134, 136, 133, 139, 137, 76, 74,
607 : : 76, 135, 74, 76, 138, 188, 74, 74, 74, 74,
608 : : 160, 76, 74, 112, 142, 159, 140, 76, 187, 141,
609 : : 143, 186, 74, 162, 76, 74, 74, 76, 145, 74,
610 : : 144, 76, 76, 76, 76, 163, 74, 76, 164, 74,
611 : : 74, 161, 74, 146, 112, 74, 147, 76, 112, 118,
612 : : 76, 76, 166, 74, 76, 74, 74, 74, 118, 155,
613 : : 154, 76, 74, 153, 76, 76, 74, 76, 152, 165,
614 : :
615 : : 76, 74, 112, 169, 167, 168, 74, 74, 76, 151,
616 : : 76, 76, 76, 171, 170, 173, 74, 76, 174, 74,
617 : : 74, 76, 74, 172, 74, 150, 76, 178, 74, 175,
618 : : 177, 76, 76, 74, 179, 74, 74, 74, 193, 176,
619 : : 194, 76, 200, 74, 76, 76, 197, 76, 183, 76,
620 : : 180, 74, 182, 76, 181, 74, 185, 195, 76, 184,
621 : : 76, 76, 76, 74, 196, 74, 74, 74, 76, 198,
622 : : 112, 74, 74, 74, 74, 112, 76, 74, 199, 74,
623 : : 76, 112, 74, 74, 74, 74, 74, 149, 76, 74,
624 : : 76, 76, 76, 74, 148, 202, 76, 76, 76, 76,
625 : :
626 : : 201, 74, 76, 203, 76, 74, 208, 76, 76, 76,
627 : : 76, 76, 210, 205, 76, 209, 204, 74, 76, 206,
628 : : 192, 207, 211, 74, 74, 214, 76, 74, 212, 74,
629 : : 76, 74, 213, 218, 220, 221, 219, 74, 74, 222,
630 : : 74, 215, 76, 225, 74, 217, 74, 74, 76, 76,
631 : : 74, 74, 76, 121, 76, 119, 76, 74, 74, 116,
632 : : 74, 74, 76, 76, 70, 76, 115, 114, 226, 76,
633 : : 74, 76, 76, 113, 74, 76, 76, 110, 223, 230,
634 : : 224, 74, 76, 76, 229, 76, 76, 227, 74, 228,
635 : : 231, 233, 232, 74, 74, 76, 74, 74, 234, 76,
636 : :
637 : : 74, 74, 235, 74, 74, 74, 76, 240, 236, 242,
638 : : 74, 243, 241, 76, 74, 237, 239, 68, 76, 76,
639 : : 74, 76, 76, 74, 74, 76, 76, 74, 76, 76,
640 : : 76, 74, 74, 71, 238, 76, 74, 244, 74, 76,
641 : : 74, 70, 247, 74, 74, 76, 245, 74, 76, 76,
642 : : 74, 74, 76, 68, 313, 74, 76, 76, 249, 74,
643 : : 74, 76, 74, 76, 74, 76, 248, 74, 76, 76,
644 : : 250, 74, 76, 254, 257, 76, 76, 256, 251, 252,
645 : : 76, 253, 74, 74, 76, 76, 74, 76, 74, 76,
646 : : 255, 74, 76, 259, 258, 74, 76, 74, 261, 74,
647 : :
648 : : 74, 74, 313, 262, 74, 74, 74, 76, 76, 74,
649 : : 74, 76, 74, 76, 74, 263, 76, 74, 264, 267,
650 : : 76, 74, 76, 265, 76, 76, 76, 266, 74, 76,
651 : : 76, 76, 74, 313, 76, 76, 271, 76, 269, 76,
652 : : 268, 74, 76, 74, 74, 74, 76, 74, 74, 74,
653 : : 313, 313, 74, 76, 313, 272, 74, 76, 274, 313,
654 : : 74, 313, 313, 282, 74, 313, 76, 283, 76, 76,
655 : : 76, 74, 76, 76, 76, 278, 277, 76, 313, 275,
656 : : 74, 76, 74, 74, 289, 76, 280, 285, 74, 76,
657 : : 286, 74, 74, 74, 291, 288, 76, 295, 74, 74,
658 : :
659 : : 296, 297, 74, 293, 74, 76, 74, 76, 76, 313,
660 : : 298, 313, 299, 76, 74, 304, 76, 76, 76, 74,
661 : : 300, 313, 305, 76, 76, 302, 74, 76, 74, 76,
662 : : 74, 76, 74, 74, 301, 308, 303, 313, 306, 76,
663 : : 313, 313, 313, 313, 76, 313, 307, 313, 310, 313,
664 : : 313, 76, 313, 76, 313, 76, 313, 76, 76, 313,
665 : : 311, 313, 309, 313, 313, 313, 313, 313, 313, 313,
666 : : 313, 313, 313, 313, 313, 312, 31, 31, 31, 31,
667 : : 24, 24, 24, 24, 54, 54, 54, 54, 69, 69,
668 : : 69, 69, 75, 75, 75, 157, 157, 157, 216, 216,
669 : :
670 : : 23, 313, 313, 313, 313, 313, 313, 313, 313, 313,
671 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
672 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
673 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
674 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
675 : : 313, 313, 313, 313, 313, 313, 313, 313, 313
676 : : } ;
677 : :
678 : : static yyconst flex_int16_t yy_chk[960] =
679 : : { 0,
680 : : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
681 : : 3, 3, 3, 3, 4, 4, 4, 4, 7, 7,
682 : : 7, 7, 11, 11, 11, 11, 21, 21, 21, 21,
683 : : 31, 59, 60, 1, 1, 1, 59, 63, 61, 73,
684 : : 119, 119, 73, 63, 321, 121, 60, 121, 319, 292,
685 : : 60, 61, 290, 287, 284, 31, 1, 1, 2, 2,
686 : : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
687 : : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
688 : : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
689 : : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
690 : :
691 : : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
692 : : 2, 2, 2, 2, 2, 2, 5, 5, 5, 5,
693 : : 5, 6, 6, 6, 6, 6, 8, 8, 8, 8,
694 : : 9, 9, 9, 9, 10, 10, 10, 10, 12, 12,
695 : : 12, 12, 36, 281, 19, 19, 19, 19, 20, 20,
696 : : 20, 20, 22, 22, 22, 22, 30, 30, 34, 35,
697 : : 279, 38, 30, 276, 273, 37, 36, 36, 41, 116,
698 : : 34, 5, 270, 35, 116, 37, 6, 38, 260, 40,
699 : : 246, 40, 8, 34, 35, 9, 38, 39, 30, 10,
700 : : 37, 42, 225, 41, 12, 13, 13, 13, 13, 19,
701 : :
702 : : 116, 43, 41, 20, 40, 39, 13, 13, 22, 44,
703 : : 216, 45, 39, 47, 46, 13, 42, 13, 13, 48,
704 : : 13, 13, 191, 39, 49, 13, 43, 190, 50, 43,
705 : : 51, 42, 52, 75, 44, 43, 45, 44, 47, 46,
706 : : 43, 189, 45, 77, 48, 47, 78, 45, 46, 49,
707 : : 79, 81, 49, 50, 77, 51, 50, 52, 75, 48,
708 : : 49, 71, 71, 49, 52, 78, 79, 71, 77, 80,
709 : : 81, 78, 82, 83, 51, 79, 81, 84, 52, 85,
710 : : 84, 86, 87, 80, 88, 89, 188, 187, 90, 94,
711 : : 91, 82, 93, 71, 80, 92, 186, 82, 83, 158,
712 : :
713 : : 156, 155, 84, 95, 85, 97, 86, 87, 96, 88,
714 : : 89, 85, 83, 90, 94, 91, 98, 93, 87, 154,
715 : : 92, 86, 99, 89, 91, 88, 94, 92, 95, 100,
716 : : 97, 90, 101, 96, 93, 153, 102, 120, 123, 122,
717 : : 123, 98, 125, 152, 97, 122, 95, 99, 151, 96,
718 : : 98, 150, 124, 125, 100, 126, 128, 101, 100, 130,
719 : : 99, 102, 120, 123, 122, 126, 127, 125, 127, 131,
720 : : 129, 124, 132, 101, 149, 136, 102, 124, 148, 118,
721 : : 126, 128, 129, 133, 130, 134, 140, 135, 117, 115,
722 : : 114, 127, 137, 113, 131, 129, 138, 132, 111, 128,
723 : :
724 : : 136, 139, 110, 132, 130, 131, 141, 142, 133, 109,
725 : : 134, 140, 135, 133, 132, 135, 143, 137, 136, 144,
726 : : 145, 138, 146, 134, 147, 108, 139, 140, 157, 137,
727 : : 139, 141, 142, 159, 141, 162, 166, 160, 159, 138,
728 : : 160, 143, 166, 164, 144, 145, 164, 146, 145, 147,
729 : : 142, 163, 144, 157, 143, 161, 147, 161, 159, 146,
730 : : 162, 166, 160, 165, 163, 167, 168, 169, 164, 165,
731 : : 107, 170, 171, 172, 175, 106, 163, 173, 165, 174,
732 : : 161, 105, 176, 177, 178, 179, 180, 104, 165, 181,
733 : : 167, 168, 169, 182, 103, 169, 170, 171, 172, 175,
734 : :
735 : : 168, 183, 173, 170, 174, 184, 175, 176, 177, 178,
736 : : 179, 180, 178, 172, 181, 177, 171, 185, 182, 173,
737 : : 192, 174, 179, 193, 194, 182, 183, 197, 180, 196,
738 : : 184, 195, 181, 193, 195, 196, 194, 198, 201, 197,
739 : : 199, 183, 185, 200, 202, 192, 203, 200, 193, 194,
740 : : 204, 205, 197, 76, 196, 74, 195, 207, 206, 72,
741 : : 208, 209, 198, 201, 69, 199, 66, 65, 201, 202,
742 : : 210, 203, 200, 64, 211, 204, 205, 62, 198, 205,
743 : : 199, 212, 207, 206, 204, 208, 209, 202, 213, 203,
744 : : 206, 207, 206, 214, 215, 210, 223, 218, 208, 211,
745 : :
746 : : 220, 219, 209, 224, 221, 222, 212, 219, 210, 221,
747 : : 226, 222, 220, 213, 227, 212, 218, 56, 214, 215,
748 : : 228, 223, 218, 229, 230, 220, 219, 231, 224, 221,
749 : : 222, 232, 233, 29, 215, 226, 235, 223, 234, 227,
750 : : 236, 28, 227, 237, 238, 228, 224, 239, 229, 230,
751 : : 240, 243, 231, 27, 23, 244, 232, 233, 230, 245,
752 : : 247, 235, 249, 234, 242, 236, 229, 248, 237, 238,
753 : : 231, 241, 239, 236, 242, 240, 243, 241, 232, 233,
754 : : 244, 234, 250, 251, 245, 247, 252, 249, 253, 242,
755 : : 237, 254, 248, 245, 244, 255, 241, 256, 248, 258,
756 : :
757 : : 257, 259, 0, 249, 261, 262, 263, 250, 251, 264,
758 : : 265, 252, 266, 253, 267, 251, 254, 268, 252, 257,
759 : : 255, 269, 256, 254, 258, 257, 259, 255, 271, 261,
760 : : 262, 263, 272, 0, 264, 265, 261, 266, 259, 267,
761 : : 258, 274, 268, 275, 277, 278, 269, 282, 280, 283,
762 : : 0, 0, 285, 271, 0, 269, 286, 272, 271, 0,
763 : : 288, 0, 0, 280, 289, 0, 274, 280, 275, 277,
764 : : 278, 291, 282, 280, 283, 275, 274, 285, 0, 272,
765 : : 296, 286, 295, 293, 286, 288, 278, 282, 297, 289,
766 : : 283, 298, 299, 300, 289, 285, 291, 293, 301, 303,
767 : :
768 : : 293, 293, 306, 291, 302, 296, 304, 295, 293, 0,
769 : : 295, 0, 296, 297, 305, 301, 298, 299, 300, 307,
770 : : 297, 0, 302, 301, 303, 299, 309, 306, 310, 302,
771 : : 308, 304, 311, 312, 298, 306, 300, 0, 304, 305,
772 : : 0, 0, 0, 0, 307, 0, 305, 0, 308, 0,
773 : : 0, 309, 0, 310, 0, 308, 0, 311, 312, 0,
774 : : 310, 0, 307, 0, 0, 0, 0, 0, 0, 0,
775 : : 0, 0, 0, 0, 0, 311, 314, 314, 314, 314,
776 : : 315, 315, 315, 315, 316, 316, 316, 316, 317, 317,
777 : : 317, 317, 318, 318, 318, 320, 320, 320, 322, 322,
778 : :
779 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
780 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
781 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
782 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
783 : : 313, 313, 313, 313, 313, 313, 313, 313, 313, 313,
784 : : 313, 313, 313, 313, 313, 313, 313, 313, 313
785 : : } ;
786 : :
787 : : /* Table of booleans, true if rule could match eol. */
788 : : static yyconst flex_int32_t yy_rule_can_match_eol[49] =
789 : : { 0,
790 : : 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
791 : : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
792 : : 0, 0, 0, 0, 1, 0, 0, 0, 0, };
793 : :
794 : : static yy_state_type yy_last_accepting_state;
795 : : static char *yy_last_accepting_cpos;
796 : :
797 : : extern int mdl__flex_debug;
798 : : int mdl__flex_debug = 0;
799 : :
800 : : /* The intent behind this definition is that it'll catch
801 : : * any uses of REJECT which flex missed.
802 : : */
803 : : #define REJECT reject_used_but_not_detected
804 : : #define yymore() yymore_used_but_not_detected
805 : : #define YY_MORE_ADJ 0
806 : : #define YY_RESTORE_YY_MORE_OFFSET
807 : : char *mdl_text;
808 : : #line 1 "scan_mdl.l"
809 : : /* -*-c-*- */
810 : : #line 4 "scan_mdl.l"
811 : : /*
812 : : * scan_mdl.l - scanner for an IC-CAP MDL data file
813 : : *
814 : : * Copyright (C) 2006 Stefan Jahn <stefan@lkcc.org>
815 : : *
816 : : * This is free software; you can redistribute it and/or modify
817 : : * it under the terms of the GNU General Public License as published by
818 : : * the Free Software Foundation; either version 2, or (at your option)
819 : : * any later version.
820 : : *
821 : : * This software is distributed in the hope that it will be useful,
822 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
823 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
824 : : * GNU General Public License for more details.
825 : : *
826 : : * You should have received a copy of the GNU General Public License
827 : : * along with this package; see the file COPYING. If not, write to
828 : : * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
829 : : * Boston, MA 02110-1301, USA.
830 : : *
831 : : * $Id$
832 : : *
833 : : */
834 : :
835 : : #if HAVE_CONFIG_H
836 : : # include <config.h>
837 : : #endif
838 : :
839 : : #include <stdio.h>
840 : : #include <stdlib.h>
841 : : #include <string.h>
842 : : #include <ctype.h>
843 : :
844 : : #ifdef __MINGW32__
845 : : #include <io.h>
846 : : #endif
847 : :
848 : : #ifdef HAVE_UNISTD_H
849 : : #include <unistd.h>
850 : : #endif
851 : :
852 : : #include "check_mdl.h"
853 : : #include "tokens_mdl.h"
854 : :
855 : : #if !HAVE_STRCHR
856 : : # define strchr index
857 : : # define strrchr rindex
858 : : #endif
859 : :
860 : : using namespace qucs;
861 : :
862 : :
863 : :
864 : : #line 865 "scan_mdl.cpp"
865 : :
866 : : #define INITIAL 0
867 : : #define VERSION 1
868 : : #define BLKEDIT 2
869 : : #define BLKEDIT1 3
870 : : #define CIRCUIT 4
871 : : #define CIRCUIT1 5
872 : : #define PLINK 6
873 : : #define PLIST 7
874 : : #define PMEMBER 8
875 : : #define TABDATA 9
876 : : #define TABDATA1 10
877 : :
878 : : #ifndef YY_EXTRA_TYPE
879 : : #define YY_EXTRA_TYPE void *
880 : : #endif
881 : :
882 : : static int yy_init_globals (void );
883 : :
884 : : /* Accessor methods to globals.
885 : : These are made visible to non-reentrant scanners for convenience. */
886 : :
887 : : int mdl_lex_destroy (void );
888 : :
889 : : int mdl_get_debug (void );
890 : :
891 : : void mdl_set_debug (int debug_flag );
892 : :
893 : : YY_EXTRA_TYPE mdl_get_extra (void );
894 : :
895 : : void mdl_set_extra (YY_EXTRA_TYPE user_defined );
896 : :
897 : : FILE *mdl_get_in (void );
898 : :
899 : : void mdl_set_in (FILE * in_str );
900 : :
901 : : FILE *mdl_get_out (void );
902 : :
903 : : void mdl_set_out (FILE * out_str );
904 : :
905 : : yy_size_t mdl_get_leng (void );
906 : :
907 : : char *mdl_get_text (void );
908 : :
909 : : int mdl_get_lineno (void );
910 : :
911 : : void mdl_set_lineno (int line_number );
912 : :
913 : : /* Macros after this point can all be overridden by user definitions in
914 : : * section 1.
915 : : */
916 : :
917 : : #ifndef YY_SKIP_YYWRAP
918 : : #ifdef __cplusplus
919 : : extern "C" int mdl_wrap (void );
920 : : #else
921 : : extern int mdl_wrap (void );
922 : : #endif
923 : : #endif
924 : :
925 : : #ifndef yytext_ptr
926 : : static void yy_flex_strncpy (char *,yyconst char *,int );
927 : : #endif
928 : :
929 : : #ifdef YY_NEED_STRLEN
930 : : static int yy_flex_strlen (yyconst char * );
931 : : #endif
932 : :
933 : : #ifndef YY_NO_INPUT
934 : :
935 : : #ifdef __cplusplus
936 : : static int yyinput (void );
937 : : #else
938 : : static int input (void );
939 : : #endif
940 : :
941 : : #endif
942 : :
943 : : /* Amount of stuff to slurp up with each read. */
944 : : #ifndef YY_READ_BUF_SIZE
945 : : #define YY_READ_BUF_SIZE 8192
946 : : #endif
947 : :
948 : : /* Copy whatever the last rule matched to the standard output. */
949 : : #ifndef ECHO
950 : : /* This used to be an fputs(), but since the string might contain NUL's,
951 : : * we now use fwrite().
952 : : */
953 : : #define ECHO do { if (fwrite( mdl_text, mdl_leng, 1, mdl_out )) {} } while (0)
954 : : #endif
955 : :
956 : : /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
957 : : * is returned in "result".
958 : : */
959 : : #ifndef YY_INPUT
960 : : #define YY_INPUT(buf,result,max_size) \
961 : : if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
962 : : { \
963 : : int c = '*'; \
964 : : size_t n; \
965 : : for ( n = 0; n < max_size && \
966 : : (c = getc( mdl_in )) != EOF && c != '\n'; ++n ) \
967 : : buf[n] = (char) c; \
968 : : if ( c == '\n' ) \
969 : : buf[n++] = (char) c; \
970 : : if ( c == EOF && ferror( mdl_in ) ) \
971 : : YY_FATAL_ERROR( "input in flex scanner failed" ); \
972 : : result = n; \
973 : : } \
974 : : else \
975 : : { \
976 : : errno=0; \
977 : : while ( (result = fread(buf, 1, max_size, mdl_in))==0 && ferror(mdl_in)) \
978 : : { \
979 : : if( errno != EINTR) \
980 : : { \
981 : : YY_FATAL_ERROR( "input in flex scanner failed" ); \
982 : : break; \
983 : : } \
984 : : errno=0; \
985 : : clearerr(mdl_in); \
986 : : } \
987 : : }\
988 : : \
989 : :
990 : : #endif
991 : :
992 : : /* No semi-colon after return; correct usage is to write "yyterminate();" -
993 : : * we don't want an extra ';' after the "return" because that will cause
994 : : * some compilers to complain about unreachable statements.
995 : : */
996 : : #ifndef yyterminate
997 : : #define yyterminate() return YY_NULL
998 : : #endif
999 : :
1000 : : /* Number of entries by which start-condition stack grows. */
1001 : : #ifndef YY_START_STACK_INCR
1002 : : #define YY_START_STACK_INCR 25
1003 : : #endif
1004 : :
1005 : : /* Report a fatal error. */
1006 : : #ifndef YY_FATAL_ERROR
1007 : : #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1008 : : #endif
1009 : :
1010 : : /* end tables serialization structures and prototypes */
1011 : :
1012 : : /* Default declaration of generated scanner - a define so the user can
1013 : : * easily add parameters.
1014 : : */
1015 : : #ifndef YY_DECL
1016 : : #define YY_DECL_IS_OURS 1
1017 : :
1018 : : extern int mdl_lex (void);
1019 : :
1020 : : #define YY_DECL int mdl_lex (void)
1021 : : #endif /* !YY_DECL */
1022 : :
1023 : : /* Code executed at the beginning of each rule, after mdl_text and mdl_leng
1024 : : * have been set up.
1025 : : */
1026 : : #ifndef YY_USER_ACTION
1027 : : #define YY_USER_ACTION
1028 : : #endif
1029 : :
1030 : : /* Code executed at the end of each rule. */
1031 : : #ifndef YY_BREAK
1032 : : #define YY_BREAK break;
1033 : : #endif
1034 : :
1035 : : #define YY_RULE_SETUP \
1036 : : if ( mdl_leng > 0 ) \
1037 : : YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1038 : : (mdl_text[mdl_leng - 1] == '\n'); \
1039 : : YY_USER_ACTION
1040 : :
1041 : : /** The main scanner function which does all the work.
1042 : : */
1043 : 0 : YY_DECL
1044 : : {
1045 : : register yy_state_type yy_current_state;
1046 : : register char *yy_cp, *yy_bp;
1047 : : register int yy_act;
1048 : :
1049 : : #line 74 "scan_mdl.l"
1050 : :
1051 : :
1052 : : #line 1053 "scan_mdl.cpp"
1053 : :
1054 [ # # ]: 0 : if ( !(yy_init) )
1055 : : {
1056 : 0 : (yy_init) = 1;
1057 : :
1058 : : #ifdef YY_USER_INIT
1059 : : YY_USER_INIT;
1060 : : #endif
1061 : :
1062 [ # # ]: 0 : if ( ! (yy_start) )
1063 : 0 : (yy_start) = 1; /* first start state */
1064 : :
1065 [ # # ]: 0 : if ( ! mdl_in )
1066 : 0 : mdl_in = stdin;
1067 : :
1068 [ # # ]: 0 : if ( ! mdl_out )
1069 : 0 : mdl_out = stdout;
1070 : :
1071 [ # # ][ # # ]: 0 : if ( ! YY_CURRENT_BUFFER ) {
1072 : 0 : mdl_ensure_buffer_stack ();
1073 : 0 : YY_CURRENT_BUFFER_LVALUE =
1074 : 0 : mdl__create_buffer(mdl_in,YY_BUF_SIZE );
1075 : : }
1076 : :
1077 : 0 : mdl__load_buffer_state( );
1078 : : }
1079 : :
1080 : 0 : while ( 1 ) /* loops until end-of-file is reached */
1081 : : {
1082 : 0 : yy_cp = (yy_c_buf_p);
1083 : :
1084 : : /* Support of mdl_text. */
1085 : 0 : *yy_cp = (yy_hold_char);
1086 : :
1087 : : /* yy_bp points to the position in yy_ch_buf of the start of
1088 : : * the current run.
1089 : : */
1090 : 0 : yy_bp = yy_cp;
1091 : :
1092 : 0 : yy_current_state = (yy_start);
1093 : 0 : yy_current_state += YY_AT_BOL();
1094 : : yy_match:
1095 [ # # ]: 0 : do
1096 : : {
1097 : 0 : register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1098 [ # # ]: 0 : if ( yy_accept[yy_current_state] )
1099 : : {
1100 : 0 : (yy_last_accepting_state) = yy_current_state;
1101 : 0 : (yy_last_accepting_cpos) = yy_cp;
1102 : : }
1103 [ # # ]: 0 : while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1104 : : {
1105 : 0 : yy_current_state = (int) yy_def[yy_current_state];
1106 [ # # ]: 0 : if ( yy_current_state >= 314 )
1107 : 0 : yy_c = yy_meta[(unsigned int) yy_c];
1108 : : }
1109 : 0 : yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1110 : 0 : ++yy_cp;
1111 : : }
1112 : 0 : while ( yy_base[yy_current_state] != 901 );
1113 : :
1114 : : yy_find_action:
1115 : 0 : yy_act = yy_accept[yy_current_state];
1116 [ # # ]: 0 : if ( yy_act == 0 )
1117 : : { /* have to back up */
1118 : 0 : yy_cp = (yy_last_accepting_cpos);
1119 : 0 : yy_current_state = (yy_last_accepting_state);
1120 : 0 : yy_act = yy_accept[yy_current_state];
1121 : : }
1122 : :
1123 : 0 : YY_DO_BEFORE_ACTION;
1124 : :
1125 [ # # ][ # # ]: 0 : if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1126 : : {
1127 : : int yyl;
1128 [ # # ]: 0 : for ( yyl = 0; yyl < mdl_leng; ++yyl )
1129 [ # # ]: 0 : if ( mdl_text[yyl] == '\n' )
1130 : :
1131 : 0 : mdl_lineno++;
1132 : : ;
1133 : : }
1134 : :
1135 : : do_action: /* This label is used only to access EOF actions. */
1136 : :
1137 [ # # # # : 0 : switch ( yy_act )
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # # #
# # # ]
1138 : : { /* beginning of action switch */
1139 : : case 0: /* must back up */
1140 : : /* undo the effects of YY_DO_BEFORE_ACTION */
1141 : 0 : *yy_cp = (yy_hold_char);
1142 : 0 : yy_cp = (yy_last_accepting_cpos);
1143 : 0 : yy_current_state = (yy_last_accepting_state);
1144 : 0 : goto yy_find_action;
1145 : :
1146 : : case 1:
1147 [ # # ]: 0 : YY_RULE_SETUP
1148 : : #line 76 "scan_mdl.l"
1149 : : {
1150 : : BEGIN(PLINK);
1151 : : return LINK;
1152 : : }
1153 : : YY_BREAK
1154 : : case 2:
1155 : : YY_RULE_SETUP
1156 : : #line 81 "scan_mdl.l"
1157 : : {
1158 : : mdl_lval.ident = strdup (mdl_text);
1159 : : BEGIN(INITIAL);
1160 : : return t_LINK;
1161 : : }
1162 : : YY_BREAK
1163 : : case 3:
1164 : : /* rule 3 can match eol */
1165 : : YY_RULE_SETUP
1166 : : #line 87 "scan_mdl.l"
1167 : : {
1168 : : mdl_text[strlen (mdl_text) - 1] = '\0';
1169 : : mdl_text[0] = '\0';
1170 : : mdl_lval.ident = strdup (&mdl_text[1]);
1171 : : return String;
1172 : : }
1173 : : YY_BREAK
1174 : : case 4:
1175 : : YY_RULE_SETUP
1176 : : #line 94 "scan_mdl.l"
1177 : : {
1178 : : return t_VIEW;
1179 : : }
1180 : : YY_BREAK
1181 : : case 5:
1182 : : YY_RULE_SETUP
1183 : : #line 98 "scan_mdl.l"
1184 : : {
1185 : : return t_TABLE;
1186 : : }
1187 : : YY_BREAK
1188 : : case 6:
1189 : : YY_RULE_SETUP
1190 : : #line 102 "scan_mdl.l"
1191 : : {
1192 : : BEGIN(TABDATA);
1193 : : return t_TABLE;
1194 : : }
1195 : : YY_BREAK
1196 : : case 7:
1197 : : YY_RULE_SETUP
1198 : : #line 107 "scan_mdl.l"
1199 : : {
1200 : : return t_PSTABLE;
1201 : : }
1202 : : YY_BREAK
1203 : : case 8:
1204 : : YY_RULE_SETUP
1205 : : #line 111 "scan_mdl.l"
1206 : : {
1207 : : BEGIN(BLKEDIT);
1208 : : return t_BLKEDIT;
1209 : : }
1210 : : YY_BREAK
1211 : : case 9:
1212 : : YY_RULE_SETUP
1213 : : #line 116 "scan_mdl.l"
1214 : : {
1215 : : return t_CNTABLE;
1216 : : }
1217 : : YY_BREAK
1218 : : case 10:
1219 : : YY_RULE_SETUP
1220 : : #line 120 "scan_mdl.l"
1221 : : {
1222 : : return t_OPTIMEDIT;
1223 : : }
1224 : : YY_BREAK
1225 : : case 11:
1226 : : YY_RULE_SETUP
1227 : : #line 124 "scan_mdl.l"
1228 : : {
1229 : : return t_HYPTABLE;
1230 : : }
1231 : : YY_BREAK
1232 : : case 12:
1233 : : YY_RULE_SETUP
1234 : : #line 128 "scan_mdl.l"
1235 : : {
1236 : : return t_ELEMENT;
1237 : : }
1238 : : YY_BREAK
1239 : : case 13:
1240 : : YY_RULE_SETUP
1241 : : #line 132 "scan_mdl.l"
1242 : : {
1243 : : return t_DATA;
1244 : : }
1245 : : YY_BREAK
1246 : : case 14:
1247 : : YY_RULE_SETUP
1248 : : #line 136 "scan_mdl.l"
1249 : : {
1250 : : return t_DATASET;
1251 : : }
1252 : : YY_BREAK
1253 : : case 15:
1254 : : YY_RULE_SETUP
1255 : : #line 140 "scan_mdl.l"
1256 : : {
1257 : : return t_DATASIZE;
1258 : : }
1259 : : YY_BREAK
1260 : : case 16:
1261 : : YY_RULE_SETUP
1262 : : #line 144 "scan_mdl.l"
1263 : : {
1264 : : return t_POINT;
1265 : : }
1266 : : YY_BREAK
1267 : : case 17:
1268 : : YY_RULE_SETUP
1269 : : #line 148 "scan_mdl.l"
1270 : : {
1271 : : BEGIN(PMEMBER);
1272 : : return t_MEMBER;
1273 : : }
1274 : : YY_BREAK
1275 : : case 18:
1276 : : YY_RULE_SETUP
1277 : : #line 153 "scan_mdl.l"
1278 : : {
1279 : : BEGIN(PLIST);
1280 : : return t_LIST;
1281 : : }
1282 : : YY_BREAK
1283 : : case 19:
1284 : : YY_RULE_SETUP
1285 : : #line 158 "scan_mdl.l"
1286 : : {
1287 : : return t_PLOTOPTIMIZEROPT;
1288 : : }
1289 : : YY_BREAK
1290 : : case 20:
1291 : : YY_RULE_SETUP
1292 : : #line 162 "scan_mdl.l"
1293 : : {
1294 : : return t_PLOTOPTIMIZERTRACESET;
1295 : : }
1296 : : YY_BREAK
1297 : : case 21:
1298 : : YY_RULE_SETUP
1299 : : #line 166 "scan_mdl.l"
1300 : : {
1301 : : return t_PLOTOPTIMIZERTRACEREGSET;
1302 : : }
1303 : : YY_BREAK
1304 : : case 22:
1305 : : YY_RULE_SETUP
1306 : : #line 170 "scan_mdl.l"
1307 : : {
1308 : : return t_PLOTOPTIMIZERTRACENATREGSET;
1309 : : }
1310 : : YY_BREAK
1311 : : case 23:
1312 : : YY_RULE_SETUP
1313 : : #line 174 "scan_mdl.l"
1314 : : {
1315 : : return t_PLOTERROR;
1316 : : }
1317 : : YY_BREAK
1318 : : case 24:
1319 : : YY_RULE_SETUP
1320 : : #line 178 "scan_mdl.l"
1321 : : {
1322 : : return t_TYPE;
1323 : : }
1324 : : YY_BREAK
1325 : : case 25:
1326 : : YY_RULE_SETUP
1327 : : #line 182 "scan_mdl.l"
1328 : : {
1329 : : return t_EDITSIZE;
1330 : : }
1331 : : YY_BREAK
1332 : : case 26:
1333 : : YY_RULE_SETUP
1334 : : #line 186 "scan_mdl.l"
1335 : : {
1336 : : return t_PLOTSIZE;
1337 : : }
1338 : : YY_BREAK
1339 : : case 27:
1340 : : YY_RULE_SETUP
1341 : : #line 190 "scan_mdl.l"
1342 : : {
1343 : : return t_OPTRANGE;
1344 : : }
1345 : : YY_BREAK
1346 : : case 28:
1347 : : YY_RULE_SETUP
1348 : : #line 194 "scan_mdl.l"
1349 : : {
1350 : : return t_PARAM;
1351 : : }
1352 : : YY_BREAK
1353 : : case 29:
1354 : : YY_RULE_SETUP
1355 : : #line 198 "scan_mdl.l"
1356 : : {
1357 : : return t_RANGE;
1358 : : }
1359 : : YY_BREAK
1360 : : case 30:
1361 : : YY_RULE_SETUP
1362 : : #line 202 "scan_mdl.l"
1363 : : {
1364 : : return t_TERM;
1365 : : }
1366 : : YY_BREAK
1367 : : case 31:
1368 : : YY_RULE_SETUP
1369 : : #line 206 "scan_mdl.l"
1370 : : {
1371 : : return t_CALSET;
1372 : : }
1373 : : YY_BREAK
1374 : : case 32:
1375 : : YY_RULE_SETUP
1376 : : #line 210 "scan_mdl.l"
1377 : : {
1378 : : return t_CALDATA;
1379 : : }
1380 : : YY_BREAK
1381 : : case 33:
1382 : : YY_RULE_SETUP
1383 : : #line 214 "scan_mdl.l"
1384 : : {
1385 : : return t_APPLIC;
1386 : : }
1387 : : YY_BREAK
1388 : : case 34:
1389 : : YY_RULE_SETUP
1390 : : #line 218 "scan_mdl.l"
1391 : : {
1392 : : return t_SUBAPP;
1393 : : }
1394 : : YY_BREAK
1395 : : case 35:
1396 : : YY_RULE_SETUP
1397 : : #line 222 "scan_mdl.l"
1398 : : {
1399 : : return t_CONNPAIR;
1400 : : }
1401 : : YY_BREAK
1402 : : case 36:
1403 : : YY_RULE_SETUP
1404 : : #line 226 "scan_mdl.l"
1405 : : {
1406 : : BEGIN(CIRCUIT);
1407 : : return t_CIRCUITDECK;
1408 : : }
1409 : : YY_BREAK
1410 : : case 37:
1411 : : YY_RULE_SETUP
1412 : : #line 231 "scan_mdl.l"
1413 : : { /* identify float */
1414 : : mdl_lval.f = strtod (mdl_text, NULL);
1415 : : return Real;
1416 : : }
1417 : : YY_BREAK
1418 : : case 38:
1419 : : YY_RULE_SETUP
1420 : : #line 236 "scan_mdl.l"
1421 : : {
1422 : : mdl_lval.ident = strdup (mdl_text);
1423 : : return Identifier;
1424 : : }
1425 : : YY_BREAK
1426 : : case 39:
1427 : : YY_RULE_SETUP
1428 : : #line 241 "scan_mdl.l"
1429 : : { BEGIN(BLKEDIT1); return '{'; }
1430 : : YY_BREAK
1431 : : case 40:
1432 : : YY_RULE_SETUP
1433 : : #line 242 "scan_mdl.l"
1434 : : { BEGIN(CIRCUIT1); return '{'; }
1435 : : YY_BREAK
1436 : : case 41:
1437 : : YY_RULE_SETUP
1438 : : #line 243 "scan_mdl.l"
1439 : : { BEGIN(TABDATA1); return '{'; }
1440 : : YY_BREAK
1441 : : case 42:
1442 : : YY_RULE_SETUP
1443 : : #line 245 "scan_mdl.l"
1444 : : { /* pass the '{' to the parser */ return '{'; }
1445 : : YY_BREAK
1446 : : case 43:
1447 : : YY_RULE_SETUP
1448 : : #line 246 "scan_mdl.l"
1449 : : { /* pass the '{' to the parser */ return '}'; }
1450 : : YY_BREAK
1451 : : case 44:
1452 : : /* rule 44 can match eol */
1453 : : YY_RULE_SETUP
1454 : : #line 248 "scan_mdl.l"
1455 : : { /* skip end of line and spaces */ }
1456 : : YY_BREAK
1457 : : case 45:
1458 : : YY_RULE_SETUP
1459 : : #line 250 "scan_mdl.l"
1460 : : { BEGIN(INITIAL); return '}'; }
1461 : : YY_BREAK
1462 : : case 46:
1463 : : YY_RULE_SETUP
1464 : : #line 251 "scan_mdl.l"
1465 : : { /* ignore */ }
1466 : : YY_BREAK
1467 : : case 47:
1468 : : YY_RULE_SETUP
1469 : : #line 253 "scan_mdl.l"
1470 : : { /* any other character is invalid */
1471 : : fprintf (stderr,
1472 : : "line %d: syntax error, unrecognized character: `%s'\n",
1473 : : mdl_lineno, mdl_text);
1474 : : return InvalidCharacter;
1475 : : }
1476 : : YY_BREAK
1477 : : case 48:
1478 : : YY_RULE_SETUP
1479 : : #line 260 "scan_mdl.l"
1480 : : ECHO;
1481 : : YY_BREAK
1482 : : #line 1483 "scan_mdl.cpp"
1483 : : case YY_STATE_EOF(INITIAL):
1484 : : case YY_STATE_EOF(VERSION):
1485 : : case YY_STATE_EOF(BLKEDIT):
1486 : : case YY_STATE_EOF(BLKEDIT1):
1487 : : case YY_STATE_EOF(CIRCUIT):
1488 : : case YY_STATE_EOF(CIRCUIT1):
1489 : : case YY_STATE_EOF(PLINK):
1490 : : case YY_STATE_EOF(PLIST):
1491 : : case YY_STATE_EOF(PMEMBER):
1492 : : case YY_STATE_EOF(TABDATA):
1493 : : case YY_STATE_EOF(TABDATA1):
1494 : 0 : yyterminate();
1495 : :
1496 : : case YY_END_OF_BUFFER:
1497 : : {
1498 : : /* Amount of text matched not including the EOB char. */
1499 : 0 : int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1500 : :
1501 : : /* Undo the effects of YY_DO_BEFORE_ACTION. */
1502 : 0 : *yy_cp = (yy_hold_char);
1503 : : YY_RESTORE_YY_MORE_OFFSET
1504 : :
1505 [ # # ]: 0 : if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1506 : : {
1507 : : /* We're scanning a new file or input source. It's
1508 : : * possible that this happened because the user
1509 : : * just pointed mdl_in at a new source and called
1510 : : * mdl_lex(). If so, then we have to assure
1511 : : * consistency between YY_CURRENT_BUFFER and our
1512 : : * globals. Here is the right place to do so, because
1513 : : * this is the first action (other than possibly a
1514 : : * back-up) that will match for the new input source.
1515 : : */
1516 : 0 : (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1517 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_input_file = mdl_in;
1518 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1519 : : }
1520 : :
1521 : : /* Note that here we test for yy_c_buf_p "<=" to the position
1522 : : * of the first EOB in the buffer, since yy_c_buf_p will
1523 : : * already have been incremented past the NUL character
1524 : : * (since all states make transitions on EOB to the
1525 : : * end-of-buffer state). Contrast this with the test
1526 : : * in input().
1527 : : */
1528 [ # # ]: 0 : if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1529 : : { /* This was really a NUL. */
1530 : : yy_state_type yy_next_state;
1531 : :
1532 : 0 : (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1533 : :
1534 : 0 : yy_current_state = yy_get_previous_state( );
1535 : :
1536 : : /* Okay, we're now positioned to make the NUL
1537 : : * transition. We couldn't have
1538 : : * yy_get_previous_state() go ahead and do it
1539 : : * for us because it doesn't know how to deal
1540 : : * with the possibility of jamming (and we don't
1541 : : * want to build jamming into it because then it
1542 : : * will run more slowly).
1543 : : */
1544 : :
1545 : 0 : yy_next_state = yy_try_NUL_trans( yy_current_state );
1546 : :
1547 : 0 : yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1548 : :
1549 [ # # ]: 0 : if ( yy_next_state )
1550 : : {
1551 : : /* Consume the NUL. */
1552 : 0 : yy_cp = ++(yy_c_buf_p);
1553 : 0 : yy_current_state = yy_next_state;
1554 : 0 : goto yy_match;
1555 : : }
1556 : :
1557 : : else
1558 : : {
1559 : 0 : yy_cp = (yy_c_buf_p);
1560 : 0 : goto yy_find_action;
1561 : : }
1562 : : }
1563 : :
1564 [ # # # # ]: 0 : else switch ( yy_get_next_buffer( ) )
1565 : : {
1566 : : case EOB_ACT_END_OF_FILE:
1567 : : {
1568 : 0 : (yy_did_buffer_switch_on_eof) = 0;
1569 : :
1570 : : if ( mdl_wrap( ) )
1571 : : {
1572 : : /* Note: because we've taken care in
1573 : : * yy_get_next_buffer() to have set up
1574 : : * mdl_text, we can now set up
1575 : : * yy_c_buf_p so that if some total
1576 : : * hoser (like flex itself) wants to
1577 : : * call the scanner after we return the
1578 : : * YY_NULL, it'll still work - another
1579 : : * YY_NULL will get returned.
1580 : : */
1581 : 0 : (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1582 : :
1583 : 0 : yy_act = YY_STATE_EOF(YY_START);
1584 : 0 : goto do_action;
1585 : : }
1586 : :
1587 : : else
1588 : : {
1589 : : if ( ! (yy_did_buffer_switch_on_eof) )
1590 : : YY_NEW_FILE;
1591 : : }
1592 : : break;
1593 : : }
1594 : :
1595 : : case EOB_ACT_CONTINUE_SCAN:
1596 : : (yy_c_buf_p) =
1597 : 0 : (yytext_ptr) + yy_amount_of_matched_text;
1598 : :
1599 : 0 : yy_current_state = yy_get_previous_state( );
1600 : :
1601 : 0 : yy_cp = (yy_c_buf_p);
1602 : 0 : yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1603 : 0 : goto yy_match;
1604 : :
1605 : : case EOB_ACT_LAST_MATCH:
1606 : : (yy_c_buf_p) =
1607 : 0 : &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1608 : :
1609 : 0 : yy_current_state = yy_get_previous_state( );
1610 : :
1611 : 0 : yy_cp = (yy_c_buf_p);
1612 : 0 : yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1613 : 0 : goto yy_find_action;
1614 : : }
1615 : 0 : break;
1616 : : }
1617 : :
1618 : : default:
1619 : : YY_FATAL_ERROR(
1620 : 0 : "fatal flex scanner internal error--no action found" );
1621 : : } /* end of action switch */
1622 : : } /* end of scanning one token */
1623 : : } /* end of mdl_lex */
1624 : :
1625 : : /* yy_get_next_buffer - try to read in a new buffer
1626 : : *
1627 : : * Returns a code representing an action:
1628 : : * EOB_ACT_LAST_MATCH -
1629 : : * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1630 : : * EOB_ACT_END_OF_FILE - end of file
1631 : : */
1632 : 0 : static int yy_get_next_buffer (void)
1633 : : {
1634 : 0 : register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1635 : 0 : register char *source = (yytext_ptr);
1636 : : register int number_to_move, i;
1637 : : int ret_val;
1638 : :
1639 [ # # ]: 0 : if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1640 : : YY_FATAL_ERROR(
1641 : 0 : "fatal flex scanner internal error--end of buffer missed" );
1642 : :
1643 [ # # ]: 0 : if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1644 : : { /* Don't try to fill the buffer, so this is an EOF. */
1645 [ # # ]: 0 : if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1646 : : {
1647 : : /* We matched a single character, the EOB, so
1648 : : * treat this as a final EOF.
1649 : : */
1650 : 0 : return EOB_ACT_END_OF_FILE;
1651 : : }
1652 : :
1653 : : else
1654 : : {
1655 : : /* We matched some text prior to the EOB, first
1656 : : * process it.
1657 : : */
1658 : 0 : return EOB_ACT_LAST_MATCH;
1659 : : }
1660 : : }
1661 : :
1662 : : /* Try to read more data. */
1663 : :
1664 : : /* First move last chars to start of buffer. */
1665 : 0 : number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1666 : :
1667 [ # # ]: 0 : for ( i = 0; i < number_to_move; ++i )
1668 : 0 : *(dest++) = *(source++);
1669 : :
1670 [ # # ]: 0 : if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1671 : : /* don't do the read, it's not guaranteed to return an EOF,
1672 : : * just force an EOF
1673 : : */
1674 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1675 : :
1676 : : else
1677 : : {
1678 : : yy_size_t num_to_read =
1679 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1680 : :
1681 [ # # ]: 0 : while ( num_to_read <= 0 )
1682 : : { /* Not enough room in the buffer - grow it. */
1683 : :
1684 : : /* just a shorter name for the current buffer */
1685 : 0 : YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1686 : :
1687 : : int yy_c_buf_p_offset =
1688 : 0 : (int) ((yy_c_buf_p) - b->yy_ch_buf);
1689 : :
1690 [ # # ]: 0 : if ( b->yy_is_our_buffer )
1691 : : {
1692 : 0 : yy_size_t new_size = b->yy_buf_size * 2;
1693 : :
1694 [ # # ]: 0 : if ( new_size <= 0 )
1695 : 0 : b->yy_buf_size += b->yy_buf_size / 8;
1696 : : else
1697 : 0 : b->yy_buf_size *= 2;
1698 : :
1699 : : b->yy_ch_buf = (char *)
1700 : : /* Include room in for 2 EOB chars. */
1701 : 0 : mdl_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
1702 : : }
1703 : : else
1704 : : /* Can't grow it, we don't own it. */
1705 : 0 : b->yy_ch_buf = 0;
1706 : :
1707 [ # # ]: 0 : if ( ! b->yy_ch_buf )
1708 : : YY_FATAL_ERROR(
1709 : 0 : "fatal error - scanner input buffer overflow" );
1710 : :
1711 : 0 : (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1712 : :
1713 : 0 : num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1714 : 0 : number_to_move - 1;
1715 : :
1716 : : }
1717 : :
1718 [ # # ]: 0 : if ( num_to_read > YY_READ_BUF_SIZE )
1719 : 0 : num_to_read = YY_READ_BUF_SIZE;
1720 : :
1721 : : /* Read in more data. */
1722 [ # # ][ # # ]: 0 : YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
1723 : : (yy_n_chars), num_to_read );
1724 : :
1725 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1726 : : }
1727 : :
1728 [ # # ]: 0 : if ( (yy_n_chars) == 0 )
1729 : : {
1730 [ # # ]: 0 : if ( number_to_move == YY_MORE_ADJ )
1731 : : {
1732 : 0 : ret_val = EOB_ACT_END_OF_FILE;
1733 : 0 : mdl_restart(mdl_in );
1734 : : }
1735 : :
1736 : : else
1737 : : {
1738 : 0 : ret_val = EOB_ACT_LAST_MATCH;
1739 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1740 : 0 : YY_BUFFER_EOF_PENDING;
1741 : : }
1742 : : }
1743 : :
1744 : : else
1745 : 0 : ret_val = EOB_ACT_CONTINUE_SCAN;
1746 : :
1747 [ # # ]: 0 : if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1748 : : /* Extend the array by 50%, plus the number we really need. */
1749 : 0 : yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1750 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) mdl_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
1751 [ # # ]: 0 : if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1752 : 0 : YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1753 : : }
1754 : :
1755 : 0 : (yy_n_chars) += number_to_move;
1756 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1757 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1758 : :
1759 : 0 : (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1760 : :
1761 : 0 : return ret_val;
1762 : : }
1763 : :
1764 : : /* yy_get_previous_state - get the state just before the EOB char was reached */
1765 : :
1766 : 0 : static yy_state_type yy_get_previous_state (void)
1767 : : {
1768 : : register yy_state_type yy_current_state;
1769 : : register char *yy_cp;
1770 : :
1771 : 0 : yy_current_state = (yy_start);
1772 : 0 : yy_current_state += YY_AT_BOL();
1773 : :
1774 [ # # ]: 0 : for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1775 : : {
1776 [ # # ]: 0 : register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1777 [ # # ]: 0 : if ( yy_accept[yy_current_state] )
1778 : : {
1779 : 0 : (yy_last_accepting_state) = yy_current_state;
1780 : 0 : (yy_last_accepting_cpos) = yy_cp;
1781 : : }
1782 [ # # ]: 0 : while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1783 : : {
1784 : 0 : yy_current_state = (int) yy_def[yy_current_state];
1785 [ # # ]: 0 : if ( yy_current_state >= 314 )
1786 : 0 : yy_c = yy_meta[(unsigned int) yy_c];
1787 : : }
1788 : 0 : yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1789 : : }
1790 : :
1791 : 0 : return yy_current_state;
1792 : : }
1793 : :
1794 : : /* yy_try_NUL_trans - try to make a transition on the NUL character
1795 : : *
1796 : : * synopsis
1797 : : * next_state = yy_try_NUL_trans( current_state );
1798 : : */
1799 : 0 : static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
1800 : : {
1801 : : register int yy_is_jam;
1802 : 0 : register char *yy_cp = (yy_c_buf_p);
1803 : :
1804 : 0 : register YY_CHAR yy_c = 1;
1805 [ # # ]: 0 : if ( yy_accept[yy_current_state] )
1806 : : {
1807 : 0 : (yy_last_accepting_state) = yy_current_state;
1808 : 0 : (yy_last_accepting_cpos) = yy_cp;
1809 : : }
1810 [ # # ]: 0 : while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1811 : : {
1812 : 0 : yy_current_state = (int) yy_def[yy_current_state];
1813 [ # # ]: 0 : if ( yy_current_state >= 314 )
1814 : 0 : yy_c = yy_meta[(unsigned int) yy_c];
1815 : : }
1816 : 0 : yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1817 : 0 : yy_is_jam = (yy_current_state == 313);
1818 : :
1819 [ # # ]: 0 : return yy_is_jam ? 0 : yy_current_state;
1820 : : }
1821 : :
1822 : : #ifndef YY_NO_INPUT
1823 : : #ifdef __cplusplus
1824 : 0 : static int yyinput (void)
1825 : : #else
1826 : : static int input (void)
1827 : : #endif
1828 : :
1829 : : {
1830 : : int c;
1831 : :
1832 : 0 : *(yy_c_buf_p) = (yy_hold_char);
1833 : :
1834 [ # # ]: 0 : if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1835 : : {
1836 : : /* yy_c_buf_p now points to the character we want to return.
1837 : : * If this occurs *before* the EOB characters, then it's a
1838 : : * valid NUL; if not, then we've hit the end of the buffer.
1839 : : */
1840 [ # # ]: 0 : if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1841 : : /* This was really a NUL. */
1842 : 0 : *(yy_c_buf_p) = '\0';
1843 : :
1844 : : else
1845 : : { /* need more input */
1846 : 0 : yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
1847 : 0 : ++(yy_c_buf_p);
1848 : :
1849 [ # # # # ]: 0 : switch ( yy_get_next_buffer( ) )
1850 : : {
1851 : : case EOB_ACT_LAST_MATCH:
1852 : : /* This happens because yy_g_n_b()
1853 : : * sees that we've accumulated a
1854 : : * token and flags that we need to
1855 : : * try matching the token before
1856 : : * proceeding. But for input(),
1857 : : * there's no matching to consider.
1858 : : * So convert the EOB_ACT_LAST_MATCH
1859 : : * to EOB_ACT_END_OF_FILE.
1860 : : */
1861 : :
1862 : : /* Reset buffer status. */
1863 : 0 : mdl_restart(mdl_in );
1864 : :
1865 : : /*FALLTHROUGH*/
1866 : :
1867 : : case EOB_ACT_END_OF_FILE:
1868 : : {
1869 : : if ( mdl_wrap( ) )
1870 : 0 : return EOF;
1871 : :
1872 : : if ( ! (yy_did_buffer_switch_on_eof) )
1873 : : YY_NEW_FILE;
1874 : : #ifdef __cplusplus
1875 : : return yyinput();
1876 : : #else
1877 : : return input();
1878 : : #endif
1879 : : }
1880 : :
1881 : : case EOB_ACT_CONTINUE_SCAN:
1882 : 0 : (yy_c_buf_p) = (yytext_ptr) + offset;
1883 : 0 : break;
1884 : : }
1885 : : }
1886 : : }
1887 : :
1888 : 0 : c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
1889 : 0 : *(yy_c_buf_p) = '\0'; /* preserve mdl_text */
1890 : 0 : (yy_hold_char) = *++(yy_c_buf_p);
1891 : :
1892 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
1893 [ # # ]: 0 : if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
1894 : :
1895 : 0 : mdl_lineno++;
1896 : : ;
1897 : :
1898 : 0 : return c;
1899 : : }
1900 : : #endif /* ifndef YY_NO_INPUT */
1901 : :
1902 : : /** Immediately switch to a different input stream.
1903 : : * @param input_file A readable stream.
1904 : : *
1905 : : * @note This function does not reset the start condition to @c INITIAL .
1906 : : */
1907 : 0 : void mdl_restart (FILE * input_file )
1908 : : {
1909 : :
1910 [ # # ][ # # ]: 0 : if ( ! YY_CURRENT_BUFFER ){
1911 : 0 : mdl_ensure_buffer_stack ();
1912 : 0 : YY_CURRENT_BUFFER_LVALUE =
1913 : 0 : mdl__create_buffer(mdl_in,YY_BUF_SIZE );
1914 : : }
1915 : :
1916 [ # # ]: 0 : mdl__init_buffer(YY_CURRENT_BUFFER,input_file );
1917 : 0 : mdl__load_buffer_state( );
1918 : 0 : }
1919 : :
1920 : : /** Switch to a different input buffer.
1921 : : * @param new_buffer The new input buffer.
1922 : : *
1923 : : */
1924 : 0 : void mdl__switch_to_buffer (YY_BUFFER_STATE new_buffer )
1925 : : {
1926 : :
1927 : : /* TODO. We should be able to replace this entire function body
1928 : : * with
1929 : : * mdl_pop_buffer_state();
1930 : : * mdl_push_buffer_state(new_buffer);
1931 : : */
1932 : 0 : mdl_ensure_buffer_stack ();
1933 [ # # ][ # # ]: 0 : if ( YY_CURRENT_BUFFER == new_buffer )
1934 : 0 : return;
1935 : :
1936 [ # # ][ # # ]: 0 : if ( YY_CURRENT_BUFFER )
1937 : : {
1938 : : /* Flush out information for old buffer. */
1939 : 0 : *(yy_c_buf_p) = (yy_hold_char);
1940 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1941 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1942 : : }
1943 : :
1944 : 0 : YY_CURRENT_BUFFER_LVALUE = new_buffer;
1945 : 0 : mdl__load_buffer_state( );
1946 : :
1947 : : /* We don't actually know whether we did this switch during
1948 : : * EOF (mdl_wrap()) processing, but the only time this flag
1949 : : * is looked at is after mdl_wrap() is called, so it's safe
1950 : : * to go ahead and always set it.
1951 : : */
1952 : 0 : (yy_did_buffer_switch_on_eof) = 1;
1953 : : }
1954 : :
1955 : 0 : static void mdl__load_buffer_state (void)
1956 : : {
1957 : 0 : (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1958 : 0 : (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1959 : 0 : mdl_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1960 : 0 : (yy_hold_char) = *(yy_c_buf_p);
1961 : 0 : }
1962 : :
1963 : : /** Allocate and initialize an input buffer state.
1964 : : * @param file A readable stream.
1965 : : * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1966 : : *
1967 : : * @return the allocated buffer state.
1968 : : */
1969 : 0 : YY_BUFFER_STATE mdl__create_buffer (FILE * file, int size )
1970 : : {
1971 : : YY_BUFFER_STATE b;
1972 : :
1973 : 0 : b = (YY_BUFFER_STATE) mdl_alloc(sizeof( struct yy_buffer_state ) );
1974 [ # # ]: 0 : if ( ! b )
1975 : 0 : YY_FATAL_ERROR( "out of dynamic memory in mdl__create_buffer()" );
1976 : :
1977 : 0 : b->yy_buf_size = size;
1978 : :
1979 : : /* yy_ch_buf has to be 2 characters longer than the size given because
1980 : : * we need to put in 2 end-of-buffer characters.
1981 : : */
1982 : 0 : b->yy_ch_buf = (char *) mdl_alloc(b->yy_buf_size + 2 );
1983 [ # # ]: 0 : if ( ! b->yy_ch_buf )
1984 : 0 : YY_FATAL_ERROR( "out of dynamic memory in mdl__create_buffer()" );
1985 : :
1986 : 0 : b->yy_is_our_buffer = 1;
1987 : :
1988 : 0 : mdl__init_buffer(b,file );
1989 : :
1990 : 0 : return b;
1991 : : }
1992 : :
1993 : : /** Destroy the buffer.
1994 : : * @param b a buffer created with mdl__create_buffer()
1995 : : *
1996 : : */
1997 : 0 : void mdl__delete_buffer (YY_BUFFER_STATE b )
1998 : : {
1999 : :
2000 [ # # ]: 0 : if ( ! b )
2001 : 0 : return;
2002 : :
2003 [ # # ][ # # ]: 0 : if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2004 : 0 : YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2005 : :
2006 [ # # ]: 0 : if ( b->yy_is_our_buffer )
2007 : 0 : mdl_free((void *) b->yy_ch_buf );
2008 : :
2009 : 0 : mdl_free((void *) b );
2010 : : }
2011 : :
2012 : : /* Initializes or reinitializes a buffer.
2013 : : * This function is sometimes called more than once on the same buffer,
2014 : : * such as during a mdl_restart() or at EOF.
2015 : : */
2016 : 0 : static void mdl__init_buffer (YY_BUFFER_STATE b, FILE * file )
2017 : :
2018 : : {
2019 : 0 : int oerrno = errno;
2020 : :
2021 : 0 : mdl__flush_buffer(b );
2022 : :
2023 : 0 : b->yy_input_file = file;
2024 : 0 : b->yy_fill_buffer = 1;
2025 : :
2026 : : /* If b is the current buffer, then mdl__init_buffer was _probably_
2027 : : * called from mdl_restart() or through yy_get_next_buffer.
2028 : : * In that case, we don't want to reset the lineno or column.
2029 : : */
2030 [ # # ][ # # ]: 0 : if (b != YY_CURRENT_BUFFER){
2031 : 0 : b->yy_bs_lineno = 1;
2032 : 0 : b->yy_bs_column = 0;
2033 : : }
2034 : :
2035 [ # # ][ # # ]: 0 : b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2036 : :
2037 : 0 : errno = oerrno;
2038 : 0 : }
2039 : :
2040 : : /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2041 : : * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2042 : : *
2043 : : */
2044 : 0 : void mdl__flush_buffer (YY_BUFFER_STATE b )
2045 : : {
2046 [ # # ]: 0 : if ( ! b )
2047 : 0 : return;
2048 : :
2049 : 0 : b->yy_n_chars = 0;
2050 : :
2051 : : /* We always need two end-of-buffer characters. The first causes
2052 : : * a transition to the end-of-buffer state. The second causes
2053 : : * a jam in that state.
2054 : : */
2055 : 0 : b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2056 : 0 : b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2057 : :
2058 : 0 : b->yy_buf_pos = &b->yy_ch_buf[0];
2059 : :
2060 : 0 : b->yy_at_bol = 1;
2061 : 0 : b->yy_buffer_status = YY_BUFFER_NEW;
2062 : :
2063 [ # # ][ # # ]: 0 : if ( b == YY_CURRENT_BUFFER )
2064 : 0 : mdl__load_buffer_state( );
2065 : : }
2066 : :
2067 : : /** Pushes the new state onto the stack. The new state becomes
2068 : : * the current state. This function will allocate the stack
2069 : : * if necessary.
2070 : : * @param new_buffer The new state.
2071 : : *
2072 : : */
2073 : 0 : void mdl_push_buffer_state (YY_BUFFER_STATE new_buffer )
2074 : : {
2075 [ # # ]: 0 : if (new_buffer == NULL)
2076 : 0 : return;
2077 : :
2078 : 0 : mdl_ensure_buffer_stack();
2079 : :
2080 : : /* This block is copied from mdl__switch_to_buffer. */
2081 [ # # ][ # # ]: 0 : if ( YY_CURRENT_BUFFER )
2082 : : {
2083 : : /* Flush out information for old buffer. */
2084 : 0 : *(yy_c_buf_p) = (yy_hold_char);
2085 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2086 : 0 : YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2087 : : }
2088 : :
2089 : : /* Only push if top exists. Otherwise, replace top. */
2090 [ # # ][ # # ]: 0 : if (YY_CURRENT_BUFFER)
2091 : 0 : (yy_buffer_stack_top)++;
2092 : 0 : YY_CURRENT_BUFFER_LVALUE = new_buffer;
2093 : :
2094 : : /* copied from mdl__switch_to_buffer. */
2095 : 0 : mdl__load_buffer_state( );
2096 : 0 : (yy_did_buffer_switch_on_eof) = 1;
2097 : : }
2098 : :
2099 : : /** Removes and deletes the top of the stack, if present.
2100 : : * The next element becomes the new top.
2101 : : *
2102 : : */
2103 : 0 : void mdl_pop_buffer_state (void)
2104 : : {
2105 [ # # ][ # # ]: 0 : if (!YY_CURRENT_BUFFER)
2106 : 0 : return;
2107 : :
2108 [ # # ]: 0 : mdl__delete_buffer(YY_CURRENT_BUFFER );
2109 : 0 : YY_CURRENT_BUFFER_LVALUE = NULL;
2110 [ # # ]: 0 : if ((yy_buffer_stack_top) > 0)
2111 : 0 : --(yy_buffer_stack_top);
2112 : :
2113 [ # # ][ # # ]: 0 : if (YY_CURRENT_BUFFER) {
2114 : 0 : mdl__load_buffer_state( );
2115 : 0 : (yy_did_buffer_switch_on_eof) = 1;
2116 : : }
2117 : : }
2118 : :
2119 : : /* Allocates the stack if it does not exist.
2120 : : * Guarantees space for at least one push.
2121 : : */
2122 : 0 : static void mdl_ensure_buffer_stack (void)
2123 : : {
2124 : : yy_size_t num_to_alloc;
2125 : :
2126 [ # # ]: 0 : if (!(yy_buffer_stack)) {
2127 : :
2128 : : /* First allocation is just for 2 elements, since we don't know if this
2129 : : * scanner will even need a stack. We use 2 instead of 1 to avoid an
2130 : : * immediate realloc on the next call.
2131 : : */
2132 : 0 : num_to_alloc = 1;
2133 : : (yy_buffer_stack) = (struct yy_buffer_state**)mdl_alloc
2134 : : (num_to_alloc * sizeof(struct yy_buffer_state*)
2135 : 0 : );
2136 [ # # ]: 0 : if ( ! (yy_buffer_stack) )
2137 : 0 : YY_FATAL_ERROR( "out of dynamic memory in mdl_ensure_buffer_stack()" );
2138 : :
2139 : 0 : memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2140 : :
2141 : 0 : (yy_buffer_stack_max) = num_to_alloc;
2142 : 0 : (yy_buffer_stack_top) = 0;
2143 : 0 : return;
2144 : : }
2145 : :
2146 [ # # ]: 0 : if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2147 : :
2148 : : /* Increase the buffer to prepare for a possible push. */
2149 : 0 : int grow_size = 8 /* arbitrary grow size */;
2150 : :
2151 : 0 : num_to_alloc = (yy_buffer_stack_max) + grow_size;
2152 : : (yy_buffer_stack) = (struct yy_buffer_state**)mdl_realloc
2153 : : ((yy_buffer_stack),
2154 : : num_to_alloc * sizeof(struct yy_buffer_state*)
2155 : 0 : );
2156 [ # # ]: 0 : if ( ! (yy_buffer_stack) )
2157 : 0 : YY_FATAL_ERROR( "out of dynamic memory in mdl_ensure_buffer_stack()" );
2158 : :
2159 : : /* zero only the new slots.*/
2160 : 0 : memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2161 : 0 : (yy_buffer_stack_max) = num_to_alloc;
2162 : : }
2163 : : }
2164 : :
2165 : : /** Setup the input buffer state to scan directly from a user-specified character buffer.
2166 : : * @param base the character buffer
2167 : : * @param size the size in bytes of the character buffer
2168 : : *
2169 : : * @return the newly allocated buffer state object.
2170 : : */
2171 : 0 : YY_BUFFER_STATE mdl__scan_buffer (char * base, yy_size_t size )
2172 : : {
2173 : : YY_BUFFER_STATE b;
2174 : :
2175 [ # # ][ # # ]: 0 : if ( size < 2 ||
[ # # ]
2176 : 0 : base[size-2] != YY_END_OF_BUFFER_CHAR ||
2177 : 0 : base[size-1] != YY_END_OF_BUFFER_CHAR )
2178 : : /* They forgot to leave room for the EOB's. */
2179 : 0 : return 0;
2180 : :
2181 : 0 : b = (YY_BUFFER_STATE) mdl_alloc(sizeof( struct yy_buffer_state ) );
2182 [ # # ]: 0 : if ( ! b )
2183 : 0 : YY_FATAL_ERROR( "out of dynamic memory in mdl__scan_buffer()" );
2184 : :
2185 : 0 : b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2186 : 0 : b->yy_buf_pos = b->yy_ch_buf = base;
2187 : 0 : b->yy_is_our_buffer = 0;
2188 : 0 : b->yy_input_file = 0;
2189 : 0 : b->yy_n_chars = b->yy_buf_size;
2190 : 0 : b->yy_is_interactive = 0;
2191 : 0 : b->yy_at_bol = 1;
2192 : 0 : b->yy_fill_buffer = 0;
2193 : 0 : b->yy_buffer_status = YY_BUFFER_NEW;
2194 : :
2195 : 0 : mdl__switch_to_buffer(b );
2196 : :
2197 : 0 : return b;
2198 : : }
2199 : :
2200 : : /** Setup the input buffer state to scan a string. The next call to mdl_lex() will
2201 : : * scan from a @e copy of @a str.
2202 : : * @param yystr a NUL-terminated string to scan
2203 : : *
2204 : : * @return the newly allocated buffer state object.
2205 : : * @note If you want to scan bytes that may contain NUL values, then use
2206 : : * mdl__scan_bytes() instead.
2207 : : */
2208 : 0 : YY_BUFFER_STATE mdl__scan_string (yyconst char * yystr )
2209 : : {
2210 : :
2211 : 0 : return mdl__scan_bytes(yystr,strlen(yystr) );
2212 : : }
2213 : :
2214 : : /** Setup the input buffer state to scan the given bytes. The next call to mdl_lex() will
2215 : : * scan from a @e copy of @a bytes.
2216 : : * @param yybytes the byte buffer to scan
2217 : : * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2218 : : *
2219 : : * @return the newly allocated buffer state object.
2220 : : */
2221 : 0 : YY_BUFFER_STATE mdl__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
2222 : : {
2223 : : YY_BUFFER_STATE b;
2224 : : char *buf;
2225 : : yy_size_t n;
2226 : : int i;
2227 : :
2228 : : /* Get memory for full buffer, including space for trailing EOB's. */
2229 : 0 : n = _yybytes_len + 2;
2230 : 0 : buf = (char *) mdl_alloc(n );
2231 [ # # ]: 0 : if ( ! buf )
2232 : 0 : YY_FATAL_ERROR( "out of dynamic memory in mdl__scan_bytes()" );
2233 : :
2234 [ # # ]: 0 : for ( i = 0; i < _yybytes_len; ++i )
2235 : 0 : buf[i] = yybytes[i];
2236 : :
2237 : 0 : buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2238 : :
2239 : 0 : b = mdl__scan_buffer(buf,n );
2240 [ # # ]: 0 : if ( ! b )
2241 : 0 : YY_FATAL_ERROR( "bad buffer in mdl__scan_bytes()" );
2242 : :
2243 : : /* It's okay to grow etc. this buffer, and we should throw it
2244 : : * away when we're done.
2245 : : */
2246 : 0 : b->yy_is_our_buffer = 1;
2247 : :
2248 : 0 : return b;
2249 : : }
2250 : :
2251 : : #ifndef YY_EXIT_FAILURE
2252 : : #define YY_EXIT_FAILURE 2
2253 : : #endif
2254 : :
2255 : 0 : static void yy_fatal_error (yyconst char* msg )
2256 : : {
2257 : 0 : (void) fprintf( stderr, "%s\n", msg );
2258 : 0 : exit( YY_EXIT_FAILURE );
2259 : : }
2260 : :
2261 : : /* Redefine yyless() so it works in section 3 code. */
2262 : :
2263 : : #undef yyless
2264 : : #define yyless(n) \
2265 : : do \
2266 : : { \
2267 : : /* Undo effects of setting up mdl_text. */ \
2268 : : int yyless_macro_arg = (n); \
2269 : : YY_LESS_LINENO(yyless_macro_arg);\
2270 : : mdl_text[mdl_leng] = (yy_hold_char); \
2271 : : (yy_c_buf_p) = mdl_text + yyless_macro_arg; \
2272 : : (yy_hold_char) = *(yy_c_buf_p); \
2273 : : *(yy_c_buf_p) = '\0'; \
2274 : : mdl_leng = yyless_macro_arg; \
2275 : : } \
2276 : : while ( 0 )
2277 : :
2278 : : /* Accessor methods (get/set functions) to struct members. */
2279 : :
2280 : : /** Get the current line number.
2281 : : *
2282 : : */
2283 : 0 : int mdl_get_lineno (void)
2284 : : {
2285 : :
2286 : 0 : return mdl_lineno;
2287 : : }
2288 : :
2289 : : /** Get the input stream.
2290 : : *
2291 : : */
2292 : 0 : FILE *mdl_get_in (void)
2293 : : {
2294 : 0 : return mdl_in;
2295 : : }
2296 : :
2297 : : /** Get the output stream.
2298 : : *
2299 : : */
2300 : 0 : FILE *mdl_get_out (void)
2301 : : {
2302 : 0 : return mdl_out;
2303 : : }
2304 : :
2305 : : /** Get the length of the current token.
2306 : : *
2307 : : */
2308 : 0 : yy_size_t mdl_get_leng (void)
2309 : : {
2310 : 0 : return mdl_leng;
2311 : : }
2312 : :
2313 : : /** Get the current token.
2314 : : *
2315 : : */
2316 : :
2317 : 0 : char *mdl_get_text (void)
2318 : : {
2319 : 0 : return mdl_text;
2320 : : }
2321 : :
2322 : : /** Set the current line number.
2323 : : * @param line_number
2324 : : *
2325 : : */
2326 : 0 : void mdl_set_lineno (int line_number )
2327 : : {
2328 : :
2329 : 0 : mdl_lineno = line_number;
2330 : 0 : }
2331 : :
2332 : : /** Set the input stream. This does not discard the current
2333 : : * input buffer.
2334 : : * @param in_str A readable stream.
2335 : : *
2336 : : * @see mdl__switch_to_buffer
2337 : : */
2338 : 0 : void mdl_set_in (FILE * in_str )
2339 : : {
2340 : 0 : mdl_in = in_str ;
2341 : 0 : }
2342 : :
2343 : 0 : void mdl_set_out (FILE * out_str )
2344 : : {
2345 : 0 : mdl_out = out_str ;
2346 : 0 : }
2347 : :
2348 : 0 : int mdl_get_debug (void)
2349 : : {
2350 : 0 : return mdl__flex_debug;
2351 : : }
2352 : :
2353 : 0 : void mdl_set_debug (int bdebug )
2354 : : {
2355 : 0 : mdl__flex_debug = bdebug ;
2356 : 0 : }
2357 : :
2358 : 0 : static int yy_init_globals (void)
2359 : : {
2360 : : /* Initialization is the same as for the non-reentrant scanner.
2361 : : * This function is called from mdl_lex_destroy(), so don't allocate here.
2362 : : */
2363 : :
2364 : : /* We do not touch mdl_lineno unless the option is enabled. */
2365 : 0 : mdl_lineno = 1;
2366 : :
2367 : 0 : (yy_buffer_stack) = 0;
2368 : 0 : (yy_buffer_stack_top) = 0;
2369 : 0 : (yy_buffer_stack_max) = 0;
2370 : 0 : (yy_c_buf_p) = (char *) 0;
2371 : 0 : (yy_init) = 0;
2372 : 0 : (yy_start) = 0;
2373 : :
2374 : : /* Defined in main.c */
2375 : : #ifdef YY_STDINIT
2376 : : mdl_in = stdin;
2377 : : mdl_out = stdout;
2378 : : #else
2379 : 0 : mdl_in = (FILE *) 0;
2380 : 0 : mdl_out = (FILE *) 0;
2381 : : #endif
2382 : :
2383 : : /* For future reference: Set errno on error, since we are called by
2384 : : * mdl_lex_init()
2385 : : */
2386 : 0 : return 0;
2387 : : }
2388 : :
2389 : : /* mdl_lex_destroy is for both reentrant and non-reentrant scanners. */
2390 : 0 : int mdl_lex_destroy (void)
2391 : : {
2392 : :
2393 : : /* Pop the buffer stack, destroying each element. */
2394 [ # # ][ # # ]: 0 : while(YY_CURRENT_BUFFER){
[ # # ]
2395 [ # # ]: 0 : mdl__delete_buffer(YY_CURRENT_BUFFER );
2396 : 0 : YY_CURRENT_BUFFER_LVALUE = NULL;
2397 : 0 : mdl_pop_buffer_state();
2398 : : }
2399 : :
2400 : : /* Destroy the stack itself. */
2401 : 0 : mdl_free((yy_buffer_stack) );
2402 : 0 : (yy_buffer_stack) = NULL;
2403 : :
2404 : : /* Reset the globals. This is important in a non-reentrant scanner so the next time
2405 : : * mdl_lex() is called, initialization will occur. */
2406 : 0 : yy_init_globals( );
2407 : :
2408 : 0 : return 0;
2409 : : }
2410 : :
2411 : : /*
2412 : : * Internal utility routines.
2413 : : */
2414 : :
2415 : : #ifndef yytext_ptr
2416 : : static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2417 : : {
2418 : : register int i;
2419 : : for ( i = 0; i < n; ++i )
2420 : : s1[i] = s2[i];
2421 : : }
2422 : : #endif
2423 : :
2424 : : #ifdef YY_NEED_STRLEN
2425 : : static int yy_flex_strlen (yyconst char * s )
2426 : : {
2427 : : register int n;
2428 : : for ( n = 0; s[n]; ++n )
2429 : : ;
2430 : :
2431 : : return n;
2432 : : }
2433 : : #endif
2434 : :
2435 : 0 : void *mdl_alloc (yy_size_t size )
2436 : : {
2437 : 0 : return (void *) malloc( size );
2438 : : }
2439 : :
2440 : 0 : void *mdl_realloc (void * ptr, yy_size_t size )
2441 : : {
2442 : : /* The cast to (char *) in the following accommodates both
2443 : : * implementations that use char* generic pointers, and those
2444 : : * that use void* generic pointers. It works with the latter
2445 : : * because both ANSI C and C++ allow castless assignment from
2446 : : * any pointer type to void*, and deal with argument conversions
2447 : : * as though doing an assignment.
2448 : : */
2449 : 0 : return (void *) realloc( (char *) ptr, size );
2450 : : }
2451 : :
2452 : 0 : void mdl_free (void * ptr )
2453 : : {
2454 : 0 : free( (char *) ptr ); /* see mdl_realloc() for (char *) cast */
2455 : 0 : }
2456 : :
2457 : : #define YYTABLES_NAME "yytables"
2458 : :
2459 : : #line 260 "scan_mdl.l"
2460 : :
2461 : :
2462 : :
|