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