1 
2 #line 3 "lex.InstrScript_.c"
3 
4 #define  YY_INT_ALIGNED short int
5 
6 /* A lexical scanner generated by flex */
7 
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 6
11 #define YY_FLEX_SUBMINOR_VERSION 4
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15 
16 #ifdef yy_create_buffer
17 #define InstrScript__create_buffer_ALREADY_DEFINED
18 #else
19 #define yy_create_buffer InstrScript__create_buffer
20 #endif
21 
22 #ifdef yy_delete_buffer
23 #define InstrScript__delete_buffer_ALREADY_DEFINED
24 #else
25 #define yy_delete_buffer InstrScript__delete_buffer
26 #endif
27 
28 #ifdef yy_scan_buffer
29 #define InstrScript__scan_buffer_ALREADY_DEFINED
30 #else
31 #define yy_scan_buffer InstrScript__scan_buffer
32 #endif
33 
34 #ifdef yy_scan_string
35 #define InstrScript__scan_string_ALREADY_DEFINED
36 #else
37 #define yy_scan_string InstrScript__scan_string
38 #endif
39 
40 #ifdef yy_scan_bytes
41 #define InstrScript__scan_bytes_ALREADY_DEFINED
42 #else
43 #define yy_scan_bytes InstrScript__scan_bytes
44 #endif
45 
46 #ifdef yy_init_buffer
47 #define InstrScript__init_buffer_ALREADY_DEFINED
48 #else
49 #define yy_init_buffer InstrScript__init_buffer
50 #endif
51 
52 #ifdef yy_flush_buffer
53 #define InstrScript__flush_buffer_ALREADY_DEFINED
54 #else
55 #define yy_flush_buffer InstrScript__flush_buffer
56 #endif
57 
58 #ifdef yy_load_buffer_state
59 #define InstrScript__load_buffer_state_ALREADY_DEFINED
60 #else
61 #define yy_load_buffer_state InstrScript__load_buffer_state
62 #endif
63 
64 #ifdef yy_switch_to_buffer
65 #define InstrScript__switch_to_buffer_ALREADY_DEFINED
66 #else
67 #define yy_switch_to_buffer InstrScript__switch_to_buffer
68 #endif
69 
70 #ifdef yypush_buffer_state
71 #define InstrScript_push_buffer_state_ALREADY_DEFINED
72 #else
73 #define yypush_buffer_state InstrScript_push_buffer_state
74 #endif
75 
76 #ifdef yypop_buffer_state
77 #define InstrScript_pop_buffer_state_ALREADY_DEFINED
78 #else
79 #define yypop_buffer_state InstrScript_pop_buffer_state
80 #endif
81 
82 #ifdef yyensure_buffer_stack
83 #define InstrScript_ensure_buffer_stack_ALREADY_DEFINED
84 #else
85 #define yyensure_buffer_stack InstrScript_ensure_buffer_stack
86 #endif
87 
88 #ifdef yylex
89 #define InstrScript_lex_ALREADY_DEFINED
90 #else
91 #define yylex InstrScript_lex
92 #endif
93 
94 #ifdef yyrestart
95 #define InstrScript_restart_ALREADY_DEFINED
96 #else
97 #define yyrestart InstrScript_restart
98 #endif
99 
100 #ifdef yylex_init
101 #define InstrScript_lex_init_ALREADY_DEFINED
102 #else
103 #define yylex_init InstrScript_lex_init
104 #endif
105 
106 #ifdef yylex_init_extra
107 #define InstrScript_lex_init_extra_ALREADY_DEFINED
108 #else
109 #define yylex_init_extra InstrScript_lex_init_extra
110 #endif
111 
112 #ifdef yylex_destroy
113 #define InstrScript_lex_destroy_ALREADY_DEFINED
114 #else
115 #define yylex_destroy InstrScript_lex_destroy
116 #endif
117 
118 #ifdef yyget_debug
119 #define InstrScript_get_debug_ALREADY_DEFINED
120 #else
121 #define yyget_debug InstrScript_get_debug
122 #endif
123 
124 #ifdef yyset_debug
125 #define InstrScript_set_debug_ALREADY_DEFINED
126 #else
127 #define yyset_debug InstrScript_set_debug
128 #endif
129 
130 #ifdef yyget_extra
131 #define InstrScript_get_extra_ALREADY_DEFINED
132 #else
133 #define yyget_extra InstrScript_get_extra
134 #endif
135 
136 #ifdef yyset_extra
137 #define InstrScript_set_extra_ALREADY_DEFINED
138 #else
139 #define yyset_extra InstrScript_set_extra
140 #endif
141 
142 #ifdef yyget_in
143 #define InstrScript_get_in_ALREADY_DEFINED
144 #else
145 #define yyget_in InstrScript_get_in
146 #endif
147 
148 #ifdef yyset_in
149 #define InstrScript_set_in_ALREADY_DEFINED
150 #else
151 #define yyset_in InstrScript_set_in
152 #endif
153 
154 #ifdef yyget_out
155 #define InstrScript_get_out_ALREADY_DEFINED
156 #else
157 #define yyget_out InstrScript_get_out
158 #endif
159 
160 #ifdef yyset_out
161 #define InstrScript_set_out_ALREADY_DEFINED
162 #else
163 #define yyset_out InstrScript_set_out
164 #endif
165 
166 #ifdef yyget_leng
167 #define InstrScript_get_leng_ALREADY_DEFINED
168 #else
169 #define yyget_leng InstrScript_get_leng
170 #endif
171 
172 #ifdef yyget_text
173 #define InstrScript_get_text_ALREADY_DEFINED
174 #else
175 #define yyget_text InstrScript_get_text
176 #endif
177 
178 #ifdef yyget_lineno
179 #define InstrScript_get_lineno_ALREADY_DEFINED
180 #else
181 #define yyget_lineno InstrScript_get_lineno
182 #endif
183 
184 #ifdef yyset_lineno
185 #define InstrScript_set_lineno_ALREADY_DEFINED
186 #else
187 #define yyset_lineno InstrScript_set_lineno
188 #endif
189 
190 #ifdef yyget_column
191 #define InstrScript_get_column_ALREADY_DEFINED
192 #else
193 #define yyget_column InstrScript_get_column
194 #endif
195 
196 #ifdef yyset_column
197 #define InstrScript_set_column_ALREADY_DEFINED
198 #else
199 #define yyset_column InstrScript_set_column
200 #endif
201 
202 #ifdef yywrap
203 #define InstrScript_wrap_ALREADY_DEFINED
204 #else
205 #define yywrap InstrScript_wrap
206 #endif
207 
208 #ifdef yyget_lval
209 #define InstrScript_get_lval_ALREADY_DEFINED
210 #else
211 #define yyget_lval InstrScript_get_lval
212 #endif
213 
214 #ifdef yyset_lval
215 #define InstrScript_set_lval_ALREADY_DEFINED
216 #else
217 #define yyset_lval InstrScript_set_lval
218 #endif
219 
220 #ifdef yyget_lloc
221 #define InstrScript_get_lloc_ALREADY_DEFINED
222 #else
223 #define yyget_lloc InstrScript_get_lloc
224 #endif
225 
226 #ifdef yyset_lloc
227 #define InstrScript_set_lloc_ALREADY_DEFINED
228 #else
229 #define yyset_lloc InstrScript_set_lloc
230 #endif
231 
232 #ifdef yyalloc
233 #define InstrScript_alloc_ALREADY_DEFINED
234 #else
235 #define yyalloc InstrScript_alloc
236 #endif
237 
238 #ifdef yyrealloc
239 #define InstrScript_realloc_ALREADY_DEFINED
240 #else
241 #define yyrealloc InstrScript_realloc
242 #endif
243 
244 #ifdef yyfree
245 #define InstrScript_free_ALREADY_DEFINED
246 #else
247 #define yyfree InstrScript_free
248 #endif
249 
250 /* First, we deal with  platform-specific or compiler-specific issues. */
251 
252 /* begin standard C headers. */
253 #include <stdio.h>
254 #include <string.h>
255 #include <errno.h>
256 #include <stdlib.h>
257 
258 /* end standard C headers. */
259 
260 /* flex integer type definitions */
261 
262 #ifndef FLEXINT_H
263 #define FLEXINT_H
264 
265 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
266 
267 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
268 
269 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
270  * if you want the limit (max/min) macros for int types.
271  */
272 #ifndef __STDC_LIMIT_MACROS
273 #define __STDC_LIMIT_MACROS 1
274 #endif
275 
276 #include <inttypes.h>
277 typedef int8_t flex_int8_t;
278 typedef uint8_t flex_uint8_t;
279 typedef int16_t flex_int16_t;
280 typedef uint16_t flex_uint16_t;
281 typedef int32_t flex_int32_t;
282 typedef uint32_t flex_uint32_t;
283 #else
284 typedef signed char flex_int8_t;
285 typedef short int flex_int16_t;
286 typedef int flex_int32_t;
287 typedef unsigned char flex_uint8_t;
288 typedef unsigned short int flex_uint16_t;
289 typedef unsigned int flex_uint32_t;
290 
291 /* Limits of integral types. */
292 #ifndef INT8_MIN
293 #define INT8_MIN               (-128)
294 #endif
295 #ifndef INT16_MIN
296 #define INT16_MIN              (-32767-1)
297 #endif
298 #ifndef INT32_MIN
299 #define INT32_MIN              (-2147483647-1)
300 #endif
301 #ifndef INT8_MAX
302 #define INT8_MAX               (127)
303 #endif
304 #ifndef INT16_MAX
305 #define INT16_MAX              (32767)
306 #endif
307 #ifndef INT32_MAX
308 #define INT32_MAX              (2147483647)
309 #endif
310 #ifndef UINT8_MAX
311 #define UINT8_MAX              (255U)
312 #endif
313 #ifndef UINT16_MAX
314 #define UINT16_MAX             (65535U)
315 #endif
316 #ifndef UINT32_MAX
317 #define UINT32_MAX             (4294967295U)
318 #endif
319 
320 #ifndef SIZE_MAX
321 #define SIZE_MAX               (~(size_t)0)
322 #endif
323 
324 #endif /* ! C99 */
325 
326 #endif /* ! FLEXINT_H */
327 
328 /* begin standard C++ headers. */
329 
330 /* TODO: this is always defined, so inline it */
331 #define yyconst const
332 
333 #if defined(__GNUC__) && __GNUC__ >= 3
334 #define yynoreturn __attribute__((__noreturn__))
335 #else
336 #define yynoreturn
337 #endif
338 
339 /* Returned upon end-of-file. */
340 #define YY_NULL 0
341 
342 /* Promotes a possibly negative, possibly signed char to an
343  *   integer in range [0..255] for use as an array index.
344  */
345 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
346 
347 /* An opaque pointer. */
348 #ifndef YY_TYPEDEF_YY_SCANNER_T
349 #define YY_TYPEDEF_YY_SCANNER_T
350 typedef void* yyscan_t;
351 #endif
352 
353 /* For convenience, these vars (plus the bison vars far below)
354    are macros in the reentrant scanner. */
355 #define yyin yyg->yyin_r
356 #define yyout yyg->yyout_r
357 #define yyextra yyg->yyextra_r
358 #define yyleng yyg->yyleng_r
359 #define yytext yyg->yytext_r
360 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
361 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
362 #define yy_flex_debug yyg->yy_flex_debug_r
363 
364 /* Enter a start condition.  This macro really ought to take a parameter,
365  * but we do it the disgusting crufty way forced on us by the ()-less
366  * definition of BEGIN.
367  */
368 #define BEGIN yyg->yy_start = 1 + 2 *
369 /* Translate the current start state into a value that can be later handed
370  * to BEGIN to return to the state.  The YYSTATE alias is for lex
371  * compatibility.
372  */
373 #define YY_START ((yyg->yy_start - 1) / 2)
374 #define YYSTATE YY_START
375 /* Action number for EOF rule of a given start state. */
376 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
377 /* Special action meaning "start processing a new file". */
378 #define YY_NEW_FILE yyrestart( yyin , yyscanner )
379 #define YY_END_OF_BUFFER_CHAR 0
380 
381 /* Size of default input buffer. */
382 #ifndef YY_BUF_SIZE
383 #ifdef __ia64__
384 /* On IA-64, the buffer size is 16k, not 8k.
385  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
386  * Ditto for the __ia64__ case accordingly.
387  */
388 #define YY_BUF_SIZE 32768
389 #else
390 #define YY_BUF_SIZE 16384
391 #endif /* __ia64__ */
392 #endif
393 
394 /* The state buf must be large enough to hold one state per character in the main buffer.
395  */
396 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
397 
398 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
399 #define YY_TYPEDEF_YY_BUFFER_STATE
400 typedef struct yy_buffer_state *YY_BUFFER_STATE;
401 #endif
402 
403 #ifndef YY_TYPEDEF_YY_SIZE_T
404 #define YY_TYPEDEF_YY_SIZE_T
405 typedef size_t yy_size_t;
406 #endif
407 
408 #define EOB_ACT_CONTINUE_SCAN 0
409 #define EOB_ACT_END_OF_FILE 1
410 #define EOB_ACT_LAST_MATCH 2
411 
412     #define YY_LESS_LINENO(n)
413     #define YY_LINENO_REWIND_TO(ptr)
414 
415 /* Return all but the first "n" matched characters back to the input stream. */
416 #define yyless(n) \
417 	do \
418 		{ \
419 		/* Undo effects of setting up yytext. */ \
420         int yyless_macro_arg = (n); \
421         YY_LESS_LINENO(yyless_macro_arg);\
422 		*yy_cp = yyg->yy_hold_char; \
423 		YY_RESTORE_YY_MORE_OFFSET \
424 		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
425 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
426 		} \
427 	while ( 0 )
428 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
429 
430 #ifndef YY_STRUCT_YY_BUFFER_STATE
431 #define YY_STRUCT_YY_BUFFER_STATE
432 struct yy_buffer_state
433 	{
434 	FILE *yy_input_file;
435 
436 	char *yy_ch_buf;		/* input buffer */
437 	char *yy_buf_pos;		/* current position in input buffer */
438 
439 	/* Size of input buffer in bytes, not including room for EOB
440 	 * characters.
441 	 */
442 	int yy_buf_size;
443 
444 	/* Number of characters read into yy_ch_buf, not including EOB
445 	 * characters.
446 	 */
447 	int yy_n_chars;
448 
449 	/* Whether we "own" the buffer - i.e., we know we created it,
450 	 * and can realloc() it to grow it, and should free() it to
451 	 * delete it.
452 	 */
453 	int yy_is_our_buffer;
454 
455 	/* Whether this is an "interactive" input source; if so, and
456 	 * if we're using stdio for input, then we want to use getc()
457 	 * instead of fread(), to make sure we stop fetching input after
458 	 * each newline.
459 	 */
460 	int yy_is_interactive;
461 
462 	/* Whether we're considered to be at the beginning of a line.
463 	 * If so, '^' rules will be active on the next match, otherwise
464 	 * not.
465 	 */
466 	int yy_at_bol;
467 
468     int yy_bs_lineno; /**< The line count. */
469     int yy_bs_column; /**< The column count. */
470 
471 	/* Whether to try to fill the input buffer when we reach the
472 	 * end of it.
473 	 */
474 	int yy_fill_buffer;
475 
476 	int yy_buffer_status;
477 
478 #define YY_BUFFER_NEW 0
479 #define YY_BUFFER_NORMAL 1
480 	/* When an EOF's been seen but there's still some text to process
481 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
482 	 * shouldn't try reading from the input source any more.  We might
483 	 * still have a bunch of tokens to match, though, because of
484 	 * possible backing-up.
485 	 *
486 	 * When we actually see the EOF, we change the status to "new"
487 	 * (via yyrestart()), so that the user can continue scanning by
488 	 * just pointing yyin at a new input file.
489 	 */
490 #define YY_BUFFER_EOF_PENDING 2
491 
492 	};
493 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
494 
495 /* We provide macros for accessing buffer states in case in the
496  * future we want to put the buffer states in a more general
497  * "scanner state".
498  *
499  * Returns the top of the stack, or NULL.
500  */
501 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
502                           ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
503                           : NULL)
504 /* Same as previous macro, but useful when we know that the buffer stack is not
505  * NULL or when we need an lvalue. For internal use only.
506  */
507 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
508 
509 void yyrestart ( FILE *input_file , yyscan_t yyscanner );
510 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
511 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
512 void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
513 void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
514 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
515 void yypop_buffer_state ( yyscan_t yyscanner );
516 
517 static void yyensure_buffer_stack ( yyscan_t yyscanner );
518 static void yy_load_buffer_state ( yyscan_t yyscanner );
519 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
520 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
521 
522 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
523 YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
524 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
525 
526 void *yyalloc ( yy_size_t , yyscan_t yyscanner );
527 void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
528 void yyfree ( void * , yyscan_t yyscanner );
529 
530 #define yy_new_buffer yy_create_buffer
531 #define yy_set_interactive(is_interactive) \
532 	{ \
533 	if ( ! YY_CURRENT_BUFFER ){ \
534         yyensure_buffer_stack (yyscanner); \
535 		YY_CURRENT_BUFFER_LVALUE =    \
536             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
537 	} \
538 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
539 	}
540 #define yy_set_bol(at_bol) \
541 	{ \
542 	if ( ! YY_CURRENT_BUFFER ){\
543         yyensure_buffer_stack (yyscanner); \
544 		YY_CURRENT_BUFFER_LVALUE =    \
545             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
546 	} \
547 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
548 	}
549 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
550 
551 /* Begin user sect3 */
552 
553 #define InstrScript_wrap(yyscanner) (/*CONSTCOND*/1)
554 #define YY_SKIP_YYWRAP
555 typedef flex_uint8_t YY_CHAR;
556 
557 typedef int yy_state_type;
558 
559 #define yytext_ptr yytext_r
560 
561 static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
562 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  , yyscan_t yyscanner);
563 static int yy_get_next_buffer ( yyscan_t yyscanner );
564 static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
565 
566 /* Done after the current pattern has been matched and before the
567  * corresponding action - sets up yytext.
568  */
569 #define YY_DO_BEFORE_ACTION \
570 	yyg->yytext_ptr = yy_bp; \
571 	yyleng = (int) (yy_cp - yy_bp); \
572 	yyg->yy_hold_char = *yy_cp; \
573 	*yy_cp = '\0'; \
574 	yyg->yy_c_buf_p = yy_cp;
575 #define YY_NUM_RULES 61
576 #define YY_END_OF_BUFFER 62
577 /* This struct is not used in this scanner,
578    but its presence is necessary. */
579 struct yy_trans_info
580 	{
581 	flex_int32_t yy_verify;
582 	flex_int32_t yy_nxt;
583 	};
584 static const flex_int16_t yy_accept[556] =
585     {   0,
586         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
587         0,    0,   21,   21,    0,    0,    0,    0,   62,   60,
588        59,   57,   53,   60,   60,   60,    2,   60,   53,   53,
589        55,   55,   55,   55,   55,   55,   55,   55,   55,   55,
590        55,   55,   55,   55,   55,   55,   55,   55,   60,   55,
591        61,   61,    8,    7,    7,    7,    7,   61,   11,   10,
592        10,   10,   10,   16,   16,   16,   16,   17,   17,   17,
593        17,   22,   21,   21,   22,   22,   22,   22,   61,   18,
594        61,   61,   61,   61,   19,   59,   57,    0,    1,   54,
595         0,    0,    0,    0,    2,    4,    0,    4,    4,   56,
596 
597        44,   45,   55,   55,   55,   55,   55,   55,   55,   55,
598        55,   55,   55,   29,   55,   55,   55,   55,   23,   31,
599        55,   55,   55,   55,   55,   55,   43,   55,    0,   58,
600        55,    0,    8,    7,    7,    7,    7,    0,   11,   10,
601        10,   10,   10,   16,   16,   16,   16,   17,   17,   17,
602        17,   22,   21,   21,   22,   22,   22,   22,    0,   18,
603         0,    0,    0,    0,   19,   54,    0,    0,    0,    3,
604         4,    4,   55,   55,   55,   34,   55,   55,   55,   55,
605        55,   24,   55,   55,   49,   36,   55,   55,   55,   55,
606        39,   55,   55,   55,   55,    7,    7,    7,   10,   10,
607 
608        10,   16,   16,   16,   17,   17,   17,   22,   22,   22,
609        22,    0,    0,    0,    0,    0,   30,    5,    0,    5,
610         5,   55,   55,   55,   51,   41,   55,   55,   55,   37,
611        55,   26,   25,   40,   55,   55,   55,   55,   55,   55,
612        55,    7,    7,    7,   10,   10,   10,   16,   16,   16,
613        17,   17,   17,   22,   22,   22,   22,    0,    0,    0,
614        33,   35,    5,    5,   55,   55,   55,   46,   55,   55,
615        55,   48,   55,   55,   55,   55,   28,   55,    7,    7,
616         7,   10,   10,   10,   16,   16,   16,   17,   17,   17,
617        22,   22,   22,   22,    0,    0,    0,   55,   55,   55,
618 
619        55,   55,   55,   55,   55,   42,   55,   55,    7,    7,
620         7,   10,   10,   10,   16,   16,   16,   17,   17,   17,
621        22,   22,   22,   22,    0,    0,    0,   55,   55,   55,
622        55,   27,   55,   55,   32,   55,   55,    7,    7,    7,
623        10,   10,   10,   16,   16,   16,   17,   17,   17,   22,
624        22,   22,   22,    0,    0,    0,   55,   55,   55,   55,
625        50,   55,   55,   55,    7,    7,    7,   10,   10,   10,
626        16,   16,   16,   17,   17,   17,   22,   22,   22,   22,
627         0,    0,    0,   55,   55,   55,   55,   55,   55,   55,
628         7,    7,    7,   10,   10,   10,   16,   16,   16,   17,
629 
630        17,   17,   22,   22,   22,   22,    0,    0,    0,   55,
631        55,   55,   38,   47,   55,   55,    7,    7,    7,   10,
632        10,   10,   16,   16,   16,   17,   17,   17,   22,   22,
633        22,   22,    0,    0,    0,   55,   55,   55,   55,   55,
634         7,    7,    7,   10,   10,   10,   16,   16,   16,   17,
635        17,   17,   22,   22,   22,   22,    0,    0,    0,   55,
636        55,    0,   12,   55,   52,   20,    7,    7,    7,   10,
637        10,   10,   16,   16,   16,   17,   17,   17,   20,   22,
638        22,   22,   12,   22,    0,    0,    0,   55,   55,   55,
639         7,    7,    7,   10,   10,   10,   16,   16,   16,   17,
640 
641        17,   17,   22,   22,   22,   22,    0,    0,    0,   55,
642         0,    6,   55,    7,    7,   10,   10,   16,   16,   17,
643        17,   22,   22,    6,   13,   22,   22,    0,    0,   55,
644        55,    7,    7,   10,   10,   16,   16,   17,   17,   22,
645        22,    0,    0,    0,    9,    0,   14,   22,    9,   22,
646        14,   22,   15,   22,    0
647     } ;
648 
649 static const YY_CHAR yy_ec[256] =
650     {   0,
651         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
652         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
653         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
654         1,    2,    5,    6,    5,    7,    8,    5,    1,    9,
655        10,    5,    5,    5,    5,   11,    5,   12,   12,   12,
656        12,   12,   12,   12,   12,   12,   12,   13,    1,   14,
657        15,   16,   17,   18,   19,   20,   21,   22,   23,   24,
658        19,   25,   26,   19,   19,   19,   19,   27,   28,   19,
659        19,   29,   30,   31,   32,   19,   19,   19,   19,   19,
660         5,    1,    5,    1,   33,    1,   34,   19,   35,   36,
661 
662        37,   38,   19,   39,   40,   19,   41,   42,   43,   44,
663        45,   46,   19,   47,   48,   49,   50,   19,   51,   19,
664        52,   53,   54,    1,   55,   56,    1,    1,    1,    1,
665         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
666         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
667         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
668         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
669         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
670         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
671         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
672 
673         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
674         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
675         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
676         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
677         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
678         1,    1,    1,    1,    1
679     } ;
680 
681 static const YY_CHAR yy_meta[57] =
682     {   0,
683         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
684         1,    3,    1,    1,    1,    1,    1,    1,    4,    4,
685         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
686         4,    4,    3,    4,    4,    4,    4,    4,    4,    4,
687         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
688         4,    4,    4,    1,    1,    1
689     } ;
690 
691 static const flex_int16_t yy_base[572] =
692     {   0,
693         0,    0, 1032, 1031,   56,    0,  112,    0,  168,    0,
694       224,    0,  279,  283,  287,  291,  297,  308, 1053, 1056,
695       286, 1049, 1056, 1045,    0,  250,  330, 1035, 1034, 1033,
696         0, 1024, 1023, 1015, 1000,  258, 1006,  254,  992,  284,
697       996,  285,  287,  280,  254,  287,  995, 1000,  983, 1010,
698      1056,  333, 1056,    0, 1013, 1012, 1004,  334, 1056,    0,
699      1010, 1009, 1001,    0, 1007, 1006,  998,    0, 1004, 1003,
700       995,    0,  343,  349,  997, 1000,  999,  991,  346, 1056,
701       997,  996,  988,  347, 1056,  356, 1014, 1010, 1056,    0,
702       971,  969,  966, 1000,    0, 1056,  958,  361,  976, 1056,
703 
704      1056, 1056,    0,  979,  977,  984,  970,  319,  961,  969,
705       955,  966,  957,    0,  960,  963,  949,  951,    0,    0,
706       947,  953,  952,  949,  950,  947,    0,  950,  934, 1056,
707       966,  352, 1056,    0,  957,  955,  962,  362, 1056,    0,
708       954,  952,  959,    0,  951,  949,  956,    0,  948,  946,
709       953,    0,  372,  380,  953,  944,  942,  949,  375, 1056,
710       941,  939,  946,  377, 1056,    0,  932,  918,  955,  400,
711       343,  369,  942,  931,  930,    0,  920,  924,  256,  918,
712       922,    0,  923,  908,    0,  919,  911,  919,  901,  915,
713         0,  914,  915,  907,  915,  924,  913,  912,  921,  910,
714 
715       909,  918,  907,  906,  915,  904,  903,  902,  911,  900,
716       899,  908,  897,  896,  917,  916, 1056, 1056,  873,  431,
717       891,  893,  902,  901,    0,    0,  872,  873,  885,    0,
718       869,    0,    0,    0,  878,  870,  881,  879,  874,  875,
719       879,  879,  888,  887,  876,  885,  884,  873,  882,  881,
720       870,  879,  878,  866,  866,  875,  874,  863,  872,  871,
721      1056, 1056,  368,  381,  858,  862,  861,    0,  843,  840,
722       846,    0,  846,  836,  834,  835,    0,  851,  847,  851,
723       850,  844,  848,  847,  841,  845,  844,  838,  842,  841,
724       838,  834,  838,  835,  826,  827,  823,  824,  787,  791,
725 
726       770,  774,  765,  764,  771,    0,  762,  783,  784,  777,
727       781,  781,  774,  778,  778,  771,  775,  775,  768,  772,
728       770,  771,  764,  768,  768,  761,  765,  758,  763,  761,
729       741,    0,  738,  737,    0,  736,  740,  736,  736,  734,
730       728,  733,  731,  725,  730,  728,  722,  727,  725,  714,
731       718,  723,  721,  715,  720,  718,  713,  713,  705,  700,
732         0,  696,  695,  713,  706,  706,  698,  703,  703,  695,
733       700,  700,  692,  697,  691,  675,  681,  674,  674,  666,
734       671,  671,  663,  673,  663,  667,  645,  656,  637,  661,
735       666,  656,  660,  663,  653,  657,  659,  649,  653,  656,
736 
737       646,  650,  647,  652,  642,  646,  649,  639,  643,  642,
738       626,  622,    0,    0,  608,  622,  617,  616,  617,  614,
739       613,  614,  611,  610,  611,  608,  607,  608,  609,  604,
740       603,  604,  601,  600,  601,  593,  595,  390,  586,  598,
741       589,  591,  405,  587,  589,  419,  585,  587,  422,  583,
742       585,  424,  589,  574,  568,  425,  559,  561,  428,  562,
743       560,  396, 1056,  559,    0,    0,  559,  557,  556,  556,
744       554,  553,  553,  551,  550,  550,  548,  547,    0,  547,
745       545,  438,  481,  544,  544,  542,  541,  535,  440,  534,
746       533,  444,  506,  504,  460,  503,  502,  462,  501,  450,
747 
748       466,  448,  437,  471,  537,  435,  432,  475,  431,  427,
749       498, 1056,  414,  417,  401,  395,  388,  391,  382,  383,
750       377,  368,  499,    0,    0,  593,  359,  343,  328,  500,
751       501,  502,  503,  504,  513,  514,  515,  516,  517,  518,
752       519,  531,  547,  555, 1056,  556, 1056,  557,    0,  558,
753       649,  705,    0,  761, 1056,  817,  821,  825,  329,  827,
754       831,  833,  835,  837,  839,  843,  845,  849,  853,  857,
755       861
756     } ;
757 
758 static const flex_int16_t yy_def[572] =
759     {   0,
760       555,    1,    1,    1,  555,    5,  555,    7,  555,    9,
761       555,   11,  556,  556,  557,  557,  557,  557,  555,  555,
762       555,  555,  555,  558,  559,  555,  555,  555,  555,  555,
763       560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
764       560,  560,  560,  560,  560,  560,  560,  560,  561,  560,
765       555,  555,  555,  562,  562,  562,  562,  555,  555,  563,
766       563,  563,  563,  564,  564,  564,  564,  565,  565,  565,
767       565,  566,  566,  555,  566,  566,  566,  566,  555,  555,
768       555,  555,  555,  555,  555,  555,  555,  558,  555,  567,
769       555,  555,  555,  555,   27,  555,  555,  555,   98,  555,
770 
771       555,  555,  560,  560,  560,  560,  560,  560,  560,  560,
772       560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
773       560,  560,  560,  560,  560,  560,  560,  560,  561,  555,
774       560,  555,  555,  562,  562,  562,  562,  555,  555,  563,
775       563,  563,  563,  564,  564,  564,  564,  565,  565,  565,
776       565,  566,  566,  555,  566,  566,  566,  566,  555,  555,
777       555,  555,  555,  555,  555,  567,  555,  555,  555,  555,
778       555,  555,  560,  560,  560,  560,  560,  560,  560,  560,
779       560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
780       560,  560,  560,  560,  560,  562,  562,  562,  563,  563,
781 
782       563,  564,  564,  564,  565,  565,  565,  566,  566,  566,
783       566,  555,  555,  555,  555,  555,  555,  555,  555,  555,
784       220,  560,  560,  560,  560,  560,  560,  560,  560,  560,
785       560,  560,  560,  560,  560,  560,  560,  560,  560,  560,
786       560,  562,  562,  562,  563,  563,  563,  564,  564,  564,
787       565,  565,  565,  566,  566,  566,  566,  555,  555,  555,
788       555,  555,  555,  555,  560,  560,  560,  560,  560,  560,
789       560,  560,  560,  560,  560,  560,  560,  560,  562,  562,
790       562,  563,  563,  563,  564,  564,  564,  565,  565,  565,
791       566,  566,  566,  566,  555,  555,  555,  560,  560,  560,
792 
793       560,  560,  560,  560,  560,  560,  560,  560,  562,  562,
794       562,  563,  563,  563,  564,  564,  564,  565,  565,  565,
795       566,  566,  566,  566,  555,  555,  555,  560,  560,  560,
796       560,  560,  560,  560,  560,  560,  560,  562,  562,  562,
797       563,  563,  563,  564,  564,  564,  565,  565,  565,  566,
798       566,  566,  566,  555,  555,  555,  560,  560,  560,  560,
799       560,  560,  560,  560,  562,  562,  562,  563,  563,  563,
800       564,  564,  564,  565,  565,  565,  566,  566,  566,  566,
801       555,  555,  555,  560,  560,  560,  560,  560,  560,  560,
802       562,  562,  562,  563,  563,  563,  564,  564,  564,  565,
803 
804       565,  565,  566,  566,  566,  566,  555,  555,  555,  560,
805       560,  560,  560,  560,  560,  560,  562,  562,  562,  563,
806       563,  563,  564,  564,  564,  565,  565,  565,  566,  566,
807       566,  566,  555,  555,  555,  560,  560,  560,  560,  560,
808       562,  562,  562,  563,  563,  563,  564,  564,  564,  565,
809       565,  565,  566,  566,  566,  566,  555,  555,  555,  560,
810       560,  555,  555,  560,  560,  560,  562,  562,  562,  563,
811       563,  563,  564,  564,  564,  565,  565,  565,  566,  566,
812       566,  566,  568,  566,  555,  555,  555,  560,  560,  560,
813       562,  562,  562,  563,  563,  563,  564,  564,  564,  565,
814 
815       565,  565,  566,  566,  569,  566,  555,  555,  555,  560,
816       555,  555,  560,  562,  562,  563,  563,  564,  564,  565,
817       565,  566,  566,  566,  566,  569,  566,  555,  555,  560,
818       560,  562,  562,  563,  563,  564,  564,  565,  565,  566,
819       566,  555,  555,  555,  555,  555,  555,  566,  566,  566,
820       570,  571,  566,  571,    0,  555,  555,  555,  555,  555,
821       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
822       555
823     } ;
824 
825 static const flex_int16_t yy_nxt[1113] =
826     {   0,
827        20,   21,   22,   21,   23,   24,   25,   25,   23,   23,
828        26,   27,   28,   29,   23,   30,   25,   25,   31,   31,
829        31,   31,   31,   31,   31,   31,   31,   31,   32,   33,
830        31,   34,   20,   35,   36,   37,   38,   39,   31,   40,
831        31,   31,   41,   42,   43,   44,   45,   46,   47,   31,
832        48,   31,   31,   49,   20,   25,   51,   52,   51,   51,
833        51,   51,   51,   51,   51,   53,   51,   51,   51,   51,
834        51,   51,   51,   51,   54,   54,   54,   54,   54,   54,
835        54,   54,   54,   54,   55,   56,   54,   57,   51,   54,
836        54,   54,   54,   54,   54,   54,   54,   54,   54,   54,
837 
838        54,   54,   54,   54,   54,   54,   54,   54,   54,   51,
839        51,   51,   51,   58,   51,   51,   51,   51,   51,   51,
840        51,   59,   51,   51,   51,   51,   51,   51,   51,   51,
841        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
842        61,   62,   60,   63,   51,   60,   60,   60,   60,   60,
843        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
844        60,   60,   60,   60,   60,   51,   51,   51,   51,   51,
845        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
846        51,   51,   51,   51,   51,   51,   64,   64,   64,   64,
847        64,   64,   64,   64,   64,   64,   65,   66,   64,   67,
848 
849        51,   64,   64,   64,   64,   64,   64,   64,   64,   64,
850        64,   64,   64,   64,   64,   64,   64,   64,   64,   64,
851        64,   51,   51,   51,   51,   51,   51,   51,   51,   51,
852        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
853        51,   51,   68,   68,   68,   68,   68,   68,   68,   68,
854        68,   68,   69,   70,   68,   71,   51,   68,   68,   68,
855        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
856        68,   68,   68,   68,   68,   68,   68,   51,   51,   51,
857        73,   74,   73,   91,   73,   74,   73,   86,   79,   86,
858       123,  108,   79,   92,   93,  111,   80,  112,   84,  124,
859 
860        80,   75,  109,  227,  228,   75,   85,   76,   77,   84,
861        78,   76,   77,  121,   78,   81,   82,   85,   83,   81,
862        82,  114,   83,  125,  122,   81,   82,  115,   83,  117,
863       119,  118,   90,  120,  132,  138,   81,   82,  126,   83,
864        94,   95,  133,  139,  153,  154,  153,  159,  164,   96,
865       154,  154,  154,  132,   97,  160,  165,   86,  543,   86,
866       177,  133,   96,  138,   98,   99,  178,   97,   98,  542,
867        98,  139,   98,  153,  154,  153,  159,   96,  164,   98,
868        96,  154,  154,  154,  160,   97,  165,  218,   96,  541,
869        96,  462,  219,   97,  540,  171,  172,  462,  463,  171,
870 
871       218,  171,  171,  171,  463,  219,  462,  539,   96,  538,
872       171,  170,  537,  463,  263,  218,   96,  536,  535,  218,
873       462,  534,  464,  462,  219,  462,  482,  463,  218,  462,
874       463,  533,  463,  483,  220,  221,  463,  469,  220,  482,
875       220,  511,  220,  532,  531,  511,  483,  218,  512,  220,
876       218,  472,  512,  530,  475,  219,  478,  484,  529,  528,
877       487,  511,  527,  511,  522,  263,  264,  511,  512,  263,
878       512,  263,  523,  263,  512,  521,  511,  520,  218,  524,
879       263,  152,  152,  512,  152,  152,  152,  152,  152,  152,
880       152,  152,  152,  152,  152,  152,  152,  152,  152,  511,
881 
882       523,  544,  546,  544,  546,  544,  512,  524,  545,  547,
883       545,  547,  545,  152,  546,  544,  546,  544,  546,  548,
884       550,  547,  545,  547,  545,  547,  549,  551,  519,  518,
885       517,  516,  544,  515,  152,  152,  152,  152,  152,  545,
886       152,  152,  152,  152,  152,  152,  525,  152,  546,  152,
887       152,  152,  152,  152,  152,  547,  544,  546,  548,  550,
888       514,  513,  510,  545,  547,  549,  551,  509,  508,  507,
889       506,  504,  503,  502,  501,  500,  499,  498,  497,  496,
890       495,  494,  493,  492,  491,  490,  489,  488,  486,  485,
891       152,  152,  152,  152,  152,  481,  152,  152,  152,  152,
892 
893       152,  152,  525,  152,  480,  152,  152,  152,  152,  152,
894       152,  479,  477,  476,  474,  473,  471,  470,  468,  467,
895       466,  465,  461,  460,  459,  458,  457,  456,  455,  454,
896       453,  452,  451,  450,  449,  448,  447,  446,  445,  444,
897       443,  442,  441,  440,  439,  438,  152,  152,  152,  152,
898       152,  437,  152,  152,  152,  152,  152,  152,  152,  152,
899       152,  152,  152,  152,  152,  152,  152,  436,  435,  434,
900       433,  432,  431,  430,  429,  428,  427,  426,  425,  424,
901       423,  152,  422,  421,  420,  419,  418,  417,  416,  415,
902       414,  413,  412,  411,  410,  409,  408,  407,  406,  405,
903 
904       404,  403,  152,  152,  152,  152,  152,  402,  152,  152,
905       152,  152,  152,  152,  553,  152,  401,  152,  152,  152,
906       152,  152,  152,  400,  399,  398,  397,  396,  395,  394,
907       393,  392,  391,  390,  389,  388,  387,  386,  385,  384,
908       383,  382,  381,  380,  379,  378,  377,  376,  375,  374,
909       373,  372,  371,  370,  369,  368,  367,  366,  152,  152,
910       152,  152,  152,  365,  152,  152,  152,  152,  152,  152,
911       553,  152,  364,  152,  152,  152,  152,  152,  152,  363,
912       362,  361,  360,  359,  358,  357,  356,  355,  354,  353,
913       352,  351,  350,  349,  348,  347,  346,  345,  344,  343,
914 
915       342,  341,  340,  339,  338,  337,  336,  335,  334,  333,
916       332,  331,  330,  329,  152,  152,  152,   72,   72,   72,
917        72,   51,   51,   51,   51,   88,   88,   88,   88,  103,
918       103,  129,  129,  129,  129,  134,  134,  140,  140,  144,
919       144,  148,  148,  152,  328,  152,  152,  166,  166,  505,
920       327,  505,  505,  526,  326,  526,  526,  552,  325,  552,
921       552,  554,  324,  554,  554,  323,  322,  321,  320,  319,
922       318,  317,  316,  315,  314,  313,  312,  311,  310,  309,
923       308,  307,  306,  305,  304,  303,  302,  301,  300,  299,
924       298,  297,  296,  295,  294,  293,  292,  291,  290,  289,
925 
926       288,  287,  286,  285,  284,  283,  282,  281,  280,  279,
927       278,  277,  276,  275,  274,  273,  272,  271,  270,  269,
928       268,  267,  266,  265,  220,  218,  262,  261,  260,  259,
929       258,  257,  256,  255,  254,  253,  252,  251,  250,  249,
930       248,  247,  246,  245,  244,  243,  242,  241,  240,  239,
931       238,  237,  236,  235,  234,  233,  232,  231,  230,  229,
932       226,  225,  224,  223,  222,  217,  216,  215,  214,  213,
933       212,  211,  210,  209,  208,  207,  206,  205,  204,  203,
934       202,  201,  200,  199,  198,  197,  196,  195,  130,  194,
935       193,  192,  191,  190,  189,  188,  187,  186,  185,  184,
936 
937       183,  182,  181,  180,  179,  176,  175,  174,  173,   98,
938        96,  170,  169,  168,  167,   89,   87,  163,  162,  161,
939       158,  157,  156,  155,  151,  150,  149,  147,  146,  145,
940       143,  142,  141,  137,  136,  135,  131,  130,  128,  127,
941       116,  113,  110,  107,  106,  105,  104,  102,  101,  100,
942        89,   87,  555,   50,   50,   19,  555,  555,  555,  555,
943       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
944       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
945       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
946       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
947 
948       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
949       555,  555
950     } ;
951 
952 static const flex_int16_t yy_chk[1113] =
953     {   0,
954         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
955         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
956         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
957         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
958         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
959         1,    1,    1,    1,    1,    1,    5,    5,    5,    5,
960         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
961         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
962         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
963         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
964 
965         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
966         5,    5,    7,    7,    7,    7,    7,    7,    7,    7,
967         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
968         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
969         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
970         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
971         7,    7,    7,    7,    7,    7,    7,    7,    9,    9,
972         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
973         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
974         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
975 
976         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
977         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
978         9,    9,    9,    9,   11,   11,   11,   11,   11,   11,
979        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
980        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
981        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
982        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
983        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
984        13,   13,   13,   26,   14,   14,   14,   21,   15,   21,
985        45,   36,   16,   26,   26,   38,   15,   38,   17,   45,
986 
987        16,   13,   36,  179,  179,   14,   17,   13,   13,   18,
988        13,   14,   14,   44,   14,   15,   15,   18,   15,   16,
989        16,   40,   16,   46,   44,   17,   17,   40,   17,   42,
990        43,   42,  559,   43,   52,   58,   18,   18,   46,   18,
991        27,   27,   52,   58,   73,   73,   73,   79,   84,   27,
992        74,   74,   74,  132,   27,   79,   84,   86,  529,   86,
993       108,  132,  171,  138,   27,   27,  108,  171,   27,  528,
994        27,  138,   27,  153,  153,  153,  159,   27,  164,   27,
995        98,  154,  154,  154,  159,   98,  164,  263,  172,  527,
996       171,  438,  263,  172,  522,   98,   98,  462,  438,   98,
997 
998       264,   98,  172,   98,  462,  264,  443,  521,   98,  520,
999        98,  170,  519,  443,  264,  263,  172,  518,  517,  170,
1000       446,  516,  438,  449,  170,  452,  456,  446,  264,  459,
1001       449,  515,  452,  456,  170,  170,  459,  443,  170,  482,
1002       170,  489,  170,  514,  513,  492,  482,  170,  489,  170,
1003       220,  446,  492,  510,  449,  220,  452,  456,  509,  507,
1004       459,  495,  506,  498,  503,  220,  220,  501,  495,  220,
1005       498,  220,  504,  220,  501,  502,  508,  500,  220,  504,
1006       220,  483,  483,  508,  483,  483,  483,  483,  483,  483,
1007       483,  483,  483,  483,  483,  483,  483,  483,  483,  511,
1008 
1009       523,  530,  531,  532,  533,  534,  511,  523,  530,  531,
1010       532,  533,  534,  483,  535,  536,  537,  538,  539,  540,
1011       541,  535,  536,  537,  538,  539,  540,  541,  499,  497,
1012       496,  494,  542,  493,  483,  483,  483,  505,  505,  542,
1013       505,  505,  505,  505,  505,  505,  505,  505,  543,  505,
1014       505,  505,  505,  505,  505,  543,  544,  546,  548,  550,
1015       491,  490,  488,  544,  546,  548,  550,  487,  486,  485,
1016       484,  481,  480,  478,  477,  476,  475,  474,  473,  472,
1017       471,  470,  469,  468,  467,  464,  461,  460,  458,  457,
1018       505,  505,  505,  526,  526,  455,  526,  526,  526,  526,
1019 
1020       526,  526,  526,  526,  454,  526,  526,  526,  526,  526,
1021       526,  453,  451,  450,  448,  447,  445,  444,  442,  441,
1022       440,  439,  437,  436,  435,  434,  433,  432,  431,  430,
1023       429,  428,  427,  426,  425,  424,  423,  422,  421,  420,
1024       419,  418,  417,  416,  415,  412,  526,  526,  526,  551,
1025       551,  411,  551,  551,  551,  551,  551,  551,  551,  551,
1026       551,  551,  551,  551,  551,  551,  551,  410,  409,  408,
1027       407,  406,  405,  404,  403,  402,  401,  400,  399,  398,
1028       397,  551,  396,  395,  394,  393,  392,  391,  390,  389,
1029       388,  387,  386,  385,  384,  383,  382,  381,  380,  379,
1030 
1031       378,  377,  551,  551,  551,  552,  552,  376,  552,  552,
1032       552,  552,  552,  552,  552,  552,  375,  552,  552,  552,
1033       552,  552,  552,  374,  373,  372,  371,  370,  369,  368,
1034       367,  366,  365,  364,  363,  362,  360,  359,  358,  357,
1035       356,  355,  354,  353,  352,  351,  350,  349,  348,  347,
1036       346,  345,  344,  343,  342,  341,  340,  339,  552,  552,
1037       552,  554,  554,  338,  554,  554,  554,  554,  554,  554,
1038       554,  554,  337,  554,  554,  554,  554,  554,  554,  336,
1039       334,  333,  331,  330,  329,  328,  327,  326,  325,  324,
1040       323,  322,  321,  320,  319,  318,  317,  316,  315,  314,
1041 
1042       313,  312,  311,  310,  309,  308,  307,  305,  304,  303,
1043       302,  301,  300,  299,  554,  554,  554,  556,  556,  556,
1044       556,  557,  557,  557,  557,  558,  558,  558,  558,  560,
1045       560,  561,  561,  561,  561,  562,  562,  563,  563,  564,
1046       564,  565,  565,  566,  298,  566,  566,  567,  567,  568,
1047       297,  568,  568,  569,  296,  569,  569,  570,  295,  570,
1048       570,  571,  294,  571,  571,  293,  292,  291,  290,  289,
1049       288,  287,  286,  285,  284,  283,  282,  281,  280,  279,
1050       278,  276,  275,  274,  273,  271,  270,  269,  267,  266,
1051       265,  260,  259,  258,  257,  256,  255,  254,  253,  252,
1052 
1053       251,  250,  249,  248,  247,  246,  245,  244,  243,  242,
1054       241,  240,  239,  238,  237,  236,  235,  231,  229,  228,
1055       227,  224,  223,  222,  221,  219,  216,  215,  214,  213,
1056       212,  211,  210,  209,  208,  207,  206,  205,  204,  203,
1057       202,  201,  200,  199,  198,  197,  196,  195,  194,  193,
1058       192,  190,  189,  188,  187,  186,  184,  183,  181,  180,
1059       178,  177,  175,  174,  173,  169,  168,  167,  163,  162,
1060       161,  158,  157,  156,  155,  151,  150,  149,  147,  146,
1061       145,  143,  142,  141,  137,  136,  135,  131,  129,  128,
1062       126,  125,  124,  123,  122,  121,  118,  117,  116,  115,
1063 
1064       113,  112,  111,  110,  109,  107,  106,  105,  104,   99,
1065        97,   94,   93,   92,   91,   88,   87,   83,   82,   81,
1066        78,   77,   76,   75,   71,   70,   69,   67,   66,   65,
1067        63,   62,   61,   57,   56,   55,   50,   49,   48,   47,
1068        41,   39,   37,   35,   34,   33,   32,   30,   29,   28,
1069        24,   22,   19,    4,    3,  555,  555,  555,  555,  555,
1070       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
1071       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
1072       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
1073       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
1074 
1075       555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
1076       555,  555
1077     } ;
1078 
1079 /* The intent behind this definition is that it'll catch
1080  * any uses of REJECT which flex missed.
1081  */
1082 #define REJECT reject_used_but_not_detected
1083 #define yymore() yymore_used_but_not_detected
1084 #define YY_MORE_ADJ 0
1085 #define YY_RESTORE_YY_MORE_OFFSET
1086 #line 1 "scanner.l"
1087 /*
1088  * Copyright (c) 2014-2017 Christian Schoenebeck and Andreas Persson
1089  *
1090  * http://www.linuxsampler.org
1091  *
1092  * This file is part of LinuxSampler and released under the same terms.
1093  * See README file for details.
1094  */
1095 /* Token scanner for NKSP real-time instrument script language. */
1096 #line 13 "scanner.l"
1097 
1098 #include "parser_shared.h"
1099 #include <math.h>
1100 // reentrant scanner data context
1101 #define YY_EXTRA_TYPE ParserContext*
1102 // set line number each time a token is recognized
1103 #define YY_USER_ACTION                  \
1104 {                                       \
1105     yylloc->first_line = yylineno;      \
1106     yylloc->last_line  = yylineno;      \
1107     yylloc->first_column = yycolumn;    \
1108     yylloc->first_byte = yyextra->nbytes; \
1109     yylloc->length_bytes = (int) yyleng;  \
1110     yycolumn += yyleng;                 \
1111     yyextra->nbytes += (int) yyleng;    \
1112     yylloc->last_column = yycolumn - 1; \
1113     /*printf("lex: line '%s'\n", yytext);*/  \
1114 }
1115 // custom (f)lex input for reading from std::istream object
1116 #define YY_INPUT(buf,result,max_size)   \
1117 {                                       \
1118     char c = yyextra->is->get();        \
1119     if (yyextra->is->eof())             \
1120         result = YY_NULL;               \
1121     else {                              \
1122         buf[0] = c;                     \
1123         result = 1;                     \
1124     }                                   \
1125 }
1126 
scanner_error(YYLTYPE * locp,LinuxSampler::ParserContext * context,const char * err)1127 static void scanner_error(YYLTYPE* locp, LinuxSampler::ParserContext* context, const char* err) {
1128     context->addErr(locp->first_line, locp->last_line, locp->first_column,
1129                     locp->last_column, locp->first_byte, locp->length_bytes,
1130                     err);
1131 }
1132 
scanner_warning(YYLTYPE * locp,LinuxSampler::ParserContext * context,const char * txt)1133 static void scanner_warning(YYLTYPE* locp, LinuxSampler::ParserContext* context, const char* txt) {
1134     context->addWrn(locp->first_line, locp->last_line, locp->first_column,
1135                     locp->last_column, locp->first_byte, locp->length_bytes,
1136                     txt);
1137 }
1138 
1139 #define SCANNER_ERR(txt)  scanner_error(yylloc, yyextra, txt)
1140 #define SCANNER_WRN(txt)  scanner_warning(yylloc, yyextra, txt)
1141 
1142 // shut up warning that 'register' keyword is deprecated as of C++11
1143 #if defined(__cplusplus) && __cplusplus >= 201103L
1144 # define register
1145 #endif
1146 
1147 using namespace LinuxSampler;
1148 
countNewLineChars(const char * txt)1149 static int countNewLineChars(const char* txt) {
1150     int n = 0;
1151     for (int i = 0; txt[i]; ++i)
1152         if (txt[i] == '\n') ++n;
1153     return n;
1154 }
1155 
countCharsPastLastNewLine(const char * txt)1156 static int countCharsPastLastNewLine(const char* txt) {
1157     const int n = (int)strlen(txt);
1158     for (int i = n - 1; i >= 0; --i)
1159         if (txt[i] == '\n')
1160             return n - i - 1;
1161     return n;
1162 }
1163 
1164 #define processLocation() { \
1165     const int nl = countNewLineChars(yytext); \
1166     yylineno += nl; \
1167     if (nl) yycolumn = countCharsPastLastNewLine(yytext); \
1168 }
1169 
1170 // if compiled for debugging, throw an exception instead of exiting on fatal
1171 // lexer errors (so the debugger may pause with the appropriate back trace)
1172 #if DEBUG
1173 # include <stdexcept>
1174 # define YY_FATAL_ERROR(msg) throw std::runtime_error(msg)
1175 #endif
1176 
1177 #line 1178 "lex.InstrScript_.c"
1178 /* use Flex's built-in support for line numbers
1179    (disabled, because it seems to be unreliable, so we are using our own
1180    tracking code in the respective scanner rules below) */
1181 /*%option yylineno*/
1182 /* generate a reentrant safe scanner */
1183 /* avoid symbol collision with other (i.e. future) scanner symbols */
1184 /* bison-bridge adds an argument yylval to yylex, and bison-locations adds an
1185    argument code yylloc for location tracking. */
1186 /* yywrap() would be called at EOF, we don't need it */
1187 /* enable functions yy_push_state(), yy_pop_state(), yy_top_state() */
1188 /* inclusive scanner conditions */
1189 
1190 /* exclusive scanner conditions */
1191 
1192 #line 1193 "lex.InstrScript_.c"
1193 
1194 #define INITIAL 0
1195 #define PREPROC_BODY_USE 1
1196 #define PREPROC_SET_COND 2
1197 #define PREPROC_RESET_COND 3
1198 #define PREPROC_IF 4
1199 #define PREPROC_IF_NOT 5
1200 #define PREPROC_BODY_EAT 6
1201 #define PREPROC_PRE_BODY_USE 7
1202 #define PREPROC_PRE_BODY_EAT 8
1203 
1204 #ifndef YY_NO_UNISTD_H
1205 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1206  * down here because we want the user's section 1 to have been scanned first.
1207  * The user has a chance to override it with an option.
1208  */
1209 #include <unistd.h>
1210 #endif
1211 
1212 #ifndef YY_EXTRA_TYPE
1213 #define YY_EXTRA_TYPE void *
1214 #endif
1215 
1216 /* Holds the entire state of the reentrant scanner. */
1217 struct yyguts_t
1218     {
1219 
1220     /* User-defined. Not touched by flex. */
1221     YY_EXTRA_TYPE yyextra_r;
1222 
1223     /* The rest are the same as the globals declared in the non-reentrant scanner. */
1224     FILE *yyin_r, *yyout_r;
1225     size_t yy_buffer_stack_top; /**< index of top of stack. */
1226     size_t yy_buffer_stack_max; /**< capacity of stack. */
1227     YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1228     char yy_hold_char;
1229     int yy_n_chars;
1230     int yyleng_r;
1231     char *yy_c_buf_p;
1232     int yy_init;
1233     int yy_start;
1234     int yy_did_buffer_switch_on_eof;
1235     int yy_start_stack_ptr;
1236     int yy_start_stack_depth;
1237     int *yy_start_stack;
1238     yy_state_type yy_last_accepting_state;
1239     char* yy_last_accepting_cpos;
1240 
1241     int yylineno_r;
1242     int yy_flex_debug_r;
1243 
1244     char *yytext_r;
1245     int yy_more_flag;
1246     int yy_more_len;
1247 
1248     YYSTYPE * yylval_r;
1249 
1250     YYLTYPE * yylloc_r;
1251 
1252     }; /* end struct yyguts_t */
1253 
1254 static int yy_init_globals ( yyscan_t yyscanner );
1255 
1256     /* This must go here because YYSTYPE and YYLTYPE are included
1257      * from bison output in section 1.*/
1258     #    define yylval yyg->yylval_r
1259 
1260     #    define yylloc yyg->yylloc_r
1261 
1262 int yylex_init (yyscan_t* scanner);
1263 
1264 int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
1265 
1266 /* Accessor methods to globals.
1267    These are made visible to non-reentrant scanners for convenience. */
1268 
1269 int yylex_destroy ( yyscan_t yyscanner );
1270 
1271 int yyget_debug ( yyscan_t yyscanner );
1272 
1273 void yyset_debug ( int debug_flag , yyscan_t yyscanner );
1274 
1275 YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
1276 
1277 void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
1278 
1279 FILE *yyget_in ( yyscan_t yyscanner );
1280 
1281 void yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
1282 
1283 FILE *yyget_out ( yyscan_t yyscanner );
1284 
1285 void yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
1286 
1287 			int yyget_leng ( yyscan_t yyscanner );
1288 
1289 char *yyget_text ( yyscan_t yyscanner );
1290 
1291 int yyget_lineno ( yyscan_t yyscanner );
1292 
1293 void yyset_lineno ( int _line_number , yyscan_t yyscanner );
1294 
1295 int yyget_column  ( yyscan_t yyscanner );
1296 
1297 void yyset_column ( int _column_no , yyscan_t yyscanner );
1298 
1299 YYSTYPE * yyget_lval ( yyscan_t yyscanner );
1300 
1301 void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
1302 
1303        YYLTYPE *yyget_lloc ( yyscan_t yyscanner );
1304 
1305         void yyset_lloc ( YYLTYPE * yylloc_param , yyscan_t yyscanner );
1306 
1307 /* Macros after this point can all be overridden by user definitions in
1308  * section 1.
1309  */
1310 
1311 #ifndef YY_SKIP_YYWRAP
1312 #ifdef __cplusplus
1313 extern "C" int yywrap ( yyscan_t yyscanner );
1314 #else
1315 extern int yywrap ( yyscan_t yyscanner );
1316 #endif
1317 #endif
1318 
1319 #ifndef YY_NO_UNPUT
1320 
1321     static void yyunput ( int c, char *buf_ptr  , yyscan_t yyscanner);
1322 
1323 #endif
1324 
1325 #ifndef yytext_ptr
1326 static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
1327 #endif
1328 
1329 #ifdef YY_NEED_STRLEN
1330 static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
1331 #endif
1332 
1333 #ifndef YY_NO_INPUT
1334 #ifdef __cplusplus
1335 static int yyinput ( yyscan_t yyscanner );
1336 #else
1337 static int input ( yyscan_t yyscanner );
1338 #endif
1339 
1340 #endif
1341 
1342     static void yy_push_state ( int _new_state , yyscan_t yyscanner);
1343 
1344     static void yy_pop_state ( yyscan_t yyscanner );
1345 
1346     static int yy_top_state ( yyscan_t yyscanner );
1347 
1348 /* Amount of stuff to slurp up with each read. */
1349 #ifndef YY_READ_BUF_SIZE
1350 #ifdef __ia64__
1351 /* On IA-64, the buffer size is 16k, not 8k */
1352 #define YY_READ_BUF_SIZE 16384
1353 #else
1354 #define YY_READ_BUF_SIZE 8192
1355 #endif /* __ia64__ */
1356 #endif
1357 
1358 /* Copy whatever the last rule matched to the standard output. */
1359 #ifndef ECHO
1360 /* This used to be an fputs(), but since the string might contain NUL's,
1361  * we now use fwrite().
1362  */
1363 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1364 #endif
1365 
1366 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1367  * is returned in "result".
1368  */
1369 #ifndef YY_INPUT
1370 #define YY_INPUT(buf,result,max_size) \
1371 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1372 		{ \
1373 		int c = '*'; \
1374 		int n; \
1375 		for ( n = 0; n < max_size && \
1376 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1377 			buf[n] = (char) c; \
1378 		if ( c == '\n' ) \
1379 			buf[n++] = (char) c; \
1380 		if ( c == EOF && ferror( yyin ) ) \
1381 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1382 		result = n; \
1383 		} \
1384 	else \
1385 		{ \
1386 		errno=0; \
1387 		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1388 			{ \
1389 			if( errno != EINTR) \
1390 				{ \
1391 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
1392 				break; \
1393 				} \
1394 			errno=0; \
1395 			clearerr(yyin); \
1396 			} \
1397 		}\
1398 \
1399 
1400 #endif
1401 
1402 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1403  * we don't want an extra ';' after the "return" because that will cause
1404  * some compilers to complain about unreachable statements.
1405  */
1406 #ifndef yyterminate
1407 #define yyterminate() return YY_NULL
1408 #endif
1409 
1410 /* Number of entries by which start-condition stack grows. */
1411 #ifndef YY_START_STACK_INCR
1412 #define YY_START_STACK_INCR 25
1413 #endif
1414 
1415 /* Report a fatal error. */
1416 #ifndef YY_FATAL_ERROR
1417 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1418 #endif
1419 
1420 /* end tables serialization structures and prototypes */
1421 
1422 /* Default declaration of generated scanner - a define so the user can
1423  * easily add parameters.
1424  */
1425 #ifndef YY_DECL
1426 #define YY_DECL_IS_OURS 1
1427 
1428 extern int yylex \
1429                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner);
1430 
1431 #define YY_DECL int yylex \
1432                (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
1433 #endif /* !YY_DECL */
1434 
1435 /* Code executed at the beginning of each rule, after yytext and yyleng
1436  * have been set up.
1437  */
1438 #ifndef YY_USER_ACTION
1439 #define YY_USER_ACTION
1440 #endif
1441 
1442 /* Code executed at the end of each rule. */
1443 #ifndef YY_BREAK
1444 #define YY_BREAK /*LINTED*/break;
1445 #endif
1446 
1447 #define YY_RULE_SETUP \
1448 	YY_USER_ACTION
1449 
1450 /** The main scanner function which does all the work.
1451  */
1452 YY_DECL
1453 {
1454 	yy_state_type yy_current_state;
1455 	char *yy_cp, *yy_bp;
1456 	int yy_act;
1457     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1458 
1459     yylval = yylval_param;
1460 
1461     yylloc = yylloc_param;
1462 
1463 	if ( !yyg->yy_init )
1464 		{
1465 		yyg->yy_init = 1;
1466 
1467 #ifdef YY_USER_INIT
1468 		YY_USER_INIT;
1469 #endif
1470 
1471 		if ( ! yyg->yy_start )
1472 			yyg->yy_start = 1;	/* first start state */
1473 
1474 		if ( ! yyin )
1475 			yyin = stdin;
1476 
1477 		if ( ! yyout )
1478 			yyout = stdout;
1479 
1480 		if ( ! YY_CURRENT_BUFFER ) {
1481 			yyensure_buffer_stack (yyscanner);
1482 			YY_CURRENT_BUFFER_LVALUE =
1483 				yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
1484 		}
1485 
1486 		yy_load_buffer_state( yyscanner );
1487 		}
1488 
1489 	{
1490 #line 122 "scanner.l"
1491 
1492 
1493 #line 1494 "lex.InstrScript_.c"
1494 
1495 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
1496 		{
1497 		yy_cp = yyg->yy_c_buf_p;
1498 
1499 		/* Support of yytext. */
1500 		*yy_cp = yyg->yy_hold_char;
1501 
1502 		/* yy_bp points to the position in yy_ch_buf of the start of
1503 		 * the current run.
1504 		 */
1505 		yy_bp = yy_cp;
1506 
1507 		yy_current_state = yyg->yy_start;
1508 yy_match:
1509 		do
1510 			{
1511 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1512 			if ( yy_accept[yy_current_state] )
1513 				{
1514 				yyg->yy_last_accepting_state = yy_current_state;
1515 				yyg->yy_last_accepting_cpos = yy_cp;
1516 				}
1517 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1518 				{
1519 				yy_current_state = (int) yy_def[yy_current_state];
1520 				if ( yy_current_state >= 556 )
1521 					yy_c = yy_meta[yy_c];
1522 				}
1523 			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1524 			++yy_cp;
1525 			}
1526 		while ( yy_base[yy_current_state] != 1056 );
1527 
1528 yy_find_action:
1529 		yy_act = yy_accept[yy_current_state];
1530 		if ( yy_act == 0 )
1531 			{ /* have to back up */
1532 			yy_cp = yyg->yy_last_accepting_cpos;
1533 			yy_current_state = yyg->yy_last_accepting_state;
1534 			yy_act = yy_accept[yy_current_state];
1535 			}
1536 
1537 		YY_DO_BEFORE_ACTION;
1538 
1539 do_action:	/* This label is used only to access EOF actions. */
1540 
1541 		switch ( yy_act )
1542 	{ /* beginning of action switch */
1543 			case 0: /* must back up */
1544 			/* undo the effects of YY_DO_BEFORE_ACTION */
1545 			*yy_cp = yyg->yy_hold_char;
1546 			yy_cp = yyg->yy_last_accepting_cpos;
1547 			yy_current_state = yyg->yy_last_accepting_state;
1548 			goto yy_find_action;
1549 
1550 case 1:
1551 /* rule 1 can match eol */
1552 YY_RULE_SETUP
1553 #line 124 "scanner.l"
1554 {
1555     char* s = strdup(yytext + 1);
1556     s[strlen(s) - 1] = '\0';
1557     yylval->sValue = s;
1558     yyextra->autoFreeAfterParse(s);
1559     return STRING;
1560 }
1561 	YY_BREAK
1562 case 2:
1563 YY_RULE_SETUP
1564 #line 132 "scanner.l"
1565 {
1566     if (sizeof(vmint) < 8)
1567         yylval->iValue = atoi(yytext);
1568     else
1569         yylval->iValue = atoll(yytext);
1570     return INTEGER;
1571 }
1572 	YY_BREAK
1573 case 3:
1574 YY_RULE_SETUP
1575 #line 140 "scanner.l"
1576 {
1577     yylval->fValue = atof(yytext);
1578     return REAL;
1579 }
1580 	YY_BREAK
1581 case 4:
1582 YY_RULE_SETUP
1583 #line 145 "scanner.l"
1584 {
1585     int pos = 0;
1586 
1587     // parse number portion
1588     vmint value = 0;
1589     for (; yytext[pos] >= '0' && yytext[pos] <= '9'; ++pos) {
1590         value *= 10;
1591         value += yytext[pos] - '0';
1592     }
1593     yylval->iUnitValue.iValue = value;
1594 
1595     // parse metric prefix portion
1596     for (int i = 0; i < 2; ++i, ++pos) {
1597         switch (yytext[pos]) {
1598             case 'k': yylval->iUnitValue.prefix[i] = VM_KILO;  continue;
1599             case 'h': yylval->iUnitValue.prefix[i] = VM_HECTO; continue;
1600             case 'c': yylval->iUnitValue.prefix[i] = VM_CENTI; continue;
1601             case 'm': yylval->iUnitValue.prefix[i] = VM_MILLI; continue;
1602             case 'u': yylval->iUnitValue.prefix[i] = VM_MICRO; continue;
1603             case 'd':
1604                 if (yytext[pos+1] == 'a') {
1605                     yylval->iUnitValue.prefix[i] = VM_DECA;
1606                     ++pos;
1607                 } else {
1608                     yylval->iUnitValue.prefix[i] = VM_DECI;
1609                 }
1610                 continue;
1611             default:
1612                 yylval->iUnitValue.prefix[i] = VM_NO_PREFIX;
1613                 goto parseIntStdUnit;
1614         }
1615     }
1616 
1617     parseIntStdUnit:
1618 
1619     // parse standard measurement unit
1620     switch (yytext[pos]) {
1621         case 's': yylval->iUnitValue.unit = VM_SECOND;  break;
1622         case 'H': yylval->iUnitValue.unit = VM_HERTZ;   break;
1623         case 'B': yylval->iUnitValue.unit = VM_BEL;     break;
1624         default:  yylval->iUnitValue.unit = VM_NO_UNIT; break;
1625     }
1626 
1627     return INTEGER_UNIT;
1628 }
1629 	YY_BREAK
1630 case 5:
1631 YY_RULE_SETUP
1632 #line 191 "scanner.l"
1633 {
1634     int pos = 0;
1635 
1636     // parse number portion
1637     for (; (yytext[pos] >= '0' && yytext[pos] <= '9') || yytext[pos] == '.'; ++pos) {
1638     }
1639     {
1640         const char tmp = yytext[pos];
1641         yytext[pos] = 0; // mark temporary end of string
1642         yylval->fUnitValue.fValue = atof(yytext);
1643         yytext[pos] = tmp; // restore
1644     }
1645 
1646     // parse metric prefix portion
1647     for (int i = 0; i < 2; ++i, ++pos) {
1648         switch (yytext[pos]) {
1649             case 'k': yylval->fUnitValue.prefix[i] = VM_KILO;  continue;
1650             case 'h': yylval->fUnitValue.prefix[i] = VM_HECTO; continue;
1651             case 'c': yylval->fUnitValue.prefix[i] = VM_CENTI; continue;
1652             case 'm': yylval->fUnitValue.prefix[i] = VM_MILLI; continue;
1653             case 'u': yylval->fUnitValue.prefix[i] = VM_MICRO; continue;
1654             case 'd':
1655                 if (yytext[pos+1] == 'a') {
1656                     yylval->fUnitValue.prefix[i] = VM_DECA;
1657                     ++pos;
1658                 } else {
1659                     yylval->fUnitValue.prefix[i] = VM_DECI;
1660                 }
1661                 continue;
1662             default:
1663                 yylval->fUnitValue.prefix[i] = VM_NO_PREFIX;
1664                 goto parseRealStdUnit;
1665         }
1666     }
1667 
1668     parseRealStdUnit:
1669 
1670     // parse standard measurement unit
1671     switch (yytext[pos]) {
1672         case 's': yylval->fUnitValue.unit = VM_SECOND;  break;
1673         case 'H': yylval->fUnitValue.unit = VM_HERTZ;   break;
1674         case 'B': yylval->fUnitValue.unit = VM_BEL;     break;
1675         default:  yylval->fUnitValue.unit = VM_NO_UNIT; break;
1676     }
1677 
1678     return REAL_UNIT;
1679 }
1680 	YY_BREAK
1681 /* Preprocessor statement:  SET_CONDITION(name) */
1682 case 6:
1683 YY_RULE_SETUP
1684 #line 242 "scanner.l"
1685 {
1686     //printf("SET_CONDITION\n");
1687     yy_push_state(PREPROC_SET_COND, yyscanner);
1688 }
1689 	YY_BREAK
1690 case 7:
1691 YY_RULE_SETUP
1692 #line 246 "scanner.l"
1693 {
1694     //printf("preproc set condition '%s'\n", yytext);
1695     bool success = yyextra->setPreprocessorCondition(yytext);
1696     if (!success) {
1697         SCANNER_WRN((String("Preprocessor: Condition '") +
1698                     yytext + "' is already set.").c_str());
1699     }
1700 }
1701 	YY_BREAK
1702 case 8:
1703 YY_RULE_SETUP
1704 #line 254 "scanner.l"
1705 {
1706     //printf("End of PREPROC_SET_COND\n");
1707     yy_pop_state(yyscanner);
1708 }
1709 	YY_BREAK
1710 /* Preprocessor statement:  RESET_CONDITION(name) */
1711 case 9:
1712 YY_RULE_SETUP
1713 #line 262 "scanner.l"
1714 {
1715     //printf("RESET_CONDITION\n");
1716     yy_push_state(PREPROC_RESET_COND, yyscanner);
1717 }
1718 	YY_BREAK
1719 case 10:
1720 YY_RULE_SETUP
1721 #line 266 "scanner.l"
1722 {
1723     //printf("preproc reset condition '%s'\n", yytext);
1724     bool success = yyextra->resetPreprocessorCondition(yytext);
1725     if (!success) {
1726         SCANNER_ERR((String("Preprocessor: could not reset condition '") +
1727                     yytext + "' (either not set or a built-in condition).").c_str());
1728     }
1729 }
1730 	YY_BREAK
1731 case 11:
1732 YY_RULE_SETUP
1733 #line 274 "scanner.l"
1734 {
1735     //printf("End of RESET_CONDITION\n");
1736     yy_pop_state(yyscanner);
1737 }
1738 	YY_BREAK
1739 /* Preprocessor conditional statements:
1740 
1741     USE_CODE_IF(name)
1742       ...
1743     END_USE_CODE
1744 
1745     and:
1746 
1747     USE_CODE_IF_NOT(name)
1748       ...
1749     END_USE_CODE
1750  */
1751 case 12:
1752 YY_RULE_SETUP
1753 #line 293 "scanner.l"
1754 {
1755     //printf("{%s}\n", yytext);
1756     yy_push_state(PREPROC_IF, yyscanner);
1757 }
1758 	YY_BREAK
1759 case 13:
1760 YY_RULE_SETUP
1761 #line 297 "scanner.l"
1762 {
1763     //printf("[EAT{%s}\n", yytext);
1764     yy_push_state(PREPROC_BODY_EAT, yyscanner);
1765 }
1766 	YY_BREAK
1767 case 14:
1768 YY_RULE_SETUP
1769 #line 301 "scanner.l"
1770 {
1771     //printf("USE_CODE_IF_NOT\n");
1772     yy_push_state(PREPROC_IF_NOT, yyscanner);
1773 }
1774 	YY_BREAK
1775 case 15:
1776 YY_RULE_SETUP
1777 #line 305 "scanner.l"
1778 {
1779     //printf("[EAT{%s}\n", yytext);
1780     yy_push_state(PREPROC_BODY_EAT, yyscanner);
1781 }
1782 	YY_BREAK
1783 case 16:
1784 YY_RULE_SETUP
1785 #line 309 "scanner.l"
1786 {
1787     //printf("preproc use code if '%s'\n", yytext);
1788     yy_pop_state(yyscanner);
1789     if (yyextra->isPreprocessorConditionSet(yytext))
1790         yy_push_state(PREPROC_PRE_BODY_USE, yyscanner);
1791     else
1792         yy_push_state(PREPROC_PRE_BODY_EAT, yyscanner);
1793 }
1794 	YY_BREAK
1795 case 17:
1796 YY_RULE_SETUP
1797 #line 317 "scanner.l"
1798 {
1799     //printf("preproc use code if not '%s'\n", yytext);
1800     yy_pop_state(yyscanner);
1801     if (!yyextra->isPreprocessorConditionSet(yytext))
1802         yy_push_state(PREPROC_PRE_BODY_USE, yyscanner);
1803     else
1804         yy_push_state(PREPROC_PRE_BODY_EAT, yyscanner);
1805 }
1806 	YY_BREAK
1807 case 18:
1808 YY_RULE_SETUP
1809 #line 325 "scanner.l"
1810 {
1811     yy_pop_state(yyscanner);
1812     yy_push_state(PREPROC_BODY_USE, yyscanner);
1813 }
1814 	YY_BREAK
1815 case 19:
1816 YY_RULE_SETUP
1817 #line 329 "scanner.l"
1818 {
1819     //printf("PREPROCESSOR EAT : {%s}\n", yytext);
1820     yy_pop_state(yyscanner);
1821     yy_push_state(PREPROC_BODY_EAT, yyscanner);
1822 }
1823 	YY_BREAK
1824 case 20:
1825 YY_RULE_SETUP
1826 #line 334 "scanner.l"
1827 {
1828     //printf("-->END_USE_CODE\n");
1829     yy_pop_state(yyscanner);
1830 }
1831 	YY_BREAK
1832 case 21:
1833 /* rule 21 can match eol */
1834 YY_RULE_SETUP
1835 #line 338 "scanner.l"
1836 { /* eat up code block filtered out by preprocessor */
1837     //printf("PREPROCESSOR EAT2 : {%s}\n", yytext);
1838     processLocation();
1839 }
1840 	YY_BREAK
1841 case 22:
1842 YY_RULE_SETUP
1843 #line 342 "scanner.l"
1844 { /* eat up code block filtered out by preprocessor */
1845     //printf("PREPROCESSOR EAT3 : {%s}\n", yytext);
1846     yyextra->addPreprocessorComment(yylloc->first_line, yylloc->last_line,
1847                                     yylloc->first_column+1, yylloc->last_column+1,
1848                                     yylloc->first_byte, yylloc->length_bytes);
1849 }
1850 	YY_BREAK
1851 /* Language keywords */
1852 case 23:
1853 YY_RULE_SETUP
1854 #line 352 "scanner.l"
1855 return ON;
1856 	YY_BREAK
1857 case 24:
1858 YY_RULE_SETUP
1859 #line 353 "scanner.l"
1860 return END;
1861 	YY_BREAK
1862 case 25:
1863 YY_RULE_SETUP
1864 #line 354 "scanner.l"
1865 return NOTE;
1866 	YY_BREAK
1867 case 26:
1868 YY_RULE_SETUP
1869 #line 355 "scanner.l"
1870 return INIT;
1871 	YY_BREAK
1872 case 27:
1873 YY_RULE_SETUP
1874 #line 356 "scanner.l"
1875 return DECLARE;
1876 	YY_BREAK
1877 case 28:
1878 YY_RULE_SETUP
1879 #line 357 "scanner.l"
1880 return WHILE;
1881 	YY_BREAK
1882 case 29:
1883 YY_RULE_SETUP
1884 #line 358 "scanner.l"
1885 return IF;
1886 	YY_BREAK
1887 case 30:
1888 YY_RULE_SETUP
1889 #line 359 "scanner.l"
1890 return BITWISE_OR;
1891 	YY_BREAK
1892 case 31:
1893 YY_RULE_SETUP
1894 #line 360 "scanner.l"
1895 return OR;
1896 	YY_BREAK
1897 case 32:
1898 YY_RULE_SETUP
1899 #line 361 "scanner.l"
1900 return RELEASE;
1901 	YY_BREAK
1902 case 33:
1903 YY_RULE_SETUP
1904 #line 362 "scanner.l"
1905 return BITWISE_AND;
1906 	YY_BREAK
1907 case 34:
1908 YY_RULE_SETUP
1909 #line 363 "scanner.l"
1910 return AND;
1911 	YY_BREAK
1912 case 35:
1913 YY_RULE_SETUP
1914 #line 364 "scanner.l"
1915 return BITWISE_NOT;
1916 	YY_BREAK
1917 case 36:
1918 YY_RULE_SETUP
1919 #line 365 "scanner.l"
1920 return NOT;
1921 	YY_BREAK
1922 case 37:
1923 YY_RULE_SETUP
1924 #line 366 "scanner.l"
1925 return ELSE;
1926 	YY_BREAK
1927 case 38:
1928 YY_RULE_SETUP
1929 #line 367 "scanner.l"
1930 return CONTROLLER;
1931 	YY_BREAK
1932 case 39:
1933 YY_RULE_SETUP
1934 #line 368 "scanner.l"
1935 return RPN;
1936 	YY_BREAK
1937 case 40:
1938 YY_RULE_SETUP
1939 #line 369 "scanner.l"
1940 return NRPN;
1941 	YY_BREAK
1942 case 41:
1943 YY_RULE_SETUP
1944 #line 370 "scanner.l"
1945 return CASE;
1946 	YY_BREAK
1947 case 42:
1948 YY_RULE_SETUP
1949 #line 371 "scanner.l"
1950 return SELECT;
1951 	YY_BREAK
1952 case 43:
1953 YY_RULE_SETUP
1954 #line 372 "scanner.l"
1955 return TO;
1956 	YY_BREAK
1957 case 44:
1958 YY_RULE_SETUP
1959 #line 373 "scanner.l"
1960 return LE;
1961 	YY_BREAK
1962 case 45:
1963 YY_RULE_SETUP
1964 #line 374 "scanner.l"
1965 return GE;
1966 	YY_BREAK
1967 case 46:
1968 YY_RULE_SETUP
1969 #line 375 "scanner.l"
1970 return CONST_; // note: "CONST" is already defined for C/C++ compilers on Windows by default
1971 	YY_BREAK
1972 case 47:
1973 YY_RULE_SETUP
1974 #line 376 "scanner.l"
1975 return POLYPHONIC;
1976 	YY_BREAK
1977 case 48:
1978 YY_RULE_SETUP
1979 #line 377 "scanner.l"
1980 return PATCH;
1981 	YY_BREAK
1982 case 49:
1983 YY_RULE_SETUP
1984 #line 378 "scanner.l"
1985 return MOD;
1986 	YY_BREAK
1987 case 50:
1988 YY_RULE_SETUP
1989 #line 379 "scanner.l"
1990 return FUNCTION;
1991 	YY_BREAK
1992 case 51:
1993 YY_RULE_SETUP
1994 #line 380 "scanner.l"
1995 return CALL;
1996 	YY_BREAK
1997 case 52:
1998 YY_RULE_SETUP
1999 #line 381 "scanner.l"
2000 return SYNCHRONIZED;
2001 	YY_BREAK
2002 case 53:
2003 YY_RULE_SETUP
2004 #line 383 "scanner.l"
2005 {
2006     return *yytext;
2007 }
2008 	YY_BREAK
2009 case 54:
2010 YY_RULE_SETUP
2011 #line 387 "scanner.l"
2012 {
2013     yylval->sValue = strdup(yytext);
2014     yyextra->autoFreeAfterParse(yylval->sValue);
2015     return VARIABLE;
2016 }
2017 	YY_BREAK
2018 case 55:
2019 YY_RULE_SETUP
2020 #line 393 "scanner.l"
2021 {
2022     yylval->sValue = strdup(yytext);
2023     yyextra->autoFreeAfterParse(yylval->sValue);
2024     return IDENTIFIER;
2025 }
2026 	YY_BREAK
2027 case 56:
2028 YY_RULE_SETUP
2029 #line 399 "scanner.l"
2030 return ASSIGNMENT;
2031 	YY_BREAK
2032 case 57:
2033 /* rule 57 can match eol */
2034 YY_RULE_SETUP
2035 #line 401 "scanner.l"
2036 {
2037      yylineno += countNewLineChars(yytext);
2038      yycolumn = 0;
2039     //printf("lex: new line %d\n", yylineno, yytext);
2040     //return LF;
2041 }
2042 	YY_BREAK
2043 case 58:
2044 /* rule 58 can match eol */
2045 YY_RULE_SETUP
2046 #line 408 "scanner.l"
2047 { /* eat up comments */
2048     processLocation();
2049 }
2050 	YY_BREAK
2051 case 59:
2052 YY_RULE_SETUP
2053 #line 412 "scanner.l"
2054 /* eat up whitespace */
2055 	YY_BREAK
2056 case 60:
2057 YY_RULE_SETUP
2058 #line 414 "scanner.l"
2059 {
2060     printf( "Unrecognized character: '%s' (line %d, column %d)\n", yytext, yylineno, yycolumn);
2061     return UNKNOWN_CHAR;
2062 }
2063 	YY_BREAK
2064 case 61:
2065 YY_RULE_SETUP
2066 #line 419 "scanner.l"
2067 ECHO;
2068 	YY_BREAK
2069 #line 2070 "lex.InstrScript_.c"
2070 case YY_STATE_EOF(INITIAL):
2071 case YY_STATE_EOF(PREPROC_BODY_USE):
2072 case YY_STATE_EOF(PREPROC_SET_COND):
2073 case YY_STATE_EOF(PREPROC_RESET_COND):
2074 case YY_STATE_EOF(PREPROC_IF):
2075 case YY_STATE_EOF(PREPROC_IF_NOT):
2076 case YY_STATE_EOF(PREPROC_BODY_EAT):
2077 case YY_STATE_EOF(PREPROC_PRE_BODY_USE):
2078 case YY_STATE_EOF(PREPROC_PRE_BODY_EAT):
2079 	yyterminate();
2080 
2081 	case YY_END_OF_BUFFER:
2082 		{
2083 		/* Amount of text matched not including the EOB char. */
2084 		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2085 
2086 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2087 		*yy_cp = yyg->yy_hold_char;
2088 		YY_RESTORE_YY_MORE_OFFSET
2089 
2090 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2091 			{
2092 			/* We're scanning a new file or input source.  It's
2093 			 * possible that this happened because the user
2094 			 * just pointed yyin at a new source and called
2095 			 * yylex().  If so, then we have to assure
2096 			 * consistency between YY_CURRENT_BUFFER and our
2097 			 * globals.  Here is the right place to do so, because
2098 			 * this is the first action (other than possibly a
2099 			 * back-up) that will match for the new input source.
2100 			 */
2101 			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2102 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2103 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2104 			}
2105 
2106 		/* Note that here we test for yy_c_buf_p "<=" to the position
2107 		 * of the first EOB in the buffer, since yy_c_buf_p will
2108 		 * already have been incremented past the NUL character
2109 		 * (since all states make transitions on EOB to the
2110 		 * end-of-buffer state).  Contrast this with the test
2111 		 * in input().
2112 		 */
2113 		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2114 			{ /* This was really a NUL. */
2115 			yy_state_type yy_next_state;
2116 
2117 			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2118 
2119 			yy_current_state = yy_get_previous_state( yyscanner );
2120 
2121 			/* Okay, we're now positioned to make the NUL
2122 			 * transition.  We couldn't have
2123 			 * yy_get_previous_state() go ahead and do it
2124 			 * for us because it doesn't know how to deal
2125 			 * with the possibility of jamming (and we don't
2126 			 * want to build jamming into it because then it
2127 			 * will run more slowly).
2128 			 */
2129 
2130 			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2131 
2132 			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2133 
2134 			if ( yy_next_state )
2135 				{
2136 				/* Consume the NUL. */
2137 				yy_cp = ++yyg->yy_c_buf_p;
2138 				yy_current_state = yy_next_state;
2139 				goto yy_match;
2140 				}
2141 
2142 			else
2143 				{
2144 				yy_cp = yyg->yy_c_buf_p;
2145 				goto yy_find_action;
2146 				}
2147 			}
2148 
2149 		else switch ( yy_get_next_buffer( yyscanner ) )
2150 			{
2151 			case EOB_ACT_END_OF_FILE:
2152 				{
2153 				yyg->yy_did_buffer_switch_on_eof = 0;
2154 
2155 				if ( yywrap( yyscanner ) )
2156 					{
2157 					/* Note: because we've taken care in
2158 					 * yy_get_next_buffer() to have set up
2159 					 * yytext, we can now set up
2160 					 * yy_c_buf_p so that if some total
2161 					 * hoser (like flex itself) wants to
2162 					 * call the scanner after we return the
2163 					 * YY_NULL, it'll still work - another
2164 					 * YY_NULL will get returned.
2165 					 */
2166 					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2167 
2168 					yy_act = YY_STATE_EOF(YY_START);
2169 					goto do_action;
2170 					}
2171 
2172 				else
2173 					{
2174 					if ( ! yyg->yy_did_buffer_switch_on_eof )
2175 						YY_NEW_FILE;
2176 					}
2177 				break;
2178 				}
2179 
2180 			case EOB_ACT_CONTINUE_SCAN:
2181 				yyg->yy_c_buf_p =
2182 					yyg->yytext_ptr + yy_amount_of_matched_text;
2183 
2184 				yy_current_state = yy_get_previous_state( yyscanner );
2185 
2186 				yy_cp = yyg->yy_c_buf_p;
2187 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2188 				goto yy_match;
2189 
2190 			case EOB_ACT_LAST_MATCH:
2191 				yyg->yy_c_buf_p =
2192 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2193 
2194 				yy_current_state = yy_get_previous_state( yyscanner );
2195 
2196 				yy_cp = yyg->yy_c_buf_p;
2197 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2198 				goto yy_find_action;
2199 			}
2200 		break;
2201 		}
2202 
2203 	default:
2204 		YY_FATAL_ERROR(
2205 			"fatal flex scanner internal error--no action found" );
2206 	} /* end of action switch */
2207 		} /* end of scanning one token */
2208 	} /* end of user's declarations */
2209 } /* end of yylex */
2210 
2211 /* yy_get_next_buffer - try to read in a new buffer
2212  *
2213  * Returns a code representing an action:
2214  *	EOB_ACT_LAST_MATCH -
2215  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2216  *	EOB_ACT_END_OF_FILE - end of file
2217  */
2218 static int yy_get_next_buffer (yyscan_t yyscanner)
2219 {
2220     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2221 	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2222 	char *source = yyg->yytext_ptr;
2223 	int number_to_move, i;
2224 	int ret_val;
2225 
2226 	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2227 		YY_FATAL_ERROR(
2228 		"fatal flex scanner internal error--end of buffer missed" );
2229 
2230 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2231 		{ /* Don't try to fill the buffer, so this is an EOF. */
2232 		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2233 			{
2234 			/* We matched a single character, the EOB, so
2235 			 * treat this as a final EOF.
2236 			 */
2237 			return EOB_ACT_END_OF_FILE;
2238 			}
2239 
2240 		else
2241 			{
2242 			/* We matched some text prior to the EOB, first
2243 			 * process it.
2244 			 */
2245 			return EOB_ACT_LAST_MATCH;
2246 			}
2247 		}
2248 
2249 	/* Try to read more data. */
2250 
2251 	/* First move last chars to start of buffer. */
2252 	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
2253 
2254 	for ( i = 0; i < number_to_move; ++i )
2255 		*(dest++) = *(source++);
2256 
2257 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2258 		/* don't do the read, it's not guaranteed to return an EOF,
2259 		 * just force an EOF
2260 		 */
2261 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2262 
2263 	else
2264 		{
2265 			int num_to_read =
2266 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2267 
2268 		while ( num_to_read <= 0 )
2269 			{ /* Not enough room in the buffer - grow it. */
2270 
2271 			/* just a shorter name for the current buffer */
2272 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
2273 
2274 			int yy_c_buf_p_offset =
2275 				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2276 
2277 			if ( b->yy_is_our_buffer )
2278 				{
2279 				int new_size = b->yy_buf_size * 2;
2280 
2281 				if ( new_size <= 0 )
2282 					b->yy_buf_size += b->yy_buf_size / 8;
2283 				else
2284 					b->yy_buf_size *= 2;
2285 
2286 				b->yy_ch_buf = (char *)
2287 					/* Include room in for 2 EOB chars. */
2288 					yyrealloc( (void *) b->yy_ch_buf,
2289 							 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
2290 				}
2291 			else
2292 				/* Can't grow it, we don't own it. */
2293 				b->yy_ch_buf = NULL;
2294 
2295 			if ( ! b->yy_ch_buf )
2296 				YY_FATAL_ERROR(
2297 				"fatal error - scanner input buffer overflow" );
2298 
2299 			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2300 
2301 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2302 						number_to_move - 1;
2303 
2304 			}
2305 
2306 		if ( num_to_read > YY_READ_BUF_SIZE )
2307 			num_to_read = YY_READ_BUF_SIZE;
2308 
2309 		/* Read in more data. */
2310 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2311 			yyg->yy_n_chars, num_to_read );
2312 
2313 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2314 		}
2315 
2316 	if ( yyg->yy_n_chars == 0 )
2317 		{
2318 		if ( number_to_move == YY_MORE_ADJ )
2319 			{
2320 			ret_val = EOB_ACT_END_OF_FILE;
2321 			yyrestart( yyin  , yyscanner);
2322 			}
2323 
2324 		else
2325 			{
2326 			ret_val = EOB_ACT_LAST_MATCH;
2327 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2328 				YY_BUFFER_EOF_PENDING;
2329 			}
2330 		}
2331 
2332 	else
2333 		ret_val = EOB_ACT_CONTINUE_SCAN;
2334 
2335 	if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2336 		/* Extend the array by 50%, plus the number we really need. */
2337 		int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
2338 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
2339 			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
2340 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2341 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2342 		/* "- 2" to take care of EOB's */
2343 		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
2344 	}
2345 
2346 	yyg->yy_n_chars += number_to_move;
2347 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2348 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2349 
2350 	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2351 
2352 	return ret_val;
2353 }
2354 
2355 /* yy_get_previous_state - get the state just before the EOB char was reached */
2356 
yy_get_previous_state(yyscan_t yyscanner)2357     static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2358 {
2359 	yy_state_type yy_current_state;
2360 	char *yy_cp;
2361     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2362 
2363 	yy_current_state = yyg->yy_start;
2364 
2365 	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2366 		{
2367 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2368 		if ( yy_accept[yy_current_state] )
2369 			{
2370 			yyg->yy_last_accepting_state = yy_current_state;
2371 			yyg->yy_last_accepting_cpos = yy_cp;
2372 			}
2373 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2374 			{
2375 			yy_current_state = (int) yy_def[yy_current_state];
2376 			if ( yy_current_state >= 556 )
2377 				yy_c = yy_meta[yy_c];
2378 			}
2379 		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2380 		}
2381 
2382 	return yy_current_state;
2383 }
2384 
2385 /* yy_try_NUL_trans - try to make a transition on the NUL character
2386  *
2387  * synopsis
2388  *	next_state = yy_try_NUL_trans( current_state );
2389  */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)2390     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
2391 {
2392 	int yy_is_jam;
2393     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
2394 	char *yy_cp = yyg->yy_c_buf_p;
2395 
2396 	YY_CHAR yy_c = 1;
2397 	if ( yy_accept[yy_current_state] )
2398 		{
2399 		yyg->yy_last_accepting_state = yy_current_state;
2400 		yyg->yy_last_accepting_cpos = yy_cp;
2401 		}
2402 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2403 		{
2404 		yy_current_state = (int) yy_def[yy_current_state];
2405 		if ( yy_current_state >= 556 )
2406 			yy_c = yy_meta[yy_c];
2407 		}
2408 	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2409 	yy_is_jam = (yy_current_state == 555);
2410 
2411 	(void)yyg;
2412 	return yy_is_jam ? 0 : yy_current_state;
2413 }
2414 
2415 #ifndef YY_NO_UNPUT
2416 
yyunput(int c,char * yy_bp,yyscan_t yyscanner)2417     static void yyunput (int c, char * yy_bp , yyscan_t yyscanner)
2418 {
2419 	char *yy_cp;
2420     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2421 
2422     yy_cp = yyg->yy_c_buf_p;
2423 
2424 	/* undo effects of setting up yytext */
2425 	*yy_cp = yyg->yy_hold_char;
2426 
2427 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2428 		{ /* need to shift things up to make room */
2429 		/* +2 for EOB chars. */
2430 		int number_to_move = yyg->yy_n_chars + 2;
2431 		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2432 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2433 		char *source =
2434 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2435 
2436 		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2437 			*--dest = *--source;
2438 
2439 		yy_cp += (int) (dest - source);
2440 		yy_bp += (int) (dest - source);
2441 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2442 			yyg->yy_n_chars = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2443 
2444 		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2445 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
2446 		}
2447 
2448 	*--yy_cp = (char) c;
2449 
2450 	yyg->yytext_ptr = yy_bp;
2451 	yyg->yy_hold_char = *yy_cp;
2452 	yyg->yy_c_buf_p = yy_cp;
2453 }
2454 
2455 #endif
2456 
2457 #ifndef YY_NO_INPUT
2458 #ifdef __cplusplus
yyinput(yyscan_t yyscanner)2459     static int yyinput (yyscan_t yyscanner)
2460 #else
2461     static int input  (yyscan_t yyscanner)
2462 #endif
2463 
2464 {
2465 	int c;
2466     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2467 
2468 	*yyg->yy_c_buf_p = yyg->yy_hold_char;
2469 
2470 	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2471 		{
2472 		/* yy_c_buf_p now points to the character we want to return.
2473 		 * If this occurs *before* the EOB characters, then it's a
2474 		 * valid NUL; if not, then we've hit the end of the buffer.
2475 		 */
2476 		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2477 			/* This was really a NUL. */
2478 			*yyg->yy_c_buf_p = '\0';
2479 
2480 		else
2481 			{ /* need more input */
2482 			int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
2483 			++yyg->yy_c_buf_p;
2484 
2485 			switch ( yy_get_next_buffer( yyscanner ) )
2486 				{
2487 				case EOB_ACT_LAST_MATCH:
2488 					/* This happens because yy_g_n_b()
2489 					 * sees that we've accumulated a
2490 					 * token and flags that we need to
2491 					 * try matching the token before
2492 					 * proceeding.  But for input(),
2493 					 * there's no matching to consider.
2494 					 * So convert the EOB_ACT_LAST_MATCH
2495 					 * to EOB_ACT_END_OF_FILE.
2496 					 */
2497 
2498 					/* Reset buffer status. */
2499 					yyrestart( yyin , yyscanner);
2500 
2501 					/*FALLTHROUGH*/
2502 
2503 				case EOB_ACT_END_OF_FILE:
2504 					{
2505 					if ( yywrap( yyscanner ) )
2506 						return 0;
2507 
2508 					if ( ! yyg->yy_did_buffer_switch_on_eof )
2509 						YY_NEW_FILE;
2510 #ifdef __cplusplus
2511 					return yyinput(yyscanner);
2512 #else
2513 					return input(yyscanner);
2514 #endif
2515 					}
2516 
2517 				case EOB_ACT_CONTINUE_SCAN:
2518 					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2519 					break;
2520 				}
2521 			}
2522 		}
2523 
2524 	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
2525 	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
2526 	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2527 
2528 	return c;
2529 }
2530 #endif	/* ifndef YY_NO_INPUT */
2531 
2532 /** Immediately switch to a different input stream.
2533  * @param input_file A readable stream.
2534  * @param yyscanner The scanner object.
2535  * @note This function does not reset the start condition to @c INITIAL .
2536  */
yyrestart(FILE * input_file,yyscan_t yyscanner)2537     void yyrestart  (FILE * input_file , yyscan_t yyscanner)
2538 {
2539     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2540 
2541 	if ( ! YY_CURRENT_BUFFER ){
2542         yyensure_buffer_stack (yyscanner);
2543 		YY_CURRENT_BUFFER_LVALUE =
2544             yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
2545 	}
2546 
2547 	yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
2548 	yy_load_buffer_state( yyscanner );
2549 }
2550 
2551 /** Switch to a different input buffer.
2552  * @param new_buffer The new input buffer.
2553  * @param yyscanner The scanner object.
2554  */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)2555     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
2556 {
2557     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2558 
2559 	/* TODO. We should be able to replace this entire function body
2560 	 * with
2561 	 *		yypop_buffer_state();
2562 	 *		yypush_buffer_state(new_buffer);
2563      */
2564 	yyensure_buffer_stack (yyscanner);
2565 	if ( YY_CURRENT_BUFFER == new_buffer )
2566 		return;
2567 
2568 	if ( YY_CURRENT_BUFFER )
2569 		{
2570 		/* Flush out information for old buffer. */
2571 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
2572 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2573 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2574 		}
2575 
2576 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2577 	yy_load_buffer_state( yyscanner );
2578 
2579 	/* We don't actually know whether we did this switch during
2580 	 * EOF (yywrap()) processing, but the only time this flag
2581 	 * is looked at is after yywrap() is called, so it's safe
2582 	 * to go ahead and always set it.
2583 	 */
2584 	yyg->yy_did_buffer_switch_on_eof = 1;
2585 }
2586 
yy_load_buffer_state(yyscan_t yyscanner)2587 static void yy_load_buffer_state  (yyscan_t yyscanner)
2588 {
2589     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2590 	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2591 	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2592 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2593 	yyg->yy_hold_char = *yyg->yy_c_buf_p;
2594 }
2595 
2596 /** Allocate and initialize an input buffer state.
2597  * @param file A readable stream.
2598  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2599  * @param yyscanner The scanner object.
2600  * @return the allocated buffer state.
2601  */
yy_create_buffer(FILE * file,int size,yyscan_t yyscanner)2602     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
2603 {
2604 	YY_BUFFER_STATE b;
2605 
2606 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
2607 	if ( ! b )
2608 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2609 
2610 	b->yy_buf_size = size;
2611 
2612 	/* yy_ch_buf has to be 2 characters longer than the size given because
2613 	 * we need to put in 2 end-of-buffer characters.
2614 	 */
2615 	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
2616 	if ( ! b->yy_ch_buf )
2617 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2618 
2619 	b->yy_is_our_buffer = 1;
2620 
2621 	yy_init_buffer( b, file , yyscanner);
2622 
2623 	return b;
2624 }
2625 
2626 /** Destroy the buffer.
2627  * @param b a buffer created with yy_create_buffer()
2628  * @param yyscanner The scanner object.
2629  */
yy_delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)2630     void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
2631 {
2632     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2633 
2634 	if ( ! b )
2635 		return;
2636 
2637 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2638 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2639 
2640 	if ( b->yy_is_our_buffer )
2641 		yyfree( (void *) b->yy_ch_buf , yyscanner );
2642 
2643 	yyfree( (void *) b , yyscanner );
2644 }
2645 
2646 /* Initializes or reinitializes a buffer.
2647  * This function is sometimes called more than once on the same buffer,
2648  * such as during a yyrestart() or at EOF.
2649  */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)2650     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
2651 
2652 {
2653 	int oerrno = errno;
2654     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2655 
2656 	yy_flush_buffer( b , yyscanner);
2657 
2658 	b->yy_input_file = file;
2659 	b->yy_fill_buffer = 1;
2660 
2661     /* If b is the current buffer, then yy_init_buffer was _probably_
2662      * called from yyrestart() or through yy_get_next_buffer.
2663      * In that case, we don't want to reset the lineno or column.
2664      */
2665     if (b != YY_CURRENT_BUFFER){
2666         b->yy_bs_lineno = 1;
2667         b->yy_bs_column = 0;
2668     }
2669 
2670         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2671 
2672 	errno = oerrno;
2673 }
2674 
2675 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2676  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2677  * @param yyscanner The scanner object.
2678  */
yy_flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)2679     void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
2680 {
2681     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2682 	if ( ! b )
2683 		return;
2684 
2685 	b->yy_n_chars = 0;
2686 
2687 	/* We always need two end-of-buffer characters.  The first causes
2688 	 * a transition to the end-of-buffer state.  The second causes
2689 	 * a jam in that state.
2690 	 */
2691 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2692 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2693 
2694 	b->yy_buf_pos = &b->yy_ch_buf[0];
2695 
2696 	b->yy_at_bol = 1;
2697 	b->yy_buffer_status = YY_BUFFER_NEW;
2698 
2699 	if ( b == YY_CURRENT_BUFFER )
2700 		yy_load_buffer_state( yyscanner );
2701 }
2702 
2703 /** Pushes the new state onto the stack. The new state becomes
2704  *  the current state. This function will allocate the stack
2705  *  if necessary.
2706  *  @param new_buffer The new state.
2707  *  @param yyscanner The scanner object.
2708  */
yypush_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)2709 void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2710 {
2711     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2712 	if (new_buffer == NULL)
2713 		return;
2714 
2715 	yyensure_buffer_stack(yyscanner);
2716 
2717 	/* This block is copied from yy_switch_to_buffer. */
2718 	if ( YY_CURRENT_BUFFER )
2719 		{
2720 		/* Flush out information for old buffer. */
2721 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
2722 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2723 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2724 		}
2725 
2726 	/* Only push if top exists. Otherwise, replace top. */
2727 	if (YY_CURRENT_BUFFER)
2728 		yyg->yy_buffer_stack_top++;
2729 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2730 
2731 	/* copied from yy_switch_to_buffer. */
2732 	yy_load_buffer_state( yyscanner );
2733 	yyg->yy_did_buffer_switch_on_eof = 1;
2734 }
2735 
2736 /** Removes and deletes the top of the stack, if present.
2737  *  The next element becomes the new top.
2738  *  @param yyscanner The scanner object.
2739  */
yypop_buffer_state(yyscan_t yyscanner)2740 void yypop_buffer_state (yyscan_t yyscanner)
2741 {
2742     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2743 	if (!YY_CURRENT_BUFFER)
2744 		return;
2745 
2746 	yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
2747 	YY_CURRENT_BUFFER_LVALUE = NULL;
2748 	if (yyg->yy_buffer_stack_top > 0)
2749 		--yyg->yy_buffer_stack_top;
2750 
2751 	if (YY_CURRENT_BUFFER) {
2752 		yy_load_buffer_state( yyscanner );
2753 		yyg->yy_did_buffer_switch_on_eof = 1;
2754 	}
2755 }
2756 
2757 /* Allocates the stack if it does not exist.
2758  *  Guarantees space for at least one push.
2759  */
yyensure_buffer_stack(yyscan_t yyscanner)2760 static void yyensure_buffer_stack (yyscan_t yyscanner)
2761 {
2762 	yy_size_t num_to_alloc;
2763     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2764 
2765 	if (!yyg->yy_buffer_stack) {
2766 
2767 		/* First allocation is just for 2 elements, since we don't know if this
2768 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2769 		 * immediate realloc on the next call.
2770          */
2771       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2772 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
2773 								(num_to_alloc * sizeof(struct yy_buffer_state*)
2774 								, yyscanner);
2775 		if ( ! yyg->yy_buffer_stack )
2776 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2777 
2778 		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2779 
2780 		yyg->yy_buffer_stack_max = num_to_alloc;
2781 		yyg->yy_buffer_stack_top = 0;
2782 		return;
2783 	}
2784 
2785 	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2786 
2787 		/* Increase the buffer to prepare for a possible push. */
2788 		yy_size_t grow_size = 8 /* arbitrary grow size */;
2789 
2790 		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2791 		yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
2792 								(yyg->yy_buffer_stack,
2793 								num_to_alloc * sizeof(struct yy_buffer_state*)
2794 								, yyscanner);
2795 		if ( ! yyg->yy_buffer_stack )
2796 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2797 
2798 		/* zero only the new slots.*/
2799 		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2800 		yyg->yy_buffer_stack_max = num_to_alloc;
2801 	}
2802 }
2803 
2804 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2805  * @param base the character buffer
2806  * @param size the size in bytes of the character buffer
2807  * @param yyscanner The scanner object.
2808  * @return the newly allocated buffer state object.
2809  */
yy_scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)2810 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
2811 {
2812 	YY_BUFFER_STATE b;
2813 
2814 	if ( size < 2 ||
2815 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2816 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2817 		/* They forgot to leave room for the EOB's. */
2818 		return NULL;
2819 
2820 	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
2821 	if ( ! b )
2822 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2823 
2824 	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
2825 	b->yy_buf_pos = b->yy_ch_buf = base;
2826 	b->yy_is_our_buffer = 0;
2827 	b->yy_input_file = NULL;
2828 	b->yy_n_chars = b->yy_buf_size;
2829 	b->yy_is_interactive = 0;
2830 	b->yy_at_bol = 1;
2831 	b->yy_fill_buffer = 0;
2832 	b->yy_buffer_status = YY_BUFFER_NEW;
2833 
2834 	yy_switch_to_buffer( b , yyscanner );
2835 
2836 	return b;
2837 }
2838 
2839 /** Setup the input buffer state to scan a string. The next call to yylex() will
2840  * scan from a @e copy of @a str.
2841  * @param yystr a NUL-terminated string to scan
2842  * @param yyscanner The scanner object.
2843  * @return the newly allocated buffer state object.
2844  * @note If you want to scan bytes that may contain NUL values, then use
2845  *       yy_scan_bytes() instead.
2846  */
yy_scan_string(const char * yystr,yyscan_t yyscanner)2847 YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
2848 {
2849 
2850 	return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
2851 }
2852 
2853 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2854  * scan from a @e copy of @a bytes.
2855  * @param yybytes the byte buffer to scan
2856  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2857  * @param yyscanner The scanner object.
2858  * @return the newly allocated buffer state object.
2859  */
yy_scan_bytes(const char * yybytes,int _yybytes_len,yyscan_t yyscanner)2860 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
2861 {
2862 	YY_BUFFER_STATE b;
2863 	char *buf;
2864 	yy_size_t n;
2865 	int i;
2866 
2867 	/* Get memory for full buffer, including space for trailing EOB's. */
2868 	n = (yy_size_t) (_yybytes_len + 2);
2869 	buf = (char *) yyalloc( n , yyscanner );
2870 	if ( ! buf )
2871 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2872 
2873 	for ( i = 0; i < _yybytes_len; ++i )
2874 		buf[i] = yybytes[i];
2875 
2876 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2877 
2878 	b = yy_scan_buffer( buf, n , yyscanner);
2879 	if ( ! b )
2880 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2881 
2882 	/* It's okay to grow etc. this buffer, and we should throw it
2883 	 * away when we're done.
2884 	 */
2885 	b->yy_is_our_buffer = 1;
2886 
2887 	return b;
2888 }
2889 
yy_push_state(int _new_state,yyscan_t yyscanner)2890     static void yy_push_state (int  _new_state , yyscan_t yyscanner)
2891 {
2892     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2893 	if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
2894 		{
2895 		yy_size_t new_size;
2896 
2897 		yyg->yy_start_stack_depth += YY_START_STACK_INCR;
2898 		new_size = (yy_size_t) yyg->yy_start_stack_depth * sizeof( int );
2899 
2900 		if ( ! yyg->yy_start_stack )
2901 			yyg->yy_start_stack = (int *) yyalloc( new_size , yyscanner );
2902 
2903 		else
2904 			yyg->yy_start_stack = (int *) yyrealloc(
2905 					(void *) yyg->yy_start_stack, new_size , yyscanner );
2906 
2907 		if ( ! yyg->yy_start_stack )
2908 			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
2909 		}
2910 
2911 	yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
2912 
2913 	BEGIN(_new_state);
2914 }
2915 
yy_pop_state(yyscan_t yyscanner)2916     static void yy_pop_state  (yyscan_t yyscanner)
2917 {
2918     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2919 	if ( --yyg->yy_start_stack_ptr < 0 )
2920 		YY_FATAL_ERROR( "start-condition stack underflow" );
2921 
2922 	BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
2923 }
2924 
yy_top_state(yyscan_t yyscanner)2925     static int yy_top_state  (yyscan_t yyscanner)
2926 {
2927     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2928 	return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
2929 }
2930 
2931 #ifndef YY_EXIT_FAILURE
2932 #define YY_EXIT_FAILURE 2
2933 #endif
2934 
yy_fatal_error(const char * msg,yyscan_t yyscanner)2935 static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
2936 {
2937 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2938 	(void)yyg;
2939 	fprintf( stderr, "%s\n", msg );
2940 	exit( YY_EXIT_FAILURE );
2941 }
2942 
2943 /* Redefine yyless() so it works in section 3 code. */
2944 
2945 #undef yyless
2946 #define yyless(n) \
2947 	do \
2948 		{ \
2949 		/* Undo effects of setting up yytext. */ \
2950         int yyless_macro_arg = (n); \
2951         YY_LESS_LINENO(yyless_macro_arg);\
2952 		yytext[yyleng] = yyg->yy_hold_char; \
2953 		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2954 		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2955 		*yyg->yy_c_buf_p = '\0'; \
2956 		yyleng = yyless_macro_arg; \
2957 		} \
2958 	while ( 0 )
2959 
2960 /* Accessor  methods (get/set functions) to struct members. */
2961 
2962 /** Get the user-defined data for this scanner.
2963  * @param yyscanner The scanner object.
2964  */
yyget_extra(yyscan_t yyscanner)2965 YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
2966 {
2967     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2968     return yyextra;
2969 }
2970 
2971 /** Get the current line number.
2972  * @param yyscanner The scanner object.
2973  */
yyget_lineno(yyscan_t yyscanner)2974 int yyget_lineno  (yyscan_t yyscanner)
2975 {
2976     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2977 
2978         if (! YY_CURRENT_BUFFER)
2979             return 0;
2980 
2981     return yylineno;
2982 }
2983 
2984 /** Get the current column number.
2985  * @param yyscanner The scanner object.
2986  */
yyget_column(yyscan_t yyscanner)2987 int yyget_column  (yyscan_t yyscanner)
2988 {
2989     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2990 
2991         if (! YY_CURRENT_BUFFER)
2992             return 0;
2993 
2994     return yycolumn;
2995 }
2996 
2997 /** Get the input stream.
2998  * @param yyscanner The scanner object.
2999  */
yyget_in(yyscan_t yyscanner)3000 FILE *yyget_in  (yyscan_t yyscanner)
3001 {
3002     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3003     return yyin;
3004 }
3005 
3006 /** Get the output stream.
3007  * @param yyscanner The scanner object.
3008  */
yyget_out(yyscan_t yyscanner)3009 FILE *yyget_out  (yyscan_t yyscanner)
3010 {
3011     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3012     return yyout;
3013 }
3014 
3015 /** Get the length of the current token.
3016  * @param yyscanner The scanner object.
3017  */
yyget_leng(yyscan_t yyscanner)3018 int yyget_leng  (yyscan_t yyscanner)
3019 {
3020     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3021     return yyleng;
3022 }
3023 
3024 /** Get the current token.
3025  * @param yyscanner The scanner object.
3026  */
3027 
yyget_text(yyscan_t yyscanner)3028 char *yyget_text  (yyscan_t yyscanner)
3029 {
3030     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3031     return yytext;
3032 }
3033 
3034 /** Set the user-defined data. This data is never touched by the scanner.
3035  * @param user_defined The data to be associated with this scanner.
3036  * @param yyscanner The scanner object.
3037  */
yyset_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)3038 void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
3039 {
3040     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3041     yyextra = user_defined ;
3042 }
3043 
3044 /** Set the current line number.
3045  * @param _line_number line number
3046  * @param yyscanner The scanner object.
3047  */
yyset_lineno(int _line_number,yyscan_t yyscanner)3048 void yyset_lineno (int  _line_number , yyscan_t yyscanner)
3049 {
3050     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3051 
3052         /* lineno is only valid if an input buffer exists. */
3053         if (! YY_CURRENT_BUFFER )
3054            YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
3055 
3056     yylineno = _line_number;
3057 }
3058 
3059 /** Set the current column.
3060  * @param _column_no column number
3061  * @param yyscanner The scanner object.
3062  */
yyset_column(int _column_no,yyscan_t yyscanner)3063 void yyset_column (int  _column_no , yyscan_t yyscanner)
3064 {
3065     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3066 
3067         /* column is only valid if an input buffer exists. */
3068         if (! YY_CURRENT_BUFFER )
3069            YY_FATAL_ERROR( "yyset_column called with no buffer" );
3070 
3071     yycolumn = _column_no;
3072 }
3073 
3074 /** Set the input stream. This does not discard the current
3075  * input buffer.
3076  * @param _in_str A readable stream.
3077  * @param yyscanner The scanner object.
3078  * @see yy_switch_to_buffer
3079  */
yyset_in(FILE * _in_str,yyscan_t yyscanner)3080 void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
3081 {
3082     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3083     yyin = _in_str ;
3084 }
3085 
yyset_out(FILE * _out_str,yyscan_t yyscanner)3086 void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
3087 {
3088     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3089     yyout = _out_str ;
3090 }
3091 
yyget_debug(yyscan_t yyscanner)3092 int yyget_debug  (yyscan_t yyscanner)
3093 {
3094     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3095     return yy_flex_debug;
3096 }
3097 
yyset_debug(int _bdebug,yyscan_t yyscanner)3098 void yyset_debug (int  _bdebug , yyscan_t yyscanner)
3099 {
3100     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3101     yy_flex_debug = _bdebug ;
3102 }
3103 
3104 /* Accessor methods for yylval and yylloc */
3105 
yyget_lval(yyscan_t yyscanner)3106 YYSTYPE * yyget_lval  (yyscan_t yyscanner)
3107 {
3108     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3109     return yylval;
3110 }
3111 
yyset_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)3112 void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
3113 {
3114     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3115     yylval = yylval_param;
3116 }
3117 
yyget_lloc(yyscan_t yyscanner)3118 YYLTYPE *yyget_lloc  (yyscan_t yyscanner)
3119 {
3120     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3121     return yylloc;
3122 }
3123 
yyset_lloc(YYLTYPE * yylloc_param,yyscan_t yyscanner)3124 void yyset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
3125 {
3126     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3127     yylloc = yylloc_param;
3128 }
3129 
3130 /* User-visible API */
3131 
3132 /* yylex_init is special because it creates the scanner itself, so it is
3133  * the ONLY reentrant function that doesn't take the scanner as the last argument.
3134  * That's why we explicitly handle the declaration, instead of using our macros.
3135  */
yylex_init(yyscan_t * ptr_yy_globals)3136 int yylex_init(yyscan_t* ptr_yy_globals)
3137 {
3138     if (ptr_yy_globals == NULL){
3139         errno = EINVAL;
3140         return 1;
3141     }
3142 
3143     *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
3144 
3145     if (*ptr_yy_globals == NULL){
3146         errno = ENOMEM;
3147         return 1;
3148     }
3149 
3150     /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3151     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3152 
3153     return yy_init_globals ( *ptr_yy_globals );
3154 }
3155 
3156 /* yylex_init_extra has the same functionality as yylex_init, but follows the
3157  * convention of taking the scanner as the last argument. Note however, that
3158  * this is a *pointer* to a scanner, as it will be allocated by this call (and
3159  * is the reason, too, why this function also must handle its own declaration).
3160  * The user defined value in the first argument will be available to yyalloc in
3161  * the yyextra field.
3162  */
yylex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)3163 int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
3164 {
3165     struct yyguts_t dummy_yyguts;
3166 
3167     yyset_extra (yy_user_defined, &dummy_yyguts);
3168 
3169     if (ptr_yy_globals == NULL){
3170         errno = EINVAL;
3171         return 1;
3172     }
3173 
3174     *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
3175 
3176     if (*ptr_yy_globals == NULL){
3177         errno = ENOMEM;
3178         return 1;
3179     }
3180 
3181     /* By setting to 0xAA, we expose bugs in
3182     yy_init_globals. Leave at 0x00 for releases. */
3183     memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3184 
3185     yyset_extra (yy_user_defined, *ptr_yy_globals);
3186 
3187     return yy_init_globals ( *ptr_yy_globals );
3188 }
3189 
yy_init_globals(yyscan_t yyscanner)3190 static int yy_init_globals (yyscan_t yyscanner)
3191 {
3192     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3193     /* Initialization is the same as for the non-reentrant scanner.
3194      * This function is called from yylex_destroy(), so don't allocate here.
3195      */
3196 
3197     yyg->yy_buffer_stack = NULL;
3198     yyg->yy_buffer_stack_top = 0;
3199     yyg->yy_buffer_stack_max = 0;
3200     yyg->yy_c_buf_p = NULL;
3201     yyg->yy_init = 0;
3202     yyg->yy_start = 0;
3203 
3204     yyg->yy_start_stack_ptr = 0;
3205     yyg->yy_start_stack_depth = 0;
3206     yyg->yy_start_stack =  NULL;
3207 
3208 /* Defined in main.c */
3209 #ifdef YY_STDINIT
3210     yyin = stdin;
3211     yyout = stdout;
3212 #else
3213     yyin = NULL;
3214     yyout = NULL;
3215 #endif
3216 
3217     /* For future reference: Set errno on error, since we are called by
3218      * yylex_init()
3219      */
3220     return 0;
3221 }
3222 
3223 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(yyscan_t yyscanner)3224 int yylex_destroy  (yyscan_t yyscanner)
3225 {
3226     struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3227 
3228     /* Pop the buffer stack, destroying each element. */
3229 	while(YY_CURRENT_BUFFER){
3230 		yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
3231 		YY_CURRENT_BUFFER_LVALUE = NULL;
3232 		yypop_buffer_state(yyscanner);
3233 	}
3234 
3235 	/* Destroy the stack itself. */
3236 	yyfree(yyg->yy_buffer_stack , yyscanner);
3237 	yyg->yy_buffer_stack = NULL;
3238 
3239     /* Destroy the start condition stack. */
3240         yyfree( yyg->yy_start_stack , yyscanner );
3241         yyg->yy_start_stack = NULL;
3242 
3243     /* Reset the globals. This is important in a non-reentrant scanner so the next time
3244      * yylex() is called, initialization will occur. */
3245     yy_init_globals( yyscanner);
3246 
3247     /* Destroy the main struct (reentrant only). */
3248     yyfree ( yyscanner , yyscanner );
3249     yyscanner = NULL;
3250     return 0;
3251 }
3252 
3253 /*
3254  * Internal utility routines.
3255  */
3256 
3257 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,const char * s2,int n,yyscan_t yyscanner)3258 static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
3259 {
3260 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3261 	(void)yyg;
3262 
3263 	int i;
3264 	for ( i = 0; i < n; ++i )
3265 		s1[i] = s2[i];
3266 }
3267 #endif
3268 
3269 #ifdef YY_NEED_STRLEN
yy_flex_strlen(const char * s,yyscan_t yyscanner)3270 static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
3271 {
3272 	int n;
3273 	for ( n = 0; s[n]; ++n )
3274 		;
3275 
3276 	return n;
3277 }
3278 #endif
3279 
yyalloc(yy_size_t size,yyscan_t yyscanner)3280 void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
3281 {
3282 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3283 	(void)yyg;
3284 	return malloc(size);
3285 }
3286 
yyrealloc(void * ptr,yy_size_t size,yyscan_t yyscanner)3287 void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
3288 {
3289 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3290 	(void)yyg;
3291 
3292 	/* The cast to (char *) in the following accommodates both
3293 	 * implementations that use char* generic pointers, and those
3294 	 * that use void* generic pointers.  It works with the latter
3295 	 * because both ANSI C and C++ allow castless assignment from
3296 	 * any pointer type to void*, and deal with argument conversions
3297 	 * as though doing an assignment.
3298 	 */
3299 	return realloc(ptr, size);
3300 }
3301 
yyfree(void * ptr,yyscan_t yyscanner)3302 void yyfree (void * ptr , yyscan_t yyscanner)
3303 {
3304 	struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3305 	(void)yyg;
3306 	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
3307 }
3308 
3309 #define YYTABLES_NAME "yytables"
3310 
3311 #line 419 "scanner.l"
3312 
3313 
3314 namespace LinuxSampler {
3315 
createScanner(std::istream * is)3316 void ParserContext::createScanner(std::istream* is) {
3317    if (scanner) destroyScanner();
3318    this->is = is;
3319    yylex_init(&scanner);
3320    yyset_extra(this, scanner);
3321 }
3322 
destroyScanner()3323 void ParserContext::destroyScanner() {
3324    if (!scanner) return;
3325    yylex_destroy(scanner);
3326    scanner = NULL;
3327 }
3328 
3329 } // namespace LinuxSampler
3330 
3331