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(const 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 \
1702 * \brief The main scanner function which does all the work.
1706 register yy_state_type yy_current_state;
1707 register char *yy_cp, *yy_bp;
1708 register int yy_act;
1709 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1711 #line 125 "ast_expr2.fl"
1714 #line 1714 "ast_expr2f.c"
1716 yylval = yylval_param;
1718 yylloc = yylloc_param;
1728 if ( ! yyg->yy_start )
1729 yyg->yy_start = 1; /* first start state */
1737 if ( ! YY_CURRENT_BUFFER ) {
1738 ast_yyensure_buffer_stack (yyscanner);
1739 YY_CURRENT_BUFFER_LVALUE =
1740 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1743 ast_yy_load_buffer_state(yyscanner );
1746 while ( 1 ) /* loops until end-of-file is reached */
1748 yyg->yy_more_len = 0;
1749 if ( yyg->yy_more_flag )
1751 yyg->yy_more_len = yyg->yy_c_buf_p - yyg->yytext_ptr;
1752 yyg->yy_more_flag = 0;
1754 yy_cp = yyg->yy_c_buf_p;
1756 /* Support of yytext. */
1757 *yy_cp = yyg->yy_hold_char;
1759 /* yy_bp points to the position in yy_ch_buf of the start of
1764 yy_current_state = yyg->yy_start;
1766 while ( (yy_current_state = yy_nxt[yy_current_state][ YY_SC_TO_UI(*yy_cp) ]) > 0 )
1768 if ( yy_accept[yy_current_state] )
1770 yyg->yy_last_accepting_state = yy_current_state;
1771 yyg->yy_last_accepting_cpos = yy_cp;
1777 yy_current_state = -yy_current_state;
1780 yy_act = yy_accept[yy_current_state];
1782 YY_DO_BEFORE_ACTION;
1784 do_action: /* This label is used only to access EOF actions. */
1787 { /* beginning of action switch */
1788 case 0: /* must back up */
1789 /* undo the effects of YY_DO_BEFORE_ACTION */
1790 *yy_cp = yyg->yy_hold_char;
1791 yy_cp = yyg->yy_last_accepting_cpos + 1;
1792 yy_current_state = yyg->yy_last_accepting_state;
1793 goto yy_find_action;
1797 #line 127 "ast_expr2.fl"
1798 { SET_COLUMNS; SET_STRING; return TOK_OR;}
1802 #line 128 "ast_expr2.fl"
1803 { SET_COLUMNS; SET_STRING; return TOK_AND;}
1807 #line 129 "ast_expr2.fl"
1808 { SET_COLUMNS; SET_STRING; return TOK_EQ;}
1812 #line 130 "ast_expr2.fl"
1813 { SET_COLUMNS; SET_STRING; return TOK_OR;}
1817 #line 131 "ast_expr2.fl"
1818 { SET_COLUMNS; SET_STRING; return TOK_AND;}
1822 #line 132 "ast_expr2.fl"
1823 { SET_COLUMNS; SET_STRING; return TOK_EQ;}
1827 #line 133 "ast_expr2.fl"
1828 { SET_COLUMNS; SET_STRING; return TOK_EQTILDE;}
1832 #line 134 "ast_expr2.fl"
1833 { SET_COLUMNS; SET_STRING; return TOK_GT;}
1837 #line 135 "ast_expr2.fl"
1838 { SET_COLUMNS; SET_STRING; return TOK_LT;}
1842 #line 136 "ast_expr2.fl"
1843 { SET_COLUMNS; SET_STRING; return TOK_GE;}
1847 #line 137 "ast_expr2.fl"
1848 { SET_COLUMNS; SET_STRING; return TOK_LE;}
1852 #line 138 "ast_expr2.fl"
1853 { SET_COLUMNS; SET_STRING; return TOK_NE;}
1857 #line 139 "ast_expr2.fl"
1858 { SET_COLUMNS; SET_STRING; return TOK_PLUS;}
1862 #line 140 "ast_expr2.fl"
1863 { SET_COLUMNS; SET_STRING; return TOK_COMMA;}
1867 #line 141 "ast_expr2.fl"
1868 { SET_COLUMNS; SET_STRING; return TOK_MINUS;}
1872 #line 142 "ast_expr2.fl"
1873 { SET_COLUMNS; SET_STRING; return TOK_MULT;}
1877 #line 143 "ast_expr2.fl"
1878 { SET_COLUMNS; SET_STRING; return TOK_DIV;}
1882 #line 144 "ast_expr2.fl"
1883 { SET_COLUMNS; SET_STRING; return TOK_MOD;}
1887 #line 145 "ast_expr2.fl"
1888 { SET_COLUMNS; SET_STRING; return TOK_COND;}
1892 #line 146 "ast_expr2.fl"
1893 { SET_COLUMNS; SET_STRING; return TOK_COMPL;}
1897 #line 147 "ast_expr2.fl"
1898 { SET_COLUMNS; SET_STRING; return TOK_COLON;}
1902 #line 148 "ast_expr2.fl"
1903 { SET_COLUMNS; SET_STRING; return TOK_COLONCOLON;}
1907 #line 149 "ast_expr2.fl"
1908 { SET_COLUMNS; SET_STRING; return TOK_LP;}
1912 #line 150 "ast_expr2.fl"
1913 { SET_COLUMNS; SET_STRING; return TOK_RP;}
1917 #line 151 "ast_expr2.fl"
1919 /* gather the contents of ${} expressions, with trailing stuff,
1920 * into a single TOKEN.
1921 * They are much more complex now than they used to be
1930 #line 161 "ast_expr2.fl"
1934 /* rule 27 can match eol */
1936 #line 162 "ast_expr2.fl"
1937 {SET_COLUMNS; SET_STRING; return TOKEN;}
1940 /* rule 28 can match eol */
1942 #line 164 "ast_expr2.fl"
1943 {/* what to do with eol */}
1947 #line 165 "ast_expr2.fl"
1950 /* the original behavior of the expression parser was
1951 * to bring in numbers as a numeric string
1959 #line 174 "ast_expr2.fl"
1967 /* rule 31 can match eol */
1969 #line 181 "ast_expr2.fl"
1972 if (curlycount < 0) {
1981 /* rule 32 can match eol */
1983 #line 191 "ast_expr2.fl"
1991 #line 197 "ast_expr2.fl"
2000 /* rule 34 can match eol */
2002 #line 204 "ast_expr2.fl"
2004 char c = yytext[yyleng-1];
2014 #line 213 "ast_expr2.fl"
2021 case YY_STATE_EOF(trail):
2022 #line 219 "ast_expr2.fl"
2028 /*actually, if an expr is only a variable ref, this could happen a LOT */
2033 #line 227 "ast_expr2.fl"
2036 #line 2036 "ast_expr2f.c"
2037 case YY_STATE_EOF(INITIAL):
2038 case YY_STATE_EOF(var):
2041 case YY_END_OF_BUFFER:
2043 /* Amount of text matched not including the EOB char. */
2044 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2046 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2047 *yy_cp = yyg->yy_hold_char;
2048 YY_RESTORE_YY_MORE_OFFSET
2050 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2052 /* We're scanning a new file or input source. It's
2053 * possible that this happened because the user
2054 * just pointed yyin at a new source and called
2055 * ast_yylex(). If so, then we have to assure
2056 * consistency between YY_CURRENT_BUFFER and our
2057 * globals. Here is the right place to do so, because
2058 * this is the first action (other than possibly a
2059 * back-up) that will match for the new input source.
2061 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2062 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2063 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2066 /* Note that here we test for yy_c_buf_p "<=" to the position
2067 * of the first EOB in the buffer, since yy_c_buf_p will
2068 * already have been incremented past the NUL character
2069 * (since all states make transitions on EOB to the
2070 * end-of-buffer state). Contrast this with the test
2073 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2074 { /* This was really a NUL. */
2075 yy_state_type yy_next_state;
2077 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2079 yy_current_state = yy_get_previous_state( yyscanner );
2081 /* Okay, we're now positioned to make the NUL
2082 * transition. We couldn't have
2083 * yy_get_previous_state() go ahead and do it
2084 * for us because it doesn't know how to deal
2085 * with the possibility of jamming (and we don't
2086 * want to build jamming into it because then it
2087 * will run more slowly).
2090 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2092 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2094 if ( yy_next_state )
2096 /* Consume the NUL. */
2097 yy_cp = ++yyg->yy_c_buf_p;
2098 yy_current_state = yy_next_state;
2104 yy_cp = yyg->yy_c_buf_p;
2105 goto yy_find_action;
2109 else switch ( yy_get_next_buffer( yyscanner ) )
2111 case EOB_ACT_END_OF_FILE:
2113 yyg->yy_did_buffer_switch_on_eof = 0;
2115 if ( ast_yywrap(yyscanner ) )
2117 /* Note: because we've taken care in
2118 * yy_get_next_buffer() to have set up
2119 * yytext, we can now set up
2120 * yy_c_buf_p so that if some total
2121 * hoser (like flex itself) wants to
2122 * call the scanner after we return the
2123 * YY_NULL, it'll still work - another
2124 * YY_NULL will get returned.
2126 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2128 yy_act = YY_STATE_EOF(YY_START);
2134 if ( ! yyg->yy_did_buffer_switch_on_eof )
2140 case EOB_ACT_CONTINUE_SCAN:
2142 yyg->yytext_ptr + yy_amount_of_matched_text;
2144 yy_current_state = yy_get_previous_state( yyscanner );
2146 yy_cp = yyg->yy_c_buf_p;
2147 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2150 case EOB_ACT_LAST_MATCH:
2152 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2154 yy_current_state = yy_get_previous_state( yyscanner );
2156 yy_cp = yyg->yy_c_buf_p;
2157 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2158 goto yy_find_action;
2165 "fatal flex scanner internal error--no action found" );
2166 } /* end of action switch */
2167 } /* end of scanning one token */
2168 } /* end of ast_yylex */
2170 /* yy_get_next_buffer - try to read in a new buffer
2172 * Returns a code representing an action:
2173 * EOB_ACT_LAST_MATCH -
2174 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2175 * EOB_ACT_END_OF_FILE - end of file
2177 static int yy_get_next_buffer (yyscan_t yyscanner)
2179 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2180 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2181 register char *source = yyg->yytext_ptr;
2182 register int number_to_move, i;
2185 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2187 "fatal flex scanner internal error--end of buffer missed" );
2189 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2190 { /* Don't try to fill the buffer, so this is an EOF. */
2191 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2193 /* We matched a single character, the EOB, so
2194 * treat this as a final EOF.
2196 return EOB_ACT_END_OF_FILE;
2201 /* We matched some text prior to the EOB, first
2204 return EOB_ACT_LAST_MATCH;
2208 /* Try to read more data. */
2210 /* First move last chars to start of buffer. */
2211 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
2213 for ( i = 0; i < number_to_move; ++i )
2214 *(dest++) = *(source++);
2216 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2217 /* don't do the read, it's not guaranteed to return an EOF,
2220 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2225 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2227 while ( num_to_read <= 0 )
2228 { /* Not enough room in the buffer - grow it. */
2230 /* just a shorter name for the current buffer */
2231 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2233 int yy_c_buf_p_offset =
2234 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2236 if ( b->yy_is_our_buffer )
2238 int new_size = b->yy_buf_size * 2;
2240 if ( new_size <= 0 )
2241 b->yy_buf_size += b->yy_buf_size / 8;
2243 b->yy_buf_size *= 2;
2245 b->yy_ch_buf = (char *)
2246 /* Include room in for 2 EOB chars. */
2247 ast_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
2250 /* Can't grow it, we don't own it. */
2253 if ( ! b->yy_ch_buf )
2255 "fatal error - scanner input buffer overflow" );
2257 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2259 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2264 if ( num_to_read > YY_READ_BUF_SIZE )
2265 num_to_read = YY_READ_BUF_SIZE;
2267 /* Read in more data. */
2268 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2269 yyg->yy_n_chars, num_to_read );
2271 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2274 if ( yyg->yy_n_chars == 0 )
2276 if ( number_to_move == YY_MORE_ADJ )
2278 ret_val = EOB_ACT_END_OF_FILE;
2279 ast_yyrestart(yyin ,yyscanner);
2284 ret_val = EOB_ACT_LAST_MATCH;
2285 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2286 YY_BUFFER_EOF_PENDING;
2291 ret_val = EOB_ACT_CONTINUE_SCAN;
2293 yyg->yy_n_chars += number_to_move;
2294 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2295 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2297 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2302 /* yy_get_previous_state - get the state just before the EOB char was reached */
2304 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2306 register yy_state_type yy_current_state;
2307 register char *yy_cp;
2308 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2310 yy_current_state = yyg->yy_start;
2312 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2316 yy_current_state = yy_nxt[yy_current_state][YY_SC_TO_UI(*yy_cp)];
2319 yy_current_state = yy_NUL_trans[yy_current_state];
2320 if ( yy_accept[yy_current_state] )
2322 yyg->yy_last_accepting_state = yy_current_state;
2323 yyg->yy_last_accepting_cpos = yy_cp;
2327 return yy_current_state;
2330 /* yy_try_NUL_trans - try to make a transition on the NUL character
2333 * next_state = yy_try_NUL_trans( current_state );
2335 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
2337 register int yy_is_jam;
2338 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2339 register char *yy_cp = yyg->yy_c_buf_p;
2341 yy_current_state = yy_NUL_trans[yy_current_state];
2342 yy_is_jam = (yy_current_state == 0);
2346 if ( yy_accept[yy_current_state] )
2348 yyg->yy_last_accepting_state = yy_current_state;
2349 yyg->yy_last_accepting_cpos = yy_cp;
2353 return yy_is_jam ? 0 : yy_current_state;
2356 static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
2358 register char *yy_cp;
2359 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2361 yy_cp = yyg->yy_c_buf_p;
2363 /* undo effects of setting up yytext */
2364 *yy_cp = yyg->yy_hold_char;
2366 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2367 { /* need to shift things up to make room */
2368 /* +2 for EOB chars. */
2369 register int number_to_move = yyg->yy_n_chars + 2;
2370 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2371 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2372 register char *source =
2373 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2375 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2376 *--dest = *--source;
2378 yy_cp += (int) (dest - source);
2379 yy_bp += (int) (dest - source);
2380 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2381 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2383 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2384 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2387 *--yy_cp = (char) c;
2389 yyg->yytext_ptr = yy_bp;
2390 yyg->yy_hold_char = *yy_cp;
2391 yyg->yy_c_buf_p = yy_cp;
2396 static int yyinput (yyscan_t yyscanner)
2398 static int input (yyscan_t yyscanner)
2403 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2405 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2407 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2409 /* yy_c_buf_p now points to the character we want to return.
2410 * If this occurs *before* the EOB characters, then it's a
2411 * valid NUL; if not, then we've hit the end of the buffer.
2413 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2414 /* This was really a NUL. */
2415 *yyg->yy_c_buf_p = '\0';
2418 { /* need more input */
2419 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2422 switch ( yy_get_next_buffer( yyscanner ) )
2424 case EOB_ACT_LAST_MATCH:
2425 /* This happens because yy_g_n_b()
2426 * sees that we've accumulated a
2427 * token and flags that we need to
2428 * try matching the token before
2429 * proceeding. But for input(),
2430 * there's no matching to consider.
2431 * So convert the EOB_ACT_LAST_MATCH
2432 * to EOB_ACT_END_OF_FILE.
2435 /* Reset buffer status. */
2436 ast_yyrestart(yyin ,yyscanner);
2440 case EOB_ACT_END_OF_FILE:
2442 if ( ast_yywrap(yyscanner ) )
2445 if ( ! yyg->yy_did_buffer_switch_on_eof )
2448 return yyinput(yyscanner);
2450 return input(yyscanner);
2454 case EOB_ACT_CONTINUE_SCAN:
2455 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2461 c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */
2462 *yyg->yy_c_buf_p = '\0'; /* preserve yytext */
2463 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2467 #endif /* ifndef YY_NO_INPUT */
2470 * \brief Immediately switch to a different input stream.
2471 * \param input_file A readable stream.
2472 * \param yyscanner The scanner object.
2473 * \note This function does not reset the start condition to \c INITIAL .
2475 void ast_yyrestart (FILE * input_file , yyscan_t yyscanner)
2477 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2479 if ( ! YY_CURRENT_BUFFER ){
2480 ast_yyensure_buffer_stack (yyscanner);
2481 YY_CURRENT_BUFFER_LVALUE =
2482 ast_yy_create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
2485 ast_yy_init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2486 ast_yy_load_buffer_state(yyscanner );
2490 * \brief Switch to a different input buffer.
2491 * \param new_buffer The new input buffer.
2492 * \param yyscanner The scanner object.
2494 void ast_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2496 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2498 /* TODO. We should be able to replace this entire function body
2500 * ast_yypop_buffer_state();
2501 * ast_yypush_buffer_state(new_buffer);
2503 ast_yyensure_buffer_stack (yyscanner);
2504 if ( YY_CURRENT_BUFFER == new_buffer )
2507 if ( YY_CURRENT_BUFFER )
2509 /* Flush out information for old buffer. */
2510 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2511 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2512 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2515 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2516 ast_yy_load_buffer_state(yyscanner );
2518 /* We don't actually know whether we did this switch during
2519 * EOF (ast_yywrap()) processing, but the only time this flag
2520 * is looked at is after ast_yywrap() is called, so it's safe
2521 * to go ahead and always set it.
2523 yyg->yy_did_buffer_switch_on_eof = 1;
2526 static void ast_yy_load_buffer_state (yyscan_t yyscanner)
2528 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2529 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2530 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2531 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2532 yyg->yy_hold_char = *yyg->yy_c_buf_p;
2536 * \brief Allocate and initialize an input buffer state.
2537 * \param file A readable stream.
2538 * \param size The character buffer size in bytes. When in doubt, use \c YY_BUF_SIZE.
2539 * \param yyscanner The scanner object.
2540 * \return the allocated buffer state.
2542 YY_BUFFER_STATE ast_yy_create_buffer (FILE * file, int size , yyscan_t yyscanner)
2546 b = (YY_BUFFER_STATE) ast_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2548 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_create_buffer()" );
2550 b->yy_buf_size = size;
2552 /* yy_ch_buf has to be 2 characters longer than the size given because
2553 * we need to put in 2 end-of-buffer characters.
2555 b->yy_ch_buf = (char *) ast_yyalloc(b->yy_buf_size + 2 ,yyscanner );
2556 if ( ! b->yy_ch_buf )
2557 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_create_buffer()" );
2559 b->yy_is_our_buffer = 1;
2561 ast_yy_init_buffer(b,file ,yyscanner);
2567 * \brief Destroy the buffer.
2568 * \param b a buffer created with ast_yy_create_buffer()
2569 * \param yyscanner The scanner object.
2571 void ast_yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2573 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2578 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2579 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2581 if ( b->yy_is_our_buffer )
2582 ast_yyfree((void *) b->yy_ch_buf ,yyscanner );
2584 ast_yyfree((void *) b ,yyscanner );
2588 extern int isatty (int );
2589 #endif /* __cplusplus */
2591 /* Initializes or reinitializes a buffer.
2592 * This function is sometimes called more than once on the same buffer,
2593 * such as during a ast_yyrestart() or at EOF.
2595 static void ast_yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2599 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2601 ast_yy_flush_buffer(b ,yyscanner);
2603 b->yy_input_file = file;
2604 b->yy_fill_buffer = 1;
2606 /* If b is the current buffer, then ast_yy_init_buffer was _probably_
2607 * called from ast_yyrestart() or through yy_get_next_buffer.
2608 * In that case, we don't want to reset the lineno or column.
2610 if (b != YY_CURRENT_BUFFER){
2611 b->yy_bs_lineno = 1;
2612 b->yy_bs_column = 0;
2615 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2621 * \brief Discard all buffered characters. On the next scan, YY_INPUT will be called.
2622 * \param b the buffer state to be flushed, usually \c YY_CURRENT_BUFFER.
2623 * \param yyscanner The scanner object.
2625 void ast_yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2627 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2633 /* We always need two end-of-buffer characters. The first causes
2634 * a transition to the end-of-buffer state. The second causes
2635 * a jam in that state.
2637 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2638 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2640 b->yy_buf_pos = &b->yy_ch_buf[0];
2643 b->yy_buffer_status = YY_BUFFER_NEW;
2645 if ( b == YY_CURRENT_BUFFER )
2646 ast_yy_load_buffer_state(yyscanner );
2650 * \brief Pushes the new state onto the stack. The new state becomes
2651 * the current state. This function will allocate the stack if necessary.
2652 * \param new_buffer The new state.
2653 * \param yyscanner The scanner object.
2655 void ast_yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2657 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2658 if (new_buffer == NULL)
2661 ast_yyensure_buffer_stack(yyscanner);
2663 /* This block is copied from ast_yy_switch_to_buffer. */
2664 if ( YY_CURRENT_BUFFER )
2666 /* Flush out information for old buffer. */
2667 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2668 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2669 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2672 /* Only push if top exists. Otherwise, replace top. */
2673 if (YY_CURRENT_BUFFER)
2674 yyg->yy_buffer_stack_top++;
2675 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2677 /* copied from ast_yy_switch_to_buffer. */
2678 ast_yy_load_buffer_state(yyscanner );
2679 yyg->yy_did_buffer_switch_on_eof = 1;
2683 * \brief Removes and deletes the top of the stack, if present.
2684 * The next element becomes the new top.
2685 * \param yyscanner The scanner object.
2687 void ast_yypop_buffer_state (yyscan_t yyscanner)
2689 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2690 if (!YY_CURRENT_BUFFER)
2693 ast_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2694 YY_CURRENT_BUFFER_LVALUE = NULL;
2695 if (yyg->yy_buffer_stack_top > 0)
2696 --yyg->yy_buffer_stack_top;
2698 if (YY_CURRENT_BUFFER) {
2699 ast_yy_load_buffer_state(yyscanner );
2700 yyg->yy_did_buffer_switch_on_eof = 1;
2705 * \brief Allocates the stack if it does not exist Guarantees space for at least one push.
2707 static void ast_yyensure_buffer_stack (yyscan_t yyscanner)
2710 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2712 if (!yyg->yy_buffer_stack) {
2714 /* First allocation is just for 2 elements, since we don't know if this
2715 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2716 * immediate realloc on the next call.
2719 yyg->yy_buffer_stack = (struct yy_buffer_state**)ast_yyalloc
2720 (num_to_alloc * sizeof(struct yy_buffer_state*)
2723 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2725 yyg->yy_buffer_stack_max = num_to_alloc;
2726 yyg->yy_buffer_stack_top = 0;
2730 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2732 /* Increase the buffer to prepare for a possible push. */
2733 int grow_size = 8 /* arbitrary grow size */;
2735 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2736 yyg->yy_buffer_stack = (struct yy_buffer_state**)ast_yyrealloc
2737 (yyg->yy_buffer_stack,
2738 num_to_alloc * sizeof(struct yy_buffer_state*)
2741 /* zero only the new slots.*/
2742 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2743 yyg->yy_buffer_stack_max = num_to_alloc;
2748 * \brief Setup the input buffer state to scan directly from a user-specified character buffer.
2749 * \param base the character buffer
2750 * \param size the size in bytes of the character buffer
2751 * \param yyscanner The scanner object.
2752 * \return the newly allocated buffer state object.
2754 YY_BUFFER_STATE ast_yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
2759 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2760 base[size-1] != YY_END_OF_BUFFER_CHAR )
2761 /* They forgot to leave room for the EOB's. */
2764 b = (YY_BUFFER_STATE) ast_yyalloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2766 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_scan_buffer()" );
2768 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2769 b->yy_buf_pos = b->yy_ch_buf = base;
2770 b->yy_is_our_buffer = 0;
2771 b->yy_input_file = 0;
2772 b->yy_n_chars = b->yy_buf_size;
2773 b->yy_is_interactive = 0;
2775 b->yy_fill_buffer = 0;
2776 b->yy_buffer_status = YY_BUFFER_NEW;
2778 ast_yy_switch_to_buffer(b ,yyscanner );
2784 * \brief Setup the input buffer state to scan a string. The next call to ast_yylex() will
2785 * scan from a \e copy of \a str.
2786 * \param yy_str a NUL-terminated string to scan
2787 * \param yyscanner The scanner object.
2788 * \return the newly allocated buffer state object.
2789 * \note If you want to scan bytes that may contain NUL values, then use
2790 * ast_yy_scan_bytes() instead.
2792 YY_BUFFER_STATE ast_yy_scan_string (yyconst char * yy_str , yyscan_t yyscanner)
2795 return ast_yy_scan_bytes(yy_str,strlen(yy_str) ,yyscanner);
2799 * \brief Setup the input buffer state to scan the given bytes. The next call to ast_yylex() will
2800 * scan from a @e copy of @a bytes.
2801 * \param bytes the byte buffer to scan
2802 * \param len the number of bytes in the buffer pointed to by @a bytes.
2803 * \param yyscanner The scanner object.
2804 * \return the newly allocated buffer state object.
2806 YY_BUFFER_STATE ast_yy_scan_bytes (yyconst char * bytes, int len , yyscan_t yyscanner)
2813 /* Get memory for full buffer, including space for trailing EOB's. */
2815 buf = (char *) ast_yyalloc(n ,yyscanner );
2817 YY_FATAL_ERROR( "out of dynamic memory in ast_yy_scan_bytes()" );
2819 for ( i = 0; i < len; ++i )
2822 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2824 b = ast_yy_scan_buffer(buf,n ,yyscanner);
2826 YY_FATAL_ERROR( "bad buffer in ast_yy_scan_bytes()" );
2828 /* It's okay to grow etc. this buffer, and we should throw it
2829 * away when we're done.
2831 b->yy_is_our_buffer = 1;
2836 #ifndef YY_EXIT_FAILURE
2837 #define YY_EXIT_FAILURE 2
2840 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2842 (void) fprintf( stderr, "%s\n", msg );
2843 exit( YY_EXIT_FAILURE );
2846 /* Redefine yyless() so it works in section 3 code. */
2852 /* Undo effects of setting up yytext. */ \
2853 int yyless_macro_arg = (n); \
2854 YY_LESS_LINENO(yyless_macro_arg);\
2855 yytext[yyleng] = yyg->yy_hold_char; \
2856 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2857 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2858 *yyg->yy_c_buf_p = '\0'; \
2859 yyleng = yyless_macro_arg; \
2863 /* Accessor methods (get/set functions) to struct members. */
2866 * \brief Get the user-defined data for this scanner.
2867 * \param yyscanner The scanner object.
2869 YY_EXTRA_TYPE ast_yyget_extra (yyscan_t yyscanner)
2871 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2876 * \brief Get the current line number.
2877 * \param yyscanner The scanner object.
2879 int ast_yyget_lineno (yyscan_t yyscanner)
2881 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2883 if (! YY_CURRENT_BUFFER)
2890 * \brief Get the current column number.
2891 * \param yyscanner The scanner object.
2893 int ast_yyget_column (yyscan_t yyscanner)
2895 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2897 if (! YY_CURRENT_BUFFER)
2904 * \brief Get the input stream.
2905 * \param yyscanner The scanner object.
2907 FILE *ast_yyget_in (yyscan_t yyscanner)
2909 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2914 * \brief Get the output stream.
2915 * \param yyscanner The scanner object.
2917 FILE *ast_yyget_out (yyscan_t yyscanner)
2919 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2924 * \brief Get the length of the current token.
2925 * \param yyscanner The scanner object.
2927 int ast_yyget_leng (yyscan_t yyscanner)
2929 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2933 /** Get the current token.
2934 * \param yyscanner The scanner object.
2937 char *ast_yyget_text (yyscan_t yyscanner)
2939 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2944 * \brief Set the user-defined data. This data is never touched by the scanner.
2945 * \param user_defined The data to be associated with this scanner.
2946 * \param yyscanner The scanner object.
2948 void ast_yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2950 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2951 yyextra = user_defined ;
2955 * \brief Set the current line number.
2956 * \param line_number
2957 * \param yyscanner The scanner object.
2959 void ast_yyset_lineno (int line_number , yyscan_t yyscanner)
2961 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2963 /* lineno is only valid if an input buffer exists. */
2964 if (! YY_CURRENT_BUFFER )
2965 yy_fatal_error( "ast_yyset_lineno called with no buffer" , yyscanner);
2967 yylineno = line_number;
2971 * \brief Set the current column.
2973 * \param yyscanner The scanner object.
2975 void ast_yyset_column (int column_no , yyscan_t yyscanner)
2977 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2979 /* column is only valid if an input buffer exists. */
2980 if (! YY_CURRENT_BUFFER )
2981 yy_fatal_error( "ast_yyset_column called with no buffer" , yyscanner);
2983 yycolumn = column_no;
2987 * \brief Set the input stream. This does not discard the current input buffer.
2988 * \param in_str A readable stream.
2989 * \param yyscanner The scanner object.
2990 * \see ast_yy_switch_to_buffer
2992 void ast_yyset_in (FILE * in_str , yyscan_t yyscanner)
2994 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2998 void ast_yyset_out (FILE * out_str , yyscan_t yyscanner)
3000 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3004 int ast_yyget_debug (yyscan_t yyscanner)
3006 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3007 return yy_flex_debug;
3010 void ast_yyset_debug (int bdebug , yyscan_t yyscanner)
3012 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3013 yy_flex_debug = bdebug ;
3016 /* Accessor methods for yylval and yylloc */
3018 YYSTYPE * ast_yyget_lval (yyscan_t yyscanner)
3020 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3024 void ast_yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
3026 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3027 yylval = yylval_param;
3030 YYLTYPE *ast_yyget_lloc (yyscan_t yyscanner)
3032 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3036 void ast_yyset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner)
3038 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3039 yylloc = yylloc_param;
3042 static int yy_init_globals (yyscan_t yyscanner)
3044 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3045 /* Initialization is the same as for the non-reentrant scanner.
3046 This function is called once per scanner lifetime. */
3048 yyg->yy_buffer_stack = 0;
3049 yyg->yy_buffer_stack_top = 0;
3050 yyg->yy_buffer_stack_max = 0;
3051 yyg->yy_c_buf_p = (char *) 0;
3054 yyg->yy_start_stack_ptr = 0;
3055 yyg->yy_start_stack_depth = 0;
3056 yyg->yy_start_stack = (int *) 0;
3058 /* Defined in main.c */
3067 /* For future reference: Set errno on error, since we are called by
3073 /* User-visible API */
3075 /* ast_yylex_init is special because it creates the scanner itself, so it is
3076 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3077 * That's why we explicitly handle the declaration, instead of using our macros.
3080 int ast_yylex_init(yyscan_t* ptr_yy_globals)
3083 if (ptr_yy_globals == NULL){
3088 *ptr_yy_globals = (yyscan_t) ast_yyalloc ( sizeof( struct yyguts_t ), NULL );
3090 if (*ptr_yy_globals == NULL){
3095 memset(*ptr_yy_globals,0,sizeof(struct yyguts_t));
3097 return yy_init_globals ( *ptr_yy_globals );
3100 /* ast_yylex_destroy is for both reentrant and non-reentrant scanners. */
3101 int ast_yylex_destroy (yyscan_t yyscanner)
3103 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3105 /* Pop the buffer stack, destroying each element. */
3106 while(YY_CURRENT_BUFFER){
3107 ast_yy_delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
3108 YY_CURRENT_BUFFER_LVALUE = NULL;
3109 ast_yypop_buffer_state(yyscanner);
3112 /* Destroy the stack itself. */
3113 ast_yyfree(yyg->yy_buffer_stack ,yyscanner);
3114 yyg->yy_buffer_stack = NULL;
3116 /* Destroy the start condition stack. */
3117 ast_yyfree(yyg->yy_start_stack ,yyscanner );
3118 yyg->yy_start_stack = NULL;
3120 /* Destroy the main struct (reentrant only). */
3121 ast_yyfree ( yyscanner , yyscanner );
3126 * Internal utility routines.
3130 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
3133 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3134 for ( i = 0; i < n; ++i )
3139 #ifdef YY_NEED_STRLEN
3140 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
3143 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3144 for ( n = 0; s[n]; ++n )
3151 void *ast_yyalloc (yy_size_t size , yyscan_t yyscanner)
3153 return (void *) malloc( size );
3156 void *ast_yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
3158 /* The cast to (char *) in the following accommodates both
3159 * implementations that use char* generic pointers, and those
3160 * that use void* generic pointers. It works with the latter
3161 * because both ANSI C and C++ allow castless assignment from
3162 * any pointer type to void*, and deal with argument conversions
3163 * as though doing an assignment.
3165 return (void *) realloc( (char *) ptr, size );
3168 void ast_yyfree (void * ptr , yyscan_t yyscanner)
3170 free( (char *) ptr ); /* see ast_yyrealloc() for (char *) cast */
3173 #define YYTABLES_NAME "yytables"
3176 #undef YY_FLUSH_BUFFER
3178 #undef yy_new_buffer
3179 #undef yy_set_interactive
3181 #undef YY_DO_BEFORE_ACTION
3183 #ifdef YY_DECL_IS_OURS
3184 #undef YY_DECL_IS_OURS
3187 #line 227 "ast_expr2.fl"
3191 /* I'm putting the interface routine to the whole parse here in the flexer input file
3192 mainly because of all the flexer initialization that has to be done. Shouldn't matter
3193 where it is, as long as it's somewhere. I didn't want to define a prototype for the
3194 ast_yy_scan_string in the .y file, because then, I'd have to define YY_BUFFER_STATE there...
3195 UGH! that would be inappropriate. */
3197 int ast_yyparse(void *); /* need to/should define this prototype for the call to yyparse */
3198 int ast_yyerror(const char *, YYLTYPE *, struct parse_io *); /* likewise */
3200 int ast_expr(char *expr, char *buf, int length, struct ast_channel *chan)
3203 int return_value = 0;
3205 memset(&io, 0, sizeof(io));
3206 io.string = expr; /* to pass to the error routine */
3209 ast_yylex_init(&io.scanner);
3211 ast_yy_scan_string(expr, io.scanner);
3213 ast_yyparse ((void *) &io);
3215 ast_yylex_destroy(io.scanner);
3223 if (io.val->type == AST_EXPR_number) {
3226 res_length = snprintf(buf, length, FP___PRINTF, io.val->u.i);
3227 return_value = (res_length <= length) ? res_length : length;
3229 #if defined(STANDALONE) || defined(LOW_MEMORY) || defined(STANDALONE_AEL)
3230 strncpy(buf, io.val->u.s, length - 1);
3231 #else /* !STANDALONE && !LOW_MEMORY */
3232 ast_copy_string(buf, io.val->u.s, length);
3233 #endif /* STANDALONE || LOW_MEMORY */
3234 return_value = strlen(buf);
3239 return return_value;
3243 char extra_error_message[4095];
3244 int extra_error_message_supplied = 0;
3245 void ast_expr_register_extra_error_info(char *message);
3246 void ast_expr_clear_extra_error_info(void);
3248 void ast_expr_register_extra_error_info(char *message)
3250 extra_error_message_supplied=1;
3251 strcpy(extra_error_message, message);
3254 void ast_expr_clear_extra_error_info(void)
3256 extra_error_message_supplied=0;
3257 extra_error_message[0] = 0;
3260 static char *expr2_token_equivs1[] =
3286 static char *expr2_token_equivs2[] =
3313 static char *expr2_token_subst(const char *mess)
3315 /* calc a length, malloc, fill, and return; yyerror had better free it! */
3319 int expr2_token_equivs_entries = sizeof(expr2_token_equivs1)/sizeof(char*);
3321 for (p=mess; *p; p++) {
3322 for (i=0; i<expr2_token_equivs_entries; i++) {
3323 if ( strncmp(p,expr2_token_equivs1[i],strlen(expr2_token_equivs1[i])) == 0 )
3325 len+=strlen(expr2_token_equivs2[i])+2;
3326 p += strlen(expr2_token_equivs1[i])-1;
3332 res = (char*)malloc(len+1);
3337 for (i=0; i<expr2_token_equivs_entries; i++) {
3338 if ( strncmp(p,expr2_token_equivs1[i],strlen(expr2_token_equivs1[i])) == 0 ) {
3340 for (t=expr2_token_equivs2[i]; *t;) {
3344 p += strlen(expr2_token_equivs1[i]);
3356 int ast_yyerror (const char *s, yyltype *loc, struct parse_io *parseio )
3358 struct yyguts_t * yyg = (struct yyguts_t*)(parseio->scanner);
3359 char spacebuf[8000]; /* best safe than sorry */
3360 char spacebuf2[8000]; /* best safe than sorry */
3362 char *s2 = expr2_token_subst(s);
3365 for(i=0;i< (int)(yytext - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf);i++) spacebuf2[i] = ' '; /* uh... assuming yyg is defined, then I can use the yycolumn macro,
3366 which is the same thing as... get this:
3367 yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]->yy_bs_column
3368 I was tempted to just use yy_buf_pos in the STATE, but..., well:
3369 a. the yy_buf_pos is the current position in the buffer, which
3370 may not relate to the entire string/buffer because of the
3372 b. but, analysis of the situation is that when you use the
3373 ast_yy_scan_string func, it creates a single buffer the size of
3374 string, so the two would be the same...
3375 so, in the end, the yycolumn macro is available, shorter, therefore easier. */
3380 /* easier to read in the standalone version */
3381 printf("ast_yyerror(): %s syntax error: %s; Input:\n%s\n%s\n",
3382 (extra_error_message_supplied?extra_error_message:""), s2, parseio->string,spacebuf2);
3384 ast_log(LOG_WARNING,"ast_yyerror(): %s syntax error: %s; Input:\n%s\n%s\n",
3385 (extra_error_message_supplied?extra_error_message:""), s2, parseio->string,spacebuf2);
3388 ast_log(LOG_WARNING,"If you have questions, please refer to doc/channelvariables.txt in the asterisk source.\n");