5 #define YY_INT_ALIGNED short int
7 /* A lexical scanner generated by flex */
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
12 #define YY_FLEX_SUBMINOR_VERSION 31
13 #if YY_FLEX_SUBMINOR_VERSION > 0
17 /* First, we deal with platform-specific or compiler-specific issues. */
19 /* begin standard C headers. */
25 /* end standard C headers. */
27 /* flex integer type definitions */
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
34 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
36 typedef int8_t flex_int8_t;
37 typedef uint8_t flex_uint8_t;
38 typedef int16_t flex_int16_t;
39 typedef uint16_t flex_uint16_t;
40 typedef int32_t flex_int32_t;
41 typedef uint32_t flex_uint32_t;
43 typedef signed char flex_int8_t;
44 typedef short int flex_int16_t;
45 typedef int flex_int32_t;
46 typedef unsigned char flex_uint8_t;
47 typedef unsigned short int flex_uint16_t;
48 typedef unsigned int flex_uint32_t;
51 /* Limits of integral types. */
53 #define INT8_MIN (-128)
56 #define INT16_MIN (-32767-1)
59 #define INT32_MIN (-2147483647-1)
62 #define INT8_MAX (127)
65 #define INT16_MAX (32767)
68 #define INT32_MAX (2147483647)
71 #define UINT8_MAX (255U)
74 #define UINT16_MAX (65535U)
77 #define UINT32_MAX (4294967295U)
80 #endif /* ! FLEXINT_H */
84 /* The "const" storage-class-modifier is valid. */
87 #else /* ! __cplusplus */
94 #endif /* ! __cplusplus */
102 /* Returned upon end-of-file. */
105 /* Promotes a possibly negative, possibly signed char to an unsigned
106 * integer for use as an array index. If the signed char is negative,
107 * we want to instead treat it as an 8-bit unsigned char, hence the
110 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
112 /* An opaque pointer. */
113 #ifndef YY_TYPEDEF_YY_SCANNER_T
114 #define YY_TYPEDEF_YY_SCANNER_T
115 typedef void* yyscan_t;
118 /* For convenience, these vars (plus the bison vars far below)
119 are macros in the reentrant scanner. */
120 #define yyin yyg->yyin_r
121 #define yyout yyg->yyout_r
122 #define yyextra yyg->yyextra_r
123 #define yyleng yyg->yyleng_r
124 #define yytext yyg->yytext_r
125 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
126 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
127 #define yy_flex_debug yyg->yy_flex_debug_r
129 int ast_yylex_init (yyscan_t* scanner);
131 /* Enter a start condition. This macro really ought to take a parameter,
132 * but we do it the disgusting crufty way forced on us by the ()-less
133 * definition of BEGIN.
135 #define BEGIN yyg->yy_start = 1 + 2 *
137 /* Translate the current start state into a value that can be later handed
138 * to BEGIN to return to the state. The YYSTATE alias is for lex
141 #define YY_START ((yyg->yy_start - 1) / 2)
142 #define YYSTATE YY_START
144 /* Action number for EOF rule of a given start state. */
145 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
147 /* Special action meaning "start processing a new file". */
148 #define YY_NEW_FILE ast_yyrestart(yyin ,yyscanner )
150 #define YY_END_OF_BUFFER_CHAR 0
152 /* Size of default input buffer. */
154 #define YY_BUF_SIZE 16384
157 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
158 #define YY_TYPEDEF_YY_BUFFER_STATE
159 typedef struct yy_buffer_state *YY_BUFFER_STATE;
162 #define EOB_ACT_CONTINUE_SCAN 0
163 #define EOB_ACT_END_OF_FILE 1
164 #define EOB_ACT_LAST_MATCH 2
166 #define YY_LESS_LINENO(n)
168 /* Return all but the first "n" matched characters back to the input stream. */
172 /* Undo effects of setting up yytext. */ \
173 int yyless_macro_arg = (n); \
174 YY_LESS_LINENO(yyless_macro_arg);\
175 *yy_cp = yyg->yy_hold_char; \
176 YY_RESTORE_YY_MORE_OFFSET \
177 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
178 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
182 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
184 /* The following is because we cannot portably get our hands on size_t
185 * (without autoconf's help, which isn't available because we want
186 * flex-generated scanners to compile on their own).
189 #ifndef YY_TYPEDEF_YY_SIZE_T
190 #define YY_TYPEDEF_YY_SIZE_T
191 typedef unsigned int yy_size_t;
194 #ifndef YY_STRUCT_YY_BUFFER_STATE
195 #define YY_STRUCT_YY_BUFFER_STATE
196 struct yy_buffer_state
200 char *yy_ch_buf; /* input buffer */
201 char *yy_buf_pos; /* current position in input buffer */
203 /* Size of input buffer in bytes, not including room for EOB
206 yy_size_t yy_buf_size;
208 /* Number of characters read into yy_ch_buf, not including EOB
213 /* Whether we "own" the buffer - i.e., we know we created it,
214 * and can realloc() it to grow it, and should free() it to
217 int yy_is_our_buffer;
219 /* Whether this is an "interactive" input source; if so, and
220 * if we're using stdio for input, then we want to use getc()
221 * instead of fread(), to make sure we stop fetching input after
224 int yy_is_interactive;
226 /* Whether we're considered to be at the beginning of a line.
227 * If so, '^' rules will be active on the next match, otherwise
232 int yy_bs_lineno; /**< The line count. */
233 int yy_bs_column; /**< The column count. */
235 /* Whether to try to fill the input buffer when we reach the
240 int yy_buffer_status;
242 #define YY_BUFFER_NEW 0
243 #define YY_BUFFER_NORMAL 1
244 /* When an EOF's been seen but there's still some text to process
245 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
246 * shouldn't try reading from the input source any more. We might
247 * still have a bunch of tokens to match, though, because of
248 * possible backing-up.
250 * When we actually see the EOF, we change the status to "new"
251 * (via ast_yyrestart()), so that the user can continue scanning by
252 * just pointing yyin at a new input file.
254 #define YY_BUFFER_EOF_PENDING 2
257 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
259 /* We provide macros for accessing buffer states in case in the
260 * future we want to put the buffer states in a more general
263 * Returns the top of the stack, or NULL.
265 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
266 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
269 /* Same as previous macro, but useful when we know that the buffer stack is not
270 * NULL or when we need an lvalue. For internal use only.
272 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
274 void ast_yyrestart (FILE *input_file ,yyscan_t yyscanner );
275 void ast_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
276 YY_BUFFER_STATE ast_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
277 void ast_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
278 void ast_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
279 void ast_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
280 void ast_yypop_buffer_state (yyscan_t yyscanner );
282 static void ast_yyensure_buffer_stack (yyscan_t yyscanner );
283 static void ast_yy_load_buffer_state (yyscan_t yyscanner );
284 static void ast_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
286 #define YY_FLUSH_BUFFER ast_yy_flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
288 YY_BUFFER_STATE ast_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
289 YY_BUFFER_STATE ast_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
290 YY_BUFFER_STATE ast_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
292 void *ast_yyalloc (yy_size_t ,yyscan_t yyscanner );
293 void *ast_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
294 void ast_yyfree (void * ,yyscan_t yyscanner );
296 #define yy_new_buffer ast_yy_create_buffer
298 #define yy_set_interactive(is_interactive) \
300 if ( ! YY_CURRENT_BUFFER ){ \
301 ast_yyensure_buffer_stack (yyscanner); \
302 YY_CURRENT_BUFFER_LVALUE = \
303 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
305 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
308 #define yy_set_bol(at_bol) \
310 if ( ! YY_CURRENT_BUFFER ){\
311 ast_yyensure_buffer_stack (yyscanner); \
312 YY_CURRENT_BUFFER_LVALUE = \
313 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
315 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
318 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
320 /* Begin user sect3 */
322 #define ast_yywrap(n) 1
323 #define YY_SKIP_YYWRAP
325 typedef char YY_CHAR;
327 typedef int yy_state_type;
329 #define yytext_ptr yytext_r
330 static yyconst flex_int16_t yy_nxt[][128] =
333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
336 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
337 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
342 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
344 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
346 0, 0, 0, 0, 0, 0, 0, 0
350 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,
351 10, 8, 8, 9, 8, 8, 8, 8, 8, 8,
352 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
353 8, 8, 9, 11, 12, 13, 14, 15, 16, 13,
354 17, 18, 19, 20, 21, 22, 13, 23, 24, 24,
355 24, 24, 24, 24, 24, 24, 24, 24, 25, 13,
356 26, 27, 28, 29, 13, 13, 13, 13, 13, 13,
358 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
359 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
360 13, 8, 13, 8, 13, 13, 8, 13, 13, 13,
361 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
362 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
363 13, 13, 13, 8, 30, 8, 8, 8
367 7, 8, 8, 8, 8, 8, 8, 8, 8, 9,
368 10, 8, 8, 9, 8, 8, 8, 8, 8, 8,
369 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
370 8, 8, 9, 11, 12, 13, 14, 15, 16, 13,
372 17, 18, 19, 20, 21, 22, 13, 23, 24, 24,
373 24, 24, 24, 24, 24, 24, 24, 24, 25, 13,
374 26, 27, 28, 29, 13, 13, 13, 13, 13, 13,
375 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
376 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
377 13, 8, 13, 8, 13, 13, 8, 13, 13, 13,
378 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
379 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
380 13, 13, 13, 8, 30, 8, 8, 8
384 7, 31, 31, 31, 31, 31, 31, 31, 31, 31,
386 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
387 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
388 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
389 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
390 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
391 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
392 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
393 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
394 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
395 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
397 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
398 31, 31, 31, 32, 31, 33, 31, 31
402 7, 31, 31, 31, 31, 31, 31, 31, 31, 31,
403 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
404 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
405 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
406 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
407 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
408 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
409 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
411 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
412 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
413 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
414 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
415 31, 31, 31, 32, 31, 33, 31, 31
419 7, 34, 34, 34, 34, 34, 34, 34, 34, 35,
420 35, 34, 34, 35, 34, 34, 34, 34, 34, 34,
421 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
422 34, 34, 35, 35, 34, 34, 36, 35, 35, 34,
423 35, 35, 35, 35, 34, 35, 34, 35, 34, 34,
425 34, 34, 34, 34, 34, 34, 34, 34, 35, 34,
426 35, 35, 35, 35, 34, 34, 34, 34, 34, 34,
427 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
428 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
429 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
430 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
431 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
432 34, 34, 34, 34, 35, 34, 34, 34
436 7, 34, 34, 34, 34, 34, 34, 34, 34, 35,
437 35, 34, 34, 35, 34, 34, 34, 34, 34, 34,
439 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
440 34, 34, 35, 35, 34, 34, 36, 35, 35, 34,
441 35, 35, 35, 35, 34, 35, 34, 35, 34, 34,
442 34, 34, 34, 34, 34, 34, 34, 34, 35, 34,
443 35, 35, 35, 35, 34, 34, 34, 34, 34, 34,
444 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
445 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
446 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
447 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
448 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
450 34, 34, 34, 34, 35, 34, 34, 34
454 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
455 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
456 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
457 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
458 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
459 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
460 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
461 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
462 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
464 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
465 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
466 -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
467 -7, -7, -7, -7, -7, -7, -7, -7
471 7, -8, -8, -8, -8, -8, -8, -8, -8, -8,
472 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
473 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
474 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
475 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
476 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
478 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
479 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
480 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
481 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
482 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
483 -8, -8, -8, -8, -8, -8, -8, -8, -8, -8,
484 -8, -8, -8, -8, -8, -8, -8, -8
488 7, -9, -9, -9, -9, -9, -9, -9, -9, -9,
489 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
490 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
492 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
493 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
494 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
495 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
496 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
497 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
498 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
499 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
500 -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
501 -9, -9, -9, -9, -9, -9, -9, -9
506 7, -10, -10, -10, -10, -10, -10, -10, -10, -10,
507 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
508 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
509 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
510 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
511 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
512 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
513 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
514 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
515 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
517 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
518 -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
519 -10, -10, -10, -10, -10, -10, -10, -10
523 7, -11, -11, -11, -11, -11, -11, -11, -11, -11,
524 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
525 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
526 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
527 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
528 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
529 -11, 37, -11, -11, -11, -11, -11, -11, -11, -11,
531 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
532 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
533 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
534 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
535 -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
536 -11, -11, -11, -11, -11, -11, -11, -11
540 7, 38, 38, 38, 38, 38, 38, 38, 38, 38,
541 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
542 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
543 38, 38, 38, 38, 39, 38, 38, 38, 38, 38,
545 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
546 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
547 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
548 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
549 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
550 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
551 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
552 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
553 38, 38, 38, 38, 38, 38, 38, 38
557 7, -13, -13, -13, -13, -13, -13, -13, -13, -13,
559 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
560 -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
561 -13, -13, -13, -13, -13, 40, 40, -13, -13, 40,
562 -13, -13, -13, -13, -13, -13, 40, -13, 40, 40,
563 40, 40, 40, 40, 40, 40, 40, 40, -13, 40,
564 -13, -13, -13, -13, 40, 40, 40, 40, 40, 40,
565 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
566 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
567 40, -13, 40, -13, 40, 40, -13, 40, 40, 40,
568 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
570 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
571 40, 40, 40, -13, -13, -13, -13, -13
575 7, -14, -14, -14, -14, -14, -14, -14, -14, -14,
576 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
577 -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
578 -14, -14, -14, -14, -14, 40, 40, -14, -14, 40,
579 -14, -14, -14, -14, -14, -14, 40, -14, 40, 40,
580 40, 40, 40, 40, 40, 40, 40, 40, -14, 40,
581 -14, -14, -14, -14, 40, 40, 40, 40, 40, 40,
582 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
584 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
585 40, -14, 40, -14, 40, 40, -14, 40, 40, 40,
586 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
587 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
588 40, 40, 40, 41, -14, -14, -14, -14
592 7, -15, -15, -15, -15, -15, -15, -15, -15, -15,
593 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
594 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
595 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
596 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
598 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
599 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
600 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
601 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
602 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
603 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
604 -15, -15, -15, -15, -15, -15, -15, -15, -15, -15,
605 -15, -15, -15, -15, -15, -15, -15, -15
609 7, -16, -16, -16, -16, -16, -16, -16, -16, -16,
610 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
612 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
613 -16, -16, -16, -16, -16, -16, -16, -16, 42, -16,
614 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
615 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
616 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
617 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
618 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
619 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
620 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
621 -16, -16, -16, -16, -16, -16, -16, -16, -16, -16,
623 -16, -16, -16, -16, -16, -16, -16, -16
627 7, -17, -17, -17, -17, -17, -17, -17, -17, -17,
628 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
629 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
630 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
631 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
632 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
633 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
634 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
635 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
637 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
638 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
639 -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
640 -17, -17, -17, -17, -17, -17, -17, -17
644 7, -18, -18, -18, -18, -18, -18, -18, -18, -18,
645 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
646 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
647 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
648 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
649 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
651 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
652 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
653 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
654 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
655 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
656 -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
657 -18, -18, -18, -18, -18, -18, -18, -18
661 7, -19, -19, -19, -19, -19, -19, -19, -19, -19,
662 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
663 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
665 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
666 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
667 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
668 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
669 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
670 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
671 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
672 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
673 -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
674 -19, -19, -19, -19, -19, -19, -19, -19
679 7, -20, -20, -20, -20, -20, -20, -20, -20, -20,
680 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
681 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
682 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
683 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
684 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
685 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
686 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
687 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
688 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
690 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
691 -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
692 -20, -20, -20, -20, -20, -20, -20, -20
696 7, -21, -21, -21, -21, -21, -21, -21, -21, -21,
697 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
698 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
699 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
700 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
701 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
702 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
704 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
705 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
706 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
707 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
708 -21, -21, -21, -21, -21, -21, -21, -21, -21, -21,
709 -21, -21, -21, -21, -21, -21, -21, -21
713 7, -22, -22, -22, -22, -22, -22, -22, -22, -22,
714 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
715 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
716 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
718 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
719 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
720 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
721 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
722 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
723 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
724 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
725 -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
726 -22, -22, -22, -22, -22, -22, -22, -22
730 7, -23, -23, -23, -23, -23, -23, -23, -23, -23,
732 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
733 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
734 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
735 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
736 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
737 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
738 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
739 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
740 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
741 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
743 -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
744 -23, -23, -23, -23, -23, -23, -23, -23
748 7, -24, -24, -24, -24, -24, -24, -24, -24, -24,
749 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
750 -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
751 -24, -24, -24, -24, -24, 40, 40, -24, -24, 40,
752 -24, -24, -24, -24, -24, -24, 43, -24, 44, 44,
753 44, 44, 44, 44, 44, 44, 44, 44, -24, 40,
754 -24, -24, -24, -24, 40, 40, 40, 40, 40, 40,
755 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
757 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
758 40, -24, 40, -24, 40, 40, -24, 40, 40, 40,
759 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
760 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
761 40, 40, 40, -24, -24, -24, -24, -24
765 7, -25, -25, -25, -25, -25, -25, -25, -25, -25,
766 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
767 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
768 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
769 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
771 -25, -25, -25, -25, -25, -25, -25, -25, 45, -25,
772 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
773 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
774 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
775 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
776 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
777 -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
778 -25, -25, -25, -25, -25, -25, -25, -25
782 7, -26, -26, -26, -26, -26, -26, -26, -26, -26,
783 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
785 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
786 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
787 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
788 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
789 -26, 46, -26, -26, -26, -26, -26, -26, -26, -26,
790 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
791 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
792 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
793 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
794 -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
796 -26, -26, -26, -26, -26, -26, -26, -26
800 7, -27, -27, -27, -27, -27, -27, -27, -27, -27,
801 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
802 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
803 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
804 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
805 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
806 -27, 47, -27, -27, -27, -27, -27, -27, -27, -27,
807 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
808 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
810 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
811 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
812 -27, -27, -27, -27, -27, -27, -27, -27, -27, -27,
813 -27, -27, -27, -27, -27, -27, 48, -27
817 7, -28, -28, -28, -28, -28, -28, -28, -28, -28,
818 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
819 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
820 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
821 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
822 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
824 -28, 49, -28, -28, -28, -28, -28, -28, -28, -28,
825 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
826 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
827 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
828 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
829 -28, -28, -28, -28, -28, -28, -28, -28, -28, -28,
830 -28, -28, -28, -28, -28, -28, -28, -28
834 7, -29, -29, -29, -29, -29, -29, -29, -29, -29,
835 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
836 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
838 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
839 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
840 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
841 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
842 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
843 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
844 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
845 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
846 -29, -29, -29, -29, -29, -29, -29, -29, -29, -29,
847 -29, -29, -29, -29, -29, -29, -29, -29
852 7, -30, -30, -30, -30, -30, -30, -30, -30, -30,
853 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
854 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
855 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
856 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
857 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
858 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
859 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
860 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
861 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
863 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
864 -30, -30, -30, -30, -30, -30, -30, -30, -30, -30,
865 -30, -30, -30, -30, 50, -30, -30, -30
869 7, 51, 51, 51, 51, 51, 51, 51, 51, 51,
870 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
871 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
872 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
873 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
874 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
875 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
877 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
878 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
879 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
880 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
881 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
882 51, 51, 51, 52, 51, 53, 51, 51
886 7, -32, -32, -32, -32, -32, -32, -32, -32, -32,
887 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
888 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
889 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
891 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
892 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
893 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
894 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
895 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
896 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
897 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
898 -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
899 -32, -32, -32, -32, -32, -32, -32, -32
903 7, -33, -33, -33, -33, -33, -33, -33, -33, -33,
905 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
906 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
907 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
908 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
909 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
910 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
911 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
912 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
913 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
914 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
916 -33, -33, -33, -33, -33, -33, -33, -33, -33, -33,
917 -33, -33, -33, -33, -33, -33, -33, -33
921 7, 54, 54, 54, 54, 54, 54, 54, 54, -34,
922 -34, 54, 54, -34, 54, 54, 54, 54, 54, 54,
923 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
924 54, 54, -34, -34, 54, 54, -34, -34, -34, 54,
925 -34, -34, -34, -34, 54, -34, 54, -34, 54, 54,
926 54, 54, 54, 54, 54, 54, 54, 54, -34, 54,
927 -34, -34, -34, -34, 54, 54, 54, 54, 54, 54,
928 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
930 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
931 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
932 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
933 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
934 54, 54, 54, 54, -34, 54, 54, 54
938 7, -35, -35, -35, -35, -35, -35, -35, -35, -35,
939 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
940 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
941 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
942 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
944 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
945 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
946 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
947 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
948 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
949 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
950 -35, -35, -35, -35, -35, -35, -35, -35, -35, -35,
951 -35, -35, -35, -35, -35, -35, -35, -35
955 7, -36, -36, -36, -36, -36, -36, -36, -36, -36,
956 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
958 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
959 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
960 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
961 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
962 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
963 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
964 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
965 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
966 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
967 -36, -36, -36, -36, -36, -36, -36, -36, -36, -36,
969 -36, -36, -36, 55, -36, -36, -36, -36
973 7, -37, -37, -37, -37, -37, -37, -37, -37, -37,
974 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
975 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
976 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
977 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
978 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
979 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
980 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
981 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
983 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
984 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
985 -37, -37, -37, -37, -37, -37, -37, -37, -37, -37,
986 -37, -37, -37, -37, -37, -37, -37, -37
990 7, 38, 38, 38, 38, 38, 38, 38, 38, 38,
991 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
992 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
993 38, 38, 38, 38, 39, 38, 38, 38, 38, 38,
994 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
995 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
997 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
998 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
999 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
1000 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
1001 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
1002 38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
1003 38, 38, 38, 38, 38, 38, 38, 38
1007 7, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1008 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1009 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1011 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1012 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1013 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1014 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1015 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1016 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1017 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1018 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1019 -39, -39, -39, -39, -39, -39, -39, -39, -39, -39,
1020 -39, -39, -39, -39, -39, -39, -39, -39
1025 7, -40, -40, -40, -40, -40, -40, -40, -40, -40,
1026 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
1027 -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
1028 -40, -40, -40, -40, -40, 40, 40, -40, -40, 40,
1029 -40, -40, -40, -40, -40, -40, 40, -40, 40, 40,
1030 40, 40, 40, 40, 40, 40, 40, 40, -40, 40,
1031 -40, -40, -40, -40, 40, 40, 40, 40, 40, 40,
1032 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1033 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1034 40, -40, 40, -40, 40, 40, -40, 40, 40, 40,
1036 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1037 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1038 40, 40, 40, -40, -40, -40, -40, -40
1042 7, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1043 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1044 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1045 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1046 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1047 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1048 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1050 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1051 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1052 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1053 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1054 -41, -41, -41, -41, -41, -41, -41, -41, -41, -41,
1055 -41, -41, -41, -41, -41, -41, -41, -41
1059 7, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1060 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1061 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1062 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1064 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1065 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1066 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1067 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1068 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1069 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1070 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1071 -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
1072 -42, -42, -42, -42, -42, -42, -42, -42
1076 7, -43, -43, -43, -43, -43, -43, -43, -43, -43,
1078 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
1079 -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
1080 -43, -43, -43, -43, -43, 40, 40, -43, -43, 40,
1081 -43, -43, -43, -43, -43, -43, 40, -43, 56, 56,
1082 56, 56, 56, 56, 56, 56, 56, 56, -43, 40,
1083 -43, -43, -43, -43, 40, 40, 40, 40, 40, 40,
1084 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1085 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1086 40, -43, 40, -43, 40, 40, -43, 40, 40, 40,
1087 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1089 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1090 40, 40, 40, -43, -43, -43, -43, -43
1094 7, -44, -44, -44, -44, -44, -44, -44, -44, -44,
1095 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
1096 -44, -44, -44, -44, -44, -44, -44, -44, -44, -44,
1097 -44, -44, -44, -44, -44, 40, 40, -44, -44, 40,
1098 -44, -44, -44, -44, -44, -44, 43, -44, 44, 44,
1099 44, 44, 44, 44, 44, 44, 44, 44, -44, 40,
1100 -44, -44, -44, -44, 40, 40, 40, 40, 40, 40,
1101 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1103 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1104 40, -44, 40, -44, 40, 40, -44, 40, 40, 40,
1105 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1106 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1107 40, 40, 40, -44, -44, -44, -44, -44
1111 7, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1112 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1113 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1114 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1115 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1117 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1118 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1119 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1120 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1121 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1122 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1123 -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
1124 -45, -45, -45, -45, -45, -45, -45, -45
1128 7, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1129 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1131 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1132 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1133 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1134 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1135 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1136 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1137 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1138 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1139 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1140 -46, -46, -46, -46, -46, -46, -46, -46, -46, -46,
1142 -46, -46, -46, -46, -46, -46, -46, -46
1146 7, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1147 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1148 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1149 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1150 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1151 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1152 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1153 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1154 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1156 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1157 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1158 -47, -47, -47, -47, -47, -47, -47, -47, -47, -47,
1159 -47, -47, -47, -47, -47, -47, -47, -47
1163 7, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1164 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1165 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1166 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1167 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1168 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1170 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1171 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1172 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1173 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1174 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1175 -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
1176 -48, -48, -48, -48, -48, -48, -48, -48
1180 7, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1181 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1182 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1184 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1185 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1186 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1187 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1188 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1189 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1190 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1191 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1192 -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
1193 -49, -49, -49, -49, -49, -49, -49, -49
1198 7, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1199 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1200 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1201 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1202 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1203 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1204 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1205 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1206 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1207 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1209 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1210 -50, -50, -50, -50, -50, -50, -50, -50, -50, -50,
1211 -50, -50, -50, -50, -50, -50, -50, -50
1215 7, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1216 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1217 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1218 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1219 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1220 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1221 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1223 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1224 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1225 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1226 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1227 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1228 51, 51, 51, 52, 51, 53, 51, 51
1232 7, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1233 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1234 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1235 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1237 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1238 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1239 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1240 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1241 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1242 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1243 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1244 -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
1245 -52, -52, -52, -52, -52, -52, -52, -52
1249 7, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1251 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1252 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1253 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1254 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1255 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1256 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1257 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1258 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1259 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1260 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1262 -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
1263 -53, -53, -53, -53, -53, -53, -53, -53
1267 7, 54, 54, 54, 54, 54, 54, 54, 54, -54,
1268 -54, 54, 54, -54, 54, 54, 54, 54, 54, 54,
1269 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
1270 54, 54, -54, -54, 54, 54, -54, -54, -54, 54,
1271 -54, -54, -54, -54, 54, -54, 54, -54, 54, 54,
1272 54, 54, 54, 54, 54, 54, 54, 54, -54, 54,
1273 -54, -54, -54, -54, 54, 54, 54, 54, 54, 54,
1274 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
1276 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
1277 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
1278 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
1279 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
1280 54, 54, 54, 54, -54, 54, 54, 54
1284 7, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1285 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1286 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1287 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1288 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1290 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1291 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1292 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1293 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1294 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1295 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1296 -55, -55, -55, -55, -55, -55, -55, -55, -55, -55,
1297 -55, -55, -55, -55, -55, -55, -55, -55
1301 7, -56, -56, -56, -56, -56, -56, -56, -56, -56,
1302 -56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
1304 -56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
1305 -56, -56, -56, -56, -56, 40, 40, -56, -56, 40,
1306 -56, -56, -56, -56, -56, -56, 40, -56, 56, 56,
1307 56, 56, 56, 56, 56, 56, 56, 56, -56, 40,
1308 -56, -56, -56, -56, 40, 40, 40, 40, 40, 40,
1309 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1310 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1311 40, -56, 40, -56, 40, 40, -56, 40, 40, 40,
1312 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1313 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1315 40, 40, 40, -56, -56, -56, -56, -56
1320 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
1321 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
1322 static int yy_get_next_buffer (yyscan_t yyscanner );
1323 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
1325 /* Done after the current pattern has been matched and before the
1326 * corresponding action - sets up yytext.
1328 #define YY_DO_BEFORE_ACTION \
1329 yyg->yytext_ptr = yy_bp; \
1330 yyg->yytext_ptr -= yyg->yy_more_len; \
1331 yyleng = (size_t) (yy_cp - yyg->yytext_ptr); \
1332 yyg->yy_hold_char = *yy_cp; \
1334 yyg->yy_c_buf_p = yy_cp;
1336 #define YY_NUM_RULES 36
1337 #define YY_END_OF_BUFFER 37
1338 /* This struct is not used in this scanner,
1339 but its presence is necessary. */
1340 struct yy_trans_info
1342 flex_int32_t yy_verify;
1343 flex_int32_t yy_nxt;
1345 static yyconst flex_int16_t yy_accept[57] =
1347 0, 0, 0, 0, 33, 33, 37, 36, 26, 28,
1348 20, 36, 30, 30, 18, 2, 23, 24, 16, 13,
1349 14, 15, 17, 29, 21, 9, 3, 8, 19, 1,
1350 36, 32, 31, 33, 34, 34, 12, 0, 27, 30,
1351 25, 5, 30, 29, 22, 11, 6, 7, 10, 4,
1352 0, 32, 31, 33, 35, 29
1355 static yyconst yy_state_type yy_NUL_trans[57] =
1357 8, 8, 31, 31, 34, 34, 0, 0, 0, 0,
1358 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
1359 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1360 51, 0, 0, 54, 0, 0, 0, 38, 0, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1365 /* The intent behind this definition is that it'll catch
1366 * any uses of REJECT which flex missed.
1368 #define REJECT reject_used_but_not_detected
1369 #define yymore() (yyg->yy_more_flag = 1)
1370 #define YY_MORE_ADJ yyg->yy_more_len
1371 #define YY_RESTORE_YY_MORE_OFFSET
1372 #line 1 "ast_expr2.fl"
1373 #line 2 "ast_expr2.fl"
1375 * Asterisk -- An open source telephony toolkit.
1377 * Copyright (C) 1999 - 2006, Digium, Inc.
1379 * Mark Spencer <markster@digium.com>
1381 * See http://www.asterisk.org for more information about
1382 * the Asterisk project. Please do not directly contact
1383 * any of the maintainers of this project for assistance;
1384 * the project provides a web site, mailing lists and IRC
1385 * channels for your use.
1387 * This program is free software, distributed under the terms of
1388 * the GNU General Public License Version 2. See the LICENSE file
1389 * at the top of the source tree.
1394 * \brief Dialplan Expression Lexical Scanner
1397 #include "asterisk.h"
1399 #include <sys/types.h>
1403 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
1405 #ifndef __USE_ISOC99
1406 #define __USE_ISOC99 1
1411 #define FP___PRINTF "%.18Lg"
1412 #define FP___FMOD fmodl
1413 #define FP___STRTOD strtold
1414 #define FP___TYPE long double
1416 #define FP___PRINTF "%.16g"
1417 #define FP___FMOD fmod
1418 #define FP___STRTOD strtod
1419 #define FP___TYPE double
1426 #if !defined(SOLARIS) && !defined(__CYGWIN__)
1427 /* #include <err.h> */
1429 #define quad_t int64_t
1435 #include "asterisk/ast_expr.h"
1436 #include "asterisk/logger.h"
1438 #include "asterisk/strings.h"
1439 #include "asterisk/channel.h"
1443 AST_EXPR_number, AST_EXPR_numeric_string, AST_EXPR_string
1450 FP___TYPE i; /* long double or just double if it's a bad day */
1454 #include "ast_expr2.h" /* the o/p of the bison on ast_expr2.y */
1456 #define SET_COLUMNS do { \
1457 yylloc_param->first_column = (int)(yyg->yytext_r - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf); \
1458 yylloc_param->last_column += yyleng - 1; \
1459 yylloc_param->first_line = yylloc_param->last_line = 1; \
1462 #define SET_STRING do { \
1463 yylval_param->val = calloc(1, sizeof(struct val)); \
1464 yylval_param->val->type = AST_EXPR_string; \
1465 yylval_param->val->u.s = strdup(yytext); \
1468 #define SET_NUMERIC_STRING do { \
1469 yylval_param->val = calloc(1, sizeof(struct val)); \
1470 yylval_param->val->type = AST_EXPR_numeric_string; \
1471 yylval_param->val->u.s = strdup(yytext); \
1479 struct ast_channel *chan;
1482 void ast_yyset_column(int column_no, yyscan_t yyscanner);
1483 int ast_yyget_column(yyscan_t yyscanner);
1484 static int curlycount = 0;
1485 static char *expr2_token_subst(char *mess);
1487 #line 1488 "ast_expr2f.c"
1493 #ifndef YY_NO_UNISTD_H
1494 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1495 * down here because we want the user's section 1 to have been scanned first.
1496 * The user has a chance to override it with an option.
1501 #ifndef YY_EXTRA_TYPE
1502 #define YY_EXTRA_TYPE void *
1505 /* Holds the entire state of the reentrant scanner. */
1509 /* User-defined. Not touched by flex. */
1510 YY_EXTRA_TYPE yyextra_r;
1512 /* The rest are the same as the globals declared in the non-reentrant scanner. */
1513 FILE *yyin_r, *yyout_r;
1514 size_t yy_buffer_stack_top; /**< index of top of stack. */
1515 size_t yy_buffer_stack_max; /**< capacity of stack. */
1516 YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1523 int yy_did_buffer_switch_on_eof;
1524 int yy_start_stack_ptr;
1525 int yy_start_stack_depth;
1526 int *yy_start_stack;
1527 yy_state_type yy_last_accepting_state;
1528 char* yy_last_accepting_cpos;
1531 int yy_flex_debug_r;
1541 }; /* end struct yyguts_t */
1543 static int yy_init_globals (yyscan_t yyscanner );
1545 /* This must go here because YYSTYPE and YYLTYPE are included
1546 * from bison output in section 1.*/
1547 # define yylval yyg->yylval_r
1549 # define yylloc yyg->yylloc_r
1551 /* Accessor methods to globals.
1552 These are made visible to non-reentrant scanners for convenience. */
1554 int ast_yylex_destroy (yyscan_t yyscanner );
1556 int ast_yyget_debug (yyscan_t yyscanner );
1558 void ast_yyset_debug (int debug_flag ,yyscan_t yyscanner );
1560 YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner );
1562 void ast_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1564 FILE *ast_yyget_in (yyscan_t yyscanner );
1566 void ast_yyset_in (FILE * in_str ,yyscan_t yyscanner );
1568 FILE *ast_yyget_out (yyscan_t yyscanner );
1570 void ast_yyset_out (FILE * out_str ,yyscan_t yyscanner );
1572 int ast_yyget_leng (yyscan_t yyscanner );
1574 char *ast_yyget_text (yyscan_t yyscanner );
1576 int ast_yyget_lineno (yyscan_t yyscanner );
1578 void ast_yyset_lineno (int line_number ,yyscan_t yyscanner );
1580 YYSTYPE * ast_yyget_lval (yyscan_t yyscanner );
1582 void ast_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
1584 YYLTYPE *ast_yyget_lloc (yyscan_t yyscanner );
1586 void ast_yyset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
1588 /* Macros after this point can all be overridden by user definitions in
1592 #ifndef YY_SKIP_YYWRAP
1594 extern "C" int ast_yywrap (yyscan_t yyscanner );
1596 extern int ast_yywrap (yyscan_t yyscanner );
1600 static void yyunput (int c,char *buf_ptr ,yyscan_t yyscanner);
1603 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1606 #ifdef YY_NEED_STRLEN
1607 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1613 static int yyinput (yyscan_t yyscanner );
1615 static int input (yyscan_t yyscanner );
1620 /* Amount of stuff to slurp up with each read. */
1621 #ifndef YY_READ_BUF_SIZE
1622 #define YY_READ_BUF_SIZE 8192
1625 /* Copy whatever the last rule matched to the standard output. */
1627 /* This used to be an fputs(), but since the string might contain NUL's,
1628 * we now use fwrite().
1630 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1633 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1634 * is returned in "result".
1637 #define YY_INPUT(buf,result,max_size) \
1639 while ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \
1641 if( errno != EINTR) \
1643 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1653 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1654 * we don't want an extra ';' after the "return" because that will cause
1655 * some compilers to complain about unreachable statements.
1658 #define yyterminate() return YY_NULL
1661 /* Number of entries by which start-condition stack grows. */
1662 #ifndef YY_START_STACK_INCR
1663 #define YY_START_STACK_INCR 25
1666 /* Report a fatal error. */
1667 #ifndef YY_FATAL_ERROR
1668 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1671 /* end tables serialization structures and prototypes */
1673 /* Default declaration of generated scanner - a define so the user can
1674 * easily add parameters.
1677 #define YY_DECL_IS_OURS 1
1679 extern int ast_yylex \
1680 (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
1682 #define YY_DECL int ast_yylex \
1683 (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
1684 #endif /* !YY_DECL */
1686 /* Code executed at the beginning of each rule, after yytext and yyleng
1689 #ifndef YY_USER_ACTION
1690 #define YY_USER_ACTION
1693 /* Code executed at the end of each rule. */
1695 #define YY_BREAK break;
1698 #define YY_RULE_SETUP \
1701 /** The main scanner function which does all the work.
1705 register yy_state_type yy_current_state;
1706 register char *yy_cp, *yy_bp;
1707 register int yy_act;
1708 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1710 #line 125 "ast_expr2.fl"
1713 #line 1714 "ast_expr2f.c"
1715 yylval = yylval_param;
1717 yylloc = yylloc_param;
1727 if ( ! yyg->yy_start )
1728 yyg->yy_start = 1; /* first start state */
1736 if ( ! YY_CURRENT_BUFFER ) {
1737 ast_yyensure_buffer_stack (yyscanner);
1738 YY_CURRENT_BUFFER_LVALUE =
1739 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1742 ast_yy_load_buffer_state(yyscanner );
1745 while ( 1 ) /* loops until end-of-file is reached */
1747 yyg->yy_more_len = 0;
1748 if ( yyg->yy_more_flag )
1750 yyg->yy_more_len = yyg->yy_c_buf_p - yyg->yytext_ptr;
1751 yyg->yy_more_flag = 0;
1753 yy_cp = yyg->yy_c_buf_p;
1755 /* Support of yytext. */
1756 *yy_cp = yyg->yy_hold_char;
1758 /* yy_bp points to the position in yy_ch_buf of the start of
1763 yy_current_state = yyg->yy_start;
1765 while ( (yy_current_state = yy_nxt[yy_current_state][ YY_SC_TO_UI(*yy_cp) ]) > 0 )
1767 if ( yy_accept[yy_current_state] )
1769 yyg->yy_last_accepting_state = yy_current_state;
1770 yyg->yy_last_accepting_cpos = yy_cp;
1776 yy_current_state = -yy_current_state;
1779 yy_act = yy_accept[yy_current_state];
1781 YY_DO_BEFORE_ACTION;
1783 do_action: /* This label is used only to access EOF actions. */
1786 { /* beginning of action switch */
1787 case 0: /* must back up */
1788 /* undo the effects of YY_DO_BEFORE_ACTION */
1789 *yy_cp = yyg->yy_hold_char;
1790 yy_cp = yyg->yy_last_accepting_cpos + 1;
1791 yy_current_state = yyg->yy_last_accepting_state;
1792 goto yy_find_action;
1796 #line 127 "ast_expr2.fl"
1797 { SET_COLUMNS; SET_STRING; return TOK_OR;}
1801 #line 128 "ast_expr2.fl"
1802 { SET_COLUMNS; SET_STRING; return TOK_AND;}
1806 #line 129 "ast_expr2.fl"
1807 { SET_COLUMNS; SET_STRING; return TOK_EQ;}
1811 #line 130 "ast_expr2.fl"
1812 { SET_COLUMNS; SET_STRING; return TOK_OR;}
1816 #line 131 "ast_expr2.fl"
1817 { SET_COLUMNS; SET_STRING; return TOK_AND;}
1821 #line 132 "ast_expr2.fl"
1822 { SET_COLUMNS; SET_STRING; return TOK_EQ;}
1826 #line 133 "ast_expr2.fl"
1827 { SET_COLUMNS; SET_STRING; return TOK_EQTILDE;}
1831 #line 134 "ast_expr2.fl"
1832 { SET_COLUMNS; SET_STRING; return TOK_GT;}
1836 #line 135 "ast_expr2.fl"
1837 { SET_COLUMNS; SET_STRING; return TOK_LT;}
1841 #line 136 "ast_expr2.fl"
1842 { SET_COLUMNS; SET_STRING; return TOK_GE;}
1846 #line 137 "ast_expr2.fl"
1847 { SET_COLUMNS; SET_STRING; return TOK_LE;}
1851 #line 138 "ast_expr2.fl"
1852 { SET_COLUMNS; SET_STRING; return TOK_NE;}
1856 #line 139 "ast_expr2.fl"
1857 { SET_COLUMNS; SET_STRING; return TOK_PLUS;}
1861 #line 140 "ast_expr2.fl"
1862 { SET_COLUMNS; SET_STRING; return TOK_COMMA;}
1866 #line 141 "ast_expr2.fl"
1867 { SET_COLUMNS; SET_STRING; return TOK_MINUS;}
1871 #line 142 "ast_expr2.fl"
1872 { SET_COLUMNS; SET_STRING; return TOK_MULT;}
1876 #line 143 "ast_expr2.fl"
1877 { SET_COLUMNS; SET_STRING; return TOK_DIV;}
1881 #line 144 "ast_expr2.fl"
1882 { SET_COLUMNS; SET_STRING; return TOK_MOD;}
1886 #line 145 "ast_expr2.fl"
1887 { SET_COLUMNS; SET_STRING; return TOK_COND;}
1891 #line 146 "ast_expr2.fl"
1892 { SET_COLUMNS; SET_STRING; return TOK_COMPL;}
1896 #line 147 "ast_expr2.fl"
1897 { SET_COLUMNS; SET_STRING; return TOK_COLON;}
1901 #line 148 "ast_expr2.fl"
1902 { SET_COLUMNS; SET_STRING; return TOK_COLONCOLON;}
1906 #line 149 "ast_expr2.fl"
1907 { SET_COLUMNS; SET_STRING; return TOK_LP;}
1911 #line 150 "ast_expr2.fl"
1912 { SET_COLUMNS; SET_STRING; return TOK_RP;}
1916 #line 151 "ast_expr2.fl"
1918 /* gather the contents of ${} expressions, with trailing stuff,
1919 * into a single TOKEN.
1920 * They are much more complex now than they used to be
1929 #line 161 "ast_expr2.fl"
1933 /* rule 27 can match eol */
1935 #line 162 "ast_expr2.fl"
1936 {SET_COLUMNS; SET_STRING; return TOKEN;}
1939 /* rule 28 can match eol */
1941 #line 164 "ast_expr2.fl"
1942 {/* what to do with eol */}
1946 #line 165 "ast_expr2.fl"
1949 /* the original behavior of the expression parser was
1950 * to bring in numbers as a numeric string
1958 #line 174 "ast_expr2.fl"
1966 /* rule 31 can match eol */
1968 #line 181 "ast_expr2.fl"
1971 if (curlycount < 0) {
1980 /* rule 32 can match eol */
1982 #line 191 "ast_expr2.fl"
1990 #line 197 "ast_expr2.fl"
1999 /* rule 34 can match eol */
2001 #line 204 "ast_expr2.fl"
2003 char c = yytext[yyleng-1];
2013 #line 213 "ast_expr2.fl"
2020 case YY_STATE_EOF(trail):
2021 #line 219 "ast_expr2.fl"
2027 /*actually, if an expr is only a variable ref, this could happen a LOT */
2032 #line 227 "ast_expr2.fl"
2035 #line 2036 "ast_expr2f.c"
2036 case YY_STATE_EOF(INITIAL):
2037 case YY_STATE_EOF(var):
2040 case YY_END_OF_BUFFER:
2042 /* Amount of text matched not including the EOB char. */
2043 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2045 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2046 *yy_cp = yyg->yy_hold_char;
2047 YY_RESTORE_YY_MORE_OFFSET
2049 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2051 /* We're scanning a new file or input source. It's
2052 * possible that this happened because the user
2053 * just pointed yyin at a new source and called
2054 * ast_yylex(). If so, then we have to assure
2055 * consistency between YY_CURRENT_BUFFER and our
2056 * globals. Here is the right place to do so, because
2057 * this is the first action (other than possibly a
2058 * back-up) that will match for the new input source.
2060 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2061 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2062 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2065 /* Note that here we test for yy_c_buf_p "<=" to the position
2066 * of the first EOB in the buffer, since yy_c_buf_p will
2067 * already have been incremented past the NUL character
2068 * (since all states make transitions on EOB to the
2069 * end-of-buffer state). Contrast this with the test
2072 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2073 { /* This was really a NUL. */
2074 yy_state_type yy_next_state;
2076 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2078 yy_current_state = yy_get_previous_state( yyscanner );
2080 /* Okay, we're now positioned to make the NUL
2081 * transition. We couldn't have
2082 * yy_get_previous_state() go ahead and do it
2083 * for us because it doesn't know how to deal
2084 * with the possibility of jamming (and we don't
2085 * want to build jamming into it because then it
2086 * will run more slowly).
2089 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2091 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2093 if ( yy_next_state )
2095 /* Consume the NUL. */
2096 yy_cp = ++yyg->yy_c_buf_p;
2097 yy_current_state = yy_next_state;
2103 yy_cp = yyg->yy_c_buf_p;
2104 goto yy_find_action;
2108 else switch ( yy_get_next_buffer( yyscanner ) )
2110 case EOB_ACT_END_OF_FILE:
2112 yyg->yy_did_buffer_switch_on_eof = 0;
2114 if ( ast_yywrap(yyscanner ) )
2116 /* Note: because we've taken care in
2117 * yy_get_next_buffer() to have set up
2118 * yytext, we can now set up
2119 * yy_c_buf_p so that if some total
2120 * hoser (like flex itself) wants to
2121 * call the scanner after we return the
2122 * YY_NULL, it'll still work - another
2123 * YY_NULL will get returned.
2125 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2127 yy_act = YY_STATE_EOF(YY_START);
2133 if ( ! yyg->yy_did_buffer_switch_on_eof )
2139 case EOB_ACT_CONTINUE_SCAN:
2141 yyg->yytext_ptr + yy_amount_of_matched_text;
2143 yy_current_state = yy_get_previous_state( yyscanner );
2145 yy_cp = yyg->yy_c_buf_p;
2146 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2149 case EOB_ACT_LAST_MATCH:
2151 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2153 yy_current_state = yy_get_previous_state( yyscanner );
2155 yy_cp = yyg->yy_c_buf_p;
2156 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2157 goto yy_find_action;
2164 "fatal flex scanner internal error--no action found" );
2165 } /* end of action switch */
2166 } /* end of scanning one token */
2167 } /* end of ast_yylex */
2169 /* yy_get_next_buffer - try to read in a new buffer
2171 * Returns a code representing an action:
2172 * EOB_ACT_LAST_MATCH -
2173 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2174 * EOB_ACT_END_OF_FILE - end of file
2176 static int yy_get_next_buffer (yyscan_t yyscanner)
2178 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2179 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2180 register char *source = yyg->yytext_ptr;
2181 register int number_to_move, i;
2184 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2186 "fatal flex scanner internal error--end of buffer missed" );
2188 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2189 { /* Don't try to fill the buffer, so this is an EOF. */
2190 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2192 /* We matched a single character, the EOB, so
2193 * treat this as a final EOF.
2195 return EOB_ACT_END_OF_FILE;
2200 /* We matched some text prior to the EOB, first
2203 return EOB_ACT_LAST_MATCH;
2207 /* Try to read more data. */
2209 /* First move last chars to start of buffer. */
2210 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2212 for ( i = 0; i < number_to_move; ++i )
2213 *(dest++) = *(source++);
2215 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2216 /* don't do the read, it's not guaranteed to return an EOF,
2219 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2224 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2226 while ( num_to_read <= 0 )
2227 { /* Not enough room in the buffer - grow it. */
2229 /* just a shorter name for the current buffer */
2230 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2232 int yy_c_buf_p_offset =
2233 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2235 if ( b->yy_is_our_buffer )
2237 int new_size = b->yy_buf_size * 2;
2239 if ( new_size <= 0 )
2240 b->yy_buf_size += b->yy_buf_size / 8;
2242 b->yy_buf_size *= 2;
2244 b->yy_ch_buf = (char *)
2245 /* Include room in for 2 EOB chars. */
2246 ast_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
2249 /* Can't grow it, we don't own it. */
2252 if ( ! b->yy_ch_buf )
2254 "fatal error - scanner input buffer overflow" );
2256 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2258 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2263 if ( num_to_read > YY_READ_BUF_SIZE )
2264 num_to_read = YY_READ_BUF_SIZE;
2266 /* Read in more data. */
2267 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2268 yyg->yy_n_chars, num_to_read );
2270 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2273 if ( yyg->yy_n_chars == 0 )
2275 if ( number_to_move == YY_MORE_ADJ )
2277 ret_val = EOB_ACT_END_OF_FILE;
2278 ast_yyrestart(yyin ,yyscanner);
2283 ret_val = EOB_ACT_LAST_MATCH;
2284 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2285 YY_BUFFER_EOF_PENDING;
2290 ret_val = EOB_ACT_CONTINUE_SCAN;
2292 yyg->yy_n_chars += number_to_move;
2293 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2294 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2296 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2301 /* yy_get_previous_state - get the state just before the EOB char was reached */
2303 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2305 register yy_state_type yy_current_state;
2306 register char *yy_cp;
2307 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2309 yy_current_state = yyg->yy_start;
2311 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2315 yy_current_state = yy_nxt[yy_current_state][YY_SC_TO_UI(*yy_cp)];
2318 yy_current_state = yy_NUL_trans[yy_current_state];
2319 if ( yy_accept[yy_current_state] )
2321 yyg->yy_last_accepting_state = yy_current_state;
2322 yyg->yy_last_accepting_cpos = yy_cp;
2326 return yy_current_state;
2329 /* yy_try_NUL_trans - try to make a transition on the NUL character
2332 * next_state = yy_try_NUL_trans( current_state );
2334 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
2336 register int yy_is_jam;
2337 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2338 register char *yy_cp = yyg->yy_c_buf_p;
2340 yy_current_state = yy_NUL_trans[yy_current_state];
2341 yy_is_jam = (yy_current_state == 0);
2345 if ( yy_accept[yy_current_state] )
2347 yyg->yy_last_accepting_state = yy_current_state;
2348 yyg->yy_last_accepting_cpos = yy_cp;
2352 return yy_is_jam ? 0 : yy_current_state;
2355 static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
2357 register char *yy_cp;
2358 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2360 yy_cp = yyg->yy_c_buf_p;
2362 /* undo effects of setting up yytext */
2363 *yy_cp = yyg->yy_hold_char;
2365 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2366 { /* need to shift things up to make room */
2367 /* +2 for EOB chars. */
2368 register int number_to_move = yyg->yy_n_chars + 2;
2369 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2370 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2371 register char *source =
2372 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2374 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2375 *--dest = *--source;
2377 yy_cp += (int) (dest - source);
2378 yy_bp += (int) (dest - source);
2379 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2380 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2382 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2383 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2386 *--yy_cp = (char) c;
2388 yyg->yytext_ptr = yy_bp;
2389 yyg->yy_hold_char = *yy_cp;
2390 yyg->yy_c_buf_p = yy_cp;
2395 static int yyinput (yyscan_t yyscanner)
2397 static int input (yyscan_t yyscanner)
2402 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2404 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2406 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2408 /* yy_c_buf_p now points to the character we want to return.
2409 * If this occurs *before* the EOB characters, then it's a
2410 * valid NUL; if not, then we've hit the end of the buffer.
2412 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2413 /* This was really a NUL. */
2414 *yyg->yy_c_buf_p = '\0';
2417 { /* need more input */
2418 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2421 switch ( yy_get_next_buffer( yyscanner ) )
2423 case EOB_ACT_LAST_MATCH:
2424 /* This happens because yy_g_n_b()
2425 * sees that we've accumulated a
2426 * token and flags that we need to
2427 * try matching the token before
2428 * proceeding. But for input(),
2429 * there's no matching to consider.
2430 * So convert the EOB_ACT_LAST_MATCH
2431 * to EOB_ACT_END_OF_FILE.
2434 /* Reset buffer status. */
2435 ast_yyrestart(yyin ,yyscanner);
2439 case EOB_ACT_END_OF_FILE:
2441 if ( ast_yywrap(yyscanner ) )
2444 if ( ! yyg->yy_did_buffer_switch_on_eof )
2447 return yyinput(yyscanner);
2449 return input(yyscanner);
2453 case EOB_ACT_CONTINUE_SCAN:
2454 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2460 c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
2461 *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
2462 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2466 #endif /* ifndef YY_NO_INPUT */
2468 /** Immediately switch to a different input stream.
2469 * @param input_file A readable stream.
2470 * @param yyscanner The scanner object.
2471 * @note This function does not reset the start condition to @c INITIAL .
2473 void ast_yyrestart (FILE * input_file , yyscan_t yyscanner)
2475 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2477 if ( ! YY_CURRENT_BUFFER ){
2478 ast_yyensure_buffer_stack (yyscanner);
2479 YY_CURRENT_BUFFER_LVALUE =
2480 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
2483 ast_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2484 ast_yy_load_buffer_state(yyscanner );
2487 /** Switch to a different input buffer.
2488 * @param new_buffer The new input buffer.
2489 * @param yyscanner The scanner object.
2491 void ast_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2493 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2495 /* TODO. We should be able to replace this entire function body
2497 * ast_yypop_buffer_state();
2498 * ast_yypush_buffer_state(new_buffer);
2500 ast_yyensure_buffer_stack (yyscanner);
2501 if ( YY_CURRENT_BUFFER == new_buffer )
2504 if ( YY_CURRENT_BUFFER )
2506 /* Flush out information for old buffer. */
2507 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2508 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2509 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2512 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2513 ast_yy_load_buffer_state(yyscanner );
2515 /* We don't actually know whether we did this switch during
2516 * EOF (ast_yywrap()) processing, but the only time this flag
2517 * is looked at is after ast_yywrap() is called, so it's safe
2518 * to go ahead and always set it.
2520 yyg->yy_did_buffer_switch_on_eof = 1;
2523 static void ast_yy_load_buffer_state (yyscan_t yyscanner)
2525 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2526 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2527 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2528 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2529 yyg->yy_hold_char = *yyg->yy_c_buf_p;
2532 /** Allocate and initialize an input buffer state.
2533 * @param file A readable stream.
2534 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2535 * @param yyscanner The scanner object.
2536 * @return the allocated buffer state.
2538 YY_BUFFER_STATE ast_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
2542 b = (YY_BUFFER_STATE) ast_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2544 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_create_buffer()" );
2546 b->yy_buf_size = size;
2548 /* yy_ch_buf has to be 2 characters longer than the size given because
2549 * we need to put in 2 end-of-buffer characters.
2551 b->yy_ch_buf = (char *) ast_yyalloc(b->yy_buf_size + 2 ,yyscanner );
2552 if ( ! b->yy_ch_buf )
2553 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_create_buffer()" );
2555 b->yy_is_our_buffer = 1;
2557 ast_yy_init_buffer(b,file ,yyscanner);
2562 /** Destroy the buffer.
2563 * @param b a buffer created with ast_yy_create_buffer()
2564 * @param yyscanner The scanner object.
2566 void ast_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2568 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2573 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2574 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2576 if ( b->yy_is_our_buffer )
2577 ast_yyfree((void *) b->yy_ch_buf ,yyscanner );
2579 ast_yyfree((void *) b ,yyscanner );
2583 extern int isatty (int );
2584 #endif /* __cplusplus */
2586 /* Initializes or reinitializes a buffer.
2587 * This function is sometimes called more than once on the same buffer,
2588 * such as during a ast_yyrestart() or at EOF.
2590 static void ast_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2594 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2596 ast_yy_flush_buffer(b ,yyscanner);
2598 b->yy_input_file = file;
2599 b->yy_fill_buffer = 1;
2601 /* If b is the current buffer, then ast_yy_init_buffer was _probably_
2602 * called from ast_yyrestart() or through yy_get_next_buffer.
2603 * In that case, we don't want to reset the lineno or column.
2605 if (b != YY_CURRENT_BUFFER){
2606 b->yy_bs_lineno = 1;
2607 b->yy_bs_column = 0;
2610 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2615 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2616 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2617 * @param yyscanner The scanner object.
2619 void ast_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2621 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2627 /* We always need two end-of-buffer characters. The first causes
2628 * a transition to the end-of-buffer state. The second causes
2629 * a jam in that state.
2631 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2632 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2634 b->yy_buf_pos = &b->yy_ch_buf[0];
2637 b->yy_buffer_status = YY_BUFFER_NEW;
2639 if ( b == YY_CURRENT_BUFFER )
2640 ast_yy_load_buffer_state(yyscanner );
2643 /** Pushes the new state onto the stack. The new state becomes
2644 * the current state. This function will allocate the stack
2646 * @param new_buffer The new state.
2647 * @param yyscanner The scanner object.
2649 void ast_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2651 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2652 if (new_buffer == NULL)
2655 ast_yyensure_buffer_stack(yyscanner);
2657 /* This block is copied from ast_yy_switch_to_buffer. */
2658 if ( YY_CURRENT_BUFFER )
2660 /* Flush out information for old buffer. */
2661 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2662 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2663 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2666 /* Only push if top exists. Otherwise, replace top. */
2667 if (YY_CURRENT_BUFFER)
2668 yyg->yy_buffer_stack_top++;
2669 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2671 /* copied from ast_yy_switch_to_buffer. */
2672 ast_yy_load_buffer_state(yyscanner );
2673 yyg->yy_did_buffer_switch_on_eof = 1;
2676 /** Removes and deletes the top of the stack, if present.
2677 * The next element becomes the new top.
2678 * @param yyscanner The scanner object.
2680 void ast_yypop_buffer_state (yyscan_t yyscanner)
2682 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2683 if (!YY_CURRENT_BUFFER)
2686 ast_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2687 YY_CURRENT_BUFFER_LVALUE = NULL;
2688 if (yyg->yy_buffer_stack_top > 0)
2689 --yyg->yy_buffer_stack_top;
2691 if (YY_CURRENT_BUFFER) {
2692 ast_yy_load_buffer_state(yyscanner );
2693 yyg->yy_did_buffer_switch_on_eof = 1;
2697 /* Allocates the stack if it does not exist.
2698 * Guarantees space for at least one push.
2700 static void ast_yyensure_buffer_stack (yyscan_t yyscanner)
2703 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2705 if (!yyg->yy_buffer_stack) {
2707 /* First allocation is just for 2 elements, since we don't know if this
2708 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2709 * immediate realloc on the next call.
2712 yyg->yy_buffer_stack = (struct yy_buffer_state**)ast_yyalloc
2713 (num_to_alloc * sizeof(struct yy_buffer_state*)
2716 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2718 yyg->yy_buffer_stack_max = num_to_alloc;
2719 yyg->yy_buffer_stack_top = 0;
2723 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2725 /* Increase the buffer to prepare for a possible push. */
2726 int grow_size = 8 /* arbitrary grow size */;
2728 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2729 yyg->yy_buffer_stack = (struct yy_buffer_state**)ast_yyrealloc
2730 (yyg->yy_buffer_stack,
2731 num_to_alloc * sizeof(struct yy_buffer_state*)
2734 /* zero only the new slots.*/
2735 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2736 yyg->yy_buffer_stack_max = num_to_alloc;
2740 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2741 * @param base the character buffer
2742 * @param size the size in bytes of the character buffer
2743 * @param yyscanner The scanner object.
2744 * @return the newly allocated buffer state object.
2746 YY_BUFFER_STATE ast_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
2751 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2752 base[size-1] != YY_END_OF_BUFFER_CHAR )
2753 /* They forgot to leave room for the EOB's. */
2756 b = (YY_BUFFER_STATE) ast_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2758 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_scan_buffer()" );
2760 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2761 b->yy_buf_pos = b->yy_ch_buf = base;
2762 b->yy_is_our_buffer = 0;
2763 b->yy_input_file = 0;
2764 b->yy_n_chars = b->yy_buf_size;
2765 b->yy_is_interactive = 0;
2767 b->yy_fill_buffer = 0;
2768 b->yy_buffer_status = YY_BUFFER_NEW;
2770 ast_yy_switch_to_buffer(b ,yyscanner );
2775 /** Setup the input buffer state to scan a string. The next call to ast_yylex() will
2776 * scan from a @e copy of @a str.
2777 * @param str a NUL-terminated string to scan
2778 * @param yyscanner The scanner object.
2779 * @return the newly allocated buffer state object.
2780 * @note If you want to scan bytes that may contain NUL values, then use
2781 * ast_yy_scan_bytes() instead.
2783 YY_BUFFER_STATE ast_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner)
2786 return ast_yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner);
2789 /** Setup the input buffer state to scan the given bytes. The next call to ast_yylex() will
2790 * scan from a @e copy of @a bytes.
2791 * @param bytes the byte buffer to scan
2792 * @param len the number of bytes in the buffer pointed to by @a bytes.
2793 * @param yyscanner The scanner object.
2794 * @return the newly allocated buffer state object.
2796 YY_BUFFER_STATE ast_yy_scan_bytes (yyconst char * bytes, int len , yyscan_t yyscanner)
2803 /* Get memory for full buffer, including space for trailing EOB's. */
2805 buf = (char *) ast_yyalloc(n ,yyscanner );
2807 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_scan_bytes()" );
2809 for ( i = 0; i < len; ++i )
2812 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2814 b = ast_yy_scan_buffer(buf,n ,yyscanner);
2816 YY_FATAL_ERROR( "bad buffer in ast_yy_scan_bytes()" );
2818 /* It's okay to grow etc. this buffer, and we should throw it
2819 * away when we're done.
2821 b->yy_is_our_buffer = 1;
2826 #ifndef YY_EXIT_FAILURE
2827 #define YY_EXIT_FAILURE 2
2830 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2832 (void) fprintf( stderr, "%s\n", msg );
2833 exit( YY_EXIT_FAILURE );
2836 /* Redefine yyless() so it works in section 3 code. */
2842 /* Undo effects of setting up yytext. */ \
2843 int yyless_macro_arg = (n); \
2844 YY_LESS_LINENO(yyless_macro_arg);\
2845 yytext[yyleng] = yyg->yy_hold_char; \
2846 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2847 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2848 *yyg->yy_c_buf_p = '\0'; \
2849 yyleng = yyless_macro_arg; \
2853 /* Accessor methods (get/set functions) to struct members. */
2855 /** Get the user-defined data for this scanner.
2856 * @param yyscanner The scanner object.
2858 YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner)
2860 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2864 /** Get the current line number.
2865 * @param yyscanner The scanner object.
2867 int ast_yyget_lineno (yyscan_t yyscanner)
2869 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2871 if (! YY_CURRENT_BUFFER)
2877 /** Get the current column number.
2878 * @param yyscanner The scanner object.
2880 int ast_yyget_column (yyscan_t yyscanner)
2882 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2884 if (! YY_CURRENT_BUFFER)
2890 /** Get the input stream.
2891 * @param yyscanner The scanner object.
2893 FILE *ast_yyget_in (yyscan_t yyscanner)
2895 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2899 /** Get the output stream.
2900 * @param yyscanner The scanner object.
2902 FILE *ast_yyget_out (yyscan_t yyscanner)
2904 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2908 /** Get the length of the current token.
2909 * @param yyscanner The scanner object.
2911 int ast_yyget_leng (yyscan_t yyscanner)
2913 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2917 /** Get the current token.
2918 * @param yyscanner The scanner object.
2921 char *ast_yyget_text (yyscan_t yyscanner)
2923 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2927 /** Set the user-defined data. This data is never touched by the scanner.
2928 * @param user_defined The data to be associated with this scanner.
2929 * @param yyscanner The scanner object.
2931 void ast_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2933 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2934 yyextra = user_defined ;
2937 /** Set the current line number.
2938 * @param line_number
2939 * @param yyscanner The scanner object.
2941 void ast_yyset_lineno (int line_number , yyscan_t yyscanner)
2943 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2945 /* lineno is only valid if an input buffer exists. */
2946 if (! YY_CURRENT_BUFFER )
2947 yy_fatal_error( "ast_yyset_lineno called with no buffer" , yyscanner);
2949 yylineno = line_number;
2952 /** Set the current column.
2953 * @param line_number
2954 * @param yyscanner The scanner object.
2956 void ast_yyset_column (int column_no , yyscan_t yyscanner)
2958 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2960 /* column is only valid if an input buffer exists. */
2961 if (! YY_CURRENT_BUFFER )
2962 yy_fatal_error( "ast_yyset_column called with no buffer" , yyscanner);
2964 yycolumn = column_no;
2967 /** Set the input stream. This does not discard the current
2969 * @param in_str A readable stream.
2970 * @param yyscanner The scanner object.
2971 * @see ast_yy_switch_to_buffer
2973 void ast_yyset_in (FILE * in_str , yyscan_t yyscanner)
2975 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2979 void ast_yyset_out (FILE * out_str , yyscan_t yyscanner)
2981 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2985 int ast_yyget_debug (yyscan_t yyscanner)
2987 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2988 return yy_flex_debug;
2991 void ast_yyset_debug (int bdebug , yyscan_t yyscanner)
2993 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2994 yy_flex_debug = bdebug ;
2997 /* Accessor methods for yylval and yylloc */
2999 YYSTYPE * ast_yyget_lval (yyscan_t yyscanner)
3001 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3005 void ast_yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
3007 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3008 yylval = yylval_param;
3011 YYLTYPE *ast_yyget_lloc (yyscan_t yyscanner)
3013 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3017 void ast_yyset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner)
3019 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3020 yylloc = yylloc_param;
3023 static int yy_init_globals (yyscan_t yyscanner)
3025 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3026 /* Initialization is the same as for the non-reentrant scanner.
3027 This function is called once per scanner lifetime. */
3029 yyg->yy_buffer_stack = 0;
3030 yyg->yy_buffer_stack_top = 0;
3031 yyg->yy_buffer_stack_max = 0;
3032 yyg->yy_c_buf_p = (char *) 0;
3035 yyg->yy_start_stack_ptr = 0;
3036 yyg->yy_start_stack_depth = 0;
3037 yyg->yy_start_stack = (int *) 0;
3039 /* Defined in main.c */
3048 /* For future reference: Set errno on error, since we are called by
3054 /* User-visible API */
3056 /* ast_yylex_init is special because it creates the scanner itself, so it is
3057 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3058 * That's why we explicitly handle the declaration, instead of using our macros.
3061 int ast_yylex_init(yyscan_t* ptr_yy_globals)
3064 if (ptr_yy_globals == NULL){
3069 *ptr_yy_globals = (yyscan_t) ast_yyalloc ( sizeof( struct yyguts_t ), NULL );
3071 if (*ptr_yy_globals == NULL){
3076 memset(*ptr_yy_globals,0,sizeof(struct yyguts_t));
3078 return yy_init_globals ( *ptr_yy_globals );
3081 /* ast_yylex_destroy is for both reentrant and non-reentrant scanners. */
3082 int ast_yylex_destroy (yyscan_t yyscanner)
3084 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3086 /* Pop the buffer stack, destroying each element. */
3087 while(YY_CURRENT_BUFFER){
3088 ast_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
3089 YY_CURRENT_BUFFER_LVALUE = NULL;
3090 ast_yypop_buffer_state(yyscanner);
3093 /* Destroy the stack itself. */
3094 ast_yyfree(yyg->yy_buffer_stack ,yyscanner);
3095 yyg->yy_buffer_stack = NULL;
3097 /* Destroy the start condition stack. */
3098 ast_yyfree(yyg->yy_start_stack ,yyscanner );
3099 yyg->yy_start_stack = NULL;
3101 /* Destroy the main struct (reentrant only). */
3102 ast_yyfree ( yyscanner , yyscanner );
3107 * Internal utility routines.
3111 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
3114 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3115 for ( i = 0; i < n; ++i )
3120 #ifdef YY_NEED_STRLEN
3121 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
3124 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3125 for ( n = 0; s[n]; ++n )
3132 void *ast_yyalloc (yy_size_t size , yyscan_t yyscanner)
3134 return (void *) malloc( size );
3137 void *ast_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
3139 /* The cast to (char *) in the following accommodates both
3140 * implementations that use char* generic pointers, and those
3141 * that use void* generic pointers. It works with the latter
3142 * because both ANSI C and C++ allow castless assignment from
3143 * any pointer type to void*, and deal with argument conversions
3144 * as though doing an assignment.
3146 return (void *) realloc( (char *) ptr, size );
3149 void ast_yyfree (void * ptr , yyscan_t yyscanner)
3151 free( (char *) ptr ); /* see ast_yyrealloc() for (char *) cast */
3154 #define YYTABLES_NAME "yytables"
3157 #undef YY_FLUSH_BUFFER
3159 #undef yy_new_buffer
3160 #undef yy_set_interactive
3162 #undef YY_DO_BEFORE_ACTION
3164 #ifdef YY_DECL_IS_OURS
3165 #undef YY_DECL_IS_OURS
3168 #line 227 "ast_expr2.fl"
3172 /* I'm putting the interface routine to the whole parse here in the flexer input file
3173 mainly because of all the flexer initialization that has to be done. Shouldn't matter
3174 where it is, as long as it's somewhere. I didn't want to define a prototype for the
3175 ast_yy_scan_string in the .y file, because then, I'd have to define YY_BUFFER_STATE there...
3176 UGH! that would be inappropriate. */
3178 int ast_yyparse(void *); /* need to/should define this prototype for the call to yyparse */
3179 int ast_yyerror(const char *, YYLTYPE *, struct parse_io *); /* likewise */
3181 int ast_expr(char *expr, char *buf, int length, struct ast_channel *chan)
3184 int return_value = 0;
3186 memset(&io, 0, sizeof(io));
3187 io.string = expr; /* to pass to the error routine */
3190 ast_yylex_init(&io.scanner);
3192 ast_yy_scan_string(expr, io.scanner);
3194 ast_yyparse ((void *) &io);
3196 ast_yylex_destroy(io.scanner);
3204 if (io.val->type == AST_EXPR_number) {
3207 res_length = snprintf(buf, length, FP___PRINTF, io.val->u.i);
3208 return_value = (res_length <= length) ? res_length : length;
3210 #if defined(STANDALONE) || defined(LOW_MEMORY) || defined(STANDALONE_AEL)
3211 strncpy(buf, io.val->u.s, length - 1);
3212 #else /* !STANDALONE && !LOW_MEMORY */
3213 ast_copy_string(buf, io.val->u.s, length);
3214 #endif /* STANDALONE || LOW_MEMORY */
3215 return_value = strlen(buf);
3220 return return_value;
3224 char extra_error_message[4095];
3225 int extra_error_message_supplied = 0;
3226 void ast_expr_register_extra_error_info(char *message);
3227 void ast_expr_clear_extra_error_info(void);
3229 void ast_expr_register_extra_error_info(char *message)
3231 extra_error_message_supplied=1;
3232 strcpy(extra_error_message, message);
3235 void ast_expr_clear_extra_error_info(void)
3237 extra_error_message_supplied=0;
3238 extra_error_message[0] = 0;
3241 static char *expr2_token_equivs1[] =